diff options
author | Brad King <brad.king@kitware.com> | 2009-06-11 13:35:11 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2009-06-11 13:35:11 (GMT) |
commit | 8c5c192b9dff5ad8e7b422ed16935c2c5d2016db (patch) | |
tree | 09b2fb001034d2cea20fc2cb89699e26f9f9cf9e /Utilities/cmcurl-7.19.0/tests | |
parent | 8ddfd1ed7f3cb6647fa679e240675d7065933e7c (diff) | |
download | CMake-8c5c192b9dff5ad8e7b422ed16935c2c5d2016db.zip CMake-8c5c192b9dff5ad8e7b422ed16935c2c5d2016db.tar.gz CMake-8c5c192b9dff5ad8e7b422ed16935c2c5d2016db.tar.bz2 |
ENH: Remove Utilities/cmcurl-7.19.0 source tree
We never build this source tree anymore, so remove it.
Diffstat (limited to 'Utilities/cmcurl-7.19.0/tests')
588 files changed, 0 insertions, 53998 deletions
diff --git a/Utilities/cmcurl-7.19.0/tests/FILEFORMAT b/Utilities/cmcurl-7.19.0/tests/FILEFORMAT deleted file mode 100644 index e4be47a..0000000 --- a/Utilities/cmcurl-7.19.0/tests/FILEFORMAT +++ /dev/null @@ -1,324 +0,0 @@ - The test suite's file format is very simple and extensible, closely -resembling XML. All data for a single test case resides in a single -ASCII file. Labels mark the beginning and the end of all sections, and each -label must be written in its own line. Comments are either XML-style -(enclosed with <!-- and -->) or C-style (beginning with #) and must appear -on their own lines and not alongside actual test data. Most test data files -are syntactically valid XML, although a few files are not (lack of -support for character entities and the preservation of CR/LF characters at -the end of lines are the biggest differences). - - The file begins with a 'testcase' tag, which encompasses the remainder of -the file. - -<testcase> - - Each file is split up in three main sections: reply, client and verify. The -reply section is used for the server to know what to send as a reply for the -requests curl sends, the client section defines how the client should behave -while the verify section defines how to verify that the data stored after a -command has been run ended up correctly. - - Each main section has a number of available subsections that can be -specified, that will be checked/used if specified. This document includes all -the subsections currently supported. - -Main sections are 'info', 'reply', 'client' and 'verify'. - -<info> -<keywords> -A newline-separated list of keywords describing what this test case uses and -tests. Try to use an already used keyword. These keywords will be used for -statistical/informational purposes and for choosing or skipping classes -of tests. "Keywords" must begin with an alphabetic character, "-", "[" -or "{" and may actually consist of multiple words separated by spaces -which are treated together as a single identifier. -</keywords> -</info> - -<reply> -<data [nocheck="1"] [sendzero="yes"] [base64="yes"]> -data to be sent to the client on its request and later verified that it arrived -safely. Set nocheck="1" to prevent the test script from verifying the arrival -of this data. - -If the data contains 'swsclose' anywhere within the start and end tag, and -this is a HTTP test, then the connection will be closed by the server after -this response is sent. If not, the connection will be kept persistent. - -If the data contains 'swsbounce' anywhere within the start and end tag, the -HTTP server will detect if this is a second request using the same test and -part number and will then increase the part number with one. This is useful -for auth tests and similar. - -'sendzero' set to yes means that the (FTP) server will "send" the data even if -the size is zero bytes. Used to verify curl's behaviour on zero bytes -transfers. - -'base64' set to yes means that the data provided in the test-file is a chunk -of data encoded with base64. It is the only way a test case can contain binary -data. (This attribute can in fact be used on any section, but it doesn't make -much sense for other sections than "data"). -</data> -<dataNUM> -Send back this contents instead of the <data> one. The num is set by: -A) The test number in the request line is >10000 and this is the remainder -of [test case number]%10000. -B) The request was HTTP and included digest details, which adds 1000 to NUM -C) If a HTTP request is NTLM type-1, it adds 1001 to num -D) If a HTTP request is NTLM type-3, it adds 1002 to num -</dataNUM> -<datacheck [nonewline="yes"]> -if the data is sent but this is what should be checked afterwards. If -'nonewline' is set, we will cut off the trailing newline of this given data -before comparing with the one actually received by the client -</datacheck> -<size> -number to return on a ftp SIZE command (set to -1 to make this command fail) -</size> -<mdtm> -what to send back if the client sends a (FTP) MDTM command, set to -1 to -have it return that the file doesn't exist -</mdtm> -<postcmd> -special purpose server-command to control its behavior *after* the -reply is sent -For HTTP/HTTPS, these are supported: - -wait [secs] - - Pause for the given time -</postcmd> -<servercmd> -Special-commands for the server. -For FTP, these are supported: - -REPLY [command] [return value] [response string] - - Changes how the server responds to the [command]. [response string] is - evaluated as a perl string, so it can contain embedded \r\n, for example. -COUNT [command] [num] - - Do the REPLY change for [command] only [num] times and then go back to the - built-in approach -DELAY [command] [secs] - - Delay responding to this command for the given time -RETRWEIRDO - - Enable the "weirdo" RETR case when multiple response lines appear at once - when a file is transfered -RETRNOSIZE - - Make sure the RETR response doesn't contain the size of the file -NOSAVE - - Don't actually save what is received -SLOWDOWN - - Send FTP responses with 0.1 sec delay between each byte -PASVBADIP - - makes PASV send back an illegal IP in its 227 response - -For HTTP/HTTPS: -auth_required if this is set and a POST/PUT is made without auth, the - server will NOT wait for the full request body to get sent -idle do nothing after receiving the request, just "sit idle" -stream continuously send data to the client, never-ending -pipe: [num] tell the server to expect this many HTTP requests before - sending back anything, to allow pipelining tests -skip: [num] instructs the server to ignore reading this many bytes from a PUT - or POST request -</servercmd> -</reply> - -<client> - -<server> -What server(s) this test case requires/uses: - -file -ftp -ftp-ipv6 -ftps -http -http-ipv6 -https -none -scp -sftp -socks4 -socks5 - -Give only one per line. This subsection is mandatory. -</server> - -<features> -A list of features that MUST be present in the client/library for this test to -be able to run (if these features are not present, the test will be -SKIPPED). Features testable here are: - -crypto -getrlimit -GnuTLS -idn -ipv6 -large_file -libz -netrc_debug -NSS -OpenSSL -SSL - -as well as each protocol that curl supports. A protocol only needs to be -specified if it is different from the server (useful when the server -is 'none'). -</features> - -<killserver> -Using the same syntax as in <server> but when mentioned here these servers -are explicitly KILLED when this test case is completed. Only use this if there -is no other alternatives. Using this of course requires subsequent tests to -restart servers. -</killserver> - -<precheck> -A command line that if set gets run by the test script before the test. If an -output is displayed by the command, the test will be skipped and the -(single-line) output will be displayed as reason for not running the test. -Variables are substituted as in the <command> section. -</precheck> - -<postcheck> -A command line that if set gets run by the test script after the test. If -the command exists with a non-zero status code, the test will be considered -to have failed. Variables are substituted as in the <command> section. -</postcheck> - -<tool> -Name of tool to use instead of "curl". This tool must be built and exist -in the libtest/ directory. -</tool> - -<name> -test case description -</name> - -<setenv> -variable1=contents1 -variable2=contents2 - -Set the given environment variables to the specified value before the actual -command is run. They are cleared again after the command has been run. -Variables are first substituted as in the <command> section. -</setenv> - -<command [option="no-output"] [timeout="secs"] [delay="secs"]> -command line to run, there's a bunch of %variables that get replaced -accordingly. - -Note that the URL that gets passed to the server actually controls what data -that is returned. The last slash in the URL must be followed by a number. That -number (N) will be used by the test-server to load test case N and return the -data that is defined within the <reply><data></data></reply> section. - -If a CONNECT is used to the server (to emulate HTTPS etc over proxy), the port -number given in the CONNECT request will be used to identify which test that -is being run, if the proxy host name is said to start with 'test'. - -Set option="no-output" to prevent the test script to slap on the --output -argument that directs the output to a file. The --output is also not added if -the verify/stdout section is used. - -Set timeout="secs" to override default server logs advisor read lock timeout. -This timeout is used by the test harness, once that the command has completed -execution, to wait for the test server to write out server side log files and -remove the lock that advised not to read them. The "secs" parameter is the not -negative integer number of seconds for the timeout. This 'timeout' attribute -is documented for completeness sake, but is deep test harness stuff and only -needed for very singular and specific test cases. Avoid using it. - -Set delay="secs" to introduce a time delay once that the command has completed -execution and before the <postcheck> section runs. The "secs" parameter is the -not negative integer number of seconds for the delay. This 'delay' attribute -is intended for very specific test cases, and normally not needed. - -Available substitute variables include: -%CLIENTIP - IPv4 address of the client running curl -%CLIENT6IP - IPv6 address of the client running curl -%HOSTIP - IPv4 address of the host running this test -%HOSTPORT - Port number of the HTTP server -%HOST6IP - IPv6 address of the host running this test -%HOST6PORT - IPv6 port number of the HTTP server -%HTTPSPORT - Port number of the HTTPS server -%FTPPORT - Port number of the FTP server -%FTP6PORT - IPv6 port number of the FTP server -%FTPSPORT - Port number of the FTPS server -%FTP2PORT - Port number of the FTP server 2 -%FTPTIME2 - Timeout in seconds that should be just sufficient to receive - a response from the test FTP server -%TFTPPORT - Port number of the TFTP server -%TFTP6PORT - IPv6 port number of the TFTP server -%SSHPORT - Port number of the SCP/SFTP server -%SOCKSPORT - Port number of the SOCKS4/5 server -%SRCDIR - Full path to the source dir -%PWD - Current directory -%CURL - Path to the curl executable -%USER - Login ID of the user running the test -</command> - -<file name="log/filename"> -This creates the named file with this content before the test case is run, -which is useful if the test case needs a file to act on. -Variables are substituted on the contents of the file as in the <command> -section. -</file> - -<stdin> -Pass this given data on stdin to the tool. -</stdin> - -</client> - -<verify> -<errorcode> -numerical error code curl is supposed to return. Specify a list of accepted -error codes by separating multiple numbers with comma. See test 237 for an -example. -</errorcode> -<strip> -One regex per line that is removed from the protocol dumps before the -comparison is made. This is very useful to remove dependencies on dynamically -changing protocol data such as port numbers or user-agent strings. -</strip> -<strippart> -One perl op per line that operates on the protocol dump. This is pretty -advanced. Example: "s/^EPRT .*/EPRT stripped/" -</strippart> -<protocol [nonewline="yes"]> -the protocol dump curl should transmit, if 'nonewline' is set, we will cut -off the trailing newline of this given data before comparing with the one -actually sent by the client -Variables are substituted as in the <command> section. -</protocol> -<stdout [mode="text"] [nonewline="yes"]> -This verifies that this data was passed to stdout. Variables are -substituted as in the <command> section. - -Use the mode="text" attribute if the output is in text mode on platforms that -have a text/binary difference. - -If 'nonewline' is set, we will cut off the trailing newline of this given data -before comparing with the one actually received by the client -</stdout> -<file name="log/filename" [mode="text"]> -The file's contents must be identical to this after the test is complete. -Use the mode="text" attribute if the output is in text mode on platforms that -have a text/binary difference. -Variables are substituted as in the <command> section. -</file> -<stripfile> -One perl op per line that operates on the file before being compared. This is -pretty advanced. Example: "s/^EPRT .*/EPRT stripped/" -</stripfile> -<upload> -the contents of the upload data curl should have sent -</upload> -<valgrind> -disable - disables the valgrind log check for this test -</valgrind> -</verify> - -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/Makefile.am b/Utilities/cmcurl-7.19.0/tests/Makefile.am deleted file mode 100644 index 858e3a7..0000000 --- a/Utilities/cmcurl-7.19.0/tests/Makefile.am +++ /dev/null @@ -1,74 +0,0 @@ -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al. -# -# This software is licensed as described in the file COPYING, which -# you should have received as part of this distribution. The terms -# are also available at http://curl.haxx.se/docs/copyright.html. -# -# You may opt to use, copy, modify, merge, publish, distribute and/or sell -# copies of the Software, and permit persons to whom the Software is -# furnished to do so, under the terms of the COPYING file. -# -# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -# KIND, either express or implied. -# -# $Id$ -########################################################################### - -HTMLPAGES = testcurl.html runtests.html -PDFPAGES = testcurl.pdf runtests.pdf - -EXTRA_DIST = ftpserver.pl httpserver.pl httpsserver.pl runtests.pl getpart.pm \ - FILEFORMAT README stunnel.pem memanalyze.pl testcurl.pl valgrind.pm ftp.pm \ - sshserver.pl sshhelp.pm testcurl.1 runtests.1 $(HTMLPAGES) $(PDFPAGES) - -SUBDIRS = data server libtest - -PERLFLAGS = -I$(srcdir) - -CLEANFILES = .http.pid .https.pid .ftp.pid .ftps.pid - -MAN2HTML= roffit < $< >$@ - -curl: - @cd $(top_builddir) && $(MAKE) - -if CROSSCOMPILING -TEST = @echo "NOTICE: we can't run the tests when cross-compiling!" -TEST_Q = -TEST_F = -TEST_T = -else # if not cross-compiling: -TEST = srcdir=$(srcdir) $(PERL) $(PERLFLAGS) $(srcdir)/runtests.pl -TEST_Q = -a -s -TEST_F = -a -p -TEST_T = -a -t -endif - -test: all - $(TEST) - -quiet-test: all - $(TEST) $(TEST_Q) - -full-test: all - $(TEST) $(TEST_F) - -torture-test: all - $(TEST) $(TEST_T) - -.1.html: - $(MAN2HTML) - -.1.pdf: - @(foo=`echo $@ | sed -e 's/\.[0-9]$$//g'`; \ - groff -Tps -man $< >$$foo.ps; \ - ps2pdf $$foo.ps $@; \ - rm $$foo.ps; \ - echo "converted $< to $@") diff --git a/Utilities/cmcurl-7.19.0/tests/Makefile.in b/Utilities/cmcurl-7.19.0/tests/Makefile.in deleted file mode 100644 index 9ed8dd6..0000000 --- a/Utilities/cmcurl-7.19.0/tests/Makefile.in +++ /dev/null @@ -1,590 +0,0 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al. -# -# This software is licensed as described in the file COPYING, which -# you should have received as part of this distribution. The terms -# are also available at http://curl.haxx.se/docs/copyright.html. -# -# You may opt to use, copy, modify, merge, publish, distribute and/or sell -# copies of the Software, and permit persons to whom the Software is -# furnished to do so, under the terms of the COPYING file. -# -# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -# KIND, either express or implied. -# -# $Id$ -########################################################################### -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = .. -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = tests -DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/curl-reentrant.m4 \ - $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/lib/config.h \ - $(top_builddir)/src/config.h \ - $(top_builddir)/include/curl/curlbuild.h -CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-exec-recursive install-info-recursive \ - install-recursive installcheck-recursive installdirs-recursive \ - pdf-recursive ps-recursive uninstall-info-recursive \ - uninstall-recursive -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AR = @AR@ -AS = @AS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CROSSCOMPILING_FALSE = @CROSSCOMPILING_FALSE@ -CROSSCOMPILING_TRUE = @CROSSCOMPILING_TRUE@ -CURL_CA_BUNDLE = @CURL_CA_BUNDLE@ -CURL_DISABLE_DICT = @CURL_DISABLE_DICT@ -CURL_DISABLE_FILE = @CURL_DISABLE_FILE@ -CURL_DISABLE_FTP = @CURL_DISABLE_FTP@ -CURL_DISABLE_HTTP = @CURL_DISABLE_HTTP@ -CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@ -CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@ -CURL_DISABLE_TELNET = @CURL_DISABLE_TELNET@ -CURL_DISABLE_TFTP = @CURL_DISABLE_TFTP@ -CURL_LIBS = @CURL_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GREP = @GREP@ -HAVE_ARES = @HAVE_ARES@ -HAVE_LIBZ = @HAVE_LIBZ@ -HAVE_LIBZ_FALSE = @HAVE_LIBZ_FALSE@ -HAVE_LIBZ_TRUE = @HAVE_LIBZ_TRUE@ -HAVE_PK11_CREATEGENERICOBJECT = @HAVE_PK11_CREATEGENERICOBJECT@ -IDN_ENABLED = @IDN_ENABLED@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -IPV6_ENABLED = @IPV6_ENABLED@ -KRB4_ENABLED = @KRB4_ENABLED@ -LDFLAGS = @LDFLAGS@ -LIBCURL_LIBS = @LIBCURL_LIBS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ -MAKEINFO = @MAKEINFO@ -MANOPT = @MANOPT@ -MIMPURE_FALSE = @MIMPURE_FALSE@ -MIMPURE_TRUE = @MIMPURE_TRUE@ -NMEDIT = @NMEDIT@ -NO_UNDEFINED_FALSE = @NO_UNDEFINED_FALSE@ -NO_UNDEFINED_TRUE = @NO_UNDEFINED_TRUE@ -NROFF = @NROFF@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PERL = @PERL@ -PKGADD_NAME = @PKGADD_NAME@ -PKGADD_PKG = @PKGADD_PKG@ -PKGADD_VENDOR = @PKGADD_VENDOR@ -PKGCONFIG = @PKGCONFIG@ -RANDOM_FILE = @RANDOM_FILE@ -RANLIB = @RANLIB@ -REQUIRE_LIB_DEPS = @REQUIRE_LIB_DEPS@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -SONAME_BUMP_FALSE = @SONAME_BUMP_FALSE@ -SONAME_BUMP_TRUE = @SONAME_BUMP_TRUE@ -SSL_ENABLED = @SSL_ENABLED@ -STATICLIB_FALSE = @STATICLIB_FALSE@ -STATICLIB_TRUE = @STATICLIB_TRUE@ -STRIP = @STRIP@ -TEST_SERVER_LIBS = @TEST_SERVER_LIBS@ -USE_GNUTLS = @USE_GNUTLS@ -USE_LIBSSH2 = @USE_LIBSSH2@ -USE_MANUAL_FALSE = @USE_MANUAL_FALSE@ -USE_MANUAL_TRUE = @USE_MANUAL_TRUE@ -USE_NSS = @USE_NSS@ -USE_SSLEAY = @USE_SSLEAY@ -USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ -VERSION = @VERSION@ -VERSIONNUM = @VERSIONNUM@ -ac_ct_CC = @ac_ct_CC@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -libext = @libext@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -subdirs = @subdirs@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -HTMLPAGES = testcurl.html runtests.html -PDFPAGES = testcurl.pdf runtests.pdf -EXTRA_DIST = ftpserver.pl httpserver.pl httpsserver.pl runtests.pl getpart.pm \ - FILEFORMAT README stunnel.pem memanalyze.pl testcurl.pl valgrind.pm ftp.pm \ - sshserver.pl sshhelp.pm testcurl.1 runtests.1 $(HTMLPAGES) $(PDFPAGES) - -SUBDIRS = data server libtest -PERLFLAGS = -I$(srcdir) -CLEANFILES = .http.pid .https.pid .ftp.pid .ftps.pid -MAN2HTML = roffit < $< >$@ -@CROSSCOMPILING_FALSE@TEST = srcdir=$(srcdir) $(PERL) $(PERLFLAGS) $(srcdir)/runtests.pl -@CROSSCOMPILING_TRUE@TEST = @echo "NOTICE: we can't run the tests when cross-compiling!" -@CROSSCOMPILING_FALSE@TEST_Q = -a -s -@CROSSCOMPILING_TRUE@TEST_Q = -@CROSSCOMPILING_FALSE@TEST_F = -a -p -@CROSSCOMPILING_TRUE@TEST_F = -@CROSSCOMPILING_FALSE@TEST_T = -a -t -@CROSSCOMPILING_TRUE@TEST_T = -all: all-recursive - -.SUFFIXES: -.SUFFIXES: .1 .html .pdf -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign tests/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -uninstall-info-am: - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(mkdir_p) "$(distdir)/$$subdir" \ - || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-recursive -all-am: Makefile -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-recursive - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-libtool \ - distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-info-am - -uninstall-info: uninstall-info-recursive - -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ - clean clean-generic clean-libtool clean-recursive ctags \ - ctags-recursive distclean distclean-generic distclean-libtool \ - distclean-recursive distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-exec install-exec-am install-info \ - install-info-am install-man install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic maintainer-clean-recursive \ - mostlyclean mostlyclean-generic mostlyclean-libtool \ - mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-info-am - - -curl: - @cd $(top_builddir) && $(MAKE) - -test: all - $(TEST) - -quiet-test: all - $(TEST) $(TEST_Q) - -full-test: all - $(TEST) $(TEST_F) - -torture-test: all - $(TEST) $(TEST_T) - -.1.html: - $(MAN2HTML) - -.1.pdf: - @(foo=`echo $@ | sed -e 's/\.[0-9]$$//g'`; \ - groff -Tps -man $< >$$foo.ps; \ - ps2pdf $$foo.ps $@; \ - rm $$foo.ps; \ - echo "converted $< to $@") -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/Utilities/cmcurl-7.19.0/tests/README b/Utilities/cmcurl-7.19.0/tests/README deleted file mode 100644 index 50b5345..0000000 --- a/Utilities/cmcurl-7.19.0/tests/README +++ /dev/null @@ -1,154 +0,0 @@ - _ _ ____ _ - ___| | | | _ \| | - / __| | | | |_) | | - | (__| |_| | _ <| |___ - \___|\___/|_| \_\_____| - -The cURL Test Suite - -Requires: - perl (and a unix-style shell) - diff (when a test fails, a diff is shown) - stunnel (for HTTPS and FTPS tests) - OpenSSH or SunSSH (for SCP, SFTP and SOCKS4/5 tests) - -TCP ports used by default: - - - 8990 on localhost for HTTP tests - - 8991 on localhost for HTTPS tests - - 8994 on localhost for HTTP IPv6 tests - - 8992 on localhost for FTP tests - - 8995 on localhost for FTP (2) tests - - 8993 on localhost for FTPS tests - - 8996 on localhost for FTP IPv6 tests - - 8997 on localhost for TFTP tests - - 8999 on localhost for SCP/SFTP tests - - 9000 on localhost for SOCKS tests - - The test suite runs simple FTP, HTTP and TFTP servers on these ports to - which it makes requests. For SSL tests, it runs stunnel to handle - encryption to the regular servers. For SSH, it runs a standard OpenSSH - server. For SOCKS4/5 tests SSH is used to perform the SOCKS functionality - and requires a SSH client and server. - - The base port number shown above can be changed using runtests' -b option - to allow running more than one instance of the test suite simultaneously - on one machine. - -Run: - 'make test'. This builds the test suite support code and invokes the - 'runtests.pl' perl script to run all the tests. Edit the top variables - of that script in case you have some specific needs, or run the script - manually (after the support code has been built). - - The script breaks on the first test that doesn't do OK. Use -a to prevent - the script from abort on the first error. Run the script with -v for more - verbose output. Use -d to run the test servers with debug output enabled as - well. Specifying -k keeps all the log files generated by the test intact. - - Use -s for shorter output, or pass test numbers to run specific tests only - (like "./runtests.pl 3 4" to test 3 and 4 only). It also supports test case - ranges with 'to', as in "./runtests 3 to 9" which runs the seven tests from - 3 to 9. Any test numbers starting with ! are disabled, as are any test - numbers found in the file data/DISABLED (one per line). - -Shell startup scripts: - Tests which use the ssh test server, SCP/SFTP/SOCKS tests, might be badly - influenced by the output of system wide or user specific shell startup scripts, - .bashrc, .profile, /etc/csh.cshrc, .login, /etc/bashrc, etc. which output text - messages or escape sequences on user login. When these shell startup messages - or escape sequences are output they might corrupt the expected stream of data - which flows to the sftp-server or from the ssh client which can result in bad - test behaviour or even prevent the test server from running. - - If the test suite ssh or sftp server fails to start up and logs the message - 'Received message too long' then you are certainly suffering the unwanted - output of a shell startup script. Locate, cleanup or adjust the shell script. - -Memory: - The test script will check that all allocated memory is freed properly IF - curl has been built with the CURLDEBUG define set. The script will - automatically detect if that is the case, and it will use the ../memanalyze - script to analyze the memory debugging output. - - The -t option will enable torture testing mode, which runs each test - many times but causes a different memory allocation to fail on each - successive run. This tests the out of memory error handling code to - ensure that memory leaks do not occur even in those situations. - -Debug: - If a test case fails, you can conveniently get the script to invoke the - debugger (gdb) for you with the server running and the exact same command - line parameters that failed. Just invoke 'runtests.pl <test number> -g' and - then just type 'run' in the debugger to perform the command through the - debugger. - - If a test case causes a core dump, analyze it by running gdb like: - - # gdb ../curl/src core - - ... and get a stack trace with the gdb command: - - (gdb) where - -Logs: - All logs are generated in the logs/ subdirectory (it is emptied first - in the runtests.pl script). Use runtests.pl -k to keep the temporary files - after the test run. - -Data: - All test cases are put in the data/ subdirectory. Each test is stored in the - file named according to the test number. - - See FILEFORMAT for the description of the test case files. - -Code coverage: - gcc provides a tool that can determine the code coverage figures for - the test suite. To use it, configure curl with - CFLAGS='-fprofile-arcs -ftest-coverage -g -O0'. Make sure you run the normal - and torture tests to get more full coverage, i.e. do: - - make test - cd tests - make torture-test - - The graphical tool ggcov can be used to browse the source and create - coverage reports on *NIX hosts: - - ggcov -r lib src - - The text mode tool gcov may also be used, but it doesn't handle object files - in more than one directory very well. - -Remote testing: - The runtests.pl script provides some hooks to allow curl to be tested on a - machine where perl can not be run. The test framework in this case runs on - a workstation where perl is available, while curl itself is run on a remote - system using ssh or some other remote execution method. See the comments at - the beginning of runtests.pl for details. - -TEST CASE NUMBERS - - So far, I've used this system: - - 1 - 99 HTTP - 100 - 199 FTP* - 200 - 299 FILE* - 300 - 399 HTTPS - 400 - 499 FTPS - 500 - 599 libcurl source code tests, not using the curl command tool - 600 - 699 SCP/SFTP - 700 - 799 SOCKS4 (even numbers) and SOCK5 (odd numbers) - 1000 - 1999 miscellaneous* - 2000 - x multiple sequential protocols per test case* - - Since 30-apr-2003, there's nothing in the system that requires us to keep - within these number series, and those sections marked with * actually - contain tests for a variety of protocols. Each test case now specifies - its own server requirements, independent of test number. - -TODO: - - * Add tests for TELNET, LDAP, DICT... - * SOCKS4/5 test deficiencies - no proxy authentication tests as SSH (the - test mechanism) doesn't support them diff --git a/Utilities/cmcurl-7.19.0/tests/data/DISABLED b/Utilities/cmcurl-7.19.0/tests/data/DISABLED deleted file mode 100644 index dc68bd9..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/DISABLED +++ /dev/null @@ -1,10 +0,0 @@ -# $Id$ -# This file can be used to specify test cases that should not run when all -# test cases are run by runtests.pl. Just add the plain test case numbers, one -# per line. -# Lines starting with '#' letters are treated as comments. -1069 -1071 -1072 -1073 -1074 diff --git a/Utilities/cmcurl-7.19.0/tests/data/Makefile.am b/Utilities/cmcurl-7.19.0/tests/data/Makefile.am deleted file mode 100644 index 185d385..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/Makefile.am +++ /dev/null @@ -1,79 +0,0 @@ -iall: -install: -test: - -EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46 \ - test10 test109 test118 test13 test200 test28 test36 test47 test100 test11 \ - test119 test14 test201 test29 test37 test5 test101 test110 test12 test15 \ - test202 test3 test4 test6 test102 test111 test120 test16 test21 test30 \ - test7 test103 test112 test121 test17 test22 test300 test8 test104 test113 \ - test122 test18 test23 test301 test9 test105 test114 test123 test19 test24 \ - test302 test43 test31 test106 test115 test124 test190 test25 test303 \ - test44 test38 test107 test116 test125 test2 test26 test33 test45 test126 \ - test304 test39 test32 test128 test48 test306 test130 test131 test132 \ - test133 test134 test135 test305 test49 test50 test51 test52 test53 test54 \ - test55 test56 test500 test501 test502 test503 test504 test136 test57 \ - test137 test138 test58 test139 test140 test141 test59 test60 test61 \ - test142 test143 test62 test63 test64 test65 test66 test144 test145 test67 \ - test68 test41 test40 test42 test69 test70 test71 test72 test73 test146 \ - test505 test74 test75 test76 test77 test78 test147 test148 test506 test79 \ - test80 test81 test82 test83 test84 test85 test86 test87 test507 test149 \ - test88 test89 test90 test508 test91 test92 test203 test93 test94 test95 \ - test510 test97 test98 test99 test150 test151 test152 test153 \ - test154 test155 test156 test157 test158 test159 test511 test160 test161 \ - test162 test163 test164 test512 test165 test166 test167 test168 test169 \ - test170 test171 test172 test204 test205 test173 test174 test175 test176 \ - test177 test513 test514 test178 test179 test180 test181 test182 test183 \ - test184 test185 test186 test187 test188 test189 test191 test192 test193 \ - test194 test195 test196 test197 test198 test515 test516 test517 test518 \ - test210 test211 test212 test220 test221 test222 test223 test224 test206 \ - test207 test208 test209 test213 test240 test241 test242 test519 test214 \ - test215 test216 test217 test218 test199 test225 test226 test227 test228 \ - test229 test233 test234 test235 test236 test520 test237 test238 test239 \ - test243 test245 test246 test247 test248 test249 test250 test251 test252 \ - test253 test254 test255 test521 test522 test523 test256 test257 test258 \ - test259 test260 test261 test262 test263 test264 test265 test266 test267 \ - test268 test269 test270 test271 test272 test273 test274 test275 test524 \ - test525 test276 test277 test526 test527 test528 test530 DISABLED test278 \ - test279 test531 test280 test529 test532 test533 test534 test535 test281 \ - test537 test282 test283 test284 test538 test285 test286 test307 test308 \ - test287 test400 test288 test600 test601 test602 test603 test401 test402 \ - test290 test291 test292 test293 test403 test404 test405 test604 test605 \ - test606 test607 test608 test609 test294 test295 test296 test297 test298 \ - test610 test611 test612 test406 test407 test408 test409 test613 test614 \ - test700 test701 test702 test704 test705 test703 test706 test707 test350 \ - test351 test352 test353 test289 test540 test354 test231 test1000 test1001 \ - test1002 test1003 test1004 test1005 test1006 test615 test1007 test541 \ - test1010 test1011 test1012 test542 test543 test536 test1008 test1009 \ - test2000 test2001 test2002 test2003 test35 test544 test545 test2004 \ - test546 test1013 test1014 test1015 test547 test548 test549 test550 \ - test551 test552 test1016 test1017 test1018 test1019 test1020 test553 \ - test1021 test1022 test1023 test309 test616 test617 test618 test619 \ - test620 test621 test622 test623 test624 test625 test626 test627 test554 \ - test1024 test1025 test555 test1026 test1027 test1028 test1029 test1030 \ - test556 test557 test1031 test628 test629 test630 test631 test632 test1032 \ - test1033 test539 test1034 test1035 test1036 test1037 test1038 test1039 \ - test1040 test1041 test1042 test1043 test1044 test1045 test1046 test1047 \ - test1048 test1049 test1050 test1051 test1052 test1053 test1054 test1055 \ - test1056 test1057 test1058 test1059 test1060 test1061 test1062 test1063 \ - test1064 test1065 test1066 test1067 test1068 test1069 test1070 test1071 \ - test1072 test1073 test1074 test1075 - -filecheck: - @mkdir test-place; \ - cp "$(top_srcdir)"/tests/data/test[0-9]* test-place/; \ - rm test-place/*~; \ - for f in $(EXTRA_DIST); do \ - if test -f "$(top_srcdir)/tests/data/$$f"; then \ - rm -f "test-place/$$f"; \ - else \ - echo "$$f is listed but missing!"; \ - fi \ - done; \ - echo "Local files not present in EXTRA_DIST:" ; \ - ls test-place; \ - ! ls test-place | grep . >/dev/null ; \ - RC=$$? ; \ - rm -rf test-place ; \ - exit $$RC - diff --git a/Utilities/cmcurl-7.19.0/tests/data/Makefile.in b/Utilities/cmcurl-7.19.0/tests/data/Makefile.in deleted file mode 100644 index b515e67..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/Makefile.in +++ /dev/null @@ -1,442 +0,0 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = ../.. -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = tests/data -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/curl-reentrant.m4 \ - $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/lib/config.h \ - $(top_builddir)/src/config.h \ - $(top_builddir)/include/curl/curlbuild.h -CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AR = @AR@ -AS = @AS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CROSSCOMPILING_FALSE = @CROSSCOMPILING_FALSE@ -CROSSCOMPILING_TRUE = @CROSSCOMPILING_TRUE@ -CURL_CA_BUNDLE = @CURL_CA_BUNDLE@ -CURL_DISABLE_DICT = @CURL_DISABLE_DICT@ -CURL_DISABLE_FILE = @CURL_DISABLE_FILE@ -CURL_DISABLE_FTP = @CURL_DISABLE_FTP@ -CURL_DISABLE_HTTP = @CURL_DISABLE_HTTP@ -CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@ -CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@ -CURL_DISABLE_TELNET = @CURL_DISABLE_TELNET@ -CURL_DISABLE_TFTP = @CURL_DISABLE_TFTP@ -CURL_LIBS = @CURL_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GREP = @GREP@ -HAVE_ARES = @HAVE_ARES@ -HAVE_LIBZ = @HAVE_LIBZ@ -HAVE_LIBZ_FALSE = @HAVE_LIBZ_FALSE@ -HAVE_LIBZ_TRUE = @HAVE_LIBZ_TRUE@ -HAVE_PK11_CREATEGENERICOBJECT = @HAVE_PK11_CREATEGENERICOBJECT@ -IDN_ENABLED = @IDN_ENABLED@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -IPV6_ENABLED = @IPV6_ENABLED@ -KRB4_ENABLED = @KRB4_ENABLED@ -LDFLAGS = @LDFLAGS@ -LIBCURL_LIBS = @LIBCURL_LIBS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ -MAKEINFO = @MAKEINFO@ -MANOPT = @MANOPT@ -MIMPURE_FALSE = @MIMPURE_FALSE@ -MIMPURE_TRUE = @MIMPURE_TRUE@ -NMEDIT = @NMEDIT@ -NO_UNDEFINED_FALSE = @NO_UNDEFINED_FALSE@ -NO_UNDEFINED_TRUE = @NO_UNDEFINED_TRUE@ -NROFF = @NROFF@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PERL = @PERL@ -PKGADD_NAME = @PKGADD_NAME@ -PKGADD_PKG = @PKGADD_PKG@ -PKGADD_VENDOR = @PKGADD_VENDOR@ -PKGCONFIG = @PKGCONFIG@ -RANDOM_FILE = @RANDOM_FILE@ -RANLIB = @RANLIB@ -REQUIRE_LIB_DEPS = @REQUIRE_LIB_DEPS@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -SONAME_BUMP_FALSE = @SONAME_BUMP_FALSE@ -SONAME_BUMP_TRUE = @SONAME_BUMP_TRUE@ -SSL_ENABLED = @SSL_ENABLED@ -STATICLIB_FALSE = @STATICLIB_FALSE@ -STATICLIB_TRUE = @STATICLIB_TRUE@ -STRIP = @STRIP@ -TEST_SERVER_LIBS = @TEST_SERVER_LIBS@ -USE_GNUTLS = @USE_GNUTLS@ -USE_LIBSSH2 = @USE_LIBSSH2@ -USE_MANUAL_FALSE = @USE_MANUAL_FALSE@ -USE_MANUAL_TRUE = @USE_MANUAL_TRUE@ -USE_NSS = @USE_NSS@ -USE_SSLEAY = @USE_SSLEAY@ -USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ -VERSION = @VERSION@ -VERSIONNUM = @VERSIONNUM@ -ac_ct_CC = @ac_ct_CC@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -libext = @libext@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -subdirs = @subdirs@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46 \ - test10 test109 test118 test13 test200 test28 test36 test47 test100 test11 \ - test119 test14 test201 test29 test37 test5 test101 test110 test12 test15 \ - test202 test3 test4 test6 test102 test111 test120 test16 test21 test30 \ - test7 test103 test112 test121 test17 test22 test300 test8 test104 test113 \ - test122 test18 test23 test301 test9 test105 test114 test123 test19 test24 \ - test302 test43 test31 test106 test115 test124 test190 test25 test303 \ - test44 test38 test107 test116 test125 test2 test26 test33 test45 test126 \ - test304 test39 test32 test128 test48 test306 test130 test131 test132 \ - test133 test134 test135 test305 test49 test50 test51 test52 test53 test54 \ - test55 test56 test500 test501 test502 test503 test504 test136 test57 \ - test137 test138 test58 test139 test140 test141 test59 test60 test61 \ - test142 test143 test62 test63 test64 test65 test66 test144 test145 test67 \ - test68 test41 test40 test42 test69 test70 test71 test72 test73 test146 \ - test505 test74 test75 test76 test77 test78 test147 test148 test506 test79 \ - test80 test81 test82 test83 test84 test85 test86 test87 test507 test149 \ - test88 test89 test90 test508 test91 test92 test203 test93 test94 test95 \ - test510 test97 test98 test99 test150 test151 test152 test153 \ - test154 test155 test156 test157 test158 test159 test511 test160 test161 \ - test162 test163 test164 test512 test165 test166 test167 test168 test169 \ - test170 test171 test172 test204 test205 test173 test174 test175 test176 \ - test177 test513 test514 test178 test179 test180 test181 test182 test183 \ - test184 test185 test186 test187 test188 test189 test191 test192 test193 \ - test194 test195 test196 test197 test198 test515 test516 test517 test518 \ - test210 test211 test212 test220 test221 test222 test223 test224 test206 \ - test207 test208 test209 test213 test240 test241 test242 test519 test214 \ - test215 test216 test217 test218 test199 test225 test226 test227 test228 \ - test229 test233 test234 test235 test236 test520 test237 test238 test239 \ - test243 test245 test246 test247 test248 test249 test250 test251 test252 \ - test253 test254 test255 test521 test522 test523 test256 test257 test258 \ - test259 test260 test261 test262 test263 test264 test265 test266 test267 \ - test268 test269 test270 test271 test272 test273 test274 test275 test524 \ - test525 test276 test277 test526 test527 test528 test530 DISABLED test278 \ - test279 test531 test280 test529 test532 test533 test534 test535 test281 \ - test537 test282 test283 test284 test538 test285 test286 test307 test308 \ - test287 test400 test288 test600 test601 test602 test603 test401 test402 \ - test290 test291 test292 test293 test403 test404 test405 test604 test605 \ - test606 test607 test608 test609 test294 test295 test296 test297 test298 \ - test610 test611 test612 test406 test407 test408 test409 test613 test614 \ - test700 test701 test702 test704 test705 test703 test706 test707 test350 \ - test351 test352 test353 test289 test540 test354 test231 test1000 test1001 \ - test1002 test1003 test1004 test1005 test1006 test615 test1007 test541 \ - test1010 test1011 test1012 test542 test543 test536 test1008 test1009 \ - test2000 test2001 test2002 test2003 test35 test544 test545 test2004 \ - test546 test1013 test1014 test1015 test547 test548 test549 test550 \ - test551 test552 test1016 test1017 test1018 test1019 test1020 test553 \ - test1021 test1022 test1023 test309 test616 test617 test618 test619 \ - test620 test621 test622 test623 test624 test625 test626 test627 test554 \ - test1024 test1025 test555 test1026 test1027 test1028 test1029 test1030 \ - test556 test557 test1031 test628 test629 test630 test631 test632 test1032 \ - test1033 test539 test1034 test1035 test1036 test1037 test1038 test1039 \ - test1040 test1041 test1042 test1043 test1044 test1045 test1046 test1047 \ - test1048 test1049 test1050 test1051 test1052 test1053 test1054 test1055 \ - test1056 test1057 test1058 test1059 test1060 test1061 test1062 test1063 \ - test1064 test1065 test1066 test1067 test1068 test1069 test1070 test1071 \ - test1072 test1073 test1074 test1075 - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/data/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign tests/data/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -uninstall-info-am: -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile -installdirs: -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-libtool - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-info-am - -.PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-exec install-exec-am \ - install-info install-info-am install-man install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ - uninstall-info-am - -iall: -install: -test: - -filecheck: - @mkdir test-place; \ - cp "$(top_srcdir)"/tests/data/test[0-9]* test-place/; \ - rm test-place/*~; \ - for f in $(EXTRA_DIST); do \ - if test -f "$(top_srcdir)/tests/data/$$f"; then \ - rm -f "test-place/$$f"; \ - else \ - echo "$$f is listed but missing!"; \ - fi \ - done; \ - echo "Local files not present in EXTRA_DIST:" ; \ - ls test-place; \ - ! ls test-place | grep . >/dev/null ; \ - RC=$$? ; \ - rm -rf test-place ; \ - exit $$RC -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1 b/Utilities/cmcurl-7.19.0/tests/data/test1 deleted file mode 100644 index d3cc2d5..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1 +++ /dev/null @@ -1,55 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -</keywords> -</info> - -# -# Server-side -<reply name="1"> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 -Connection: close -Content-Type: text/html -Funny-head: yesyes - --foo- -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET - </name> - <command> -http://%HOSTIP:%HTTPPORT/1 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /1 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test10 b/Utilities/cmcurl-7.19.0/tests/data/test10 deleted file mode 100644 index 455d51c..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test10 +++ /dev/null @@ -1,67 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP PUT -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.0 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake - -blablabla - -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -simple HTTP PUT from file - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/want/10 -T log/test10.txt -</command> -<file name="log/test10.txt"> -Weird - file - to - upload -for - testing -the - PUT - feature -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -PUT /we/want/10 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 78 -Expect: 100-continue - -Weird - file - to - upload -for - testing -the - PUT - feature -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test100 b/Utilities/cmcurl-7.19.0/tests/data/test100 deleted file mode 100644 index 24b47ca..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test100 +++ /dev/null @@ -1,56 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -LIST -</keywords> -</info> -# -# Server-side -<reply> -# When doing LIST, we get the default list output hard-coded in the test -# FTP server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP dir list PASV - </name> - <command> -ftp://%HOSTIP:%FTPPORT/ -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE A -LIST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1000 b/Utilities/cmcurl-7.19.0/tests/data/test1000 deleted file mode 100644 index 1bf30a7..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1000 +++ /dev/null @@ -1,42 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -LIST -NOBODY -</keywords> -</info> -# -# Server-side -<reply> -<datacheck> -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP dir list PASV with -I - </name> - <command> -ftp://%HOSTIP:%FTPPORT/1000/ -I -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD 1000 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1001 b/Utilities/cmcurl-7.19.0/tests/data/test1001 deleted file mode 100644 index 2b1c5b4..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1001 +++ /dev/null @@ -1,105 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP Digest auth -HTTP PUT -Resume -Content-Range -CUSTOMREQUEST -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 100 Continue -Server: Microsoft-IIS/5.0 -Date: Sun, 03 Apr 2005 14:57:45 GMT -X-Powered-By: ASP.NET - -HTTP/1.1 401 authentication please swsbounce -Server: Microsoft-IIS/6.0 -WWW-Authenticate: Digest realm="testrealm", nonce="1053604144" -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 0 - -</data> -<data1000> -HTTP/1.1 200 A OK -Server: Microsoft-IIS/6.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 3 - -ok -</data1000> - -<datacheck> -HTTP/1.1 100 Continue -Server: Microsoft-IIS/5.0 -Date: Sun, 03 Apr 2005 14:57:45 GMT -X-Powered-By: ASP.NET - -HTTP/1.1 401 authentication please swsbounce -Server: Microsoft-IIS/6.0 -WWW-Authenticate: Digest realm="testrealm", nonce="1053604144" -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 0 - -HTTP/1.1 200 A OK -Server: Microsoft-IIS/6.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 3 - -ok -</datacheck> - -</reply> - -# Client-side -<client> -# -<server> -http -</server> - <name> -HTTP POST --digest with PUT and resumed upload and modified method - </name> - <command> -http://%HOSTIP:%HTTPPORT/1001 -u auser:apasswd --digest -T log/1001 -x http://%HOSTIP:%HTTPPORT -C 2 -X GET -</command> -<file name="log/1001"> -test -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET http://%HOSTIP:%HTTPPORT/1001 HTTP/1.1 -Content-Range: bytes 2-4/5 -User-Agent: curl/7.12.1-CVS (i686-pc-linux-gnu) libcurl/7.12.1-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.6 -Host: %HOSTIP:%HTTPPORT -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Content-Length: 0 -Expect: 100-continue - -GET http://%HOSTIP:%HTTPPORT/1001 HTTP/1.1 -Authorization: Digest username="auser", realm="testrealm", nonce="1053604144", uri="/1001", response="6af4d89c952f4dd4cc215a6878dc499d" -Content-Range: bytes 2-4/5 -Host: %HOSTIP:%HTTPPORT -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Content-Length: 3 -Expect: 100-continue - -st -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1002 b/Utilities/cmcurl-7.19.0/tests/data/test1002 deleted file mode 100644 index 6a2afed..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1002 +++ /dev/null @@ -1,116 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP Digest auth -HTTP PUT -Resume -Content-Range -CUSTOMREQUEST -</keywords> -</info> - -<reply> -<data> -HTTP/1.1 100 Continue -Server: Microsoft-IIS/5.0 -Date: Sun, 03 Apr 2005 14:57:45 GMT -X-Powered-By: ASP.NET - -HTTP/1.1 401 authentication please swsbounce -Server: Microsoft-IIS/6.0 -WWW-Authenticate: Digest realm="testrealm", nonce="1053604144" -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 0 - -</data> -<data1000> -HTTP/1.1 200 A OK -Server: Microsoft-IIS/6.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 3 - -ok -</data1000> - -<datacheck> -HTTP/1.1 100 Continue -Server: Microsoft-IIS/5.0 -Date: Sun, 03 Apr 2005 14:57:45 GMT -X-Powered-By: ASP.NET - -HTTP/1.1 401 authentication please swsbounce -Server: Microsoft-IIS/6.0 -WWW-Authenticate: Digest realm="testrealm", nonce="1053604144" -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 0 - -HTTP/1.1 200 A OK -Server: Microsoft-IIS/6.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 3 - -ok -</datacheck> - -</reply> - -# Client-side -<client> -# -<server> -http -</server> - <name> -HTTP POST --digest with PUT and resumed upload and modified method, twice - </name> - <command> -http://%HOSTIP:%HTTPPORT/1002.upload1 -T log/1002 http://%HOSTIP:%HTTPPORT/1002.upload2 -T log/1002 -u auser:apasswd --digest -x http://%HOSTIP:%HTTPPORT -C 2 -X GET -</command> -<file name="log/1002"> -test -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET http://%HOSTIP:%HTTPPORT/1002.upload1 HTTP/1.1 -Content-Range: bytes 2-4/5 -User-Agent: curl/7.12.1-CVS (i686-pc-linux-gnu) libcurl/7.12.1-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.6 -Host: %HOSTIP:%HTTPPORT -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Content-Length: 0 -Expect: 100-continue - -GET http://%HOSTIP:%HTTPPORT/1002.upload1 HTTP/1.1 -Authorization: Digest username="auser", realm="testrealm", nonce="1053604144", uri="/1002.upload1", response="198aa9b6acb4b0c71d02a197a5e41f54" -Content-Range: bytes 2-4/5 -Host: %HOSTIP:%HTTPPORT -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Content-Length: 3 -Expect: 100-continue - -st -GET http://%HOSTIP:%HTTPPORT/1002.upload2 HTTP/1.1 -Authorization: Digest username="auser", realm="testrealm", nonce="1053604144", uri="/1002.upload2", response="d711f0d2042786d930de635ba0d1a1d0" -Content-Range: bytes 2-4/5 -User-Agent: curl/7.16.1 -Host: %HOSTIP:%HTTPPORT -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Content-Length: 3 -Expect: 100-continue - -st -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1003 b/Utilities/cmcurl-7.19.0/tests/data/test1003 deleted file mode 100644 index 762ce1c..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1003 +++ /dev/null @@ -1,48 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -RETR -huge response -</keywords> -</info> -# Server-side -<reply> -<data> -mooo -</data> -# a ~17000 bytes response string to CWD to make sure the ftp parser deals -# with it nicely -<servercmd> -REPLY CWD 250 CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP with excessively large server command response line - </name> - <command> -ftp://%HOSTIP:%FTPPORT/path/1003 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD path -EPSV -TYPE I -SIZE 1003 -RETR 1003 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1004 b/Utilities/cmcurl-7.19.0/tests/data/test1004 deleted file mode 100644 index 8478cc1..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1004 +++ /dev/null @@ -1,59 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP proxy -</keywords> -</info> - -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 -Connection: close -Content-Type: text/html -Funny-head: yesyes - --foo- -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET with empty proxy - </name> - <command> -http://%HOSTIP:%HTTPPORT/1004 --proxy "" -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /1004 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1005 b/Utilities/cmcurl-7.19.0/tests/data/test1005 deleted file mode 100644 index 23d30fa..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1005 +++ /dev/null @@ -1,48 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -RETR -huge response -</keywords> -</info> -# Server-side -<reply> -<data> -mooo -</data> -# a long set of response strings to CWD to make sure the ftp parser deals -# with it nicely -<servercmd> -REPLY CWD 250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250 Finally, here is the response -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP with excessively large number of server command response lines - </name> - <command> -ftp://%HOSTIP:%FTPPORT/path/1005 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD path -EPSV -TYPE I -SIZE 1005 -RETR 1005 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1006 b/Utilities/cmcurl-7.19.0/tests/data/test1006 deleted file mode 100644 index a4742c6..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1006 +++ /dev/null @@ -1,49 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -RETR -huge response -</keywords> -</info> -# Server-side -<reply> -<data> -mooo -</data> -# A long set of response strings to CWD to make sure the ftp parser deals -# with it nicely. The length hits a boundary condition that may make curl -# hang. -<servercmd> -REPLY CWD 250-AAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250 Finally, here is the response -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP with excessively large number of server command response lines (boundary condition) - </name> - <command> -ftp://%HOSTIP:%FTPPORT/path/1006 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD path -EPSV -TYPE I -SIZE 1006 -RETR 1006 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1007 b/Utilities/cmcurl-7.19.0/tests/data/test1007 deleted file mode 100644 index 5966ab3..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1007 +++ /dev/null @@ -1,39 +0,0 @@ -<testcase> -<info> -<keywords> -TFTP -TFTP WRQ -FAILURE -</keywords> -</info> - -# -# Client-side -<client> -<server> -tftp -</server> - <name> -TFTP send with invalid permission on server - </name> - <command> --T log/test1007.txt tftp://%HOSTIP:%TFTPPORT//invalid-file --trace-ascii log/traceit -</command> -<file name="log/test1007.txt"> -This data will not be sent -</file> -</client> - -# -# Verify pseudo protocol after the test has been "shot" -<verify> -<errorcode> -69 -</errorcode> -<protocol> -opcode: 2 -filename: /invalid-file -mode: octet -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1008 b/Utilities/cmcurl-7.19.0/tests/data/test1008 deleted file mode 100644 index e3b6b65..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1008 +++ /dev/null @@ -1,122 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP CONNECT -HTTP proxy -HTTP proxy NTLM auth -</keywords> -</info> - -# Server-side -<reply> - -# this is returned first since we get no proxy-auth -<data1001> -HTTP/1.1 407 Authorization Required to proxy me my dear -Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== -Transfer-Encoding: chunked - -20 -And you should ignore this data. -FA0 -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -0 - -</data1001> - -# This is supposed to be returned when the server gets the second -# Authorization: NTLM line passed-in from the client -<data1002> -HTTP/1.1 200 Things are fine in proxy land -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 - -</data1002> - -# this is returned when we get a GET! -<data2> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 7 -Connection: close -Content-Type: text/html -Funny-head: yesyes - -daniel -</data2> - -# then this is returned when we get proxy-auth -<data1000> -HTTP/1.1 200 OK swsbounce -Server: no - -Nice proxy auth sir! -</data1000> - -<datacheck> -HTTP/1.1 407 Authorization Required to proxy me my dear -Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== -Transfer-Encoding: chunked - -HTTP/1.1 200 Things are fine in proxy land -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 - -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 7 -Connection: close -Content-Type: text/html -Funny-head: yesyes - -daniel -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> -<features> -NTLM -</features> - <name> -HTTP proxy CONNECT auth NTLM with chunked-encoded 407 response - </name> - <command> -http://test.remote.server.com:1008/path/10080002 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-ntlm --proxytunnel -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -# We strip off a large chunk of the type-2 NTLM message since it depends on -# the local host name and thus differs on different machines! -<strippart> -s/^(Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA).*/$1/ -</strippart> -<protocol> -CONNECT test.remote.server.com:1008 HTTP/1.0 -Host: test.remote.server.com:1008 -Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= -Proxy-Connection: Keep-Alive - -CONNECT test.remote.server.com:1008 HTTP/1.0 -Host: test.remote.server.com:1008 -Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA -Proxy-Connection: Keep-Alive - -GET /path/10080002 HTTP/1.1 -User-Agent: curl/7.12.3-CVS (i686-pc-linux-gnu) libcurl/7.12.3-CVS OpenSSL/0.9.6b zlib/1.1.4 -Host: test.remote.server.com:1008 -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1009 b/Utilities/cmcurl-7.19.0/tests/data/test1009 deleted file mode 100644 index b0a93e5..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1009 +++ /dev/null @@ -1,44 +0,0 @@ -<testcase> -<info> -<keywords> -TFTP -TFTP RRQ ---local-port -</keywords> -</info> - -# -# Server-side -<reply> -<data> -a chunk of -data -returned - to client -</data> -</reply> - -# -# Client-side -<client> -<server> -tftp -</server> - <name> -TFTP retrieve with --local-port - </name> - <command> -tftp://%HOSTIP:%TFTPPORT//1009 --local-port 44444-45444 -</command> -</client> - -# -# Verify pseudo protocol after the test has been "shot" -<verify> -<protocol> -opcode: 1 -filename: /1009 -mode: octet -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test101 b/Utilities/cmcurl-7.19.0/tests/data/test101 deleted file mode 100644 index 2ae00a5..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test101 +++ /dev/null @@ -1,58 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PORT -LIST -</keywords> -</info> -# Server-side -<reply> -# When doing LIST, we get the default list output hard-coded in the test -# FTP server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP dir list, PORT with specified IP - </name> - <command> -ftp://%HOSTIP:%FTPPORT/ -P %CLIENTIP -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -# Strip all valid kinds of PORT and EPRT that curl can send -<strip> -^PORT \d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3} -^EPRT \|1\|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\|\d{1,5}\| -</strip> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -PORT 127,0,0,1,243,212 -TYPE A -LIST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1010 b/Utilities/cmcurl-7.19.0/tests/data/test1010 deleted file mode 100644 index 87c1246..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1010 +++ /dev/null @@ -1,56 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -LIST -</keywords> -</info> -# -# Server-side -<reply> -# When doing LIST, we get the default list output hard-coded in the test -# FTP server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP dir list nocwd - </name> - <command> -ftp://%HOSTIP:%FTPPORT//list/this/path/1010/ --ftp-method nocwd -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE A -LIST /list/this/path/1010/ -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1011 b/Utilities/cmcurl-7.19.0/tests/data/test1011 deleted file mode 100644 index b474321..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1011 +++ /dev/null @@ -1,76 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP POST -followlocation -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 301 OK swsclose -Location: moo.html&testcase=/10110002 -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -</data> -<data2> -HTTP/1.1 200 OK swsclose -Location: this should be ignored -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -body -</data2> -<datacheck> -HTTP/1.1 301 OK swsclose -Location: moo.html&testcase=/10110002 -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -HTTP/1.1 200 OK swsclose -Location: this should be ignored -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -body -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP POST with 301 redirect - </name> - <command> -http://%HOSTIP:%HTTPPORT/blah/1011 -L -d "moo" -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -POST /blah/1011 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 3 -Content-Type: application/x-www-form-urlencoded - -mooGET /blah/moo.html&testcase=/10110002 HTTP/1.1 -User-Agent: curl/7.10 (i686-pc-linux-gnu) libcurl/7.10 OpenSSL/0.9.6c ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1012 b/Utilities/cmcurl-7.19.0/tests/data/test1012 deleted file mode 100644 index bd9acee..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1012 +++ /dev/null @@ -1,79 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP POST -followlocation -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 301 OK swsclose -Location: moo.html&testcase=/10120002 -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -</data> -<data2> -HTTP/1.1 200 OK swsclose -Location: this should be ignored -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -body -</data2> -<datacheck> -HTTP/1.1 301 OK swsclose -Location: moo.html&testcase=/10120002 -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -HTTP/1.1 200 OK swsclose -Location: this should be ignored -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -body -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP POST with 301 redirect and --post301 - </name> - <command> -http://%HOSTIP:%HTTPPORT/blah/1012 -L -d "moo" --post301 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol nonewline="yes"> -POST /blah/1012 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 3 -Content-Type: application/x-www-form-urlencoded - -mooPOST /blah/moo.html&testcase=/10120002 HTTP/1.1 -User-Agent: curl/7.10 (i686-pc-linux-gnu) libcurl/7.10 OpenSSL/0.9.6c ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 3 -Content-Type: application/x-www-form-urlencoded - -moo -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1013 b/Utilities/cmcurl-7.19.0/tests/data/test1013 deleted file mode 100644 index 9a1e6d4..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1013 +++ /dev/null @@ -1,37 +0,0 @@ -<testcase> -<info> -<keywords> -curl-config -</keywords> -</info> - -# -# Server-side -<reply> -</reply> - -# -# Client-side -<client> -<server> -none -</server> - <name> -Compare curl --version with curl-config --protocols - </name> - <command> ---version -</command> -<postcheck> -%SRCDIR/libtest/test1013.pl ../curl-config log/stdout1013 protocols -</postcheck> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<errorcode> -0 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1014 b/Utilities/cmcurl-7.19.0/tests/data/test1014 deleted file mode 100644 index 5116aad..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1014 +++ /dev/null @@ -1,37 +0,0 @@ -<testcase> -<info> -<keywords> -curl-config -</keywords> -</info> - -# -# Server-side -<reply> -</reply> - -# -# Client-side -<client> -<server> -none -</server> - <name> -Compare curl --version with curl-config --features - </name> - <command> ---version -</command> -<postcheck> -%SRCDIR/libtest/test1013.pl ../curl-config log/stdout1014 features -</postcheck> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<errorcode> -0 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1015 b/Utilities/cmcurl-7.19.0/tests/data/test1015 deleted file mode 100644 index f6637b6..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1015 +++ /dev/null @@ -1,53 +0,0 @@ -<testcase> -<info> -<keywords> ---data-urlencode -</keywords> -</info> - -# -# Server-side -<reply> -<data> -HTTP/1.1 200 I am cool swsclose -Server: Cool server/10.0 -Content-Length: 0 - -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> ---data-urlencode - </name> - <command> -http://%HOSTIP:%HTTPPORT/1015 --data-urlencode "my name is moo[]" --data-urlencode "y e s=s_i_r" --data-urlencode "v_alue@log/1015.txt" --data-urlencode @log/1015.txt -</command> -<file name="log/1015.txt"> -content to _?!#$'|<> -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol nonewline="yes"> -POST /1015 HTTP/1.1 -User-Agent: curl/7.17.2-CVS (i686-pc-linux-gnu) libcurl/7.17.2-CVS OpenSSL/0.9.8g zlib/1.2.3.3 c-ares/1.5.2-CVS libidn/1.1 libssh2/0.19.0-C -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 141 -Content-Type: application/x-www-form-urlencoded - -my%20name%20is%20moo%5B%5D&y e s=s%5Fi%5Fr&v_alue=content%20to%20%5F%3F%21%23%24%27%7C%3C%3E%0A&content%20to%20%5F%3F%21%23%24%27%7C%3C%3E%0A -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1016 b/Utilities/cmcurl-7.19.0/tests/data/test1016 deleted file mode 100644 index b404cac..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1016 +++ /dev/null @@ -1,39 +0,0 @@ -<testcase> -<info> -<keywords> -FILE -Range -</keywords> -</info> - -<reply> -<data> -</data> -</reply> - -# Client-side -<client> -<server> -none -</server> -<features> -file -</features> - <name> -X-Y range on a file:// URL to stdout - </name> - <command> --r 1-4 file://localhost/%PWD/log/test1016.txt -</command> -<file name="log/test1016.txt"> -1234567890 -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<stdout nonewline="yes"> -2345 -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1017 b/Utilities/cmcurl-7.19.0/tests/data/test1017 deleted file mode 100644 index 6fbc38a..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1017 +++ /dev/null @@ -1,40 +0,0 @@ -<testcase> -<info> -<keywords> -FILE -Range -</keywords> -</info> - -# Server-side -<reply> -<data> -</data> -</reply> - -# Client-side -<client> -<server> -none -</server> -<features> -file -</features> - <name> -0-Y range on a file:// URL to stdout - </name> - <command> --r 0-3 file://localhost/%PWD/log/test1017.txt -</command> -<file name="log/test1017.txt"> -1234567890 -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<stdout nonewline="yes"> -1234 -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1018 b/Utilities/cmcurl-7.19.0/tests/data/test1018 deleted file mode 100644 index 28a7027..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1018 +++ /dev/null @@ -1,39 +0,0 @@ -<testcase> -<info> -<keywords> -FILE -Range -</keywords> -</info> - -<reply> -<data> -</data> -</reply> - -# Client-side -<client> -<server> -none -</server> -<features> -file -</features> - <name> -X-X range on a file:// URL to stdout - </name> - <command> --r 4-4 file://localhost/%PWD/log/test1018.txt -</command> -<file name="log/test1018.txt"> -1234567890 -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<stdout nonewline="yes"> -5 -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1019 b/Utilities/cmcurl-7.19.0/tests/data/test1019 deleted file mode 100644 index 4d9872a..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1019 +++ /dev/null @@ -1,42 +0,0 @@ -<testcase> -<info> -<keywords> -FILE -Range -</keywords> -</info> - -# Server-side -<reply> -<data> -</data> -</reply> - -# Client-side -<client> -<server> -none -</server> -<features> -file -</features> - <name> -X- range on a file:// URL to stdout - </name> - <command> --r 7- file://localhost/%PWD/log/test1019.txt -</command> -<file name="log/test1019.txt"> -1234567890 -1234567890 -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<stdout> -890 -1234567890 -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test102 b/Utilities/cmcurl-7.19.0/tests/data/test102 deleted file mode 100644 index e608150..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test102 +++ /dev/null @@ -1,52 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -RETR -</keywords> -</info> -# Server-side -<reply> -<data> -data - to - see -that FTP -works - so does it? -</data> -<servercmd> -REPLY EPSV 500 no such command -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP RETR PASV - </name> - <command> -ftp://%HOSTIP:%FTPPORT/102 -</command> - -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -PASV -TYPE I -SIZE 102 -RETR 102 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1020 b/Utilities/cmcurl-7.19.0/tests/data/test1020 deleted file mode 100644 index 735871d..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1020 +++ /dev/null @@ -1,42 +0,0 @@ -<testcase> -<info> -<keywords> -FILE -Range -</keywords> -</info> - -# Server-side -<reply> -<data> -</data> -</reply> - -# Client-side -<client> -<server> -none -</server> -<features> -file -</features> - <name> --Y range on a file:// URL to stdout - </name> - <command> --r -9 file://localhost/%PWD/log/test1020.txt -</command> -<file name="log/test1020.txt"> -1234567890 -1234567890 -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<stdout> -34567890 -</stdout> -</verify> -</testcase> - diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1021 b/Utilities/cmcurl-7.19.0/tests/data/test1021 deleted file mode 100644 index e5a825f..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1021 +++ /dev/null @@ -1,135 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP CONNECT -HTTP proxy -HTTP proxy NTLM auth ---proxy-anyauth -</keywords> -</info> -# Server-side -<reply> - -<data> -HTTP/1.1 407 Authorization Required to proxy me my dear swsclose -Proxy-Authenticate: NTLM -Content-Length: 21 -Connection: close - -data to discard -</data> - -# this is returned first since we get no proxy-auth -<data1001> -HTTP/1.1 407 Authorization Required to proxy me my dear -Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== -Content-Length: 28 - -And you should ignore this data. -</data1001> - -# This is supposed to be returned when the server gets the second -# Authorization: NTLM line passed-in from the client -<data1002> -HTTP/1.1 200 Things are fine in proxy land -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 - -</data1002> - -# this is returned when we get a GET! -<data2> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 7 -Connection: close -Content-Type: text/html -Funny-head: yesyes - -daniel -</data2> - -# then this is returned when we get proxy-auth -<data1000> -HTTP/1.1 200 OK swsbounce -Server: no - -Nice proxy auth sir! -</data1000> - -<datacheck> -HTTP/1.1 407 Authorization Required to proxy me my dear swsclose -Proxy-Authenticate: NTLM -Content-Length: 21 -Connection: close - -HTTP/1.1 407 Authorization Required to proxy me my dear -Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== -Content-Length: 28 - -HTTP/1.1 200 Things are fine in proxy land -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 - -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 7 -Connection: close -Content-Type: text/html -Funny-head: yesyes - -daniel -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> -<features> -NTLM -</features> - <name> -HTTP proxy CONNECT with any proxyauth and proxy offers NTLM and close - </name> - <command> -http://test.remote.server.com:1021/path/10210002 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-anyauth --proxytunnel -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -# We strip off a large chunk of the type-2 NTLM message since it depends on -# the local host name and thus differs on different machines! -<strippart> -s/^(Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA).*/$1/ -</strippart> -<protocol> -CONNECT test.remote.server.com:1021 HTTP/1.0 -Host: test.remote.server.com:1021 -Proxy-Connection: Keep-Alive - -CONNECT test.remote.server.com:1021 HTTP/1.0 -Host: test.remote.server.com:1021 -Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= -Proxy-Connection: Keep-Alive - -CONNECT test.remote.server.com:1021 HTTP/1.0 -Host: test.remote.server.com:1021 -Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA -Proxy-Connection: Keep-Alive - -GET /path/10210002 HTTP/1.1 -User-Agent: curl/7.12.3-CVS (i686-pc-linux-gnu) libcurl/7.12.3-CVS OpenSSL/0.9.6b zlib/1.1.4 -Host: test.remote.server.com:1021 -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1022 b/Utilities/cmcurl-7.19.0/tests/data/test1022 deleted file mode 100644 index 6a8b012..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1022 +++ /dev/null @@ -1,37 +0,0 @@ -<testcase> -<info> -<keywords> -curl-config -</keywords> -</info> - -# -# Server-side -<reply> -</reply> - -# -# Client-side -<client> -<server> -none -</server> - <name> -Compare curl --version with curl-config --version - </name> - <command> ---version -</command> -<postcheck> -%SRCDIR/libtest/test1022.pl ../curl-config log/stdout1022 version -</postcheck> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<errorcode> -0 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1023 b/Utilities/cmcurl-7.19.0/tests/data/test1023 deleted file mode 100644 index 9c916a0..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1023 +++ /dev/null @@ -1,37 +0,0 @@ -<testcase> -<info> -<keywords> -curl-config -</keywords> -</info> - -# -# Server-side -<reply> -</reply> - -# -# Client-side -<client> -<server> -none -</server> - <name> -Compare curl --version with curl-config --vernum - </name> - <command> ---version -</command> -<postcheck> -%SRCDIR/libtest/test1022.pl ../curl-config log/stdout1023 vernum -</postcheck> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<errorcode> -0 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1024 b/Utilities/cmcurl-7.19.0/tests/data/test1024 deleted file mode 100644 index 6d98e3d..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1024 +++ /dev/null @@ -1,103 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -followlocation -cookies -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 301 This is a weirdo text message -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: ../data/10240002.txt -Set-Cookie: firstcookie=want; path=/want/ -Content-Length: 69 - -This server reply is for testing a Location: following with cookies - -</data> -<data2> -HTTP/1.1 301 This is a weirdo text message -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: ../want/10240003.txt -Set-Cookie: nextcookie=data; path=/data/ -Content-Length: 69 - -This server reply is for testing a Location: following with cookies - -</data2> -<data3> -HTTP/1.1 200 Followed here fine -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 52 - -If this is received, the location following worked - -</data3> -<datacheck> -HTTP/1.1 301 This is a weirdo text message -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: ../data/10240002.txt -Set-Cookie: firstcookie=want; path=/want/ -Content-Length: 69 - -HTTP/1.1 301 This is a weirdo text message -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: ../want/10240003.txt -Set-Cookie: nextcookie=data; path=/data/ -Content-Length: 69 - -HTTP/1.1 200 Followed here fine -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 52 - -If this is received, the location following worked - -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP Location: following with cookies - </name> - <command> -http://%HOSTIP:%HTTPPORT/want/1024 -L -c log/jar1024 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /want/1024 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /data/10240002.txt HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /want/10240003.txt HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Cookie: firstcookie=want - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1025 b/Utilities/cmcurl-7.19.0/tests/data/test1025 deleted file mode 100644 index 22a8f24..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1025 +++ /dev/null @@ -1,105 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -followlocation -cookies -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 301 This is a weirdo text message -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: ../data/10250002.txt -Set-Cookie: firstcookie=want; path=/want/ -Content-Length: 69 - -This server reply is for testing a Location: following with cookies - -</data> -<data2> -HTTP/1.1 301 This is a weirdo text message -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: ../want/10250003.txt -Set-Cookie: nextcookie=data; path=/data/ -Content-Length: 69 - -This server reply is for testing a Location: following with cookies - -</data2> -<data3> -HTTP/1.1 200 Followed here fine -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 52 - -If this is received, the location following worked - -</data3> -<datacheck> -HTTP/1.1 301 This is a weirdo text message -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: ../data/10250002.txt -Set-Cookie: firstcookie=want; path=/want/ -Content-Length: 69 - -HTTP/1.1 301 This is a weirdo text message -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: ../want/10250003.txt -Set-Cookie: nextcookie=data; path=/data/ -Content-Length: 69 - -HTTP/1.1 200 Followed here fine -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 52 - -If this is received, the location following worked - -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP Location: following with command-line and server cookies - </name> - <command> -http://%HOSTIP:%HTTPPORT/want/1025 -L -c log/jar1025 -b forcedcookie=yes -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /want/1025 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Cookie: forcedcookie=yes - -GET /data/10250002.txt HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Cookie: forcedcookie=yes - -GET /want/10250003.txt HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Cookie: firstcookie=want; forcedcookie=yes - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1026 b/Utilities/cmcurl-7.19.0/tests/data/test1026 deleted file mode 100644 index e47b12a..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1026 +++ /dev/null @@ -1,39 +0,0 @@ -<testcase> -<info> -<keywords> ---manual -</keywords> -</info> - -# -# Server-side -<reply> -</reply> - -# -# Client-side -<client> -<server> -none -</server> - <name> -curl --manual - </name> - <command> ---manual -</command> -# Search for these two sentinel lines in the manual output; if they are found, -# then chances are good the entire manual is there. -<postcheck> -perl -e 'open(IN,$ARGV[0]); my $lines=grep(/(a\s*tool\s*to\s*transfer\s*data)|(mailing\s*lists\s*to\s*discuss\s*curl)/, <IN>); exit ($lines != 2); # Let this file pass an XML syntax check: </IN>' log/stdout1026 -</postcheck> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<errorcode> -0 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1027 b/Utilities/cmcurl-7.19.0/tests/data/test1027 deleted file mode 100644 index 9c3d6e3..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1027 +++ /dev/null @@ -1,39 +0,0 @@ -<testcase> -<info> -<keywords> ---help -</keywords> -</info> - -# -# Server-side -<reply> -</reply> - -# -# Client-side -<client> -<server> -none -</server> - <name> -curl --help - </name> - <command> ---help -</command> -# Search for these two sentinel lines in the help output; if they are found, -# then chances are good the entire help is there. -<postcheck> -perl -e 'open(IN,$ARGV[0]); my $lines=grep(/(Usage: curl )|(--version\s*Show version)/, <IN>); exit ($lines != 2); # Let this file pass an XML syntax check: </IN>' log/stdout1027 -</postcheck> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<errorcode> -0 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1028 b/Utilities/cmcurl-7.19.0/tests/data/test1028 deleted file mode 100644 index 593bbd4..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1028 +++ /dev/null @@ -1,94 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -followlocation -FTP -PASV -FILE -</keywords> -</info> - -# -# Server-side -<reply> -<data1> -HTTP/1.1 302 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake swsclose -Content-Type: text/html -Funny-head: yesyes -Location: ftp://127.0.0.1:8992/10280002 -Content-Length: 0 -Connection: close - -</data1> -<data2> -data - to - see -that FTP -works - so does it? -</data2> -</reply> - -# -# Client-side -<client> -<server> -http -ftp -</server> - <name> -HTTP Location: redirect to FTP URL - </name> - <command> -http://%HOSTIP:%HTTPPORT/10280001 -L -</command> -# The data section doesn't do variable substitution, so we must assert this -<precheck> -perl -e "print 'Test requires default test server host and port' if ( '%HOSTIP' ne '127.0.0.1' || '%FTPPORT' ne '8992' );" -</precheck> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /10280001 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE I -SIZE 10280002 -RETR 10280002 -QUIT -</protocol> -<stdout> -HTTP/1.1 302 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake swsclose -Content-Type: text/html -Funny-head: yesyes -Location: ftp://%HOSTIP:%FTPPORT/10280002 -Content-Length: 0 -Connection: close - -data - to - see -that FTP -works - so does it? -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1029 b/Utilities/cmcurl-7.19.0/tests/data/test1029 deleted file mode 100644 index 839df0a..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1029 +++ /dev/null @@ -1,58 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -redirect_url -followlocation ---write-out -</keywords> -</info> - -# Server-side -<reply> -<data nocheck="1"> -HTTP/1.1 301 This is a weirdo text message swsclose -Location: data/10290002.txt?coolsite=yes -Content-Length: 62 -Connection: close - -This server reply is for testing a simple Location: following -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP Location: and 'redirect_url' check - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/want/our/1029 -w '%{redirect_url}\n' -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /we/want/our/1029 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -<stdout mode="text"> -HTTP/1.1 301 This is a weirdo text message swsclose -Location: data/10290002.txt?coolsite=yes -Content-Length: 62 -Connection: close - -This server reply is for testing a simple Location: following -http://%HOSTIP:%HTTPPORT/we/want/our/data/10290002.txt?coolsite=yes -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test103 b/Utilities/cmcurl-7.19.0/tests/data/test103 deleted file mode 100644 index 0c5de32..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test103 +++ /dev/null @@ -1,54 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PORT -RETR -</keywords> -</info> -# Server-side -<reply> -<data> -data - to - see -that FTP -works - so does it? -</data> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP RETR PORT with CWD - </name> - <command> -ftp://%HOSTIP:%FTPPORT/a/path/103 -P - -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -# Strip all valid kinds of PORT and EPRT that curl can send -<strip> -^PORT \d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3} -^EPRT \|1\|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\|\d{1,5}\| -</strip> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD a -CWD path -PORT 127,0,0,1,0,0 -TYPE I -SIZE 103 -RETR 103 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1030 b/Utilities/cmcurl-7.19.0/tests/data/test1030 deleted file mode 100644 index f478981..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1030 +++ /dev/null @@ -1,109 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP PUT -HTTP Digest auth ---anyauth -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 401 Authorization Required -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Blackmagic realm="gimme all yer s3cr3ts" -WWW-Authenticate: Basic realm="gimme all yer s3cr3ts" -WWW-Authenticate: Digest realm="gimme all yer s3cr3ts", nonce="11223344" -Content-Length: 26 -Content-Type: text/html; charset=iso-8859-1 - -This is not the real page -</data> - -# This is supposed to be returned when the server gets a -# Authorization: Digest line passed-in from the client -<data1000> -HTTP/1.1 200 OK -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 23 -Connection: close - -This IS the real page! -</data1000> - -<datacheck> -HTTP/1.1 401 Authorization Required -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Blackmagic realm="gimme all yer s3cr3ts" -WWW-Authenticate: Basic realm="gimme all yer s3cr3ts" -WWW-Authenticate: Digest realm="gimme all yer s3cr3ts", nonce="11223344" -Content-Length: 26 -Content-Type: text/html; charset=iso-8859-1 - -HTTP/1.1 200 OK -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 23 -Connection: close - -This IS the real page! -</datacheck> - -</reply> - -# Client-side -<client> -<server> -http -</server> -<features> -crypto -</features> - <name> -HTTP PUT with --anyauth authorization (picking Digest) - </name> - <command> -http://%HOSTIP:%HTTPPORT/1030 -T log/put1030 -u testuser:testpass --anyauth -</command> -<file name="log/put1030"> -This is data we upload with PUT -a second line -line three -four is the number of lines -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -PUT /1030 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 85 -Expect: 100-continue - -This is data we upload with PUT -a second line -line three -four is the number of lines -PUT /1030 HTTP/1.1 -Authorization: Digest username="testuser", realm="gimme all yer s3cr3ts", nonce="11223344", uri="/1030", response="01cb59db1ddaac246b072d5f5f0716d9" -User-Agent: curl/7.10.5 (i686-pc-linux-gnu) libcurl/7.10.5 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 85 -Expect: 100-continue - -This is data we upload with PUT -a second line -line three -four is the number of lines -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1031 b/Utilities/cmcurl-7.19.0/tests/data/test1031 deleted file mode 100644 index cddad4b..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1031 +++ /dev/null @@ -1,76 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -followlocation -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 301 This is a weirdo text message swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: ?coolsite=yes/10310002.txt -Connection: close - -This server reply is for testing a simple Location: following - -</data> -<data2> -HTTP/1.1 200 Followed here fine swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 52 - -If this is received, the location following worked - -</data2> -<datacheck> -HTTP/1.1 301 This is a weirdo text message swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: ?coolsite=yes/10310002.txt -Connection: close - -HTTP/1.1 200 Followed here fine swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 52 - -If this is received, the location following worked - -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP Location: following to a query string - </name> - <command> -http://%HOSTIP:%HTTPPORT/want/this/1031 -L -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /want/this/1031 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /want/this/1031?coolsite=yes/10310002.txt HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1032 b/Utilities/cmcurl-7.19.0/tests/data/test1032 deleted file mode 100644 index 418b6c4..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1032 +++ /dev/null @@ -1,56 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP HEAD -range -</keywords> -</info> - -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 -Connection: close -Content-Type: text/html -Funny-head: yesyes - -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP HEAD with --range - </name> - <command> ---range 1-3 --head http://%HOSTIP:%HTTPPORT/1032 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -HEAD /1032 HTTP/1.1 -Range: bytes=1-3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1033 b/Utilities/cmcurl-7.19.0/tests/data/test1033 deleted file mode 100644 index ff2c000..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1033 +++ /dev/null @@ -1,60 +0,0 @@ -<testcase> -# -# This case with an unexpected 1xx response used to cause a "hang" before the fix -# got 7.19.0 -<info> -<keywords> -HTTP -HTTP GET -</keywords> -</info> - -# -# Server-side -<reply> -<data> -HTTP/1.1 102 unexpected huh?! - -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 -Connection: close -Content-Type: text/html -Funny-head: yesyes - --foo- -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET with 102 response! - </name> - <command> -http://%HOSTIP:%HTTPPORT/1033 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /1033 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1034 b/Utilities/cmcurl-7.19.0/tests/data/test1034 deleted file mode 100644 index 8631502..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1034 +++ /dev/null @@ -1,62 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -IDN -FAILURE -</keywords> -</info> - -# -# Server-side -<reply> -<data> -HTTP/1.0 503 Service Unavailable -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake swsclose -Content-Type: text/html -Funny-head: yesyes - -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> -<features> -idn -</features> -<setenv> -CHARSET=UTF-8 -</setenv> - <name> -HTTP over proxy with malformatted IDN host name - </name> - -# This host name contains an invalid UTF-8 byte sequence that can't be -# converted into an IDN name - <command> -http://invalid-utf8-â.local/page/1034 -x %HOSTIP:%HTTPPORT -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET http://invalid-utf8-â.local/page/1034 HTTP/1.1 -Host: invalid-utf8-â.local -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1035 b/Utilities/cmcurl-7.19.0/tests/data/test1035 deleted file mode 100644 index bc902d0..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1035 +++ /dev/null @@ -1,59 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -IDN -FAILURE -</keywords> -</info> - -# -# Server-side -<reply> -<data> -HTTP/1.0 503 Service Unavailable -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake swsclose -Content-Type: text/html -Funny-head: yesyes - -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> -<features> -idn -</features> -<setenv> -CHARSET=ISO8859-1 -</setenv> - <name> -HTTP over proxy with too long IDN host name - </name> - <command> -http://too-long-IDN-name-cürl-rüles-la-la-la-dee-da-flooby-nooby.local/page/1035 -x %HOSTIP:%HTTPPORT -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET http://too-long-IDN-name-cürl-rüles-la-la-la-dee-da-flooby-nooby.local/page/1035 HTTP/1.1 -Host: too-long-IDN-name-cürl-rüles-la-la-la-dee-da-flooby-nooby.local -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1036 b/Utilities/cmcurl-7.19.0/tests/data/test1036 deleted file mode 100644 index e34dbcb..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1036 +++ /dev/null @@ -1,61 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -RETR -Resume -</keywords> -</info> - -# Server-side -<reply> -<data nocheck="1"> -expected to be a file without the first part -but we emulate that -</data> -<size> -85 -</size> -<servercmd> -REPLY EPSV 500 no such command -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP download resume from end of file - </name> - <command> -ftp://%HOSTIP:%FTPPORT/1036 -C - -</command> -<file name="log/curl1036.out"> -This is the start!! -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -PASV -TYPE I -SIZE 1036 -REST 20 -RETR 1036 -QUIT -</protocol> -<file name="log/curl1036.out"> -This is the start!! -expected to be a file without the first part -but we emulate that -</file> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1037 b/Utilities/cmcurl-7.19.0/tests/data/test1037 deleted file mode 100644 index cfe127f..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1037 +++ /dev/null @@ -1,54 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -RETR -Resume -</keywords> -</info> - -# Server-side -<reply> -<data nocheck="1"> -expected to be a file without the first part -but we emulate that -</data> -<size> -65 -</size> -<servercmd> -REPLY EPSV 500 no such command -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP download resume from end of empty file - </name> - <command> -ftp://%HOSTIP:%FTPPORT/1037 -C - -</command> -<file name="log/curl1037.out"> -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -PASV -TYPE I -SIZE 1037 -RETR 1037 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1038 b/Utilities/cmcurl-7.19.0/tests/data/test1038 deleted file mode 100644 index 4a81fe4..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1038 +++ /dev/null @@ -1,53 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -EPSV -APPE -Resume -</keywords> -</info> -# Server-side -<reply> -<size> -17 -</size> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP PASV upload resume from end of file - </name> - <command> -ftp://%HOSTIP:%FTPPORT/1038 -T log/upload1038 -C - -</command> -<file name="log/upload1038"> -this is the *****cr@p******** that we're gonna upload - -worx? -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE I -SIZE 1038 -APPE 1038 -QUIT -</protocol> -<upload> -cr@p******** that we're gonna upload - -worx? -</upload> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1039 b/Utilities/cmcurl-7.19.0/tests/data/test1039 deleted file mode 100644 index d476590..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1039 +++ /dev/null @@ -1,53 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -EPSV -APPE -Resume -</keywords> -</info> -# Server-side -<reply> -<size> -0 -</size> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP PASV upload resume from end of empty file - </name> - <command> -ftp://%HOSTIP:%FTPPORT/1039 -T log/upload1039 -C - -</command> -<file name="log/upload1039"> -this is the *****cr@p******** that we're gonna upload - -worx? -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE I -SIZE 1039 -STOR 1039 -QUIT -</protocol> -<upload> -this is the *****cr@p******** that we're gonna upload - -worx? -</upload> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test104 b/Utilities/cmcurl-7.19.0/tests/data/test104 deleted file mode 100644 index caae075..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test104 +++ /dev/null @@ -1,43 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -NOBODY -</keywords> -</info> -# Server-side -<reply> -<size> -51 -</size> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP --head to get file size only - </name> - <command> -ftp://%HOSTIP:%FTPPORT/a/path/103 --head -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD a -CWD path -MDTM 103 -TYPE I -SIZE 103 -REST 0 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1040 b/Utilities/cmcurl-7.19.0/tests/data/test1040 deleted file mode 100644 index a367093..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1040 +++ /dev/null @@ -1,79 +0,0 @@ -<testcase> -# Similar to test92 -<info> -<keywords> -HTTP -HTTP GET -Resume -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 416 Invalid range -Connection: close -Content-Length: 0 - -</data> - -# The file data that exists at the start of the test must be included in -# the verification. -<datacheck> -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -HTTP/1.1 416 Invalid range -Connection: close -Content-Length: 0 - -</datacheck> - -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET with resume from end of entirely-downloaded file - </name> - <command> -http://%HOSTIP:%HTTPPORT/1040 -C - -</command> -<file name="log/curl1040.out"> -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /1040 HTTP/1.1 -Range: bytes=100- -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1041 b/Utilities/cmcurl-7.19.0/tests/data/test1041 deleted file mode 100644 index b05127a..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1041 +++ /dev/null @@ -1,78 +0,0 @@ -<testcase> -# Similar to test33 -<info> -<keywords> -HTTP -HTTP PUT -Resume -Content-Range -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Accept-Ranges: bytes -Content-Length: 0 -Connection: close -Content-Type: text/html - -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP PUT with resume from end of already-uploaded file - </name> -<file name="log/test1041.txt"> -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -</file> - <command> -http://%HOSTIP:%HTTPPORT/1041 -Tlog/test1041.txt -C - -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -# curl doesn't do a HEAD request on the remote file so it has no idea whether -# it can skip part of the file or not. Instead, it sends the entire file. -<protocol> -PUT /1041 HTTP/1.1 -Content-Range: bytes 0-99/100 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 100 -Expect: 100-continue - -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1042 b/Utilities/cmcurl-7.19.0/tests/data/test1042 deleted file mode 100644 index 5b32b76..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1042 +++ /dev/null @@ -1,94 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -Resume -FAILURE -</keywords> -</info> - -# Server-side -<reply> -# Some servers (e.g. Apache 1.2) respond this way to an invalid byte range -<data> -HTTP/1.1 200 OK -Connection: close -Content-Length: 100 -Content-Type: text/plain - -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -</data> - -# The file data that exists at the start of the test must be included in -# the verification. -<datacheck> -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -HTTP/1.1 200 OK -Connection: close -Content-Length: 100 -Content-Type: text/plain - -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET from end of entirely-downloaded file, no server resume - </name> - <command> -http://%HOSTIP:%HTTPPORT/1042 -C - -</command> -<file name="log/curl1042.out"> -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -33 -</errorcode> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /1042 HTTP/1.1 -Range: bytes=100- -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1043 b/Utilities/cmcurl-7.19.0/tests/data/test1043 deleted file mode 100644 index 6ac299f..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1043 +++ /dev/null @@ -1,84 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -Resume -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 206 Partial Content -Date: Mon, 13 Nov 2007 13:41:09 GMT -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -Accept-Ranges: bytes -Content-Length: 60 -Content-Range: bytes 40-99/100 - -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -</data> - -# The file data that exists at the start of the test must be included in -# the verification. -<datacheck> -012345678 -012345678 -012345678 -012345678 -HTTP/1.1 206 Partial Content -Date: Mon, 13 Nov 2007 13:41:09 GMT -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -Accept-Ranges: bytes -Content-Length: 60 -Content-Range: bytes 40-99/100 - -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -</datacheck> - -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET with resume from end of file - </name> - <command> -http://%HOSTIP:%HTTPPORT/1043 -C - -</command> -<file name="log/curl1043.out"> -012345678 -012345678 -012345678 -012345678 -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /1043 HTTP/1.1 -Range: bytes=40- -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1044 b/Utilities/cmcurl-7.19.0/tests/data/test1044 deleted file mode 100644 index e55099e..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1044 +++ /dev/null @@ -1,58 +0,0 @@ -<testcase> -# Similar to test141 -<info> -<keywords> -FTP -NOBODY -Largefile -</keywords> -</info> - -# Server-side -<reply> -<data> -</data> -<size> -9999999999 -</size> -<mdtm> -213 20080726102659 -</mdtm> -</reply> - -# Client-side -<client> -<features> -large_file -</features> -<server> -ftp -</server> - <name> -FTP download large file info with -I - </name> - <command> -ftp://%HOSTIP:%FTPPORT/blalbla/1044 -I -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD blalbla -MDTM 1044 -TYPE I -SIZE 1044 -REST 0 -QUIT -</protocol> -<stdout> -Last-Modified: Sat, 26 Jul 2008 10:26:59 GMT -Content-Length: 9999999999 -Accept-ranges: bytes -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1045 b/Utilities/cmcurl-7.19.0/tests/data/test1045 deleted file mode 100644 index 834454c..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1045 +++ /dev/null @@ -1,52 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET ---interface -</keywords> -</info> - -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Mon, 28 Jul 2008 14:49:00 GMT -Server: test-server/fake -Content-Length: 6 -Connection: close -Content-Type: text/plain - --foo- -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET with localhost --interface - </name> - <command> -http://%HOSTIP:%HTTPPORT/1045 --interface %CLIENTIP -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /1045 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1046 b/Utilities/cmcurl-7.19.0/tests/data/test1046 deleted file mode 100644 index cac53b3..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1046 +++ /dev/null @@ -1,60 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET ---interface -IPv6 -</keywords> -</info> - -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Mon, 28 Jul 2008 14:49:00 GMT -Server: test-server/fake -Content-Length: 6 -Connection: close -Content-Type: text/plain - --foo- -</data> -</reply> - -# -# Client-side -<client> -<features> -ipv6 -</features> -<server> -http-ipv6 -</server> - <name> -HTTP-IPv6 GET with localhost --interface - </name> - <command> --g "http://%HOST6IP:%HTTP6PORT/1046" --interface ::1 -</command> -# --interface doesn't accept an address surrounded by [] so %CLIENT6IP is out -<precheck> -perl -e "print 'Test requires default test server host address' if ( '%CLIENT6IP' ne '[::1]' );" -</precheck> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /1046 HTTP/1.1 -Host: %HOST6IP:%HTTP6PORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1047 b/Utilities/cmcurl-7.19.0/tests/data/test1047 deleted file mode 100644 index 0b840a6..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1047 +++ /dev/null @@ -1,58 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -LIST ---interface -</keywords> -</info> - -# -# Server-side -<reply> -# When doing LIST, we get the default list output hard-coded in the test -# FTP server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP dir list PASV with localhost --interface - </name> - <command> -ftp://%HOSTIP:%FTPPORT/ --interface %CLIENTIP -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE A -LIST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1048 b/Utilities/cmcurl-7.19.0/tests/data/test1048 deleted file mode 100644 index 7b42df5..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1048 +++ /dev/null @@ -1,66 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -LIST ---interface -IPv6 -</keywords> -</info> - -# -# Server-side -<reply> -# When doing LIST, we get the default list output hard-coded in the test -# FTP server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -</reply> - -# -# Client-side -<client> -<features> -ipv6 -</features> -<server> -ftp-ipv6 -</server> - <name> -FTP-IPv6 dir list PASV with localhost --interface - </name> - <command> --g "ftp://%HOST6IP:%FTP6PORT/" --interface ::1 -</command> -# --interface doesn't accept an address surrounded by [] so %CLIENT6IP is out -<precheck> -perl -e "print 'Test requires default test server host address' if ( '%CLIENT6IP' ne '[::1]' );" -</precheck> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE A -LIST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1049 b/Utilities/cmcurl-7.19.0/tests/data/test1049 deleted file mode 100644 index e6054a4..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1049 +++ /dev/null @@ -1,44 +0,0 @@ -<testcase> -<info> -<keywords> -TFTP -TFTP RRQ ---interface -</keywords> -</info> - -# -# Server-side -<reply> -<data> -a chunk of -data -returned - to client -</data> -</reply> - -# -# Client-side -<client> -<server> -tftp -</server> - <name> -TFTP retrieve with localhost --interface - </name> - <command> -tftp://%HOSTIP:%TFTPPORT//1049 --trace-ascii log/traceit --interface %CLIENTIP -</command> -</client> - -# -# Verify pseudo protocol after the test has been "shot" -<verify> -<protocol> -opcode: 1 -filename: /1049 -mode: octet -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test105 b/Utilities/cmcurl-7.19.0/tests/data/test105 deleted file mode 100644 index 7f56ccc..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test105 +++ /dev/null @@ -1,53 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -TYPE A -RETR -</keywords> -</info> -# Server-side -<reply> -<data> -data - to - see -that FTP -works - so does it? -</data> -<servercmd> -REPLY EPSV 500 no such command -REPLY SIZE 500 no such command -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP user+password in URL and ASCII transfer - </name> - <command> -ftp://userdude:passfellow@%HOSTIP:%FTPPORT/103 --use-ascii -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER userdude -PASS passfellow -PWD -EPSV -PASV -TYPE A -SIZE 103 -RETR 103 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1050 b/Utilities/cmcurl-7.19.0/tests/data/test1050 deleted file mode 100644 index 27e1b05..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1050 +++ /dev/null @@ -1,66 +0,0 @@ -<testcase> -# Similar to test 253 -<info> -<keywords> -FTP-ipv6 -IPv6 -EPRT -</keywords> -</info> - -# Server-side -<reply> -# When doing LIST, we get the default list output hard-coded in the test -# FTP server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -</reply> - -# Client-side -<client> -<features> -ipv6 -</features> -<server> -ftp-ipv6 -</server> - <name> -FTP-IPv6 dir list, EPRT with specified IP - </name> - <command> --g "ftp://%HOST6IP:%FTP6PORT/" -P ::1 -</command> -# --interface doesn't accept an address surrounded by [] so %CLIENT6IP is out -<precheck> -perl -e "print 'Test requires default test server host address' if ( '%CLIENT6IP' ne '[::1]' );" -</precheck> -</client> - -# Verify data after the test has been "shot" -<verify> -# Strip all valid kinds of EPRT that curl can send -<strippart> -s/^(EPRT \|2\|::1\|)(.*)/$1/ -</strippart> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPRT |2|::1| -TYPE A -LIST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1051 b/Utilities/cmcurl-7.19.0/tests/data/test1051 deleted file mode 100644 index 3558d6b..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1051 +++ /dev/null @@ -1,118 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP PUT -followlocation -</keywords> - -</info> -# Server-side -<reply> -<data> -HTTP/1.1 301 Redirect swsclose -Date: Thu, 29 Jul 2008 14:49:00 GMT -Server: test-server/fake -Location: data/10510002.txt?coolsite=yes -Content-Length: 0 -Connection: close - -</data> -<data2> -HTTP/1.1 100 Continue - -HTTP/1.1 200 Followed here fine swsclose -Date: Thu, 29 Jul 2008 14:49:00 GMT -Server: test-server/fake -Content-Length: 51 - -If this is received, the location following worked -</data2> -<datacheck> -HTTP/1.1 301 Redirect swsclose -Date: Thu, 29 Jul 2008 14:49:00 GMT -Server: test-server/fake -Location: data/10510002.txt?coolsite=yes -Content-Length: 0 -Connection: close - -HTTP/1.1 100 Continue - -HTTP/1.1 200 Followed here fine swsclose -Date: Thu, 29 Jul 2008 14:49:00 GMT -Server: test-server/fake -Content-Length: 51 - -If this is received, the location following worked -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP PUT with Location: following - </name> - <command> -http://%HOSTIP:%HTTPPORT/want/1051 -L -T log/test1051.txt -</command> -<file name="log/test1051.txt"> -Weird - file - to - upload -for - testing -the - PUT - feature -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> - -# The primary reason libcurl sends the data part twice in this test is that -# the test HTTP server is blocking until it has read the entire request, -# including the full request-body before it responds. So in this test the -# server says 301 and 100 _after_ the entire PUT body has been sent. - -<protocol> -PUT /want/1051 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 78 -Expect: 100-continue - -Weird - file - to - upload -for - testing -the - PUT - feature -PUT /want/data/10510002.txt?coolsite=yes HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 78 -Expect: 100-continue - -Weird - file - to - upload -for - testing -the - PUT - feature -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1052 b/Utilities/cmcurl-7.19.0/tests/data/test1052 deleted file mode 100644 index fb7886c..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1052 +++ /dev/null @@ -1,111 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP PUT -followlocation -</keywords> - -</info> -# Server-side -<reply> -<data> -HTTP/1.0 301 Redirect swsclose -Date: Thu, 29 Jul 2008 14:49:00 GMT -Server: test-server/fake -Location: data/10520002.txt?coolsite=yes -Content-Length: 0 -Connection: close - -</data> -<data2> -HTTP/1.0 200 Followed here fine swsclose -Date: Thu, 29 Jul 2008 14:49:00 GMT -Server: test-server/fake -Content-Length: 51 - -If this is received, the location following worked -</data2> -<datacheck> -HTTP/1.0 301 Redirect swsclose -Date: Thu, 29 Jul 2008 14:49:00 GMT -Server: test-server/fake -Location: data/10520002.txt?coolsite=yes -Content-Length: 0 -Connection: close - -HTTP/1.0 200 Followed here fine swsclose -Date: Thu, 29 Jul 2008 14:49:00 GMT -Server: test-server/fake -Content-Length: 51 - -If this is received, the location following worked -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP 1.0 PUT with Location: following - </name> - <command> -http://%HOSTIP:%HTTPPORT/want/1052 -0 -L -T log/test1052.txt -</command> -<file name="log/test1052.txt"> -Weird - file - to - upload -for - testing -the - PUT - feature -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> - -# The primary reason libcurl sends the data part twice in this test is that -# the test HTTP server is blocking until it has read the entire request, -# including the full request-body before it responds. So in this test the -# server says 301 and 200 _after_ the entire PUT body has been sent. -<protocol> -PUT /want/1052 HTTP/1.0 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 78 - -Weird - file - to - upload -for - testing -the - PUT - feature -PUT /want/data/10520002.txt?coolsite=yes HTTP/1.0 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 78 - -Weird - file - to - upload -for - testing -the - PUT - feature -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1053 b/Utilities/cmcurl-7.19.0/tests/data/test1053 deleted file mode 100644 index 1502dae..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1053 +++ /dev/null @@ -1,125 +0,0 @@ -<testcase> -# Based on test 9 -<info> -<keywords> -HTTP -HTTP FORMPOST -HTTP file upload -followlocation -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.0 307 Redirect swsclose -Date: Thu, 29 Jul 2008 14:49:00 GMT -Server: test-server/fake -Location: data/10530002.txt?coolsite=yes -Content-Length: 0 -Connection: close - -</data> -<data2> -HTTP/1.0 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake - -blablabla - -</data2> -<datacheck> -HTTP/1.0 307 Redirect swsclose -Date: Thu, 29 Jul 2008 14:49:00 GMT -Server: test-server/fake -Location: data/10530002.txt?coolsite=yes -Content-Length: 0 -Connection: close - -HTTP/1.0 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake - -blablabla - -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP RFC1867-type formposting from file with Location: following - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/want/1053 -L -F name=daniel -F tool=curl -F file=@log/test1053.txt -</command> -# We create this file before the command is invoked! -<file name="log/test1053.txt"> -foo- -This is a moo- -bar -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^(User-Agent:|Content-Type: multipart/form-data;|------------).* -</strip> -<protocol> -POST /we/want/1053 HTTP/1.1 -User-Agent: curl/7.18.2 (i686-pc-linux-gnu) libcurl/7.18.2 OpenSSL/0.9.7a ipv6 zlib/1.1.4 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 410 -Expect: 100-continue -Content-Type: multipart/form-data; boundary=----------------------------9ef8d6205763 - -------------------------------9ef8d6205763 -Content-Disposition: form-data; name="name" - -daniel -------------------------------9ef8d6205763 -Content-Disposition: form-data; name="tool" - -curl -------------------------------9ef8d6205763 -Content-Disposition: form-data; name="file"; filename="test1053.txt" -Content-Type: text/plain - -foo- -This is a moo- -bar - -------------------------------9ef8d6205763-- -POST /we/want/data/10530002.txt?coolsite=yes HTTP/1.1 -User-Agent: curl/7.18.2 (i686-pc-linux-gnu) libcurl/7.18.2 OpenSSL/0.9.7a ipv6 zlib/1.1.4 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 410 -Expect: 100-continue -Content-Type: multipart/form-data; boundary=----------------------------9ef8d6205763 - -------------------------------9ef8d6205763 -Content-Disposition: form-data; name="name" - -daniel -------------------------------9ef8d6205763 -Content-Disposition: form-data; name="tool" - -curl -------------------------------9ef8d6205763 -Content-Disposition: form-data; name="file"; filename="test1053.txt" -Content-Type: text/plain - -foo- -This is a moo- -bar - -------------------------------9ef8d6205763-- -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1054 b/Utilities/cmcurl-7.19.0/tests/data/test1054 deleted file mode 100644 index f670bca..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1054 +++ /dev/null @@ -1,80 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP POST -followlocation -</keywords> -</info> - -# -# Server-side -<reply> -<data> -HTTP/1.1 301 OK swsclose -Location: moo/testcase/10540002 -Date: Thu, 31 Jul 2008 14:49:00 GMT -Connection: close - -</data> -<data2> -HTTP/1.1 200 OK swsclose -Date: Thu, 31 Jul 2008 14:49:00 GMT -Connection: close - -body -</data2> -<datacheck> -HTTP/1.1 301 OK swsclose -Location: moo/testcase/10540002 -Date: Thu, 31 Jul 2008 14:49:00 GMT -Connection: close - -HTTP/1.1 200 OK swsclose -Date: Thu, 31 Jul 2008 14:49:00 GMT -Connection: close - -body -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP POST from file with 301 redirect and --post301 - </name> -<file name="log/test1054.txt"> -field=data -</file> - <command> -http://%HOSTIP:%HTTPPORT/blah/1054 -L -d @log/test1054.txt --post301 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol nonewline="yes"> -POST /blah/1054 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 10 -Content-Type: application/x-www-form-urlencoded - -field=dataPOST /blah/moo/testcase/10540002 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 10 -Content-Type: application/x-www-form-urlencoded - -field=data -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1055 b/Utilities/cmcurl-7.19.0/tests/data/test1055 deleted file mode 100644 index 3475f1a..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1055 +++ /dev/null @@ -1,100 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP PUT -followlocation -FTP -EPSV -STOR -</keywords> -</info> - -# -# Server-side -<reply> -<data> -HTTP/1.1 307 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake swsclose -Content-Type: text/html -Location: ftp://127.0.0.1:8992/1055 -Content-Length: 0 -Connection: close - -</data> -</reply> - -# -# Client-side -<client> -<server> -http -ftp -</server> - <name> -HTTP PUT Location: redirect to FTP URL - </name> - <command> -http://%HOSTIP:%HTTPPORT/1055 -L -T log/test1055.txt -</command> -# The data section doesn't do variable substitution, so we must assert this -<precheck> -perl -e "print 'Test requires default test server host and port' if ( '%HOSTIP' ne '127.0.0.1' || '%FTPPORT' ne '8992' );" -</precheck> -<file name="log/test1055.txt"> -Weird - file - to - upload -for - testing -the - PUT - feature -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -PUT /1055 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 78 -Expect: 100-continue - -Weird - file - to - upload -for - testing -the - PUT - feature -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE I -STOR 1055 -QUIT -</protocol> -<upload> -Weird - file - to - upload -for - testing -the - PUT - feature -</upload> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1056 b/Utilities/cmcurl-7.19.0/tests/data/test1056 deleted file mode 100644 index a977943..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1056 +++ /dev/null @@ -1,81 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -followlocation -IPv6 -</keywords> -</info> - -# -# Server-side -<reply> -<data> -HTTP/1.1 302 OK swsclose -Location: http://[::1%259999]:8994/moo/10560002 -Date: Thu, 31 Jul 2008 14:49:00 GMT -Connection: close - -</data> -<data2> -HTTP/1.1 200 OK swsclose -Date: Thu, 31 Jul 2008 14:49:00 GMT -Connection: close - -body -</data2> -<datacheck> -HTTP/1.1 302 OK swsclose -Location: http://[::1%259999]:8994/moo/10560002 -Date: Thu, 31 Jul 2008 14:49:00 GMT -Connection: close - -HTTP/1.1 200 OK swsclose -Date: Thu, 31 Jul 2008 14:49:00 GMT -Connection: close - -body -</datacheck> -</reply> - -# -# Client-side -<client> -<features> -ipv6 -</features> -<server> -http -http-ipv6 -</server> - <name> -HTTP follow redirect from IPv4 to IPv6 with scope - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/are/all/twits/1056 -L -</command> -# The data section doesn't do variable substitution, so we must assert this -<precheck> -perl -e "print 'Test requires default test server host and port' if ( '%HOST6IP' ne '[::1]' || '%HTTP6PORT' ne '8994' );" -</precheck> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /we/are/all/twits/1056 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /moo/10560002 HTTP/1.1 -Host: %HOST6IP:%HTTP6PORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1057 b/Utilities/cmcurl-7.19.0/tests/data/test1057 deleted file mode 100644 index 3d3d328..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1057 +++ /dev/null @@ -1,51 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -EPSV -RETR -Range -</keywords> -</info> - -# Server-side -<reply> -<data> -456789abcdef -</data> -<datacheck nonewline="yes"> -456789abcdef -</datacheck> -<size> -64 -</size> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP retrieve a byte-range relative to end of file - </name> - <command> --r -12 ftp://%HOSTIP:%FTPPORT/1057 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE I -SIZE 1057 -REST 52 -RETR 1057 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1058 b/Utilities/cmcurl-7.19.0/tests/data/test1058 deleted file mode 100644 index 81ff5be..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1058 +++ /dev/null @@ -1,53 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -Content-Range -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 206 Partial Content -Date: Thu, 31 Jul 2008 13:41:09 GMT -Accept-Ranges: bytes -Content-Length: 101 -Content-Range: bytes 100-200/201 -Connection: close -Content-Type: text/html - -..partial data returned from the -server as a result of setting an explicit byte range -in the request -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP range relative to end of file - </name> - <command> -http://%HOSTIP:%HTTPPORT/want/1058 -r -101 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /want/1058 HTTP/1.1 -Range: bytes=-101 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1059 b/Utilities/cmcurl-7.19.0/tests/data/test1059 deleted file mode 100644 index 81063b3..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1059 +++ /dev/null @@ -1,58 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP CONNECT -proxytunnel -FTP -FAILURE -</keywords> - -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 501 Method not implemented swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close -Content-Length: 0 - -</data> -</reply> - -# -# Client-side -<client> -<features> -ftp -</features> -<server> -http -</server> - <name> -HTTP CONNECT with proxytunnel to unsupported FTP URL - </name> - <command> -ftp://test-number:1059/wanted/page -p -x %HOSTIP:%HTTPPORT -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -# The server doesn't implement CONNECT for ftp, so this must be a failure test -<errorcode> -56 -</errorcode> -<strip> -^User-Agent:.* -</strip> -<protocol> -CONNECT test-number:1059 HTTP/1.0 -Host: test-number:1059 -Proxy-Connection: Keep-Alive - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test106 b/Utilities/cmcurl-7.19.0/tests/data/test106 deleted file mode 100644 index d7000fe..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test106 +++ /dev/null @@ -1,51 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -EPSV -TYPE A -RETR -type= -</keywords> -</info> -# Server-side -<reply> -<data> -data - to - see -that FTP -works - so does it? -</data> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP GET with type=A style ASCII URL using %20 codes - </name> - <command> -"ftp://%HOSTIP:%FTPPORT//path%20with%20%20spaces//and%20things2/106;type=A" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD /path with spaces -CWD and things2 -EPSV -TYPE A -SIZE 106 -RETR 106 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1060 b/Utilities/cmcurl-7.19.0/tests/data/test1060 deleted file mode 100644 index 3f2b908..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1060 +++ /dev/null @@ -1,902 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP CONNECT -HTTP proxy -proxytunnel -HTTP proxy Digest auth -</keywords> -</info> - -# Server-side -<reply> - -# this is returned first since we get no proxy-auth -<data> -HTTP/1.1 407 Authorization Required to proxy me my dear -Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345" -Content-Length: 40000 -X-tra-long-header: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -</data> - -# this is returned when we get a GET! -<data2> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 7 -Connection: close -Content-Type: text/html -Funny-head: yesyes - -daniel -</data2> - -# then this is returned when we get proxy-auth -<data1000> -HTTP/1.1 200 OK swsbounce -Server: no - -Nice proxy auth sir! -</data1000> - -<datacheck> -HTTP/1.1 407 Authorization Required to proxy me my dear -Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345" -Content-Length: 40000 -X-tra-long-header: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - -HTTP/1.1 200 OK swsbounce -Server: no - -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 7 -Connection: close -Content-Type: text/html -Funny-head: yesyes - -daniel -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> -<features> -crypto -</features> - <name> -HTTP proxy CONNECT auth Digest, large headers and data - </name> - <command> -http://test.remote.server.com:1060/path/10600002 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-digest --proxytunnel -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -<protocol> -CONNECT test.remote.server.com:1060 HTTP/1.0 -Host: test.remote.server.com:1060 -Proxy-Connection: Keep-Alive - -CONNECT test.remote.server.com:1060 HTTP/1.0 -Host: test.remote.server.com:1060 -Proxy-Authorization: Digest username="silly", realm="weirdorealm", nonce="12345", uri="test.remote.server.com:1060", response="b527d164630481e2cc48c04d18ed2212" -Proxy-Connection: Keep-Alive - -GET /path/10600002 HTTP/1.1 -Host: test.remote.server.com:1060 -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1061 b/Utilities/cmcurl-7.19.0/tests/data/test1061 deleted file mode 100644 index 60cc545..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1061 +++ /dev/null @@ -1,907 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP CONNECT -HTTP proxy -chunked Transfer-Encoding -proxytunnel -HTTP proxy Digest auth -</keywords> -</info> - -# Server-side -<reply> - -# this is returned first since we get no proxy-auth -<data> -HTTP/1.1 407 Authorization Required to proxy me my dear -Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345" -Transfer-Encoding: chunked -X-tra-long-header: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - -9c40 -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -And you should ignore this data. aaaaaaaaaaaaaaaa -end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - -0 - -</data> - -# this is returned when we get a GET! -<data2> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 7 -Connection: close -Content-Type: text/html -Funny-head: yesyes - -daniel -</data2> - -# then this is returned when we get proxy-auth -<data1000> -HTTP/1.1 200 OK swsbounce -Server: no - -Nice proxy auth sir! -</data1000> - -<datacheck> -HTTP/1.1 407 Authorization Required to proxy me my dear -Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345" -Transfer-Encoding: chunked -X-tra-long-header: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - -HTTP/1.1 200 OK swsbounce -Server: no - -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 7 -Connection: close -Content-Type: text/html -Funny-head: yesyes - -daniel -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> -<features> -crypto -</features> - <name> -HTTP proxy CONNECT auth Digest, large headers and chunked data - </name> - <command> -http://test.remote.server.com:1061/path/10610002 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-digest --proxytunnel -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -<protocol> -CONNECT test.remote.server.com:1061 HTTP/1.0 -Host: test.remote.server.com:1061 -Proxy-Connection: Keep-Alive - -CONNECT test.remote.server.com:1061 HTTP/1.0 -Host: test.remote.server.com:1061 -Proxy-Authorization: Digest username="silly", realm="weirdorealm", nonce="12345", uri="test.remote.server.com:1061", response="244a8caab5f343a1a20d2425e4d6e951" -Proxy-Connection: Keep-Alive - -GET /path/10610002 HTTP/1.1 -Host: test.remote.server.com:1061 -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1062 b/Utilities/cmcurl-7.19.0/tests/data/test1062 deleted file mode 100644 index 3895852..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1062 +++ /dev/null @@ -1,49 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -RETR -huge response -</keywords> -</info> - -# Server-side -<reply> -<data> -mooo -</data> -# a long set of response strings to CWD to make sure the ftp parser deals -# with it nicely -<servercmd> -REPLY CWD 250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n250-A Exactly fill curl's buffer\r\n250 Finally, here is the response, boundary condition -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP with excessively long server command response lines, boundary condition - </name> - <command> -ftp://%HOSTIP:%FTPPORT/path/1062 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD path -EPSV -TYPE I -SIZE 1062 -RETR 1062 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1063 b/Utilities/cmcurl-7.19.0/tests/data/test1063 deleted file mode 100644 index cc07e6b..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1063 +++ /dev/null @@ -1,47 +0,0 @@ -<testcase> -<info> -<keywords> -FILE -Range -FAILURE -</keywords> -</info> - -# Server-side -<reply> -<data> -</data> -</reply> - -# Client-side -<client> -<server> -none -</server> -<features> -file -large_file -</features> - <name> -Invalid large X- range on a file:// - </name> -# This range value is 2**32+7, which will be truncated to the valid value 7 -# if the large file support is not working correctly - <command> --r 4294967303- file://localhost/%PWD/log/test1063.txt -</command> -<file name="log/test1063.txt"> -1234567890 -1234567890 -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -36 -</errorcode> -<stdout> -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1064 b/Utilities/cmcurl-7.19.0/tests/data/test1064 deleted file mode 100644 index c6ad110..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1064 +++ /dev/null @@ -1,79 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP PUT -</keywords> -</info> - -<reply> -<data nocheck="1"> -HTTP/1.1 200 A OK -Server: curl test -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 3 - -ok -</data> -<data2 nocheck="1"> -HTTP/1.1 200 A OK -Server: curl test -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 9 - -still ok -</data2> -</reply> - -# Client-side -<client> -# -<server> -http -</server> - <name> -HTTP PUT twice - </name> - <command> --H "Expect:" -T log/1064 http://%HOSTIP:%HTTPPORT/1064.upload1 -T log/1064 http://%HOSTIP:%HTTPPORT/10640002.upload2 -</command> -<file name="log/1064"> -test -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -PUT /1064.upload1 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 5 - -test -PUT /10640002.upload2 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 5 - -test -</protocol> -<stdout> -HTTP/1.1 200 A OK -Server: curl test -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 3 - -ok -HTTP/1.1 200 A OK -Server: curl test -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 9 - -still ok -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1065 b/Utilities/cmcurl-7.19.0/tests/data/test1065 deleted file mode 100644 index 0e340d6..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1065 +++ /dev/null @@ -1,78 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP PUT -HTTP GET -</keywords> -</info> - -<reply> -<data nocheck="1"> -HTTP/1.1 200 A OK -Server: curl test -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 3 - -ok -</data> -<data2 nocheck="1"> -HTTP/1.1 200 A OK -Server: curl test -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 9 - -still ok -</data2> -</reply> - -# Client-side -<client> -# -<server> -http -</server> - <name> -HTTP PUT with one file but two URLs - </name> - <command> --H "Expect:" -T log/1065 http://%HOSTIP:%HTTPPORT/1065.upload1 http://%HOSTIP:%HTTPPORT/10650002.url2 -</command> -<file name="log/1065"> -test -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -PUT /1065.upload1 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 5 - -test -GET /10650002.url2 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -<stdout> -HTTP/1.1 200 A OK -Server: curl test -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 3 - -ok -HTTP/1.1 200 A OK -Server: curl test -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 9 - -still ok -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1066 b/Utilities/cmcurl-7.19.0/tests/data/test1066 deleted file mode 100644 index 233cf51..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1066 +++ /dev/null @@ -1,82 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -</keywords> -</info> - -# Server-side -<reply> -<data nocheck="1"> -HTTP/1.1 200 OK -Server: thebest/1.0 -Content-Type: text/plain -Content-Length: 6 - -first -</data> -<data1 nocheck="1"> -HTTP/1.1 200 OK -Server: thebest/1.0 -Content-Type: text/plain -Content-Length: 7 - -second -</data1> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP --dump-header - with two URLs - </name> - <command> -http://%HOSTIP:%HTTPPORT/want/1066 http://%HOSTIP:%HTTPPORT/want/10660001 --dump-header - -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /want/1066 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /want/10660001 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -<stdout> -HTTP/1.1 200 OK -HTTP/1.1 200 OK -Server: thebest/1.0 -Server: thebest/1.0 -Content-Type: text/plain -Content-Type: text/plain -Content-Length: 6 -Content-Length: 6 - - -first -HTTP/1.1 200 OK -HTTP/1.1 200 OK -Server: thebest/1.0 -Server: thebest/1.0 -Content-Type: text/plain -Content-Type: text/plain -Content-Length: 7 -Content-Length: 7 - - -second -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1067 b/Utilities/cmcurl-7.19.0/tests/data/test1067 deleted file mode 100644 index 2be5398..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1067 +++ /dev/null @@ -1,78 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -followlocation -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 301 This is a weirdo text message swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: data/10670002.txt?coolsite=yes -Connection: close - -This server reply is for testing a simple Location: following - -</data> -<data2> -HTTP/1.1 200 Followed here fine swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 52 - -If this is received, the location following worked - -</data2> -<datacheck> -HTTP/1.1 301 This is a weirdo text message swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: data/10670002.txt?coolsite=yes -Connection: close - -HTTP/1.1 200 Followed here fine swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 52 - -If this is received, the location following worked - -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP Location: following with auto-referer - </name> - <command> -http://%HOSTIP:%HTTPPORT/want/1067 -L --referer "firstone.html;auto" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /want/1067 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Referer: firstone.html - -GET /want/data/10670002.txt?coolsite=yes HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Referer: http://%HOSTIP:%HTTPPORT/want/1067 - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1068 b/Utilities/cmcurl-7.19.0/tests/data/test1068 deleted file mode 100644 index 30c8058..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1068 +++ /dev/null @@ -1,57 +0,0 @@ -<testcase> -# Similar to test 60 -<info> -<keywords> -HTTP -HTTP PUT -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.0 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake - -blablabla - -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> -<name> -HTTP PUT from stdin -</name> - <command> -http://%HOSTIP:%HTTPPORT/bzz/1068 -T - -</command> -<stdin> -more than one byte -</stdin> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -PUT /bzz/1068 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Transfer-Encoding: chunked -Expect: 100-continue - -13 -more than one byte - -0 - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1069 b/Utilities/cmcurl-7.19.0/tests/data/test1069 deleted file mode 100644 index f97daa3..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1069 +++ /dev/null @@ -1,44 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP PUT -HTTP/1.0 -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.0 500 Impossible swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake - -blablabla - -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> -<name> -HTTP 1.0 PUT from stdin with no content length -</name> - <command> -http://%HOSTIP:%HTTPPORT/bzz/1069 -T - -0 -</command> -<stdin> -this data can't be sent -</stdin> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -25 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test107 b/Utilities/cmcurl-7.19.0/tests/data/test107 deleted file mode 100644 index 236bf51..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test107 +++ /dev/null @@ -1,51 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -EPSV -STOR -</keywords> -</info> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP PASV upload file - </name> -<file name="log/test107.txt"> -data - to - see -that FTP -works - so does it? -</file> - <command> -ftp://%HOSTIP:%FTPPORT/107 -T log/test107.txt -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<upload> -data - to - see -that FTP -works - so does it? -</upload> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE I -STOR 107 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1070 b/Utilities/cmcurl-7.19.0/tests/data/test1070 deleted file mode 100644 index f41b443..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1070 +++ /dev/null @@ -1,65 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP POST -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 403 Go away and swsclose -Server: test-server/fake -Content-Type: text/html -Content-Length: 55 -Connection: close - -you are not supposed to be allowed to send things here -</data> -<servercmd> -skip: 2300 -</servercmd> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP POST with server sending error before (all) data is received - </name> - <command> - -d @log/input1070 http://%HOSTIP:%HTTPPORT/1070 -</command> -<file name="log/input1070"> -This creates the named file with this content before the test case is run, -which is useful if the test case needs a file to act on. We create this file -rather large (larger than your typical TCP packet) so that not all of it can nor -will be sent in one go as that is kind of the point of this test! - -Here's 2000 x 'O': -OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol nonewline="yes"> -POST /1070 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 2313 -Content-Type: application/x-www-form-urlencoded -Expect: 100-continue - -This creates -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1071 b/Utilities/cmcurl-7.19.0/tests/data/test1071 deleted file mode 100644 index b28a6fe..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1071 +++ /dev/null @@ -1,113 +0,0 @@ -<testcase> -# Authorization is used to force curl to realize that the server is -# speaking HTTP 1.0. The request must be resent with the correct -# authorization header, but using HTTP 1.0, not 1.1. -<info> -<keywords> -HTTP -HTTP PUT -HTTP Digest auth ---anyauth -HTTP/1.0 -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.0 401 Authorization Required swsclose -Server: testcurl -WWW-Authenticate: Blackmagic realm="gimme all yer s3cr3ts" -WWW-Authenticate: Basic realm="gimme all yer s3cr3ts" -WWW-Authenticate: Digest realm="gimme all yer s3cr3ts", nonce="11223344" -Content-Type: text/plain -Content-Length: 35 -Connection: close - -Try again on this HTTP 1.0 server! -</data> - -# This is supposed to be returned when the server gets a -# Authorization: Digest line passed-in from the client -<data1000> -HTTP/1.0 200 OK swsclose -Server: testcurl -Content-Type: text/plain -Content-Length: 23 -Connection: close - -This IS the real page! -</data1000> - -<datacheck> -HTTP/1.0 401 Authorization Required swsclose -Server: testcurl -WWW-Authenticate: Blackmagic realm="gimme all yer s3cr3ts" -WWW-Authenticate: Basic realm="gimme all yer s3cr3ts" -WWW-Authenticate: Digest realm="gimme all yer s3cr3ts", nonce="11223344" -Content-Type: text/plain -Content-Length: 35 -Connection: close - -HTTP/1.0 200 OK swsclose -Server: testcurl -Content-Type: text/plain -Content-Length: 23 -Connection: close - -This IS the real page! -</datacheck> - -</reply> - -# Client-side -<client> -<server> -http -</server> -<features> -crypto -</features> - <name> -Downgraded HTTP PUT to HTTP 1.0 with authorization - </name> - <command> -http://%HOSTIP:%HTTPPORT/1071 -T log/put1071 -u testuser:testpass --anyauth -</command> -<file name="log/put1071"> -This is data we upload with PUT -a second line -line three -four is the number of lines -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -PUT /1071 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 85 -Expect: 100-continue - -This is data we upload with PUT -a second line -line three -four is the number of lines -PUT /1071 HTTP/1.0 -Authorization: Digest username="testuser", realm="gimme all yer s3cr3ts", nonce="11223344", uri="/1071", response="df4cef6b52a30e65d472dd848d2055a1" -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 85 - -This is data we upload with PUT -a second line -line three -four is the number of lines -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1072 b/Utilities/cmcurl-7.19.0/tests/data/test1072 deleted file mode 100644 index d4a5b3f..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1072 +++ /dev/null @@ -1,78 +0,0 @@ -<testcase> -# Authorization is used to force curl to realize that the server is -# speaking HTTP 1.0. The request is impossible to satisfy with HTTP 1.0 -# because chunked encoding is unavailable, so the request must fail. -<info> -<keywords> -HTTP -HTTP PUT -HTTP Digest auth ---anyauth -HTTP/1.0 -chunked Transfer-Encoding -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.0 401 Authorization Required swsclose -Server: testcurl -WWW-Authenticate: Blackmagic realm="gimme all yer s3cr3ts" -WWW-Authenticate: Basic realm="gimme all yer s3cr3ts" -WWW-Authenticate: Digest realm="gimme all yer s3cr3ts", nonce="11223344" -Content-Type: text/plain -Content-Length: 35 -Connection: close - -Try again on this HTTP 1.0 server! -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> -<features> -crypto -</features> - <name> -HTTP chunked PUT to HTTP 1.0 server with authorization - </name> - <command> -http://%HOSTIP:%HTTPPORT/1072 -T - -u testuser:testpass --anyauth -</command> -<stdin> -This is data we upload with PUT -it comes from stdin so MUST be sent -with chunked encoding -which is impossible in HTTP/1.0 -</stdin> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -25 -</errorcode> -<strip> -^User-Agent:.* -</strip> -<protocol> -PUT /1072 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Transfer-Encoding: chunked -Expect: 100-continue - -7a -This is data we upload with PUT -it comes from stdin so MUST be sent -with chunked encoding -which is impossible in HTTP/1.0 -0 - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1073 b/Utilities/cmcurl-7.19.0/tests/data/test1073 deleted file mode 100644 index 2f47e3a..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1073 +++ /dev/null @@ -1,71 +0,0 @@ -<testcase> -# Redirection is used to force curl to realize that the server is -# speaking HTTP 1.0. The request is impossible to satisfy with HTTP 1.0 -# because chunked encoding is unavailable, so the request must fail. -<info> -<keywords> -HTTP -HTTP PUT -HTTP/1.0 -followlocation -chunked Transfer-Encoding -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.0 301 Authorization Required swsclose -Server: testcurl -Content-Type: text/plain -Location: /newlocation/10730002 -Content-Length: 0 -Connection: close - -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP chunked PUT to HTTP 1.0 server with redirect - </name> - <command> -http://%HOSTIP:%HTTPPORT/1073 -T - -L -</command> -<stdin> -This is data we upload with PUT -it comes from stdin so MUST be sent -with chunked encoding -which is impossible in HTTP/1.0 -</stdin> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -25 -</errorcode> -<strip> -^User-Agent:.* -</strip> -<protocol> -PUT /1073 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Transfer-Encoding: chunked -Expect: 100-continue - -7a -This is data we upload with PUT -it comes from stdin so MUST be sent -with chunked encoding -which is impossible in HTTP/1.0 -0 - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1074 b/Utilities/cmcurl-7.19.0/tests/data/test1074 deleted file mode 100644 index 7594fbc..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1074 +++ /dev/null @@ -1,76 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP/1.0 -</keywords> -</info> - -# Server-side -<reply> -<data nocheck="true"> -HTTP/1.0 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 9 -Connection: Keep-Alive - -surprise -</data> -<data1> -HTTP/1.0 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -surprise2 -</data1> - -<postcmd> -wait 1 -</postcmd> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP downgrade to HTTP/1.0 on second request - </name> - <command> -http://%HOSTIP:%HTTPPORT/want/1074 http://%HOSTIP:%HTTPPORT/wantmore/10740001 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<stdout> -HTTP/1.0 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 9 -Connection: Keep-Alive - -surprise -HTTP/1.0 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -surprise2 -</stdout> - -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /want/1074 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /wantmore/10740001 HTTP/1.0 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test1075 b/Utilities/cmcurl-7.19.0/tests/data/test1075 deleted file mode 100644 index f0ad5e0..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test1075 +++ /dev/null @@ -1,94 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP PUT -HTTP Basic auth ---anyauth -</keywords> -</info> - -# Server-side -<reply> -# The test server provides no way to respond differently to a subsequent -# Basic authenticated request (we really want to respond with 200 for -# the second), so just respond with 401 for both and let curl deal with it. -<data> -HTTP/1.1 401 Authorization Required -Server: testcurl -WWW-Authenticate: Blackmagic realm="gimme all yer s3cr3ts" -WWW-Authenticate: Basic realm="gimme all yer s3cr3ts" -WWW-Authenticate: X-bogus-auth realm="gimme all yer s3cr3ts" -Content-Type: text/plain -Content-Length: 0 - -</data> -<datacheck> -HTTP/1.1 401 Authorization Required -Server: testcurl -WWW-Authenticate: Blackmagic realm="gimme all yer s3cr3ts" -WWW-Authenticate: Basic realm="gimme all yer s3cr3ts" -WWW-Authenticate: X-bogus-auth realm="gimme all yer s3cr3ts" -Content-Type: text/plain -Content-Length: 0 - -HTTP/1.1 401 Authorization Required -Server: testcurl -WWW-Authenticate: Blackmagic realm="gimme all yer s3cr3ts" -WWW-Authenticate: Basic realm="gimme all yer s3cr3ts" -WWW-Authenticate: X-bogus-auth realm="gimme all yer s3cr3ts" -Content-Type: text/plain -Content-Length: 0 - -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP PUT with --anyauth authorization (picking Basic) - </name> - <command> -http://%HOSTIP:%HTTPPORT/1075 -T log/put1075 -u testuser:testpass --anyauth -</command> -<file name="log/put1075"> -This is data we upload with PUT -a second line -line three -four is the number of lines -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -PUT /1075 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 85 -Expect: 100-continue - -This is data we upload with PUT -a second line -line three -four is the number of lines -PUT /1075 HTTP/1.1 -Authorization: Basic dGVzdHVzZXI6dGVzdHBhc3M= -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 85 -Expect: 100-continue - -This is data we upload with PUT -a second line -line three -four is the number of lines -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test108 b/Utilities/cmcurl-7.19.0/tests/data/test108 deleted file mode 100644 index ca43a8d..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test108 +++ /dev/null @@ -1,56 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PORT -STOR -</keywords> -</info> -# Server-side -<reply> -<data> -</data> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP PORT upload with CWD - </name> - <command> -ftp://%HOSTIP:%FTPPORT/CWD/STOR/RETR/108 -T log/upload108 -P - -</command> -<file name="log/upload108"> -Moooooooooooo - upload this -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -# Strip all valid kinds of PORT and EPRT that curl can send -<strip> -^PORT \d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3} -^EPRT \|1\|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\|\d{1,5}\| -</strip> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD CWD -CWD STOR -CWD RETR -PORT 127,0,0,1,5,109 -TYPE I -STOR 108 -QUIT -</protocol> -<upload> -Moooooooooooo - upload this -</upload> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test109 b/Utilities/cmcurl-7.19.0/tests/data/test109 deleted file mode 100644 index 6aa8379..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test109 +++ /dev/null @@ -1,48 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -EPSV -APPE -</keywords> -</info> -# Server-side -<reply> -<data> -</data> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP PASV upload append - </name> - <command> -ftp://%HOSTIP:%FTPPORT/109 -T log/upload109 --append -</command> -<file name="log/upload109"> -Moooooooooooo - upload this -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE I -APPE 109 -QUIT -</protocol> -<upload> -Moooooooooooo - upload this -</upload> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test11 b/Utilities/cmcurl-7.19.0/tests/data/test11 deleted file mode 100644 index 5a58f96..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test11 +++ /dev/null @@ -1,76 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -followlocation -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 301 This is a weirdo text message swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: data/110002.txt?coolsite=yes -Connection: close - -This server reply is for testing a simple Location: following - -</data> -<data2> -HTTP/1.1 200 Followed here fine swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 52 - -If this is received, the location following worked - -</data2> -<datacheck> -HTTP/1.1 301 This is a weirdo text message swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: data/110002.txt?coolsite=yes -Connection: close - -HTTP/1.1 200 Followed here fine swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 52 - -If this is received, the location following worked - -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -simple HTTP Location: following - </name> - <command> -http://%HOSTIP:%HTTPPORT/want/11 -L -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /want/11 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /want/data/110002.txt?coolsite=yes HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test110 b/Utilities/cmcurl-7.19.0/tests/data/test110 deleted file mode 100644 index e0345a3..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test110 +++ /dev/null @@ -1,52 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -RETR -Resume -</keywords> -</info> -# Server-side -<reply> -<data> -expected to be a file without the first part -but we emulate that -</data> -<size> -85 -</size> -<servercmd> -REPLY EPSV 500 no such command -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP download resume with set limit - </name> - <command> -ftp://%HOSTIP:%FTPPORT/110 -C 20 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -PASV -TYPE I -SIZE 110 -REST 20 -RETR 110 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test111 b/Utilities/cmcurl-7.19.0/tests/data/test111 deleted file mode 100644 index 95e7556..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test111 +++ /dev/null @@ -1,45 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -EPSV -Resume -FAILURE -</keywords> -</info> -# Server-side -<reply> -<size> -85 -</size> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP download resume beyond file size - </name> - <command> -ftp://%HOSTIP:%FTPPORT/111 -C 2000 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -36 -</errorcode> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE I -SIZE 111 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test112 b/Utilities/cmcurl-7.19.0/tests/data/test112 deleted file mode 100644 index bae11cb..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test112 +++ /dev/null @@ -1,49 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -EPSV -APPE -Resume -</keywords> -</info> -# Server-side -<reply> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP PASV upload resume - </name> - <command> -ftp://%HOSTIP:%FTPPORT/112 -T log/upload112 -C 40 -</command> -<file name="log/upload112"> -this is the *****crap******** that we're gonna upload - -worx? -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE I -APPE 112 -QUIT -</protocol> -<upload> - gonna upload - -worx? -</upload> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test113 b/Utilities/cmcurl-7.19.0/tests/data/test113 deleted file mode 100644 index a174f88..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test113 +++ /dev/null @@ -1,37 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -FAILURE -</keywords> -</info> -# Server-side -<reply> -<servercmd> -REPLY USER 314 bluah you fewl! -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP download, failed login: USER not valid - </name> - <command> -ftp://%HOSTIP:%FTPPORT/113 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -67 -</errorcode> -<protocol> -USER anonymous -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test114 b/Utilities/cmcurl-7.19.0/tests/data/test114 deleted file mode 100644 index bb47d98..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test114 +++ /dev/null @@ -1,38 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -FAILURE -</keywords> -</info> -# Server-side -<reply> -<servercmd> -REPLY PASS 314 bluah you f00l! -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP download, failed login: PASS not valid - </name> - <command> -ftp://%HOSTIP:%FTPPORT/114 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -67 -</errorcode> -<protocol> -USER anonymous -PASS ftp@example.com -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test115 b/Utilities/cmcurl-7.19.0/tests/data/test115 deleted file mode 100644 index 8c4a6a5..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test115 +++ /dev/null @@ -1,44 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -FAILURE -</keywords> -</info> -# Server-side -<reply> -<servercmd> -REPLY PASV 314 bluah you f00l! -REPLY EPSV 314 bluah you f00l! -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP download, failed PASV - </name> - <command> -ftp://%HOSTIP:%FTPPORT/115 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -13 -</errorcode> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -PASV -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test116 b/Utilities/cmcurl-7.19.0/tests/data/test116 deleted file mode 100644 index 31e6529..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test116 +++ /dev/null @@ -1,52 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PORT -FAILURE -</keywords> -</info> -# Server-side -<reply> -<servercmd> -REPLY PORT 314 bluah you f00l! -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> -# EPRT is only sent when IPv6 is enabled -<features> -ipv6 -</features> - <name> -FTP download, failed PORT - </name> - <command> -ftp://%HOSTIP:%FTPPORT/116 -P 1.2.3.4 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -30 -</errorcode> -# Strip the port number but leave the rest -<strippart> -s/^(PORT \d{1,3},\d{1,3},\d{1,3},\d{1,3},)\d{1,3},\d{1,3}/$1/ -s/^(EPRT \|1\|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\|)\d{1,5}\|/$1/ -</strippart> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPRT |1|1.2.3.4| -PORT 1,2,3,4, -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test117 b/Utilities/cmcurl-7.19.0/tests/data/test117 deleted file mode 100644 index 0b610b6..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test117 +++ /dev/null @@ -1,44 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -FAILURE -</keywords> -</info> -# Server-side -<reply> -<servercmd> -REPLY EPSV 314 bluah you f00l! -REPLY TYPE 314 bluah you f00l! -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP download, failed TYPE - </name> - <command> -ftp://%HOSTIP:%FTPPORT/117 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -17 -</errorcode> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -PASV -TYPE I -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test118 b/Utilities/cmcurl-7.19.0/tests/data/test118 deleted file mode 100644 index 91895b8..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test118 +++ /dev/null @@ -1,48 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -RETR -FAILURE -</keywords> -</info> -# Server-side -<reply> -<servercmd> -REPLY RETR 314 bluah you f00l! -REPLY EPSV 314 bluah you f00l! -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP download, failed RETR - </name> - <command> -ftp://%HOSTIP:%FTPPORT/118 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -19 -</errorcode> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -PASV -TYPE I -SIZE 118 -RETR 118 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test119 b/Utilities/cmcurl-7.19.0/tests/data/test119 deleted file mode 100644 index bda120e..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test119 +++ /dev/null @@ -1,50 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PORT -RETR -FAILURE -</keywords> -</info> -# Server-side -<reply> -<servercmd> -REPLY RETR 314 bluah you f00l! -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP download, failed RETR with PORT - </name> - <command> -ftp://%HOSTIP:%FTPPORT/119 -P - -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -19 -</errorcode> -# Strip all valid kinds of PORT and EPRT that curl can send -<strip> -^PORT \d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3} -^EPRT \|1\|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\|\d{1,5}\| -</strip> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -TYPE I -SIZE 119 -RETR 119 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test12 b/Utilities/cmcurl-7.19.0/tests/data/test12 deleted file mode 100644 index 72a19ed..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test12 +++ /dev/null @@ -1,56 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -Content-Range -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 206 Partial Content -Date: Mon, 13 Nov 2000 13:41:09 GMT -Server: Apache/1.3.11 (Unix) PHP/3.0.14 -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 101 -Content-Range: bytes 100-200/3527 -Connection: close -Content-Type: text/html - -..partial data returned from the -server as a result of setting an explicit byte range -in the request -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP range support - </name> - <command> -http://%HOSTIP:%HTTPPORT/want/12 -r 100-200 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /want/12 HTTP/1.1 -Range: bytes=100-200 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test120 b/Utilities/cmcurl-7.19.0/tests/data/test120 deleted file mode 100644 index 159f5b2..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test120 +++ /dev/null @@ -1,53 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -RETR -post-quote -</keywords> -</info> -# Server-side -<reply> -<data> -data - to - see -that FTP -works - so does it? -</data> -<servercmd> -REPLY EPSV 314 bluah you f00l! -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -ftp download with post-quote delete operation - </name> - <command> -ftp://%HOSTIP:%FTPPORT/120 -Q "-DELE file" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -PASV -TYPE I -SIZE 120 -RETR 120 -DELE file -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test121 b/Utilities/cmcurl-7.19.0/tests/data/test121 deleted file mode 100644 index d75d0d0..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test121 +++ /dev/null @@ -1,51 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -EPSV -RETR -post-quote -pre-quote -</keywords> -</info> -# Server-side -<reply> -<data> -data - to - see -that FTP -works - so does it? -</data> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -ftp download with post- and pre-transfer delete operations - </name> - <command> -ftp://%HOSTIP:%FTPPORT/121 -Q "-DELE after_transfer" -Q "DELE before_transfer" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -DELE before_transfer -EPSV -TYPE I -SIZE 121 -RETR 121 -DELE after_transfer -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test122 b/Utilities/cmcurl-7.19.0/tests/data/test122 deleted file mode 100644 index 7ba53b6..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test122 +++ /dev/null @@ -1,45 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -Resume -</keywords> -</info> -# Server-side -<reply> -<size> -5 -</size> -<servercmd> -REPLY EPSV 500 no such command -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP download resume with whole file already downloaded - </name> - <command> -ftp://%HOSTIP:%FTPPORT/122 -C 5 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -PASV -TYPE I -SIZE 122 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test123 b/Utilities/cmcurl-7.19.0/tests/data/test123 deleted file mode 100644 index 0c7aed2..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test123 +++ /dev/null @@ -1,40 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -EPSV -Resume -</keywords> -</info> -# Server-side -<reply> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP upload resume with whole file already downloaded - </name> - <command> -ftp://%HOSTIP:%FTPPORT/123 -T log/upload123 -C 51 -</command> -<file name="log/upload123"> --------------------------------------------------- -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE I -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test124 b/Utilities/cmcurl-7.19.0/tests/data/test124 deleted file mode 100644 index cb6d2c6..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test124 +++ /dev/null @@ -1,47 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -RETR -</keywords> -</info> -# Server-side -<reply> -<data> -we can still send data even if pwd fails! -</data> -<servercmd> -REPLY PWD 314 bluah you f00l! -REPLY EPSV 314 bluah you f00l! -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP download, failed PWD - </name> - <command> -ftp://%HOSTIP:%FTPPORT/124 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -PASV -TYPE I -SIZE 124 -RETR 124 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test125 b/Utilities/cmcurl-7.19.0/tests/data/test125 deleted file mode 100644 index 1f025bb..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test125 +++ /dev/null @@ -1,41 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -FAILURE -</keywords> -</info> -# Server-side -<reply> -<servercmd> -REPLY CWD 314 bluah you f00l! -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP download, failed CWD - </name> - <command> -ftp://%HOSTIP:%FTPPORT/path/to/file/125 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -9 -</errorcode> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD path -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test126 b/Utilities/cmcurl-7.19.0/tests/data/test126 deleted file mode 100644 index c84d035..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test126 +++ /dev/null @@ -1,48 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -EPSV -RETR -RETRWEIRDO -</keywords> -</info> -# Server-side -<reply> -<data> -this is file contents -</data> -<servercmd> -RETRWEIRDO -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP download with multiple replies at once in RETR - </name> - <command> -ftp://%HOSTIP:%FTPPORT/blalbla/lululul/126 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD blalbla -CWD lululul -EPSV -TYPE I -SIZE 126 -RETR 126 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test127 b/Utilities/cmcurl-7.19.0/tests/data/test127 deleted file mode 100644 index f13e87a..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test127 +++ /dev/null @@ -1,46 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -RETR ---disable-epsv -</keywords> -</info> -# Server-side -<reply> -<data> -moooooooo -</data> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP --disable-epsv - </name> - <command> -ftp://%HOSTIP:%FTPPORT/path/to/file/127 --disable-epsv -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD path -CWD to -CWD file -PASV -TYPE I -SIZE 127 -RETR 127 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test128 b/Utilities/cmcurl-7.19.0/tests/data/test128 deleted file mode 100644 index e6e6d0b..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test128 +++ /dev/null @@ -1,57 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -EPSV -STOR ---crlf -</keywords> -</info> -# Server-side -<reply> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP upload with --crlf - </name> - <command> -ftp://%HOSTIP:%FTPPORT/128 -T log/upload128 --crlf -</command> -<file name="log/upload128"> -file -with unix newlines -meant to be -converted -with -the ---crlf option -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE I -STOR 128 -QUIT -</protocol> -<upload> -file -with unix newlines -meant to be -converted -with -the ---crlf option -</upload> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test13 b/Utilities/cmcurl-7.19.0/tests/data/test13 deleted file mode 100644 index fc8208f..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test13 +++ /dev/null @@ -1,44 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP custom request -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 200 Read you -Content-Length: 29 -Deleted: suppose we got a header like this! ;-) - -blabla custom request result -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP custom request 'DELETE' - </name> - <command> -http://%HOSTIP:%HTTPPORT/want/13 -X DELETE -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -DELETE /want/13 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test130 b/Utilities/cmcurl-7.19.0/tests/data/test130 deleted file mode 100644 index 433510e..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test130 +++ /dev/null @@ -1,65 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -EPSV -LIST -netrc -</keywords> -</info> -# -# Server-side -<reply> -# When doing LIST, we get the default list output hard-coded in the test -# FTP server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -</reply> - -# -# Client-side -<client> -<features> -netrc_debug -</features> -<server> -ftp -</server> - <name> -FTP (optional .netrc; no user/pass) dir list PASV - </name> - <command> ---netrc-optional ftp://%HOSTIP:%FTPPORT/ -</command> -<file name="log/netrc" > -# the following two lines were created while testing curl -machine %HOSTIP login user1 password passwd1 -machine %HOSTIP login user2 password passwd2 -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -USER user1 -PASS passwd1 -PWD -EPSV -TYPE A -LIST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test131 b/Utilities/cmcurl-7.19.0/tests/data/test131 deleted file mode 100644 index 69dc277..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test131 +++ /dev/null @@ -1,66 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -EPSV -LIST -netrc -</keywords> -</info> -# -# Server-side -<reply> -# -# When doing LIST, we get the default list output hard-coded in the test -# FTP server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -</reply> - -# -# Client-side -<client> -<features> -netrc_debug -</features> -<server> -ftp -</server> - <name> -FTP (optional .netrc; user/no pass) dir list PASV - </name> - <command> ---netrc-optional ftp://user2@%HOSTIP:%FTPPORT/ -</command> -<file name="log/netrc" > -# the following two lines were created while testing curl -machine %HOSTIP login user1 password passwd1 -machine %HOSTIP login user2 password passwd2 -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -USER user2 -PASS passwd2 -PWD -EPSV -TYPE A -LIST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test132 b/Utilities/cmcurl-7.19.0/tests/data/test132 deleted file mode 100644 index 67d0fa1..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test132 +++ /dev/null @@ -1,65 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -EPSV -LIST -netrc -</keywords> -</info> -# -# Server-side -<reply> -# When doing LIST, we get the default list output hard-coded in the test -# FTP server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -</reply> - -# -# Client-side -<client> -<features> -netrc_debug -</features> -<server> -ftp -</server> - <name> -FTP (optional .netrc; user/passwd supplied) dir list PASV - </name> - <command> ---netrc-optional ftp://mary:mark@%HOSTIP:%FTPPORT/ -</command> -<file name="log/netrc" > -# the following two lines were created while testing curl -machine %HOSTIP login user1 password passwd1 -machine %HOSTIP login user2 password passwd2 -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -USER mary -PASS mark -PWD -EPSV -TYPE A -LIST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test133 b/Utilities/cmcurl-7.19.0/tests/data/test133 deleted file mode 100644 index b477b32..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test133 +++ /dev/null @@ -1,65 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -EPSV -LIST -netrc -</keywords> -</info> -# -# Server-side -<reply> -# When doing LIST, we get the default list output hard-coded in the test -# FTP server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -</reply> - -# -# Client-side -<client> -<features> -netrc_debug -</features> -<server> -ftp -</server> - <name> -FTP (compulsory .netrc; ignored user/passwd) dir list PASV - </name> - <command> --n ftp://mary:mark@%HOSTIP:%FTPPORT/ -</command> -<file name="log/netrc" > -# the following two lines were created while testing curl -machine %HOSTIP login user1 password passwd1 -machine %HOSTIP login user2 password passwd2 -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -USER user1 -PASS passwd1 -PWD -EPSV -TYPE A -LIST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test134 b/Utilities/cmcurl-7.19.0/tests/data/test134 deleted file mode 100644 index 2dbd058..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test134 +++ /dev/null @@ -1,65 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -EPSV -LIST -netrc -</keywords> -</info> -# -# Server-side -<reply> -# When doing LIST, we get the default list output hard-coded in the test -# FTP server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -</reply> - -# -# Client-side -<client> -<features> -netrc_debug -</features> -<server> -ftp -</server> - <name> -FTP (optional .netrc; programmatic user/passwd) dir list PASV - </name> - <command> ---netrc-optional -u romulus:rhemus ftp://mary:mark@%HOSTIP:%FTPPORT/ -</command> -<file name="log/netrc" > -# the following two lines were created while testing curl -machine %HOSTIP login user1 password passwd1 -machine %HOSTIP login user2 password passwd2 -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -USER romulus -PASS rhemus -PWD -EPSV -TYPE A -LIST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test135 b/Utilities/cmcurl-7.19.0/tests/data/test135 deleted file mode 100644 index af97b07..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test135 +++ /dev/null @@ -1,53 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -EPSV -RETR -Range -</keywords> -</info> -# Server-side -<reply> -<data> -0123456789abcdef -0123456789abcdef -0123456789abcdef -0123456789abcdef -</data> -<datacheck nonewline="yes"> -0123456789abc -</datacheck> -<size> -64 -</size> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP retrieve a byte-range - </name> - <command> --r 4-16 ftp://%HOSTIP:%FTPPORT/135 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE I -SIZE 135 -REST 4 -RETR 135 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test136 b/Utilities/cmcurl-7.19.0/tests/data/test136 deleted file mode 100644 index b95ef92..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test136 +++ /dev/null @@ -1,42 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -EPSV -RETR -</keywords> -</info> -# Server-side -<reply> -<data> -0123456789abcdef -</data> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP with user and no password - </name> - <command> --u user: ftp://%HOSTIP:%FTPPORT/136 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER user -PASS -PWD -EPSV -TYPE I -SIZE 136 -RETR 136 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test137 b/Utilities/cmcurl-7.19.0/tests/data/test137 deleted file mode 100644 index edb83c6..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test137 +++ /dev/null @@ -1,47 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -RETR ---data-binary -</keywords> -</info> -# Server-side -<reply> -<data> -this is file contents -</data> -<servercmd> -RETRNOSIZE -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP download without size in RETR string - </name> - <command> -ftp://%HOSTIP:%FTPPORT/blalbla/lululul/137 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD blalbla -CWD lululul -EPSV -TYPE I -SIZE 137 -RETR 137 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test138 b/Utilities/cmcurl-7.19.0/tests/data/test138 deleted file mode 100644 index df65e14..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test138 +++ /dev/null @@ -1,49 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -RETR -</keywords> -</info> -# Server-side -<reply> -<data> -this is file contents -</data> -<size> --1 -</size> -<servercmd> -RETRNOSIZE -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP download without size in RETR string and no SIZE command - </name> - <command> -ftp://%HOSTIP:%FTPPORT/blalbla/lululul/138 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD blalbla -CWD lululul -EPSV -TYPE I -SIZE 138 -RETR 138 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test139 b/Utilities/cmcurl-7.19.0/tests/data/test139 deleted file mode 100644 index 99bb09c..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test139 +++ /dev/null @@ -1,47 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -RETR --z -</keywords> -</info> -# Server-side -<reply> -<data> -this is file contents -</data> -<mdtm> -213 20030409102659 -</mdtm> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP download a newer file with -z - </name> - <command> -ftp://%HOSTIP:%FTPPORT/blalbla/139 -z "1 jan 1989" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD blalbla -MDTM 139 -EPSV -TYPE I -SIZE 139 -RETR 139 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test14 b/Utilities/cmcurl-7.19.0/tests/data/test14 deleted file mode 100644 index dc029e1..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test14 +++ /dev/null @@ -1,44 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP HEAD -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Server: thebest/1.0 -Connection: close - -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP HEAD with Connection: close - </name> - <command> -http://%HOSTIP:%HTTPPORT/want/14 -i --head -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -HEAD /want/14 HTTP/1.1 -User-Agent: curl/7.4.2-pre4 (sparc-sun-solaris2.7) libcurl 7.4.2-pre4 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test140 b/Utilities/cmcurl-7.19.0/tests/data/test140 deleted file mode 100644 index 69976db..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test140 +++ /dev/null @@ -1,42 +0,0 @@ -<testcase> -<info> -<keywords> -FTP --z ---data-binary -</keywords> -</info> -# Server-side -<reply> -<data> -</data> -<mdtm> -213 20030409102659 -</mdtm> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP download file with -z, expected to not transfer - </name> - <command> -ftp://%HOSTIP:%FTPPORT/blalbla/140 -z "1 jan 2004" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD blalbla -MDTM 140 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test141 b/Utilities/cmcurl-7.19.0/tests/data/test141 deleted file mode 100644 index 4265eb1..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test141 +++ /dev/null @@ -1,52 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -NOBODY -</keywords> -</info> -# Server-side -<reply> -<data> -</data> -<size> -42 -</size> -<mdtm> -213 20030409102659 -</mdtm> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP download info with -I - </name> - <command> -ftp://%HOSTIP:%FTPPORT/blalbla/141 -I -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD blalbla -MDTM 141 -TYPE I -SIZE 141 -REST 0 -QUIT -</protocol> -<stdout> -Last-Modified: Wed, 09 Apr 2003 10:26:59 GMT -Content-Length: 42 -Accept-ranges: bytes -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test142 b/Utilities/cmcurl-7.19.0/tests/data/test142 deleted file mode 100644 index 64c7205..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test142 +++ /dev/null @@ -1,190 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -</keywords> -</info> -# Server-side -<reply> -<data> -many parts there are -</data> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP URL with 150 dir levels - </name> - <command> -ftp://%HOSTIP:%FTPPORT/part1/part2/part3/part4/part5/part6/part7/part8/part9/part10/part11/part12/part13/part14/part15/part16/part17/part18/part19/part20/part21/part22/part23/part24/part25/part26/part27/part28/part29/part30/part31/part32/part33/part34/part35/part36/part37/part38/part39/part40/part41/part42/part43/part44/part45/part46/part47/part48/part49/part50/part51/part52/part53/part54/part55/part56/part57/part58/part59/part60/part61/part62/part63/part64/part65/part66/part67/part68/part69/part70/part71/part72/part73/part74/part75/part76/part77/part78/part79/part80/part81/part82/part83/part84/part85/part86/part87/part88/part89/part90/part91/part92/part93/part94/part95/part96/part97/part98/part99/part100/part101/part102/part103/part104/part105/part106/part107/part108/part109/part110/part111/part112/part113/part114/part115/part116/part117/part118/part119/part120/part121/part122/part123/part124/part125/part126/part127/part128/part129/part130/part131/part132/part133/part134/part135/part136/part137/part138/part139/part140/part141/part142/part143/part144/part145/part146/part147/part148/part149/part150/142 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD part1 -CWD part2 -CWD part3 -CWD part4 -CWD part5 -CWD part6 -CWD part7 -CWD part8 -CWD part9 -CWD part10 -CWD part11 -CWD part12 -CWD part13 -CWD part14 -CWD part15 -CWD part16 -CWD part17 -CWD part18 -CWD part19 -CWD part20 -CWD part21 -CWD part22 -CWD part23 -CWD part24 -CWD part25 -CWD part26 -CWD part27 -CWD part28 -CWD part29 -CWD part30 -CWD part31 -CWD part32 -CWD part33 -CWD part34 -CWD part35 -CWD part36 -CWD part37 -CWD part38 -CWD part39 -CWD part40 -CWD part41 -CWD part42 -CWD part43 -CWD part44 -CWD part45 -CWD part46 -CWD part47 -CWD part48 -CWD part49 -CWD part50 -CWD part51 -CWD part52 -CWD part53 -CWD part54 -CWD part55 -CWD part56 -CWD part57 -CWD part58 -CWD part59 -CWD part60 -CWD part61 -CWD part62 -CWD part63 -CWD part64 -CWD part65 -CWD part66 -CWD part67 -CWD part68 -CWD part69 -CWD part70 -CWD part71 -CWD part72 -CWD part73 -CWD part74 -CWD part75 -CWD part76 -CWD part77 -CWD part78 -CWD part79 -CWD part80 -CWD part81 -CWD part82 -CWD part83 -CWD part84 -CWD part85 -CWD part86 -CWD part87 -CWD part88 -CWD part89 -CWD part90 -CWD part91 -CWD part92 -CWD part93 -CWD part94 -CWD part95 -CWD part96 -CWD part97 -CWD part98 -CWD part99 -CWD part100 -CWD part101 -CWD part102 -CWD part103 -CWD part104 -CWD part105 -CWD part106 -CWD part107 -CWD part108 -CWD part109 -CWD part110 -CWD part111 -CWD part112 -CWD part113 -CWD part114 -CWD part115 -CWD part116 -CWD part117 -CWD part118 -CWD part119 -CWD part120 -CWD part121 -CWD part122 -CWD part123 -CWD part124 -CWD part125 -CWD part126 -CWD part127 -CWD part128 -CWD part129 -CWD part130 -CWD part131 -CWD part132 -CWD part133 -CWD part134 -CWD part135 -CWD part136 -CWD part137 -CWD part138 -CWD part139 -CWD part140 -CWD part141 -CWD part142 -CWD part143 -CWD part144 -CWD part145 -CWD part146 -CWD part147 -CWD part148 -CWD part149 -CWD part150 -EPSV -TYPE I -SIZE 142 -RETR 142 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test143 b/Utilities/cmcurl-7.19.0/tests/data/test143 deleted file mode 100644 index 5f1a523..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test143 +++ /dev/null @@ -1,44 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -RETR -type= -</keywords> -</info> -# Server-side -<reply> -<data> -bla bla bla -</data> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP URL with type=a - </name> - <command> -"ftp://%HOSTIP:%FTPPORT/%2ftmp/moo/143;type=a" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD /tmp -CWD moo -EPSV -TYPE A -SIZE 143 -RETR 143 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test144 b/Utilities/cmcurl-7.19.0/tests/data/test144 deleted file mode 100644 index bcfc3ba..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test144 +++ /dev/null @@ -1,49 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PORT -NLST ---data-binary -</keywords> -</info> -# Server-side -<reply> -<data> -</data> -<servercmd> -REPLY NLST 450 No files found -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP NLST dir list without contents, using PORT - </name> - <command> -ftp://%HOSTIP:%FTPPORT/ -P - -l -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -# Strip all valid kinds of PORT and EPRT that curl can send -<strip> -^PORT \d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3} -^EPRT \|1\|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\|\d{1,5}\| -</strip> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -PORT 127,0,0,1,243,212 -TYPE A -NLST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test145 b/Utilities/cmcurl-7.19.0/tests/data/test145 deleted file mode 100644 index 6fc3298..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test145 +++ /dev/null @@ -1,51 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -NLST -PORT -</keywords> -</info> -# Server-side -<reply> -<servercmd> -REPLY NLST 550 Have a taste on this! -</servercmd> -<data> -</data> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP NLST dir list with weird reply code, using PORT - </name> - <command> -ftp://%HOSTIP:%FTPPORT/ -P - -l -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -19 -</errorcode> -# Strip all valid kinds of PORT and EPRT that curl can send -<strip> -^PORT \d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3} -^EPRT \|1\|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\|\d{1,5}\| -</strip> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -PORT 127,0,0,1,243,212 -TYPE A -NLST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test146 b/Utilities/cmcurl-7.19.0/tests/data/test146 deleted file mode 100644 index 1831195..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test146 +++ /dev/null @@ -1,55 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -RETR -persistent connection -</keywords> -</info> - -# Server-side -<reply> -<data> -this is file contents -</data> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -persistent FTP with different paths - </name> - <command> -ftp://%HOSTIP:%FTPPORT/first/dir/here/146 ftp://%HOSTIP:%FTPPORT/146 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -# Strip all valid kinds of PORT and EPRT that curl can send -<strip> -^PORT \d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3} -^EPRT \|1\|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\|\d{1,5}\| -</strip> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD first -CWD dir -CWD here -EPSV -TYPE I -SIZE 146 -RETR 146 -CWD /nowhere/anywhere -EPSV -SIZE 146 -RETR 146 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test147 b/Utilities/cmcurl-7.19.0/tests/data/test147 deleted file mode 100644 index 93816f4..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test147 +++ /dev/null @@ -1,49 +0,0 @@ -<testcase> -# Server-side -<reply> -<data> -foo -</data> -<servercmd> -REPLY CWD 550 I won't allow this on my server -COUNT CWD 1 -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP with --ftp-create-dirs (failing CWD) - </name> - <command> -ftp://%HOSTIP:%FTPPORT/first/dir/here/147 --ftp-create-dirs -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -# Strip all valid kinds of PORT and EPRT that curl can send -<strip> -^PORT \d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3} -^EPRT \|1\|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\|\d{1,5}\| -</strip> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD first -MKD first -CWD first -CWD dir -CWD here -EPSV -TYPE I -SIZE 147 -RETR 147 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test148 b/Utilities/cmcurl-7.19.0/tests/data/test148 deleted file mode 100644 index 6acd0e8..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test148 +++ /dev/null @@ -1,42 +0,0 @@ -<testcase> -# Server-side -<reply> -<servercmd> -REPLY CWD 550 I won't allow this on my server -REPLY MKD 550 We will have no such thing -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP with --ftp-create-dirs (failing MKD) - </name> - <command> -ftp://%HOSTIP:%FTPPORT/attempt/to/get/this/148 --ftp-create-dirs -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -# Strip all valid kinds of PORT and EPRT that curl can send -<strip> -^PORT \d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3} -^EPRT \|1\|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\|\d{1,5}\| -</strip> -<errorcode> -9 -</errorcode> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD attempt -MKD attempt -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test149 b/Utilities/cmcurl-7.19.0/tests/data/test149 deleted file mode 100644 index 6fc48de..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test149 +++ /dev/null @@ -1,47 +0,0 @@ -<testcase> -# Server-side -<reply> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP with multiple uploads - </name> - <command> --T log/upload148 ftp://%HOSTIP:%FTPPORT/dir1/148 -T log/upload148 ftp://%HOSTIP:%FTPPORT/dir2/148 -</command> -<file name="log/upload148"> -send away this contents -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -# Strip all valid kinds of PORT and EPRT that curl can send -<strip> -^PORT \d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3} -^EPRT \|1\|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\|\d{1,5}\| -</strip> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD dir1 -EPSV -TYPE I -STOR 148 -CWD /nowhere/anywhere -CWD dir2 -EPSV -STOR 148 -QUIT -</protocol> -<file name="log/upload148"> -send away this contents -</file> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test15 b/Utilities/cmcurl-7.19.0/tests/data/test15 deleted file mode 100644 index 053ad52..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test15 +++ /dev/null @@ -1,57 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET ---write-out -</keywords> -</info> -# Server-side -<reply> -<data nocheck="true"> -HTTP/1.4 200 OK -Fake: yes -Fake: yes -Fake: yes -Content-Length: 26 - -Repeated nonsense-headers -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> ---write-out test - </name> - <command> -http://%HOSTIP:%HTTPPORT/want/15 --write-out "%{url_effective} %{http_code} %{size_download}\n" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<stdout> -HTTP/1.4 200 OK -Fake: yes -Fake: yes -Fake: yes -Content-Length: 26 - -Repeated nonsense-headers -http://%HOSTIP:%HTTPPORT/want/15 200 26 -</stdout> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /want/15 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test150 b/Utilities/cmcurl-7.19.0/tests/data/test150 deleted file mode 100644 index b3f6c32..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test150 +++ /dev/null @@ -1,90 +0,0 @@ -<testcase> - -<!-- Server-side --> -<reply> - -<!-- no <data> in this test since we have NTLM from the start - -This is supposed to be returned when the server gets a first -Authorization: NTLM line passed-in from the client --> - -<data1001> -HTTP/1.1 401 Now gimme that second request of crap -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 34 -WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -This is not the real page either! -</data1001> - -# This is supposed to be returned when the server gets the second -# Authorization: NTLM line passed-in from the client -<data1002> -HTTP/1.1 200 Things are fine in server land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 32 - -Finally, this is the real page! -</data1002> - -<datacheck> -HTTP/1.1 401 Now gimme that second request of crap -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 34 -WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -HTTP/1.1 200 Things are fine in server land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 32 - -Finally, this is the real page! -</datacheck> - -</reply> - -# Client-side -<client> -<features> -NTLM -</features> -<server> -http -</server> - <name> -HTTP with NTLM authorization and --fail - </name> - <command> -http://%HOSTIP:%HTTPPORT/150 -u testuser:testpass --ntlm --fail -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -# We strip off a large chunk of the type-2 NTLM message since it depends on -# the local host name and thus differs on different machines! -<strippart> -s/^(Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAA).*/$1/ -</strippart> -<protocol> -GET /150 HTTP/1.1 -Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= -User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /150 HTTP/1.1 -Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAA -User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test151 b/Utilities/cmcurl-7.19.0/tests/data/test151 deleted file mode 100644 index 6498fc9..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test151 +++ /dev/null @@ -1,41 +0,0 @@ -<testcase> -# Server-side -<reply> -<data> -HTTP/1.0 401 BAD BOY -Server: swsclose -Content-Type: text/html - -This contains a response code >= 400, so curl shouldn't display this. Even -though it's a response code that triggers authentication, we're not using -authentication so we should still fail. -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET with an error code that might trick authentication - </name> - <command> -http://%HOSTIP:%HTTPPORT/151 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -<protocol> -GET /151 HTTP/1.1 -User-Agent: curl/7.8.1-pre3 (sparc-sun-solaris2.7) libcurl 7.8.1-pre3 (OpenSSL 0.9.6a) (krb4 enabled) -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test152 b/Utilities/cmcurl-7.19.0/tests/data/test152 deleted file mode 100644 index 061842b..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test152 +++ /dev/null @@ -1,44 +0,0 @@ -<testcase> -# Server-side -<reply> -<data nocheck="1"> -HTTP/1.0 401 BAD BOY -Server: swsclose -Content-Type: text/html - -This contains a response code >= 400, so curl shouldn't display this. Even -though it's a response code that triggers authentication, we're not using -authentication so we should still fail. -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET with an error code that might trick authentication and --fail - </name> - <command> -http://%HOSTIP:%HTTPPORT/152 --fail -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -<protocol> -GET /152 HTTP/1.1 -User-Agent: curl/7.8.1-pre3 (sparc-sun-solaris2.7) libcurl 7.8.1-pre3 (OpenSSL 0.9.6a) (krb4 enabled) -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -<errorcode> -22 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test153 b/Utilities/cmcurl-7.19.0/tests/data/test153 deleted file mode 100644 index 651d65c..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test153 +++ /dev/null @@ -1,133 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP Digest auth -</keywords> -</info> - -# Server-side -<reply> -# reply back and ask for Digest auth -<data1> -HTTP/1.1 401 Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Digest realm="testrealm", nonce="1053604145" -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 26 - -This is not the real page -</data1> - -# This is supposed to be returned when the server gets a -# Authorization: Digest line passed-in from the client -<data1001> -HTTP/1.1 200 OK -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 23 - -This IS the real page! -</data1001> - -# -# This is the second request, and this sends back a response saying that -# the request contained stale data. We want an update. Set swsbounce to -# bounce on to data1003 on the second request. -<data1002> -HTTP/1.1 401 Authorization re-negotiation please swsbounce -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Digest realm="testrealm", algorithm=MD5, nonce="999999", stale=true, qop="auth" -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 25 - -This is not the real page -</data1002> - -# The second request to the 1002 section will bounce this one back instead -# thanks to the swsbounce keyword up there -<data1003> -HTTP/1.1 200 OK -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 30 - -This IS the second real page! -</data1003> -</reply> - -# Client-side -<client> -<server> -http -</server> -<features> -crypto -</features> - <name> -HTTP with Digest authorization with stale=true - </name> - <command> -http://%HOSTIP:%HTTPPORT/1530001 -u testuser:testpass --digest http://%HOSTIP:%HTTPPORT/1530002 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^Authorization.*cnonce -^User-Agent:.* -</strip> -<protocol> -GET /1530001 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /1530001 HTTP/1.1 -Authorization: Digest username="testuser", realm="testrealm", nonce="1053604145", uri="/1530001", response="f4f83139396995bac665f24a1f1055c7" -User-Agent: curl/7.10.5 (i686-pc-linux-gnu) libcurl/7.10.5 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /1530002 HTTP/1.1 -Authorization: Digest username="testuser", realm="testrealm", nonce="1053604145", uri="/1530002", response="f84511b014fdd0ba6494f42871079c32" -User-Agent: curl/7.11.0-CVS (i686-pc-linux-gnu) libcurl/7.11.0-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /1530002 HTTP/1.1 -Authorization: Digest username="testuser", realm="testrealm", nonce="999999", uri="/1530002", cnonce="MTA4MzIy", nc="00000001", qop="auth", response="25291c357671604a16c0242f56721c07", algorithm="MD5" -User-Agent: curl/7.11.0-CVS (i686-pc-linux-gnu) libcurl/7.11.0-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -<stdout> -HTTP/1.1 401 Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Digest realm="testrealm", nonce="1053604145" -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 26 - -HTTP/1.1 200 OK -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 23 - -This IS the real page! -HTTP/1.1 401 Authorization re-negotiation please swsbounce -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Digest realm="testrealm", algorithm=MD5, nonce="999999", stale=true, qop="auth" -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 25 - -HTTP/1.1 200 OK -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 30 - -This IS the second real page! -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test154 b/Utilities/cmcurl-7.19.0/tests/data/test154 deleted file mode 100644 index d3f196d..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test154 +++ /dev/null @@ -1,108 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP PUT -HTTP Digest auth ---anyauth -</keywords> -</info> - -# Server-side -<reply> -<servercmd> -auth_required -</servercmd> -<data> -HTTP/1.1 401 Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Blackmagic realm="gimme all yer s3cr3ts" -WWW-Authenticate: Basic realm="gimme all yer s3cr3ts" -WWW-Authenticate: Digest realm="gimme all yer s3cr3ts", nonce="11223344" -Content-Type: text/html; charset=iso-8859-1 -Connection: close - -This is not the real page -</data> - -# This is supposed to be returned when the server gets a -# Authorization: Digest line passed-in from the client -<data1000> -HTTP/1.1 200 OK swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 23 -Connection: close - -This IS the real page! -</data1000> - -<datacheck> -HTTP/1.1 401 Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Blackmagic realm="gimme all yer s3cr3ts" -WWW-Authenticate: Basic realm="gimme all yer s3cr3ts" -WWW-Authenticate: Digest realm="gimme all yer s3cr3ts", nonce="11223344" -Content-Type: text/html; charset=iso-8859-1 -Connection: close - -HTTP/1.1 200 OK swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 23 -Connection: close - -This IS the real page! -</datacheck> - -</reply> - -# Client-side -<client> -<server> -http -</server> -<features> -crypto -</features> - <name> -HTTP PUT with --anyauth authorization (picking Digest) - </name> - <command> -http://%HOSTIP:%HTTPPORT/154 -T log/put154 -u testuser:testpass --anyauth -</command> -<file name="log/put154"> -This is data we upload with PUT -a second line -line three -four is the number of lines -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -PUT /154 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 85 -Expect: 100-continue - -PUT /154 HTTP/1.1 -Authorization: Digest username="testuser", realm="gimme all yer s3cr3ts", nonce="11223344", uri="/154", response="b71551e12d1c456e47d8388ecb2edeca" -User-Agent: curl/7.10.5 (i686-pc-linux-gnu) libcurl/7.10.5 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 85 -Expect: 100-continue - -This is data we upload with PUT -a second line -line three -four is the number of lines -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test155 b/Utilities/cmcurl-7.19.0/tests/data/test155 deleted file mode 100644 index 2ec1234..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test155 +++ /dev/null @@ -1,127 +0,0 @@ -<testcase> -# Server-side -<reply> -<servercmd> -auth_required -</servercmd> -<data> -HTTP/1.1 401 NTLM Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Blackmagic realm="gimme all yer s3cr3ts" -WWW-Authenticate: Basic realm="gimme all yer s3cr3ts" -WWW-Authenticate: NTLM -Content-Type: text/html; charset=iso-8859-1 -Connection: close - -moo -</data> - -# This is supposed to be returned when the server gets a first -# Authorization: NTLM line passed-in from the client -<data1001> -HTTP/1.1 401 Type-1 received, send back type-2 -Server: Microsoft-IIS/5.0 -Content-Length: 34 -Content-Type: text/html; charset=iso-8859-1 -WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -This is not the real page either! -</data1001> - -# This is supposed to be returned when the server gets the second -# Authorization: NTLM line passed-in from the client -<data1002> -HTTP/1.1 200 Type-3 Recevied and all Things are fine swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 32 - -Finally, this is the real page! -</data1002> - -<datacheck> -HTTP/1.1 401 NTLM Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Blackmagic realm="gimme all yer s3cr3ts" -WWW-Authenticate: Basic realm="gimme all yer s3cr3ts" -WWW-Authenticate: NTLM -Content-Type: text/html; charset=iso-8859-1 -Connection: close - -HTTP/1.1 401 Type-1 received, send back type-2 -Server: Microsoft-IIS/5.0 -Content-Length: 34 -Content-Type: text/html; charset=iso-8859-1 -WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -HTTP/1.1 200 Type-3 Recevied and all Things are fine swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 32 - -Finally, this is the real page! -</datacheck> - -</reply> - -# Client-side -<client> -<features> -NTLM -</features> -<server> -http -</server> - <name> -HTTP PUT with --anyauth authorization (picking NTLM) - </name> - <command> -http://%HOSTIP:%HTTPPORT/155 -T log/put155 -u testuser:testpass --anyauth -</command> -<file name="log/put155"> -This is data we upload with PUT -a second line -line three -four is the number of lines -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -# We strip off a large chunk of the type-2 NTLM message since it depends on -# the local host name and thus differs on different machines! -<strippart> -s/^(Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAA).*/$1/ -</strippart> -<protocol> -PUT /155 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 85 -Expect: 100-continue - -PUT /155 HTTP/1.1 -Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 0 -Expect: 100-continue - -PUT /155 HTTP/1.1 -Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAA -User-Agent: curl/7.10.5 (i686-pc-linux-gnu) libcurl/7.10.5 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 85 -Expect: 100-continue - -This is data we upload with PUT -a second line -line three -four is the number of lines -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test156 b/Utilities/cmcurl-7.19.0/tests/data/test156 deleted file mode 100644 index 14f8716..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test156 +++ /dev/null @@ -1,52 +0,0 @@ -<testcase> -# Server-side -<reply> -<data> -HTTP/1.1 200 No Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Content-Type: text/html; charset=iso-8859-1 -Connection: close - -PUT received fine. Thank you very much -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP PUT with --anyauth (when the server requires none) - </name> - <command> -http://%HOSTIP:%HTTPPORT/156 -T log/put156 -u testuser:testpass --anyauth -</command> -<file name="log/put156"> -This is data we upload with PUT -a second line -line three -four is the number of lines -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -PUT /156 HTTP/1.1 -User-Agent: curl/7.10.5 (i686-pc-linux-gnu) libcurl/7.10.5 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 85 -Expect: 100-continue - -This is data we upload with PUT -a second line -line three -four is the number of lines -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test157 b/Utilities/cmcurl-7.19.0/tests/data/test157 deleted file mode 100644 index 93d86e0..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test157 +++ /dev/null @@ -1,39 +0,0 @@ -<testcase> -# Server-side -<reply> -<data> -HTTP/1.1 200 No Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Content-Type: text/html; charset=iso-8859-1 -Connection: close - -GET received and served just fine. Thank you very much -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET with --anyauth (when the server requires none) - </name> - <command> -http://%HOSTIP:%HTTPPORT/157 -u testuser:testpass --anyauth -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /157 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test158 b/Utilities/cmcurl-7.19.0/tests/data/test158 deleted file mode 100644 index 80030c5..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test158 +++ /dev/null @@ -1,50 +0,0 @@ -<testcase> -# Server-side -<reply> -<data> -HTTP/1.1 100 Continue swsclose -Silly-header: yeeeees - -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP multipart formpost with only a 100 reply - </name> - <command> -http://%HOSTIP:%HTTPPORT/158 -F name=daniel -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -^Content-Type: multipart/form-data.* -^---------------------------.* -</strip> -<protocol> -POST /158 HTTP/1.1 -User-Agent: curl/7.11.2-CVS (i686-pc-linux-gnu) libcurl/7.11.2-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 145 -Expect: 100-continue -Content-Type: multipart/form-data; boundary=----------------------------4f12fcdaa3bc - -------------------------------4f12fcdaa3bc -Content-Disposition: form-data; name="name" - -daniel -------------------------------4f12fcdaa3bc-- -</protocol> -<errorcode> -52 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test159 b/Utilities/cmcurl-7.19.0/tests/data/test159 deleted file mode 100644 index c736285..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test159 +++ /dev/null @@ -1,89 +0,0 @@ -<testcase> -# Server-side -<reply> - -<!-- no <data> in this test since we have NTLM from the start - -This is supposed to be returned when the server gets a first -Authorization: NTLM line passed-in from the client --> - -<data1001> -HTTP/1.1 401 Now gimme that second request of crap -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 34 -WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -This is not the real page either! -</data1001> - -# This is supposed to be returned when the server gets the second -# Authorization: NTLM line passed-in from the client -<data1002> -HTTP/1.1 200 Things are fine in server land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 32 - -Finally, this is the real page! -</data1002> - -<datacheck> -HTTP/1.1 401 Now gimme that second request of crap -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 34 -WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -HTTP/1.1 200 Things are fine in server land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 32 - -Finally, this is the real page! -</datacheck> - -</reply> - -# Client-side -<client> -<features> -NTLM -</features> -<server> -http -</server> - <name> -HTTP with NTLM authorization when talking HTTP/1.0 - </name> - <command> -http://%HOSTIP:%HTTPPORT/159 -u testuser:testpass --ntlm -0 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -# We strip off a large chunk of the type-2 NTLM message since it depends on -# the local host name and thus differs on different machines! -<strippart> -s/^(Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAA).*/$1/ -</strippart> -<protocol> -GET /159 HTTP/1.0 -Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= -User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /159 HTTP/1.0 -Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAA -User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test16 b/Utilities/cmcurl-7.19.0/tests/data/test16 deleted file mode 100644 index 329e516..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test16 +++ /dev/null @@ -1,51 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP proxy Basic auth -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Type: text/html -Funny-head: yesyes -Content-Length: 22 - -the content goes here -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP with proxy authorization - </name> - <command> - -U fake@user:§§§looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong -x %HOSTIP:%HTTPPORT http://we.want.that.site.com/16 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET http://we.want.that.site.com/16 HTTP/1.1 -Proxy-Authorization: Basic ZmFrZUB1c2VyOqenp2xvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZw== -Host: we.want.that.site.com -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test160 b/Utilities/cmcurl-7.19.0/tests/data/test160 deleted file mode 100644 index 1c8e5fa..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test160 +++ /dev/null @@ -1,66 +0,0 @@ -<testcase> -# Server-side -<reply> -<data nocheck="true"> -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 9 - -surprise -</data> -<data1> -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -surprise2 -</data1> - -<postcmd> -wait 1 -</postcmd> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP with delayed close, conn reuse, connection reset and retry - </name> - <command> -http://%HOSTIP:%HTTPPORT/want/160 http://%HOSTIP:%HTTPPORT/wantmore/1600001 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<stdout> -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 9 - -surprise -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -surprise2 -</stdout> - -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /want/160 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /wantmore/1600001 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test161 b/Utilities/cmcurl-7.19.0/tests/data/test161 deleted file mode 100644 index 03e8fc6..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test161 +++ /dev/null @@ -1,41 +0,0 @@ -<testcase> -# Server-side -<reply> -<data> -1oooooooooooooooooooooooooooooooooooooooooo2 -</data> -<size> -10928 -</size> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP RETR PASV - </name> - <command> -ftp://%HOSTIP:%FTPPORT/161 -</command> -</client> - - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE I -SIZE 161 -RETR 161 -</protocol> -<errorcode> -18 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test162 b/Utilities/cmcurl-7.19.0/tests/data/test162 deleted file mode 100644 index 512baef..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test162 +++ /dev/null @@ -1,51 +0,0 @@ -<testcase> -# Server-side -<reply> -<data1001 nocheck="1"> -HTTP/1.0 407 BAD BOY -Proxy-Authenticate: Basic realm="Squid proxy-caching web server" -Server: swsclose -Content-Type: text/html - -Even though it's the response code that triggers authentication, we're -using NTLM and the server isn't, so we should fail. We know the server -isn't because there's no Proxy-Authorization: NTLM header -</data1001> -</reply> - -# Client-side -<client> -<features> -NTLM -</features> -<server> -http -</server> - <name> -HTTP GET asking for --proxy-ntlm when some other authentication is required - </name> - <command> -http://%HOSTIP:%HTTPPORT/162 --proxy http://%HOSTIP:%HTTPPORT --proxy-user foo:bar --proxy-ntlm --fail -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -<protocol> -GET http://%HOSTIP:%HTTPPORT/162 HTTP/1.1 -Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= -User-Agent: curl/7.8.1-pre3 (sparc-sun-solaris2.7) libcurl 7.8.1-pre3 (OpenSSL 0.9.6a) (krb4 enabled) -Host: %HOSTIP:%HTTPPORT -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> -<errorcode> -22 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test163 b/Utilities/cmcurl-7.19.0/tests/data/test163 deleted file mode 100644 index bea5e76..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test163 +++ /dev/null @@ -1,73 +0,0 @@ -<testcase> -# Server-side -<reply> -<data> -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 10 - -blablabla -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP multipart formpost with contents from a file - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/want/163 -F "name=<log/field163" -F tool=curl -</command> -# We create this file before the command is invoked! -<file name="log/field163"> -contents -from -a -file - -newlinens? -yes please - -[tab][CR] too -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^(User-Agent:|Content-Type: multipart/form-data;|------------).* -</strip> -<protocol> -POST /we/want/163 HTTP/1.1 -User-Agent: curl/7.11.2-CVS (i686-pc-linux-gnu) libcurl/7.11.2-CVS OpenSSL/0.9.6b zlib/1.1.4 c-ares/1.0.0 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 304 -Expect: 100-continue -Content-Type: multipart/form-data; boundary=----------------------------c2d1767eb6ac - -------------------------------c2d1767eb6ac -Content-Disposition: form-data; name="name" - -contents -from -a -file - -newlinens? -yes please - -[tab][CR] too - -------------------------------c2d1767eb6ac -Content-Disposition: form-data; name="tool" - -curl -------------------------------c2d1767eb6ac-- -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test164 b/Utilities/cmcurl-7.19.0/tests/data/test164 deleted file mode 100644 index 4d5d931..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test164 +++ /dev/null @@ -1,61 +0,0 @@ -<testcase> -# Server-side -# This particular response is an exact excerpt from an actual Apache -# server when asked for a 0-10,12-15 range (except gt/lt changed to {} -# to avoid XML escaping problems). -<reply> -<data> -HTTP/1.1 206 Partial Content swsclose -Date: Sat, 24 Apr 2004 09:24:49 GMT -Server: Apache/1.3.29 (Unix) mod_throttle/3.1.2 PHP/4.3.4 mod_fastcgi/2.4.0 -Last-Modified: Tue, 23 Mar 2004 08:23:14 GMT -ETag: "53814a-ec5-405ff3f2" -Accept-Ranges: bytes -Content-Length: 187 -Content-Type: multipart/byteranges; boundary=408a326132c - ---408a326132c -Content-type: text/html -Content-range: bytes 0-10/3781 - -{html} -{hea - ---408a326132c -Content-type: text/html -Content-range: bytes 12-15/3781 - -} -{t - ---408a326132c-- -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP range with multiple ranges - </name> - <command> -http://%HOSTIP:%HTTPPORT/want/164 -r 0-10,12-15 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /want/164 HTTP/1.1 -Range: bytes=0-10,12-15 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test165 b/Utilities/cmcurl-7.19.0/tests/data/test165 deleted file mode 100644 index 4d45213..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test165 +++ /dev/null @@ -1,58 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -IDN -</keywords> -</info> - -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake swsclose -Content-Type: text/html -Funny-head: yesyes - -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> -<features> -idn -</features> -<setenv> -CHARSET=ISO8859-1 -</setenv> - <name> -HTTP over proxy with IDN host name - </name> - <command> -http://www.åäö.se/page/165 -x %HOSTIP:%HTTPPORT -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET http://www.xn--4cab6c.se/page/165 HTTP/1.1 -Host: www.xn--4cab6c.se -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test166 b/Utilities/cmcurl-7.19.0/tests/data/test166 deleted file mode 100644 index 0078724..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test166 +++ /dev/null @@ -1,54 +0,0 @@ -<testcase> -# Server-side -<reply> -<data> -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 10 - -blablabla -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP formpost a file with spaces in name - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/want/166 -F "name=@log/fie ld 166" -</command> -# We create this file before the command is invoked! -<file name="log/fie ld 166"> -data inside the file -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^(User-Agent:|Content-Type: multipart/form-data;|------------).* -</strip> -<protocol> -POST /we/want/166 HTTP/1.1 -User-Agent: curl/7.12.0-CVS (i686-pc-linux-gnu) libcurl/7.12.0-CVS OpenSSL/0.9.6b zlib/1.1.4 c-ares/1.2.0 libidn/0.4.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 223 -Expect: 100-continue -Content-Type: multipart/form-data; boundary=----------------------------b0b3d6d23991 - -------------------------------b0b3d6d23991 -Content-Disposition: form-data; name="name"; filename="fie ld 166" -Content-Type: application/octet-stream - -data inside the file - -------------------------------b0b3d6d23991-- -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test167 b/Utilities/cmcurl-7.19.0/tests/data/test167 deleted file mode 100644 index d2ea126..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test167 +++ /dev/null @@ -1,81 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP proxy -HTTP proxy Basic auth -HTTP Digest auth -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 401 Authorization Required swsclose -WWW-Authenticate: Digest realm="weirdorealm", nonce="12345" - -</data> - -<data1000> -HTTP/1.1 200 OK swsclose -Server: no -Content-Length: 15 - -Nice auth sir! -</data1000> - -<datacheck> -HTTP/1.1 401 Authorization Required swsclose -WWW-Authenticate: Digest realm="weirdorealm", nonce="12345" - -HTTP/1.1 200 OK swsclose -Server: no -Content-Length: 15 - -Nice auth sir! -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> -<features> -crypto -</features> - <name> -HTTP with proxy-requiring-Basic to site-requiring-Digest - </name> - <command> -http://data.from.server.requiring.digest.hohoho.com/167 --proxy http://%HOSTIP:%HTTPPORT --proxy-user foo:bar --digest --user digest:alot -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -<protocol> -GET http://data.from.server.requiring.digest.hohoho.com/167 HTTP/1.1 -Proxy-Authorization: Basic Zm9vOmJhcg== -User-Agent: curl/7.12.0-CVS (i686-pc-linux-gnu) libcurl/7.12.0-CVS OpenSSL/0.9.6b zlib/1.1.4 c-ares/1.2.0 libidn/0.4.3 -Host: data.from.server.requiring.digest.hohoho.com -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -GET http://data.from.server.requiring.digest.hohoho.com/167 HTTP/1.1 -Proxy-Authorization: Basic Zm9vOmJhcg== -Authorization: Digest username="digest", realm="weirdorealm", nonce="12345", uri="/167", response="13c7c02a252cbe1c46d8669898a3be26" -User-Agent: curl/7.12.0-CVS (i686-pc-linux-gnu) libcurl/7.12.0-CVS OpenSSL/0.9.6b zlib/1.1.4 c-ares/1.2.0 libidn/0.4.3 -Host: data.from.server.requiring.digest.hohoho.com -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test168 b/Utilities/cmcurl-7.19.0/tests/data/test168 deleted file mode 100644 index 2e47024..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test168 +++ /dev/null @@ -1,102 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP proxy -HTTP proxy Digest auth -HTTP Digest auth -</keywords> -</info> - -# Server-side -<reply> - -# this is returned first since we get no proxy-auth -<data> -HTTP/1.1 407 Authorization Required to proxy me my dear swsclose -Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345" - -And you should ignore this data. -</data> - -# then this is returned since we get no server-auth -<data1000> -HTTP/1.1 401 Authorization to the remote host as well swsbounce swsclose -WWW-Authenticate: Digest realm="realmweirdo", nonce="123456" - -you should ignore this data too -</data1000> - -<data1001> -HTTP/1.1 200 OK swsclose -Server: no -Content-Length: 15 - -Nice auth sir! -</data1001> - -<datacheck> -HTTP/1.1 407 Authorization Required to proxy me my dear swsclose -Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345" - -HTTP/1.1 401 Authorization to the remote host as well swsbounce swsclose -WWW-Authenticate: Digest realm="realmweirdo", nonce="123456" - -HTTP/1.1 200 OK swsclose -Server: no -Content-Length: 15 - -Nice auth sir! -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> -<features> -crypto -</features> - <name> -HTTP with proxy-requiring-Digest to site-requiring-Digest - </name> - <command> -http://data.from.server.requiring.digest.hohoho.com/168 --proxy http://%HOSTIP:%HTTPPORT --proxy-user foo:bar --proxy-digest --digest --user digest:alot -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -<protocol> -GET http://data.from.server.requiring.digest.hohoho.com/168 HTTP/1.1 -User-Agent: curl/7.12.0-CVS (i686-pc-linux-gnu) libcurl/7.12.0-CVS OpenSSL/0.9.6b zlib/1.1.4 c-ares/1.2.0 libidn/0.4.3 -Host: data.from.server.requiring.digest.hohoho.com -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -GET http://data.from.server.requiring.digest.hohoho.com/168 HTTP/1.1 -Proxy-Authorization: Digest username="foo", realm="weirdorealm", nonce="12345", uri="/168", response="fb8608e00ad9239a3dedb14bc8575976" -User-Agent: curl/7.12.0-CVS (i686-pc-linux-gnu) libcurl/7.12.0-CVS OpenSSL/0.9.6b zlib/1.1.4 c-ares/1.2.0 libidn/0.4.3 -Host: data.from.server.requiring.digest.hohoho.com -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -GET http://data.from.server.requiring.digest.hohoho.com/168 HTTP/1.1 -Proxy-Authorization: Digest username="foo", realm="weirdorealm", nonce="12345", uri="/168", response="fb8608e00ad9239a3dedb14bc8575976" -Authorization: Digest username="digest", realm="realmweirdo", nonce="123456", uri="/168", response="ca87f2d768a231e2d637a55698d5c416" -User-Agent: curl/7.12.0-CVS (i686-pc-linux-gnu) libcurl/7.12.0-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.3 -Host: data.from.server.requiring.digest.hohoho.com -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test169 b/Utilities/cmcurl-7.19.0/tests/data/test169 deleted file mode 100644 index 252ec75..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test169 +++ /dev/null @@ -1,126 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP proxy -HTTP proxy NTLM auth -HTTP Digest auth -</keywords> -</info> - -# Server-side -<reply> - -# this is returned first since we get no proxy-auth -<data> -HTTP/1.1 407 Authorization Required to proxy me my dear swsclose -Proxy-Authenticate: NTLM - -And you should ignore this data. -</data> - -# then this is returned since we get no server-auth -<data1000> -HTTP/1.1 200 Authorizated fine -Content-Length: 27 - -Welcome to the end station -</data1000> - -<data1001> -HTTP/1.1 407 NTLM type-1 received sending back type-2 -Server: Microsoft-IIS/5.0 -Content-Length: 34 -Content-Type: text/html; charset=iso-8859-1 -Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -This is not the real page either! -</data1001> - -# This is supposed to be returned when the server gets the second -# Authorization: NTLM line passed-in from the client -<data1002> -HTTP/1.1 401 You now need to authenticate with the host -Server: Microsoft-IIS/5.0 -WWW-Authenticate: Digest realm="r e a l m", nonce="abcdef" -Content-Length: 46 -Content-Type: text/html; charset=iso-8859-1 - -We have not authenticated with the server yet -</data1002> - -<datacheck> -HTTP/1.1 407 NTLM type-1 received sending back type-2 -Server: Microsoft-IIS/5.0 -Content-Length: 34 -Content-Type: text/html; charset=iso-8859-1 -Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -HTTP/1.1 401 You now need to authenticate with the host -Server: Microsoft-IIS/5.0 -WWW-Authenticate: Digest realm="r e a l m", nonce="abcdef" -Content-Length: 46 -Content-Type: text/html; charset=iso-8859-1 - -HTTP/1.1 200 Authorizated fine -Content-Length: 27 - -Welcome to the end station -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> -<features> -NTLM -</features> - <name> -HTTP with proxy-requiring-NTLM to site-requiring-Digest - </name> - <command> -http://data.from.server.requiring.digest.hohoho.com/169 --proxy http://%HOSTIP:%HTTPPORT --proxy-user foo:bar --proxy-ntlm --digest --user digest:alot -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -# We strip off a large chunk of the type-2 NTLM message since it depends on -# the local host name and thus differs on different machines! -<strippart> -s/^(Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAAAwADAHAAAAA).*/$1/ -</strippart> -<protocol> -GET http://data.from.server.requiring.digest.hohoho.com/169 HTTP/1.1 -Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= -User-Agent: curl/7.12.0-CVS (i686-pc-linux-gnu) libcurl/7.12.0-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.3 -Host: data.from.server.requiring.digest.hohoho.com -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -GET http://data.from.server.requiring.digest.hohoho.com/169 HTTP/1.1 -Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAAAwADAHAAAAA -User-Agent: curl/7.12.0-CVS (i686-pc-linux-gnu) libcurl/7.12.0-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.3 -Host: data.from.server.requiring.digest.hohoho.com -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -GET http://data.from.server.requiring.digest.hohoho.com/169 HTTP/1.1 -Authorization: Digest username="digest", realm="r e a l m", nonce="abcdef", uri="/169", response="95d48591985a03c4b49cb962aa7bd3e6" -User-Agent: curl/7.12.0-CVS (i686-pc-linux-gnu) libcurl/7.12.0-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.3 -Host: data.from.server.requiring.digest.hohoho.com -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test17 b/Utilities/cmcurl-7.19.0/tests/data/test17 deleted file mode 100644 index 1931c8d..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test17 +++ /dev/null @@ -1,54 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP custom request -config file -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Funny-head: yesyes -Content-Length: 27 - -This is the proof it works -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP with config file on stdin - </name> - <stdin> -# -# Use a silly request without '--': -request MOOO -# -# Set the user-agent using a short-option: --A "agent007 license to drill\t" -# -# long option *with* '--': ---max-time 180 - </stdin> - <command> --K - %HOSTIP:%HTTPPORT/that.site.com/17 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -MOOO /that.site.com/17 HTTP/1.1 -User-Agent: agent007 license to drill -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test170 b/Utilities/cmcurl-7.19.0/tests/data/test170 deleted file mode 100644 index e2d44b9..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test170 +++ /dev/null @@ -1,43 +0,0 @@ -<testcase> -# Server-side -<reply> -</reply> - -# Client-side -<client> -<server> -http -</server> -<features> -NTLM -</features> - <name> -HTTP POST with --proxy-ntlm and no SSL with no response - </name> - <command> -http://a.galaxy.far.far.away/170 --proxy http://%HOSTIP:%HTTPPORT --proxy-user foo:bar --proxy-ntlm -F "dummy=value" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -<protocol> -POST http://a.galaxy.far.far.away/170 HTTP/1.1 -Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= -User-Agent: curl/7.12.0-CVS (i686-pc-linux-gnu) libcurl/7.12.0-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 libidn/0.4.3 -Host: a.galaxy.far.far.away -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Content-Length: 0 - -</protocol> -# 52 is CURLE_GOT_NOTHING -<errorcode> -52 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test171 b/Utilities/cmcurl-7.19.0/tests/data/test171 deleted file mode 100644 index 28fcbac..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test171 +++ /dev/null @@ -1,58 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -cookies -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Tue, 25 Sep 2001 19:37:44 GMT -Content-Type: text/html -Set-Cookie: XToken=xt;Domain=.z.x.com;Path=/ -Cache-control: private -Content-Length: 62 - -This server reply is for testing a simple cookie test case... -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP, get cookie with dot prefixed full domain - </name> - <command> --c log/jar171 -x %HOSTIP:%HTTPPORT http://z.x.com/171 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET http://z.x.com/171 HTTP/1.1 -Host: z.x.com -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> -<file name="log/jar171" mode="text"> -# Netscape HTTP Cookie File -# http://curl.haxx.se/rfc/cookie_spec.html -# This file was generated by libcurl! Edit at your own risk. - -.z.x.com TRUE / FALSE 0 XToken xt -</file> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test172 b/Utilities/cmcurl-7.19.0/tests/data/test172 deleted file mode 100644 index 0618373..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test172 +++ /dev/null @@ -1,56 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -cookies -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Content-Length: 4 -Connection: close - -boo -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP with cookies file and custom added cookie - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/want/172 -b log/jar172.txt -b "tool=curl; name=fool" -</command> -<file name="log/jar172.txt"> -# Netscape HTTP Cookie File -# http://curl.haxx.se/rfc/cookie_spec.html -# This file was generated by libcurl! Edit at your own risk. - -.%HOSTIP TRUE /silly/ FALSE 0 ismatch this -.%HOSTIP TRUE / FALSE 0 partmatch present -%HOSTIP FALSE /we/want/ FALSE 1391252187 nodomain value -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /we/want/172 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Cookie: nodomain=value; partmatch=present; tool=curl; name=fool - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test173 b/Utilities/cmcurl-7.19.0/tests/data/test173 deleted file mode 100644 index 841c228..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test173 +++ /dev/null @@ -1,73 +0,0 @@ -<testcase> -# Server-side -<reply> -<data> -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 11 - -blablabla - -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP RFC1867-formpost a file from stdin with "faked" filename - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/want/173 -F field1=contents1 -F "fileupload=@-;filename=/dev/null" -</command> - -<stdin> -line1 -line2 -line3 -line4 -line5 -line6 -line7 -line8 -</stdin> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^(User-Agent:|Content-Type: multipart/form-data;|------------).* -</strip> -<protocol> -POST /we/want/173 HTTP/1.1 -User-Agent: curl/7.12.1-CVS (i686-pc-linux-gnu) libcurl/7.12.1-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.6 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 359 -Expect: 100-continue -Content-Type: multipart/form-data; boundary=----------------------------5dbea401cd8c - -------------------------------5dbea401cd8c -Content-Disposition: form-data; name="field1" - -contents1 -------------------------------5dbea401cd8c -Content-Disposition: form-data; name="fileupload"; filename="/dev/null" -Content-Type: application/octet-stream - -line1 -line2 -line3 -line4 -line5 -line6 -line7 -line8 - -------------------------------5dbea401cd8c-- -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test174 b/Utilities/cmcurl-7.19.0/tests/data/test174 deleted file mode 100644 index f480909..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test174 +++ /dev/null @@ -1,45 +0,0 @@ -<testcase> -# Server-side -<reply> -<data> -HTTP/1.1 200 beng swsclose -Server: Microsoft-IIS/6.0 -Authentication-Info: Passport1.4 tname=MSPAuth,tname=MSPProf,tname=MSPConsent,tname=MSPSecAuth -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 26 - -This is not the real page -</data> -</reply> - -# Client-side -<client> -# -<server> -http -</server> - <name> -HTTP POST --anyauth to server not requiring any auth at all - </name> - <command> -http://%HOSTIP:%HTTPPORT/174 -u testuser:testpass --anyauth -d "junkelijunk" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol nonewline="yes"> -POST /174 HTTP/1.1 -User-Agent: curl/7.12.1-CVS (i686-pc-linux-gnu) libcurl/7.12.1-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.6 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 11 -Content-Type: application/x-www-form-urlencoded - -junkelijunk -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test175 b/Utilities/cmcurl-7.19.0/tests/data/test175 deleted file mode 100644 index 3425d2d..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test175 +++ /dev/null @@ -1,86 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP POST -HTTP Digest auth -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 200 beng swsclose swsbounce -Server: Microsoft-IIS/6.0 -Authentication-Info: Passport1.4 tname=MSPAuth,tname=MSPProf,tname=MSPConsent,tname=MSPSecAuth -Content-Type: text/html; charset=iso-8859-1 - -This is not the real page -</data> - -<data1> -HTTP/1.1 200 moo swsclose -Server: Microsoft-IIS/6.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 16 - -content for you -</data1> - -<datacheck> -HTTP/1.1 200 beng swsclose swsbounce -Server: Microsoft-IIS/6.0 -Authentication-Info: Passport1.4 tname=MSPAuth,tname=MSPProf,tname=MSPConsent,tname=MSPSecAuth -Content-Type: text/html; charset=iso-8859-1 - -HTTP/1.1 200 moo swsclose -Server: Microsoft-IIS/6.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 16 - -content for you -</datacheck> - -</reply> - -# Client-side -<client> -# -<server> -http -</server> -<features> -crypto -</features> - <name> -HTTP POST --digest to server not requiring any auth at all - </name> - <command> -http://%HOSTIP:%HTTPPORT/175 -u auser:apasswd --digest -d "junkelijunk" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol nonewline="yes"> -POST /175 HTTP/1.1 -User-Agent: curl/7.12.1-CVS (i686-pc-linux-gnu) libcurl/7.12.1-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.6 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 0 -Content-Type: application/x-www-form-urlencoded - -POST /175 HTTP/1.1 -User-Agent: curl/7.12.1-CVS (i686-pc-linux-gnu) libcurl/7.12.1-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.6 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 11 -Content-Type: application/x-www-form-urlencoded - -junkelijunk -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test176 b/Utilities/cmcurl-7.19.0/tests/data/test176 deleted file mode 100644 index acdcc57..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test176 +++ /dev/null @@ -1,79 +0,0 @@ -<testcase> -# Server-side -<reply> -# the first request has NTLM type-1 included, and then the 1001 is returned -<data1001> -HTTP/1.1 200 beng swsclose swsbounce -Server: Microsoft-IIS/6.0 -Authentication-Info: Passport1.4 tname=MSPAuth,tname=MSPProf,tname=MSPConsent,tname=MSPSecAuth -Content-Type: text/html; charset=iso-8859-1 - -</data1001> - -# the second request should be auth-less and then this is returned. -<data> -HTTP/1.1 200 moo swsclose -Server: Microsoft-IIS/6.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 16 - -content for you -</data> - -<datacheck> -HTTP/1.1 200 beng swsclose swsbounce -Server: Microsoft-IIS/6.0 -Authentication-Info: Passport1.4 tname=MSPAuth,tname=MSPProf,tname=MSPConsent,tname=MSPSecAuth -Content-Type: text/html; charset=iso-8859-1 - -HTTP/1.1 200 moo swsclose -Server: Microsoft-IIS/6.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 16 - -content for you -</datacheck> - -</reply> - -# Client-side -<client> -<features> -NTLM -</features> -<server> -http -</server> - <name> -HTTP POST --ntlm to server not requiring any auth at all - </name> - <command> -http://%HOSTIP:%HTTPPORT/176 -u auser:apasswd --ntlm -d "junkelijunk" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol nonewline="yes"> -POST /176 HTTP/1.1 -Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= -User-Agent: curl/7.12.1-CVS (i686-pc-linux-gnu) libcurl/7.12.1-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.6 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 0 -Content-Type: application/x-www-form-urlencoded - -POST /176 HTTP/1.1 -User-Agent: curl/7.12.1-CVS (i686-pc-linux-gnu) libcurl/7.12.1-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.6 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 11 -Content-Type: application/x-www-form-urlencoded - -junkelijunk -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test177 b/Utilities/cmcurl-7.19.0/tests/data/test177 deleted file mode 100644 index 98fd79d..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test177 +++ /dev/null @@ -1,54 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP POST -HTTP Digest auth -followlocation -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 302 *MOVED* swsclose swsbounce -Server: Microsoft-IIS/6.0 -Location: /mooooo/177 -Content-Type: text/html; charset=iso-8859-1 - -</data> -</reply> - -# Client-side -<client> -# -<server> -http -</server> -<features> -crypto -</features> - <name> -HTTP POST --digest to server doing a 302-location response - </name> - <command> -http://%HOSTIP:%HTTPPORT/177 -u auser:apasswd --digest -d "junkelijunk" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -POST /177 HTTP/1.1 -User-Agent: curl/7.12.1-CVS (i686-pc-linux-gnu) libcurl/7.12.1-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.6 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 0 -Content-Type: application/x-www-form-urlencoded - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test178 b/Utilities/cmcurl-7.19.0/tests/data/test178 deleted file mode 100644 index 482e38d..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test178 +++ /dev/null @@ -1,43 +0,0 @@ -<testcase> -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: -6 -Content-Type: text/html -Funny-head: yesyes - -moooooooooooo -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -simple HTTP GET with negative Content-Length - </name> - <command> -http://%HOSTIP:%HTTPPORT/178 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /178 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test179 b/Utilities/cmcurl-7.19.0/tests/data/test179 deleted file mode 100644 index 8168665..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test179 +++ /dev/null @@ -1,58 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP proxy -cookies -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Server: Microsoft-IIS/4.0 -Date: Tue, 25 Sep 2001 19:37:44 GMT -Content-Type: text/html -Connection: close -Content-Length: 21 - -This server says moo -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP using proxy and cookies with path checks - </name> - <command> -http://supertrooper.fake/c/179 -b log/injar179 -x %HOSTIP:%HTTPPORT -</command> -<file name="log/injar179"> -supertrooper.fake FALSE /a FALSE 2139150993 mooo indeed -supertrooper.fake FALSE /b FALSE 0 moo1 indeed -supertrooper.fake FALSE /c FALSE 2139150993 moo2 indeed -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET http://supertrooper.fake/c/179 HTTP/1.1 -Host: supertrooper.fake -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Cookie: moo2=indeed - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test18 b/Utilities/cmcurl-7.19.0/tests/data/test18 deleted file mode 100644 index e71ff7c..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test18 +++ /dev/null @@ -1,90 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -{} list -</keywords> -</info> -# Server-side -<reply> -<data nocheck="1"> -HTTP/1.1 200 OK -Funny-head: yesyes -Content-Length: 4 - -moo -</data> -<data2> -HTTP/1.1 200 OK -Funny-head: yesyes -Content-Length: 4 - -foo -</data2> -<data3> -HTTP/1.1 200 OK -Funny-head: yesyes -Content-Length: 4 - -hoo -</data3> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -multiple requests using {} in URL - </name> - <command> -"%HOSTIP:%HTTPPORT/{18,180002,180003}" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /18 HTTP/1.1 -User-Agent: curl/7.8.1-pre3 (sparc-sun-solaris2.7) libcurl 7.8.1-pre3 (OpenSSL 0.9.6a) (krb4 enabled) -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /180002 HTTP/1.1 -User-Agent: curl/7.8.1-pre3 (sparc-sun-solaris2.7) libcurl 7.8.1-pre3 (OpenSSL 0.9.6a) (krb4 enabled) -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /180003 HTTP/1.1 -User-Agent: curl/7.8.1-pre3 (sparc-sun-solaris2.7) libcurl 7.8.1-pre3 (OpenSSL 0.9.6a) (krb4 enabled) -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -<stdout> ---_curl_--%HOSTIP:%HTTPPORT/18 -HTTP/1.1 200 OK -Funny-head: yesyes -Content-Length: 4 - -moo ---_curl_--%HOSTIP:%HTTPPORT/180002 -HTTP/1.1 200 OK -Funny-head: yesyes -Content-Length: 4 - -foo ---_curl_--%HOSTIP:%HTTPPORT/180003 -HTTP/1.1 200 OK -Funny-head: yesyes -Content-Length: 4 - -hoo -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test180 b/Utilities/cmcurl-7.19.0/tests/data/test180 deleted file mode 100644 index fbaf344..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test180 +++ /dev/null @@ -1,59 +0,0 @@ -<testcase> -<reply> -<data> -HTTP/1.0 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake - -blablabla - -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP 1.0 PUT - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/want/180 -T log/test180.txt --http1.0 -</command> -<file name="log/test180.txt"> -Weird - file - to - upload -for - testing -the - PUT - feature -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -PUT /we/want/180 HTTP/1.0 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 78 - -Weird - file - to - upload -for - testing -the - PUT - feature -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test181 b/Utilities/cmcurl-7.19.0/tests/data/test181 deleted file mode 100644 index 99d371c..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test181 +++ /dev/null @@ -1,60 +0,0 @@ -<testcase> -<reply> -<data> -HTTP/1.0 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake - -blablabla - -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP 1.0 POST - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/want/181 --data-binary @log/test181.txt --http1.0 -</command> -<file name="log/test181.txt"> -Weird - file - to - upload -for - testing -the - POST - feature -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -POST /we/want/181 HTTP/1.0 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 79 -Content-Type: application/x-www-form-urlencoded - -Weird - file - to - upload -for - testing -the - POST - feature -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test182 b/Utilities/cmcurl-7.19.0/tests/data/test182 deleted file mode 100644 index 762a554..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test182 +++ /dev/null @@ -1,37 +0,0 @@ -<testcase> -# Server-side -<reply> -<data sendzero="yes"> -</data> -<size> -0 -</size> -</reply> - -# Client-side -<client> -<server> -ftp -</server> -<name> -FTP download an empty file -</name> -<command> -ftp://%HOSTIP:%FTPPORT/182 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE I -SIZE 182 -RETR 182 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test183 b/Utilities/cmcurl-7.19.0/tests/data/test183 deleted file mode 100644 index 273ddf7..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test183 +++ /dev/null @@ -1,57 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -persistent connection -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 4 - -moo -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET two URLs over a single proxy with persistent connection - </name> - <command> -http://deathstar.another.galaxy/183 http://a.galaxy.far.far.away/183 --proxy http://%HOSTIP:%HTTPPORT -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -<protocol> -GET http://deathstar.another.galaxy/183 HTTP/1.1 -User-Agent: curl/7.12.2-CVS (i686-pc-linux-gnu) libcurl/7.12.2-CVS OpenSSL/0.9.6b zlib/1.1.4 libidn/0.4.6 -Host: deathstar.another.galaxy -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -GET http://a.galaxy.far.far.away/183 HTTP/1.1 -User-Agent: curl/7.12.2-CVS (i686-pc-linux-gnu) libcurl/7.12.2-CVS OpenSSL/0.9.6b zlib/1.1.4 libidn/0.4.6 -Host: a.galaxy.far.far.away -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> - -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test184 b/Utilities/cmcurl-7.19.0/tests/data/test184 deleted file mode 100644 index 8b175ed..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test184 +++ /dev/null @@ -1,76 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -followlocation -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 301 OK swsbounce -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 4 -Location: http://yet.another.host/184 - -moo -</data> -<data1> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 4 - -moo -</data1> -<datacheck> -HTTP/1.1 301 OK swsbounce -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 4 -Location: http://yet.another.host/184 - -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 4 - -moo -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP replace Host: when following Location: to new host - </name> - <command> -http://deathstar.another.galaxy/184 -L -H "Host: another.visitor.stay.a.while.stay.foreeeeeever" --proxy http://%HOSTIP:%HTTPPORT -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -<protocol> -GET http://deathstar.another.galaxy/184 HTTP/1.1 -User-Agent: curl/7.12.2-CVS (i686-pc-linux-gnu) libcurl/7.12.2-CVS OpenSSL/0.9.6b zlib/1.1.4 libidn/0.4.6 -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Host: another.visitor.stay.a.while.stay.foreeeeeever - -GET http://yet.another.host/184 HTTP/1.1 -Host: yet.another.host -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> - -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test185 b/Utilities/cmcurl-7.19.0/tests/data/test185 deleted file mode 100644 index ea64e3a..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test185 +++ /dev/null @@ -1,76 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -followlocation -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 301 OK swsbounce -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 4 -Location: go/west/185 - -moo -</data> -<data1> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 4 - -moo -</data1> -<datacheck> -HTTP/1.1 301 OK swsbounce -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 4 -Location: go/west/185 - -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 4 - -moo -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP replace Host: when following Location: on the same host - </name> - <command> -http://deathstar.another.galaxy/185 -L -H "Host: another.visitor.stay.a.while.stay.foreeeeeever" --proxy http://%HOSTIP:%HTTPPORT -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -<protocol> -GET http://deathstar.another.galaxy/185 HTTP/1.1 -User-Agent: curl/7.12.2-CVS (i686-pc-linux-gnu) libcurl/7.12.2-CVS OpenSSL/0.9.6b zlib/1.1.4 libidn/0.4.6 -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Host: another.visitor.stay.a.while.stay.foreeeeeever - -GET http://deathstar.another.galaxy/go/west/185 HTTP/1.1 -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Host: another.visitor.stay.a.while.stay.foreeeeeever - -</protocol> - -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test186 b/Utilities/cmcurl-7.19.0/tests/data/test186 deleted file mode 100644 index bf1b027..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test186 +++ /dev/null @@ -1,56 +0,0 @@ -<testcase> -# Server-side -<reply> -<data> -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 11 - -blablabla - -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP RFC1867-type formposting with types on text fields - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/want/186 -F "name=daniel;type=moo/foo" -F "html= <body>hello</body>;type=text/html" -</command> -# We create this file before the command is invoked! -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^(User-Agent:|Content-Type: multipart/form-data;|------------).* -</strip> -<protocol> -POST /we/want/186 HTTP/1.1 -User-Agent: curl/7.12.2-CVS (i686-pc-linux-gnu) libcurl/7.12.2-CVS OpenSSL/0.9.7d zlib/1.2.1.1 c-ares/1.2.0 libidn/0.5.2 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 305 -Expect: 100-continue -Content-Type: multipart/form-data; boundary=----------------------------212d9006ceb5 - -------------------------------212d9006ceb5 -Content-Disposition: form-data; name="name" -Content-Type: moo/foo - -daniel -------------------------------212d9006ceb5 -Content-Disposition: form-data; name="html" -Content-Type: text/html - - <body>hello</body> -------------------------------212d9006ceb5-- -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test187 b/Utilities/cmcurl-7.19.0/tests/data/test187 deleted file mode 100644 index 978874c..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test187 +++ /dev/null @@ -1,77 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -followlocation -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 301 This is a weirdo text message -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: /root/1870002.txt?coolsite=yes -Connection: close - -This server reply is for testing a simple Location: following - -</data> -<data2> -HTTP/1.1 200 Followed here fine swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 52 - -If this is received, the location following worked - -</data2> -<datacheck> -HTTP/1.1 301 This is a weirdo text message -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: /root/1870002.txt?coolsite=yes -Connection: close - -HTTP/1.1 200 Followed here fine swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 52 - -If this is received, the location following worked - -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP redirect with bad host name separation and slash in parameters - </name> - <command> -http://%HOSTIP:%HTTPPORT?oh=what-weird=test/187 -L -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /?oh=what-weird=test/187 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /root/1870002.txt?coolsite=yes HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test188 b/Utilities/cmcurl-7.19.0/tests/data/test188 deleted file mode 100644 index 4443ee9..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test188 +++ /dev/null @@ -1,78 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -Content-Range -Resume -followlocation -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 301 OK swsbounce -Location: /188 -Content-Length: 2 - -OK -</data> -<data1> -HTTP/1.1 200 OK -Connection: close -Content-Length: 15 -Content-Range: bytes 50- - -Actual content -</data1> - -<datacheck> -HTTP/1.1 301 OK swsbounce -Location: /188 -Content-Length: 2 - -HTTP/1.1 200 OK -Connection: close -Content-Length: 15 -Content-Range: bytes 50- - -Actual content -</datacheck> - -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET with resume and redirect - </name> - <command> -http://%HOSTIP:%HTTPPORT/188 -C 50 -L -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /188 HTTP/1.1 -Range: bytes=50- -User-Agent: curl/7.6 (sparc-sun-solaris2.7) libcurl 7.6-pre4 (SSL 0.9.6) (krb4 enabled) -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /188 HTTP/1.1 -Range: bytes=50- -User-Agent: curl/7.12.2-CVS (i686-pc-linux-gnu) libcurl/7.12.2-CVS OpenSSL/0.9.7d zlib/1.2.1.2 libidn/0.5.2 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test189 b/Utilities/cmcurl-7.19.0/tests/data/test189 deleted file mode 100644 index 208087c..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test189 +++ /dev/null @@ -1,69 +0,0 @@ -<testcase> -# Server-side -<reply> -<data> -HTTP/1.1 301 OK swsbounce -Location: /189 -Content-Length: 2 - -OK -</data> -<data1> -HTTP/1.1 200 OK -Connection: close -Content-Length: 15 - -Actual content -</data1> - -<datacheck> -HTTP/1.1 301 OK swsbounce -Location: /189 -Content-Length: 2 - -HTTP/1.1 200 OK -Connection: close -Content-Length: 15 - -</datacheck> - -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET with resume and redirect (to a page that doesn't resume) - </name> - <command> -http://%HOSTIP:%HTTPPORT/189 -C 50 -L -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /189 HTTP/1.1 -Range: bytes=50- -User-Agent: curl/7.6 (sparc-sun-solaris2.7) libcurl 7.6-pre4 (SSL 0.9.6) (krb4 enabled) -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /189 HTTP/1.1 -Range: bytes=50- -User-Agent: curl/7.12.2-CVS (i686-pc-linux-gnu) libcurl/7.12.2-CVS OpenSSL/0.9.7d zlib/1.2.1.2 libidn/0.5.2 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -# 33 is CURLE_RANGE_ERROR -<errorcode> -33 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test19 b/Utilities/cmcurl-7.19.0/tests/data/test19 deleted file mode 100644 index dd60b8c..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test19 +++ /dev/null @@ -1,37 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -connect to non-listen -FAILURE -</keywords> -</info> -# Server-side -<reply> -<data> -</data> -</reply> - -# Client-side -<client> -<server> -none -</server> -<features> -http -</features> - <name> -attempt connect to non-listening socket - </name> - <command> -%HOSTIP:60000 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -7 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test190 b/Utilities/cmcurl-7.19.0/tests/data/test190 deleted file mode 100644 index ab0dfd7..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test190 +++ /dev/null @@ -1,38 +0,0 @@ -<testcase> -# Server-side -<reply> -<servercmd> -DELAY CWD 60 -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> -<killserver> -ftp -</killserver> - <name> -FTP download with strict timeout and slow CWD - </name> - <command timeout="1"> -ftp://%HOSTIP:%FTPPORT/path/to/file/190 -m %FTPTIME2 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -# 28 is CURLE_OPERATION_TIMEDOUT -<errorcode> -28 -</errorcode> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD path -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test191 b/Utilities/cmcurl-7.19.0/tests/data/test191 deleted file mode 100644 index 7b58580..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test191 +++ /dev/null @@ -1,35 +0,0 @@ -<testcase> -# Server-side -<reply> -<data> -data in file -</data> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP URL with ?-letters in username and password - </name> - <command> -"ftp://use?r:pass?word@%HOSTIP:%FTPPORT/191" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER use?r -PASS pass?word -PWD -EPSV -TYPE I -SIZE 191 -RETR 191 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test192 b/Utilities/cmcurl-7.19.0/tests/data/test192 deleted file mode 100644 index df94a8d..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test192 +++ /dev/null @@ -1,52 +0,0 @@ -<testcase> -# -# Server-side -<reply> -<data nocheck="1"> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 8 -Connection: close - -monster -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET -w num_connects with one simple connect - </name> - <command> -http://%HOSTIP:%HTTPPORT/192 -w "%{num_connects}\n" -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /192 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> - -<stdout> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 8 -Connection: close - -monster -1 -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test193 b/Utilities/cmcurl-7.19.0/tests/data/test193 deleted file mode 100644 index 93f6591..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test193 +++ /dev/null @@ -1,82 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -followlocation ---write-out -</keywords> -</info> - -# -# Server-side -<reply> -<data nocheck="1"> -HTTP/1.1 302 OK swsbounce swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 8 -Connection: close -Location: ./193 - -monster -</data> -<data1 nocheck="1"> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 8 -Connection: close - -monster -</data1> - -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET -w num_connects with redirected fetch (2 connects) - </name> - <command> -http://%HOSTIP:%HTTPPORT/193 -w "%{num_connects}\n" -L -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /193 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /193 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> - -<stdout> -HTTP/1.1 302 OK swsbounce swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 8 -Connection: close -Location: ./193 - -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 8 -Connection: close - -monster -2 -</stdout> - -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test194 b/Utilities/cmcurl-7.19.0/tests/data/test194 deleted file mode 100644 index d7350ed..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test194 +++ /dev/null @@ -1,56 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -Content-Range -Resume -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 416 Requested Range Not Satisfiable swsclose -Date: Fri, 24 Oct 2003 21:33:12 GMT -Server: Apache/1.3.19 (Unix) (Red-Hat/Linux) mod_ssl/2.8.1 OpenSSL/0.9.6 PHP/4.3.1 -Last-Modified: Fri, 24 Oct 2003 18:01:23 GMT -ETag: "ab57a-507-3f9968f3" -Accept-Ranges: bytes -Content-Length: 87 -Content-Range: bytes */87 -Content-Type: image/gif -Connection: close - -</data> - -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP resume transfer with the whole file already downloaded and --fail - </name> - <command> -http://%HOSTIP:%HTTPPORT/want/194 -C 87 --fail -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /want/194 HTTP/1.1 -Range: bytes=87- -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> - -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test195 b/Utilities/cmcurl-7.19.0/tests/data/test195 deleted file mode 100644 index a147a95..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test195 +++ /dev/null @@ -1,32 +0,0 @@ -<testcase> -# Server-side -<reply> -<servercmd> -REPLY PASS 530 temporarily not available -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP response 530 after PASS, temporarily not allowed access - </name> - <command> -ftp://%HOSTIP:%FTPPORT/195 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -67 -</errorcode> -<protocol> -USER anonymous -PASS ftp@example.com -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test196 b/Utilities/cmcurl-7.19.0/tests/data/test196 deleted file mode 100644 index 5cffd9a..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test196 +++ /dev/null @@ -1,35 +0,0 @@ -<testcase> -# Server-side -<reply> -<servercmd> -REPLY PASS 530 temporarily not available -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP transient error, retry request once - </name> - <command> -ftp://%HOSTIP:%FTPPORT/196 --retry 1 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -# 67 is CURLE_LOGIN_DENIED -<errorcode> -67 -</errorcode> -<protocol> -USER anonymous -PASS ftp@example.com -USER anonymous -PASS ftp@example.com -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test197 b/Utilities/cmcurl-7.19.0/tests/data/test197 deleted file mode 100644 index 0205309..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test197 +++ /dev/null @@ -1,69 +0,0 @@ -<testcase> -# -# Server-side -<reply> -<data nocheck="1"> -HTTP/1.1 503 OK swsbounce -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 21 - -server not available -</data> -<data1 nocheck="1"> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 3 -Connection: close - -ok -</data1> - -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET --retry on 503 error with output to stdout - </name> - <command> -http://%HOSTIP:%HTTPPORT/197 --retry 1000 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /197 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /197 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> - -<stdout> -HTTP/1.1 503 OK swsbounce -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 21 - -server not available -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 3 -Connection: close - -ok -</stdout> - -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test198 b/Utilities/cmcurl-7.19.0/tests/data/test198 deleted file mode 100644 index a413fb9..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test198 +++ /dev/null @@ -1,64 +0,0 @@ -<testcase> -# -# Server-side -<reply> -<data> -HTTP/1.1 503 OK swsbounce -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 21 - -server not available -</data> -<data1> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 3 -Connection: close - -ok -</data1> - -<datacheck> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 3 -Connection: close - -ok -</datacheck> - -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET --retry on 503 error with output to file - </name> - <command> -http://%HOSTIP:%HTTPPORT/198 --retry 1000 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /198 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /198 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> - -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test199 b/Utilities/cmcurl-7.19.0/tests/data/test199 deleted file mode 100644 index d19a443..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test199 +++ /dev/null @@ -1,52 +0,0 @@ -<testcase> -# -# Server-side -<reply name="1"> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 -Connection: close -Content-Type: text/html -Funny-head: yesyes - --foo- -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP with -d, -G and {} - </name> - <command> --d "foo=moo&moo=poo" "http://%HOSTIP:%HTTPPORT/{199,199}" -G -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /199?foo=moo&moo=poo HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /199?foo=moo&moo=poo HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test2 b/Utilities/cmcurl-7.19.0/tests/data/test2 deleted file mode 100644 index cae3b82..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test2 +++ /dev/null @@ -1,53 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP Basic auth -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake swsclose -Content-Type: text/html -Funny-head: yesyes - -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET with user and password - </name> - <command> - -u fake:user http://%HOSTIP:%HTTPPORT/2 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /2 HTTP/1.1 -Authorization: Basic ZmFrZTp1c2Vy -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -<data> -[insert full protocol verifiction dump here] -</data> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test20 b/Utilities/cmcurl-7.19.0/tests/data/test20 deleted file mode 100644 index 3d7a6da..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test20 +++ /dev/null @@ -1,36 +0,0 @@ -<testcase> -<info> -<keywords> -non-existing host name -FAILURE -</keywords> -</info> -# Server-side -<reply> -<data> -</data> -</reply> - -# Client-side -<client> -<server> -none -</server> -<features> -http -</features> - <name> -attempt connect to non-existing host name - </name> - <command> -non-existing-host.haxx.se. -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -6 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test200 b/Utilities/cmcurl-7.19.0/tests/data/test200 deleted file mode 100644 index 8be1de0..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test200 +++ /dev/null @@ -1,41 +0,0 @@ -<testcase> -<info> -<keywords> -FILE -</keywords> -</info> - -<reply> -<data> -foo - bar -bar - foo -moo -</data> -</reply> - -# Client-side -<client> -<server> -file -</server> - <name> -basic file:// file - </name> - <command> -file://localhost/%PWD/log/test200.txt -</command> -<file name="log/test200.txt"> -foo - bar -bar - foo -moo -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test2000 b/Utilities/cmcurl-7.19.0/tests/data/test2000 deleted file mode 100644 index ccdbcc5..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test2000 +++ /dev/null @@ -1,73 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -FILE -multiprotocol -</keywords> -</info> - -# -# Server-side -<reply> -<data nocheck="1"> -data - to - see -that FTP -works - so does it? -</data> -</reply> - -# -# Client-side -<client> -<server> -ftp -file -</server> - <name> -FTP RETR followed by FILE - </name> - <command> -ftp://%HOSTIP:%FTPPORT/2000 file://localhost/%PWD/log/test2000.txt -</command> -<file name="log/test2000.txt"> -foo - bar -bar - foo -moo -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE I -SIZE 2000 -RETR 2000 -QUIT -</protocol> -<stdout> -data - to - see -that FTP -works - so does it? -foo - bar -bar - foo -moo -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test2001 b/Utilities/cmcurl-7.19.0/tests/data/test2001 deleted file mode 100644 index a950d0e..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test2001 +++ /dev/null @@ -1,109 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -FTP -PASV -FILE -multiprotocol -</keywords> -</info> - -# -# Server-side -<reply> -<data1 nocheck="1"> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 -Connection: close -Content-Type: text/html -Funny-head: yesyes - --foo- -</data1> -<data2 nocheck="1"> -data - to - see -that FTP -works - so does it? -</data2> -</reply> - -# -# Client-side -<client> -<server> -http -ftp -file -</server> - <name> -HTTP GET followed by FTP RETR followed by FILE - </name> - <command> -http://%HOSTIP:%HTTPPORT/20010001 ftp://%HOSTIP:%FTPPORT/20010002 file://localhost/%PWD/log/test2001.txt -</command> -<file name="log/test2001.txt"> -foo - bar -bar - foo -moo -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /20010001 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE I -SIZE 20010002 -RETR 20010002 -QUIT -</protocol> -<stdout> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 -Connection: close -Content-Type: text/html -Funny-head: yesyes - --foo- -data - to - see -that FTP -works - so does it? -foo - bar -bar - foo -moo -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test2002 b/Utilities/cmcurl-7.19.0/tests/data/test2002 deleted file mode 100644 index dd15857..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test2002 +++ /dev/null @@ -1,125 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -FTP -PASV -FILE -TFTP -TFTP RRQ -multiprotocol -</keywords> -</info> - -# -# Server-side -<reply> -<data1 nocheck="1"> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 -Connection: close -Content-Type: text/html -Funny-head: yesyes - --foo- -</data1> -<data2 nocheck="1"> -data - to - see -that FTP -works - so does it? -</data2> -<data3 nocheck="1"> -a chunk of -data -returned - to TFTP client -</data3> -</reply> - -# -# Client-side -<client> -<server> -http -ftp -file -tftp -</server> - <name> -HTTP GET followed by FTP RETR followed by FILE followed by TFTP RRQ - </name> - <command> -http://%HOSTIP:%HTTPPORT/20020001 ftp://%HOSTIP:%FTPPORT/20020002 file://localhost/%PWD/log/test2002.txt tftp://%HOSTIP:%TFTPPORT//20020003 -</command> -<file name="log/test2002.txt"> -foo - bar -bar - foo -moo -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /20020001 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE I -SIZE 20020002 -RETR 20020002 -opcode: 1 -filename: /20020003 -mode: octet -QUIT -</protocol> -<stdout> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 -Connection: close -Content-Type: text/html -Funny-head: yesyes - --foo- -data - to - see -that FTP -works - so does it? -foo - bar -bar - foo -moo -a chunk of -data -returned - to TFTP client -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test2003 b/Utilities/cmcurl-7.19.0/tests/data/test2003 deleted file mode 100644 index 31076ed..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test2003 +++ /dev/null @@ -1,162 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -FTP -PASV -FILE -TFTP -TFTP RRQ -multiprotocol -</keywords> -</info> - -# -# Server-side -<reply> -<data1 nocheck="1"> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 -Connection: close -Content-Type: text/html -Funny-head: yesyes - --foo- -</data1> -<data2 nocheck="1"> -data - to - see -that FTP -works - so does it? -</data2> -<data3 nocheck="1"> -a chunk of -data -returned - to TFTP client -</data3> -</reply> - -# -# Client-side -<client> -<server> -http -ftp -file -tftp -</server> - <name> -HTTP GET followed by FTP RETR followed by FILE followed by TFTP RRQ then again in reverse order - </name> - <command> -http://%HOSTIP:%HTTPPORT/20030001 ftp://%HOSTIP:%FTPPORT/20030002 file://localhost/%PWD/log/test2003.txt tftp://%HOSTIP:%TFTPPORT//20030003 tftp://%HOSTIP:%TFTPPORT//20030003 file://localhost/%PWD/log/test2003.txt ftp://%HOSTIP:%FTPPORT/20030002 http://%HOSTIP:%HTTPPORT/20030001 -</command> -<file name="log/test2003.txt"> -foo - bar -bar - foo -moo -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /20030001 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE I -SIZE 20030002 -RETR 20030002 -opcode: 1 -filename: /20030003 -mode: octet -opcode: 1 -filename: /20030003 -mode: octet -EPSV -SIZE 20030002 -RETR 20030002 -GET /20030001 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -QUIT -</protocol> -<stdout> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 -Connection: close -Content-Type: text/html -Funny-head: yesyes - --foo- -data - to - see -that FTP -works - so does it? -foo - bar -bar - foo -moo -a chunk of -data -returned - to TFTP client -a chunk of -data -returned - to TFTP client -foo - bar -bar - foo -moo -data - to - see -that FTP -works - so does it? -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 -Connection: close -Content-Type: text/html -Funny-head: yesyes - --foo- -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test2004 b/Utilities/cmcurl-7.19.0/tests/data/test2004 deleted file mode 100644 index eedabf3..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test2004 +++ /dev/null @@ -1,72 +0,0 @@ -<testcase> -<info> -<keywords> -TFTP -TFTP RRQ -FILE -SFTP -SCP -multiprotocol -</keywords> -</info> - -# -# Server-side -<reply> -<data nocheck="1"> -Test data file -for tftp test -</data> -</reply> - -# -# Client-side -<client> -<server> -tftp -sftp -</server> - <name> -TFTP RRQ followed by SFTP retrieval followed by FILE followed by SCP retrieval then again in reverse order - </name> - <command> ---key curl_client_key --pubkey curl_client_key.pub -u %USER: tftp://%HOSTIP:%TFTPPORT//2004 sftp://%HOSTIP:%SSHPORT%PWD/log/test2004.txt file://localhost/%PWD/log/test2004.txt scp://%HOSTIP:%SSHPORT%PWD/log/test2004.txt file://localhost/%PWD/log/test2004.txt sftp://%HOSTIP:%SSHPORT%PWD/log/test2004.txt tftp://%HOSTIP:%TFTPPORT//2004 -</command> -<file name="log/test2004.txt"> -This is test data -for several protocols -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -opcode: 1 -filename: /2004 -mode: octet -opcode: 1 -filename: /2004 -mode: octet -</protocol> -<stdout> -Test data file -for tftp test -This is test data -for several protocols -This is test data -for several protocols -This is test data -for several protocols -This is test data -for several protocols -This is test data -for several protocols -Test data file -for tftp test -</stdout> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test201 b/Utilities/cmcurl-7.19.0/tests/data/test201 deleted file mode 100644 index eb24224..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test201 +++ /dev/null @@ -1,27 +0,0 @@ -<testcase> -# Server-side -<reply> -<data> -</data> -</reply> - -# Client-side -<client> -<server> -file -</server> - <name> -missing file:// file - </name> - <command> -file://localhost/%PWD/log/non-existant-file.txt -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -37 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test202 b/Utilities/cmcurl-7.19.0/tests/data/test202 deleted file mode 100644 index 4344d64..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test202 +++ /dev/null @@ -1,31 +0,0 @@ -<testcase> -# Server-side -<reply> -<data> -</data> -</reply> - -# Client-side -<client> -<server> -file -</server> - <name> -two file:// URLs to stdout - </name> - <command> -file://localhost/%PWD/log/test202.txt file://localhost/%PWD/log/test202.txt -</command> -<file name="log/test202.txt"> -contents in a single file -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<stdout> -contents in a single file -contents in a single file -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test203 b/Utilities/cmcurl-7.19.0/tests/data/test203 deleted file mode 100644 index c7cdce5..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test203 +++ /dev/null @@ -1,36 +0,0 @@ -<testcase> -# Server-side -<reply> -<data> -foo - bar -bar - foo -moo -</data> -</reply> - -# Client-side -<client> -<server> -file -</server> - <name> -file:/path URL with a single slash - </name> - <command> -file:%PWD/log/test203.txt -</command> -<file name="log/test203.txt"> -foo - bar -bar - foo -moo -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test204 b/Utilities/cmcurl-7.19.0/tests/data/test204 deleted file mode 100644 index c4e219e..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test204 +++ /dev/null @@ -1,34 +0,0 @@ -<testcase> -# no Server-side - -# Client-side -<client> -<server> -file -</server> - <name> -"upload" with file:// - </name> - <command> -file://localhost/%PWD/log/result204.txt -T log/upload204.txt -</command> -<file name="log/upload204.txt"> -data -in -file -to -write -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<file name="log/result204.txt"> -data -in -file -to -write -</file> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test205 b/Utilities/cmcurl-7.19.0/tests/data/test205 deleted file mode 100644 index edcf7fe..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test205 +++ /dev/null @@ -1,31 +0,0 @@ -<testcase> -# no Server-side - -# Client-side -<client> -<server> -file -</server> - <name> -"upload" with file:// - </name> - <command> -file://localhost/%PWD/log/nonexisting/result205.txt -T log/upload205.txt -</command> -<file name="log/upload205.txt"> -data -in -file -to -write -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -# 23 => CURLE_WRITE_ERROR -<errorcode> -23 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test206 b/Utilities/cmcurl-7.19.0/tests/data/test206 deleted file mode 100644 index a40f06c..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test206 +++ /dev/null @@ -1,100 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP CONNECT -HTTP proxy -proxytunnel -HTTP proxy Digest auth -</keywords> -</info> - -# Server-side -<reply> - -# this is returned first since we get no proxy-auth -<data> -HTTP/1.1 407 Authorization Required to proxy me my dear -Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345" - -And you should ignore this data. -</data> - -# this is returned when we get a GET! -<data2> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 7 -Connection: close -Content-Type: text/html -Funny-head: yesyes - -daniel -</data2> - -# then this is returned when we get proxy-auth -<data1000> -HTTP/1.1 200 OK swsbounce -Server: no - -Nice proxy auth sir! -</data1000> - -<datacheck> -HTTP/1.1 407 Authorization Required to proxy me my dear -Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345" - -HTTP/1.1 200 OK swsbounce -Server: no - -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 7 -Connection: close -Content-Type: text/html -Funny-head: yesyes - -daniel -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> -<features> -crypto -</features> - <name> -HTTP proxy CONNECT auth Digest - </name> - <command> -http://test.remote.server.com:206/path/2060002 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-digest --proxytunnel -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -<protocol> -CONNECT test.remote.server.com:206 HTTP/1.0 -Host: test.remote.server.com:206 -Proxy-Connection: Keep-Alive - -CONNECT test.remote.server.com:206 HTTP/1.0 -Host: test.remote.server.com:206 -Proxy-Authorization: Digest username="silly", realm="weirdorealm", nonce="12345", uri="test.remote.server.com:206", response="5059a96c954981ceb94e17d667c8d3f8" -Proxy-Connection: Keep-Alive - -GET /path/2060002 HTTP/1.1 -User-Agent: curl/7.12.3-CVS (i686-pc-linux-gnu) libcurl/7.12.3-CVS OpenSSL/0.9.6b zlib/1.1.4 -Host: test.remote.server.com:206 -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test207 b/Utilities/cmcurl-7.19.0/tests/data/test207 deleted file mode 100644 index a5e8de5..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test207 +++ /dev/null @@ -1,58 +0,0 @@ -<testcase> -# -# Server-side -<reply> -<data> -HTTP/1.1 200 funky chunky! swsclose -Server: fakeit/0.9 fakeitbad/1.0 -Transfer-Encoding: chunked -Connection: mooo - -41 -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - -</data> -<datacheck> -HTTP/1.1 200 funky chunky! swsclose -Server: fakeit/0.9 fakeitbad/1.0 -Transfer-Encoding: chunked -Connection: mooo - -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET with chunked Transfer-Encoding closed pre-maturely - </name> - <command> -http://%HOSTIP:%HTTPPORT/207 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /207 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> - -# curl: (18) transfer closed with outstanding read data remaining -# 18 == CURLE_PARTIAL_FILE -<errorcode> -18 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test208 b/Utilities/cmcurl-7.19.0/tests/data/test208 deleted file mode 100644 index 685917d..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test208 +++ /dev/null @@ -1,67 +0,0 @@ -<testcase> -# Server-side -<reply> -<data> -HTTP/1.0 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake - -blablabla - -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> -<features> -ftp -</features> - <name> -HTTP PUT a to a FTP URL with username+password - over HTTP proxy - </name> - <command> --x http://%HOSTIP:%HTTPPORT ftp://daniel:mysecret@host.com/we/want/208 -T log/test208.txt -</command> -<file name="log/test208.txt"> -Weird - file - to - upload -for - testing -the - PUT - feature -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -PUT ftp://daniel:mysecret@host.com/we/want/208 HTTP/1.1 -Authorization: Basic ZGFuaWVsOm15c2VjcmV0 -Host: host.com:21 -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Content-Length: 78 -Expect: 100-continue - -Weird - file - to - upload -for - testing -the - PUT - feature -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test209 b/Utilities/cmcurl-7.19.0/tests/data/test209 deleted file mode 100644 index fde95e6..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test209 +++ /dev/null @@ -1,115 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP CONNECT -HTTP proxy -HTTP proxy NTLM auth -</keywords> -</info> - -# Server-side -<reply> - -# this is returned first since we get no proxy-auth -<data1001> -HTTP/1.1 407 Authorization Required to proxy me my dear -Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -And you should ignore this data. -</data1001> - -# This is supposed to be returned when the server gets the second -# Authorization: NTLM line passed-in from the client -<data1002> -HTTP/1.1 200 Things are fine in proxy land -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 - -</data1002> - -# this is returned when we get a GET! -<data2> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 7 -Connection: close -Content-Type: text/html -Funny-head: yesyes - -daniel -</data2> - -# then this is returned when we get proxy-auth -<data1000> -HTTP/1.1 200 OK swsbounce -Server: no - -Nice proxy auth sir! -</data1000> - -<datacheck> -HTTP/1.1 407 Authorization Required to proxy me my dear -Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -HTTP/1.1 200 Things are fine in proxy land -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 - -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 7 -Connection: close -Content-Type: text/html -Funny-head: yesyes - -daniel -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> -<features> -NTLM -</features> - <name> -HTTP proxy CONNECT auth NTLM - </name> - <command> -http://test.remote.server.com:209/path/2090002 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-ntlm --proxytunnel -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -# We strip off a large chunk of the type-2 NTLM message since it depends on -# the local host name and thus differs on different machines! -<strippart> -s/^(Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA).*/$1/ -</strippart> -<protocol> -CONNECT test.remote.server.com:209 HTTP/1.0 -Host: test.remote.server.com:209 -Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= -Proxy-Connection: Keep-Alive - -CONNECT test.remote.server.com:209 HTTP/1.0 -Host: test.remote.server.com:209 -Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA -Proxy-Connection: Keep-Alive - -GET /path/2090002 HTTP/1.1 -User-Agent: curl/7.12.3-CVS (i686-pc-linux-gnu) libcurl/7.12.3-CVS OpenSSL/0.9.6b zlib/1.1.4 -Host: test.remote.server.com:209 -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test21 b/Utilities/cmcurl-7.19.0/tests/data/test21 deleted file mode 100644 index 8e4e847..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test21 +++ /dev/null @@ -1,33 +0,0 @@ -<testcase> -<info> -<keywords> -FAILURE -multiple HTTP requests -</keywords> -</info> -# Server-side -<reply> -<data> -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -use curl with multiple request methods - </name> - <command> --I -d FOOO -F moo=moo localhost -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -2 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test210 b/Utilities/cmcurl-7.19.0/tests/data/test210 deleted file mode 100644 index 783cdaf..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test210 +++ /dev/null @@ -1,46 +0,0 @@ -<testcase> -# Server-side -<reply> -<data> -data blobb -</data> - -# data is sent to stdout -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -Get two FTP files from the same remote dir: no second CWD - </name> - <command> -ftp://%HOSTIP:%FTPPORT/a/path/210 ftp://%HOSTIP:%FTPPORT/a/path/210 -</command> -<stdout> -data blobb -data blobb -</stdout> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD a -CWD path -EPSV -TYPE I -SIZE 210 -RETR 210 -EPSV -SIZE 210 -RETR 210 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test211 b/Utilities/cmcurl-7.19.0/tests/data/test211 deleted file mode 100644 index b07773b..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test211 +++ /dev/null @@ -1,48 +0,0 @@ -<testcase> -# Server-side -<reply> -<data> -data blobb -</data> -<servercmd> -REPLY EPSV 500 no such command -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -Get two FTP files with no remote EPSV support - </name> - <command> -ftp://%HOSTIP:%FTPPORT/a/path/211 ftp://%HOSTIP:%FTPPORT/a/path/211 -</command> -<stdout> -data blobb -data blobb -</stdout> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD a -CWD path -EPSV -PASV -TYPE I -SIZE 211 -RETR 211 -PASV -SIZE 211 -RETR 211 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test212 b/Utilities/cmcurl-7.19.0/tests/data/test212 deleted file mode 100644 index 2b3f0f2..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test212 +++ /dev/null @@ -1,57 +0,0 @@ -<testcase> -# Server-side -<reply> -<data> -data blobb -</data> -<servercmd> -REPLY EPRT 500 no such command -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> -# EPRT is only sent when IPv6 is enabled -<features> -ipv6 -</features> - <name> -Get two FTP files with no remote EPRT support - </name> - <command> -ftp://%HOSTIP:%FTPPORT/a/path/212 ftp://%HOSTIP:%FTPPORT/a/path/212 -P - -</command> -<stdout> -data blobb -data blobb -</stdout> -</client> - -# Verify data after the test has been "shot" -<verify> -# Strip the addresses and port number but leave the rest -<strippart> -s/^(EPRT \|1\|)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\|\d{1,5}\|/$1/ -s/^(PORT )\d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3}/$1/ -</strippart> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD a -CWD path -EPRT |1| -PORT -TYPE I -SIZE 212 -RETR 212 -PORT -SIZE 212 -RETR 212 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test213 b/Utilities/cmcurl-7.19.0/tests/data/test213 deleted file mode 100644 index 8e9b44a..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test213 +++ /dev/null @@ -1,118 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP POST -HTTP CONNECT -HTTP proxy -HTTP proxy NTLM auth -</keywords> -</info> - -# Server-side -<reply> - -# this is returned first since we get no proxy-auth -<data1001> -HTTP/1.1 407 Authorization Required to proxy me my dear -Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -And you should ignore this data. -</data1001> - -# This is supposed to be returned when the server gets the second -# Authorization: NTLM line passed-in from the client -<data1002> -HTTP/1.1 200 Things are fine in proxy land -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 - -</data1002> - -# this is returned when we get a GET! -<data2> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 7 -Connection: close -Content-Type: text/html -Funny-head: yesyes - -daniel -</data2> - -# then this is returned when we get proxy-auth -<data1000> -HTTP/1.1 200 OK swsbounce -Server: no - -Nice proxy auth sir! -</data1000> - -<datacheck> -HTTP/1.1 407 Authorization Required to proxy me my dear -Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -HTTP/1.1 200 Things are fine in proxy land -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 - -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 7 -Connection: close -Content-Type: text/html -Funny-head: yesyes - -daniel -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> -<features> -NTLM -</features> - <name> -HTTP proxy CONNECT auth NTLM and then POST - </name> - <command> -http://test.remote.server.com:213/path/2130002 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-ntlm --proxytunnel -d "postit" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -# We strip off a large chunk of the type-2 NTLM message since it depends on -# the local host name and thus differs on different machines! -<strippart> -s/^(Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA).*/$1/ -</strippart> -<protocol nonewline="yes"> -CONNECT test.remote.server.com:213 HTTP/1.0 -Host: test.remote.server.com:213 -Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= -Proxy-Connection: Keep-Alive - -CONNECT test.remote.server.com:213 HTTP/1.0 -Host: test.remote.server.com:213 -Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA -Proxy-Connection: Keep-Alive - -POST /path/2130002 HTTP/1.1 -User-Agent: curl/7.12.3-CVS (i686-pc-linux-gnu) libcurl/7.12.3-CVS OpenSSL/0.9.6b zlib/1.1.4 -Host: test.remote.server.com:213 -Accept: */* -Content-Length: 6 -Content-Type: application/x-www-form-urlencoded - -postit -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test214 b/Utilities/cmcurl-7.19.0/tests/data/test214 deleted file mode 100644 index b4c2852..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test214 +++ /dev/null @@ -1,44 +0,0 @@ -<testcase> -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 6 -Content-Type: text/html -Funny-head: yesyes - --foo- -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP URL with escaped { and } - </name> -<command> -"http://%HOSTIP:%HTTPPORT/\{\}\/214" -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /{}\/214 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> - -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test215 b/Utilities/cmcurl-7.19.0/tests/data/test215 deleted file mode 100644 index 270b535..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test215 +++ /dev/null @@ -1,52 +0,0 @@ -<testcase> -# Server-side -<reply> -# When doing LIST, we get the default list output hard-coded in the test -# FTP server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> - -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -Get two FTP dir listings from the same remote dir: no second CWD - </name> - <command> -ftp://%HOSTIP:%FTPPORT/a/path/215/ ftp://%HOSTIP:%FTPPORT/a/path/215/ -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD a -CWD path -CWD 215 -EPSV -TYPE A -LIST -EPSV -LIST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test216 b/Utilities/cmcurl-7.19.0/tests/data/test216 deleted file mode 100644 index 9b17202..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test216 +++ /dev/null @@ -1,39 +0,0 @@ -<testcase> -# Server-side -<reply> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP upload two files to the same dir - </name> - <command> --T log/upload.216 ftp://%HOSTIP:%FTPPORT/a/path/216/ -T log/upload.216 ftp://%HOSTIP:%FTPPORT/a/path/216/%2e%2eanotherup -</command> -<file name="log/upload.216"> -upload this file twice -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD a -CWD path -CWD 216 -EPSV -TYPE I -STOR upload.216 -EPSV -STOR ..anotherup -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test217 b/Utilities/cmcurl-7.19.0/tests/data/test217 deleted file mode 100644 index b597f01..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test217 +++ /dev/null @@ -1,60 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP CONNECT -HTTP proxy -proxytunnel -followlocation ---write-out -</keywords> -</info> - -# Server-side -<reply> - -# this is returned first since we get no proxy-auth -<data nocheck="1"> -HTTP/1.1 405 Method Not Allowed swsclose - -And you should ignore this data. -</data> - -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP proxy CONNECT to proxy returning 405 - </name> - <command> -http://test.remote.server.com:217/path/2170002 --proxy http://%HOSTIP:%HTTPPORT --proxytunnel -w "%{http_code} %{http_connect}\n" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -<protocol> -CONNECT test.remote.server.com:217 HTTP/1.0 -Host: test.remote.server.com:217 -Proxy-Connection: Keep-Alive - -</protocol> -# CURLE_RECV_ERROR -<errorcode> -56 -</errorcode> -<stdout> -HTTP/1.1 405 Method Not Allowed swsclose - -000 405 -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test218 b/Utilities/cmcurl-7.19.0/tests/data/test218 deleted file mode 100644 index 1b9ad59..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test218 +++ /dev/null @@ -1,52 +0,0 @@ -<testcase> -# -# Server-side -<reply> -<data> -HTTP/1.0 200 OK -Server: test-server/fake -Content-Type: text/html -Content-Length: 6 - -blaha -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP PUT from a file but enforce chunked transfer-encoding - </name> - <command> - -T log/file218 -H "Transfer-Encoding: chunked" http://%HOSTIP:%HTTPPORT/218 -</command> -<file name="log/file218"> -just some tiny teeny contents -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -PUT /218 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Transfer-Encoding: chunked -Expect: 100-continue - -1e -just some tiny teeny contents - -0 - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test22 b/Utilities/cmcurl-7.19.0/tests/data/test22 deleted file mode 100644 index e3fa7eb..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test22 +++ /dev/null @@ -1,46 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP PUT -long URL -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Funny-head: yesyes -Content-Length: 27 - -This is the proof it works -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -get HTTP with URL > 10000 bytes - </name> - <command> -%HOSTIP:%HTTPPORT/`perl -e "print \"a\" x 10000;"`/22 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -<protocol> -GET /aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/22 HTTP/1.1 -User-Agent: curl/7.4.2 (sparc-sun-solaris2.7) libcurl 7.4.2 (SSL 0.9.6) -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test220 b/Utilities/cmcurl-7.19.0/tests/data/test220 deleted file mode 100644 index 83e5761..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test220 +++ /dev/null @@ -1,68 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -compressed -</keywords> -</info> -# -# Server-side -<reply> -<data base64="yes"> -SFRUUC8xLjEgMjAwIE9LDQpEYXRlOiBNb24sIDI5IE5vdiAyMDA0IDIxOjU2OjUzIEdNVA0KU2Vy -dmVyOiBBcGFjaGUvMS4zLjMxIChEZWJpYW4gR05VL0xpbnV4KSBtb2RfZ3ppcC8xLjMuMjYuMWEg -UEhQLzQuMy45LTEgbW9kX3NzbC8yLjguMjAgT3BlblNTTC8wLjkuN2QgbW9kX3BlcmwvMS4yOQ0K -VmFyeTogQWNjZXB0LUVuY29kaW5nDQpDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1J -U08tODg1OS0xDQpDb250ZW50LUVuY29kaW5nOiBnemlwDQpDb250ZW50LUxlbmd0aDogNDQNCg0K -H4sICHmeq0EAA2xhbGFsYQDLycxLVTDkUsgB0UZcChCGMRcACgJxYBgAAAA= -</data> - -<datacheck> -HTTP/1.1 200 OK -Date: Mon, 29 Nov 2004 21:56:53 GMT -Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29 -Vary: Accept-Encoding -Content-Type: text/html; charset=ISO-8859-1 -Content-Encoding: gzip -Content-Length: 44 - -line 1 - line 2 - line 3 -</datacheck> - -</reply> - -# -# Client-side -<client> -<features> -libz -</features> -<server> -http -</server> - <name> -HTTP GET gzip compressed content - </name> - <command> -http://%HOSTIP:%HTTPPORT/220 --compressed -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /220 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Accept-Encoding: deflate, gzip - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test221 b/Utilities/cmcurl-7.19.0/tests/data/test221 deleted file mode 100644 index 0e5e807..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test221 +++ /dev/null @@ -1,71 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -compressed -FAILURE -</keywords> -</info> -# -# Server-side -<reply> -<data base64="yes"> -SFRUUC8xLjEgMjAwIE9LDQpEYXRlOiBNb24sIDI5IE5vdiAyMDA0IDIxOjU2OjUzIEdNVA0KU2Vy -dmVyOiBBcGFjaGUvMS4zLjMxIChEZWJpYW4gR05VL0xpbnV4KSBtb2RfZ3ppcC8xLjMuMjYuMWEg -UEhQLzQuMy45LTEgbW9kX3NzbC8yLjguMjAgT3BlblNTTC8wLjkuN2QgbW9kX3BlcmwvMS4yOQ0K -VmFyeTogQWNjZXB0LUVuY29kaW5nDQpDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1J -U08tODg1OS0xDQpDb250ZW50LUVuY29kaW5nOiBnemlwDQpDb250ZW50LUxlbmd0aDogNDENCg0K -CHmeq0EAA2xhbGFsYQDLycxLVTDkUsgB0UZcChCGMRcACgJxYBgAAAA= -</data> - -# I removed the first three bytes of the gzip compressed contents - -<datacheck> -HTTP/1.1 200 OK -Date: Mon, 29 Nov 2004 21:56:53 GMT -Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29 -Vary: Accept-Encoding -Content-Type: text/html; charset=ISO-8859-1 -Content-Encoding: gzip -Content-Length: 41 - -</datacheck> - -</reply> - -# -# Client-side -<client> -<features> -libz -</features> -<server> -http -</server> - <name> -HTTP GET gzip compressed content with broken gzip header - </name> - <command> -http://%HOSTIP:%HTTPPORT/221 --compressed -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /221 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Accept-Encoding: deflate, gzip - -</protocol> -<errorcode> -61 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test222 b/Utilities/cmcurl-7.19.0/tests/data/test222 deleted file mode 100644 index b1c2b9d..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test222 +++ /dev/null @@ -1,199 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -compressed -</keywords> -</info> -# -# Server-side -<reply> -<data base64="yes"> -SFRUUC8xLjEgMjAwIE9LDQpEYXRlOiBNb24sIDI5IE5vdiAyMDA0IDIxOjU2OjUzIEdNVA0KU2Vy -dmVyOiBBcGFjaGUvMS4zLjMxIChEZWJpYW4gR05VL0xpbnV4KSBtb2RfZ3ppcC8xLjMuMjYuMWEg -UEhQLzQuMy45LTEgbW9kX3NzbC8yLjguMjAgT3BlblNTTC8wLjkuN2QgbW9kX3BlcmwvMS4yOQ0K -VmFyeTogQWNjZXB0LUVuY29kaW5nDQpDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1J -U08tODg1OS0xDQpDb250ZW50LUVuY29kaW5nOiBkZWZsYXRlDQpDb250ZW50LUxlbmd0aDogMTMw -NQ0KDQp4nNxY227jNhB9N5B/YP3UArZuthM5cLQoctkEzTbB2gW6TwYt0TYbSRRIyrk89Ns7lCiJ -sRyvd4O+BEhicuacw+EMSZOZfHpKYrQhXFCWnnVdy+kikoYsounqrHszvev7/mjcd7ufgs7kl4u7 -89m3+0uUcfYPCWU/pkICEE2/TWeXX1B3LWV2attLTsQ6IVhaKZH2AocPJI3sZdLXPNF3rKEVyagL -oltaQQehyqbaTW9Oo8A9dr2JbRhKRIQlmeMoIoAYj/2+4/c9FznDU8c99cYT2/AbhDxTH1HgOc6w -7zp910eOd+rBz0BTKsSrOFKckLlYMy6DMOdxHY5hb+OXeRwXcITTCMV00aYWEB0eEaGWOmdJUlJS -giRjtQDH/BktGUdhTEkq+4JGBP319RZJjlOxhIpaMItGyFDeGQyiAuFyBKVaqXBV3yWNiTjq5EJ1 -1BjiOZX4yUI3Eok8y0BfoOvZ7L5X/J320BW0jzpXRfvi5nzWQ7PL2z8v4fP24neAXd3cXvaK4T/f -3V9ffoU2DPBIYoiplOpnTMiebubQChl7oEQU2ijPYoYjGAKWWp6QqJl1D2VYiEfGI9WEyNI8WRT2 -6fT2qBMSLumShlBXMP1BOPiYKEOBajzBCMW0IBsZeyScREedxXOVpB6Sa/JmxquyWEed2RqoCMPv -gqZqMwlIbZ1qlWAGmw55zlEnxukqxysiihhIuqGcpQkMIEBHl9BYGxsqcUzl81yEjJNgdOIPrdHJ -xN6yb4EzwkOQDAaWe2xgK/MWGubzAHttbCALk17XLMtjzJuxjkdjiGEIy3nb0yJUA7oDy3dfEV6H -YjjKYJzRK7QRDsfFueFbI2di647pmYcsB13Prbza8ApTDuIPaowxgMgXIuQ0k3BEimCgTofXphIG -pU/D9Vzt5eCCLHEey4ltGksY1H9eHWAZlD3YeWhWJ6Wt1os9sVusRmzNEvK2ECxgyksVdXjaJkPr -1gKNply9HC4HYK2kaI3I4sU7XATAWkTRGpEXmh0uAmAtomiNSLiGPUZitjpcqqZowUaikeVZcrgg -gLWUojUiEVkcLgJgLaJojQgTT4eLAFiLKJpRLxGp8/IHalYSqrppurHMcw5pEyTQ67fqGoXZiB8o -yUZUxdgIQ0TdHA5XUWgtUxAbnYRyzvjhSiVea2myWdeEBVWtoFl6YgqHHKTgy83M/hudw+kBKaN5 -gm5Lx8SuEBqvvqfknJOY1Jlrmef6/hacWK5nwQXpDfcbbHWvOjl2/FGLWF2w2hx1L9p9cdoFLOdi -75rMBM5RAhNeMzmXa/iqhpy1TCUS5xJuMqIOqexX3dqgT2CcUhKjqSQpfMOvJrbpbFGgSrvr/u8C -ryKiimwgW3TOYhLcPaaE17jCVEVqm6FWvWoJqy94ThOaYmnOTnK4IRS1gYLWnZbX8473uQd7ufuc -ru/v5bp7x4WlsT/qvW73eLjPPd5L9sd7vc5etzv6TtzfCWx/ZIPW2OX9brv8sCYyeDLBQwyuo7VO -bXxG8jkjZ11OQngdKJt6SdWLssGZG9lRQ+1y7CTqewu4T4aqGDtdO5nG46xF3X64vcWVVKoNBXa4 -s6Nf9W3qt51aJbbeaQ3i7byx4t6G4/8vac5PZ2w4eGfG1Pvq4yfK9QYj9x2ZeoGn2MfP0sBzhifv -yNI1oUmE44+fqOFwNPDekaiwD0998TN5Miz6rK//KxR0/gMAAP//gjMRo2MAAAAA//8DAN04jtE= -</data> - -<datacheck> -HTTP/1.1 200 OK -Date: Mon, 29 Nov 2004 21:56:53 GMT -Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29 -Vary: Accept-Encoding -Content-Type: text/html; charset=ISO-8859-1 -Content-Encoding: deflate -Content-Length: 1305 - -<?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE project-listing SYSTEM "http://freshmeat.net/backend/fm-projects-0.4.dtd"> -<project-listing> - <project> - <project_id>1612</project_id> - <date_added>1998-08-21 04:01:29</date_added> - <date_updated>2004-10-18 02:22:23</date_updated> - <projectname_short>curl</projectname_short> - <projectname_full>curl and libcurl</projectname_full> - <desc_short>Command line tool and library for client-side URL transfers.</desc_short> - <desc_full>curl and libcurl is a tool for transferring files -using URL syntax. It supports HTTP, HTTPS, FTP, -FTPS, DICT, TELNET, LDAP, FILE, and GOPHER, as -well as HTTP-post, HTTP-put, cookies, FTP upload, -resumed transfers, passwords, portnumbers, SSL -certificates, Kerberos, and proxies. It is powered -by libcurl, the client-side URL transfer library. -There are bindings to libcurl for over 20 -languages and environments. -</desc_full> - <vitality_score>5784.57</vitality_score> - <vitality_percent>3.16</vitality_percent> - <vitality_rank>169</vitality_rank> - <popularity_score>6594.54</popularity_score> - <popularity_percent>13.81</popularity_percent> - <popularity_rank>105</popularity_rank> - <rating>8.50</rating> - <rating_count>21</rating_count> - <rating_rank>183</rating_rank> - <subscriptions>323</subscriptions> - <branch_name>Default</branch_name> - <url_project_page>http://freshmeat.net/projects/curl/</url_project_page> - <url_homepage>http://freshmeat.net/redir/curl/1612/url_homepage/</url_homepage> - <url_tgz>http://freshmeat.net/redir/curl/1612/url_tgz/</url_tgz> - <url_bz2>http://freshmeat.net/redir/curl/1612/url_bz2/</url_bz2> - <url_zip>http://freshmeat.net/redir/curl/1612/url_zip/</url_zip> - <url_changelog>http://freshmeat.net/redir/curl/1612/url_changelog/</url_changelog> - <url_rpm>http://freshmeat.net/redir/curl/1612/url_rpm/</url_rpm> - <url_deb>http://freshmeat.net/redir/curl/1612/url_deb/</url_deb> - <url_osx>http://freshmeat.net/redir/curl/1612/url_osx/</url_osx> - <url_bsdport>http://freshmeat.net/redir/curl/1612/url_bsdport/</url_bsdport> - <url_purchase></url_purchase> - <url_cvs>http://freshmeat.net/redir/curl/1612/url_cvs/</url_cvs> - <url_list>http://freshmeat.net/redir/curl/1612/url_list/</url_list> - <url_mirror>http://freshmeat.net/redir/curl/1612/url_mirror/</url_mirror> - <url_demo></url_demo> - <license>MIT/X Consortium License</license> - <latest_release> - <latest_release_version>7.12.2</latest_release_version> - <latest_release_id>176085</latest_release_id> - <latest_release_date>2004-10-18 02:22:23</latest_release_date> - </latest_release> - <screenshot_thumb></screenshot_thumb> - <authors> - <author> - <author_name>Daniel Stenberg</author_name> - <author_url>http://freshmeat.net/~bagder/</author_url> - <author_role>Owner</author_role> - </author> - </authors> - <descriminators> - <trove_id>12</trove_id> - <trove_id>226</trove_id> - <trove_id>3</trove_id> - <trove_id>2</trove_id> - <trove_id>188</trove_id> - <trove_id>216</trove_id> - <trove_id>200</trove_id> - <trove_id>220</trove_id> - <trove_id>164</trove_id> - <trove_id>90</trove_id> - <trove_id>89</trove_id> - <trove_id>809</trove_id> - <trove_id>150</trove_id> - <trove_id>224</trove_id> - <trove_id>900</trove_id> - <trove_id>839</trove_id> - </descriminators> - <dependencies> - <dependency type="recommended"> - <dependency_release_id>0</dependency_release_id> - <dependency_branch_id>7464</dependency_branch_id> - <dependency_project_id>7464</dependency_project_id> - <dependency_project_title>OpenSSL (Default)</dependency_project_title> - </dependency> - <dependency type="optional"> - <dependency_release_id>0</dependency_release_id> - <dependency_branch_id>0</dependency_branch_id> - <dependency_project_id>7443</dependency_project_id> - <dependency_project_title>OpenLDAP</dependency_project_title> - </dependency> - <dependency type="optional"> - <dependency_release_id>0</dependency_release_id> - <dependency_branch_id>0</dependency_branch_id> - <dependency_project_id>12351</dependency_project_id> - <dependency_project_title>zlib</dependency_project_title> - </dependency> - <dependency type="optional"> - <dependency_release_id>0</dependency_release_id> - <dependency_branch_id>0</dependency_branch_id> - <dependency_project_id>32047</dependency_project_id> - <dependency_project_title>Heimdal</dependency_project_title> - </dependency> - <dependency type="optional"> - <dependency_release_id>0</dependency_release_id> - <dependency_branch_id>0</dependency_branch_id> - <dependency_project_id>44532</dependency_project_id> - <dependency_project_title>c-ares</dependency_project_title> - </dependency> - </dependencies> - </project> -</project-listing> -</datacheck> - -</reply> - -# -# Client-side -<client> -<features> -libz -</features> -<server> -http -</server> - <name> -HTTP GET deflate compressed content - </name> - <command> -http://%HOSTIP:%HTTPPORT/222 --compressed -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /222 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Accept-Encoding: deflate, gzip - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test223 b/Utilities/cmcurl-7.19.0/tests/data/test223 deleted file mode 100644 index ceed44a..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test223 +++ /dev/null @@ -1,92 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -compressed -FAILURE -</keywords> -</info> -# -# Server-side -<reply> -# this deflate chunk has three bytes removed from the beginning -<data base64="yes"> -SFRUUC8xLjEgMjAwIE9LDQpEYXRlOiBNb24sIDI5IE5vdiAyMDA0IDIxOjU2OjUzIEdNVA0KU2Vy -dmVyOiBBcGFjaGUvMS4zLjMxIChEZWJpYW4gR05VL0xpbnV4KSBtb2RfZ3ppcC8xLjMuMjYuMWEg -UEhQLzQuMy45LTEgbW9kX3NzbC8yLjguMjAgT3BlblNTTC8wLjkuN2QgbW9kX3BlcmwvMS4yOQ0K -VmFyeTogQWNjZXB0LUVuY29kaW5nDQpDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1J -U08tODg1OS0xDQpDb250ZW50LUVuY29kaW5nOiBkZWZsYXRlDQpDb250ZW50LUxlbmd0aDogMTMw -NQ0KDQpY227jNhB9N5B/YP3UArZuthM5cLQoctkEzTbB2gW6TwYt0TYbSRRIyrk89Ns7lCiJsRyv -d4O+BEhicuacw+EMSZOZfHpKYrQhXFCWnnVdy+kikoYsounqrHszvev7/mjcd7ufgs7kl4u789m3 -+0uUcfYPCWU/pkICEE2/TWeXX1B3LWV2attLTsQ6IVhaKZH2AocPJI3sZdLXPNF3rKEVyagLolta -QQehyqbaTW9Oo8A9dr2JbRhKRIQlmeMoIoAYj/2+4/c9FznDU8c99cYT2/AbhDxTH1HgOc6w7zp9 -10eOd+rBz0BTKsSrOFKckLlYMy6DMOdxHY5hb+OXeRwXcITTCMV00aYWEB0eEaGWOmdJUlJSgiRj -tQDH/BktGUdhTEkq+4JGBP319RZJjlOxhIpaMItGyFDeGQyiAuFyBKVaqXBV3yWNiTjq5EJ11Bji -OZX4yUI3Eok8y0BfoOvZ7L5X/J320BW0jzpXRfvi5nzWQ7PL2z8v4fP24neAXd3cXvaK4T/f3V9f -foU2DPBIYoiplOpnTMiebubQChl7oEQU2ijPYoYjGAKWWp6QqJl1D2VYiEfGI9WEyNI8WRT26fT2 -qBMSLumShlBXMP1BOPiYKEOBajzBCMW0IBsZeyScREedxXOVpB6Sa/JmxquyWEed2RqoCMPvgqZq -MwlIbZ1qlWAGmw55zlEnxukqxysiihhIuqGcpQkMIEBHl9BYGxsqcUzl81yEjJNgdOIPrdHJxN6y -b4EzwkOQDAaWe2xgK/MWGubzAHttbCALk17XLMtjzJuxjkdjiGEIy3nb0yJUA7oDy3dfEV6HYjjK -YJzRK7QRDsfFueFbI2di647pmYcsB13Prbza8ApTDuIPaowxgMgXIuQ0k3BEimCgTofXphIGpU/D -9Vzt5eCCLHEey4ltGksY1H9eHWAZlD3YeWhWJ6Wt1os9sVusRmzNEvK2ECxgyksVdXjaJkPr1gKN -ply9HC4HYK2kaI3I4sU7XATAWkTRGpEXmh0uAmAtomiNSLiGPUZitjpcqqZowUaikeVZcrgggLWU -ojUiEVkcLgJgLaJojQgTT4eLAFiLKJpRLxGp8/IHalYSqrppurHMcw5pEyTQ67fqGoXZiB8oyUZU -xdgIQ0TdHA5XUWgtUxAbnYRyzvjhSiVea2myWdeEBVWtoFl6YgqHHKTgy83M/hudw+kBKaN5gm5L -x8SuEBqvvqfknJOY1Jlrmef6/hacWK5nwQXpDfcbbHWvOjl2/FGLWF2w2hx1L9p9cdoFLOdi75rM -BM5RAhNeMzmXa/iqhpy1TCUS5xJuMqIOqexX3dqgT2CcUhKjqSQpfMOvJrbpbFGgSrvr/u8CryKi -imwgW3TOYhLcPaaE17jCVEVqm6FWvWoJqy94ThOaYmnOTnK4IRS1gYLWnZbX8473uQd7ufucru/v -5bp7x4WlsT/qvW73eLjPPd5L9sd7vc5etzv6TtzfCWx/ZIPW2OX9brv8sCYyeDLBQwyuo7VObXxG -8jkjZ11OQngdKJt6SdWLssGZG9lRQ+1y7CTqewu4T4aqGDtdO5nG46xF3X64vcWVVKoNBXa4s6Nf -9W3qt51aJbbeaQ3i7byx4t6G4/8vac5PZ2w4eGfG1Pvq4yfK9QYj9x2ZeoGn2MfP0sBzhifvyNI1 -oUmE44+fqOFwNPDekaiwD0998TN5Miz6rK//KxR0/gMAAP//gjMRo2MAAAAA//8DAN04jtE= -</data> - -<datacheck> -HTTP/1.1 200 OK -Date: Mon, 29 Nov 2004 21:56:53 GMT -Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29 -Vary: Accept-Encoding -Content-Type: text/html; charset=ISO-8859-1 -Content-Encoding: deflate -Content-Length: 1305 - -</datacheck> - -</reply> - -# -# Client-side -<client> -<features> -libz -</features> -<server> -http -</server> - <name> -HTTP GET deflate compressed content with broken deflate header - </name> - <command> -http://%HOSTIP:%HTTPPORT/223 --compressed -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /223 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Accept-Encoding: deflate, gzip - -</protocol> -<errorcode> -61 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test224 b/Utilities/cmcurl-7.19.0/tests/data/test224 deleted file mode 100644 index 5cd068d..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test224 +++ /dev/null @@ -1,104 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -compressed -</keywords> -</info> -# -# Server-side -<reply> -<data base64="yes"> -SFRUUC8xLjEgMjAwIE9LDQpEYXRlOiBNb24sIDI5IE5vdiAyMDA0IDIxOjU2OjUzIEdNVA0KU2Vy -dmVyOiBBcGFjaGUvMS4zLjMxIChEZWJpYW4gR05VL0xpbnV4KSBtb2RfZ3ppcC8xLjMuMjYuMWEg -UEhQLzQuMy45LTEgbW9kX3NzbC8yLjguMjAgT3BlblNTTC8wLjkuN2QgbW9kX3BlcmwvMS4yOQ0K -VmFyeTogQWNjZXB0LUVuY29kaW5nDQpDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1J -U08tODg1OS0xDQpDb250ZW50LUVuY29kaW5nOiBnemlwDQpDb250ZW50LUxlbmd0aDogMjE4Ng0K -DQofiwgcv7yrQQIDMAB0aGlzIGlzIGFuIGV4dHJhIGZpZWxkIHRoYXQgbXVzdCBiZSByZW1vdmVk -X19fX19sb25nLWZpbGVuYW1lLXh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 -eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4AHRoaXMgaXMgYSBj -b21tZW50IHRoYXQgbXVzdCBiZSBza2lwcGVkACvNS87PLShKLS5OTVFIr8osUEhJLElUKM8syVDI -yc9Lh4hlpCampBZxAQC4UJ7LLQAAAA== -</data> - -<datacheck> -HTTP/1.1 200 OK -Date: Mon, 29 Nov 2004 21:56:53 GMT -Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29 -Vary: Accept-Encoding -Content-Type: text/html; charset=ISO-8859-1 -Content-Encoding: gzip -Content-Length: 2186 - -uncompressed gzip data with long gzip header -</datacheck> - -</reply> - -# -# Client-side -<client> -<features> -libz -</features> -<server> -http -</server> - <name> -HTTP GET gzip compressed content with huge comment and extra field - </name> - <command> -http://%HOSTIP:%HTTPPORT/224 --compressed -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /224 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Accept-Encoding: deflate, gzip - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test225 b/Utilities/cmcurl-7.19.0/tests/data/test225 deleted file mode 100644 index fe39db9..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test225 +++ /dev/null @@ -1,29 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -FAILURE -compressed -</keywords> -</info> -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP %0a-code in URL's name part - </name> - <command> -ftp://bad%0auser:passwd@%HOSTIP:%FTPPORT/225%0a -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -# 3 == CURLE_URL_MALFORMAT -<errorcode> -3 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test226 b/Utilities/cmcurl-7.19.0/tests/data/test226 deleted file mode 100644 index 727e153..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test226 +++ /dev/null @@ -1,29 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -FAILURE -compressed -</keywords> -</info> -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP %0d-code in URL's CWD part - </name> - <command> -ftp://%HOSTIP:%FTPPORT/226%0d -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -# 3 == CURLE_URL_MALFORMAT -<errorcode> -3 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test227 b/Utilities/cmcurl-7.19.0/tests/data/test227 deleted file mode 100644 index 9fa2689..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test227 +++ /dev/null @@ -1,56 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -post-quote -pre-quote -quote -compressed -</keywords> -</info> -# Server-side -<reply> -<data> -data - to - see -that FTP -works - so does it? -</data> -<servercmd> -REPLY EPSV 500 no such command -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP with quote ops - </name> - <command> -ftp://%HOSTIP:%FTPPORT/227 -Q "NOOP 1" -Q "+NOOP 2" -Q "-NOOP 3" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -NOOP 1 -EPSV -PASV -TYPE I -NOOP 2 -SIZE 227 -RETR 227 -NOOP 3 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test228 b/Utilities/cmcurl-7.19.0/tests/data/test228 deleted file mode 100644 index 418668a..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test228 +++ /dev/null @@ -1,53 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -ACCT -compressed -</keywords> -</info> -# Server-side -<reply> -<data> -data - to - see -that FTP -works - so does it? -</data> -<servercmd> -REPLY PASS 332 please provide account name -REPLY ACCT 230 thank you -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP RETR with ACCT - </name> - <command> -ftp://%HOSTIP:%FTPPORT/228 --ftp-account "one count" -</command> -</client> - - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -ACCT one count -PWD -EPSV -TYPE I -SIZE 228 -RETR 228 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test229 b/Utilities/cmcurl-7.19.0/tests/data/test229 deleted file mode 100644 index af95956..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test229 +++ /dev/null @@ -1,42 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -ACCT -FAILURE -compressed -</keywords> -</info> -# Server-side -<reply> -<servercmd> -REPLY PASS 332 please provide account name -REPLY ACCT 532 bluah! -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP RETR with bad ACCT - </name> - <command> -ftp://%HOSTIP:%FTPPORT/229 --ftp-account "one count" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -ACCT one count -</protocol> -<errorcode> -11 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test23 b/Utilities/cmcurl-7.19.0/tests/data/test23 deleted file mode 100644 index 46872e8..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test23 +++ /dev/null @@ -1,33 +0,0 @@ -<testcase> -<info> -<keywords> -unsupported protocol -FAILURE -</keywords> -</info> -# Server-side -<reply> -<data> -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -unsupported protocol:// URL - </name> - <command> -htfp://%HOSTIP:%HTTPPORT/none.htfml -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -1 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test231 b/Utilities/cmcurl-7.19.0/tests/data/test231 deleted file mode 100644 index 912ea41..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test231 +++ /dev/null @@ -1,32 +0,0 @@ -<testcase> -# Server-side -<reply> -# 16 bytes to check -<datacheck> -B01234567 -C01234567 -</datacheck> -</reply> - -# Client-side -<client> -<server> -file -</server> - <name> -file:// with resume - </name> - <command> -file://localhost/%PWD/log/test231.txt -C 10- -</command> -<file name="log/test231.txt"> -A01234567 -B01234567 -C01234567 -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test233 b/Utilities/cmcurl-7.19.0/tests/data/test233 deleted file mode 100644 index d9161ae..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test233 +++ /dev/null @@ -1,96 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP proxy -HTTP Basic auth -HTTP proxy Basic auth -followlocation -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 302 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake swsclose -Content-Type: text/html -Funny-head: yesyes -Location: http://goto.second.host.now/2330002 -Content-Length: 8 -Connection: close - -contents -</data> -<data2> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake swsclose -Content-Type: text/html -Funny-head: yesyes -Content-Length: 9 - -contents -</data2> - -<datacheck> -HTTP/1.1 302 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake swsclose -Content-Type: text/html -Funny-head: yesyes -Location: http://goto.second.host.now/2330002 -Content-Length: 8 -Connection: close - -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake swsclose -Content-Type: text/html -Funny-head: yesyes -Content-Length: 9 - -contents -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP, proxy, site+proxy auth and Location: to new host - </name> - <command> -http://first.host.it.is/we/want/that/page/233 -x %HOSTIP:%HTTPPORT --user iam:myself --proxy-user testing:this --location -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET http://first.host.it.is/we/want/that/page/233 HTTP/1.1 -Proxy-Authorization: Basic dGVzdGluZzp0aGlz -Authorization: Basic aWFtOm15c2VsZg== -Host: first.host.it.is -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -GET http://goto.second.host.now/2330002 HTTP/1.1 -Proxy-Authorization: Basic dGVzdGluZzp0aGlz -Host: goto.second.host.now -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test234 b/Utilities/cmcurl-7.19.0/tests/data/test234 deleted file mode 100644 index c6741a0..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test234 +++ /dev/null @@ -1,88 +0,0 @@ -<testcase> -# -# Server-side -<reply> -<data> -HTTP/1.1 302 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake swsclose -Content-Type: text/html -Funny-head: yesyes -Location: http://goto.second.host.now/2340002 -Content-Length: 8 -Connection: close - -contents -</data> -<data2> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake swsclose -Content-Type: text/html -Funny-head: yesyes -Content-Length: 9 - -contents -</data2> - -<datacheck> -HTTP/1.1 302 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake swsclose -Content-Type: text/html -Funny-head: yesyes -Location: http://goto.second.host.now/2340002 -Content-Length: 8 -Connection: close - -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake swsclose -Content-Type: text/html -Funny-head: yesyes -Content-Length: 9 - -contents -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP, proxy, site+proxy auth and Location: to new host using location-trusted - </name> - <command> -http://first.host.it.is/we/want/that/page/234 -x %HOSTIP:%HTTPPORT --user iam:myself --proxy-user testing:this --location-trusted -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET http://first.host.it.is/we/want/that/page/234 HTTP/1.1 -Proxy-Authorization: Basic dGVzdGluZzp0aGlz -Authorization: Basic aWFtOm15c2VsZg== -Host: first.host.it.is -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -GET http://goto.second.host.now/2340002 HTTP/1.1 -Proxy-Authorization: Basic dGVzdGluZzp0aGlz -Authorization: Basic aWFtOm15c2VsZg== -Host: goto.second.host.now -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test235 b/Utilities/cmcurl-7.19.0/tests/data/test235 deleted file mode 100644 index a31cef1..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test235 +++ /dev/null @@ -1,42 +0,0 @@ -<testcase> -# Server-side -<reply> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP resumed upload but no file present remotely - </name> - <command> -ftp://%HOSTIP:%FTPPORT/235 -T log/upload235 -C - -</command> -<file name="log/upload235"> -this is the *****crap******** that we're gonna upload - -worx? -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE I -SIZE 235 -STOR 235 -QUIT -</protocol> -<upload> -this is the *****crap******** that we're gonna upload - -worx? -</upload> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test236 b/Utilities/cmcurl-7.19.0/tests/data/test236 deleted file mode 100644 index 139b569..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test236 +++ /dev/null @@ -1,47 +0,0 @@ -<testcase> - -# Server-side -<reply> -<servercmd> -REPLY SIZE 550 access to this file is very much denied -REPLY APPE 550 I said: access to this file is very much denied -REPLY STOR 550 I said: access to this file is very much denied -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP resume upload but denied access to remote file - </name> - <command> -ftp://%HOSTIP:%FTPPORT/236 -T log/file236.txt -C - -</command> -<file name="log/file236.txt"> -Test data -</file> -</client> - -# Verify data after the test has been "shot" -<verify> - -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE I -SIZE 236 -STOR 236 -QUIT -</protocol> - -# (25) Failed FTP upload: 550 -<errorcode> -25 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test237 b/Utilities/cmcurl-7.19.0/tests/data/test237 deleted file mode 100644 index b51480d..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test237 +++ /dev/null @@ -1,42 +0,0 @@ -<testcase> -# Server-side -<reply> -<servercmd> -REPLY PASV 227 Entering Passiv Mode (1216,256,2,127,127,127) -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP getting bad host in 227-response to PASV - </name> - <command> -ftp://%HOSTIP:%FTPPORT/237 --disable-epsv -</command> -</client> - -# Verify data after the test has been "shot" -# The bogus address used here is chosen specifically so that when processed on -# certain hosts with buggy resolver code, the resulting address (192.0.2.127) -# is from an address block that is guaranteed never to be assigned (RFC3330). -<verify> -# curl: (15) Can't resolve new host 1216.256.2.127:32639 -# 15 => CURLE_FTP_CANT_GET_HOST -# some systems just don't fail on the illegal host name/address but instead -# moves on and attempt to connect to... yes, to what? -# 7= CURLE_COULDNT_CONNECT -<errorcode> -15, 7 -</errorcode> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -PASV -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test238 b/Utilities/cmcurl-7.19.0/tests/data/test238 deleted file mode 100644 index 628d4e8..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test238 +++ /dev/null @@ -1,41 +0,0 @@ -<testcase> -# Server-side -<reply> -<servercmd> -REPLY EPSV 229 Entering Passiv Mode (|||1000000|) -REPLY PASV 227 Entering Passiv Mode (1216,256,2,127,127,127) -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP getting bad port in response to EPSV and in response to PASV - </name> - <command> -ftp://%HOSTIP:%FTPPORT/238 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -# curl: (15) Can't resolve new host 1216.256.2.127:32639 -# 15 => CURLE_FTP_CANT_GET_HOST -# some systems just don't fail on the illegal host name/address but instead -# moves on and attempt to connect to... yes, to what? -# 7= CURLE_COULDNT_CONNECT -<errorcode> -7, 15 -</errorcode> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -PASV -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test239 b/Utilities/cmcurl-7.19.0/tests/data/test239 deleted file mode 100644 index 14b005c..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test239 +++ /dev/null @@ -1,89 +0,0 @@ -<testcase> -# Server-side -<reply> - -# this is returned first since we get no proxy-auth -<data1001> -HTTP/1.1 407 Authorization Required to proxy me my dear -Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== -Content-Length: 34 - -Hey you, authenticate or go away! -</data1001> - -# This is supposed to be returned when the server gets the second -# Authorization: NTLM line passed-in from the client -<data1002> -HTTP/1.1 200 Things are fine in proxy land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 42 - -Contents of that page you requested, sir. -</data1002> - -<datacheck> -HTTP/1.1 407 Authorization Required to proxy me my dear -Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== -Content-Length: 34 - -HTTP/1.1 200 Things are fine in proxy land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 42 - -Contents of that page you requested, sir. -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> -<features> -NTLM -</features> - <name> -HTTP proxy-auth NTLM and then POST - </name> - <command> -http://%HOSTIP:%HTTPPORT/239 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-ntlm -d "postit" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -# We strip off a large chunk of the type-2 NTLM message since it depends on -# the local host name and thus differs on different machines! -<strippart> -s/^(Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA).*/$1/ -</strippart> -<protocol nonewline="yes"> -POST http://%HOSTIP:%HTTPPORT/239 HTTP/1.1 -Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= -User-Agent: curl/7.13.2-CVS (i686-pc-linux-gnu) libcurl/7.13.2-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13 -Host: %HOSTIP:%HTTPPORT -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Content-Length: 0 -Content-Type: application/x-www-form-urlencoded - -POST http://%HOSTIP:%HTTPPORT/239 HTTP/1.1 -Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA -User-Agent: curl/7.13.2-CVS (i686-pc-linux-gnu) libcurl/7.13.2-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13 -Host: %HOSTIP:%HTTPPORT -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Content-Length: 6 -Content-Type: application/x-www-form-urlencoded - -postit -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test24 b/Utilities/cmcurl-7.19.0/tests/data/test24 deleted file mode 100644 index 00bed4e..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test24 +++ /dev/null @@ -1,47 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -</keywords> -</info> -# Server-side -<reply> -<data nocheck="1"> -HTTP/1.0 404 BAD BOY -Content-Type: text/html - -This silly page doesn't reaaaaaly exist so you should not get it. -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET fail silently on HTTP error return - </name> - <command> -http://%HOSTIP:%HTTPPORT/24 --fail -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -<protocol> -GET /24 HTTP/1.1 -User-Agent: curl/7.8.1-pre3 (sparc-sun-solaris2.7) libcurl 7.8.1-pre3 (OpenSSL 0.9.6a) (krb4 enabled) -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -<errorcode> -22 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test240 b/Utilities/cmcurl-7.19.0/tests/data/test240 deleted file mode 100644 index 2c28a89..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test240 +++ /dev/null @@ -1,58 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -IPv6 -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 -Connection: close -Content-Type: text/html -Funny-head: yesyes - --foo- -</data> -</reply> - -# -# Client-side -<client> -<features> -ipv6 -</features> -<server> -http-ipv6 -</server> - <name> -HTTP-IPv6 GET - </name> - <command> --g "http://%HOST6IP:%HTTP6PORT/240" -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: -</strip> -<protocol> -GET /240 HTTP/1.1 -Host: %HOST6IP:%HTTP6PORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test241 b/Utilities/cmcurl-7.19.0/tests/data/test241 deleted file mode 100644 index 9e98e6a..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test241 +++ /dev/null @@ -1,56 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -IPv6 -IPv6-hostname -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 6 - -hello -</data> -</reply> - -# -# Client-side -<client> -<features> -ipv6 -</features> -<server> -http-ipv6 -</server> - <name> -HTTP-IPv6 GET (using ip6-localhost) - </name> - <command> --g "http://ip6-localhost:%HTTP6PORT/241" -</command> -<precheck> -./server/resolve --ipv6 ip6-localhost -</precheck> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: -</strip> -<protocol> -GET /241 HTTP/1.1 -Host: ip6-localhost:%HTTP6PORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test242 b/Utilities/cmcurl-7.19.0/tests/data/test242 deleted file mode 100644 index 85ec70e..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test242 +++ /dev/null @@ -1,54 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -IPv6 -HTTP Basic auth -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 6 -Connection: close - -hello -</data> -</reply> - -# -# Client-side -<client> -<features> -ipv6 -</features> -<server> -http-ipv6 -</server> - <name> -HTTP-IPv6 GET with username+password in URL - </name> - <command> --g "http://foobar:barfoo@%HOST6IP:%HTTP6PORT/242" -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: -</strip> -<protocol> -GET /242 HTTP/1.1 -Authorization: Basic Zm9vYmFyOmJhcmZvbw== -Host: %HOST6IP:%HTTP6PORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test243 b/Utilities/cmcurl-7.19.0/tests/data/test243 deleted file mode 100644 index 65f07c1..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test243 +++ /dev/null @@ -1,126 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET ---proxy-anyauth -HTTP proxy NTLM auth -</keywords> -</info> -# Server-side -<reply> - -<data> -HTTP/1.1 407 Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Proxy-Authenticate: Blackmagic realm="gimme all yer s3cr3ts" -Proxy-Authenticate: Basic realm="gimme all yer s3cr3ts" -Proxy-Authenticate: NTLM -Content-Type: text/html; charset=iso-8859-1 -Connection: close - -This is not the real page -</data> - -# this is returned first since we get no proxy-auth -<data1001> -HTTP/1.1 407 Authorization Required to proxy me my dear -Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== -Content-Length: 34 - -Hey you, authenticate or go away! -</data1001> - -# This is supposed to be returned when the server gets the second -# Authorization: NTLM line passed-in from the client -<data1002> -HTTP/1.1 200 Things are fine in proxy land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 42 - -Contents of that page you requested, sir. -</data1002> - -<datacheck> -HTTP/1.1 407 Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Proxy-Authenticate: Blackmagic realm="gimme all yer s3cr3ts" -Proxy-Authenticate: Basic realm="gimme all yer s3cr3ts" -Proxy-Authenticate: NTLM -Content-Type: text/html; charset=iso-8859-1 -Connection: close - -HTTP/1.1 407 Authorization Required to proxy me my dear -Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== -Content-Length: 34 - -HTTP/1.1 200 Things are fine in proxy land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 42 - -Contents of that page you requested, sir. -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> -<features> -NTLM -</features> - <name> -HTTP POST with --proxy-anyauth, picking NTLM - </name> - <command> -http://%HOSTIP:%HTTPPORT/243 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-anyauth -d "postit" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -# We strip off a large chunk of the type-2 NTLM message since it depends on -# the local host name and thus differs on different machines! -<strippart> -s/^(Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA).*/$1/ -</strippart> -<protocol nonewline="yes"> -POST http://%HOSTIP:%HTTPPORT/243 HTTP/1.1 -User-Agent: curl/7.13.2-CVS (i686-pc-linux-gnu) libcurl/7.13.2-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13 -Host: %HOSTIP:%HTTPPORT -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Content-Length: 6 -Content-Type: application/x-www-form-urlencoded - -postitPOST http://%HOSTIP:%HTTPPORT/243 HTTP/1.1 -Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= -User-Agent: curl/7.13.2-CVS (i686-pc-linux-gnu) libcurl/7.13.2-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13 -Host: %HOSTIP:%HTTPPORT -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Content-Length: 0 -Content-Type: application/x-www-form-urlencoded - -POST http://%HOSTIP:%HTTPPORT/243 HTTP/1.1 -Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA -User-Agent: curl/7.13.2-CVS (i686-pc-linux-gnu) libcurl/7.13.2-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13 -Host: %HOSTIP:%HTTPPORT -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Content-Length: 6 -Content-Type: application/x-www-form-urlencoded - -postit -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test245 b/Utilities/cmcurl-7.19.0/tests/data/test245 deleted file mode 100644 index 102d8c9..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test245 +++ /dev/null @@ -1,87 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP POST -HTTP Digest auth -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 401 authentication please swsbounce -Server: Microsoft-IIS/6.0 -WWW-Authenticate: Digest realm="testrealm", nonce="1053604144" -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 0 - -</data> -<data1000> -HTTP/1.1 200 A OK -Server: Microsoft-IIS/6.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 3 - -ok -</data1000> - -<datacheck> -HTTP/1.1 401 authentication please swsbounce -Server: Microsoft-IIS/6.0 -WWW-Authenticate: Digest realm="testrealm", nonce="1053604144" -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 0 - -HTTP/1.1 200 A OK -Server: Microsoft-IIS/6.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 3 - -ok -</datacheck> - -</reply> - -# Client-side -<client> -# -<server> -http -</server> -<features> -crypto -</features> - <name> -HTTP POST --digest - </name> - <command> -http://%HOSTIP:%HTTPPORT/245 -u auser:apasswd --digest -d "junkelijunk" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol nonewline="yes"> -POST /245 HTTP/1.1 -User-Agent: curl/7.12.1-CVS (i686-pc-linux-gnu) libcurl/7.12.1-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.6 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 0 -Content-Type: application/x-www-form-urlencoded - -POST /245 HTTP/1.1 -Authorization: Digest username="auser", realm="testrealm", nonce="1053604144", uri="/245", response="379a439b1737ba257c1d2f103914b18b" -User-Agent: curl/7.13.2-CVS (i686-pc-linux-gnu) libcurl/7.13.2-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 11 -Content-Type: application/x-www-form-urlencoded - -junkelijunk -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test246 b/Utilities/cmcurl-7.19.0/tests/data/test246 deleted file mode 100644 index 57f47e4..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test246 +++ /dev/null @@ -1,97 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP POST -HTTP Digest auth -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 100 Continue -Server: Microsoft-IIS/5.0 -Date: Sun, 03 Apr 2005 14:57:45 GMT -X-Powered-By: ASP.NET - -HTTP/1.1 401 authentication please swsbounce -Server: Microsoft-IIS/6.0 -WWW-Authenticate: Digest realm="testrealm", nonce="1053604144" -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 0 - -</data> -<data1000> -HTTP/1.1 200 A OK -Server: Microsoft-IIS/6.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 3 - -ok -</data1000> - -<datacheck> -HTTP/1.1 100 Continue -Server: Microsoft-IIS/5.0 -Date: Sun, 03 Apr 2005 14:57:45 GMT -X-Powered-By: ASP.NET - -HTTP/1.1 401 authentication please swsbounce -Server: Microsoft-IIS/6.0 -WWW-Authenticate: Digest realm="testrealm", nonce="1053604144" -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 0 - -HTTP/1.1 200 A OK -Server: Microsoft-IIS/6.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 3 - -ok -</datacheck> - -</reply> - -# Client-side -<client> -# -<server> -http -</server> -<features> -crypto -</features> - <name> -HTTP POST --digest with server doing a 100 before 401 response - </name> - <command> -http://%HOSTIP:%HTTPPORT/246 -u auser:apasswd --digest -d "junkelijunk" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol nonewline="yes"> -POST /246 HTTP/1.1 -User-Agent: curl/7.12.1-CVS (i686-pc-linux-gnu) libcurl/7.12.1-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.6 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 0 -Content-Type: application/x-www-form-urlencoded - -POST /246 HTTP/1.1 -Authorization: Digest username="auser", realm="testrealm", nonce="1053604144", uri="/246", response="761e6fc9a760c39d587092e8d840e740" -User-Agent: curl/7.13.2-CVS (i686-pc-linux-gnu) libcurl/7.13.2-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 11 -Content-Type: application/x-www-form-urlencoded - -junkelijunk -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test247 b/Utilities/cmcurl-7.19.0/tests/data/test247 deleted file mode 100644 index 377b5b8..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test247 +++ /dev/null @@ -1,41 +0,0 @@ -<testcase> -<reply> -<mdtm> -213 20030409102659 -</mdtm> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP upload time condition evaluates TRUE => skip upload - </name> -<file name="log/test247.txt"> -data - to - see -that FTP -works - so does it? -</file> - <command> -ftp://%HOSTIP:%FTPPORT/247 -T log/test247.txt -z "apr 1 2005 08:00:00" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<upload> -</upload> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -MDTM 247 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test248 b/Utilities/cmcurl-7.19.0/tests/data/test248 deleted file mode 100644 index f6c835f..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test248 +++ /dev/null @@ -1,50 +0,0 @@ -<testcase> -<reply> -<mdtm> -213 20050409102659 -</mdtm> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP upload time condition evaluates FALSE => upload anyway - </name> -<file name="log/test248.txt"> -data - to - see -that FTP -works - so does it? -</file> - <command> -ftp://%HOSTIP:%FTPPORT/248 -T log/test248.txt -z "apr 1 2005 08:00:00" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<upload> -data - to - see -that FTP -works - so does it? -</upload> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -MDTM 248 -EPSV -TYPE I -STOR 248 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test249 b/Utilities/cmcurl-7.19.0/tests/data/test249 deleted file mode 100644 index 842f50e..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test249 +++ /dev/null @@ -1,47 +0,0 @@ -<testcase> -# -# Server-side -<reply> -<data> -HTTP/1.1 304 Not Modified swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 1910 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 677777 -Connection: close -Content-Type: text/html - -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP 304 response with "illegal" Content-Length: header - </name> - <command> -http://%HOSTIP:%HTTPPORT/249 -z "dec 12 12:00:00 1999 GMT" -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /249 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -If-Modified-Since: Sun, 12 Dec 1999 12:00:00 GMT - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test25 b/Utilities/cmcurl-7.19.0/tests/data/test25 deleted file mode 100644 index 3c8d1f7..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test25 +++ /dev/null @@ -1,116 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -followlocation ---max-redirs -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 301 This is a weirdo text message -Server: test-server/fake -Location: data/reply/25 -Content-Length: 32 -Connection: close - -Redirect to the same URL again! -</data> -<datacheck> -HTTP/1.1 301 This is a weirdo text message -Server: test-server/fake -Location: data/reply/25 -Content-Length: 32 -Connection: close - -HTTP/1.1 301 This is a weirdo text message -Server: test-server/fake -Location: data/reply/25 -Content-Length: 32 -Connection: close - -HTTP/1.1 301 This is a weirdo text message -Server: test-server/fake -Location: data/reply/25 -Content-Length: 32 -Connection: close - -HTTP/1.1 301 This is a weirdo text message -Server: test-server/fake -Location: data/reply/25 -Content-Length: 32 -Connection: close - -HTTP/1.1 301 This is a weirdo text message -Server: test-server/fake -Location: data/reply/25 -Content-Length: 32 -Connection: close - -HTTP/1.1 301 This is a weirdo text message -Server: test-server/fake -Location: data/reply/25 -Content-Length: 32 -Connection: close - -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -looping HTTP Location: following with --max-redirs - </name> - <command> -http://%HOSTIP:%HTTPPORT/want/25 -L --max-redirs 5 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -<protocol> -GET /want/25 HTTP/1.1 -User-Agent: curl/7.8.1-pre3 (sparc-sun-solaris2.7) libcurl 7.8.1-pre3 (OpenSSL 0.9.6a) (krb4 enabled) -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /want/data/reply/25 HTTP/1.1 -User-Agent: curl/7.8.1-pre3 (sparc-sun-solaris2.7) libcurl 7.8.1-pre3 (OpenSSL 0.9.6a) (krb4 enabled) -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /want/data/reply/data/reply/25 HTTP/1.1 -User-Agent: curl/7.8.1-pre3 (sparc-sun-solaris2.7) libcurl 7.8.1-pre3 (OpenSSL 0.9.6a) (krb4 enabled) -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /want/data/reply/data/reply/data/reply/25 HTTP/1.1 -User-Agent: curl/7.8.1-pre3 (sparc-sun-solaris2.7) libcurl 7.8.1-pre3 (OpenSSL 0.9.6a) (krb4 enabled) -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /want/data/reply/data/reply/data/reply/data/reply/25 HTTP/1.1 -User-Agent: curl/7.8.1-pre3 (sparc-sun-solaris2.7) libcurl 7.8.1-pre3 (OpenSSL 0.9.6a) (krb4 enabled) -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /want/data/reply/data/reply/data/reply/data/reply/data/reply/25 HTTP/1.1 -User-Agent: curl/7.8.1-pre3 (sparc-sun-solaris2.7) libcurl 7.8.1-pre3 (OpenSSL 0.9.6a) (krb4 enabled) -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> - -<errorcode> -47 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test250 b/Utilities/cmcurl-7.19.0/tests/data/test250 deleted file mode 100644 index 11ff6bd..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test250 +++ /dev/null @@ -1,52 +0,0 @@ -<testcase> -# -# Server-side -<reply> -# When doing LIST, we get the default list output hard-coded in the test -# FTP server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -<servercmd> -SLOWDOWN -</servercmd> -</reply> - -# -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP dir list PASV with slow response - </name> - <command> -ftp://%HOSTIP:%FTPPORT/ -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE A -LIST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test251 b/Utilities/cmcurl-7.19.0/tests/data/test251 deleted file mode 100644 index 333397c..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test251 +++ /dev/null @@ -1,54 +0,0 @@ -<testcase> -# Server-side -<reply> -# When doing LIST, we get the default list output hard-coded in the test -# FTP server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -<servercmd> -SLOWDOWN -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP dir list, PORT with specified IP and slow response - </name> - <command> -ftp://%HOSTIP:%FTPPORT/ -P %HOSTIP -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -# Strip all valid kinds of PORT and EPRT that curl can send -<strip> -^PORT \d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3} -^EPRT \|1\|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\|\d{1,5}\| -</strip> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -PORT 127,0,0,1,243,212 -TYPE A -LIST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test252 b/Utilities/cmcurl-7.19.0/tests/data/test252 deleted file mode 100644 index 44e541a..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test252 +++ /dev/null @@ -1,59 +0,0 @@ -<testcase> -<info> -<keywords> -FTP-ipv6 -IPv6 -EPSV -</keywords> -</info> -# -# Server-side -<reply> -# When doing LIST, we get the default list output hard-coded in the test -# FTP server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -</reply> - -# -# Client-side -<client> -<features> -ipv6 -</features> -<server> -ftp-ipv6 -</server> - <name> -FTP IPv6 dir list PASV - </name> - <command> --g "ftp://%HOST6IP:%FTP6PORT/" -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE A -LIST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test253 b/Utilities/cmcurl-7.19.0/tests/data/test253 deleted file mode 100644 index f2f55f9..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test253 +++ /dev/null @@ -1,62 +0,0 @@ -<testcase> -<info> -<keywords> -FTP-ipv6 -IPv6 -EPRT -</keywords> -</info> -# -# Server-side -<reply> -# When doing LIST, we get the default list output hard-coded in the test -# FTP server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -</reply> - -# -# Client-side -<client> -<features> -ipv6 -</features> -<server> -ftp-ipv6 -</server> - <name> -FTP IPv6 dir list with EPRT - </name> - <command> --g "ftp://%HOST6IP:%FTP6PORT/" -P - -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strippart> -s/^(EPRT \|2\|::1\|)(.*)/$1/ -</strippart> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPRT |2|::1| -TYPE A -LIST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test254 b/Utilities/cmcurl-7.19.0/tests/data/test254 deleted file mode 100644 index aa684f0..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test254 +++ /dev/null @@ -1,60 +0,0 @@ -<testcase> -<info> -<keywords> -FTP-ipv6 -IPv6 -EPSV ---disable-epsv -</keywords> -</info> -# -# Server-side -<reply> -# When doing LIST, we get the default list output hard-coded in the test -# FTP server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -</reply> - -# -# Client-side -<client> -<features> -ipv6 -</features> -<server> -ftp-ipv6 -</server> - <name> -FTP IPv6 dir list PASV and --disable-epsv - </name> - <command> --g "ftp://%HOST6IP:%FTP6PORT/" --disable-epsv -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE A -LIST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test255 b/Utilities/cmcurl-7.19.0/tests/data/test255 deleted file mode 100644 index 99cd123..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test255 +++ /dev/null @@ -1,63 +0,0 @@ -<testcase> -<info> -<keywords> -FTP-ipv6 -IPv6 -EPRT ---disable-eprt -</keywords> -</info> -# -# Server-side -<reply> -# When doing LIST, we get the default list output hard-coded in the test -# FTP server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -</reply> - -# -# Client-side -<client> -<features> -ipv6 -</features> -<server> -ftp-ipv6 -</server> - <name> -FTP IPv6 dir list with EPRT and --disable-eprt - </name> - <command> --g "ftp://%HOST6IP:%FTP6PORT/" -P - --disable-eprt -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strippart> -s/^(EPRT \|2\|::1\|)(.*)/$1/ -</strippart> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPRT |2|::1| -TYPE A -LIST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test256 b/Utilities/cmcurl-7.19.0/tests/data/test256 deleted file mode 100644 index 2298fae..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test256 +++ /dev/null @@ -1,65 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP proxy -Resume -FAILURE -</keywords> -</info> -# Server-side -<reply> -<data nocheck="1"> -HTTP/1.0 200 Mooo -Date: Mon, 13 Nov 2000 13:41:09 GMT -Server: myown/1.0 -Connection: close - -todelooooo lalalala yada yada, we know nothing about ranges ;-) -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP resume request over proxy with auth without server supporting it - </name> - <command option="no-output"> --x http://%HOSTIP:%HTTPPORT http://%HOSTIP:%HTTPPORT/want/256 -C - --no-include -o log/fewl.txt -U daniel:stenberg -</command> -<file name="log/fewl.txt"> -This text is here to simulate a partly downloaded file to resume -download on. -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -33 -</errorcode> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET http://%HOSTIP:%HTTPPORT/want/256 HTTP/1.1 -Proxy-Authorization: Basic ZGFuaWVsOnN0ZW5iZXJn -Range: bytes=78- -Host: %HOSTIP:%HTTPPORT -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> - -# the download target file must remain untouched -<file name="log/fewl.txt"> -This text is here to simulate a partly downloaded file to resume -download on. -</file> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test257 b/Utilities/cmcurl-7.19.0/tests/data/test257 deleted file mode 100644 index c76142c..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test257 +++ /dev/null @@ -1,115 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -followlocation -netrc -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 301 This is a weirdo text message swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: http://anotherone.com/2570002 -Connection: close - -This server reply is for testing a simple Location: following - -</data> -<data2> -HTTP/1.1 302 Followed here fine swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: http://athird.com/2570003 - -If this is received, the location following worked - -</data2> -<data3> -HTTP/1.1 200 Followed here fine swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 52 - -If this is received, the location following worked - -</data3> -<datacheck> -HTTP/1.1 301 This is a weirdo text message swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: http://anotherone.com/2570002 -Connection: close - -HTTP/1.1 302 Followed here fine swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: http://athird.com/2570003 - -HTTP/1.1 200 Followed here fine swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 52 - -If this is received, the location following worked - -</datacheck> -</reply> - -# Client-side -<client> -<features> -netrc_debug -</features> -<server> -http -</server> - <name> -HTTP Location: following with --netrc-optional - </name> - <command> -http://supersite.com/want/257 -L -x http://%HOSTIP:%HTTPPORT --netrc-optional -</command> - -# netrc auth for two out of three sites: -<file name="log/netrc"> -machine supersite.com login user1 password passwd1 -machine anotherone.com login user2 password passwd2 -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET http://supersite.com/want/257 HTTP/1.1 -Authorization: Basic dXNlcjE6cGFzc3dkMQ== -User-Agent: curl/7.14.0-CVS (i686-pc-linux-gnu) libcurl/7.14.0-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13 -Host: supersite.com -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -GET http://anotherone.com/2570002 HTTP/1.1 -Authorization: Basic dXNlcjI6cGFzc3dkMg== -User-Agent: curl/7.14.0-CVS (i686-pc-linux-gnu) libcurl/7.14.0-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13 -Host: anotherone.com -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -GET http://athird.com/2570003 HTTP/1.1 -User-Agent: curl/7.14.0-CVS (i686-pc-linux-gnu) libcurl/7.14.0-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13 -Host: athird.com -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test258 b/Utilities/cmcurl-7.19.0/tests/data/test258 deleted file mode 100644 index 78294ff..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test258 +++ /dev/null @@ -1,136 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP FORMPOST -HTTP replaced headers -HTTP proxy -HTTP proxy Digest auth ---proxy-anyauth -</keywords> - -</info> -# Server-side -<reply> -# The stupid test server doesn't response anything at all until the full -# request has been sent, and then of course the full POST has already been -# sent! -<data> -HTTP/1.1 407 no, tell me who you are first swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Proxy-Authenticate: Digest realm="many secrets", nonce="911" -Proxy-Connection: close -Content-Length: 0 - -</data> -<data1000> -HTTP/1.1 200 A OK -Server: Microsoft-IIS/6.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 3 - -ok -</data1000> -<datacheck> -HTTP/1.1 407 no, tell me who you are first swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Proxy-Authenticate: Digest realm="many secrets", nonce="911" -Proxy-Connection: close -Content-Length: 0 - -HTTP/1.1 200 A OK -Server: Microsoft-IIS/6.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 3 - -ok -</datacheck> - -</reply> - -# Client-side -<client> -<server> -http -</server> -<features> -crypto -</features> - <name> -HTTP POST multipart without Expect: header using proxy anyauth (Digest) - </name> - <command> --x http://%HOSTIP:%HTTPPORT http://remotehost:54321/we/want/258 -F name=daniel -F tool=curl -F file=@log/test258.txt -H "Expect:" -U uuuser:pppassword --proxy-anyauth -</command> -# We create this file before the command is invoked! -<file name="log/test258.txt"> -foo- -This is a moo- -bar -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^(User-Agent:|Content-Type: multipart/form-data;|------).* -</strip> -<protocol> -POST http://remotehost:54321/we/want/258 HTTP/1.1 -User-Agent: curl/7.10.4 (i686-pc-linux-gnu) libcurl/7.10.4 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: remotehost:54321 -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Content-Length: 409 -Content-Type: multipart/form-data; boundary=----------------------------7c633d5c27ce - -------------------------------7c633d5c27ce -Content-Disposition: form-data; name="name" - -daniel -------------------------------7c633d5c27ce -Content-Disposition: form-data; name="tool" - -curl -------------------------------7c633d5c27ce -Content-Disposition: form-data; name="file"; filename="test258.txt" -Content-Type: text/plain - -foo- -This is a moo- -bar - -------------------------------7c633d5c27ce-- -POST http://remotehost:54321/we/want/258 HTTP/1.1 -User-Agent: curl/7.10.4 (i686-pc-linux-gnu) libcurl/7.10.4 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Proxy-Authorization: Digest username="uuuser", realm="many secrets", nonce="911", uri="/we/want/258", response="2501654ca391f0b5c8c12a1da77e34cd" -Host: remotehost:54321 -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Content-Length: 409 -Content-Type: multipart/form-data; boundary=----------------------------7c633d5c27ce - -------------------------------7c633d5c27ce -Content-Disposition: form-data; name="name" - -daniel -------------------------------7c633d5c27ce -Content-Disposition: form-data; name="tool" - -curl -------------------------------7c633d5c27ce -Content-Disposition: form-data; name="file"; filename="test258.txt" -Content-Type: text/plain - -foo- -This is a moo- -bar - -------------------------------7c633d5c27ce-- -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test259 b/Utilities/cmcurl-7.19.0/tests/data/test259 deleted file mode 100644 index 7d68a44..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test259 +++ /dev/null @@ -1,134 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP FORMPOST -HTTP proxy -HTTP proxy Digest auth ---proxy-anyauth -</keywords> -</info> -# Server-side -<reply> -# The stupid test server doesn't response anything at all until the full -# request has been sent, and then of course the full POST has already been -# sent! -<data> -HTTP/1.1 407 no, tell me who you are first -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Proxy-Authenticate: Digest realm="many secrets", nonce="911" -Content-Length: 0 - -</data> -<data1000> -HTTP/1.1 200 A OK -Server: Microsoft-IIS/6.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 3 - -ok -</data1000> -<datacheck> -HTTP/1.1 407 no, tell me who you are first -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Proxy-Authenticate: Digest realm="many secrets", nonce="911" -Content-Length: 0 - -HTTP/1.1 200 A OK -Server: Microsoft-IIS/6.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 3 - -ok -</datacheck> - -</reply> - -# Client-side -<client> -<server> -http -</server> -<features> -crypto -</features> - <name> -HTTP POST multipart with Expect: header using proxy anyauth (Digest) - </name> - <command> --x http://%HOSTIP:%HTTPPORT http://remotehost:54321/we/want/259 -F name=daniel -F tool=curl -F file=@log/test259.txt -U uuuser:pppassword --proxy-anyauth -</command> -# We create this file before the command is invoked! -<file name="log/test259.txt"> -foo- -This is a moo- -bar -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^(User-Agent:|Content-Type: multipart/form-data;|------).* -</strip> -<protocol> -POST http://remotehost:54321/we/want/259 HTTP/1.1 -User-Agent: curl/7.10.4 (i686-pc-linux-gnu) libcurl/7.10.4 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: remotehost:54321 -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Content-Length: 409 -Expect: 100-continue -Content-Type: multipart/form-data; boundary=----------------------------7c633d5c27ce - -------------------------------7c633d5c27ce -Content-Disposition: form-data; name="name" - -daniel -------------------------------7c633d5c27ce -Content-Disposition: form-data; name="tool" - -curl -------------------------------7c633d5c27ce -Content-Disposition: form-data; name="file"; filename="test259.txt" -Content-Type: text/plain - -foo- -This is a moo- -bar - -------------------------------7c633d5c27ce-- -POST http://remotehost:54321/we/want/259 HTTP/1.1 -User-Agent: curl/7.10.4 (i686-pc-linux-gnu) libcurl/7.10.4 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Proxy-Authorization: Digest username="uuuser", realm="many secrets", nonce="911", uri="/we/want/259", response="b479994d13e60f3aa192a67c5892ddc5" -Host: remotehost:54321 -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Content-Length: 409 -Expect: 100-continue -Content-Type: multipart/form-data; boundary=----------------------------7c633d5c27ce - -------------------------------7c633d5c27ce -Content-Disposition: form-data; name="name" - -daniel -------------------------------7c633d5c27ce -Content-Disposition: form-data; name="tool" - -curl -------------------------------7c633d5c27ce -Content-Disposition: form-data; name="file"; filename="test259.txt" -Content-Type: text/plain - -foo- -This is a moo- -bar - -------------------------------7c633d5c27ce-- -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test26 b/Utilities/cmcurl-7.19.0/tests/data/test26 deleted file mode 100644 index c93bd9c..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test26 +++ /dev/null @@ -1,45 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.0 200 Mooo swsclose -Server: test-server/fake -Connection: close - -*flopp* -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -specify more -o than URLs - </name> - <command> -http://%HOSTIP:%HTTPPORT/want/26 -o - -o - -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl.* -</strip> -<protocol> -GET /want/26 HTTP/1.1 -User-Agent: curl/7.8.1-pre3 (sparc-sun-solaris2.7) libcurl 7.8.1-pre3 (OpenSSL 0.9.6a) (krb4 enabled) -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test260 b/Utilities/cmcurl-7.19.0/tests/data/test260 deleted file mode 100644 index 24683b9..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test260 +++ /dev/null @@ -1,55 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -</keywords> -</info> - -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 -Connection: close -Content-Type: text/html -Funny-head: yesyes - --foo- -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET URL without slash but with questionmark - </name> - <command> -"http://%HOSTIP:%HTTPPORT?260" -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /?260 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test261 b/Utilities/cmcurl-7.19.0/tests/data/test261 deleted file mode 100644 index b7120f5..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test261 +++ /dev/null @@ -1,48 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -EPSV -RETR -</keywords> -</info> -# -# Server-side -<reply> -<data> -hepp -</data> -<servercmd> -REPLY TYPE 226 Kind of on the positive side! -</servercmd> -</reply> - -# -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP RETR with 226 response code to TYPE - </name> - <command> -ftp://%HOSTIP:%FTPPORT/261 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE I -SIZE 261 -RETR 261 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test262 b/Utilities/cmcurl-7.19.0/tests/data/test262 Binary files differdeleted file mode 100644 index 43985cf..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test262 +++ /dev/null diff --git a/Utilities/cmcurl-7.19.0/tests/data/test263 b/Utilities/cmcurl-7.19.0/tests/data/test263 deleted file mode 100644 index eb53b0c..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test263 +++ /dev/null @@ -1,55 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -IPv6 -HTTP proxy -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 6 -Content-Type: text/html - -hello -</data> -</reply> - -# -# Client-side -<client> -<features> -ipv6 -</features> -<server> -http-ipv6 -</server> - <name> -HTTP-IPv6 GET with proxy specified using IPv6-numerical address - </name> - <command> --g -x "http://%HOST6IP:%HTTP6PORT" http://veryveryremotesite.com/263 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: -</strip> -<protocol> -GET http://veryveryremotesite.com/263 HTTP/1.1 -Host: veryveryremotesite.com -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test264 b/Utilities/cmcurl-7.19.0/tests/data/test264 deleted file mode 100644 index 271be28..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test264 +++ /dev/null @@ -1,50 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP proxy -HTTP proxy Basic auth -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Type: text/html -Content-Length: 26 - -the content would go here -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP with proxy string including http:// and user+password - </name> - <command> -http://we.want.that.site.com/264 -x http://f%61ke:user@%HOSTIP:%HTTPPORT -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET http://we.want.that.site.com/264 HTTP/1.1 -Proxy-Authorization: Basic ZmFrZTp1c2Vy -Host: we.want.that.site.com -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test265 b/Utilities/cmcurl-7.19.0/tests/data/test265 deleted file mode 100644 index 7d1dc37..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test265 +++ /dev/null @@ -1,121 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP POST -HTTP CONNECT -HTTP proxy -HTTP proxy NTLM auth -</keywords> -</info> - -# Server-side -<reply> - -# this is returned first since we get no proxy-auth -<data1001> -HTTP/1.0 407 Authorization Required to proxy me my dear -Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== -Content-Length: 1033 - -And you should ignore this data. -QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQz -</data1001> - -# This is supposed to be returned when the server gets the second -# Authorization: NTLM line passed-in from the client -<data1002> -HTTP/1.1 200 Things are fine in proxy land -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 - -</data1002> - -# this is returned when we get a GET! -<data2> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 7 -Connection: close -Content-Type: text/html -Funny-head: yesyes - -daniel -</data2> - -# then this is returned when we get proxy-auth -<data1000> -HTTP/1.1 200 OK swsbounce -Server: no - -Nice proxy auth sir! -</data1000> - -<datacheck> -HTTP/1.0 407 Authorization Required to proxy me my dear -Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== -Content-Length: 1033 - -HTTP/1.1 200 Things are fine in proxy land -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 - -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 7 -Connection: close -Content-Type: text/html -Funny-head: yesyes - -daniel -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> -<features> -NTLM -</features> - <name> -HTTP proxy CONNECT auth NTLM and then POST, response-body in the 407 - </name> - <command> -http://test.remote.server.com:265/path/2650002 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-ntlm --proxytunnel -d "postit" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -# We strip off a large chunk of the type-2 NTLM message since it depends on -# the local host name and thus differs on different machines! -<strippart> -s/^(Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA).*/$1/ -</strippart> -<protocol nonewline="yes"> -CONNECT test.remote.server.com:265 HTTP/1.0 -Host: test.remote.server.com:265 -Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= -Proxy-Connection: Keep-Alive - -CONNECT test.remote.server.com:265 HTTP/1.0 -Host: test.remote.server.com:265 -Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA -Proxy-Connection: Keep-Alive - -POST /path/2650002 HTTP/1.1 -User-Agent: curl/7.12.3-CVS (i686-pc-linux-gnu) libcurl/7.12.3-CVS OpenSSL/0.9.6b zlib/1.1.4 -Host: test.remote.server.com:265 -Accept: */* -Content-Length: 6 -Content-Type: application/x-www-form-urlencoded - -postit -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test266 b/Utilities/cmcurl-7.19.0/tests/data/test266 deleted file mode 100644 index 39103b6..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test266 +++ /dev/null @@ -1,78 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -chunked Transfer-Encoding -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 200 funky chunky! -Server: fakeit/0.9 fakeitbad/1.0 -Transfer-Encoding: chunked -Trailer: chunky-trailer -Connection: mooo - -40 -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -30 -bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -21;heresatest=moooo -cccccccccccccccccccccccccccccccc - -0 -chunky-trailer: header data - -</data> -<datacheck> -HTTP/1.1 200 funky chunky! -Server: fakeit/0.9 fakeitbad/1.0 -Transfer-Encoding: chunked -Trailer: chunky-trailer -Connection: mooo - -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccccccccc -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET with chunked Transfer-Encoding and chunked trailer - </name> - <command> -http://%HOSTIP:%HTTPPORT/266 -D log/heads266 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /266 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -<file name="log/heads266"> -HTTP/1.1 200 funky chunky! -Server: fakeit/0.9 fakeitbad/1.0 -Transfer-Encoding: chunked -Trailer: chunky-trailer -Connection: mooo - -chunky-trailer: header data -</file> -</verify> - -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test267 b/Utilities/cmcurl-7.19.0/tests/data/test267 deleted file mode 100644 index 52a2254..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test267 +++ /dev/null @@ -1,105 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP POST -HTTP NTLM auth -</keywords> -</info> -# Server-side -<reply> - -<!-- no <data> in this test since we have NTLM from the start - -This is supposed to be returned when the server gets a first -Authorization: NTLM line passed-in from the client --> - -<data1001> -HTTP/1.1 401 Now gimme that second request of crap -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 34 -WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -This is not the real page either! -</data1001> - -# This is supposed to be returned when the server gets the second -# Authorization: NTLM line passed-in from the client -<data1002> -HTTP/1.1 200 Things are fine in server land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 32 - -Finally, this is the real page! -</data1002> - -<datacheck> -HTTP/1.1 401 Now gimme that second request of crap -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 34 -WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -HTTP/1.1 200 Things are fine in server land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 32 - -Finally, this is the real page! -</datacheck> - -</reply> - -# Client-side -<client> -<features> -NTLM -</features> -<server> -http -</server> - <name> -HTTP POST with NTLM authorization and added custom headers - </name> - <command> -http://%HOSTIP:%HTTPPORT/267 -u testuser:testpass --ntlm -d "data" -H "Header1: yes" -H "Header2: no" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -# We strip off a large chunk of the type-2 NTLM message since it depends on -# the local host name and thus differs on different machines! -<strippart> -s/^(Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAA).*/$1/ -</strippart> -<protocol nonewline="yes"> -POST /267 HTTP/1.1 -Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= -User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Header1: yes -Header2: no -Content-Length: 0 -Content-Type: application/x-www-form-urlencoded - -POST /267 HTTP/1.1 -Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAA -User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Header1: yes -Header2: no -Content-Length: 4 -Content-Type: application/x-www-form-urlencoded - -data -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test268 b/Utilities/cmcurl-7.19.0/tests/data/test268 deleted file mode 100644 index 998664c..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test268 +++ /dev/null @@ -1,57 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP POST -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.0 200 OK -Server: test-server/fake -Content-Type: text/html -Content-Length: 0 - -this is data even though Content-Length is set to zero -</data> -<datacheck> -HTTP/1.0 200 OK -Server: test-server/fake -Content-Type: text/html -Content-Length: 0 - -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP POST a non-existing file - </name> - <command> - -d @nonesuchfile http://%HOSTIP:%HTTPPORT/268 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -POST /268 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 0 -Content-Type: application/x-www-form-urlencoded - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test269 b/Utilities/cmcurl-7.19.0/tests/data/test269 deleted file mode 100644 index 8a248ec..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test269 +++ /dev/null @@ -1,53 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -</keywords> -</info> - -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Accept-Ranges: bytes -Content-Length: 677654 -Connection: close -Content-Type: text/html -Funny-head: yesyes - -muahahaha -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP --ignore-content-length - </name> - <command> -http://%HOSTIP:%HTTPPORT/269 --ignore-content-length -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /269 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test27 b/Utilities/cmcurl-7.19.0/tests/data/test27 deleted file mode 100644 index 0b39ecc..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test27 +++ /dev/null @@ -1,56 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -cookies -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 200 Mooo swsclose -Connection: close -Set-Cookie: path=/; thewinneris=nowayyouwin; -Content-Length: 8 - -*flopp* -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -Get same cookie page several times - </name> - <command> -"http://%HOSTIP:%HTTPPORT/want/{27,27,27}" -b none -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl.* -</strip> -<protocol> -GET /want/27 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /want/27 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Cookie: thewinneris=nowayyouwin - -GET /want/27 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Cookie: thewinneris=nowayyouwin - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test270 b/Utilities/cmcurl-7.19.0/tests/data/test270 deleted file mode 100644 index 78bef49..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test270 +++ /dev/null @@ -1,50 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -RETR -</keywords> -</info> -# Server-side -<reply> -<data> -data - to - see -that FTP -works - so does it? -</data> -<servercmd> -PASVBADIP -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP RETR PASV --ftp-skip-pasv-ip - </name> - <command> -ftp://%HOSTIP:%FTPPORT/270 --ftp-skip-pasv-ip --disable-epsv -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -PASV -TYPE I -SIZE 270 -RETR 270 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test271 b/Utilities/cmcurl-7.19.0/tests/data/test271 deleted file mode 100644 index af5a6c6..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test271 +++ /dev/null @@ -1,43 +0,0 @@ -<testcase> -<info> -<keywords> -TFTP -TFTP RRQ -</keywords> -</info> - -# -# Server-side -<reply> -<data> -a chunk of -data -returned - to client -</data> -</reply> - -# -# Client-side -<client> -<server> -tftp -</server> - <name> -TFTP retrieve - </name> - <command> -tftp://%HOSTIP:%TFTPPORT//271 --trace-ascii log/traceit -</command> -</client> - -# -# Verify pseudo protocol after the test has been "shot" -<verify> -<protocol> -opcode: 1 -filename: /271 -mode: octet -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test272 b/Utilities/cmcurl-7.19.0/tests/data/test272 deleted file mode 100644 index cf6e7da..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test272 +++ /dev/null @@ -1,40 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -RETR -</keywords> -</info> -# Server-side -<reply> -<mdtm> -213 20040101121212 -</mdtm> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP timed conditioned get file with identical time stamp - </name> - <command> -ftp://%HOSTIP:%FTPPORT/272 -z "2004 jan 1 12:12:12 UTC" -</command> - -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -MDTM 272 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test273 b/Utilities/cmcurl-7.19.0/tests/data/test273 deleted file mode 100644 index 7ae6d17..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test273 +++ /dev/null @@ -1,83 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP Digest auth -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 401 Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Digest realm="testrealm", nonce="1053604145" -WWW-Authenticate: Digest realm="testrealm", nonce="1053604145" -Content-Type: text/html; charset=iso-8859-1 - -This is not the real page -</data> - -# This is supposed to be returned when the server gets a -# Authorization: Digest line passed-in from the client -<data1000> -HTTP/1.1 200 OK swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 23 - -This IS the real page! -</data1000> - -<datacheck> -HTTP/1.1 401 Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Digest realm="testrealm", nonce="1053604145" -WWW-Authenticate: Digest realm="testrealm", nonce="1053604145" -Content-Type: text/html; charset=iso-8859-1 - -HTTP/1.1 200 OK swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 23 - -This IS the real page! -</datacheck> - -</reply> - -# Client-side -<client> -<server> -http -</server> -<features> -crypto -</features> - <name> -HTTP with two Digest authorization headers - </name> - <command> -http://%HOSTIP:%HTTPPORT/273 -u testuser:testpass --digest -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /273 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /273 HTTP/1.1 -Authorization: Digest username="testuser", realm="testrealm", nonce="1053604145", uri="/273", response="576ae57b1db0039f8c0de43ef58e49e3" -User-Agent: curl/7.10.5 (i686-pc-linux-gnu) libcurl/7.10.5 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test274 b/Utilities/cmcurl-7.19.0/tests/data/test274 deleted file mode 100644 index 95bbdb6..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test274 +++ /dev/null @@ -1,52 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -followlocation ---max-redirs -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 301 This is a weirdo text message swsclose -Server: test-server/fake -Location: data/reply/25 -Content-Length: 0 -Connection: close - -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP Location: following with --max-redirs 0 - </name> - <command> -http://%HOSTIP:%HTTPPORT/want/274 -L --max-redirs 0 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -<protocol> -GET /want/274 HTTP/1.1 -User-Agent: curl/7.8.1-pre3 (sparc-sun-solaris2.7) libcurl 7.8.1-pre3 (OpenSSL 0.9.6a) (krb4 enabled) -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> - -<errorcode> -47 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test275 b/Utilities/cmcurl-7.19.0/tests/data/test275 deleted file mode 100644 index 82d0b0d..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test275 +++ /dev/null @@ -1,75 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP CONNECT -HTTP Basic auth -HTTP proxy Basic auth -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Type: text/html -Content-Length: 9 - -contents -</data> -<datacheck> -HTTP/1.1 200 Mighty fine indeed - -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Type: text/html -Content-Length: 9 - -contents -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP CONNECT with proxytunnel getting two URLs from the same host - </name> - <command> -http://remotesite.com/we/want/that/page/275 -p -x %HOSTIP:%HTTPPORT --user iam:myself --proxy-user youare:yourself http://remotesite.com/we/want/that/page/275 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -CONNECT remotesite.com:80 HTTP/1.0 -Host: remotesite.com:80 -Proxy-Authorization: Basic eW91YXJlOnlvdXJzZWxm -User-Agent: curl/7.10.7-pre2 (i686-pc-linux-gnu) libcurl/7.10.7-pre2 OpenSSL/0.9.7a zlib/1.1.3 -Proxy-Connection: Keep-Alive - -GET /we/want/that/page/275 HTTP/1.1 -Authorization: Basic aWFtOm15c2VsZg== -Host: remotesite.com -Accept: */* - -GET /we/want/that/page/275 HTTP/1.1 -Authorization: Basic aWFtOm15c2VsZg== -Host: remotesite.com -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test276 b/Utilities/cmcurl-7.19.0/tests/data/test276 deleted file mode 100644 index 7d7f743..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test276 +++ /dev/null @@ -1,76 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -followlocation -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 301 This is a weirdo text message swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: data/2760002.txt?coolsite=http://anotherurl/?a_second/2760002 -Connection: close - -This server reply is for testing a simple Location: following - -</data> -<data2> -HTTP/1.1 200 Followed here fine swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 52 - -If this is received, the location following worked - -</data2> -<datacheck> -HTTP/1.1 301 This is a weirdo text message swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: data/2760002.txt?coolsite=http://anotherurl/?a_second/2760002 -Connection: close - -HTTP/1.1 200 Followed here fine swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 52 - -If this is received, the location following worked - -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP Location: following with multiple question marks in URLs - </name> - <command> -"http://%HOSTIP:%HTTPPORT/want?uri=http://anything/276?secondq/276" -L -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /want?uri=http://anything/276?secondq/276 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /data/2760002.txt?coolsite=http://anotherurl/?a_second/2760002 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test277 b/Utilities/cmcurl-7.19.0/tests/data/test277 deleted file mode 100644 index b834032..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test277 +++ /dev/null @@ -1,59 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP FORMPOST -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 11 - -blablabla - -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP RFC1867-type formposting with custom Content-Type - </name> - <command> -http://%HOSTIP:%HTTPPORT/want/277 -F name=daniel -H "Content-Type: text/info" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<strippart> -s/^------------------------------[a-z0-9]*/------------------------------/ -s/boundary=----------------------------[a-z0-9]*/boundary=----------------------------/ -</strippart> -<protocol> -POST /want/277 HTTP/1.1 -User-Agent: curl/7.10.4 (i686-pc-linux-gnu) libcurl/7.10.4 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 145 -Expect: 100-continue -Content-Type: text/info; boundary=---------------------------- - ------------------------------- -Content-Disposition: form-data; name="name" - -daniel --------------------------------- -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test278 b/Utilities/cmcurl-7.19.0/tests/data/test278 deleted file mode 100644 index ca3d456..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test278 +++ /dev/null @@ -1,50 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP proxy -HTTP proxy Basic auth -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Type: text/html -Content-Length: 27 - -the content would go here -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP with proxy string including http:// and user+empty password - </name> - <command> -http://we.want.that.site.com/278 -x http://f%61ke:@%HOSTIP:%HTTPPORT -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET http://we.want.that.site.com/278 HTTP/1.1 -Proxy-Authorization: Basic ZmFrZTo= -Host: we.want.that.site.com -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test279 b/Utilities/cmcurl-7.19.0/tests/data/test279 deleted file mode 100644 index 89599e0..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test279 +++ /dev/null @@ -1,51 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP proxy -HTTP proxy Basic auth -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Type: text/html -Content-Length: 27 - -the content would go here -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP with proxy string including http:// and user only - </name> - <command> -http://we.want.that.site.com/279 -x http://f%61ke@%HOSTIP:%HTTPPORT -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET http://we.want.that.site.com/279 HTTP/1.1 -Proxy-Authorization: Basic ZmFrZTo= -Host: we.want.that.site.com -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test28 b/Utilities/cmcurl-7.19.0/tests/data/test28 deleted file mode 100644 index 43e4391..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test28 +++ /dev/null @@ -1,75 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 301 This is a weirdo text message swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: /online/1,1795,Welcome,00.html/280002.txt?logout=TRUE -Connection: close - -This server reply is for testing a simple Location: following - -</data> -<data2> -HTTP/1.1 200 Followed here fine swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 52 - -If this is received, the location following worked - -</data2> -<datacheck> -HTTP/1.1 301 This is a weirdo text message swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: /online/1,1795,Welcome,00.html/280002.txt?logout=TRUE -Connection: close - -HTTP/1.1 200 Followed here fine swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 52 - -If this is received, the location following worked - -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP Location: following with extra spaces in header - </name> - <command> -http://%HOSTIP:%HTTPPORT/want/28 -L -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /want/28 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /online/1,1795,Welcome,00.html/280002.txt?logout=TRUE HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test280 b/Utilities/cmcurl-7.19.0/tests/data/test280 deleted file mode 100644 index bb5ac85..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test280 +++ /dev/null @@ -1,63 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -LIST ---ftp-alternative-to-user -</keywords> -</info> -# -# Server-side -<reply> -# When doing LIST, we get the default list output hard-coded in the test -# FTP server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -<servercmd> -REPLY USER 530 We don't like USER commands -COUNT USER 1 -</servercmd> -</reply> - -# -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP --ftp-alternative-to-user on USER failure - </name> - <command> -ftp://%HOSTIP:%FTPPORT/280/ --ftp-alternative-to-user "USER replacement" -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -USER replacement -PASS ftp@example.com -PWD -CWD 280 -EPSV -TYPE A -LIST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test281 b/Utilities/cmcurl-7.19.0/tests/data/test281 deleted file mode 100644 index b585645..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test281 +++ /dev/null @@ -1,65 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP PUT -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 100 Continue - -HTTP/1.1 401 Bad Auth swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -WWW-Authenticate: Basic Realm=authenticate -Server: test-server/fake -</data> -<datacheck> -HTTP/1.1 100 Continue - -</datacheck> - -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP PUT from file with 100 + 401 responses and -f without auth given - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/want/281 -f -T log/test281.txt -</command> -<file name="log/test281.txt"> -Weird - file - to - upload -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -22 -</errorcode> -<strip> -^User-Agent:.* -</strip> -<protocol> -PUT /we/want/281 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 38 -Expect: 100-continue - -Weird - file - to - upload -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test282 b/Utilities/cmcurl-7.19.0/tests/data/test282 deleted file mode 100644 index b42e033..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test282 +++ /dev/null @@ -1,45 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -</keywords> -</info> - -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK swsclose - -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET with no response body or headers - </name> - <command> -http://%HOSTIP:%HTTPPORT/282 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /282 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test283 b/Utilities/cmcurl-7.19.0/tests/data/test283 deleted file mode 100644 index 922de51..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test283 +++ /dev/null @@ -1,36 +0,0 @@ -<testcase> -<info> -<keywords> -TFTP -TFTP RRQ -FAILURE -</keywords> -</info> - -# -# Client-side -<client> -<server> -tftp -</server> - <name> -TFTP retrieve on invalid file - </name> - <command> -tftp://%HOSTIP:%TFTPPORT//invalid-file --trace-ascii log/traceit -</command> -</client> - -# -# Verify pseudo protocol after the test has been "shot" -<verify> -<errorcode> -69 -</errorcode> -<protocol> -opcode: 1 -filename: /invalid-file -mode: octet -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test284 b/Utilities/cmcurl-7.19.0/tests/data/test284 deleted file mode 100644 index 0c2a665..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test284 +++ /dev/null @@ -1,67 +0,0 @@ -<testcase> -<info> -<keywords> -TFTP -TFTP RRQ -</keywords> -</info> - -# -# Server-side -<reply> -<data> -A chunk of data which exactly fits into -a 512 byte TFTP block, testing a boundary -condition in the TFTP receive code. -789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -</data> -</reply> - -# -# Client-side -<client> -<server> -tftp -</server> - <name> -TFTP retrieve of boundary case 512 byte file - </name> - <command> -tftp://%HOSTIP:%TFTPPORT//284 --trace-ascii log/traceit -</command> -</client> - -# -# Verify pseudo protocol after the test has been "shot" -<verify> -<protocol> -opcode: 1 -filename: /284 -mode: octet -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test285 b/Utilities/cmcurl-7.19.0/tests/data/test285 deleted file mode 100644 index 75a1999..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test285 +++ /dev/null @@ -1,44 +0,0 @@ -<testcase> -<info> -<keywords> -TFTP -TFTP WRQ -</keywords> -</info> - -# -# Client-side -<client> -<server> -tftp -</server> - <name> -TFTP send - </name> - <command> --T log/test285.txt tftp://%HOSTIP:%TFTPPORT// --trace-ascii log/traceit -</command> -<file name="log/test285.txt"> -a chunk of -data -sent - to server -</file> -</client> - -# -# Verify pseudo protocol after the test has been "shot" -<verify> -<upload> -a chunk of -data -sent - to server -</upload> -<protocol> -opcode: 2 -filename: /test285.txt -mode: octet -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test286 b/Utilities/cmcurl-7.19.0/tests/data/test286 deleted file mode 100644 index 841ee1e..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test286 +++ /dev/null @@ -1,92 +0,0 @@ -<testcase> -<info> -<keywords> -TFTP -TFTP WRQ -</keywords> -</info> - -# -# Client-side -<client> -<server> -tftp -</server> - <name> -TFTP send of boundary case 512 byte file - </name> - <command> --T log/test286.txt tftp://%HOSTIP:%TFTPPORT// --trace-ascii log/traceit -</command> -<file name="log/test286.txt"> -A chunk of data which exactly fits into -a 512 byte TFTP block, testing a boundary -condition in the TFTP transmit code. -89ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -</file> -</client> - -# -# Verify pseudo protocol after the test has been "shot" -<verify> -<upload> -A chunk of data which exactly fits into -a 512 byte TFTP block, testing a boundary -condition in the TFTP transmit code. -89ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -123456789ABCDEF -</upload> -<protocol> -opcode: 2 -filename: /test286.txt -mode: octet -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test287 b/Utilities/cmcurl-7.19.0/tests/data/test287 deleted file mode 100644 index db9e043..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test287 +++ /dev/null @@ -1,54 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP CONNECT -HTTP proxy -proxytunnel -</keywords> -</info> - -# Server-side -<reply> - -# this is returned first since we get no proxy-auth -<data nocheck="1"> -HTTP/1.1 405 Method Not Allowed swsclose - -And you should ignore this data. -</data> - -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP proxy CONNECT with custom User-Agent header - </name> - <command> -http://test.remote.server.com:287/path/287 -H "User-Agent: looser/2007" --proxy http://%HOSTIP:%HTTPPORT --proxytunnel -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -CONNECT test.remote.server.com:287 HTTP/1.0 -Host: test.remote.server.com:287 -Proxy-Connection: Keep-Alive -User-Agent: looser/2007 - -</protocol> -# CURLE_RECV_ERROR -<errorcode> -56 -</errorcode> -<stdout> -HTTP/1.1 405 Method Not Allowed swsclose - -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test288 b/Utilities/cmcurl-7.19.0/tests/data/test288 deleted file mode 100644 index da69145..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test288 +++ /dev/null @@ -1,42 +0,0 @@ -<testcase> -# Server-side -<reply> -<data> -foo - bar -bar - foo -moo -</data> -</reply> - -# Client-side -<client> -<server> -none -</server> -<features> -file -</features> - <name> -file:// with (unsupported) proxy, authentication and range - </name> -<setenv> -all_proxy=http://fake:user@%HOSTIP:%HTTPPORT/ -</setenv> - <command> -file://localhost/%PWD/log/test288.txt -</command> -<file name="log/test288.txt"> -foo - bar -bar - foo -moo -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test289 b/Utilities/cmcurl-7.19.0/tests/data/test289 deleted file mode 100644 index 2720e2e..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test289 +++ /dev/null @@ -1,30 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -STOR -Resume -FAILURE -</keywords> -</info> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP resume upload but denied access to local file - </name> - <command> -ftp://%HOSTIP:%FTPPORT/289 -T log/illegal-nonexistent-file -C - -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -26 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test29 b/Utilities/cmcurl-7.19.0/tests/data/test29 deleted file mode 100644 index 560a2a9..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test29 +++ /dev/null @@ -1,52 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -timeout -FAILURE -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -_data_result_data_ -</data> -<postcmd> -wait 10 -</postcmd> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP with 2 secs timeout - </name> - <command> -http://%HOSTIP:%HTTPPORT/want/29 -m 2 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /want/29 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -<errorcode> -28 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test290 b/Utilities/cmcurl-7.19.0/tests/data/test290 deleted file mode 100644 index 34a9635..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test290 +++ /dev/null @@ -1,43 +0,0 @@ -<testcase> -<info> -<keywords> -FTP ---max-filesize -</keywords> -</info> -# Server-side -<reply> -<size> -85 -</size> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP download maximum filesize exceeded - </name> - <command> -ftp://%HOSTIP:%FTPPORT/290 --max-filesize 30 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -63 -</errorcode> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE I -SIZE 290 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test291 b/Utilities/cmcurl-7.19.0/tests/data/test291 deleted file mode 100644 index e1156c1..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test291 +++ /dev/null @@ -1,47 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -RETR ---max-filesize -</keywords> -</info> -# Server-side -<reply> -<data> -data - to - see -that FTP -works - so does it? -</data> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP download maximum filesize not exceeded - </name> - <command> -ftp://%HOSTIP:%FTPPORT/291 --max-filesize 100 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE I -SIZE 291 -RETR 291 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test292 b/Utilities/cmcurl-7.19.0/tests/data/test292 deleted file mode 100644 index 011e29a..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test292 +++ /dev/null @@ -1,56 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET ---max-filesize -</keywords> -</info> - -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 -Connection: close -Content-Type: text/html -Funny-head: yesyes - --foo- -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET with maximum filesize not exceeded - </name> - <command> -http://%HOSTIP:%HTTPPORT/292 --max-filesize 1000 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /292 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test293 b/Utilities/cmcurl-7.19.0/tests/data/test293 deleted file mode 100644 index 9b79944..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test293 +++ /dev/null @@ -1,60 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET ---max-filesize -FAILURE -</keywords> -</info> - -# -# Server-side -<reply> -<data nocheck="1"> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 -Connection: close -Content-Type: text/html -Funny-head: yesyes - --foo- -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET with maximum filesize exceeded - </name> - <command> -http://%HOSTIP:%HTTPPORT/293 --max-filesize 2 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<errorcode> -63 -</errorcode> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /293 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test294 b/Utilities/cmcurl-7.19.0/tests/data/test294 deleted file mode 100644 index 104b7d7..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test294 +++ /dev/null @@ -1,64 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -LIST -ACCT ---ftp-account -</keywords> -</info> -# -# Server-side -<reply> -# When doing LIST, we get the default list output hard-coded in the test -# FTP server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -<servercmd> -REPLY PASS 332 Give me an ACCT now -REPLY ACCT 230 Thank-you for the ACCT -</servercmd> -</reply> - -# -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP --ftp-account on ACCT request - </name> - <command> -ftp://%HOSTIP:%FTPPORT/294/ --ftp-account "data for acct" -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -ACCT data for acct -PWD -CWD 294 -EPSV -TYPE A -LIST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test295 b/Utilities/cmcurl-7.19.0/tests/data/test295 deleted file mode 100644 index 2d7cf79..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test295 +++ /dev/null @@ -1,45 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -LIST -ACCT -FAILURE -</keywords> -</info> -# -# Server-side -<reply> -<servercmd> -REPLY PASS 332 Give me an ACCT now -REPLY PWD 530 No ACCT, go away -</servercmd> -</reply> - -# -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP ACCT request without --ftp-account - </name> - <command> -ftp://%HOSTIP:%FTPPORT/295/ -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<errorcode> -67 -</errorcode> -<protocol> -USER anonymous -PASS ftp@example.com -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test296 b/Utilities/cmcurl-7.19.0/tests/data/test296 deleted file mode 100644 index 4d895e9..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test296 +++ /dev/null @@ -1,48 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -CWD ---ftp-method -multicwd -</keywords> -</info> -# -# Server-side -<reply> -<data> -bla bla bla -</data> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP CWD with --ftp-method multicwd - </name> - <command> ---ftp-method multicwd ftp://%HOSTIP:%FTPPORT/first/second/third/296 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD first -CWD second -CWD third -EPSV -TYPE I -SIZE 296 -RETR 296 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test297 b/Utilities/cmcurl-7.19.0/tests/data/test297 deleted file mode 100644 index 3cfb9b5..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test297 +++ /dev/null @@ -1,46 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -CWD ---ftp-method -singlecwd -</keywords> -</info> -# -# Server-side -<reply> -<data> -bla bla bla -</data> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP CWD with --ftp-method singlecwd - </name> - <command> ---ftp-method singlecwd ftp://%HOSTIP:%FTPPORT/first/second/third/297 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD first/second/third -EPSV -TYPE I -SIZE 297 -RETR 297 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test298 b/Utilities/cmcurl-7.19.0/tests/data/test298 deleted file mode 100644 index fa706c1..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test298 +++ /dev/null @@ -1,45 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -CWD ---ftp-method -nocwd -</keywords> -</info> -# -# Server-side -<reply> -<data> -bla bla bla -</data> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP CWD with --ftp-method nocwd - </name> - <command> ---ftp-method nocwd ftp://%HOSTIP:%FTPPORT/first/second/third/298 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE I -SIZE first/second/third/298 -RETR first/second/third/298 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test3 b/Utilities/cmcurl-7.19.0/tests/data/test3 deleted file mode 100644 index 57a40ed..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test3 +++ /dev/null @@ -1,60 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP POST -HTTP Basic auth -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.0 200 OK -Server: test-server/fake -Content-Type: text/html -Content-Length: 0 - -this is data even though Content-Length is set to zero -</data> -<datacheck> -HTTP/1.0 200 OK -Server: test-server/fake -Content-Type: text/html -Content-Length: 0 - -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP POST with auth and contents but with content-length set to 0 - </name> - <command> - -d "fooo=mooo&pooo=clue&doo=%20%20%20++++" -u "fake:-user" http://%HOSTIP:%HTTPPORT/3 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol nonewline="yes"> -POST /3 HTTP/1.1 -Authorization: Basic ZmFrZTotdXNlcg== -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 37 -Content-Type: application/x-www-form-urlencoded - -fooo=mooo&pooo=clue&doo=%20%20%20++++ -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test30 b/Utilities/cmcurl-7.19.0/tests/data/test30 deleted file mode 100644 index 38b7256..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test30 +++ /dev/null @@ -1,43 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -FAILURE -</keywords> -</info> -# Server-side -<reply> -<data> -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP with no data in server reply - </name> - <command> -http://%HOSTIP:%HTTPPORT/want/30 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /want/30 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -<errorcode> -52 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test300 b/Utilities/cmcurl-7.19.0/tests/data/test300 deleted file mode 100644 index 3b1dbc5..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test300 +++ /dev/null @@ -1,52 +0,0 @@ -<testcase> -<info> -<keywords> -HTTPS -HTTP GET -</keywords> -</info> - -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 7 - -MooMoo -</data> -</reply> - -# -# Client-side -<client> -<features> -SSL -</features> -<server> -https -</server> - <name> -simple HTTPS GET - </name> - <command> --k https://%HOSTIP:%HTTPSPORT/300 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /300 HTTP/1.1 -Host: %HOSTIP:%HTTPSPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test301 b/Utilities/cmcurl-7.19.0/tests/data/test301 deleted file mode 100644 index f8ce2ce..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test301 +++ /dev/null @@ -1,57 +0,0 @@ -<testcase> -<info> -<keywords> -HTTPS -HTTP GET -HTTP Basic auth -</keywords> -</info> - -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Type: text/html -Funny-head: yesyes - -</data> -</reply> - -# -# Client-side -<client> -<features> -SSL -</features> -<server> -https -</server> - <name> -HTTPS GET with user and password - </name> - <command> --k -u fake:user https://%HOSTIP:%HTTPSPORT/301 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /301 HTTP/1.1 -Authorization: Basic ZmFrZTp1c2Vy -Host: %HOSTIP:%HTTPSPORT -Accept: */* - -</protocol> -<data> -[insert full protocol verifiction dump here] -</data> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test302 b/Utilities/cmcurl-7.19.0/tests/data/test302 deleted file mode 100644 index 1223f1c..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test302 +++ /dev/null @@ -1,40 +0,0 @@ -<testcase> -<info> -<keywords> -HTTPS -HTTP GET -HTTP CONNECT -HTTP proxy -FAILURE -</keywords> -</info> - -# Client-side -<client> -<features> -SSL -</features> -<server> -https -</server> - <name> -HTTPS GET over HTTP proxy fails - </name> - <command> --k -U fake:user -x %HOSTIP:%HTTPPORT https://bad.fakeurl-to.test/slash/302 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<errorcode> -56 -</errorcode> -<strip> -^User-Agent:.* -</strip> -<data> -</data> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test303 b/Utilities/cmcurl-7.19.0/tests/data/test303 deleted file mode 100644 index e2a22c7..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test303 +++ /dev/null @@ -1,55 +0,0 @@ -<testcase> -<info> -<keywords> -HTTPS -HTTP GET -timeout -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -_data_result_data_ -</data> -<postcmd> -wait 20 -</postcmd> -</reply> - -# Client-side -<client> -<features> -SSL -</features> -<server> -https -</server> - <name> -HTTPS with 7 secs timeout - </name> - <command> --k https://%HOSTIP:%HTTPSPORT/want/303 -m 7 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /want/303 HTTP/1.1 -Host: %HOSTIP:%HTTPSPORT -Accept: */* - -</protocol> -<errorcode> -28 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test304 b/Utilities/cmcurl-7.19.0/tests/data/test304 deleted file mode 100644 index 2c81527..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test304 +++ /dev/null @@ -1,72 +0,0 @@ -<testcase> -<info> -<keywords> -HTTPS -HTTP POST -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 10 - -blablabla -</data> -</reply> - -# Client-side -<client> -<features> -SSL -</features> -<server> -https -</server> - <name> -HTTPS multipart formpost - </name> - <command> --k https://%HOSTIP:%HTTPSPORT/we/want/304 -F name=daniel -F tool=curl -F file=@log/test304.txt -</command> -# We create this file before the command is invoked! -<file name="log/test304.txt"> -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^(User-Agent:|Content-Type: multipart/form-data;|------).* -</strip> -<protocol> -POST /we/want/304 HTTP/1.1 -User-Agent: curl/7.10.4 (i686-pc-linux-gnu) libcurl/7.10.4 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPSPORT -Accept: */* -Content-Length: 1386 -Expect: 100-continue -Content-Type: multipart/form-data; boundary=----------------------------c3b2ef7f0bb8 - -------------------------------c3b2ef7f0bb8 -Content-Disposition: form-data; name="name" - -daniel -------------------------------c3b2ef7f0bb8 -Content-Disposition: form-data; name="tool" - -curl -------------------------------c3b2ef7f0bb8 -Content-Disposition: form-data; name="file"; filename="test304.txt" -Content-Type: text/plain - -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - -------------------------------c3b2ef7f0bb8-- -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test305 b/Utilities/cmcurl-7.19.0/tests/data/test305 deleted file mode 100644 index 858a004..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test305 +++ /dev/null @@ -1,35 +0,0 @@ -<testcase> -<info> -<keywords> -HTTPS -HTTP GET -FAILURE -</keywords> -</info> - -# Client-side -<client> -<features> -SSL -</features> -<server> -https -</server> - <name> -insecure HTTPS without permission - </name> - <command> -https://%HOSTIP:%HTTPSPORT/want/305 --cacert moooo -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<errorcode> -77 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test306 b/Utilities/cmcurl-7.19.0/tests/data/test306 deleted file mode 100644 index 0295778..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test306 +++ /dev/null @@ -1,65 +0,0 @@ -<testcase> -<info> -<keywords> -HTTPS -HTTP GET -</keywords> -</info> - -# -# Server-side -<reply> -<data> -No headers at all, just data swsclose - -Let's get - -a little - -so that - -we - -have - -some - -test - -data to - -verify -</data> -</reply> - -# -# Client-side -<client> -<features> -SSL -</features> -<server> -https -</server> - <name> -HTTPS GET, receive no headers only data! - </name> - <command> --k https://%HOSTIP:%HTTPSPORT/306 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /306 HTTP/1.1 -Host: %HOSTIP:%HTTPSPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test307 b/Utilities/cmcurl-7.19.0/tests/data/test307 deleted file mode 100644 index 3e74034..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test307 +++ /dev/null @@ -1,56 +0,0 @@ -<testcase> -<info> -<keywords> -HTTPS -HTTP GET -</keywords> -</info> - -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Tue, 16 Jan 2007 18:00:14 GMT -Server: test-server/fake -Content-Length: 7 - -MooMoo -</data> -</reply> - -# -# Client-side -<client> -<features> -OpenSSL -</features> -<server> -https -</server> -<precheck> -perl %SRCDIR/libtest/test307.pl %CURL -</precheck> - - <name> -simple HTTPS GET with openssl engine - </name> - <command> ---engine openssl -k https://%HOSTIP:%HTTPSPORT/307 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /307 HTTP/1.1 -Host: %HOSTIP:%HTTPSPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test308 b/Utilities/cmcurl-7.19.0/tests/data/test308 deleted file mode 100644 index d20556a..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test308 +++ /dev/null @@ -1,34 +0,0 @@ -<testcase> -<info> -<keywords> -HTTPS -HTTP GET -FAILURE -</keywords> -</info> - -# -# Client-side -<client> -<features> -OpenSSL -</features> -<server> -https -</server> - <name> -simple HTTPS GET with invalid crypto engine - </name> - <command> ---engine invalid-crypto-engine-xyzzy -k https://%HOSTIP:%HTTPSPORT/308 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<errorcode> -53 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test309 b/Utilities/cmcurl-7.19.0/tests/data/test309 deleted file mode 100644 index c702c7b..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test309 +++ /dev/null @@ -1,86 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTPS -HTTP GET -followlocation -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 301 This is a weirdo text message swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: https://127.0.0.1:8991/data/3090002.txt?coolsite=yes -Connection: close - -This server reply is for testing a simple Location: following to HTTPS URL - -</data> -<data2> -HTTP/1.1 200 Followed here fine swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 52 - -If this is received, the location following worked - -</data2> -<datacheck> -HTTP/1.1 301 This is a weirdo text message swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: https://127.0.0.1:8991/data/3090002.txt?coolsite=yes -Connection: close - -HTTP/1.1 200 Followed here fine swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 52 - -If this is received, the location following worked - -</datacheck> -</reply> - -# Client-side -<client> -<features> -SSL -</features> -<server> -http -https -</server> - <name> -HTTP Location: redirect to HTTPS URL - </name> - <command> --k http://%HOSTIP:%HTTPPORT/want/309 -L -</command> -# The data section doesn't do variable substitution, so we must assert this -<precheck> -perl -e "print 'Test requires default test server host and port' if ( '%HOSTIP' ne '127.0.0.1' || '%HTTPSPORT' ne '8991' );" -</precheck> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /want/309 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /data/3090002.txt?coolsite=yes HTTP/1.1 -Host: %HOSTIP:%HTTPSPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test31 b/Utilities/cmcurl-7.19.0/tests/data/test31 deleted file mode 100644 index 56cdf66..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test31 +++ /dev/null @@ -1,76 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -cookies -cookiejar -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 4 -Content-Type: text/html -Funny-head: yesyes -Set-Cookie: foobar=name; domain=anything.com; path=/ ; secure -Set-Cookie:ismatch=this ; domain=127.0.0.1; path=/silly/ -Set-Cookie: partmatch=present; domain=127.0.0.1 ; path=/; -Set-Cookie:eat=this; domain=moo.foo.moo; -Set-Cookie: eat=this-too; domain=.foo.moo; -Set-Cookie: nodomainnovalue -Set-Cookie: nodomain=value; expires=Fri Feb 2 11:56:27 GMT 2035 -Set-Cookie: novalue; domain=reallysilly -Set-Cookie: test=yes; domain=foo.com; expires=Sat Feb 2 11:56:27 GMT 2030 -Set-Cookie: test2=yes; domain=se; expires=Sat Feb 2 11:56:27 GMT 2030 -Set-Cookie: magic=yessir; path=/silly/; HttpOnly - -boo -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP with weirdly formatted cookies and cookiejar storage - </name> -# Explicitly set the time zone to a known good one, in case the user is -# using one of the 'right' zones that take into account leap seconds -# which causes the cookie expiry times to be different. -<setenv> -TZ=GMT -</setenv> - <command> -http://%HOSTIP:%HTTPPORT/we/want/31 -b none -c log/jar31.txt -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /we/want/31 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -<file name="log/jar31.txt" mode="text"> -# Netscape HTTP Cookie File -# http://curl.haxx.se/rfc/cookie_spec.html -# This file was generated by libcurl! Edit at your own risk. - -.127.0.0.1 TRUE /silly/ FALSE 0 ismatch this -.127.0.0.1 TRUE / FALSE 0 partmatch present -127.0.0.1 FALSE /we/want/ FALSE 2054030187 nodomain value -#HttpOnly_127.0.0.1 FALSE /silly/ FALSE 0 magic yessir -</file> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test32 b/Utilities/cmcurl-7.19.0/tests/data/test32 deleted file mode 100644 index 0895535..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test32 +++ /dev/null @@ -1,56 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET --G -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 -Connection: close -Content-Type: text/html -Funny-head: yesyes - --foo- -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP with -d and -G - </name> - <command> --d "foo=moo&moo=poo" http://%HOSTIP:%HTTPPORT/32 -G -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /32?foo=moo&moo=poo HTTP/1.1 -User-Agent: curl/7.9.5 (i686-pc-linux-gnu) libcurl 7.9.5-cvs (OpenSSL 0.9.5) (ipv6 enabled) -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test33 b/Utilities/cmcurl-7.19.0/tests/data/test33 deleted file mode 100644 index 69fb4ff..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test33 +++ /dev/null @@ -1,64 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP PUT -Resume -Content-Range -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 OK swsclose - -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP PUT with resume - </name> -<file name="log/test33.txt"> -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -012345678 -</file> - <command> -http://%HOSTIP:%HTTPPORT/33 -Tlog/test33.txt -C 50 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -PUT /33 HTTP/1.1 -Content-Range: bytes 50-99/100 -User-Agent: curl/7.6 (sparc-sun-solaris2.7) libcurl 7.6-pre4 (SSL 0.9.6) (krb4 enabled) -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 50 -Expect: 100-continue - -012345678 -012345678 -012345678 -012345678 -012345678 -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test34 b/Utilities/cmcurl-7.19.0/tests/data/test34 deleted file mode 100644 index 5631f94..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test34 +++ /dev/null @@ -1,66 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -chunked Transfer-Encoding -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 200 funky chunky! -Server: fakeit/0.9 fakeitbad/1.0 -Transfer-Encoding: chunked -Connection: mooo - -40 -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -30 -bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -21;heresatest=moooo -cccccccccccccccccccccccccccccccc - -0 - -</data> -<datacheck> -HTTP/1.1 200 funky chunky! -Server: fakeit/0.9 fakeitbad/1.0 -Transfer-Encoding: chunked -Connection: mooo - -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccccccccc -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET with chunked Transfer-Encoding - </name> - <command> -http://%HOSTIP:%HTTPPORT/34 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /34 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> - -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test35 b/Utilities/cmcurl-7.19.0/tests/data/test35 Binary files differdeleted file mode 100644 index 24339e8..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test35 +++ /dev/null diff --git a/Utilities/cmcurl-7.19.0/tests/data/test350 b/Utilities/cmcurl-7.19.0/tests/data/test350 deleted file mode 100644 index 8ac303c..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test350 +++ /dev/null @@ -1,57 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -LIST -</keywords> -</info> -# -# Server-side -<reply> -# When doing LIST, we get the default list output hard-coded in the test -# FTP server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP root dir list multicwd - </name> - <command> -ftp://%HOSTIP:%FTPPORT// --ftp-method multicwd -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD / -EPSV -TYPE A -LIST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test351 b/Utilities/cmcurl-7.19.0/tests/data/test351 deleted file mode 100644 index 5b03643..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test351 +++ /dev/null @@ -1,56 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -LIST -</keywords> -</info> -# -# Server-side -<reply> -# When doing LIST, we get the default list output hard-coded in the test -# FTP server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP root dir list nocwd - </name> - <command> -ftp://%HOSTIP:%FTPPORT// --ftp-method nocwd -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE A -LIST / -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test352 b/Utilities/cmcurl-7.19.0/tests/data/test352 deleted file mode 100644 index e920698..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test352 +++ /dev/null @@ -1,57 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -LIST -</keywords> -</info> -# -# Server-side -<reply> -# When doing LIST, we get the default list output hard-coded in the test -# FTP server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP root dir list singlecwd - </name> - <command> -ftp://%HOSTIP:%FTPPORT// --ftp-method singlecwd -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD / -EPSV -TYPE A -LIST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test353 b/Utilities/cmcurl-7.19.0/tests/data/test353 deleted file mode 100644 index b694491..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test353 +++ /dev/null @@ -1,56 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -LIST -</keywords> -</info> -# -# Server-side -<reply> -# When doing LIST, we get the default list output hard-coded in the test -# FTP server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP home dir list singlecwd - </name> - <command> -ftp://%HOSTIP:%FTPPORT/ --ftp-method singlecwd -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE A -LIST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test354 b/Utilities/cmcurl-7.19.0/tests/data/test354 deleted file mode 100644 index 4bd76ba..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test354 +++ /dev/null @@ -1,50 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -RETR -</keywords> -</info> -# Server-side -<reply> -<data> -data - to - see -that FTP -works - so does it? -</data> -<servercmd> -REPLY USER 200 fine, proceed without password -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> - <name> -FTP without password - </name> - <command> -ftp://%HOSTIP:%FTPPORT/354 -</command> - -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PWD -EPSV -TYPE I -SIZE 354 -RETR 354 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test36 b/Utilities/cmcurl-7.19.0/tests/data/test36 deleted file mode 100644 index abf8b00..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test36 +++ /dev/null @@ -1,66 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -chunked Transfer-Encoding -FAILURE -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 200 funky chunky! -Server: fakeit/0.9 fakeitbad/1.0 -Transfer-Encoding: chunked -Connection: mooo - -2 -a - -ILLEGAL -bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -</data> -<datacheck> -HTTP/1.1 200 funky chunky! -Server: fakeit/0.9 fakeitbad/1.0 -Transfer-Encoding: chunked -Connection: mooo - -a -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET with bad chunked Transfer-Encoding - </name> - <command> -http://%HOSTIP:%HTTPPORT/36 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<errorcode> -56 -</errorcode> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /36 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> - -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test37 b/Utilities/cmcurl-7.19.0/tests/data/test37 deleted file mode 100644 index d09b8ac..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test37 +++ /dev/null @@ -1,47 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -FAILURE -</keywords> -</info> -# -# Server-side -<reply> -<data> -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET with nothing returned from server - </name> - <command> -http://%HOSTIP:%HTTPPORT/37 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<errorcode> -52 -</errorcode> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /37 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> - -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test38 b/Utilities/cmcurl-7.19.0/tests/data/test38 deleted file mode 100644 index 2ae4ee4..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test38 +++ /dev/null @@ -1,61 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -Resume -FAILURE -</keywords> -</info> -# Server-side -<reply> -<data nocheck="1"> -HTTP/1.0 200 Mooo -Date: Mon, 13 Nov 2000 13:41:09 GMT -Server: myown/1.0 -Connection: close - -todelooooo lalalala yada yada, we know nothing about ranges ;-) -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP resume request without server supporting it - </name> - <command option="no-output"> -http://%HOSTIP:%HTTPPORT/want/38 -C - --no-include -o log/fewl.txt -</command> -<file name="log/fewl.txt"> -This text is here to simulate a partly downloaded file to resume -download on. -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -33 -</errorcode> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /want/38 HTTP/1.1 -Range: bytes=78- -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> - -# the download target file must remain untouched -<file name="log/fewl.txt"> -This text is here to simulate a partly downloaded file to resume -download on. -</file> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test39 b/Utilities/cmcurl-7.19.0/tests/data/test39 deleted file mode 100644 index f3926e0..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test39 +++ /dev/null @@ -1,91 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP FORMPOST -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 10 - -blablabla -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP RFC1867-type formposting with filename= and type= - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/want/39 -F name=daniel -F tool=curl --form-string "str1=@literal" --form-string "str2=<verbatim;type=xxx/yyy" -F "file=@log/test39.txt;filename=fakerfile;type=moo/foobar" -F file2=@log/test39.txt -</command> -# We create this file before the command is invoked! -<file name="log/test39.txt"> -foo bar -This is a bar foo -bar -foo -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^(User-Agent:|Content-Type: multipart/form-data;|-------).* -</strip> -<protocol> -POST /we/want/39 HTTP/1.1 -User-Agent: curl/7.10.4 (i686-pc-linux-gnu) libcurl/7.10.4 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 810 -Expect: 100-continue -Content-Type: multipart/form-data; boundary=----------------------------24e78000bd32 - -------------------------------24e78000bd32 -Content-Disposition: form-data; name="name" - -daniel -------------------------------24e78000bd32 -Content-Disposition: form-data; name="tool" - -curl -------------------------------24e78000bd32 -Content-Disposition: form-data; name="str1" - -@literal -------------------------------24e78000bd32 -Content-Disposition: form-data; name="str2" - -<verbatim;type=xxx/yyy -------------------------------24e78000bd32 -Content-Disposition: form-data; name="file"; filename="fakerfile" -Content-Type: moo/foobar - -foo bar -This is a bar foo -bar -foo - -------------------------------24e78000bd32 -Content-Disposition: form-data; name="file2"; filename="test39.txt" -Content-Type: text/plain - -foo bar -This is a bar foo -bar -foo - -------------------------------24e78000bd32-- -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test4 b/Utilities/cmcurl-7.19.0/tests/data/test4 deleted file mode 100644 index 16fd952..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test4 +++ /dev/null @@ -1,51 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP added headers -HTTP replaced headers -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake swsclose -Content-Type: text/html -Funny-head: yesyes - -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -Replaced internal and added custom HTTP headers - </name> - <command> - -H "extra-header: here" -H "Accept: replaced" http://%HOSTIP:%HTTPPORT/4 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /4 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -extra-header: here -Accept: replaced - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test40 b/Utilities/cmcurl-7.19.0/tests/data/test40 deleted file mode 100644 index 1a6b742..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test40 +++ /dev/null @@ -1,74 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -followlocation -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 302 OK swsclose -Location: ../moo.html/?name=d a niel&testcase=/400002 -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -</data> -<data2> -HTTP/1.1 200 OK swsclose -Location: this should be ignored -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -body -</data2> -<datacheck> -HTTP/1.1 302 OK swsclose -Location: ../moo.html/?name=d a niel&testcase=/400002 -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -HTTP/1.1 200 OK swsclose -Location: this should be ignored -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -body -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP redirect with whitespace after ? (and conversion) - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/are/all/twits/40 -L -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /we/are/all/twits/40 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /we/are/all/moo.html/?name=d+a+niel&testcase=/400002 HTTP/1.1 -User-Agent: curl/7.10 (i686-pc-linux-gnu) libcurl/7.10 OpenSSL/0.9.6c ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test400 b/Utilities/cmcurl-7.19.0/tests/data/test400 deleted file mode 100644 index 5847293..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test400 +++ /dev/null @@ -1,61 +0,0 @@ -<testcase> -<info> -<keywords> -FTPS -PASV -LIST -</keywords> -</info> -# -# Server-side -<reply> -# When doing LIST, we get the default list output hard-coded in the test -# FTPS server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -</reply> - -# -# Client-side -<client> -<features> -SSL -</features> -<server> -ftps -</server> - <name> -FTPS dir list PASV unencrypted data - </name> - <command> --k --ftp-ssl-control ftps://%HOSTIP:%FTPSPORT/ -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PBSZ 0 -PROT C -PWD -EPSV -TYPE A -LIST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test401 b/Utilities/cmcurl-7.19.0/tests/data/test401 deleted file mode 100644 index d7990f7..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test401 +++ /dev/null @@ -1,56 +0,0 @@ -<testcase> -<info> -<keywords> -FTPS -EPSV -STOR -</keywords> -</info> - -# Client-side -<client> -<features> -SSL -</features> -<server> -ftps -</server> - <name> -FTPS PASV upload file - </name> -<file name="log/test401.txt"> -data - to - see -that FTPS -works - so does it? -</file> - <command> --k --ftp-ssl-control ftps://%HOSTIP:%FTPSPORT/401 -T log/test401.txt -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<upload> -data - to - see -that FTPS -works - so does it? -</upload> -<protocol> -USER anonymous -PASS ftp@example.com -PBSZ 0 -PROT C -PWD -EPSV -TYPE I -STOR 401 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test402 b/Utilities/cmcurl-7.19.0/tests/data/test402 deleted file mode 100644 index 6a0b236..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test402 +++ /dev/null @@ -1,35 +0,0 @@ -<testcase> -<info> -<keywords> -FTPS -FAILURE -</keywords> -</info> - -# Client-side -<client> -<features> -SSL -</features> -<server> -ftp -</server> - <name> -FTP SSL required on non-SSL server - </name> - <command> --k --ftp-ssl-reqd ftp://%HOSTIP:%FTPPORT/402 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -64 -</errorcode> -<protocol> -AUTH SSL -AUTH TLS -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test403 b/Utilities/cmcurl-7.19.0/tests/data/test403 deleted file mode 100644 index 7395e7f..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test403 +++ /dev/null @@ -1,64 +0,0 @@ -<testcase> -<info> -<keywords> -FTPS -PASV -LIST -CCC -FAILURE -</keywords> -</info> -# -# Server-side -<reply> -# When doing LIST, we get the default list output hard-coded in the test -# FTPS server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -</reply> - -# -# Client-side -<client> -<features> -SSL -</features> -<server> -ftps -</server> - <name> -FTPS with CCC not supported by server - </name> - <command> --k --ftp-ssl-control --ftp-ssl-ccc ftps://%HOSTIP:%FTPSPORT/ -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PBSZ 0 -PROT C -CCC -PWD -EPSV -TYPE A -LIST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test404 b/Utilities/cmcurl-7.19.0/tests/data/test404 deleted file mode 100644 index 9766630..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test404 +++ /dev/null @@ -1,31 +0,0 @@ -<testcase> -<info> -<keywords> -FTPS -FAILURE -</keywords> -</info> - -# Client-side -<client> -<features> -SSL -</features> -<server> -ftps -</server> - <name> -FTPS with invalid cacert - </name> - <command> ---ftp-ssl-control --cacert moooo ftps://%HOSTIP:%FTPSPORT/ -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -77 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test405 b/Utilities/cmcurl-7.19.0/tests/data/test405 deleted file mode 100644 index 29e7af2..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test405 +++ /dev/null @@ -1,34 +0,0 @@ -<testcase> -<info> -<keywords> -FTPS -FAILURE -</keywords> -</info> - -# Client-side -<client> -<features> -SSL -</features> -<server> -ftp -</server> - <name> -FTPS operation to FTP port - </name> - <command> --m 5 -k ftps://%HOSTIP:%FTPPORT/path/to/file/405 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -# error code 35 is CURLE_SSL_CONNECT_ERROR -# GnuTLS seems to not fail on its handshake but instead times out which gives -# error 28 -<errorcode> -35,28 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test406 b/Utilities/cmcurl-7.19.0/tests/data/test406 deleted file mode 100644 index c201450..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test406 +++ /dev/null @@ -1,66 +0,0 @@ -<testcase> -<info> -<keywords> -FTPS -PORT -LIST -</keywords> -</info> -# -# Server-side -<reply> -# When doing LIST, we get the default list output hard-coded in the test -# FTPS server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -</reply> - -# -# Client-side -<client> -<features> -SSL -</features> -<server> -ftps -</server> - <name> -FTPS dir list, PORT with specified IP - </name> - <command> --k --ftp-ssl-control -P %CLIENTIP ftps://%HOSTIP:%FTPSPORT/ -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -# Strip all valid kinds of PORT and EPRT that curl can send -<strip> -^PORT \d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3} -^EPRT \|1\|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\|\d{1,5}\| -</strip> -<protocol> -USER anonymous -PASS ftp@example.com -PBSZ 0 -PROT C -PWD -PORT 127,0,0,1,243,212 -TYPE A -LIST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test407 b/Utilities/cmcurl-7.19.0/tests/data/test407 deleted file mode 100644 index 268c42f..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test407 +++ /dev/null @@ -1,59 +0,0 @@ -<testcase> -<info> -<keywords> -FTPS -PASV -RETR -</keywords> -</info> - -# Server-side -<reply> -<data> -data blobb -</data> - -# data is sent to stdout -</reply> - -# Client-side -<client> -<features> -SSL -</features> -<server> -ftps -</server> - <name> -Get two FTPS files from the same remote dir: no second CWD - </name> - <command> --k --ftp-ssl-control ftps://%HOSTIP:%FTPSPORT/a/path/407 ftps://%HOSTIP:%FTPSPORT/a/path/407 -</command> -<stdout> -data blobb -data blobb -</stdout> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PBSZ 0 -PROT C -PWD -CWD a -CWD path -EPSV -TYPE I -SIZE 407 -RETR 407 -EPSV -SIZE 407 -RETR 407 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test408 b/Utilities/cmcurl-7.19.0/tests/data/test408 deleted file mode 100644 index 89210b3..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test408 +++ /dev/null @@ -1,61 +0,0 @@ -<testcase> -<info> -<keywords> -FTPS -PORT -STOR -</keywords> -</info> -# Server-side -<reply> -<data> -</data> -</reply> - -# Client-side -<client> -<features> -SSL -</features> -<server> -ftps -</server> - <name> -FTPS PORT upload with CWD - </name> - <command> --k --ftp-ssl-control ftps://%HOSTIP:%FTPSPORT/CWD/STOR/RETR/408 -T log/upload408 -P - -</command> -<file name="log/upload408"> -Moooooooooooo - upload this -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -# Strip all valid kinds of PORT and EPRT that curl can send -<strip> -^PORT \d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3} -^EPRT \|1\|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\|\d{1,5}\| -</strip> -<protocol> -USER anonymous -PASS ftp@example.com -PBSZ 0 -PROT C -PWD -CWD CWD -CWD STOR -CWD RETR -PORT 127,0,0,1,5,109 -TYPE I -STOR 408 -QUIT -</protocol> -<upload> -Moooooooooooo - upload this -</upload> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test409 b/Utilities/cmcurl-7.19.0/tests/data/test409 deleted file mode 100644 index bd5ec99..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test409 +++ /dev/null @@ -1,56 +0,0 @@ -<testcase> -<info> -<keywords> -FTPS -EPSV -STOR -</keywords> -</info> - -# Client-side -<client> -<features> -SSL -</features> -<server> -ftps -</server> - <name> -FTPS PASV upload file - </name> -<file name="log/test409.txt"> -data - to - see -that FTP -works - so does it? -</file> - <command> --k --ftp-ssl-control ftps://%HOSTIP:%FTPSPORT/409 -T log/test409.txt -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<upload> -data - to - see -that FTP -works - so does it? -</upload> -<protocol> -USER anonymous -PASS ftp@example.com -PBSZ 0 -PROT C -PWD -EPSV -TYPE I -STOR 409 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test41 b/Utilities/cmcurl-7.19.0/tests/data/test41 deleted file mode 100644 index 08eca38..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test41 +++ /dev/null @@ -1,32 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP FORMPOST -FAILURE -</keywords> -</info> -# Server-side -<reply> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP formpost with missing file - </name> - <command> -http://%HOSTIP:%HTTPPORT/want/41 -F moo=@boo -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -26 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test42 b/Utilities/cmcurl-7.19.0/tests/data/test42 deleted file mode 100644 index a5d6492..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test42 +++ /dev/null @@ -1,74 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -followlocation -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 302 OK swsclose -Location: ../m o o.html/420002 -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -</data> -<data2> -HTTP/1.1 200 OK swsclose -Location: this should be ignored -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -body -</data2> -<datacheck> -HTTP/1.1 302 OK swsclose -Location: ../m o o.html/420002 -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -HTTP/1.1 200 OK swsclose -Location: this should be ignored -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -body -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP redirect with whitespace in path (and conversion) - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/are/all/twits/42 -L -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /we/are/all/twits/42 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /we/are/all/m%20o%20o.html/420002 HTTP/1.1 -User-Agent: curl/7.10 (i686-pc-linux-gnu) libcurl/7.10 OpenSSL/0.9.6c ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test43 b/Utilities/cmcurl-7.19.0/tests/data/test43 deleted file mode 100644 index 65f6a54..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test43 +++ /dev/null @@ -1,81 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -followlocation -HTTP proxy -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 301 This is a weirdo text message -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: data/430002.txt?coolsite=yes -Connection: close - -This server reply is for testing a simple Location: following - -</data> -<data2> -HTTP/1.1 200 Followed here fine swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 52 - -If this is received, the location following worked - -</data2> -<datacheck> -HTTP/1.1 301 This is a weirdo text message -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: data/430002.txt?coolsite=yes -Connection: close - -HTTP/1.1 200 Followed here fine swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 52 - -If this is received, the location following worked - -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP Location: following over HTTP proxy - </name> - <command> -http://%HOSTIP:%HTTPPORT/want/43 -L -x %HOSTIP:%HTTPPORT -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET http://%HOSTIP:%HTTPPORT/want/43 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -GET http://%HOSTIP:%HTTPPORT/want/data/430002.txt?coolsite=yes HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test44 b/Utilities/cmcurl-7.19.0/tests/data/test44 deleted file mode 100644 index 11ae480..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test44 +++ /dev/null @@ -1,72 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP FORMPOST -HTTP replaced headers -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.0 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake - -blablabla - -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP RFC1867-type formposting without Expect: header - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/want/44 -F name=daniel -F tool=curl -F file=@log/test44.txt -H "Expect:" -</command> -# We create this file before the command is invoked! -<file name="log/test44.txt"> -foo- -This is a moo- -bar -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^(User-Agent:|Content-Type: multipart/form-data;|------).* -</strip> -<protocol> -POST /we/want/44 HTTP/1.1 -User-Agent: curl/7.10.4 (i686-pc-linux-gnu) libcurl/7.10.4 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 408 -Content-Type: multipart/form-data; boundary=----------------------------7c633d5c27ce - -------------------------------7c633d5c27ce -Content-Disposition: form-data; name="name" - -daniel -------------------------------7c633d5c27ce -Content-Disposition: form-data; name="tool" - -curl -------------------------------7c633d5c27ce -Content-Disposition: form-data; name="file"; filename="test44.txt" -Content-Type: text/plain - -foo- -This is a moo- -bar - -------------------------------7c633d5c27ce-- -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test45 b/Utilities/cmcurl-7.19.0/tests/data/test45 deleted file mode 100644 index 282bebd..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test45 +++ /dev/null @@ -1,76 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -followlocation -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 301 This is a weirdo text message swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: data.cgi?moo=http://&/450002 -Connection: close - -This server reply is for testing a simple Location: following - -</data> -<data2> -HTTP/1.1 200 Followed here fine swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 52 - -If this is received, the location following worked - -</data2> -<datacheck> -HTTP/1.1 301 This is a weirdo text message swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Location: data.cgi?moo=http://&/450002 -Connection: close - -HTTP/1.1 200 Followed here fine swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 52 - -If this is received, the location following worked - -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -simple HTTP Location: without protocol in initial URL - </name> - <command> -%HOSTIP:%HTTPPORT/want/45 -L -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /want/45 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /want/data.cgi?moo=http://&/450002 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test46 b/Utilities/cmcurl-7.19.0/tests/data/test46 deleted file mode 100644 index 6826ebc..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test46 +++ /dev/null @@ -1,89 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -cookies -cookiejar -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Server: Microsoft-IIS/4.0 -Date: Tue, 25 Sep 2001 19:37:44 GMT -Content-Type: text/html -Set-Cookie: ckyPersistent=permanent; expires=Fri, 02-Feb-2035 11:56:27 GMT; path=/ -Set-Cookie: ckySession=temporary; path=/ -Set-Cookie: ASPSESSIONIDQGGQQSJJ=GKNBDIFAAOFDPDAIEAKDIBKE; path=/ -Set-Cookie: justaname=; path=/; -Set-Cookie: simplyhuge=zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -Cache-control: private -Content-Length: 41 - -This server reply is for testing cookies -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP, get cookies and store in cookie jar - </name> -# Explicitly set the time zone to a known good one, in case the user is -# using one of the 'right' zones that take into account leap seconds -# which causes the cookie expiry times to be different from what we expect. -<setenv> -TZ=GMT -</setenv> - <command> -%HOSTIP:%HTTPPORT/want/46 -c log/jar46 -b log/injar46 -</command> -<file name="log/injar46"> -# Netscape HTTP Cookie File -# http://curl.haxx.se/rfc/cookie_spec.html -# This is generated by libcurl! Do not edit. - -www.fake.come FALSE / FALSE 1022144953 cookiecliente si -www.loser.com FALSE / FALSE 1139150993 UID 99 -%HOSTIP FALSE / FALSE 1439150993 mooo indeed -#HttpOnly_%HOSTIP FALSE / FALSE 1439150993 mooo2 indeed2 -%HOSTIP FALSE / FALSE 0 empty -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /want/46 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Cookie: empty=; mooo2=indeed2; mooo=indeed - -</protocol> -<file name="log/jar46" mode="text"> -# Netscape HTTP Cookie File -# http://curl.haxx.se/rfc/cookie_spec.html -# This file was generated by libcurl! Edit at your own risk. - -www.fake.come FALSE / FALSE 1022144953 cookiecliente si -www.loser.com FALSE / FALSE 1139150993 UID 99 -%HOSTIP FALSE / FALSE 1439150993 mooo indeed -#HttpOnly_%HOSTIP FALSE / FALSE 1439150993 mooo2 indeed2 -%HOSTIP FALSE / FALSE 0 empty -%HOSTIP FALSE / FALSE 2054030187 ckyPersistent permanent -%HOSTIP FALSE / FALSE 0 ckySession temporary -%HOSTIP FALSE / FALSE 0 ASPSESSIONIDQGGQQSJJ GKNBDIFAAOFDPDAIEAKDIBKE -%HOSTIP FALSE / FALSE 0 justaname -%HOSTIP FALSE /want/ FALSE 0 simplyhuge zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -</file> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test47 b/Utilities/cmcurl-7.19.0/tests/data/test47 deleted file mode 100644 index c071015..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test47 +++ /dev/null @@ -1,49 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP/1.0 -</keywords> -</info> -# -# Server-side -<reply name="47"> -<data> -HTTP/1.0 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake - --foo- within foo -!foo- -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -simple HTTP 1.0 GET - </name> - <command> -http://%HOSTIP:%HTTPPORT/47 -0 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /47 HTTP/1.0 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> - -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test48 b/Utilities/cmcurl-7.19.0/tests/data/test48 deleted file mode 100644 index 186a280..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test48 +++ /dev/null @@ -1,47 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP HEAD --G -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP with -d and -G and -I - </name> - <command> --d "foo=moo&moo=poo" http://%HOSTIP:%HTTPPORT/48 -G -I -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -HEAD /48?foo=moo&moo=poo HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test49 b/Utilities/cmcurl-7.19.0/tests/data/test49 deleted file mode 100644 index bfe61fa..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test49 +++ /dev/null @@ -1,74 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -followlocation -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 302 OK swsclose -Location: ../moo.html/490002 -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -</data> -<data2> -HTTP/1.1 200 OK swsclose -Location: this should be ignored -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -body -</data2> -<datacheck> -HTTP/1.1 302 OK swsclose -Location: ../moo.html/490002 -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -HTTP/1.1 200 OK swsclose -Location: this should be ignored -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -body -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP follow redirect with ../ - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/are/all/twits/49 -L -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /we/are/all/twits/49 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /we/are/all/moo.html/490002 HTTP/1.1 -User-Agent: curl/7.10 (i686-pc-linux-gnu) libcurl/7.10 OpenSSL/0.9.6c ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test5 b/Utilities/cmcurl-7.19.0/tests/data/test5 deleted file mode 100644 index e5a8ae8..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test5 +++ /dev/null @@ -1,51 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP proxy -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake swsclose -Content-Type: text/html -Funny-head: yesyes - -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP over proxy - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/want/that/page/5 -x %HOSTIP:%HTTPPORT -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET http://%HOSTIP:%HTTPPORT/we/want/that/page/5 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test50 b/Utilities/cmcurl-7.19.0/tests/data/test50 deleted file mode 100644 index fc9eeb1..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test50 +++ /dev/null @@ -1,74 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -followlocation -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 302 OK swsclose -Location: ../../moo.html/500002 -Date: Thu, 09 Nov 2010 14:50:00 GMT -Connection: close - -</data> -<data2> -HTTP/1.1 200 OK swsclose -Location: this should be ignored -Date: Thu, 09 Nov 2010 14:50:00 GMT -Connection: close - -body -</data2> -<datacheck> -HTTP/1.1 302 OK swsclose -Location: ../../moo.html/500002 -Date: Thu, 09 Nov 2010 14:50:00 GMT -Connection: close - -HTTP/1.1 200 OK swsclose -Location: this should be ignored -Date: Thu, 09 Nov 2010 14:50:00 GMT -Connection: close - -body -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP follow redirect with ../../ - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/are/all/twits/50 -L -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /we/are/all/twits/50 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /we/are/moo.html/500002 HTTP/1.1 -User-Agent: curl/7.10 (i686-pc-linux-gnu) libcurl/7.10 OpenSSL/0.9.6c ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test500 b/Utilities/cmcurl-7.19.0/tests/data/test500 deleted file mode 100644 index a1eee46..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test500 +++ /dev/null @@ -1,52 +0,0 @@ -<testcase> -# -# Server-side -<reply name="1"> -<data mode="text"> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 -Connection: close -Content-Type: text/html -Funny-head: yesyes - --foo- -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> -# tool is what to use instead of 'curl' -<tool> -lib500 -</tool> - - <name> -simple libcurl HTTP GET tool - </name> - <command> -http://%HOSTIP:%HTTPPORT/500 log/ip500 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<file name="log/ip500" mode="text"> -IP: %HOSTIP -</file> -<protocol> -GET /500 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test501 b/Utilities/cmcurl-7.19.0/tests/data/test501 deleted file mode 100644 index 99cd3b8..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test501 +++ /dev/null @@ -1,35 +0,0 @@ -<testcase> -# -# Server-side -<reply name="1"> -</reply> - -# Client-side -<client> -<server> -none -</server> -<features> -http -</features> -# tool is what to use instead of 'curl' -<tool> -lib501 -</tool> - - <name> -simple libcurl attempt operation without URL set - </name> - <command> -http://%HOSTIP:%HTTPPORT/501 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<errorcode> -3 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test502 b/Utilities/cmcurl-7.19.0/tests/data/test502 deleted file mode 100644 index 99dc2f0..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test502 +++ /dev/null @@ -1,42 +0,0 @@ -<testcase> -# -# Server-side -<reply> -<data mode="text"> -foo - bar swsclose -bar - foo -moo -</data> -</reply> - -# Client-side -<client> -<server> -file -</server> -# tool is what to use instead of 'curl' -<tool> -lib502 -</tool> - - <name> -simple multi file:// get - </name> - <command> -file://%PWD/log/test502.txt -</command> -<file name="log/test502.txt"> -foo - bar swsclose -bar - foo -moo -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test503 b/Utilities/cmcurl-7.19.0/tests/data/test503 deleted file mode 100644 index 3c4cd18..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test503 +++ /dev/null @@ -1,76 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP CONNECT -HTTP proxy -HTTP proxy Basic auth -proxytunnel -multi -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" - -</data> -<datacheck> -HTTP/1.1 200 Mighty fine indeed - -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" - -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> -# tool is what to use instead of 'curl' -<tool> -lib503 -</tool> - - <name> -simple multi http:// through proxytunnel with authentication info - </name> - <command> -http://%HOSTIP:%HTTPSPORT/503 %HOSTIP:%HTTPPORT -</command> -<file name="log/test503.txt"> -foo - bar -bar - foo -moo -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -CONNECT %HOSTIP:%HTTPSPORT HTTP/1.0 -Host: %HOSTIP:%HTTPSPORT -Proxy-Authorization: Basic dGVzdDppbmc= -Proxy-Connection: Keep-Alive - -GET /503 HTTP/1.1 -Authorization: Basic dGVzdDppbmc= -Host: %HOSTIP:%HTTPSPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test504 b/Utilities/cmcurl-7.19.0/tests/data/test504 deleted file mode 100644 index 2d9e564..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test504 +++ /dev/null @@ -1,33 +0,0 @@ -<testcase> -# Server-side -<reply> -</reply> - -# Client-side -<client> -<server> -none -</server> -<features> -http -</features> -# tool is what to use instead of 'curl' -<tool> -lib504 -</tool> - - <name> -simple multi through local proxy without listener - </name> - <command> -http://%HOSTIP:%HTTPSPORT/504 %HOSTIP:55555 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -100 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test505 b/Utilities/cmcurl-7.19.0/tests/data/test505 deleted file mode 100644 index 5e19f8c..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test505 +++ /dev/null @@ -1,60 +0,0 @@ -<testcase> -# Server-side -<reply> -</reply> - -# Client-side -<client> -<server> -ftp -</server> -# tool is what to use instead of 'curl' -<tool> -lib505 -</tool> - - <name> -FTP upload with rename after transfer - </name> - <command> -ftp://%HOSTIP:%FTPPORT/505 log/upload505 -</command> -<file name="log/upload505"> -Contents -of -a file -to verify -ftp -upload - - -works? -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<upload> -Contents -of -a file -to verify -ftp -upload - - -works? -</upload> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE I -STOR 505 -RNFR 505 -RNTO 505-forreal -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test506 b/Utilities/cmcurl-7.19.0/tests/data/test506 deleted file mode 100644 index 878744f..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test506 +++ /dev/null @@ -1,181 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -cookies -shared cookies -</keywords> -</info> - -# Server-side -<reply> -<data1> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Type: text/html -Set-Cookie: test1=one; domain=foo.com; expires=Sat Feb 2 11:56:27 GMT 2030 -Set-Cookie: test2=two; domain=host.foo.com; expires=Sat Feb 2 11:56:27 GMT 2030 -Set-Cookie: test3=three; domain=foo.com; expires=Sat Feb 2 11:56:27 GMT 2030 -Content-Length: 29 - -run 1: set cookie 1, 2 and 3 -</data1> -<data2> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:01 GMT -Server: test-server/fake -Content-Type: text/html -Set-Cookie: test4=four; domain=host.foo.com; expires=Sat Feb 2 11:56:27 GMT 2030 -Set-Cookie: test5=five; domain=host.foo.com; expires=Sat Feb 2 11:56:27 GMT 2030 -Content-Length: 26 - -run 2: set cookie 4 and 5 -</data2> -<data3> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:02 GMT -Server: test-server/fake -Content-Type: text/html -Funny-head: yesyes -Set-Cookie: test4=overwritten4; domain=host.foo.com; expires=Sat May 5 GMT 11:56:27 2035 -Set-Cookie: test1=overwritten1; domain=foo.com; expires=Thu Mar 3 GMT 11:56:27 2033 -Content-Type: text/html -Content-Length: 32 - -run 3: overwrite cookie 1 and 4 -</data3> -</reply> - -# Client-side -<client> -<server> -http -</server> -<name> -HTTP with shared cookie list (and dns cache) -</name> -# Explicitly set the time zone to a known good one, in case the user is -# using one of the 'right' zones that take into account leap seconds -# which causes the cookie expiry times to be different. -<setenv> -TZ=GMT -</setenv> -<tool> -lib506 -</tool> -<command> -http://%HOSTIP:%HTTPPORT/506 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<stdout mode="text"> -GLOBAL_INIT -SHARE_INIT -CURLSHOPT_LOCKFUNC -CURLSHOPT_UNLOCKFUNC -CURLSHOPT_USERDATA -CURL_LOCK_DATA_COOKIE -CURL_LOCK_DATA_DNS -*** run 1 -CURLOPT_SHARE -lock: share <Pigs in space>: 0 -unlock: share <Pigs in space>: 1 -PERFORM -lock: dns <Pigs in space>: 2 -unlock: dns <Pigs in space>: 3 -lock: dns <Pigs in space>: 4 -unlock: dns <Pigs in space>: 5 -lock: cookie <Pigs in space>: 6 -unlock: cookie <Pigs in space>: 7 -lock: cookie <Pigs in space>: 8 -unlock: cookie <Pigs in space>: 9 -lock: cookie <Pigs in space>: 10 -unlock: cookie <Pigs in space>: 11 -lock: cookie <Pigs in space>: 12 -unlock: cookie <Pigs in space>: 13 -run 1: set cookie 1, 2 and 3 -lock: dns <Pigs in space>: 14 -unlock: dns <Pigs in space>: 15 -CLEANUP -lock: dns <Pigs in space>: 16 -unlock: dns <Pigs in space>: 17 -lock: cookie <Pigs in space>: 18 -unlock: cookie <Pigs in space>: 19 -lock: share <Pigs in space>: 20 -unlock: share <Pigs in space>: 21 -*** run 2 -CURLOPT_SHARE -lock: share <Pigs in space>: 22 -unlock: share <Pigs in space>: 23 -PERFORM -lock: dns <Pigs in space>: 24 -unlock: dns <Pigs in space>: 25 -lock: cookie <Pigs in space>: 26 -unlock: cookie <Pigs in space>: 27 -lock: cookie <Pigs in space>: 28 -unlock: cookie <Pigs in space>: 29 -lock: cookie <Pigs in space>: 30 -unlock: cookie <Pigs in space>: 31 -run 2: set cookie 4 and 5 -lock: dns <Pigs in space>: 32 -unlock: dns <Pigs in space>: 33 -CLEANUP -lock: dns <Pigs in space>: 34 -unlock: dns <Pigs in space>: 35 -lock: cookie <Pigs in space>: 36 -unlock: cookie <Pigs in space>: 37 -lock: share <Pigs in space>: 38 -unlock: share <Pigs in space>: 39 -*** run 3 -CURLOPT_SHARE -lock: share <Pigs in space>: 40 -unlock: share <Pigs in space>: 41 -CURLOPT_COOKIEJAR -PERFORM -lock: dns <Pigs in space>: 42 -unlock: dns <Pigs in space>: 43 -lock: cookie <Pigs in space>: 44 -unlock: cookie <Pigs in space>: 45 -lock: cookie <Pigs in space>: 46 -unlock: cookie <Pigs in space>: 47 -lock: cookie <Pigs in space>: 48 -unlock: cookie <Pigs in space>: 49 -run 3: overwrite cookie 1 and 4 -lock: dns <Pigs in space>: 50 -unlock: dns <Pigs in space>: 51 -try SHARE_CLEANUP... -lock: share <Pigs in space>: 52 -unlock: share <Pigs in space>: 53 -SHARE_CLEANUP failed, correct -CLEANUP -lock: dns <Pigs in space>: 54 -unlock: dns <Pigs in space>: 55 -lock: cookie <Pigs in space>: 56 -unlock: cookie <Pigs in space>: 57 -lock: share <Pigs in space>: 58 -unlock: share <Pigs in space>: 59 -SHARE_CLEANUP -lock: share <Pigs in space>: 60 -unlock: share <Pigs in space>: 61 -GLOBAL_CLEANUP -</stdout> -<stderr> -http://%HOSTIP:%HTTPPORT/506 -</stderr> -<file name="log/jar506" mode="text"> -# Netscape HTTP Cookie File -# http://curl.haxx.se/rfc/cookie_spec.html -# This file was generated by libcurl! Edit at your own risk. - -.foo.com TRUE / FALSE 1993463787 test1 overwritten1 -.host.foo.com TRUE / FALSE 1896263787 test2 two -.foo.com TRUE / FALSE 1896263787 test3 three -.host.foo.com TRUE / FALSE 2061978987 test4 overwritten4 -.host.foo.com TRUE / FALSE 1896263787 test5 five -</file> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test507 b/Utilities/cmcurl-7.19.0/tests/data/test507 deleted file mode 100644 index bd4bada..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test507 +++ /dev/null @@ -1,28 +0,0 @@ -<testcase> -# Server-side -<reply> -</reply> - -# Client-side -<client> -<server> -http -</server> -<name> -multi interface get with non-existing host name -</name> -<tool> -lib507 -</tool> -<command> -http://doesnotexist.foo./ -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -6 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test508 b/Utilities/cmcurl-7.19.0/tests/data/test508 deleted file mode 100644 index e833789..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test508 +++ /dev/null @@ -1,47 +0,0 @@ -<testcase> -# -# Server-side -<reply> -<data mode="text"> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake swsclose -Connection: close -Content-Type: text/html - -hello -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> -# tool is what to use instead of 'curl' -<tool> -lib508 -</tool> - - <name> -send HTTP POST using read callback - </name> - <command> -http://%HOSTIP:%HTTPPORT/508 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -POST /508 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 45 -Content-Type: application/x-www-form-urlencoded - -this is what we post to the silly web server -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test51 b/Utilities/cmcurl-7.19.0/tests/data/test51 deleted file mode 100644 index 768d3f7..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test51 +++ /dev/null @@ -1,74 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -followlocation -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 302 OK swsclose -Location: ../../../../../../../510002 -Date: Thu, 09 Nov 2010 14:50:00 GMT -Connection: close - -</data> -<data2> -HTTP/1.1 200 OK swsclose -Location: this should be ignored -Date: Thu, 09 Nov 2010 14:50:00 GMT -Connection: close - -body -</data2> -<datacheck> -HTTP/1.1 302 OK swsclose -Location: ../../../../../../../510002 -Date: Thu, 09 Nov 2010 14:50:00 GMT -Connection: close - -HTTP/1.1 200 OK swsclose -Location: this should be ignored -Date: Thu, 09 Nov 2010 14:50:00 GMT -Connection: close - -body -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP follow redirect with excessive ../ - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/are/all/twits/51 -L -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /we/are/all/twits/51 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /510002 HTTP/1.1 -User-Agent: curl/7.10 (i686-pc-linux-gnu) libcurl/7.10 OpenSSL/0.9.6c ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test510 b/Utilities/cmcurl-7.19.0/tests/data/test510 deleted file mode 100644 index 9e6502d..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test510 +++ /dev/null @@ -1,56 +0,0 @@ -<testcase> -# -# Server-side -<reply> -<data mode="text"> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake swsclose -Connection: close -Content-Type: text/html - -hello -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> -# tool is what to use instead of 'curl' -<tool> -lib510 -</tool> - - <name> -send HTTP POST using read callback, using chunked transfer-encoding - </name> - <command> -http://%HOSTIP:%HTTPPORT/510 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -POST /510 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Transfer-Encoding: chunked -Content-Type: application/x-www-form-urlencoded - -3 -one -3 -two -5 -three -1d -and a final longer crap: four -0 - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test511 b/Utilities/cmcurl-7.19.0/tests/data/test511 deleted file mode 100644 index 90b5e4f..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test511 +++ /dev/null @@ -1,44 +0,0 @@ -<testcase> -# -# Server-side -<reply> -<servercmd> -REPLY MDTM 550 bluah you f00l! -REPLY SIZE 550 bluah you f00l! -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> -# tool is what to use instead of 'curl' -<tool> -lib511 -</tool> - - <name> -FTP with FILETIME and NOBODY but missing file - </name> - <command> -ftp://%HOSTIP:%FTPPORT/511 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -# CURLE_FTP_COULDNT_RETR_FILE -<errorcode> -19 -</errorcode> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -MDTM 511 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test512 b/Utilities/cmcurl-7.19.0/tests/data/test512 deleted file mode 100644 index 43b39c5..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test512 +++ /dev/null @@ -1,46 +0,0 @@ -<testcase> -# -# Server-side -<reply> -<data mode="text"> -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: yes -Connection: close - -hello -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> -# tool is what to use instead of 'curl' -<tool> -lib512 -</tool> - - <name> -simple curl_easy_duplicate() test - </name> - <command> -http://%HOSTIP:%HTTPPORT/512 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /512 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test513 b/Utilities/cmcurl-7.19.0/tests/data/test513 deleted file mode 100644 index 8a69ce4..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test513 +++ /dev/null @@ -1,41 +0,0 @@ -<testcase> -# -# Server-side -<reply> -</reply> - -# Client-side -<client> -<server> -http -</server> -# tool is what to use instead of 'curl' -<tool> -lib513 -</tool> - - <name> -send HTTP POST using read callback that returns CURL_READFUNC_ABORT - </name> - <command> -http://%HOSTIP:%HTTPPORT/513 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -POST /513 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 1 -Content-Type: application/x-www-form-urlencoded - -</protocol> -# 42 - aborted by callback -<errorcode> -42 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test514 b/Utilities/cmcurl-7.19.0/tests/data/test514 deleted file mode 100644 index 94c90cf..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test514 +++ /dev/null @@ -1,50 +0,0 @@ -<testcase> -# -# Server-side -<reply> -<data mode="text"> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 -Connection: close -Content-Type: text/html -Funny-head: yesyes - -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> -<tool> -lib514 -</tool> - <name> -First set options to POST and then to make HEAD - </name> - <command> -http://%HOSTIP:%HTTPPORT/514 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -HEAD /514 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test515 b/Utilities/cmcurl-7.19.0/tests/data/test515 deleted file mode 100644 index f1de086..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test515 +++ /dev/null @@ -1,48 +0,0 @@ -<testcase> -# -# Server-side -<reply> -<data mode="text"> -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 3 - -OK -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> -# tool is what to use instead of 'curl' -<tool> -lib515 -</tool> - - <name> -make a POSTFIELDS set to NULL with POSTFIELDSIZE set to zero - </name> - <command> -http://%HOSTIP:%HTTPPORT/515 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -POST /515 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 0 -Content-Type: application/x-www-form-urlencoded - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test516 b/Utilities/cmcurl-7.19.0/tests/data/test516 deleted file mode 100644 index cd65518..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test516 +++ /dev/null @@ -1,47 +0,0 @@ -<testcase> -# -# Server-side -<reply> -<data mode="text"> -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 3 - -OK -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> -# tool is what to use instead of 'curl' -<tool> -lib516 -</tool> - - <name> -make a HTTPPOST set to NULL - </name> - <command> -http://%HOSTIP:%HTTPPORT/516 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -POST /516 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 0 - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test517 b/Utilities/cmcurl-7.19.0/tests/data/test517 deleted file mode 100644 index bd9d77b..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test517 +++ /dev/null @@ -1,67 +0,0 @@ -<testcase> -# -# Server-side -<reply> -</reply> - -# Client-side -<client> -<server> -none -</server> -# tool is what to use instead of 'curl' -<tool> -lib517 -</tool> - - <name> -curl_getdate() testing - </name> -# Explicitly set the time zone to a known good one, in case the user is -# using one of the 'right' zones that take into account leap seconds -# which causes the cookie expiry times to be different. -<setenv> -TZ=GMT -</setenv> - <command> -nothing -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<stdout mode="text"> -0: Sun, 06 Nov 1994 08:49:37 GMT => 784111777 -1: Sunday, 06-Nov-94 08:49:37 GMT => 784111777 -2: Sun Nov 6 08:49:37 1994 => 784111777 -3: 06 Nov 1994 08:49:37 GMT => 784111777 -4: 06-Nov-94 08:49:37 GMT => 784111777 -5: Nov 6 08:49:37 1994 => 784111777 -6: 06 Nov 1994 08:49:37 => 784111777 -7: 06-Nov-94 08:49:37 => 784111777 -8: 1994 Nov 6 08:49:37 => 784111777 -9: GMT 08:49:37 06-Nov-94 Sunday => 784111777 -10: 94 6 Nov 08:49:37 => 784111777 -11: 1994 Nov 6 => 784080000 -12: 06-Nov-94 => 784080000 -13: Sun Nov 6 94 => 784080000 -14: 1994.Nov.6 => 784080000 -15: Sun/Nov/6/94/GMT => 784080000 -16: Sun, 06 Nov 1994 08:49:37 CET => 784108177 -17: 06 Nov 1994 08:49:37 EST => 784129777 -18: Sun, 12 Sep 2004 15:05:58 -0700 => 1095026758 -19: Sat, 11 Sep 2004 21:32:11 +0200 => 1094931131 -20: 20040912 15:05:58 -0700 => 1095026758 -21: 20040911 +0200 => 1094853600 -</stdout> - -# This test case previously testes an overflow case ("2094 Nov 6 => -# 2147483647") for 32bit time_t, but since some systems have 64bit time_t and -# handles this (returning 3939840000), and some 64bit-time_t systems don't -# handle this and returns -1 for this, it turned very tricky to write a fine -# test case and thus it is now removed until we have a way to write test cases -# for this kind of things. - -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test518 b/Utilities/cmcurl-7.19.0/tests/data/test518 deleted file mode 100644 index 47a900b..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test518 +++ /dev/null @@ -1,60 +0,0 @@ -<testcase> -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 -Connection: close -Content-Type: text/html -Funny-head: yesyes - --foo- -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> -<features> -getrlimit -</features> -# tool is what to use instead of 'curl' -<tool> -lib518 -</tool> -# precheck is a command line to run before the test, to see if we can execute -# the test or not -<precheck> -./libtest/lib518 check -</precheck> - - <name> -HTTP GET with more than FD_SETSIZE descriptors open - </name> - <command> -http://%HOSTIP:%HTTPPORT/518 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -GET /518 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test519 b/Utilities/cmcurl-7.19.0/tests/data/test519 deleted file mode 100644 index 1633fda..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test519 +++ /dev/null @@ -1,71 +0,0 @@ -<testcase> -# -# Server-side -<reply> -<data mode="text"> -HTTP/1.1 200 OK swsbounce -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 8 - -content -</data> -<data1> -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 9 - -content2 -</data1> -<datacheck> -HTTP/1.1 200 OK swsbounce -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 8 - -content -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 9 - -content2 -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> -# tool is what to use instead of 'curl' -<tool> -lib519 -</tool> - - <name> -GET same URL twice with different users - </name> - <command> -http://%HOSTIP:%HTTPPORT/519 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -GET /519 HTTP/1.1 -Authorization: Basic bW9uc3Rlcjp1bmRlcmJlZA== -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /519 HTTP/1.1 -Authorization: Basic YW5vdGhlcm1vbnN0ZXI6aW53YXJkcm9iZQ== -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test52 b/Utilities/cmcurl-7.19.0/tests/data/test52 deleted file mode 100644 index e526ea9..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test52 +++ /dev/null @@ -1,74 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -followlocation -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 302 OK swsclose -Location: ./520002 -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -</data> -<data2> -HTTP/1.1 200 OK swsclose -Location: this should be ignored -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -body -</data2> -<datacheck> -HTTP/1.1 302 OK swsclose -Location: ./520002 -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -HTTP/1.1 200 OK swsclose -Location: this should be ignored -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close - -body -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP follow redirect with ./-prefix - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/are/all/twits/52 -L -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /we/are/all/twits/52 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /we/are/all/twits/520002 HTTP/1.1 -User-Agent: curl/7.10 (i686-pc-linux-gnu) libcurl/7.10 OpenSSL/0.9.6c ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test520 b/Utilities/cmcurl-7.19.0/tests/data/test520 deleted file mode 100644 index e9d7b54..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test520 +++ /dev/null @@ -1,47 +0,0 @@ -<testcase> -# -# Server-side -<reply> -<data> -contents of file -</data> -<servercmd> -REPLY MDTM 213 20030405060708 -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> -# tool is what to use instead of 'curl' -<tool> -lib520 -</tool> - - <name> -FTP RETR with FILETIME - </name> - <command> -ftp://%HOSTIP:%FTPPORT/520 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> - -<protocol> -USER anonymous -PASS ftp@example.com -PWD -MDTM 520 -EPSV -TYPE I -SIZE 520 -RETR 520 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test521 b/Utilities/cmcurl-7.19.0/tests/data/test521 deleted file mode 100644 index 14d551b..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test521 +++ /dev/null @@ -1,60 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -CURLOPT_PORT -</keywords> -</info> -# -# Server-side -<reply> -# When doing LIST, we get the default list output hard-coded in the test -# FTP server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -ftp -</server> -<tool> -lib521 -</tool> - <name> -FTP dir list PASV with CURLOPT_PORT - </name> - <command> -ftp://%HOSTIP/520/ %FTPPORT -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -USER xxx -PASS yyy -PWD -CWD 520 -EPSV -TYPE A -LIST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test522 b/Utilities/cmcurl-7.19.0/tests/data/test522 deleted file mode 100644 index e701cb5..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test522 +++ /dev/null @@ -1,60 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -CURLOPT_PORT -</keywords> -</info> - -# -# Server-side -<reply> -<data nocheck="1"> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 - -hello -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> -<tool> -lib521 -</tool> - <name> -HTTP GET with CURLOPT_PORT - </name> - <command> -http://%HOSTIP/522 %HTTPPORT -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /522 HTTP/1.1 -Authorization: Basic eHh4Onl5eQ== -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -<stdout mode="text"> -hello -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test523 b/Utilities/cmcurl-7.19.0/tests/data/test523 deleted file mode 100644 index d8c31da..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test523 +++ /dev/null @@ -1,64 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -CURLOPT_PORT -CURLOPT_PROXY -</keywords> -</info> - -# -# Server-side -<reply> -<data nocheck="1"> -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 - -hello -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> -<tool> -lib523 -</tool> - <name> -HTTP GET with proxy and CURLOPT_PORT - </name> -# first URL then proxy - <command> -http://www.haxx.se:999/523 http://%HOSTIP:%HTTPPORT -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET http://www.haxx.se:19999/523 HTTP/1.1 -Authorization: Basic eHh4Onl5eQ== -Host: www.haxx.se:19999 -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> -<stdout mode="text"> -hello -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test524 b/Utilities/cmcurl-7.19.0/tests/data/test524 deleted file mode 100644 index 68c3220..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test524 +++ /dev/null @@ -1,46 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -UPLOAD -</keywords> -</info> - -# -# Server-side -<reply> -</reply> - -# -# Client-side -<client> -<server> -ftp -</server> -<tool> -lib524 -</tool> - <name> -FTP upload with target URL ending with slash - </name> -# first URL then proxy - <command> -ftp://%HOSTIP:%FTPPORT/path/to/ -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -</protocol> - -# 3 is CURLE_URL_MALFORMAT -<errorcode> -3 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test525 b/Utilities/cmcurl-7.19.0/tests/data/test525 deleted file mode 100644 index 12d4198..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test525 +++ /dev/null @@ -1,59 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PORT -STOR -multi -</keywords> -</info> - -# Server-side -<reply> -<data> -</data> -</reply> - -# Client-side -<client> -<server> -ftp -</server> -<tool> -lib525 -</tool> - <name> -FTP PORT upload using multi interface - </name> - <command> -ftp://%HOSTIP:%FTPPORT/path/525 log/upload525 -</command> -<file name="log/upload525"> -Moooooooooooo - upload this -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -# Strip all valid kinds of PORT and EPRT that curl can send -<strip> -^PORT \d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3} -^EPRT \|1\|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\|\d{1,5}\| -</strip> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD path -PORT 127,0,0,1,5,109 -TYPE I -STOR 525 -QUIT -</protocol> -<upload> -Moooooooooooo - upload this -</upload> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test526 b/Utilities/cmcurl-7.19.0/tests/data/test526 deleted file mode 100644 index b43fdf1..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test526 +++ /dev/null @@ -1,63 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -RETR -multi -</keywords> -</info> - -# Server-side -<reply> -<data> -file contents should appear once for each file -</data> -<datacheck> -file contents should appear once for each file -file contents should appear once for each file -file contents should appear once for each file -file contents should appear once for each file -</datacheck> -</reply> - -# Client-side -<client> -<server> -ftp -</server> -<tool> -lib526 -</tool> - <name> -FTP RETR same file using different handles but same connection - </name> - <command> -ftp://%HOSTIP:%FTPPORT/path/526 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD path -EPSV -TYPE I -SIZE 526 -RETR 526 -EPSV -SIZE 526 -RETR 526 -EPSV -SIZE 526 -RETR 526 -EPSV -SIZE 526 -RETR 526 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test527 b/Utilities/cmcurl-7.19.0/tests/data/test527 deleted file mode 100644 index 2d3a00d..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test527 +++ /dev/null @@ -1,63 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -RETR -multi -</keywords> -</info> - -# Server-side -<reply> -<data> -file contents should appear once for each file -</data> -<datacheck> -file contents should appear once for each file -file contents should appear once for each file -file contents should appear once for each file -file contents should appear once for each file -</datacheck> -</reply> - -# Client-side -<client> -<server> -ftp -</server> -<tool> -lib527 -</tool> - <name> -FTP RETR same file using different handles but same connection - </name> - <command> -ftp://%HOSTIP:%FTPPORT/path/527 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD path -EPSV -TYPE I -SIZE 527 -RETR 527 -EPSV -SIZE 527 -RETR 527 -EPSV -SIZE 527 -RETR 527 -EPSV -SIZE 527 -RETR 527 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test528 b/Utilities/cmcurl-7.19.0/tests/data/test528 deleted file mode 100644 index a0a833b..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test528 +++ /dev/null @@ -1,65 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -multi -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 47 - -file contents should appear once for each file -</data> -<datacheck> -file contents should appear once for each file -file contents should appear once for each file -file contents should appear once for each file -file contents should appear once for each file -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> -<tool> -lib526 -</tool> - <name> -HTTP GET same file using different handles but same connection - </name> - <command> -http://%HOSTIP:%HTTPPORT/path/528 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -GET /path/528 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /path/528 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /path/528 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /path/528 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test529 b/Utilities/cmcurl-7.19.0/tests/data/test529 deleted file mode 100644 index 4d254d8..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test529 +++ /dev/null @@ -1,59 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PORT -STOR -multi -</keywords> -</info> - -# Server-side -<reply> -<data> -</data> -</reply> - -# Client-side -<client> -<server> -ftp -</server> -<tool> -lib529 -</tool> - <name> -FTP PORT upload using multi interface (weird cleanup function sequence) - </name> - <command> -ftp://%HOSTIP:%FTPPORT/path/529 log/upload529 -</command> -<file name="log/upload529"> -Moooooooooooo - upload this -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -# Strip all valid kinds of PORT and EPRT that curl can send -<strip> -^PORT \d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3} -^EPRT \|1\|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\|\d{1,5}\| -</strip> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD path -PORT 127,0,0,1,5,109 -TYPE I -STOR 529 -QUIT -</protocol> -<upload> -Moooooooooooo - upload this -</upload> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test53 b/Utilities/cmcurl-7.19.0/tests/data/test53 deleted file mode 100644 index c114730..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test53 +++ /dev/null @@ -1,54 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -cookies -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Server: Microsoft-IIS/4.0 -Date: Tue, 25 Sep 2001 19:37:44 GMT -Content-Type: text/html -Connection: close -Content-Length: 21 - -This server says moo -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP, junk session cookies - </name> - <command> -%HOSTIP:%HTTPPORT/want/53 -b log/injar53 -j -</command> -<file name="log/injar53"> -%HOSTIP FALSE / FALSE 2139150993 mooo indeed -%HOSTIP FALSE / FALSE 0 moo1 indeed -%HOSTIP FALSE / FALSE 1 moo2 indeed -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /want/53 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Cookie: mooo=indeed - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test530 b/Utilities/cmcurl-7.19.0/tests/data/test530 deleted file mode 100644 index 6b130cd..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test530 +++ /dev/null @@ -1,83 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -Pipelining -multi -</keywords> -</info> - -# Server-side -<reply> -<data1> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 47 - -file contents should appear once for each file -</data1> -<data2> -HTTP/1.1 200 OK -</data2> -<data3> -Date: Thu, 09 Nov 2010 14:49:00 GMT -</data3> -<data4> -Server: test-server/fake -Content-Length: 47 - -file contents should appear once for each file -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 47 - -file contents should appear once for each file -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 47 - -file contents should appear once for each file -</data4> -</reply> - -# Client-side -<client> -<server> -http -</server> -<tool> -lib530 -</tool> - <name> -HTTP GET using pipelining - </name> - <command> -http://%HOSTIP:%HTTPPORT/path/530 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -GET /path/5300001 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /path/5300002 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /path/5300003 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /path/5300004 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test531 b/Utilities/cmcurl-7.19.0/tests/data/test531 deleted file mode 100644 index 654497b..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test531 +++ /dev/null @@ -1,59 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PORT -STOR -multi -</keywords> -</info> - -# Server-side -<reply> -<data> -</data> -<servercmd> -REPLY STOR 425 Permission Denied. File Exists. -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> -<tool> -lib525 -</tool> - <name> -FTP PORT upload using multi interface and get 425 response - </name> - <command> -ftp://%HOSTIP:%FTPPORT/path/531 log/upload531 -</command> -<file name="log/upload531"> -Moooooooooooo -don't upload this -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -# Strip all valid kinds of PORT and EPRT that curl can send -<strip> -^PORT \d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3} -^EPRT \|1\|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\|\d{1,5}\| -</strip> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD path -PORT 127,0,0,1,5,109 -TYPE I -STOR 531 -QUIT -</protocol> - -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test532 b/Utilities/cmcurl-7.19.0/tests/data/test532 deleted file mode 100644 index 6baed50..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test532 +++ /dev/null @@ -1,63 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -RETR -multi -</keywords> -</info> - -# Server-side -<reply> -<data> -file contents should appear once for each file -</data> -<datacheck> -file contents should appear once for each file -file contents should appear once for each file -file contents should appear once for each file -file contents should appear once for each file -</datacheck> -</reply> - -# Client-side -<client> -<server> -ftp -</server> -<tool> -lib532 -</tool> - <name> -FTP RETR same file using reset handles between each transfer - </name> - <command> -ftp://%HOSTIP:%FTPPORT/path/532 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD path -EPSV -TYPE I -SIZE 532 -RETR 532 -EPSV -SIZE 532 -RETR 532 -EPSV -SIZE 532 -RETR 532 -EPSV -SIZE 532 -RETR 532 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test533 b/Utilities/cmcurl-7.19.0/tests/data/test533 deleted file mode 100644 index 80ec6b2..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test533 +++ /dev/null @@ -1,55 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -RETR -multi -</keywords> -</info> - -# Server-side -<reply> -<data> -</data> - -<servercmd> -REPLY RETR 550 the file doesn't exist -REPLY SIZE 550 Can't check for file existence -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> -<tool> -lib533 -</tool> - <name> -FTP RETR a non-existing file twice using the multi interface - </name> - <command> -ftp://%HOSTIP:%FTPPORT/path/533 ftp://%HOSTIP:%FTPPORT/path/533 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD path -EPSV -TYPE I -SIZE 533 -RETR 533 -EPSV -SIZE 533 -RETR 533 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test534 b/Utilities/cmcurl-7.19.0/tests/data/test534 deleted file mode 100644 index e839457..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test534 +++ /dev/null @@ -1,52 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -RETR -multi -</keywords> -</info> - -# Server-side -<reply> -<data> -</data> - -<servercmd> -REPLY RETR 550 the file doesn't exist -REPLY SIZE 550 Can't check for file existence -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> -<tool> -lib533 -</tool> - <name> -FTP RETR twice using multi: non-existing host and non-existing file - </name> - <command> -ftp://non-existing-host.haxx.se/path/534 ftp://%HOSTIP:%FTPPORT/path/534 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD path -EPSV -TYPE I -SIZE 534 -RETR 534 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test535 b/Utilities/cmcurl-7.19.0/tests/data/test535 deleted file mode 100644 index 5ef3eb6..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test535 +++ /dev/null @@ -1,69 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -multi -</keywords> -</info> - -<reply> -<data mode="text"> -HTTP/1.1 404 Badness -Date: Thu, 09 Nov 2010 14:49:00 GMT -ETag: "21025-dc7-39462498" -Content-Length: 6 -Content-Type: text/html -Funny-head: yesyes - -hejsan -</data> -<data1> -HTTP/1.1 200 Fine -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 13 -Connection: close -Content-Type: text/html - -fine content -</data1> - -<datacheck> -fine content -</datacheck> - -</reply> - -# Client-side -<client> -<server> -http -</server> -# tool is what to use instead of 'curl' -<tool> -lib533 -</tool> - - <name> -HTTP GET multi two files with FAILONERROR - </name> - <command> -http://%HOSTIP:%HTTPPORT/535 http://%HOSTIP:%HTTPPORT/5350001 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -GET /535 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /5350001 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test536 b/Utilities/cmcurl-7.19.0/tests/data/test536 deleted file mode 100644 index c919e9e..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test536 +++ /dev/null @@ -1,65 +0,0 @@ -<testcase> -<reply> -<data mode="text"> -HTTP/1.1 404 Badness -Date: Thu, 09 Nov 2010 14:49:00 GMT -ETag: "21025-dc7-39462498" -Content-Length: 6 -Content-Type: text/html -Funny-head: yesyes - -hejsan -</data> -<data1> -HTTP/1.1 200 Fine -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Length: 13 -Connection: close -Content-Type: text/html - -fine content -</data1> - -<datacheck> -fine content -Finished! -</datacheck> - -<servercmd> -pipe: 1 -</servercmd> -</reply> - -# Client-side -<client> -<server> -http -</server> -# tool is what to use instead of 'curl' -<tool> -lib536 -</tool> - - <name> -HTTP GET multi two files with FAILONERROR and pipelining - </name> - <command> -http://%HOSTIP:%HTTPPORT/536 http://%HOSTIP:%HTTPPORT/5360001 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -GET /536 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /5360001 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test537 b/Utilities/cmcurl-7.19.0/tests/data/test537 deleted file mode 100644 index 8e1fd1c..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test537 +++ /dev/null @@ -1,57 +0,0 @@ -<testcase> -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 -Connection: close -Content-Type: text/html -Funny-head: yesyes - --foo- -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> -<features> -getrlimit -</features> -# tool is what to use instead of 'curl' -<tool> -lib537 -</tool> -# precheck is a command line to run before the test, to see if we can execute -# the test or not -<precheck> -./libtest/lib537 check -</precheck> - - <name> -HTTP GET with a HUGE number of file descriptors open - </name> - <command> -http://%HOSTIP:%HTTPPORT/537 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -GET /537 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test538 b/Utilities/cmcurl-7.19.0/tests/data/test538 deleted file mode 100644 index 68962be..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test538 +++ /dev/null @@ -1,46 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -FAILURE -multi -</keywords> -</info> - -# Server-side -<reply> -<servercmd> -REPLY PASS 314 bluah you f00l! -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> -# NOTE that we use the 504 tool for this case -<tool> -lib504 -</tool> - <name> -FTP multi-interface download, failed login: PASS not valid - </name> - <command> -ftp://%HOSTIP:%FTPPORT/538 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -# ok, the error code here is supposed to be 100 for the fine case since -# that's just how lib504.c is written -<errorcode> -100 -</errorcode> -<protocol> -USER anonymous -PASS ftp@example.com -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test539 b/Utilities/cmcurl-7.19.0/tests/data/test539 deleted file mode 100644 index f673f28..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test539 +++ /dev/null @@ -1,63 +0,0 @@ -<testcase> -# -# Server-side -<reply> -<data mode="text"> -file contents -</data> - -<datacheck> -file contents -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -</reply> - -# Client-side -<client> -<server> -ftp -</server> -# tool is what to use instead of 'curl' -<tool> -lib539 -</tool> - - <name> -Two FTP fetches using different CURLOPT_FTP_FILEMETHOD - </name> - <command> -ftp://%HOSTIP:%FTPPORT/path/to/the/file/539 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD path/to/the/file -EPSV -TYPE I -SIZE 539 -RETR 539 -SYST -CWD /nowhere/anywhere -EPSV -TYPE A -LIST path/to/the/file/539./ -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test54 b/Utilities/cmcurl-7.19.0/tests/data/test54 deleted file mode 100644 index fa4f226..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test54 +++ /dev/null @@ -1,45 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -followlocation -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 302 This is a weirdo text message swsclose -Connection: close -Location: - -This server reply is for testing -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP with blank Location: - </name> - <command> -http://%HOSTIP:%HTTPPORT/want/54 -L -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /want/54 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test540 b/Utilities/cmcurl-7.19.0/tests/data/test540 deleted file mode 100644 index 8462db1..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test540 +++ /dev/null @@ -1,99 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP proxy -HTTP proxy Digest auth -multi -</keywords> -</info> - -# Server-side -<reply> - -# this is returned first since we get no proxy-auth -<data> -HTTP/1.1 407 Authorization Required to proxy me my dear -Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345" -Content-Length: 33 - -And you should ignore this data. -</data> - -# then this is returned when we get proxy-auth -<data1000> -HTTP/1.1 200 OK -Content-Length: 21 -Server: no - -Nice proxy auth sir! -</data1000> - -<datacheck> -HTTP/1.1 407 Authorization Required to proxy me my dear -Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345" -Content-Length: 33 - -HTTP/1.1 200 OK -Content-Length: 21 -Server: no - -Nice proxy auth sir! -HTTP/1.1 200 OK -Content-Length: 21 -Server: no - -Nice proxy auth sir! -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> -# tool is what to use instead of 'curl' -<tool> -lib540 -</tool> -<features> -crypto -</features> - <name> -HTTP proxy auth Digest multi API re-using connection - </name> - <command> -http://test.remote.server.com/path/540 http://%HOSTIP:%HTTPPORT silly:person custom.set.host.name -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -<protocol> -GET http://test.remote.server.com/path/540 HTTP/1.1 -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Host: custom.set.host.name - -GET http://test.remote.server.com/path/540 HTTP/1.1 -Proxy-Authorization: Digest username="silly", realm="weirdorealm", nonce="12345", uri="/path/540", response="ca507dcf189196b6a5374d3233042261" -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Host: custom.set.host.name - -GET http://test.remote.server.com/path/540 HTTP/1.1 -Proxy-Authorization: Digest username="silly", realm="weirdorealm", nonce="12345", uri="/path/540", response="ca507dcf189196b6a5374d3233042261" -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Host: custom.set.host.name - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test541 b/Utilities/cmcurl-7.19.0/tests/data/test541 deleted file mode 100644 index d6776a3..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test541 +++ /dev/null @@ -1,51 +0,0 @@ -<testcase> -# Server-side -<reply> -</reply> - -# Client-side -<client> -<server> -ftp -</server> -# tool is what to use instead of 'curl' -<tool> -lib541 -</tool> - - <name> -FTP upload and upload same file again without rewind - </name> - <command> -ftp://%HOSTIP:%FTPPORT/541 log/upload541 -</command> -<file name="log/upload541"> -Contents -of -a file -to verify -ftp -upload - - -works? -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<upload> -</upload> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE I -STOR 541 -EPSV -STOR 541 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test542 b/Utilities/cmcurl-7.19.0/tests/data/test542 deleted file mode 100644 index 4904ed5..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test542 +++ /dev/null @@ -1,57 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -RETR -</keywords> -</info> -# Server-side -<reply> -<data> -data - to - see -that FTP -works - so does it? -</data> -<datacheck> -Content-Length: 51 -Accept-ranges: bytes -</datacheck> -</reply> - -# Client-side -<client> -<server> -ftp -</server> -<tool> -lib542 -</tool> - <name> -FTP a file with NOBODY yes and HEADER no - </name> - <command> -ftp://%HOSTIP:%FTPPORT/542 -</command> - -</client> - -# Verify data after the test has been "shot" -# -# There's no MTDM in the protocol here since this code doesn't ask for the -# time/date of the file -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -TYPE I -SIZE 542 -REST 0 -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test543 b/Utilities/cmcurl-7.19.0/tests/data/test543 deleted file mode 100644 index 4556330..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test543 +++ /dev/null @@ -1,35 +0,0 @@ -<testcase> -<info> -<keywords> -curl_easy_escape -</keywords> -</info> -# Server-side - -# Client-side -<client> -<server> -none -</server> -<tool> -lib543 -</tool> - <name> -curl_easy_escape - </name> - <command> -- -</command> - -</client> - -# Verify data after the test has been "shot" -# -# There's no MTDM in the protocol here since this code doesn't ask for the -# time/date of the file -<verify> -<stdout> -%9C%26K%3DI%04%A1%01%E0%D8%7C%20%B7%EFS%29%FA%1DW%E1 -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test544 b/Utilities/cmcurl-7.19.0/tests/data/test544 deleted file mode 100644 index 54f81d3..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test544 +++ /dev/null @@ -1,49 +0,0 @@ -<testcase> -# -# Server-side -<reply> -<data mode="text"> -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 3 - -OK -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> -# tool is what to use instead of 'curl' -<tool> -lib544 -</tool> - - <name> -HTTP POST text data using CURLOPT_COPYPOSTFIELDS - </name> - <command> -http://%HOSTIP:%HTTPPORT/544 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol nonewline="yes"> -POST /544 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 4 -Content-Type: application/x-www-form-urlencoded - -This -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test545 b/Utilities/cmcurl-7.19.0/tests/data/test545 Binary files differdeleted file mode 100644 index 9da1985..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test545 +++ /dev/null diff --git a/Utilities/cmcurl-7.19.0/tests/data/test546 b/Utilities/cmcurl-7.19.0/tests/data/test546 deleted file mode 100644 index 6834616..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test546 +++ /dev/null @@ -1,70 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -PASV -RETR -multi -</keywords> -</info> -# Server-side -<reply> -<data nocheck="1"> -data - to - see -that FTP -works - so does it? -</data> - -<servercmd> -REPLY RETR 550 the file doesn't exist -COUNT RETR 1 -REPLY SIZE 550 Can't check for file existence -COUNT SIZE 1 -</servercmd> -</reply> - -# Client-side -<client> -<server> -ftp -</server> -<tool> -lib533 -</tool> - <name> -FTP RETR a non-existing file then a found one using the multi interface - </name> - <command> -ftp://%HOSTIP:%FTPPORT/path/546 ftp://%HOSTIP:%FTPPORT/path/546 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -CWD path -EPSV -TYPE I -SIZE 546 -RETR 546 -EPSV -SIZE 546 -RETR 546 -QUIT -</protocol> -<stdout> -data - to - see -that FTP -works - so does it? -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test547 b/Utilities/cmcurl-7.19.0/tests/data/test547 deleted file mode 100644 index 9fe079e..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test547 +++ /dev/null @@ -1,131 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP POST -POST callback -HTTP proxy NTLM auth -</keywords> -</info> -# Server-side -<reply> - -<data> -HTTP/1.1 407 Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Proxy-Authenticate: Blackmagic realm="gimme all yer s3cr3ts" -Proxy-Authenticate: Basic realm="gimme all yer s3cr3ts" -Proxy-Authenticate: NTLM -Content-Type: text/html; charset=iso-8859-1 -Connection: close - -This is not the real page -</data> - -# this is returned first since we get no proxy-auth -<data1001> -HTTP/1.1 407 Authorization Required to proxy me my dear -Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== -Content-Length: 34 - -Hey you, authenticate or go away! -</data1001> - -# This is supposed to be returned when the server gets the second -# Authorization: NTLM line passed-in from the client -<data1002> -HTTP/1.1 200 Things are fine in proxy land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 42 - -Contents of that page you requested, sir. -</data1002> - -<datacheck> -HTTP/1.1 407 Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Proxy-Authenticate: Blackmagic realm="gimme all yer s3cr3ts" -Proxy-Authenticate: Basic realm="gimme all yer s3cr3ts" -Proxy-Authenticate: NTLM -Content-Type: text/html; charset=iso-8859-1 -Connection: close - -HTTP/1.1 407 Authorization Required to proxy me my dear -Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== -Content-Length: 34 - -HTTP/1.1 200 Things are fine in proxy land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 42 - -Contents of that page you requested, sir. -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> -# tool to use -<tool> -lib547 -</tool> -<features> -NTLM -</features> - <name> -HTTP proxy auth NTLM with POST data from read callback - </name> - <command> -http://test.remote.server.com/path/547 http://%HOSTIP:%HTTPPORT s1lly:pers0n -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -# We strip off a large chunk of the type-2 NTLM message since it depends on -# the local host name and thus differs on different machines! -<strippart> -s/^(Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA).*/$1/ -</strippart> -<protocol> -POST http://test.remote.server.com/path/547 HTTP/1.1 -User-Agent: curl/7.13.2-CVS (i686-pc-linux-gnu) libcurl/7.13.2-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13 -Host: test.remote.server.com -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Content-Length: 36 -Content-Type: application/x-www-form-urlencoded - -this is the blurb we want to upload -POST http://test.remote.server.com/path/547 HTTP/1.1 -Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= -User-Agent: curl/7.13.2-CVS (i686-pc-linux-gnu) libcurl/7.13.2-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13 -Host: test.remote.server.com -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Content-Length: 0 -Content-Type: application/x-www-form-urlencoded - -POST http://test.remote.server.com/path/547 HTTP/1.1 -Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA -User-Agent: curl/7.13.2-CVS (i686-pc-linux-gnu) libcurl/7.13.2-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13 -Host: test.remote.server.com -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Content-Length: 36 -Content-Type: application/x-www-form-urlencoded - -this is the blurb we want to upload -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test548 b/Utilities/cmcurl-7.19.0/tests/data/test548 deleted file mode 100644 index bacccfc..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test548 +++ /dev/null @@ -1,130 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP POST -HTTP proxy NTLM auth -</keywords> -</info> -# Server-side -<reply> - -<data> -HTTP/1.1 407 Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Proxy-Authenticate: Blackmagic realm="gimme all yer s3cr3ts" -Proxy-Authenticate: Basic realm="gimme all yer s3cr3ts" -Proxy-Authenticate: NTLM -Content-Type: text/html; charset=iso-8859-1 -Connection: close - -This is not the real page -</data> - -# this is returned first since we get no proxy-auth -<data1001> -HTTP/1.1 407 Authorization Required to proxy me my dear -Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== -Content-Length: 34 - -Hey you, authenticate or go away! -</data1001> - -# This is supposed to be returned when the server gets the second -# Authorization: NTLM line passed-in from the client -<data1002> -HTTP/1.1 200 Things are fine in proxy land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 42 - -Contents of that page you requested, sir. -</data1002> - -<datacheck> -HTTP/1.1 407 Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Proxy-Authenticate: Blackmagic realm="gimme all yer s3cr3ts" -Proxy-Authenticate: Basic realm="gimme all yer s3cr3ts" -Proxy-Authenticate: NTLM -Content-Type: text/html; charset=iso-8859-1 -Connection: close - -HTTP/1.1 407 Authorization Required to proxy me my dear -Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== -Content-Length: 34 - -HTTP/1.1 200 Things are fine in proxy land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 42 - -Contents of that page you requested, sir. -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> -# tool to use -<tool> -lib548 -</tool> -<features> -NTLM -</features> - <name> -HTTP proxy auth NTLM with POST data from CURLOPT_POSTFIELDS - </name> - <command> -http://test.remote.server.com/path/548 http://%HOSTIP:%HTTPPORT s1lly:pers0n -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -# We strip off a large chunk of the type-2 NTLM message since it depends on -# the local host name and thus differs on different machines! -<strippart> -s/^(Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA).*/$1/ -</strippart> -<protocol> -POST http://test.remote.server.com/path/548 HTTP/1.1 -User-Agent: curl/7.13.2-CVS (i686-pc-linux-gnu) libcurl/7.13.2-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13 -Host: test.remote.server.com -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Content-Length: 36 -Content-Type: application/x-www-form-urlencoded - -this is the blurb we want to upload -POST http://test.remote.server.com/path/548 HTTP/1.1 -Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= -User-Agent: curl/7.13.2-CVS (i686-pc-linux-gnu) libcurl/7.13.2-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13 -Host: test.remote.server.com -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Content-Length: 0 -Content-Type: application/x-www-form-urlencoded - -POST http://test.remote.server.com/path/548 HTTP/1.1 -Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA -User-Agent: curl/7.13.2-CVS (i686-pc-linux-gnu) libcurl/7.13.2-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13 -Host: test.remote.server.com -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Content-Length: 36 -Content-Type: application/x-www-form-urlencoded - -this is the blurb we want to upload -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test549 b/Utilities/cmcurl-7.19.0/tests/data/test549 deleted file mode 100644 index b6678cb..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test549 +++ /dev/null @@ -1,65 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -CURLOPT_PROXY_TRANSFER_MODE -CURLOPT_PROXY -</keywords> -</info> - -# -# Server-side -<reply> -<data nocheck="1"> -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 - -hello -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> -<features> -ftp -</features> -<tool> -lib549 -</tool> - <name> -FTP RETR over proxy with CURLOPT_PROXY_TRANSFER_MODE - </name> -# first URL then proxy - <command> -ftp://www.haxx.se/moo/549 http://%HOSTIP:%HTTPPORT -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET ftp://www.haxx.se/moo/549;type=i HTTP/1.1 -Host: www.haxx.se:21 -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> -<stdout mode="text"> -hello -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test55 b/Utilities/cmcurl-7.19.0/tests/data/test55 deleted file mode 100644 index 6de5f36..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test55 +++ /dev/null @@ -1,66 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -followlocation -</keywords> -</info> -<reply> -<data> -HTTP/1.1 302 OK swsclose -Location: 550002 -Date: Thu, 09 Nov 2010 14:50:00 GMT -Connection: close - -</data> -<data2> -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:50:00 GMT -Connection: close - -body -</data2> -<datacheck> -HTTP/1.1 302 OK swsclose -Location: 550002 -Date: Thu, 09 Nov 2010 14:50:00 GMT -Connection: close - -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:50:00 GMT -Connection: close - -body -</datacheck> -</reply> - -<client> -<server> -http -</server> - <name> -HTTP follow redirect with single slash in path - </name> - <command> -http://%HOSTIP:%HTTPPORT/55 -L -</command> -</client> - -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /55 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /550002 HTTP/1.1 -User-Agent: curl/7.10 (i686-pc-linux-gnu) libcurl/7.10 OpenSSL/0.9.6c ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test550 b/Utilities/cmcurl-7.19.0/tests/data/test550 deleted file mode 100644 index ac724ad..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test550 +++ /dev/null @@ -1,65 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -CURLOPT_PROXY_TRANSFER_MODE -CURLOPT_PROXY -</keywords> -</info> - -# -# Server-side -<reply> -<data nocheck="1"> -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 - -hello -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> -<features> -ftp -</features> -<tool> -lib549 -</tool> - <name> -FTP RETR over proxy with CURLOPT_PROXY_TRANSFER_MODE and ascii transfer - </name> -# first URL then proxy - <command> -ftp://www.haxx.se/moo/550 http://%HOSTIP:%HTTPPORT ascii -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET ftp://www.haxx.se/moo/550;type=a HTTP/1.1 -Host: www.haxx.se:21 -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> -<stdout mode="text"> -hello -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test551 b/Utilities/cmcurl-7.19.0/tests/data/test551 deleted file mode 100644 index acd30da..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test551 +++ /dev/null @@ -1,103 +0,0 @@ -<testcase> -<info> -# this test is meant to be exactly like 547 but using Digest instead of NTLM -<keywords> -HTTP -HTTP POST -POST callback -HTTP proxy Digest auth -</keywords> -</info> -# Server-side -<reply> - -# as a bonus, ww use an excessive nonce length -<data> -HTTP/1.1 407 Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Proxy-Authenticate: Digest realm="something fun to read", nonce="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" -Content-Type: text/html; charset=iso-8859-1 -Connection: close - -This is not the real page -</data> - -# This is supposed to be returned when the server gets the Digest -# Authorization: line passed-in from the client -<data1000> -HTTP/1.1 200 Things are fine in proxy land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 42 - -Contents of that page you requested, sir. -</data1000> - -<datacheck> -HTTP/1.1 407 Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Proxy-Authenticate: Digest realm="something fun to read", nonce="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" -Content-Type: text/html; charset=iso-8859-1 -Connection: close - -HTTP/1.1 200 Things are fine in proxy land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 42 - -Contents of that page you requested, sir. -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> -# tool to use -<tool> -lib547 -</tool> -<features> -</features> - <name> -HTTP proxy auth Digest with POST data from read callback - </name> - <command> -http://test.remote.server.com/path/551 http://%HOSTIP:%HTTPPORT s1lly:pers0n -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -# We strip off a large chunk of the type-2 NTLM message since it depends on -# the local host name and thus differs on different machines! -<strippart> -s/^(Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA).*/$1/ -</strippart> -<protocol> -POST http://test.remote.server.com/path/551 HTTP/1.1 -Host: test.remote.server.com -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Content-Length: 36 -Content-Type: application/x-www-form-urlencoded - -this is the blurb we want to upload -POST http://test.remote.server.com/path/551 HTTP/1.1 -Proxy-Authorization: Digest username="s1lly", realm="something fun to read", nonce="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", uri="/path/551", response="3325240726fbdaf1e61f3a0dd40b930c" -Host: test.remote.server.com -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Content-Length: 36 -Content-Type: application/x-www-form-urlencoded - -this is the blurb we want to upload -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test552 b/Utilities/cmcurl-7.19.0/tests/data/test552 Binary files differdeleted file mode 100644 index 7536d16..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test552 +++ /dev/null diff --git a/Utilities/cmcurl-7.19.0/tests/data/test553 b/Utilities/cmcurl-7.19.0/tests/data/test553 deleted file mode 100644 index 22671f1..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test553 +++ /dev/null @@ -1,67 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP POST -POST callback -huge request header -</keywords> -</info> -# Server-side -<reply> - -<data> -HTTP/1.1 200 Fine! -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Content-Length: 6 - -hello -</data> - -</reply> - -# Client-side -<client> -<server> -http -</server> -# tool to use -<tool> -lib553 -</tool> -<features> -</features> - <name> -HTTP post with huge request headers and post data from callback - </name> - <command> -http://%HOSTIP:%HTTPPORT/path/553 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -# We strip off a large chunk of the type-2 NTLM message since it depends on -# the local host name and thus differs on different machines! -<protocol nonewline="yes"> -POST /path/553 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Header0: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -Header1: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -Header2: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -Header3: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -Header4: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -Header5: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -Header6: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -Header7: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -Content-Length: 40960 -Content-Type: application/x-www-form-urlencoded - -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test554 b/Utilities/cmcurl-7.19.0/tests/data/test554 deleted file mode 100644 index c41661d..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test554 +++ /dev/null @@ -1,68 +0,0 @@ -<testcase> -# -# Server-side -<reply> -<data mode="text"> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake swsclose -Connection: close -Content-Type: text/html - -hello -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> -# tool is what to use instead of 'curl' -<tool> -lib554 -</tool> - - <name> -HTTP multi-part formpost using read callback for the file part - </name> - <command> -http://%HOSTIP:%HTTPPORT/554 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strippart> -s/^------------------------------[a-z0-9]*/------------------------------/ -s/boundary=----------------------------[a-z0-9]*/boundary=----------------------------/ -</strippart> -# Note that the stripping above removes 12 bytes from every occurance of the -# boundary string and since 4 of them are in the body contents, we see -# 415 - (4*12) here == 367 bytes. -<protocol> -POST /554 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 415 -Expect: 100-continue -Content-Type: multipart/form-data; boundary=---------------------------- - ------------------------------- -Content-Disposition: form-data; name="sendfile"; filename="postit2.c" - -this is what we post to the silly web server - ------------------------------- -Content-Disposition: form-data; name="filename" - -postit2.c ------------------------------- -Content-Disposition: form-data; name="submit" - -send --------------------------------- -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test555 b/Utilities/cmcurl-7.19.0/tests/data/test555 deleted file mode 100644 index ae20074..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test555 +++ /dev/null @@ -1,136 +0,0 @@ -<testcase> -# NOTE: this test case is a duplicate of 547 but the tool is built to use the -# multi interface instead of easy, but that shouldn't be noticable at all in -# this file! -<info> -<keywords> -HTTP -HTTP POST -POST callback -HTTP proxy NTLM auth -multi -</keywords> -</info> - -# Server-side -<reply> - -<data> -HTTP/1.1 407 Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Proxy-Authenticate: Blackmagic realm="gimme all yer s3cr3ts" -Proxy-Authenticate: Basic realm="gimme all yer s3cr3ts" -Proxy-Authenticate: NTLM -Content-Type: text/html; charset=iso-8859-1 -Connection: close - -This is not the real page -</data> - -# this is returned first since we get no proxy-auth -<data1001> -HTTP/1.1 407 Authorization Required to proxy me my dear -Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== -Content-Length: 34 - -Hey you, authenticate or go away! -</data1001> - -# This is supposed to be returned when the server gets the second -# Authorization: NTLM line passed-in from the client -<data1002> -HTTP/1.1 200 Things are fine in proxy land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 42 - -Contents of that page you requested, sir. -</data1002> - -<datacheck> -HTTP/1.1 407 Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Proxy-Authenticate: Blackmagic realm="gimme all yer s3cr3ts" -Proxy-Authenticate: Basic realm="gimme all yer s3cr3ts" -Proxy-Authenticate: NTLM -Content-Type: text/html; charset=iso-8859-1 -Connection: close - -HTTP/1.1 407 Authorization Required to proxy me my dear -Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== -Content-Length: 34 - -HTTP/1.1 200 Things are fine in proxy land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 42 - -Contents of that page you requested, sir. -</datacheck> -</reply> - -# Client-side -<client> -<server> -http -</server> -# tool to use -<tool> -lib555 -</tool> -<features> -NTLM -</features> - <name> -HTTP proxy auth NTLM with POST data from read callback multi-if - </name> - <command> -http://test.remote.server.com/path/555 http://%HOSTIP:%HTTPPORT s1lly:pers0n -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent: curl/.* -</strip> -# We strip off a large chunk of the type-2 NTLM message since it depends on -# the local host name and thus differs on different machines! -<strippart> -s/^(Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA).*/$1/ -</strippart> -<protocol> -POST http://test.remote.server.com/path/555 HTTP/1.1 -User-Agent: curl/7.13.2-CVS (i686-pc-linux-gnu) libcurl/7.13.2-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13 -Host: test.remote.server.com -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Content-Length: 36 -Content-Type: application/x-www-form-urlencoded - -this is the blurb we want to upload -POST http://test.remote.server.com/path/555 HTTP/1.1 -Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= -User-Agent: curl/7.13.2-CVS (i686-pc-linux-gnu) libcurl/7.13.2-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13 -Host: test.remote.server.com -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Content-Length: 0 -Content-Type: application/x-www-form-urlencoded - -POST http://test.remote.server.com/path/555 HTTP/1.1 -Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA -User-Agent: curl/7.13.2-CVS (i686-pc-linux-gnu) libcurl/7.13.2-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13 -Host: test.remote.server.com -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive -Content-Length: 36 -Content-Type: application/x-www-form-urlencoded - -this is the blurb we want to upload -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test556 b/Utilities/cmcurl-7.19.0/tests/data/test556 deleted file mode 100644 index 95901be..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test556 +++ /dev/null @@ -1,50 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -</keywords> -</info> - -<reply> -<data> -HTTP/1.1 200 OK -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -Content-Length: 6 -Connection: close - --foo- -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> -<tool> -lib556 -</tool> - <name> -send and recv HTTP - </name> - <command> -http://%HOSTIP:%HTTPPORT -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /556 HTTP/1.2 -Host: ninja - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test557 b/Utilities/cmcurl-7.19.0/tests/data/test557 deleted file mode 100644 index 0929e0a..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test557 +++ /dev/null @@ -1,37 +0,0 @@ -<testcase> -# -# Server-side -<reply> -</reply> - -# Client-side -<client> -<server> -none -</server> -# tool is what to use instead of 'curl' -<tool> -lib557 -</tool> - -<name> -curl_mprintf() testing -</name> -<command> -nothing -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<stdout mode="text"> -All curl_mprintf() unsigned int tests OK! -All curl_mprintf() signed int tests OK! -All curl_mprintf() unsigned long tests OK! -All curl_mprintf() signed long tests OK! -All curl_mprintf() curl_off_t tests OK! -</stdout> -</verify> - -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test56 b/Utilities/cmcurl-7.19.0/tests/data/test56 deleted file mode 100644 index 48ec007..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test56 +++ /dev/null @@ -1,61 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP POST -chunked Transfer-Encoding -config file --A -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.0 200 OK swsclose -Funny-head: yesyes - -This is the proof it works -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP POST with *HUGE* request and chunked transfer-encoding - </name> - <stdin> -# -data "we post this" -# -# enforce chunky post! -header "Transfer-Encoding: chunked" -# -# Set the user-agent using a short-option: --A "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" -# - </stdin> - <command> --K - %HOSTIP:%HTTPPORT/that.site.com/56 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<protocol> -POST /that.site.com/56 HTTP/1.1 -User-Agent: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -Host: %HOSTIP:%HTTPPORT -Accept: */* -Transfer-Encoding: chunked -Content-Type: application/x-www-form-urlencoded - -c -we post this -0 - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test57 b/Utilities/cmcurl-7.19.0/tests/data/test57 deleted file mode 100644 index ab04c9c..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test57 +++ /dev/null @@ -1,48 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET ---write-out -</keywords> -</info> - -# Server-side -<reply> -<data nocheck="1"> -HTTP/1.1 200 OK swsclose -Funny-head: yesyes -Content-Type: text/html; charset=ISO-8859-4 - -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP content-type with spaces in - </name> - <command> --w "%{content_type}\n" http://%HOSTIP:%HTTPPORT/57 -o log/out57 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<stdout mode="text"> -text/html; charset=ISO-8859-4 -</stdout> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /57 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test58 b/Utilities/cmcurl-7.19.0/tests/data/test58 deleted file mode 100644 index 1cc73e8..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test58 +++ /dev/null @@ -1,51 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP PUT -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.0 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake - -blablabla - -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> -<name> -HTTP PUT from file with weird letters -</name> - <command> -http://%HOSTIP:%HTTPPORT/we/want/ -T log/58te[]st.txt -g -</command> -<file name="log/58te[]st.txt"> -a few bytes -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -PUT /we/want/58te%5B%5Dst%2Etxt HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 12 -Expect: 100-continue - -a few bytes -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test59 b/Utilities/cmcurl-7.19.0/tests/data/test59 deleted file mode 100644 index fe34d7e..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test59 +++ /dev/null @@ -1,47 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -</keywords> -</info> -# -# Server-side -<reply name="1"> -<data> -HTTP/1.0 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake - -hej -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP URL with slash but with "parameter" - </name> - <command> -"http://%HOSTIP:%HTTPPORT?mooo/59" -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /?mooo/59 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test6 b/Utilities/cmcurl-7.19.0/tests/data/test6 deleted file mode 100644 index 0185dbe..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test6 +++ /dev/null @@ -1,49 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP set cookie -cookies -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Type: text/html -Funny-head: yesyes -swsclose: booo - -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP with simple cookie send - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/want/that/page/6 -b "name=contents;name2=content2" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /we/want/that/page/6 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Cookie: name=contents;name2=content2 - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test60 b/Utilities/cmcurl-7.19.0/tests/data/test60 deleted file mode 100644 index 3fe1ffa..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test60 +++ /dev/null @@ -1,57 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP PUT -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.0 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake - -blablabla - -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> -<name> -HTTP PUT from stdin with wrong content-length -</name> - <command> -http://%HOSTIP:%HTTPPORT/bzz/60 -T - -H "Content-Length: 1" -</command> -<stdin> -more than one byte -</stdin> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -PUT /bzz/60 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Transfer-Encoding: chunked -Content-Length: 1 -Expect: 100-continue - -13 -more than one byte - -0 - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test600 b/Utilities/cmcurl-7.19.0/tests/data/test600 deleted file mode 100644 index e7fa164..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test600 +++ /dev/null @@ -1,42 +0,0 @@ -<testcase> -<info> -<keywords> -SFTP -</keywords> -</info> - -# -# Server-side -<reply> -<data> -Test data -for ssh test -</data> -</reply> - -# -# Client-side -<client> -<server> -sftp -</server> - <name> -SFTP retrieval - </name> - <command> ---key curl_client_key --pubkey curl_client_key.pub -u %USER: sftp://%HOSTIP:%SSHPORT%PWD/log/file600.txt -</command> -<file name="log/file600.txt"> -Test data -for ssh test -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test601 b/Utilities/cmcurl-7.19.0/tests/data/test601 deleted file mode 100644 index c74c619..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test601 +++ /dev/null @@ -1,42 +0,0 @@ -<testcase> -<info> -<keywords> -SCP -</keywords> -</info> - -# -# Server-side -<reply> -<data> -Test data -for ssh test -</data> -</reply> - -# -# Client-side -<client> -<server> -scp -</server> - <name> -SCP retrieval - </name> - <command> ---key curl_client_key --pubkey curl_client_key.pub -u %USER: scp://%HOSTIP:%SSHPORT%PWD/log/file601.txt -</command> -<file name="log/file601.txt"> -Test data -for ssh test -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test602 b/Utilities/cmcurl-7.19.0/tests/data/test602 deleted file mode 100644 index 40aacce..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test602 +++ /dev/null @@ -1,43 +0,0 @@ -<testcase> -<info> -<keywords> -SFTP -SFTP put -</keywords> -</info> - -# -# Server-side -<reply> -</reply> - -# -# Client-side -<client> -<server> -sftp -</server> - <name> -SFTP put - </name> - <command> ---key curl_client_key --pubkey curl_client_key.pub -u %USER: -T log/file602.txt sftp://%HOSTIP:%SSHPORT%PWD/log/upload.602 -</command> -<file name="log/file602.txt"> -Test data -for ssh upload test -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<upload> -Test data -for ssh upload test -</upload> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test603 b/Utilities/cmcurl-7.19.0/tests/data/test603 deleted file mode 100644 index 9124f78..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test603 +++ /dev/null @@ -1,43 +0,0 @@ -<testcase> -<info> -<keywords> -SCP -SCP upload -</keywords> -</info> - -# -# Server-side -<reply> -</reply> - -# -# Client-side -<client> -<server> -scp -</server> - <name> -SCP upload - </name> - <command> ---key curl_client_key --pubkey curl_client_key.pub -u %USER: -T log/file603.txt scp://%HOSTIP:%SSHPORT%PWD/log/upload.603 -</command> -<file name="log/file603.txt"> -Test data -for ssh upload test -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<upload> -Test data -for ssh upload test -</upload> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test604 b/Utilities/cmcurl-7.19.0/tests/data/test604 deleted file mode 100644 index c55a380..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test604 +++ /dev/null @@ -1,33 +0,0 @@ -<testcase> -<info> -<keywords> -SFTP -FAILURE -</keywords> -</info> - -# -# Client-side -<client> -<server> -sftp -</server> - <name> -SFTP retrieval of nonexistent file - </name> - <command> ---key curl_client_key --pubkey curl_client_key.pub -u %USER: sftp://%HOSTIP:%SSHPORT%PWD/not-a-valid-file-moooo -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<errorcode> -78 -</errorcode> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test605 b/Utilities/cmcurl-7.19.0/tests/data/test605 deleted file mode 100644 index 64d0a1e..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test605 +++ /dev/null @@ -1,33 +0,0 @@ -<testcase> -<info> -<keywords> -SCP -FAILURE -</keywords> -</info> - -# -# Client-side -<client> -<server> -scp -</server> - <name> -SCP retrieval of nonexistent file - </name> - <command> ---key curl_client_key --pubkey curl_client_key.pub -u %USER: scp://%HOSTIP:%SSHPORT%PWD/not-a-valid-file-moooo -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<errorcode> -79 -</errorcode> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test606 b/Utilities/cmcurl-7.19.0/tests/data/test606 deleted file mode 100644 index 6f3b5fc..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test606 +++ /dev/null @@ -1,33 +0,0 @@ -<testcase> -<info> -<keywords> -SFTP -FAILURE -</keywords> -</info> - -# -# Client-side -<client> -<server> -sftp -</server> - <name> -SFTP invalid user login - </name> - <command> ---key curl_client_key --pubkey curl_client_key.pub -u not-a-valid-user: sftp://%HOSTIP:%SSHPORT%PWD/not-a-valid-file-moooo -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<errorcode> -67 -</errorcode> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test607 b/Utilities/cmcurl-7.19.0/tests/data/test607 deleted file mode 100644 index 503c426..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test607 +++ /dev/null @@ -1,33 +0,0 @@ -<testcase> -<info> -<keywords> -SCP -FAILURE -</keywords> -</info> - -# -# Client-side -<client> -<server> -scp -</server> - <name> -SCP invalid user login - </name> - <command> ---key curl_client_key --pubkey curl_client_key.pub -u not-a-valid-user: scp://%HOSTIP:%SSHPORT%PWD/not-a-valid-file-moooo -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<errorcode> -67 -</errorcode> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test608 b/Utilities/cmcurl-7.19.0/tests/data/test608 deleted file mode 100644 index 0a307fb..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test608 +++ /dev/null @@ -1,44 +0,0 @@ -<testcase> -<info> -<keywords> -SFTP -post-quote -</keywords> -</info> - -# -# Server-side -<reply> -<data> -Test file for rename test -</data> -</reply> - -# -# Client-side -<client> -<server> -sftp -</server> - <name> -SFTP post-quote rename - </name> - <command> ---key curl_client_key --pubkey curl_client_key.pub -u %USER: -Q "-rename %PWD/log/file608.txt %PWD/log/file608-renamed.txt" sftp://%HOSTIP:%SSHPORT%PWD/log/file608.txt -</command> -<file name="log/file608.txt"> -Test file for rename test -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<file name="log/file608-renamed.txt"> -Test file for rename test -</file> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test609 b/Utilities/cmcurl-7.19.0/tests/data/test609 deleted file mode 100644 index d998a3b..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test609 +++ /dev/null @@ -1,45 +0,0 @@ -<testcase> -<info> -<keywords> -SFTP -post-quote -FAILURE -</keywords> -</info> - -# -# Server-side -<reply> -<data> -Test file for mkdir test -</data> -</reply> - -# -# Client-side -<client> -<server> -sftp -</server> - <name> -SFTP post-quote mkdir failure - </name> - <command> ---key curl_client_key --pubkey curl_client_key.pub -u %USER: -Q "-mkdir %PWD/log/file609.txt" sftp://%HOSTIP:%SSHPORT%PWD/log/file609.txt -</command> -<file name="log/file609.txt"> -Test file for mkdir test -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<errorcode> -21 -</errorcode> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test61 b/Utilities/cmcurl-7.19.0/tests/data/test61 deleted file mode 100644 index 1ec0fef..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test61 +++ /dev/null @@ -1,70 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -cookies -cookiejar -HTTP replaced headers -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Type: text/html -Funny-head: yesyes -Set-Cookie: test=yes; domain=foo.com; expires=Fri Feb 2 11:56:27 GMT 2035 -Set-Cookie: test2=yes; domain=host.foo.com; expires=Fri Feb 2 11:56:27 GMT 2035 -Set-Cookie: test3=maybe; domain=foo.com; path=/moo; secure -Set-Cookie: test4=no; domain=nope.foo.com; path=/moo; secure -Set-Cookie: test5=name; domain=anything.com; path=/ ; secure -Content-Length: 4 - -boo -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP with various cookies and custom Host: - </name> -# Explicitly set the time zone to a known good one, in case the user is -# using one of the 'right' zones that take into account leap seconds -# which causes the cookie expiry times to be different. -<setenv> -TZ=GMT -</setenv> - <command> -http://%HOSTIP:%HTTPPORT/we/want/61 -c log/jar61.txt -H "Host: www.host.foo.com" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /we/want/61 HTTP/1.1 -Accept: */* -Host: www.host.foo.com - -</protocol> -<file name="log/jar61.txt" mode="text"> -# Netscape HTTP Cookie File -# http://curl.haxx.se/rfc/cookie_spec.html -# This file was generated by libcurl! Edit at your own risk. - -.foo.com TRUE /we/want/ FALSE 2054030187 test yes -.host.foo.com TRUE /we/want/ FALSE 2054030187 test2 yes -.foo.com TRUE /moo TRUE 0 test3 maybe -</file> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test610 b/Utilities/cmcurl-7.19.0/tests/data/test610 deleted file mode 100644 index b81acae..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test610 +++ /dev/null @@ -1,47 +0,0 @@ -<testcase> -<info> -<keywords> -SFTP -post-quote -</keywords> -</info> - -# -# Server-side -<reply> -<data> -Dummy test file for rmdir test -</data> -</reply> - -# -# Client-side -<client> -<server> -sftp -</server> -<precheck> -perl %SRCDIR/libtest/test610.pl mkdir %PWD/log/test610.dir -</precheck> - <name> -SFTP post-quote rmdir - </name> - <command> ---key curl_client_key --pubkey curl_client_key.pub -u %USER: -Q "-rmdir %PWD/log/test610.dir" sftp://%HOSTIP:%SSHPORT%PWD/log/file610.txt -</command> -<postcheck> -perl %SRCDIR/libtest/test610.pl gone %PWD/log/test610.dir -</postcheck> -<file name="log/file610.txt"> -Dummy test file for rmdir test -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test611 b/Utilities/cmcurl-7.19.0/tests/data/test611 deleted file mode 100644 index 0016edc..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test611 +++ /dev/null @@ -1,47 +0,0 @@ -<testcase> -<info> -<keywords> -SFTP -post-quote -</keywords> -</info> - -# -# Server-side -<reply> -<data> -Dummy test file for rename test -</data> -</reply> - -# -# Client-side -<client> -<server> -sftp -</server> -<precheck> -perl %SRCDIR/libtest/test610.pl mkdir %PWD/log/test611.dir -</precheck> - <name> -SFTP post-quote rename - </name> - <command> ---key curl_client_key --pubkey curl_client_key.pub -u %USER: -Q "-rename %PWD/log/test611.dir %PWD/log/test611.new" sftp://%HOSTIP:%SSHPORT%PWD/log/file611.txt -</command> -<postcheck> -perl %SRCDIR/libtest/test610.pl rmdir %PWD/log/test611.new -</postcheck> -<file name="log/file611.txt"> -Dummy test file for rename test -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test612 b/Utilities/cmcurl-7.19.0/tests/data/test612 deleted file mode 100644 index 972656a..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test612 +++ /dev/null @@ -1,47 +0,0 @@ -<testcase> -<info> -<keywords> -SFTP -post-quote -</keywords> -</info> - -# -# Server-side -<reply> -<data nocheck="1"> -Dummy test file for remove test -</data> -</reply> - -# -# Client-side -<client> -<server> -sftp -</server> - <name> -SFTP post-quote remove file - </name> - <command> ---key curl_client_key --pubkey curl_client_key.pub -u %USER: -T log/file612.txt -Q "-rm %PWD/log/file612.txt" sftp://%HOSTIP:%SSHPORT%PWD/log/upload.612 -</command> -<postcheck> -perl %SRCDIR/libtest/test610.pl gone %PWD/log/test612.txt -</postcheck> -<file name="log/file612.txt"> -Dummy test file for remove test -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<upload> -Dummy test file for remove test -</upload> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test613 b/Utilities/cmcurl-7.19.0/tests/data/test613 deleted file mode 100644 index db0534a..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test613 +++ /dev/null @@ -1,48 +0,0 @@ -<testcase> -<info> -<keywords> -SFTP -directory -</keywords> -</info> - -# -# Server-side -<reply> -<datacheck> -d????????? N U U N ??? N NN:NN . -d????????? N U U N ??? N NN:NN .. -d????????? N U U N ??? N NN:NN asubdir --rw?rw?rw? 1 U U 37 Jan 1 2000 plainfile.txt --r-?r-?r-? 1 U U 47 Dec 31 2000 rofile.txt -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -sftp -</server> -<precheck> -perl %SRCDIR/libtest/test613.pl prepare %PWD/log/test613.dir -</precheck> - <name> -SFTP directory retrieval - </name> - <command> ---key curl_client_key --pubkey curl_client_key.pub -u %USER: sftp://%HOSTIP:%SSHPORT%PWD/log/test613.dir/ -</command> -<postcheck> -perl %SRCDIR/libtest/test613.pl postprocess %PWD/log/test613.dir %PWD/log/curl613.out -</postcheck> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test614 b/Utilities/cmcurl-7.19.0/tests/data/test614 deleted file mode 100644 index 1767743..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test614 +++ /dev/null @@ -1,49 +0,0 @@ -<testcase> -<info> -<keywords> -SFTP -pre-quote -directory -</keywords> -</info> - -# -# Server-side -<reply> -<datacheck> -d????????? N U U N ??? N NN:NN . -d????????? N U U N ??? N NN:NN .. -d????????? N U U N ??? N NN:NN asubdir --r-?r-?r-? 1 U U 37 Jan 1 2000 plainfile.txt --r-?r-?r-? 1 U U 47 Dec 31 2000 rofile.txt -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -sftp -</server> -<precheck> -perl %SRCDIR/libtest/test613.pl prepare %PWD/log/test614.dir -</precheck> - <name> -SFTP pre-quote chmod - </name> - <command> ---key curl_client_key --pubkey curl_client_key.pub -u %USER: -Q "chmod 444 %PWD/log/test614.dir/plainfile.txt" sftp://%HOSTIP:%SSHPORT%PWD/log/test614.dir/ -</command> -<postcheck> -perl %SRCDIR/libtest/test613.pl postprocess %PWD/log/test614.dir %PWD/log/curl614.out -</postcheck> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test615 b/Utilities/cmcurl-7.19.0/tests/data/test615 deleted file mode 100644 index 1249826..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test615 +++ /dev/null @@ -1,44 +0,0 @@ -<testcase> -<info> -<keywords> -SFTP -SFTP put -FAILURE -</keywords> -</info> - -# -# Client-side -<client> -<server> -sftp -</server> -<precheck> -perl %SRCDIR/libtest/test613.pl prepare %PWD/log/test615.dir -</precheck> - <name> -SFTP put remote failure - </name> - <command> ---key curl_client_key --pubkey curl_client_key.pub -u %USER: -T log/file615.txt sftp://%HOSTIP:%SSHPORT%PWD/log/test615.dir/rofile.txt -</command> -<postcheck> -perl %SRCDIR/libtest/test613.pl postprocess %PWD/log/test615.dir -</postcheck> -<file name="log/file615.txt"> -Test data -for ssh upload test -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<errorcode> -9 -</errorcode> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test616 b/Utilities/cmcurl-7.19.0/tests/data/test616 deleted file mode 100644 index 28e3402..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test616 +++ /dev/null @@ -1,39 +0,0 @@ -<testcase> -<info> -<keywords> -SFTP -zero-length -</keywords> -</info> - -# -# Server-side -<reply> -<data sendzero="yes"> -</data> -</reply> - -# -# Client-side -<client> -<server> -sftp -</server> - <name> -SFTP retrieval of empty file - </name> - <command> ---key curl_client_key --pubkey curl_client_key.pub -u %USER: sftp://%HOSTIP:%SSHPORT%PWD/log/file616.txt -</command> -<file name="log/file616.txt"> -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test617 b/Utilities/cmcurl-7.19.0/tests/data/test617 deleted file mode 100644 index acd7f74..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test617 +++ /dev/null @@ -1,39 +0,0 @@ -<testcase> -<info> -<keywords> -SCP -zero-length -</keywords> -</info> - -# -# Server-side -<reply> -<data sendzero="yes"> -</data> -</reply> - -# -# Client-side -<client> -<server> -scp -</server> - <name> -SCP retrieval of empty file - </name> - <command> ---key curl_client_key --pubkey curl_client_key.pub -u %USER: scp://%HOSTIP:%SSHPORT%PWD/log/file617.txt -</command> -<file name="log/file617.txt"> -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test618 b/Utilities/cmcurl-7.19.0/tests/data/test618 deleted file mode 100644 index 673bdcb..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test618 +++ /dev/null @@ -1,39 +0,0 @@ -<testcase> -<info> -<keywords> -SFTP -</keywords> -</info> - -# -# Client-side -<client> -<server> -sftp -</server> - <name> -SFTP retrieval of two files - </name> - <command> ---key curl_client_key --pubkey curl_client_key.pub -u %USER: sftp://%HOSTIP:%SSHPORT%PWD/log/file618.txt sftp://%HOSTIP:%SSHPORT%PWD/log/file618.txt -</command> -<file name="log/file618.txt"> -Test data -for ssh test -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<valgrind> -disable -</valgrind> -<stdout> -Test data -for ssh test -Test data -for ssh test -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test619 b/Utilities/cmcurl-7.19.0/tests/data/test619 deleted file mode 100644 index f43af52..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test619 +++ /dev/null @@ -1,39 +0,0 @@ -<testcase> -<info> -<keywords> -SCP -</keywords> -</info> - -# -# Client-side -<client> -<server> -scp -</server> - <name> -SCP retrieval of two files - </name> - <command> ---key curl_client_key --pubkey curl_client_key.pub -u %USER: scp://%HOSTIP:%SSHPORT%PWD/log/file619.txt scp://%HOSTIP:%SSHPORT%PWD/log/file619.txt -</command> -<file name="log/file619.txt"> -Test data -for ssh test -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<valgrind> -disable -</valgrind> -<stdout> -Test data -for ssh test -Test data -for ssh test -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test62 b/Utilities/cmcurl-7.19.0/tests/data/test62 deleted file mode 100644 index 1990b91..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test62 +++ /dev/null @@ -1,59 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP replaced headers -cookies -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.0 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Type: text/html - -boo -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP, send cookies when using custom Host: - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/want/62 -b log/jar62.txt -H "Host: www.host.foo.com" -</command> -<file name="log/jar62.txt"> -# Netscape HTTP Cookie File -# http://curl.haxx.se/rfc/cookie_spec.html -# This file was generated by libcurl! Edit at your own risk. - -.foo.com TRUE /we/want/ FALSE 2054030187 test yes -.host.foo.com TRUE /we/want/ FALSE 2054030187 test2 yes -.fake.host.foo.com TRUE /we/want/ FALSE 2054030187 test4 yes - -.foo.com TRUE /moo TRUE 0 test3 maybe -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /we/want/62 HTTP/1.1 -Accept: */* -Cookie: test2=yes; test=yes -Host: www.host.foo.com - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test620 b/Utilities/cmcurl-7.19.0/tests/data/test620 deleted file mode 100644 index f7a87d2..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test620 +++ /dev/null @@ -1,38 +0,0 @@ -<testcase> -<info> -<keywords> -SFTP -FAILURE -</keywords> -</info> - -# -# Client-side -<client> -<server> -sftp -</server> - <name> -SFTP retrieval of missing file followed by good file - </name> - <command> ---key curl_client_key --pubkey curl_client_key.pub -u %USER: sftp://%HOSTIP:%SSHPORT%PWD/log/not-a-valid-file-moooo sftp://%HOSTIP:%SSHPORT%PWD/log/file620.txt -</command> -<file name="log/file620.txt"> -Test data -for ssh test -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<valgrind> -disable -</valgrind> -<stdout> -Test data -for ssh test -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test621 b/Utilities/cmcurl-7.19.0/tests/data/test621 deleted file mode 100644 index 9ffbf3b..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test621 +++ /dev/null @@ -1,38 +0,0 @@ -<testcase> -<info> -<keywords> -SCP -FAILURE -</keywords> -</info> - -# -# Client-side -<client> -<server> -scp -</server> - <name> -SCP retrieval of missing file followed by good file - </name> - <command> ---key curl_client_key --pubkey curl_client_key.pub -u %USER: scp://%HOSTIP:%SSHPORT%PWD/log/not-a-valid-file-moooo scp://%HOSTIP:%SSHPORT%PWD/log/file621.txt -</command> -<file name="log/file621.txt"> -Test data -for ssh test -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<valgrind> -disable -</valgrind> -<stdout> -Test data -for ssh test -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test622 b/Utilities/cmcurl-7.19.0/tests/data/test622 deleted file mode 100644 index e91a8ad..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test622 +++ /dev/null @@ -1,43 +0,0 @@ -<testcase> -<info> -<keywords> -SFTP -SFTP put -FAILURE -</keywords> -</info> - -# -# Server-side -<reply> -</reply> - -# -# Client-side -<client> -<server> -sftp -</server> - <name> -SFTP put failure - </name> - <command> ---key curl_client_key --pubkey curl_client_key.pub -u %USER: -T log/file622.txt sftp://%HOSTIP:%SSHPORT%PWD/log/nonexistent-directory/nonexistent-file -</command> -<file name="log/file622.txt"> -Test data -for ssh upload test -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<errorcode> -78 -</errorcode> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test623 b/Utilities/cmcurl-7.19.0/tests/data/test623 deleted file mode 100644 index c5b258d..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test623 +++ /dev/null @@ -1,43 +0,0 @@ -<testcase> -<info> -<keywords> -SCP -SCP upload -FAILURE -</keywords> -</info> - -# -# Server-side -<reply> -</reply> - -# -# Client-side -<client> -<server> -scp -</server> - <name> -SCP upload failure - </name> - <command> ---key curl_client_key --pubkey curl_client_key.pub -u %USER: -T log/file623.txt scp://%HOSTIP:%SSHPORT%PWD/log/nonexistent-directory/nonexistent-file -</command> -<file name="log/file623.txt"> -Test data -for ssh upload test -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<errorcode> -79 -</errorcode> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test624 b/Utilities/cmcurl-7.19.0/tests/data/test624 deleted file mode 100644 index 818c544..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test624 +++ /dev/null @@ -1,47 +0,0 @@ -<testcase> -<info> -<keywords> -SFTP -SFTP put ---ftp-create-dirs -</keywords> -</info> - -# -# Server-side -<reply> -</reply> - -# -# Client-side -<client> -<server> -sftp -</server> - <name> -SFTP put with --ftp-create-dirs - </name> - <command> ---ftp-create-dirs --key curl_client_key --pubkey curl_client_key.pub -u %USER: -T log/file624.txt sftp://%HOSTIP:%SSHPORT%PWD/log/test624.dir/upload.624 -</command> -<postcheck> -perl %SRCDIR/libtest/test610.pl move %PWD/log/test624.dir/upload.624 %PWD/log/upload.624 rmdir %PWD/log/test624.dir -</postcheck> -<file name="log/file624.txt"> -Test data -for ssh upload test -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<upload> -Test data -for ssh upload test -</upload> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test625 b/Utilities/cmcurl-7.19.0/tests/data/test625 deleted file mode 100644 index ce4b8bc..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test625 +++ /dev/null @@ -1,47 +0,0 @@ -<testcase> -<info> -<keywords> -SFTP -SFTP put ---ftp-create-dirs -</keywords> -</info> - -# -# Server-side -<reply> -</reply> - -# -# Client-side -<client> -<server> -sftp -</server> - <name> -SFTP put with --ftp-create-dirs twice - </name> - <command> ---ftp-create-dirs --key curl_client_key --pubkey curl_client_key.pub -u %USER: -T log/file625.txt sftp://%HOSTIP:%SSHPORT%PWD/log/test625.a/upload.625 -T log/file625.txt sftp://%HOSTIP:%SSHPORT%PWD/log/test625.b/upload.625 -</command> -<postcheck> -perl %SRCDIR/libtest/test610.pl move %PWD/log/test625.a/upload.625 %PWD/log/upload.625 rmdir %PWD/log/test625.a rm %PWD/log/test625.b/upload.625 rmdir %PWD/log/test625.b -</postcheck> -<file name="log/file625.txt"> -Test data -for ssh upload test -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<upload> -Test data -for ssh upload test -</upload> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test626 b/Utilities/cmcurl-7.19.0/tests/data/test626 deleted file mode 100644 index 475b6d7..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test626 +++ /dev/null @@ -1,42 +0,0 @@ -<testcase> -<info> -<keywords> -SFTP -pre-quote -FAILURE -</keywords> -</info> - -# -# Server-side -<reply> -</reply> - -# -# Client-side -<client> -<server> -sftp -</server> - <name> -SFTP invalid quote command - </name> - <command> ---key curl_client_key --pubkey curl_client_key.pub -u %USER: -Q "invalid-command foo bar" sftp://%HOSTIP:%SSHPORT%PWD/log/file626.txt -</command> -<file name="log/file626.txt"> -Test file for rename test -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<errorcode> -21 -</errorcode> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test627 b/Utilities/cmcurl-7.19.0/tests/data/test627 deleted file mode 100644 index 3d86e7b..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test627 +++ /dev/null @@ -1,46 +0,0 @@ -<testcase> -<info> -<keywords> -SFTP -quote -NOBODY -</keywords> -</info> - -# -# Server-side -<reply> -<data sendzero="yes"> -</data> -</reply> - -# -# Client-side -<client> -<server> -sftp -</server> - <name> -SFTP quote remove file with NOBODY - </name> - <command> ---key curl_client_key --pubkey curl_client_key.pub -u %USER: -I -Q "rm %PWD/log/file627.txt" sftp://%HOSTIP:%SSHPORT -</command> -<postcheck> -perl %SRCDIR/libtest/test610.pl gone %PWD/log/test627.txt -</postcheck> -<file name="log/file627.txt"> -Dummy test file for remove test -</file> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<valgrind> -disable -</valgrind> -<protocol> -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test628 b/Utilities/cmcurl-7.19.0/tests/data/test628 deleted file mode 100644 index f24fe05..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test628 +++ /dev/null @@ -1,33 +0,0 @@ -<testcase> -<info> -<keywords> -SFTP -FAILURE -</keywords> -</info> - -# -# Client-side -<client> -<server> -sftp -</server> - <name> -SFTP invalid user login (password authentication) - </name> - <command> --u not-a-valid-user: sftp://%HOSTIP:%SSHPORT%PWD/irrelevant-file -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<errorcode> -67 -</errorcode> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test629 b/Utilities/cmcurl-7.19.0/tests/data/test629 deleted file mode 100644 index 621f741..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test629 +++ /dev/null @@ -1,33 +0,0 @@ -<testcase> -<info> -<keywords> -SCP -FAILURE -</keywords> -</info> - -# -# Client-side -<client> -<server> -scp -</server> - <name> -SCP invalid user login (password authentication) - </name> - <command> --u not-a-valid-user: scp://%HOSTIP:%SSHPORT%PWD/irrelevant-file -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<errorcode> -67 -</errorcode> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test63 b/Utilities/cmcurl-7.19.0/tests/data/test63 deleted file mode 100644 index 6e4d00c..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test63 +++ /dev/null @@ -1,53 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP proxy -HTTP proxy Basic auth -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Type: text/html -Content-Length: 26 - -the content would go here -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP with proxy authorization set in environment - </name> -<setenv> -http_proxy=http://fake:user@%HOSTIP:%HTTPPORT/ -</setenv> - <command> -http://we.want.that.site.com/63 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET http://we.want.that.site.com/63 HTTP/1.1 -Proxy-Authorization: Basic ZmFrZTp1c2Vy -Host: we.want.that.site.com -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test630 b/Utilities/cmcurl-7.19.0/tests/data/test630 deleted file mode 100644 index 90d364b..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test630 +++ /dev/null @@ -1,34 +0,0 @@ -<testcase> -<info> -<keywords> -SFTP -FAILURE -server key check -</keywords> -</info> - -# -# Client-side -<client> -<server> -sftp -</server> - <name> -SFTP incorrect host key - </name> - <command> ---hostpubmd5 00000000000000000000000000000000 --key curl_client_key --pubkey curl_client_key.pub -u %USER: sftp://%HOSTIP:%SSHPORT%PWD/log/irrelevant-file -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<errorcode> -51 -</errorcode> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test631 b/Utilities/cmcurl-7.19.0/tests/data/test631 deleted file mode 100644 index f3d8146..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test631 +++ /dev/null @@ -1,34 +0,0 @@ -<testcase> -<info> -<keywords> -SCP -FAILURE -server key check -</keywords> -</info> - -# -# Client-side -<client> -<server> -scp -</server> - <name> -SCP incorrect host key - </name> - <command> ---hostpubmd5 00000000000000000000000000000000 --key curl_client_key --pubkey curl_client_key.pub -u %USER: scp://%HOSTIP:%SSHPORT%PWD/log/irrelevant-file -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<errorcode> -51 -</errorcode> -<valgrind> -disable -</valgrind> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test632 b/Utilities/cmcurl-7.19.0/tests/data/test632 deleted file mode 100644 index 1b2ad31..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test632 +++ /dev/null @@ -1,34 +0,0 @@ -<testcase> -<info> -<keywords> -SFTP -FAILURE -server key check -</keywords> -</info> - -# -# Client-side -<client> -<server> -none -</server> -<features> -sftp -</features> - <name> -SFTP syntactically invalid host key - </name> - <command> ---hostpubmd5 00 --key curl_client_key --pubkey curl_client_key.pub -u %USER: sftp://%HOSTIP:%SSHPORT%PWD/log/irrelevant-file -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<errorcode> -2 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test64 b/Utilities/cmcurl-7.19.0/tests/data/test64 deleted file mode 100644 index f3da547..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test64 +++ /dev/null @@ -1,83 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP Digest auth -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 401 Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Digest realm="testrealm", nonce="1053604145" -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 26 - -This is not the real page -</data> - -# This is supposed to be returned when the server gets a -# Authorization: Digest line passed-in from the client -<data1000> -HTTP/1.1 200 OK swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 23 - -This IS the real page! -</data1000> - -<datacheck> -HTTP/1.1 401 Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Digest realm="testrealm", nonce="1053604145" -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 26 - -HTTP/1.1 200 OK swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 23 - -This IS the real page! -</datacheck> - -</reply> - -# Client-side -<client> -<server> -http -</server> -<features> -crypto -</features> - <name> -HTTP with Digest authorization - </name> - <command> -http://%HOSTIP:%HTTPPORT/64 -u testuser:testpass --digest -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /64 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /64 HTTP/1.1 -Authorization: Digest username="testuser", realm="testrealm", nonce="1053604145", uri="/64", response="c55f7f30d83d774a3d2dcacf725abaca" -User-Agent: curl/7.10.5 (i686-pc-linux-gnu) libcurl/7.10.5 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test65 b/Utilities/cmcurl-7.19.0/tests/data/test65 deleted file mode 100644 index 59e503b..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test65 +++ /dev/null @@ -1,83 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP Digest auth -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 401 Authorization Required -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Digest realm="testrealm", nonce="2053604145" -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 26 - -This is not the real page -</data> - -# This is supposed to be returned when the server gets a -# Authorization: Digest line passed-in from the client -<data1000> -HTTP/1.1 401 Still a bad password you moron -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 34 - -This is not the real page either -</data1000> - -<datacheck> -HTTP/1.1 401 Authorization Required -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Digest realm="testrealm", nonce="2053604145" -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 26 - -HTTP/1.1 401 Still a bad password you moron -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 34 - -This is not the real page either -</datacheck> - -</reply> - -# Client-side -<client> -<server> -http -</server> -<features> -crypto -</features> - <name> -HTTP with Digest authorization with bad password - </name> - <command> -http://%HOSTIP:%HTTPPORT/65 -u testuser:test2pass --digest -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /65 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /65 HTTP/1.1 -Authorization: Digest username="testuser", realm="testrealm", nonce="2053604145", uri="/65", response="66d68d3251f1839576ba7c766cf9205b" -User-Agent: curl/7.10.5 (i686-pc-linux-gnu) libcurl/7.10.5 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test66 b/Utilities/cmcurl-7.19.0/tests/data/test66 deleted file mode 100644 index 1ad56dc..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test66 +++ /dev/null @@ -1,41 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -</keywords> -</info> -# Server-side -<reply> -<data> -no headers swsclose -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET without headers in the response - </name> - <command> -http://%HOSTIP:%HTTPPORT/66 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /66 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test67 b/Utilities/cmcurl-7.19.0/tests/data/test67 deleted file mode 100644 index 97b1a03..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test67 +++ /dev/null @@ -1,96 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP NTLM auth -</keywords> -</info> -# Server-side -<reply> - -<!-- no <data> in this test since we have NTLM from the start - -This is supposed to be returned when the server gets a first -Authorization: NTLM line passed-in from the client --> - -<data1001> -HTTP/1.1 401 Now gimme that second request of crap -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 34 -WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -This is not the real page either! -</data1001> - -# This is supposed to be returned when the server gets the second -# Authorization: NTLM line passed-in from the client -<data1002> -HTTP/1.1 200 Things are fine in server land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 32 - -Finally, this is the real page! -</data1002> - -<datacheck> -HTTP/1.1 401 Now gimme that second request of crap -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 34 -WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -HTTP/1.1 200 Things are fine in server land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 32 - -Finally, this is the real page! -</datacheck> - -</reply> - -# Client-side -<client> -<features> -NTLM -</features> -<server> -http -</server> - <name> -HTTP with NTLM authorization - </name> - <command> -http://%HOSTIP:%HTTPPORT/67 -u testuser:testpass --ntlm -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -# We strip off a large chunk of the type-2 NTLM message since it depends on -# the local host name and thus differs on different machines! -<strippart> -s/^(Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAA).*/$1/ -</strippart> -<protocol> -GET /67 HTTP/1.1 -Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= -User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /67 HTTP/1.1 -Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAA -User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test68 b/Utilities/cmcurl-7.19.0/tests/data/test68 deleted file mode 100644 index 0806219..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test68 +++ /dev/null @@ -1,95 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP NTLM auth -</keywords> -</info> -# Server-side -<reply> - -# This is supposed to be returned when the server gets a first -# Authorization: NTLM line passed-in from the client -<data1001> -HTTP/1.1 401 Now gimme that second request of crap -Server: Microsoft-IIS/5.0 -Content-Length: 34 -Content-Type: text/html; charset=iso-8859-1 -WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -This is not the real page either! -</data1001> - -# This is supposed to be returned when the server gets the second -# Authorization: NTLM line passed-in from the client -<data1002> -HTTP/1.1 401 You give me wrong password -Server: Microsoft-IIS/5.0 -WWW-Authenticate: NTLM -Content-Length: 46 -Content-Type: text/html; charset=iso-8859-1 - -Wrong password dude. Get it fixed and return. -</data1002> - -<datacheck> -HTTP/1.1 401 Now gimme that second request of crap -Server: Microsoft-IIS/5.0 -Content-Length: 34 -Content-Type: text/html; charset=iso-8859-1 -WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -HTTP/1.1 401 You give me wrong password -Server: Microsoft-IIS/5.0 -WWW-Authenticate: NTLM -Content-Length: 46 -Content-Type: text/html; charset=iso-8859-1 - -Wrong password dude. Get it fixed and return. -</datacheck> - -</reply> - -# Client-side -<client> -<features> -NTLM -</features> -<server> -http -</server> - <name> -HTTP with NTLM authorization and wrong password - </name> - <command> -http://%HOSTIP:%HTTPPORT/68 -u testuser:testpass --ntlm -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -# We strip off a large chunk of the type-2 NTLM message since it depends on -# the local host name and thus differs on different machines! -<strippart> -s/^(Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAA).*/$1/ -</strippart> -<protocol> -GET /68 HTTP/1.1 -Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= -User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /68 HTTP/1.1 -Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAA -User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test69 b/Utilities/cmcurl-7.19.0/tests/data/test69 deleted file mode 100644 index 7eee1e8..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test69 +++ /dev/null @@ -1,117 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP NTLM auth -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 401 Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Basic -WWW-Authenticate: Wild-and-crazy -WWW-Authenticate: NTLM -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 26 - -This is not the real page -</data> - -# This is supposed to be returned when the server gets a first -# Authorization: NTLM line passed-in from the client -<data1001> -HTTP/1.1 401 Now gimme that second request of crap -Server: Microsoft-IIS/5.0 -Content-Length: 34 -Content-Type: text/html; charset=iso-8859-1 -WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -This is not the real page either! -</data1001> - -# This is supposed to be returned when the server gets the second -# Authorization: NTLM line passed-in from the client -<data1002> -HTTP/1.1 200 Things are fine in server land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 32 - -Finally, this is the real page! -</data1002> - -<datacheck> -HTTP/1.1 401 Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Basic -WWW-Authenticate: Wild-and-crazy -WWW-Authenticate: NTLM -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 26 - -HTTP/1.1 401 Now gimme that second request of crap -Server: Microsoft-IIS/5.0 -Content-Length: 34 -Content-Type: text/html; charset=iso-8859-1 -WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -HTTP/1.1 200 Things are fine in server land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 32 - -Finally, this is the real page! -</datacheck> - -</reply> - -# Client-side -<client> -<features> -NTLM -</features> -<server> -http -</server> - <name> -HTTP with NTLM, Basic or Wild-and-crazy authorization - </name> - <command> -http://%HOSTIP:%HTTPPORT/69 -u testuser:testpass --anyauth -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -# We strip off a large chunk of the type-2 NTLM message since it depends on -# the local host name and thus differs on different machines! -<strippart> -s/^(Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAA).*/$1/ -</strippart> -<protocol> -GET /69 HTTP/1.1 -User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /69 HTTP/1.1 -Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= -User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /69 HTTP/1.1 -Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAA -User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test7 b/Utilities/cmcurl-7.19.0/tests/data/test7 deleted file mode 100644 index 728b1a3..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test7 +++ /dev/null @@ -1,62 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -cookies -header dump -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Type: text/html -Funny-head: yesyes swsclose -Set-Cookie: foobar=name; domain=127.0.0.1; path=/; -Set-Cookie: mismatch=this; domain=127.0.0.1; path="/silly/"; -Set-Cookie: partmatch=present; domain=.0.0.1; path=/; - -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP with cookie parser and header recording - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/want/7 -b none -D log/heads7.txt -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /we/want/7 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -<file name="log/heads7.txt"> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Type: text/html -Funny-head: yesyes swsclose -Set-Cookie: foobar=name; domain=127.0.0.1; path=/; -Set-Cookie: mismatch=this; domain=127.0.0.1; path="/silly/"; -Set-Cookie: partmatch=present; domain=.0.0.1; path=/; - -</file> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test70 b/Utilities/cmcurl-7.19.0/tests/data/test70 deleted file mode 100644 index ef93d08..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test70 +++ /dev/null @@ -1,87 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP Digest auth ---anyauth -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 401 Authorization Required -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Digest realm="testrealm", nonce="1053604199" -WWW-Authenticate: NTLM -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 26 - -This is not the real page -</data> - -# This is supposed to be returned when the server gets a -# Authorization: Digest line passed-in from the client -<data1000> -HTTP/1.1 200 OK -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 23 - -This IS the real page! -</data1000> - -<datacheck> -HTTP/1.1 401 Authorization Required -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Digest realm="testrealm", nonce="1053604199" -WWW-Authenticate: NTLM -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 26 - -HTTP/1.1 200 OK -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 23 - -This IS the real page! -</datacheck> - -</reply> - -# Client-side -<client> -<features> -NTLM -</features> -<server> -http -</server> - <name> -HTTP with Digest *OR* NTLM authorization - </name> - <command> -http://%HOSTIP:%HTTPPORT/70 -u testuser:testpass --anyauth -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /70 HTTP/1.1 -User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /70 HTTP/1.1 -Authorization: Digest username="testuser", realm="testrealm", nonce="1053604199", uri="/70", response="2c9a6f00af0d86497b177b90e90c688a" -User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test700 b/Utilities/cmcurl-7.19.0/tests/data/test700 deleted file mode 100644 index 460720b..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test700 +++ /dev/null @@ -1,57 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -SOCKS4 -</keywords> -</info> - -# -# Server-side -<reply name="1"> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 -Connection: close -Content-Type: text/html -Funny-head: yesyes - --foo- -</data> -</reply> - -# -# Client-side -<client> -<server> -http -socks4 -</server> - <name> -HTTP GET via SOCKS4 proxy - </name> - <command> ---socks4 %HOSTIP:%SOCKSPORT http://%HOSTIP:%HTTPPORT/700 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /700 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test701 b/Utilities/cmcurl-7.19.0/tests/data/test701 deleted file mode 100644 index 3010429..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test701 +++ /dev/null @@ -1,57 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -SOCKS5 -</keywords> -</info> - -# -# Server-side -<reply name="1"> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 -Connection: close -Content-Type: text/html -Funny-head: yesyes - --foo- -</data> -</reply> - -# -# Client-side -<client> -<server> -http -socks5 -</server> - <name> -HTTP GET via SOCKS5 proxy - </name> - <command> ---socks5 %HOSTIP:%SOCKSPORT http://%HOSTIP:%HTTPPORT/701 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /701 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test702 b/Utilities/cmcurl-7.19.0/tests/data/test702 deleted file mode 100644 index 36af713..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test702 +++ /dev/null @@ -1,39 +0,0 @@ -<testcase> -#based off 19 -<info> -<keywords> -HTTP -SOCKS4 -connect to non-listen -FAILURE -</keywords> -</info> -# Server-side -<reply> -<data> -</data> -</reply> - -# Client-side -<client> -<server> -socks4 -</server> -<features> -http -</features> - <name> -Attempt connect to non-listening HTTP server via SOCKS4 proxy - </name> - <command> ---socks4 %HOSTIP:%SOCKSPORT http://%HOSTIP:60000 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -7 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test703 b/Utilities/cmcurl-7.19.0/tests/data/test703 deleted file mode 100644 index 4aa89b4..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test703 +++ /dev/null @@ -1,39 +0,0 @@ -<testcase> -#based off 19 -<info> -<keywords> -HTTP -SOCKS5 -connect to non-listen -FAILURE -</keywords> -</info> -# Server-side -<reply> -<data> -</data> -</reply> - -# Client-side -<client> -<server> -socks5 -</server> -<features> -http -</features> - <name> -Attempt connect to non-listening HTTP server via SOCKS5 proxy - </name> - <command> ---socks5 %HOSTIP:%SOCKSPORT http://%HOSTIP:60000 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -7 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test704 b/Utilities/cmcurl-7.19.0/tests/data/test704 deleted file mode 100644 index 15a1b67..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test704 +++ /dev/null @@ -1,36 +0,0 @@ -<testcase> -#based off 19 -<info> -<keywords> -HTTP -SOCKS4 -connect to non-listen -FAILURE -</keywords> -</info> -# Server-side -<reply> -<data> -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -Attempt connect to non-listening SOCKS4 proxy - </name> - <command> ---socks4 %HOSTIP:60000 http://%HOSTIP:%HTTPPORT/704 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -7 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test705 b/Utilities/cmcurl-7.19.0/tests/data/test705 deleted file mode 100644 index 3b904c6..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test705 +++ /dev/null @@ -1,36 +0,0 @@ -<testcase> -#based off 19 -<info> -<keywords> -HTTP -SOCKS5 -connect to non-listen -FAILURE -</keywords> -</info> -# Server-side -<reply> -<data> -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -Attempt connect to non-listening SOCKS5 proxy - </name> - <command> ---socks5 %HOSTIP:60000 http://%HOSTIP:%HTTPPORT/705 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<errorcode> -7 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test706 b/Utilities/cmcurl-7.19.0/tests/data/test706 deleted file mode 100644 index 7dcd516..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test706 +++ /dev/null @@ -1,59 +0,0 @@ -<testcase> -#based off test 100 -<info> -<keywords> -FTP -PASV -LIST -SOCKS4 -</keywords> -</info> -# -# Server-side -<reply> -# When doing LIST, we get the default list output hard-coded in the test -# FTP server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -ftp -socks4 -</server> - <name> -FTP dir list PASV via SOCKS4 - </name> - <command> ---socks4 %HOSTIP:%SOCKSPORT ftp://%HOSTIP:%FTPPORT/ -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE A -LIST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test707 b/Utilities/cmcurl-7.19.0/tests/data/test707 deleted file mode 100644 index 9ec80b5..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test707 +++ /dev/null @@ -1,59 +0,0 @@ -<testcase> -#based off test 100 -<info> -<keywords> -FTP -PASV -LIST -SOCKS5 -</keywords> -</info> -# -# Server-side -<reply> -# When doing LIST, we get the default list output hard-coded in the test -# FTP server -<datacheck> -total 20 -drwxr-xr-x 8 98 98 512 Oct 22 13:06 . -drwxr-xr-x 8 98 98 512 Oct 22 13:06 .. -drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT --r--r--r-- 1 0 1 35 Jul 16 1996 README -lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin -dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev -drwxrwxrwx 2 98 98 512 May 29 16:04 download.html -dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc -drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub -dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -ftp -socks5 -</server> - <name> -FTP dir list PASV via SOCKS5 - </name> - <command> ---socks5 %HOSTIP:%SOCKSPORT ftp://%HOSTIP:%FTPPORT/ -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<protocol> -USER anonymous -PASS ftp@example.com -PWD -EPSV -TYPE A -LIST -QUIT -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test71 b/Utilities/cmcurl-7.19.0/tests/data/test71 deleted file mode 100644 index a806bbb..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test71 +++ /dev/null @@ -1,79 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP FORMPOST -config file -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Length: 11 - -blablabla - -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP and -F upload in config file - </name> -<stdin> --F name=daniel --F tool=curl --F file=@log/test71.txt -</stdin> - <command> -http://%HOSTIP:%HTTPPORT/we/want/71 -K - -</command> -# We create this file before the command is invoked! -<file name="log/test71.txt"> -foo- -This is a moo- -bar -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^(User-Agent:|Content-Type: multipart/form-data;|------------).* -</strip> -<protocol> -POST /we/want/71 HTTP/1.1 -User-Agent: curl/7.10.4 (i686-pc-linux-gnu) libcurl/7.10.4 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 408 -Expect: 100-continue -Content-Type: multipart/form-data; boundary=----------------------------9ef8d6205763 - -------------------------------9ef8d6205763 -Content-Disposition: form-data; name="name" - -daniel -------------------------------9ef8d6205763 -Content-Disposition: form-data; name="tool" - -curl -------------------------------9ef8d6205763 -Content-Disposition: form-data; name="file"; filename="test71.txt" -Content-Type: text/plain - -foo- -This is a moo- -bar - -------------------------------9ef8d6205763-- -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test72 b/Utilities/cmcurl-7.19.0/tests/data/test72 deleted file mode 100644 index 4875730..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test72 +++ /dev/null @@ -1,86 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP Digest auth -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 401 Authorization Required -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Basic realm="foothis" -WWW-Authenticate: Digest realm="testrealm", nonce="1053604199" -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 26 - -This is not the real page -</data> - -# This is supposed to be returned when the server gets a -# Authorization: Digest line passed-in from the client -<data1000> -HTTP/1.1 200 OK -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 23 - -This IS the real page! -</data1000> - -<datacheck> -HTTP/1.1 401 Authorization Required -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Basic realm="foothis" -WWW-Authenticate: Digest realm="testrealm", nonce="1053604199" -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 26 - -HTTP/1.1 200 OK -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 23 - -This IS the real page! -</datacheck> - -</reply> - -# Client-side -<client> -<server> -http -</server> -<features> -crypto -</features> - <name> -HTTP with Digest *OR* Basic authorization - </name> - <command> -http://%HOSTIP:%HTTPPORT/72 -u testuser:testpass --anyauth -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /72 HTTP/1.1 -User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /72 HTTP/1.1 -Authorization: Digest username="testuser", realm="testrealm", nonce="1053604199", uri="/72", response="9fcd1330377365a09bbcb33b2cbb25bd" -User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test73 b/Utilities/cmcurl-7.19.0/tests/data/test73 deleted file mode 100644 index 2656b69..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test73 +++ /dev/null @@ -1,55 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -cookies -cookiejar -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Content-Type: text/html -Set-Cookie: IPCZQX01af0fca5c=000010008168c200d25dfc4b; path=/; domain=.NOT_DISCLOSED.se -Content-Length: 4 - -boo -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP, receive cookies when using custom Host:, domain using only two dots - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/want/73 -c log/jar73.txt -H "Host: host.NOT_DISCLOSED.se" -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /we/want/73 HTTP/1.1 -Accept: */* -Host: host.NOT_DISCLOSED.se - -</protocol> -<file name="log/jar73.txt" mode="text"> -# Netscape HTTP Cookie File -# http://curl.haxx.se/rfc/cookie_spec.html -# This file was generated by libcurl! Edit at your own risk. - -.NOT_DISCLOSED.se TRUE / FALSE 0 IPCZQX01af0fca5c 000010008168c200d25dfc4b -</file> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test74 b/Utilities/cmcurl-7.19.0/tests/data/test74 deleted file mode 100644 index d89e9a1..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test74 +++ /dev/null @@ -1,74 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -{} list -</keywords> -</info> -# -# Server-side -<reply> -<data nocheck="1"> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 -Content-Type: text/html -Funny-head: yesyes - --foo- -</data> -<data1> -HTTP/1.0 200 OK -Content-Type: text/html -Funny-head: swsclose -Connection: close - -crap data -</data1> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP, urlglob {}-retrieval and -o #[num] usage - </name> - <command option="no-output"> -"http://%HOSTIP:%HTTPPORT/{74,740001}" -o "log/dumpit#1.dump" -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /74 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /740001 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -<file name="log/dumpit740001.dump"> -HTTP/1.0 200 OK -Content-Type: text/html -Funny-head: swsclose -Connection: close - -crap data -</file> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test75 b/Utilities/cmcurl-7.19.0/tests/data/test75 deleted file mode 100644 index 63695f5..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test75 +++ /dev/null @@ -1,50 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -FAILURE -</keywords> -</info> -# -# Server-side -<reply> -</reply> - -# -# Client-side -<client> -<server> -none -</server> -<features> -http -</features> - <name> -HTTP, urlglob retrieval with bad range - </name> - <command option="no-output"> -"http://%HOSTIP:%HTTPPORT/[2-1]" -o "log/weee#1.dump" --stderr - -</command> -# The error message on stdout implicitly depends on the length of the -# URL, so refuse to run if the length is unexpected. -<precheck> -perl %SRCDIR/libtest/test75.pl http://%HOSTIP:%HTTPPORT/ 22 -</precheck> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<errorcode> -3 -</errorcode> -<stdout mode="text"> -curl: (3) [globbing] error: bad range specification after pos 24 - -</stdout> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test76 b/Utilities/cmcurl-7.19.0/tests/data/test76 deleted file mode 100644 index ada3a33..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test76 +++ /dev/null @@ -1,39 +0,0 @@ -<testcase> -<info> -<keywords> -FAILURE -</keywords> -</info> -# -# Server-side -<reply> -</reply> - -# -# Client-side -<client> -<server> -none -</server> -<features> -http -</features> - <name> -HTTP, -O with no file name part in the URL - </name> - <command option="no-output"> -http://%HOSTIP:%HTTPPORT/76/ -O -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<errorcode> -23 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test77 b/Utilities/cmcurl-7.19.0/tests/data/test77 deleted file mode 100644 index 3af4874..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test77 +++ /dev/null @@ -1,55 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET --z -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2010 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 -Connection: close -Content-Type: text/html - --foo- -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP with -z "older date" - </name> - <command> -http://%HOSTIP:%HTTPPORT/77 -z "dec 12 12:00:00 1999 GMT" -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /77 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -If-Modified-Since: Sun, 12 Dec 1999 12:00:00 GMT - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test78 b/Utilities/cmcurl-7.19.0/tests/data/test78 deleted file mode 100644 index e8fbecc..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test78 +++ /dev/null @@ -1,67 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET --z -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Server: test-server/fake -Last-Modified: Tue, 13 Jun 1990 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 -Connection: close -Content-Type: text/html -Funny-head: yesyes - --foo- -</data> -<datacheck> -HTTP/1.1 200 OK -Server: test-server/fake -Last-Modified: Tue, 13 Jun 1990 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 -Connection: close -Content-Type: text/html -Funny-head: yesyes - -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP with -z "newer date" - </name> - <command> -http://%HOSTIP:%HTTPPORT/78 -z "dec 12 11:00:00 1999 GMT" -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /78 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -If-Modified-Since: Sun, 12 Dec 1999 11:00:00 GMT - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test79 b/Utilities/cmcurl-7.19.0/tests/data/test79 deleted file mode 100644 index 153014a..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test79 +++ /dev/null @@ -1,56 +0,0 @@ -<testcase> -<info> -<keywords> -FTP -HTTP -HTTP GET -HTTP proxy -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.0 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake swsclose -Content-Type: text/html -Funny-head: yesyes - -contents -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> -<features> -ftp -</features> - <name> -FTP over HTTP proxy - </name> - <command> -ftp://%HOSTIP:%HTTPPORT/we/want/that/page/79 -x %HOSTIP:%HTTPPORT -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET ftp://%HOSTIP:%HTTPPORT/we/want/that/page/79 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test8 b/Utilities/cmcurl-7.19.0/tests/data/test8 deleted file mode 100644 index 55e315f..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test8 +++ /dev/null @@ -1,60 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -cookies -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake - -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP with cookie parsing from header file - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/want/8 -b log/heads8.txt -</command> - -# We create this file before the command is invoked! -<file name="log/heads8.txt"> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Content-Type: text/html -Funny-head: yesyes -Set-Cookie: foobar=name; domain=127.0.0.1; path=/; -Set-Cookie: mismatch=this; domain=127.0.0.1; path="/silly/"; -Set-Cookie: partmatch=present; domain=.0.0.1; path=/; -Set-Cookie: cookie=yes; path=/we; -Set-Cookie: nocookie=yes; path=/WE; - -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /we/want/8 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Cookie: cookie=yes; partmatch=present; foobar=name - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test80 b/Utilities/cmcurl-7.19.0/tests/data/test80 deleted file mode 100644 index 92cea3b..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test80 +++ /dev/null @@ -1,73 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP CONNECT -HTTP Basic auth -HTTP proxy Basic auth -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake swsclose -Content-Type: text/html -Funny-head: yesyes -Content-Length: 9 - -contents -</data> -<datacheck> -HTTP/1.1 200 Mighty fine indeed - -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake swsclose -Content-Type: text/html -Funny-head: yesyes -Content-Length: 9 - -contents -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP CONNECT with proxytunnel and host Basic authentication - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/want/that/page/80 -p -x %HOSTIP:%HTTPPORT --user iam:myself --proxy-user youare:yourself -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -CONNECT %HOSTIP:%HTTPPORT HTTP/1.0 -Host: %HOSTIP:%HTTPPORT -Proxy-Authorization: Basic eW91YXJlOnlvdXJzZWxm -User-Agent: curl/7.10.7-pre2 (i686-pc-linux-gnu) libcurl/7.10.7-pre2 OpenSSL/0.9.7a zlib/1.1.3 -Proxy-Connection: Keep-Alive - -GET /we/want/that/page/80 HTTP/1.1 -Authorization: Basic aWFtOm15c2VsZg== -User-Agent: curl/7.10.7-pre2 (i686-pc-linux-gnu) libcurl/7.10.7-pre2 OpenSSL/0.9.7a zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test81 b/Utilities/cmcurl-7.19.0/tests/data/test81 deleted file mode 100644 index 37dac56..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test81 +++ /dev/null @@ -1,97 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP proxy NTLM auth -</keywords> -</info> -# Server-side -<reply> - -# This is supposed to be returned when the server gets a first -# Authorization: NTLM line passed-in from the client -<data1001> -HTTP/1.1 407 Now gimme that second request of crap -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 34 -Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -This is not the real page either! -</data1001> - -# This is supposed to be returned when the server gets the second -# Authorization: NTLM line passed-in from the client -<data1002> -HTTP/1.1 200 Things are fine in server land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 32 - -Finally, this is the real page! -</data1002> - -<datacheck> -HTTP/1.1 407 Now gimme that second request of crap -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 34 -Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -HTTP/1.1 200 Things are fine in server land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 32 - -Finally, this is the real page! -</datacheck> - -</reply> - -# Client-side -<client> -<features> -NTLM -</features> -<server> -http -</server> - <name> -HTTP with proxy using NTLM authorization - </name> - <command> -http://%HOSTIP:%HTTPPORT/81 --proxy-user testuser:testpass -x http://%HOSTIP:%HTTPPORT --proxy-ntlm -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -# We strip off a large chunk of the type-2 NTLM message since it depends on -# the local host name and thus differs on different machines! -<strippart> -s/(Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAA).*/$1/ -</strippart> -<protocol> -GET http://%HOSTIP:%HTTPPORT/81 HTTP/1.1 -Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= -User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -GET http://%HOSTIP:%HTTPPORT/81 HTTP/1.1 -Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAA -User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test82 b/Utilities/cmcurl-7.19.0/tests/data/test82 deleted file mode 100644 index 25f2218..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test82 +++ /dev/null @@ -1,56 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP proxy Basic auth -HTTP proxy NTLM auth -</keywords> -</info> -# Server-side -<reply> - -<data> -HTTP/1.1 407 We only deal with NTLM my friend -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 34 -Proxy-Authenticate: NTLM - -This is not the real page either! -</data> - -</reply> - -# Client-side -<client> -<features> -</features> -<server> -http -</server> - <name> -HTTP with proxy requiring NTLM, but we send Basic - </name> - <command> -http://%HOSTIP:%HTTPPORT/82 --proxy-user testuser:testpass -x http://%HOSTIP:%HTTPPORT -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET http://%HOSTIP:%HTTPPORT/82 HTTP/1.1 -Proxy-Authorization: Basic dGVzdHVzZXI6dGVzdHBhc3M= -User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test83 b/Utilities/cmcurl-7.19.0/tests/data/test83 deleted file mode 100644 index f1e9abe..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test83 +++ /dev/null @@ -1,72 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP CONNECT -HTTP Basic auth -proxytunnel -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake swsclose -Content-Type: text/html -Funny-head: yesyes -Content-Length: 9 - -contents -</data> -<datacheck> -HTTP/1.1 200 Mighty fine indeed - -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake swsclose -Content-Type: text/html -Funny-head: yesyes -Content-Length: 9 - -contents -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP over proxy-tunnel with site authentication - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/want/that/page/83 -p -x %HOSTIP:%HTTPPORT --user iam:myself -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -CONNECT %HOSTIP:%HTTPPORT HTTP/1.0 -User-Agent: curl/7.10.7-pre2 (i686-pc-linux-gnu) libcurl/7.10.7-pre2 OpenSSL/0.9.7a zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Proxy-Connection: Keep-Alive - -GET /we/want/that/page/83 HTTP/1.1 -Authorization: Basic aWFtOm15c2VsZg== -User-Agent: curl/7.10.7-pre2 (i686-pc-linux-gnu) libcurl/7.10.7-pre2 OpenSSL/0.9.7a zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test84 b/Utilities/cmcurl-7.19.0/tests/data/test84 deleted file mode 100644 index 249ed46..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test84 +++ /dev/null @@ -1,55 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP Basic auth -HTTP proxy -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.0 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake swsclose -Content-Type: text/html -Funny-head: yesyes - -contents -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP over proxy with site authentication - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/want/that/page/84 -x %HOSTIP:%HTTPPORT --user iam:myself -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET http://%HOSTIP:%HTTPPORT/we/want/that/page/84 HTTP/1.1 -Authorization: Basic aWFtOm15c2VsZg== -User-Agent: curl/7.10.7-pre2 (i686-pc-linux-gnu) libcurl/7.10.7-pre2 OpenSSL/0.9.7a zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test85 b/Utilities/cmcurl-7.19.0/tests/data/test85 deleted file mode 100644 index fc24ae4..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test85 +++ /dev/null @@ -1,57 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP Basic auth -HTTP proxy Basic auth -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake swsclose -Content-Type: text/html -Funny-head: yesyes -Content-Length: 9 - -contents -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP over proxy with site and proxy authentication - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/want/that/page/85 -x %HOSTIP:%HTTPPORT --user iam:myself --proxy-user testing:this -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET http://%HOSTIP:%HTTPPORT/we/want/that/page/85 HTTP/1.1 -Proxy-Authorization: Basic dGVzdGluZzp0aGlz -Authorization: Basic aWFtOm15c2VsZg== -User-Agent: curl/7.10.7-pre2 (i686-pc-linux-gnu) libcurl/7.10.7-pre2 OpenSSL/0.9.7a zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test86 b/Utilities/cmcurl-7.19.0/tests/data/test86 deleted file mode 100644 index 005f32c..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test86 +++ /dev/null @@ -1,96 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -[] range -</keywords> -</info> -# -# Server-side -<reply> -<data nocheck="1"> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake -Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT -ETag: "21025-dc7-39462498" -Accept-Ranges: bytes -Content-Length: 6 -Connection: close -Content-Type: text/html -Funny-head: yesyes - --foo- -</data> -<data1> -HTTP/1.0 200 OK -Content-Type: text/html -Funny-head: swsclose - -crap data -</data1> -<data2> -HTTP/1.0 200 OK -Content-Type: text/html -Funny-head: swsclose - -crap data -</data2> -<data3> -HTTP/1.0 200 OK -Content-Type: text/html -Funny-head: swsclose - -crap data -</data3> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP, urlglob []-retrieval and -o #[num] usage - </name> - <command option="no-output"> -"http://%HOSTIP:%HTTPPORT/[860001-860003]" -o "log/dumpit#1.dump" -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /860001 HTTP/1.1 -User-Agent: curl/7.10.7-pre4 (i686-pc-linux-gnu) libcurl/7.10.7-pre4 OpenSSL/0.9.7a ipv6 zlib/1.1.3 GSS -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /860002 HTTP/1.1 -User-Agent: curl/7.10.7-pre4 (i686-pc-linux-gnu) libcurl/7.10.7-pre4 OpenSSL/0.9.7a ipv6 zlib/1.1.3 GSS -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /860003 HTTP/1.1 -User-Agent: curl/7.10.7-pre4 (i686-pc-linux-gnu) libcurl/7.10.7-pre4 OpenSSL/0.9.7a ipv6 zlib/1.1.3 GSS -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> - -# we check the second file -<file name="log/dumpit860002.dump"> -HTTP/1.0 200 OK -Content-Type: text/html -Funny-head: swsclose - -crap data -</file> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test87 b/Utilities/cmcurl-7.19.0/tests/data/test87 deleted file mode 100644 index 40b274b..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test87 +++ /dev/null @@ -1,36 +0,0 @@ -<testcase> -<info> -<keywords> -[] range -FAILURE -</keywords> -</info> -# -# Server-side -<reply> -</reply> -# -# Client-side -<client> -<server> -none -</server> -<features> -http -</features> - <name> -urlglob with bad -o #[num] usage - </name> - <command option="no-output"> -"http://%HOSTIP:%HTTPPORT/[870001-870003]" -o "log/dumpit#2.dump" -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<errorcode> -2 -</errorcode> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test88 b/Utilities/cmcurl-7.19.0/tests/data/test88 deleted file mode 100644 index f788ba4..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test88 +++ /dev/null @@ -1,101 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP PUT -HTTP Digest auth -</keywords> -</info> - -# Server-side -<reply> -<servercmd> -auth_required -</servercmd> -<data> -HTTP/1.1 401 Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Digest realm="testrealm", nonce="1053604145" -Content-Type: text/html; charset=iso-8859-1 -Connection: close - -This is not the real page -</data> - -# This is supposed to be returned when the server gets a -# Authorization: Digest line passed-in from the client -<data1000> -HTTP/1.1 200 OK swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Content-Type: text/html; charset=iso-8859-1 -Connection: close - -This IS the real page! -</data1000> - -<datacheck> -HTTP/1.1 401 Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Digest realm="testrealm", nonce="1053604145" -Content-Type: text/html; charset=iso-8859-1 -Connection: close - -HTTP/1.1 200 OK swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -Content-Type: text/html; charset=iso-8859-1 -Connection: close - -This IS the real page! -</datacheck> - -</reply> - -# Client-side -<client> -<server> -http -</server> -<features> -crypto -</features> - <name> -HTTP PUT with Digest authorization - </name> - <command> -http://%HOSTIP:%HTTPPORT/88 -T log/put88 -u testuser:testpass --digest -</command> -<file name="log/put88"> -This is data we upload with PUT -a second line -line three -four is the number of lines -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -PUT /88 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 0 -Expect: 100-continue - -PUT /88 HTTP/1.1 -Authorization: Digest username="testuser", realm="testrealm", nonce="1053604145", uri="/88", response="78a49fa53d0c228778297687d4168e71" -User-Agent: curl/7.10.5 (i686-pc-linux-gnu) libcurl/7.10.5 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 85 -Expect: 100-continue - -This is data we upload with PUT -a second line -line three -four is the number of lines -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test89 b/Utilities/cmcurl-7.19.0/tests/data/test89 deleted file mode 100644 index ed01c6d..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test89 +++ /dev/null @@ -1,141 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP NTLM auth -followlocation -</keywords> -</info> -# Server-side -<reply> - -<!-- no <data> in this test since we have NTLM from the start - -This is supposed to be returned when the server gets a first -Authorization: NTLM line passed-in from the client --> - -<data1001> -HTTP/1.1 401 Now gimme that second request of crap -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 34 -WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -This is not the real page either! -</data1001> - -# This is supposed to be returned when the server gets the second -# Authorization: NTLM line passed-in from the client -<data1002> -HTTP/1.1 301 Things are fine in server land swsclose -Server: Microsoft-IIS/5.0 -Connection: close -Location: /you/890010 - -</data1002> - -# This is the first reply after the redirection -<data1011> -HTTP/1.1 401 Now gimme that second round of crap -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 34 -WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -This is not the real page either! -</data1011> - -# This is supposed to be returned when the server gets the second -# Authorization: NTLM line passed-in from the client -<data1012> -HTTP/1.1 200 Things are fine in server land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 32 - -Finally, this is the real page! -</data1012> - -<datacheck> -HTTP/1.1 401 Now gimme that second request of crap -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 34 -WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -HTTP/1.1 301 Things are fine in server land swsclose -Server: Microsoft-IIS/5.0 -Connection: close -Location: /you/890010 - -HTTP/1.1 401 Now gimme that second round of crap -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 34 -WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -HTTP/1.1 200 Things are fine in server land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 32 - -Finally, this is the real page! -</datacheck> - -</reply> - -# Client-side -<client> -<features> -NTLM -</features> -<server> -http -</server> - <name> -HTTP with NTLM and follow-location - </name> - <command> -http://%HOSTIP:%HTTPPORT/89 -u testuser:testpass --ntlm -L -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -# We strip off a large chunk of the type-2 NTLM message since it depends on -# the local host name and thus differs on different machines! -<strippart> -s/^(Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAA).*/$1/ -</strippart> -<protocol> -GET /89 HTTP/1.1 -Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= -User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /89 HTTP/1.1 -Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAA -User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /you/890010 HTTP/1.1 -Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= -User-Agent: curl/7.10.8-pre1 (i686-pc-linux-gnu) libcurl/7.10.8-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 GSS -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /you/890010 HTTP/1.1 -Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAA -User-Agent: curl/7.10.8-pre1 (i686-pc-linux-gnu) libcurl/7.10.8-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 GSS -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test9 b/Utilities/cmcurl-7.19.0/tests/data/test9 deleted file mode 100644 index 29e7832..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test9 +++ /dev/null @@ -1,73 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP FORMPOST -HTTP file upload -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.0 200 OK swsclose -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake - -blablabla - -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP RFC1867-type formposting - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/want/9 -F name=daniel -F tool=curl -F file=@log/test9.txt -</command> -# We create this file before the command is invoked! -<file name="log/test9.txt"> -foo- -This is a moo- -bar -</file> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^(User-Agent:|Content-Type: multipart/form-data;|------------).* -</strip> -<protocol> -POST /we/want/9 HTTP/1.1 -User-Agent: curl/7.10.4 (i686-pc-linux-gnu) libcurl/7.10.4 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 407 -Expect: 100-continue -Content-Type: multipart/form-data; boundary=----------------------------9ef8d6205763 - -------------------------------9ef8d6205763 -Content-Disposition: form-data; name="name" - -daniel -------------------------------9ef8d6205763 -Content-Disposition: form-data; name="tool" - -curl -------------------------------9ef8d6205763 -Content-Disposition: form-data; name="file"; filename="test9.txt" -Content-Type: text/plain - -foo- -This is a moo- -bar - -------------------------------9ef8d6205763-- -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test90 b/Utilities/cmcurl-7.19.0/tests/data/test90 deleted file mode 100644 index b72e587..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test90 +++ /dev/null @@ -1,187 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP NTLM auth ---anyauth -followlocation -</keywords> -</info> -# Server-side -<reply> - -<data> -HTTP/1.1 401 Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Basic -WWW-Authenticate: Wild-and-crazy -WWW-Authenticate: NTLM -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 26 - -This is not the real page -</data> - -# This is supposed to be returned when the server gets a first -# Authorization: NTLM line passed-in from the client -<data1001> -HTTP/1.1 401 Now gimme that second request of crap -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 34 -WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -This is not the real page either! -</data1001> - -# This is supposed to be returned when the server gets the second -# Authorization: NTLM line passed-in from the client -<data1002> -HTTP/1.1 301 Things are fine in server land swsclose -Server: Microsoft-IIS/5.0 -Connection: close -Location: /you/900010 - -</data1002> - -# This is the first reply after the redirection -<data10> -HTTP/1.1 401 Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Basic -WWW-Authenticate: Wild-and-crazy -WWW-Authenticate: NTLM -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 26 - -This is not the real page -</data10> - -<data1011> -HTTP/1.1 401 Now gimme that second round of crap -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 34 -WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -This is not the real page either! -</data1011> - -# This is supposed to be returned when the server gets the second -# Authorization: NTLM line passed-in from the client -<data1012> -HTTP/1.1 200 Things are fine in server land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 32 - -Finally, this is the real page! -</data1012> - -<datacheck> -HTTP/1.1 401 Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Basic -WWW-Authenticate: Wild-and-crazy -WWW-Authenticate: NTLM -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 26 - -HTTP/1.1 401 Now gimme that second request of crap -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 34 -WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -HTTP/1.1 301 Things are fine in server land swsclose -Server: Microsoft-IIS/5.0 -Connection: close -Location: /you/900010 - -HTTP/1.1 401 Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Basic -WWW-Authenticate: Wild-and-crazy -WWW-Authenticate: NTLM -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 26 - -HTTP/1.1 401 Now gimme that second round of crap -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 34 -WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -HTTP/1.1 200 Things are fine in server land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 32 - -Finally, this is the real page! -</datacheck> - -</reply> - -# Client-side -<client> -<features> -NTLM -</features> -<server> -http -</server> - <name> -HTTP with NTLM via --anyauth, and then follow-location with NTLM again - </name> - <command> -http://%HOSTIP:%HTTPPORT/90 -u testuser:testpass --anyauth -L -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -# We strip off a large chunk of the type-2 NTLM message since it depends on -# the local host name and thus differs on different machines! -<strippart> -s/^(Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAA).*/$1/ -</strippart> -<protocol> -GET /90 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /90 HTTP/1.1 -Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= -User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /90 HTTP/1.1 -Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAA -User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /you/900010 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /you/900010 HTTP/1.1 -Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= -User-Agent: curl/7.10.8-pre1 (i686-pc-linux-gnu) libcurl/7.10.8-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 GSS -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /you/900010 HTTP/1.1 -Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAA -User-Agent: curl/7.10.8-pre1 (i686-pc-linux-gnu) libcurl/7.10.8-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 GSS -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test91 b/Utilities/cmcurl-7.19.0/tests/data/test91 deleted file mode 100644 index 070f0d0..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test91 +++ /dev/null @@ -1,118 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP NTLM auth -</keywords> -</info> -# Server-side -<reply> -<data> -HTTP/1.1 401 Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Magic-Negotiate -WWW-Authenticate: NTLM -WWW-Authenticate: Basic realm="daniel" -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 0 -Connection: close - -</data> - -# This is supposed to be returned when the server gets a first -# Authorization: NTLM line passed-in from the client -<data1001> -HTTP/1.1 401 Now gimme that second request of crap -Server: Microsoft-IIS/5.0 -Content-Length: 34 -Content-Type: text/html; charset=iso-8859-1 -WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -This is not the real page either! -</data1001> - -# This is supposed to be returned when the server gets the second -# Authorization: NTLM line passed-in from the client -<data1002> -HTTP/1.1 200 Things are fine in server land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 32 - -Finally, this is the real page! -</data1002> - -<datacheck> -HTTP/1.1 401 Authorization Required swsclose -Server: Apache/1.3.27 (Darwin) PHP/4.1.2 -WWW-Authenticate: Magic-Negotiate -WWW-Authenticate: NTLM -WWW-Authenticate: Basic realm="daniel" -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 0 -Connection: close - -HTTP/1.1 401 Now gimme that second request of crap -Server: Microsoft-IIS/5.0 -Content-Length: 34 -Content-Type: text/html; charset=iso-8859-1 -WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== - -HTTP/1.1 200 Things are fine in server land swsclose -Server: Microsoft-IIS/5.0 -Content-Type: text/html; charset=iso-8859-1 -Content-Length: 32 - -Finally, this is the real page! -</datacheck> - -</reply> - -# Client-side -<client> -<features> -NTLM -</features> -<server> -http -</server> - <name> -HTTP with NTLM/Negotiate/Basic, anyauth and user with domain, with size 0 - </name> - <command> -http://%HOSTIP:%HTTPPORT/91 --anyauth -u mydomain\\myself:secret -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -# We strip off a large chunk of the type-2 NTLM message since it depends on -# the local host name and thus differs on different machines! -<strippart> -s/^(Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAgACABwAAAABgAGAHgAAAA).*/$1/ -</strippart> -<protocol> -GET /91 HTTP/1.1 -User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /91 HTTP/1.1 -Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= -User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -GET /91 HTTP/1.1 -Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAgACABwAAAABgAGAHgAAAA -User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test92 b/Utilities/cmcurl-7.19.0/tests/data/test92 deleted file mode 100644 index 3a42efb..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test92 +++ /dev/null @@ -1,54 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -Content-Range -Resume -</keywords> -</info> - -# Server-side -<reply> -<data> -HTTP/1.1 416 Requested Range Not Satisfiable -Date: Fri, 24 Oct 2003 21:33:12 GMT -Server: Apache/1.3.19 (Unix) (Red-Hat/Linux) mod_ssl/2.8.1 OpenSSL/0.9.6 PHP/4.3.1 -Last-Modified: Fri, 24 Oct 2003 18:01:23 GMT -ETag: "ab57a-507-3f9968f3" -Accept-Ranges: bytes -Content-Length: 87 -Content-Range: bytes */87 -Content-Type: image/gif - -</data> -</reply> - -# Client-side -<client> -<server> -http -</server> - <name> -HTTP resume transfer with the whole file already downloaded - </name> - <command> -http://%HOSTIP:%HTTPPORT/want/92 -C 87 -</command> -</client> - -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /want/92 HTTP/1.1 -Range: bytes=87- -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> - -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test93 b/Utilities/cmcurl-7.19.0/tests/data/test93 deleted file mode 100644 index d73836f..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test93 +++ /dev/null @@ -1,51 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -HTTP proxy -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 407 Needs proxy authentication -Server: test-server/fake swsclose yesyes -Proxy-Authenticate: Basic "oh please" -Connection: close - -bing -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP GET with failed proxy auth - </name> - <command> -http://%HOSTIP:%HTTPPORT/93 -x %HOSTIP:%HTTPPORT -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET http://%HOSTIP:%HTTPPORT/93 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Pragma: no-cache -Accept: */* -Proxy-Connection: Keep-Alive - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test94 b/Utilities/cmcurl-7.19.0/tests/data/test94 deleted file mode 100644 index f553d5d..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test94 +++ /dev/null @@ -1,58 +0,0 @@ -<testcase> -<info> -<keywords> -HTTPS -HTTP GET -HTTP CONNECT -HTTP proxy -FAILURE -</keywords> -</info> -# -# Server-side -<reply> -<data nocheck="1"> -HTTP/1.1 407 Needs proxy authentication -Server: test-server/fake swsclose yesyes -Proxy-Authenticate: Basic "oh please" -Connection: close - -bing -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> -<features> -SSL -</features> - <name> -HTTPS GET with failed proxy auth - </name> - <command> -https://test.anything.really.com:94 -x %HOSTIP:%HTTPPORT -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<errorcode> -56 -</errorcode> -<strip> -^User-Agent:.* -</strip> -<protocol> -CONNECT test.anything.really.com:94 HTTP/1.0 -User-Agent: curl/7.11.0-CVS (i686-pc-linux-gnu) libcurl/7.11.0-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 -Host: test.anything.really.com:94 -Proxy-Connection: Keep-Alive - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test95 b/Utilities/cmcurl-7.19.0/tests/data/test95 deleted file mode 100644 index 67d5ba0..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test95 +++ /dev/null @@ -1,74 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP POST -HTTP CONNECT -proxytunnel -</keywords> -</info> - -# -# Server-side -<reply> -<data> -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake swsclose -Content-Type: text/html -Funny-head: yesyes -Content-Length: 9 - -contents -</data> -<datacheck> -HTTP/1.1 200 Mighty fine indeed - -HTTP/1.1 200 OK -Date: Thu, 09 Nov 2010 14:49:00 GMT -Server: test-server/fake swsclose -Content-Type: text/html -Funny-head: yesyes -Content-Length: 9 - -contents -</datacheck> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP over proxytunnel using POST - </name> - <command> -http://%HOSTIP:%HTTPPORT/we/want/that/page/95 -p -x %HOSTIP:%HTTPPORT -d "datatopost=ohthatsfunyesyes" -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol nonewline="yes"> -CONNECT %HOSTIP:%HTTPPORT HTTP/1.0 -User-Agent: curl/7.10.7-pre2 (i686-pc-linux-gnu) libcurl/7.10.7-pre2 OpenSSL/0.9.7a zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Proxy-Connection: Keep-Alive - -POST /we/want/that/page/95 HTTP/1.1 -User-Agent: curl/7.10.7-pre2 (i686-pc-linux-gnu) libcurl/7.10.7-pre2 OpenSSL/0.9.7a zlib/1.1.3 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 27 -Content-Type: application/x-www-form-urlencoded - -datatopost=ohthatsfunyesyes -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test97 b/Utilities/cmcurl-7.19.0/tests/data/test97 deleted file mode 100644 index 287ca5e..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test97 +++ /dev/null @@ -1,52 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP POST -HTTP replaced headers -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.0 200 OK -Server: test-server/fake -Content-Type: text/html -Content-Length: 6 - -blaha -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP POST with custom content-type - </name> - <command> - -d "hejsanallabarn" -H "Content-Type: silly/type" http://%HOSTIP:%HTTPPORT/97 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol nonewline="yes"> -POST /97 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Type: silly/type -Content-Length: 14 - -hejsanallabarn -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test98 b/Utilities/cmcurl-7.19.0/tests/data/test98 deleted file mode 100644 index 02e4c61..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test98 +++ /dev/null @@ -1,55 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP PUT -chunked Transfer-Encoding -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.0 200 OK -Server: test-server/fake -Content-Type: text/html -Content-Length: 6 - -blaha -</data> -</reply> - -# -# Client-side -<client> -<server> -http -</server> - <name> -HTTP PUT from stdin with set size, disabling chunked transfer-encoding - </name> - <command> - -T - -H "Transfer-Encoding:" -H "Content-Length: 14" http://%HOSTIP:%HTTPPORT/98 -</command> -<stdin> -data on stdin -</stdin> -</client> - -# -# Verify data after the test has been "shot" -<verify> -<strip> -^User-Agent:.* -</strip> -<protocol> -PUT /98 HTTP/1.1 -Host: %HOSTIP:%HTTPPORT -Accept: */* -Content-Length: 14 -Expect: 100-continue - -data on stdin -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/data/test99 b/Utilities/cmcurl-7.19.0/tests/data/test99 deleted file mode 100644 index b36bb74..0000000 --- a/Utilities/cmcurl-7.19.0/tests/data/test99 +++ /dev/null @@ -1,69 +0,0 @@ -<testcase> -<info> -<keywords> -HTTP -HTTP GET -Resume -Largefile -FAILURE -</keywords> -</info> -# -# Server-side -<reply> -<data> -HTTP/1.1 404 Nah -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close -Content-Length: 13 -Funny-head: yesyes - -0123456789123 -</data> - -<datacheck> -HTTP/1.1 404 Nah -Date: Thu, 09 Nov 2010 14:49:00 GMT -Connection: close -Content-Length: 13 -Funny-head: yesyes - -</datacheck> -</reply> - -# -# Client-side -<client> -<features> -large_file -</features> -<server> -http -</server> - <name> -HTTP GET with large-file resume point and failed resume - </name> - <command> -http://%HOSTIP:%HTTPPORT/99 -C 9999999999 -</command> -</client> - -# -# Verify data after the test has been "shot" -<verify> -# 33 is CURLE_RANGE_ERROR -<errorcode> -33 -</errorcode> -<strip> -^User-Agent:.* -</strip> -<protocol> -GET /99 HTTP/1.1 -Range: bytes=9999999999- -Host: %HOSTIP:%HTTPPORT -Accept: */* - -</protocol> -</verify> -</testcase> diff --git a/Utilities/cmcurl-7.19.0/tests/ftp.pm b/Utilities/cmcurl-7.19.0/tests/ftp.pm deleted file mode 100644 index 421fee1..0000000 --- a/Utilities/cmcurl-7.19.0/tests/ftp.pm +++ /dev/null @@ -1,108 +0,0 @@ -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al. -# -# This software is licensed as described in the file COPYING, which -# you should have received as part of this distribution. The terms -# are also available at http://curl.haxx.se/docs/copyright.html. -# -# You may opt to use, copy, modify, merge, publish, distribute and/or sell -# copies of the Software, and permit persons to whom the Software is -# furnished to do so, under the terms of the COPYING file. -# -# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -# KIND, either express or implied. -# -# $Id$ -########################################################################### - -####################################################################### -# Return the pid of the server as found in the given pid file -# -sub serverpid { - my $PIDFILE = $_[0]; - open(PFILE, "<$PIDFILE"); - my $PID=0+<PFILE>; - close(PFILE); - return $PID; -} - -####################################################################### -# Check the given test server if it is still alive. -# -sub checkserver { - my ($pidfile)=@_; - my $pid=0; - - # check for pidfile - if ( -f $pidfile ) { - $pid=serverpid($pidfile); - if ($pid ne "" && kill(0, $pid)) { - return $pid; - } - else { - return -$pid; # negative means dead process - } - } - return 0; -} - -############################################################################# -# Kill a specific slave -# -sub ftpkillslave { - my ($id, $ext, $verbose)=@_; - my $base; - for $base (('filt', 'data')) { - my $f = ".sock$base$id$ext.pid"; - my $pid = checkserver($f); - if($pid > 0) { - printf ("* kill pid for %s => %d\n", "ftp-$base$id$ext", $pid) if($verbose); - kill (9, $pid); # die! - waitpid($pid, 0); - } - unlink($f); - } -} - - -############################################################################# -# Make sure no FTP leftovers are still running. Kill all slave processes. -# This uses pidfiles since it might be used by other processes. -# -sub ftpkillslaves { - my ($versbose) = @_; - for $ext (("", "ipv6")) { - for $id (("", "2")) { - ftpkillslave ($id, $ext, $verbose); - } - } -} - - -sub set_advisor_read_lock { - my ($filename) = @_; - - if(open(FILEH, ">$filename")) { - close(FILEH); - return; - } - printf "Error creating lock file $filename error: $!"; -} - - -sub clear_advisor_read_lock { - my ($filename) = @_; - - if(-f $filename) { - unlink($filename); - } -} - - -1; diff --git a/Utilities/cmcurl-7.19.0/tests/ftpserver.pl b/Utilities/cmcurl-7.19.0/tests/ftpserver.pl deleted file mode 100755 index 3841e1f..0000000 --- a/Utilities/cmcurl-7.19.0/tests/ftpserver.pl +++ /dev/null @@ -1,909 +0,0 @@ -#!/usr/bin/env perl -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al. -# -# This software is licensed as described in the file COPYING, which -# you should have received as part of this distribution. The terms -# are also available at http://curl.haxx.se/docs/copyright.html. -# -# You may opt to use, copy, modify, merge, publish, distribute and/or sell -# copies of the Software, and permit persons to whom the Software is -# furnished to do so, under the terms of the COPYING file. -# -# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -# KIND, either express or implied. -# -# $Id$ -########################################################################### - -# This is the FTP server designed for the curl test suite. -# -# It is meant to exercise curl, it is not meant to be a fully working -# or even very standard compliant server. -# -# You may optionally specify port on the command line, otherwise it'll -# default to port 8921. -# -# All socket/network/TCP related stuff is done by the 'sockfilt' program. -# - -use strict; -use IPC::Open2; -#use Time::HiRes qw( gettimeofday ); # not available in perl 5.6 - -require "getpart.pm"; -require "ftp.pm"; - - -my $ftpdnum=""; - -# open and close each time to allow removal at any time -sub logmsg { - # if later than perl 5.6 is used - # my ($seconds, $microseconds) = gettimeofday; - my $seconds = time(); - my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = - localtime($seconds); - open(FTPLOG, ">>log/ftpd$ftpdnum.log"); - printf FTPLOG ("%02d:%02d:%02d ", $hour, $min, $sec); - print FTPLOG @_; - close(FTPLOG); -} - -sub ftpmsg { - # append to the server.input file - open(INPUT, ">>log/server$ftpdnum.input") || - logmsg "failed to open log/server$ftpdnum.input\n"; - - print INPUT @_; - close(INPUT); - - # use this, open->print->close system only to make the file - # open as little as possible, to make the test suite run - # better on windows/cygwin -} - -my $verbose=0; # set to 1 for debugging -my $pasvbadip=0; -my $retrweirdo=0; -my $retrnosize=0; -my $srcdir="."; -my $nosave=0; -my $controldelay=0; # set to 1 to delay the control connect data sending to - # test that curl deals with that nicely -my $slavepid; # for the DATA connection sockfilt slave process -my $ipv6; -my $ext; # append to log/pid file names -my $grok_eprt; -my $port = 8921; # just a default -my $listenaddr = "127.0.0.1"; # just a default -my $pidfile = ".ftpd.pid"; # a default, use --pidfile - -my $SERVERLOGS_LOCK="log/serverlogs.lock"; # server logs advisor read lock - -do { - if($ARGV[0] eq "-v") { - $verbose=1; - } - elsif($ARGV[0] eq "-s") { - $srcdir=$ARGV[1]; - shift @ARGV; - } - elsif($ARGV[0] eq "--id") { - $ftpdnum=$ARGV[1]; - shift @ARGV; - } - elsif($ARGV[0] eq "--pidfile") { - $pidfile=$ARGV[1]; - shift @ARGV; - } - elsif($ARGV[0] eq "--ipv6") { - $ipv6="--ipv6"; - $ext="ipv6"; - $grok_eprt = 1; - } - elsif($ARGV[0] eq "--port") { - $port = $ARGV[1]; - shift @ARGV; - } - elsif($ARGV[0] eq "--addr") { - $listenaddr = $ARGV[1]; - $listenaddr =~ s/^\[(.*)\]$/\1/; - shift @ARGV; - } -} while(shift @ARGV); - -sub catch_zap { - my $signame = shift; - print STDERR "ftpserver.pl received SIG$signame, exiting\n"; - ftpkillslaves(1); - clear_advisor_read_lock($SERVERLOGS_LOCK); - die "Somebody sent me a SIG$signame"; -} -$SIG{INT} = \&catch_zap; -$SIG{KILL} = \&catch_zap; - -my $sfpid; - -local(*SFREAD, *SFWRITE); - -sub sysread_or_die { - my $FH = shift; - my $scalar = shift; - my $length = shift; - my $fcaller; - my $lcaller; - my $result; - - $result = sysread($$FH, $$scalar, $length); - - if(not defined $result) { - ($fcaller, $lcaller) = (caller)[1,2]; - logmsg "Failed to read input\n"; - logmsg "Error: ftp$ftpdnum$ext sysread error: $!\n"; - kill(9, $sfpid); - waitpid($sfpid, 0); - clear_advisor_read_lock($SERVERLOGS_LOCK); - die "Died in sysread_or_die() at $fcaller " . - "line $lcaller. ftp$ftpdnum$ext sysread error: $!\n"; - } - elsif($result == 0) { - ($fcaller, $lcaller) = (caller)[1,2]; - logmsg "Failed to read input\n"; - logmsg "Error: ftp$ftpdnum$ext read zero\n"; - kill(9, $sfpid); - waitpid($sfpid, 0); - clear_advisor_read_lock($SERVERLOGS_LOCK); - die "Died in sysread_or_die() at $fcaller " . - "line $lcaller. ftp$ftpdnum$ext read zero\n"; - } - - return $result; -} - -sub startsf { - my $cmd="./server/sockfilt --port $port --logfile log/sockctrl$ftpdnum$ext.log --pidfile .sockfilt$ftpdnum$ext.pid $ipv6"; - $sfpid = open2(*SFREAD, *SFWRITE, $cmd); - - print STDERR "$cmd\n" if($verbose); - - print SFWRITE "PING\n"; - my $pong; - sysread SFREAD, $pong, 5; - - if($pong !~ /^PONG/) { - logmsg "Failed sockfilt command: $cmd\n"; - kill(9, $sfpid); - waitpid($sfpid, 0); - clear_advisor_read_lock($SERVERLOGS_LOCK); - die "Failed to start sockfilt!"; - } -} - -# remove the file here so that if startsf() fails, it is very noticeable -unlink($pidfile); - -startsf(); - -logmsg sprintf("FTP server listens on port IPv%d/$port\n", $ipv6?6:4); -open(PID, ">$pidfile"); -print PID $$."\n"; -close(PID); - -logmsg("logged pid $$ in $pidfile\n"); - -sub sockfilt { - my $l; - foreach $l (@_) { - printf SFWRITE "DATA\n%04x\n", length($l); - print SFWRITE $l; - } -} - - -# Send data to the client on the control stream, which happens to be plain -# stdout. - -sub sendcontrol { - if(!$controldelay) { - # spit it all out at once - sockfilt @_; - } - else { - my $a = join("", @_); - my @a = split("", $a); - - for(@a) { - sockfilt $_; - select(undef, undef, undef, 0.01); - } - } - my $log; - foreach $log (@_) { - my $l = $log; - $l =~ s/[\r\n]//g; - logmsg "> \"$l\"\n"; - } -} - -# Send data to the client on the data stream - -sub senddata { - my $l; - foreach $l (@_) { - printf DWRITE "DATA\n%04x\n", length($l); - print DWRITE $l; - } -} - -# this text is shown before the function specified below is run -my %displaytext = ('USER' => '331 We are happy you popped in!', - 'PASS' => '230 Welcome you silly person', - 'PORT' => '200 You said PORT - I say FINE', - 'TYPE' => '200 I modify TYPE as you wanted', - 'LIST' => '150 here comes a directory', - 'NLST' => '150 here comes a directory', - 'CWD' => '250 CWD command successful.', - 'SYST' => '215 UNIX Type: L8', # just fake something - 'QUIT' => '221 bye bye baby', # just reply something - 'PWD' => '257 "/nowhere/anywhere" is current directory', - 'MKD' => '257 Created your requested directory', - 'REST' => '350 Yeah yeah we set it there for you', - 'DELE' => '200 OK OK OK whatever you say', - 'RNFR' => '350 Received your order. Please provide more', - 'RNTO' => '250 Ok, thanks. File renaming completed.', - 'NOOP' => '200 Yes, I\'m very good at doing nothing.', - 'PBSZ' => '500 PBSZ not implemented', - 'PROT' => '500 PROT not implemented', - ); - -# callback functions for certain commands -my %commandfunc = ( 'PORT' => \&PORT_command, - 'EPRT' => \&PORT_command, - 'LIST' => \&LIST_command, - 'NLST' => \&NLST_command, - 'PASV' => \&PASV_command, - 'EPSV' => \&PASV_command, - 'RETR' => \&RETR_command, - 'SIZE' => \&SIZE_command, - 'REST' => \&REST_command, - 'STOR' => \&STOR_command, - 'APPE' => \&STOR_command, # append looks like upload - 'MDTM' => \&MDTM_command, - ); - - -sub close_dataconn { - my ($closed)=@_; # non-zero if already disconnected - - if(!$closed) { - logmsg "* disconnect data connection\n"; - print DWRITE "DISC\n"; - my $i; - sysread DREAD, $i, 5; - } - else { - logmsg "data connection already disconnected\n"; - } - logmsg "=====> Closed data connection\n"; - - logmsg "* quit sockfilt for data (pid $slavepid)\n"; - print DWRITE "QUIT\n"; - waitpid $slavepid, 0; - $slavepid=0; -} - -my $rest=0; -sub REST_command { - $rest = $_[0]; - logmsg "Set REST position to $rest\n" -} - -sub LIST_command { - # print "150 ASCII data connection for /bin/ls (193.15.23.1,59196) (0 bytes)\r\n"; - -# this is a built-in fake-dir ;-) -my @ftpdir=("total 20\r\n", -"drwxr-xr-x 8 98 98 512 Oct 22 13:06 .\r\n", -"drwxr-xr-x 8 98 98 512 Oct 22 13:06 ..\r\n", -"drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT\r\n", -"-r--r--r-- 1 0 1 35 Jul 16 1996 README\r\n", -"lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin\r\n", -"dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev\r\n", -"drwxrwxrwx 2 98 98 512 May 29 16:04 download.html\r\n", -"dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc\r\n", -"drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub\r\n", -"dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr\r\n"); - - logmsg "pass LIST data on data connection\n"; - for(@ftpdir) { - senddata $_; - } - close_dataconn(0); - sendcontrol "226 ASCII transfer complete\r\n"; - return 0; -} - -sub NLST_command { - my @ftpdir=("file", "with space", "fake", "..", " ..", "funny", "README"); - logmsg "pass NLST data on data connection\n"; - for(@ftpdir) { - senddata "$_\r\n"; - } - close_dataconn(0); - sendcontrol "226 ASCII transfer complete\r\n"; - return 0; -} - -sub MDTM_command { - my $testno = $_[0]; - my $testpart = ""; - if ($testno > 10000) { - $testpart = $testno % 10000; - $testno = int($testno / 10000); - } - - loadtest("$srcdir/data/test$testno"); - - my @data = getpart("reply", "mdtm"); - - my $reply = $data[0]; - chomp $reply; - - if($reply <0) { - sendcontrol "550 $testno: no such file.\r\n"; - } - elsif($reply) { - sendcontrol "$reply\r\n"; - } - else { - sendcontrol "500 MDTM: no such command.\r\n"; - } - return 0; -} - -sub SIZE_command { - my $testno = $_[0]; - my $testpart = ""; - if ($testno > 10000) { - $testpart = $testno % 10000; - $testno = int($testno / 10000); - } - - loadtest("$srcdir/data/test$testno"); - - if($testno eq "verifiedserver") { - my $response = "WE ROOLZ: $$\r\n"; - my $size = length($response); - sendcontrol "213 $size\r\n"; - return 0; - } - - my @data = getpart("reply", "size"); - - my $size = $data[0]; - - if($size) { - if($size > -1) { - sendcontrol "213 $size\r\n"; - } - else { - sendcontrol "550 $testno: No such file or directory.\r\n"; - } - } - else { - $size=0; - @data = getpart("reply", "data$testpart"); - for(@data) { - $size += length($_); - } - if($size) { - sendcontrol "213 $size\r\n"; - } - else { - sendcontrol "550 $testno: No such file or directory.\r\n"; - } - } - return 0; -} - -sub RETR_command { - my ($testno) = @_; - - if($testno =~ /^verifiedserver$/) { - # this is the secret command that verifies that this actually is - # the curl test server - my $response = "WE ROOLZ: $$\r\n"; - my $len = length($response); - sendcontrol "150 Binary junk ($len bytes).\r\n"; - senddata "WE ROOLZ: $$\r\n"; - close_dataconn(0); - sendcontrol "226 File transfer complete\r\n"; - if($verbose) { - print STDERR "FTPD: We returned proof we are the test server\n"; - } - return 0; - } - - $testno =~ s/^([^0-9]*)//; - my $testpart = ""; - if ($testno > 10000) { - $testpart = $testno % 10000; - $testno = int($testno / 10000); - } - - loadtest("$srcdir/data/test$testno"); - - my @data = getpart("reply", "data$testpart"); - - my $size=0; - for(@data) { - $size += length($_); - } - - my %hash = getpartattr("reply", "data$testpart"); - - if($size || $hash{'sendzero'}) { - - if($rest) { - # move read pointer forward - $size -= $rest; - logmsg "REST $rest was removed from size, makes $size left\n"; - $rest = 0; # reset REST offset again - } - if($retrweirdo) { - sendcontrol "150 Binary data connection for $testno () ($size bytes).\r\n", - "226 File transfer complete\r\n"; - - for(@data) { - my $send = $_; - senddata $send; - } - close_dataconn(0); - $retrweirdo=0; # switch off the weirdo again! - } - else { - my $sz = "($size bytes)"; - if($retrnosize) { - $sz = "size?"; - } - - sendcontrol "150 Binary data connection for $testno () $sz.\r\n"; - - for(@data) { - my $send = $_; - senddata $send; - } - close_dataconn(0); - sendcontrol "226 File transfer complete\r\n"; - } - } - else { - sendcontrol "550 $testno: No such file or directory.\r\n"; - } - return 0; -} - -sub STOR_command { - my $testno=$_[0]; - - my $filename = "log/upload.$testno"; - - logmsg "STOR test number $testno in $filename\n"; - - sendcontrol "125 Gimme gimme gimme!\r\n"; - - open(FILE, ">$filename") || - return 0; # failed to open output - - my $line; - my $ulsize=0; - my $disc=0; - while (5 == (sysread DREAD, $line, 5)) { - if($line eq "DATA\n") { - my $i; - sysread DREAD, $i, 5; - - #print STDERR " GOT: $i"; - - my $size = hex($i); - sysread DREAD, $line, $size; - - #print STDERR " GOT: $size bytes\n"; - - $ulsize += $size; - print FILE $line if(!$nosave); - logmsg "> Appending $size bytes to file\n"; - } - elsif($line eq "DISC\n") { - # disconnect! - $disc=1; - last; - } - else { - logmsg "No support for: $line"; - last; - } - } - if($nosave) { - print FILE "$ulsize bytes would've been stored here\n"; - } - close(FILE); - close_dataconn($disc); - logmsg "received $ulsize bytes upload\n"; - sendcontrol "226 File transfer complete\r\n"; - return 0; -} - -sub PASV_command { - my ($arg, $cmd)=@_; - my $pasvport; - my $pidf=".sockdata$ftpdnum$ext.pid"; - - my $prev = checkserver($pidf); - if($prev > 0) { - print "kill existing server: $prev\n" if($verbose); - kill(9, $prev); - waitpid($prev, 0); - } - - # We fire up a new sockfilt to do the data transfer for us. - $slavepid = open2(\*DREAD, \*DWRITE, - "./server/sockfilt --port 0 --logfile log/sockdata$ftpdnum$ext.log --pidfile $pidf $ipv6"); - - print DWRITE "PING\n"; - my $pong; - - sysread_or_die(\*DREAD, \$pong, 5); - - if($pong !~ /^PONG/) { - kill(9, $slavepid); - waitpid($slavepid, 0); - sendcontrol "500 no free ports!\r\n"; - logmsg "failed to run sockfilt for data connection\n"; - return 0; - } - - logmsg "Run sockfilt for data on pid $slavepid\n"; - - # Find out what port we listen on - my $i; - print DWRITE "PORT\n"; - - # READ the response code - sysread_or_die(\*DREAD, \$i, 5); - - # READ the response size - sysread_or_die(\*DREAD, \$i, 5); - - my $size = hex($i); - - # READ the response data - sysread_or_die(\*DREAD, \$i, $size); - - # The data is in the format - # IPvX/NNN - - if($i =~ /IPv(\d)\/(\d+)/) { - # FIX: deal with IP protocol version - $pasvport = $2; - } - - if($cmd ne "EPSV") { - # PASV reply - my $p=$listenaddr; - $p =~ s/\./,/g; - if($pasvbadip) { - $p="1,2,3,4"; - } - sendcontrol sprintf("227 Entering Passive Mode ($p,%d,%d)\n", - ($pasvport/256), ($pasvport%256)); - } - else { - # EPSV reply - sendcontrol sprintf("229 Entering Passive Mode (|||%d|)\n", $pasvport); - } - - eval { - local $SIG{ALRM} = sub { die "alarm\n" }; - - # assume swift operations unless explicitly slow - alarm ($controldelay?20:10); - - # Wait for 'CNCT' - my $input; - - while(sysread(DREAD, $input, 5)) { - - if($input !~ /^CNCT/) { - # we wait for a connected client - logmsg "Odd, we got $input from client\n"; - next; - } - logmsg "====> Client DATA connect\n"; - last; - } - alarm 0; - }; - if ($@) { - # timed out - - print DWRITE "QUIT\n"; - waitpid $slavepid, 0; - logmsg "accept failed\n"; - $slavepid=0; - return; - } - else { - logmsg "data connection setup on port $pasvport\n"; - } - - return; -} - -# Support both PORT and EPRT here. Consider LPRT too. - -sub PORT_command { - my ($arg, $cmd) = @_; - my $port; - my $addr; - - # We always ignore the given IP and use localhost. - - if($cmd eq "PORT") { - if($arg !~ /(\d+),(\d+),(\d+),(\d+),(\d+),(\d+)/) { - logmsg "bad PORT-line: $arg\n"; - sendcontrol "500 silly you, go away\r\n"; - return 0; - } - $port = ($5<<8)+$6; - $addr = "$1.$2.$3.$4"; - } - # EPRT |2|::1|49706| - elsif(($cmd eq "EPRT") && ($grok_eprt)) { - if($arg !~ /(\d+)\|([^\|]+)\|(\d+)/) { - sendcontrol "500 silly you, go away\r\n"; - return 0; - } - sendcontrol "200 Thanks for dropping by. We contact you later\r\n"; - $port = $3; - $addr = $2; - } - else { - sendcontrol "500 we don't like $cmd now\r\n"; - return 0; - } - - if(!$port || $port > 65535) { - print STDERR "very illegal PORT number: $port\n"; - return 1; - } - - # We fire up a new sockfilt to do the data transfer for us. - # FIX: make it use IPv6 if need be - my $filtcmd="./server/sockfilt --connect $port --addr $addr --logfile log/sockdata$ftpdnum$ext.log --pidfile .sockdata$ftpdnum$ext.pid $ipv6"; - $slavepid = open2(\*DREAD, \*DWRITE, $filtcmd); - - print STDERR "$filtcmd\n" if($verbose); - - print DWRITE "PING\n"; - my $pong; - sysread DREAD, $pong, 5; - - if($pong !~ /^PONG/) { - logmsg "Failed sockfilt for data connection\n"; - kill(9, $slavepid); - waitpid($slavepid, 0); - } - - logmsg "====> Client DATA connect to port $port\n"; - - return; -} - -my %customreply; -my %customcount; -my %delayreply; -sub customize { - $nosave = 0; # default is to save as normal - $controldelay = 0; # default is no delaying the responses - $retrweirdo = 0; - $retrnosize = 0; - $pasvbadip = 0; - $nosave = 0; - %customreply = (); - %customcount = (); - %delayreply = (); - - open(CUSTOM, "<log/ftpserver.cmd") || - return 1; - - logmsg "FTPD: Getting commands from log/ftpserver.cmd\n"; - - while(<CUSTOM>) { - if($_ =~ /REPLY ([A-Z]+) (.*)/) { - $customreply{$1}=eval "qq{$2}"; - logmsg "FTPD: set custom reply for $1\n"; - } - if($_ =~ /COUNT ([A-Z]+) (.*)/) { - # we blank the customreply for this command when having - # been used this number of times - $customcount{$1}=$2; - logmsg "FTPD: blank custom reply for $1 after $2 uses\n"; - } - elsif($_ =~ /DELAY ([A-Z]+) (\d*)/) { - $delayreply{$1}=$2; - logmsg "FTPD: delay reply for $1 with $2 seconds\n"; - } - elsif($_ =~ /SLOWDOWN/) { - $controldelay=1; - logmsg "FTPD: send response with 0.1 sec delay between each byte\n"; - } - elsif($_ =~ /RETRWEIRDO/) { - logmsg "FTPD: instructed to use RETRWEIRDO\n"; - $retrweirdo=1; - } - elsif($_ =~ /RETRNOSIZE/) { - logmsg "FTPD: instructed to use RETRNOSIZE\n"; - $retrnosize=1; - } - elsif($_ =~ /PASVBADIP/) { - logmsg "FTPD: instructed to use PASVBADIP\n"; - $pasvbadip=1; - } - elsif($_ =~ /NOSAVE/) { - # don't actually store the file we upload - to be used when - # uploading insanely huge amounts - $nosave = 1; - logmsg "FTPD: NOSAVE prevents saving of uploaded data\n"; - } - } - close(CUSTOM); -} - -my @welcome=( - '220- _ _ ____ _ '."\r\n", - '220- ___| | | | _ \| | '."\r\n", - '220- / __| | | | |_) | | '."\r\n", - '220- | (__| |_| | _ <| |___ '."\r\n", - '220 \___|\___/|_| \_\_____|'."\r\n"); - - -while(1) { - # - # We read 'sockfilt' commands. - # - my $input; - - logmsg "Awaiting input\n"; - sysread_or_die(\*SFREAD, \$input, 5); - - if($input !~ /^CNCT/) { - # we wait for a connected client - logmsg "sockfilt said: $input"; - next; - } - logmsg "====> Client connect\n"; - - set_advisor_read_lock($SERVERLOGS_LOCK); - - # flush data: - $| = 1; - - kill(9, $slavepid) if($slavepid); - waitpid($slavepid, 0) if($slavepid); - $slavepid=0; - - &customize(); # read test control instructions - - sendcontrol @welcome; - if($verbose) { - for(@welcome) { - print STDERR "OUT: $_"; - } - } - - while(1) { - my $i; - - # Now we expect to read DATA\n[hex size]\n[prot], where the [prot] - # part only is FTP lingo. - - # COMMAND - sysread_or_die(\*SFREAD, \$i, 5); - - if($i !~ /^DATA/) { - logmsg "sockfilt said $i"; - if($i =~ /^DISC/) { - # disconnect - last; - } - next; - } - - # SIZE of data - sysread_or_die(\*SFREAD, \$i, 5); - - my $size = hex($i); - - # data - sysread SFREAD, $_, $size; - - ftpmsg $_; - - # Remove trailing CRLF. - s/[\n\r]+$//; - - unless (m/^([A-Z]{3,4})\s?(.*)/i) { - sendcontrol "500 '$_': command not understood.\r\n"; - last; - } - my $FTPCMD=$1; - my $FTPARG=$2; - my $full=$_; - - logmsg "< \"$full\"\n"; - - if($verbose) { - print STDERR "IN: $full\n"; - } - - my $delay = $delayreply{$FTPCMD}; - if($delay) { - # just go sleep this many seconds! - logmsg("Sleep for $delay seconds\n"); - sleep($delay); - } - - my $text; - $text = $customreply{$FTPCMD}; - my $fake = $text; - if($text eq "") { - $text = $displaytext{$FTPCMD}; - } - else { - if($customcount{$FTPCMD} && (!--$customcount{$FTPCMD})) { - # used enough number of times, now blank the customreply - $customreply{$FTPCMD}=""; - } - } - my $check; - if($text) { - sendcontrol "$text\r\n"; - } - else { - $check=1; # no response yet - } - - if($fake eq "") { - # only perform this if we're not faking a reply - my $func = $commandfunc{$FTPCMD}; - if($func) { - &$func($FTPARG, $FTPCMD); - $check=0; # taken care of - } - } - - if($check) { - logmsg "$FTPCMD wasn't handled!\n"; - sendcontrol "500 $FTPCMD is not dealt with!\r\n"; - } - - } # while(1) - logmsg "====> Client disconnected\n"; - - clear_advisor_read_lock($SERVERLOGS_LOCK); -} - -print SFWRITE "QUIT\n"; -waitpid $sfpid, 0; - -clear_advisor_read_lock($SERVERLOGS_LOCK); - -exit; diff --git a/Utilities/cmcurl-7.19.0/tests/getpart.pm b/Utilities/cmcurl-7.19.0/tests/getpart.pm deleted file mode 100644 index 9ade56a..0000000 --- a/Utilities/cmcurl-7.19.0/tests/getpart.pm +++ /dev/null @@ -1,224 +0,0 @@ - -#use strict; - -my @xml; - -my $warning=0; -my $trace=0; - -sub decode_base64 { - tr:A-Za-z0-9+/::cd; # remove non-base64 chars - tr:A-Za-z0-9+/: -_:; # convert to uuencoded format - my $len = pack("c", 32 + 0.75*length); # compute length byte - return unpack("u", $len . $_); # uudecode and print -} - -sub getpartattr { - # if $part is undefined (ie only one argument) then - # return the attributes of the section - - my ($section, $part)=@_; - - my %hash; - my $inside=0; - - # print "Section: $section, part: $part\n"; - - for(@xml) { - # print "$inside: $_"; - if(!$inside && ($_ =~ /^ *\<$section/)) { - $inside++; - } - if((1 ==$inside) && ( ($_ =~ /^ *\<$part([^>]*)/) || - !(defined($part)) ) - ) { - $inside++; - my $attr=$1; - - while($attr =~ s/ *([^=]*)= *(\"([^\"]*)\"|([^\"> ]*))//) { - my ($var, $cont)=($1, $2); - $cont =~ s/^\"(.*)\"$/$1/; - $hash{$var}=$cont; - } - last; - } - elsif((2 ==$inside) && ($_ =~ /^ *\<\/$part/)) { - $inside--; - } - } - return %hash; -} - -sub getpart { - my ($section, $part)=@_; - - my @this; - my $inside=0; - my $base64=0; - - # print "Section: $section, part: $part\n"; - - for(@xml) { - # print "$inside: $_"; - if(!$inside && ($_ =~ /^ *\<$section/)) { - $inside++; - } - elsif((1 ==$inside) && ($_ =~ /^ *\<$part[ \>]/)) { - if($_ =~ /$part [^>]*base64=/) { - # attempt to detect base64 encoded parts - $base64=1; - } - $inside++; - } - elsif((2 ==$inside) && ($_ =~ /^ *\<\/$part/)) { - $inside--; - } - elsif((1==$inside) && ($_ =~ /^ *\<\/$section/)) { - if($trace) { - print STDERR "*** getpart.pm: $section/$part returned data!\n"; - } - if(!@this && $warning) { - print STDERR "*** getpart.pm: $section/$part returned empty!\n"; - } - if($base64) { - # decode the whole array before returning it! - for(@this) { - my $decoded = decode_base64($_); - $_ = $decoded; - } - } - return @this; - } - elsif(2==$inside) { - push @this, $_; - } - } - if($warning) { - print STDERR "*** getpart.pm: $section/$part returned empty!\n"; - } - return @this; #empty! -} - -sub loadtest { - my ($file)=@_; - - undef @xml; - - if(open(XML, "<$file")) { - binmode XML; # for crapage systems, use binary - while(<XML>) { - push @xml, $_; - } - close(XML); - } - else { - # failure - if($warning) { - print STDERR "file $file wouldn't open!\n"; - } - return 1; - } - return 0; -} - -# -# Strip off all lines that match the specified pattern and return -# the new array. -# - -sub striparray { - my ($pattern, $arrayref) = @_; - - my @array; - - for(@$arrayref) { - if($_ !~ /$pattern/) { - push @array, $_; - } - } - return @array; -} - -# -# pass array *REFERENCES* ! -# -sub compareparts { - my ($firstref, $secondref)=@_; - - my $first = join("", @$firstref); - my $second = join("", @$secondref); - - # we cannot compare arrays index per index since with the base64 chunks, - # they may not be "evenly" distributed - - # NOTE: this no longer strips off carriage returns from the arrays. Is that - # really necessary? It ruins the testing of newlines. I believe it was once - # added to enable tests on win32. - - if($first ne $second) { - return 1; - } - - return 0; -} - -# -# Write a given array to the specified file -# -sub writearray { - my ($filename, $arrayref)=@_; - - open(TEMP, ">$filename"); - binmode(TEMP,":raw"); # cygwin fix by Kevin Roth - for(@$arrayref) { - print TEMP $_; - } - close(TEMP); -} - -# -# Load a specified file an return it as an array -# -sub loadarray { - my ($filename)=@_; - my @array; - - open(TEMP, "<$filename"); - while(<TEMP>) { - push @array, $_; - } - close(TEMP); - return @array; -} - -# Given two array references, this function will store them in two temporary -# files, run 'diff' on them, store the result and return the diff output! - -sub showdiff { - my ($logdir, $firstref, $secondref)=@_; - - my $file1="$logdir/check-generated"; - my $file2="$logdir/check-expected"; - - open(TEMP, ">$file1"); - for(@$firstref) { - print TEMP $_; - } - close(TEMP); - - open(TEMP, ">$file2"); - for(@$secondref) { - print TEMP $_; - } - close(TEMP); - my @out = `diff -u $file2 $file1 2>/dev/null`; - - if(!$out[0]) { - @out = `diff -c $file2 $file1 2>/dev/null`; - } - - return @out; -} - - -1; diff --git a/Utilities/cmcurl-7.19.0/tests/httpserver.pl b/Utilities/cmcurl-7.19.0/tests/httpserver.pl deleted file mode 100755 index ae1bcec..0000000 --- a/Utilities/cmcurl-7.19.0/tests/httpserver.pl +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env perl - -use strict; - -my $verbose=0; # set to 1 for debugging - -my $dir="."; -my $port = 8999; # just a default -my $ipv6; -my $pid=".http.pid"; # name of the pidfile -my $fork; -do { - if($ARGV[0] eq "-v") { - $verbose=1; - } - elsif($ARGV[0] eq "-d") { - $dir=$ARGV[1]; - shift @ARGV; - } - elsif($ARGV[0] eq "-p") { - $pid=$ARGV[1]; - shift @ARGV; - } - elsif($ARGV[0] eq "--fork") { - $fork = $ARGV[0]; - shift @ARGV; - } - elsif($ARGV[0] =~ /^(\d+)$/) { - $port = $1; - } - elsif($ARGV[0] =~ /^ipv6/i) { - $ipv6="--ipv6 "; - } -} while(shift @ARGV); - -exec("server/sws --pidfile $pid$fork $ipv6$port $dir"); diff --git a/Utilities/cmcurl-7.19.0/tests/httpsserver.pl b/Utilities/cmcurl-7.19.0/tests/httpsserver.pl deleted file mode 100755 index 95ba103..0000000 --- a/Utilities/cmcurl-7.19.0/tests/httpsserver.pl +++ /dev/null @@ -1,100 +0,0 @@ -#!/usr/bin/env perl -# -# $Id$ -# This is the HTTPS and FTPS server designed for the curl test suite. -# -# It is actually just a layer that runs stunnel properly. - -use strict; -use Cwd; - -my $stunnel = "stunnel"; - -# -# -p pemfile -# -P pid dir -# -d listen port -# -r target port -# -s stunnel path - -my $verbose=0; # set to 1 for debugging - -my $port = 8991; # just our default, weird enough -my $target_port = 8999; # default test http-server port - -my $path = getcwd(); - -my $srcdir=$path; - -my $proto='https'; - -do { - if($ARGV[0] eq "-v") { - $verbose=1; - } - if($ARGV[0] eq "-w") { - return 0; # return success, means we have stunnel working! - } - elsif($ARGV[0] eq "-p") { - $proto=$ARGV[1]; - shift @ARGV; - } - elsif($ARGV[0] eq "-r") { - $target_port=$ARGV[1]; - shift @ARGV; - } - elsif($ARGV[0] eq "-s") { - $stunnel=$ARGV[1]; - shift @ARGV; - } - elsif($ARGV[0] eq "-d") { - $srcdir=$ARGV[1]; - shift @ARGV; - } - elsif($ARGV[0] =~ /^(\d+)$/) { - $port = $1; - } -} while(shift @ARGV); - -my $conffile="$path/stunnel.conf"; # stunnel configuration data -my $certfile="$srcdir/stunnel.pem"; # stunnel server certificate -my $pidfile="$path/.$proto.pid"; # stunnel process pid file - -open(CONF, ">$conffile") || exit 1; -print CONF " - CApath=$path - cert = $certfile - pid = $pidfile - debug = 0 - output = /dev/null - foreground = yes - - [curltest] - accept = $port - connect = $target_port -"; -close CONF; -#system("chmod go-rwx $conffile $certfile"); # secure permissions - - # works only with stunnel versions < 4.00 -my $cmd="$stunnel -p $certfile -P $pidfile -d $port -r $target_port 2>/dev/null"; - -# use some heuristics to determine stunnel version -my $version_ge_4=system("$stunnel -V 2>&1|grep '^stunnel.* on '>/dev/null 2>&1"); - # works only with stunnel versions >= 4.00 -if ($version_ge_4) { $cmd="$stunnel $conffile"; } - -if($verbose) { - print uc($proto)." server: $cmd\n"; -} - -my $rc = system($cmd); - -$rc >>= 8; -if($rc) { - print STDERR "stunnel exited with $rc!\n"; -} - -unlink $conffile; - -exit $rc; diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/Makefile.am b/Utilities/cmcurl-7.19.0/tests/libtest/Makefile.am deleted file mode 100644 index 94774c3..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/Makefile.am +++ /dev/null @@ -1,164 +0,0 @@ -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al. -# -# This software is licensed as described in the file COPYING, which -# you should have received as part of this distribution. The terms -# are also available at http://curl.haxx.se/docs/copyright.html. -# -# You may opt to use, copy, modify, merge, publish, distribute and/or sell -# copies of the Software, and permit persons to whom the Software is -# furnished to do so, under the terms of the COPYING file. -# -# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -# KIND, either express or implied. -# -# $Id$ -########################################################################### -AUTOMAKE_OPTIONS = foreign nostdinc - -# Specify our include paths here, and do it relative to $(top_srcdir) and -# $(top_builddir), to ensure that these paths which belong to the library -# being currently built and tested are searched before the library which -# might possibly already be installed in the system. -# -# $(top_builddir)/include is for libcurl's generated curl/curlbuild.h file -# $(top_srcdir)/include is for libcurl's external include files -# $(top_builddir)/lib is for libcurl's generated lib/config.h file -# $(top_srcdir)/lib is for libcurl's lib/setup.h and other "borrowed" files - -INCLUDES = -I$(top_builddir)/include \ - -I$(top_srcdir)/include \ - -I$(top_builddir)/lib \ - -I$(top_srcdir)/lib - -LIBDIR = $(top_builddir)/lib - -EXTRA_DIST = test75.pl test307.pl test610.pl test613.pl test1013.pl test1022.pl - -# files used only in some libcurl test programs -TESTUTIL = testutil.c testutil.h - -# these files are used in every single test program below -SUPPORTFILES = first.c test.h - -# These are all libcurl test programs -noinst_PROGRAMS = lib500 lib501 lib502 lib503 lib504 lib505 lib506 \ - lib507 lib508 lib510 lib511 lib512 lib513 lib514 lib515 lib516 \ - lib517 lib518 lib519 lib520 lib521 lib523 lib524 lib525 lib526 lib527 \ - lib529 lib530 lib532 lib533 lib536 lib537 lib540 lib541 lib542 lib543 \ - lib544 lib545 lib547 lib548 lib549 lib552 lib553 lib554 lib555 lib556 \ - lib539 lib557 - -# Dependencies (may need to be overriden) -LDADD = $(LIBDIR)/libcurl.la -DEPENDENCIES = $(LIBDIR)/libcurl.la - - -lib500_SOURCES = lib500.c $(SUPPORTFILES) - -lib501_SOURCES = lib501.c $(SUPPORTFILES) - -lib502_SOURCES = lib502.c $(SUPPORTFILES) $(TESTUTIL) - -lib503_SOURCES = lib503.c $(SUPPORTFILES) $(TESTUTIL) - -lib504_SOURCES = lib504.c $(SUPPORTFILES) $(TESTUTIL) - -lib505_SOURCES = lib505.c $(SUPPORTFILES) - -lib506_SOURCES = lib506.c $(SUPPORTFILES) - -lib507_SOURCES = lib507.c $(SUPPORTFILES) $(TESTUTIL) - -lib508_SOURCES = lib508.c $(SUPPORTFILES) - -lib510_SOURCES = lib510.c $(SUPPORTFILES) - -lib511_SOURCES = lib511.c $(SUPPORTFILES) - -lib512_SOURCES = lib512.c $(SUPPORTFILES) - -lib513_SOURCES = lib513.c $(SUPPORTFILES) - -lib514_SOURCES = lib514.c $(SUPPORTFILES) - -lib515_SOURCES = lib515.c $(SUPPORTFILES) - -lib516_SOURCES = lib516.c $(SUPPORTFILES) - -lib517_SOURCES = lib517.c $(SUPPORTFILES) - -lib518_SOURCES = lib518.c $(SUPPORTFILES) - -lib519_SOURCES = lib519.c $(SUPPORTFILES) - -lib520_SOURCES = lib520.c $(SUPPORTFILES) - -lib521_SOURCES = lib521.c $(SUPPORTFILES) - -lib523_SOURCES = lib523.c $(SUPPORTFILES) - -lib524_SOURCES = lib524.c $(SUPPORTFILES) - -lib525_SOURCES = lib525.c $(SUPPORTFILES) $(TESTUTIL) - -lib526_SOURCES = lib526.c $(SUPPORTFILES) $(TESTUTIL) -lib526_CFLAGS = -DLIB526 - -lib527_SOURCES = lib526.c $(SUPPORTFILES) $(TESTUTIL) -lib527_CFLAGS = -DLIB527 - -lib529_SOURCES = lib525.c $(SUPPORTFILES) $(TESTUTIL) -lib529_CFLAGS = -DLIB529 - -lib530_SOURCES = lib530.c $(SUPPORTFILES) $(TESTUTIL) -lib530_CFLAGS = -DLIB530 - -lib532_SOURCES = lib526.c $(SUPPORTFILES) $(TESTUTIL) -lib532_CFLAGS = -DLIB532 - -lib533_SOURCES = lib533.c $(SUPPORTFILES) $(TESTUTIL) - -lib536_SOURCES = lib536.c $(SUPPORTFILES) $(TESTUTIL) - -lib537_SOURCES = lib537.c $(SUPPORTFILES) - -lib539_SOURCES = lib539.c $(SUPPORTFILES) - -lib540_SOURCES = lib540.c $(SUPPORTFILES) - -lib541_SOURCES = lib541.c $(SUPPORTFILES) - -lib542_SOURCES = lib542.c $(SUPPORTFILES) - -lib543_SOURCES = lib543.c $(SUPPORTFILES) - -lib544_SOURCES = lib544.c $(SUPPORTFILES) - -lib545_SOURCES = lib544.c $(SUPPORTFILES) -lib545_CFLAGS = -DLIB545 - -lib547_SOURCES = lib547.c $(SUPPORTFILES) - -lib548_SOURCES = lib547.c $(SUPPORTFILES) -lib548_CFLAGS = -DLIB548 - -lib549_SOURCES = lib549.c $(SUPPORTFILES) - -lib555_SOURCES = lib555.c $(SUPPORTFILES) $(TESTUTIL) - -lib552_SOURCES = lib552.c $(SUPPORTFILES) - -lib553_SOURCES = lib553.c $(SUPPORTFILES) - -lib554_SOURCES = lib554.c $(SUPPORTFILES) - -lib556_SOURCES = lib556.c $(SUPPORTFILES) - -lib557_SOURCES = lib557.c $(SUPPORTFILES) diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/Makefile.in b/Utilities/cmcurl-7.19.0/tests/libtest/Makefile.in deleted file mode 100644 index ddb5c8e..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/Makefile.in +++ /dev/null @@ -1,1300 +0,0 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = ../.. -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -noinst_PROGRAMS = lib500$(EXEEXT) lib501$(EXEEXT) lib502$(EXEEXT) \ - lib503$(EXEEXT) lib504$(EXEEXT) lib505$(EXEEXT) \ - lib506$(EXEEXT) lib507$(EXEEXT) lib508$(EXEEXT) \ - lib510$(EXEEXT) lib511$(EXEEXT) lib512$(EXEEXT) \ - lib513$(EXEEXT) lib514$(EXEEXT) lib515$(EXEEXT) \ - lib516$(EXEEXT) lib517$(EXEEXT) lib518$(EXEEXT) \ - lib519$(EXEEXT) lib520$(EXEEXT) lib521$(EXEEXT) \ - lib523$(EXEEXT) lib524$(EXEEXT) lib525$(EXEEXT) \ - lib526$(EXEEXT) lib527$(EXEEXT) lib529$(EXEEXT) \ - lib530$(EXEEXT) lib532$(EXEEXT) lib533$(EXEEXT) \ - lib536$(EXEEXT) lib537$(EXEEXT) lib540$(EXEEXT) \ - lib541$(EXEEXT) lib542$(EXEEXT) lib543$(EXEEXT) \ - lib544$(EXEEXT) lib545$(EXEEXT) lib547$(EXEEXT) \ - lib548$(EXEEXT) lib549$(EXEEXT) lib552$(EXEEXT) \ - lib553$(EXEEXT) lib554$(EXEEXT) lib555$(EXEEXT) \ - lib556$(EXEEXT) lib539$(EXEEXT) lib557$(EXEEXT) -subdir = tests/libtest -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/curl-reentrant.m4 \ - $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/lib/config.h \ - $(top_builddir)/src/config.h \ - $(top_builddir)/include/curl/curlbuild.h -CONFIG_CLEAN_FILES = -PROGRAMS = $(noinst_PROGRAMS) -am__objects_1 = first.$(OBJEXT) -am_lib500_OBJECTS = lib500.$(OBJEXT) $(am__objects_1) -lib500_OBJECTS = $(am_lib500_OBJECTS) -lib500_LDADD = $(LDADD) -lib500_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib501_OBJECTS = lib501.$(OBJEXT) $(am__objects_1) -lib501_OBJECTS = $(am_lib501_OBJECTS) -lib501_LDADD = $(LDADD) -lib501_DEPENDENCIES = $(LIBDIR)/libcurl.la -am__objects_2 = testutil.$(OBJEXT) -am_lib502_OBJECTS = lib502.$(OBJEXT) $(am__objects_1) $(am__objects_2) -lib502_OBJECTS = $(am_lib502_OBJECTS) -lib502_LDADD = $(LDADD) -lib502_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib503_OBJECTS = lib503.$(OBJEXT) $(am__objects_1) $(am__objects_2) -lib503_OBJECTS = $(am_lib503_OBJECTS) -lib503_LDADD = $(LDADD) -lib503_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib504_OBJECTS = lib504.$(OBJEXT) $(am__objects_1) $(am__objects_2) -lib504_OBJECTS = $(am_lib504_OBJECTS) -lib504_LDADD = $(LDADD) -lib504_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib505_OBJECTS = lib505.$(OBJEXT) $(am__objects_1) -lib505_OBJECTS = $(am_lib505_OBJECTS) -lib505_LDADD = $(LDADD) -lib505_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib506_OBJECTS = lib506.$(OBJEXT) $(am__objects_1) -lib506_OBJECTS = $(am_lib506_OBJECTS) -lib506_LDADD = $(LDADD) -lib506_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib507_OBJECTS = lib507.$(OBJEXT) $(am__objects_1) $(am__objects_2) -lib507_OBJECTS = $(am_lib507_OBJECTS) -lib507_LDADD = $(LDADD) -lib507_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib508_OBJECTS = lib508.$(OBJEXT) $(am__objects_1) -lib508_OBJECTS = $(am_lib508_OBJECTS) -lib508_LDADD = $(LDADD) -lib508_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib510_OBJECTS = lib510.$(OBJEXT) $(am__objects_1) -lib510_OBJECTS = $(am_lib510_OBJECTS) -lib510_LDADD = $(LDADD) -lib510_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib511_OBJECTS = lib511.$(OBJEXT) $(am__objects_1) -lib511_OBJECTS = $(am_lib511_OBJECTS) -lib511_LDADD = $(LDADD) -lib511_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib512_OBJECTS = lib512.$(OBJEXT) $(am__objects_1) -lib512_OBJECTS = $(am_lib512_OBJECTS) -lib512_LDADD = $(LDADD) -lib512_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib513_OBJECTS = lib513.$(OBJEXT) $(am__objects_1) -lib513_OBJECTS = $(am_lib513_OBJECTS) -lib513_LDADD = $(LDADD) -lib513_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib514_OBJECTS = lib514.$(OBJEXT) $(am__objects_1) -lib514_OBJECTS = $(am_lib514_OBJECTS) -lib514_LDADD = $(LDADD) -lib514_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib515_OBJECTS = lib515.$(OBJEXT) $(am__objects_1) -lib515_OBJECTS = $(am_lib515_OBJECTS) -lib515_LDADD = $(LDADD) -lib515_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib516_OBJECTS = lib516.$(OBJEXT) $(am__objects_1) -lib516_OBJECTS = $(am_lib516_OBJECTS) -lib516_LDADD = $(LDADD) -lib516_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib517_OBJECTS = lib517.$(OBJEXT) $(am__objects_1) -lib517_OBJECTS = $(am_lib517_OBJECTS) -lib517_LDADD = $(LDADD) -lib517_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib518_OBJECTS = lib518.$(OBJEXT) $(am__objects_1) -lib518_OBJECTS = $(am_lib518_OBJECTS) -lib518_LDADD = $(LDADD) -lib518_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib519_OBJECTS = lib519.$(OBJEXT) $(am__objects_1) -lib519_OBJECTS = $(am_lib519_OBJECTS) -lib519_LDADD = $(LDADD) -lib519_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib520_OBJECTS = lib520.$(OBJEXT) $(am__objects_1) -lib520_OBJECTS = $(am_lib520_OBJECTS) -lib520_LDADD = $(LDADD) -lib520_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib521_OBJECTS = lib521.$(OBJEXT) $(am__objects_1) -lib521_OBJECTS = $(am_lib521_OBJECTS) -lib521_LDADD = $(LDADD) -lib521_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib523_OBJECTS = lib523.$(OBJEXT) $(am__objects_1) -lib523_OBJECTS = $(am_lib523_OBJECTS) -lib523_LDADD = $(LDADD) -lib523_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib524_OBJECTS = lib524.$(OBJEXT) $(am__objects_1) -lib524_OBJECTS = $(am_lib524_OBJECTS) -lib524_LDADD = $(LDADD) -lib524_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib525_OBJECTS = lib525.$(OBJEXT) $(am__objects_1) $(am__objects_2) -lib525_OBJECTS = $(am_lib525_OBJECTS) -lib525_LDADD = $(LDADD) -lib525_DEPENDENCIES = $(LIBDIR)/libcurl.la -am__objects_3 = lib526-first.$(OBJEXT) -am__objects_4 = lib526-testutil.$(OBJEXT) -am_lib526_OBJECTS = lib526-lib526.$(OBJEXT) $(am__objects_3) \ - $(am__objects_4) -lib526_OBJECTS = $(am_lib526_OBJECTS) -lib526_LDADD = $(LDADD) -lib526_DEPENDENCIES = $(LIBDIR)/libcurl.la -am__objects_5 = lib527-first.$(OBJEXT) -am__objects_6 = lib527-testutil.$(OBJEXT) -am_lib527_OBJECTS = lib527-lib526.$(OBJEXT) $(am__objects_5) \ - $(am__objects_6) -lib527_OBJECTS = $(am_lib527_OBJECTS) -lib527_LDADD = $(LDADD) -lib527_DEPENDENCIES = $(LIBDIR)/libcurl.la -am__objects_7 = lib529-first.$(OBJEXT) -am__objects_8 = lib529-testutil.$(OBJEXT) -am_lib529_OBJECTS = lib529-lib525.$(OBJEXT) $(am__objects_7) \ - $(am__objects_8) -lib529_OBJECTS = $(am_lib529_OBJECTS) -lib529_LDADD = $(LDADD) -lib529_DEPENDENCIES = $(LIBDIR)/libcurl.la -am__objects_9 = lib530-first.$(OBJEXT) -am__objects_10 = lib530-testutil.$(OBJEXT) -am_lib530_OBJECTS = lib530-lib530.$(OBJEXT) $(am__objects_9) \ - $(am__objects_10) -lib530_OBJECTS = $(am_lib530_OBJECTS) -lib530_LDADD = $(LDADD) -lib530_DEPENDENCIES = $(LIBDIR)/libcurl.la -am__objects_11 = lib532-first.$(OBJEXT) -am__objects_12 = lib532-testutil.$(OBJEXT) -am_lib532_OBJECTS = lib532-lib526.$(OBJEXT) $(am__objects_11) \ - $(am__objects_12) -lib532_OBJECTS = $(am_lib532_OBJECTS) -lib532_LDADD = $(LDADD) -lib532_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib533_OBJECTS = lib533.$(OBJEXT) $(am__objects_1) $(am__objects_2) -lib533_OBJECTS = $(am_lib533_OBJECTS) -lib533_LDADD = $(LDADD) -lib533_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib536_OBJECTS = lib536.$(OBJEXT) $(am__objects_1) $(am__objects_2) -lib536_OBJECTS = $(am_lib536_OBJECTS) -lib536_LDADD = $(LDADD) -lib536_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib537_OBJECTS = lib537.$(OBJEXT) $(am__objects_1) -lib537_OBJECTS = $(am_lib537_OBJECTS) -lib537_LDADD = $(LDADD) -lib537_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib539_OBJECTS = lib539.$(OBJEXT) $(am__objects_1) -lib539_OBJECTS = $(am_lib539_OBJECTS) -lib539_LDADD = $(LDADD) -lib539_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib540_OBJECTS = lib540.$(OBJEXT) $(am__objects_1) -lib540_OBJECTS = $(am_lib540_OBJECTS) -lib540_LDADD = $(LDADD) -lib540_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib541_OBJECTS = lib541.$(OBJEXT) $(am__objects_1) -lib541_OBJECTS = $(am_lib541_OBJECTS) -lib541_LDADD = $(LDADD) -lib541_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib542_OBJECTS = lib542.$(OBJEXT) $(am__objects_1) -lib542_OBJECTS = $(am_lib542_OBJECTS) -lib542_LDADD = $(LDADD) -lib542_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib543_OBJECTS = lib543.$(OBJEXT) $(am__objects_1) -lib543_OBJECTS = $(am_lib543_OBJECTS) -lib543_LDADD = $(LDADD) -lib543_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib544_OBJECTS = lib544.$(OBJEXT) $(am__objects_1) -lib544_OBJECTS = $(am_lib544_OBJECTS) -lib544_LDADD = $(LDADD) -lib544_DEPENDENCIES = $(LIBDIR)/libcurl.la -am__objects_13 = lib545-first.$(OBJEXT) -am_lib545_OBJECTS = lib545-lib544.$(OBJEXT) $(am__objects_13) -lib545_OBJECTS = $(am_lib545_OBJECTS) -lib545_LDADD = $(LDADD) -lib545_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib547_OBJECTS = lib547.$(OBJEXT) $(am__objects_1) -lib547_OBJECTS = $(am_lib547_OBJECTS) -lib547_LDADD = $(LDADD) -lib547_DEPENDENCIES = $(LIBDIR)/libcurl.la -am__objects_14 = lib548-first.$(OBJEXT) -am_lib548_OBJECTS = lib548-lib547.$(OBJEXT) $(am__objects_14) -lib548_OBJECTS = $(am_lib548_OBJECTS) -lib548_LDADD = $(LDADD) -lib548_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib549_OBJECTS = lib549.$(OBJEXT) $(am__objects_1) -lib549_OBJECTS = $(am_lib549_OBJECTS) -lib549_LDADD = $(LDADD) -lib549_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib552_OBJECTS = lib552.$(OBJEXT) $(am__objects_1) -lib552_OBJECTS = $(am_lib552_OBJECTS) -lib552_LDADD = $(LDADD) -lib552_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib553_OBJECTS = lib553.$(OBJEXT) $(am__objects_1) -lib553_OBJECTS = $(am_lib553_OBJECTS) -lib553_LDADD = $(LDADD) -lib553_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib554_OBJECTS = lib554.$(OBJEXT) $(am__objects_1) -lib554_OBJECTS = $(am_lib554_OBJECTS) -lib554_LDADD = $(LDADD) -lib554_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib555_OBJECTS = lib555.$(OBJEXT) $(am__objects_1) $(am__objects_2) -lib555_OBJECTS = $(am_lib555_OBJECTS) -lib555_LDADD = $(LDADD) -lib555_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib556_OBJECTS = lib556.$(OBJEXT) $(am__objects_1) -lib556_OBJECTS = $(am_lib556_OBJECTS) -lib556_LDADD = $(LDADD) -lib556_DEPENDENCIES = $(LIBDIR)/libcurl.la -am_lib557_OBJECTS = lib557.$(OBJEXT) $(am__objects_1) -lib557_OBJECTS = $(am_lib557_OBJECTS) -lib557_LDADD = $(LDADD) -lib557_DEPENDENCIES = $(LIBDIR)/libcurl.la -DEFAULT_INCLUDES = -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -SOURCES = $(lib500_SOURCES) $(lib501_SOURCES) $(lib502_SOURCES) \ - $(lib503_SOURCES) $(lib504_SOURCES) $(lib505_SOURCES) \ - $(lib506_SOURCES) $(lib507_SOURCES) $(lib508_SOURCES) \ - $(lib510_SOURCES) $(lib511_SOURCES) $(lib512_SOURCES) \ - $(lib513_SOURCES) $(lib514_SOURCES) $(lib515_SOURCES) \ - $(lib516_SOURCES) $(lib517_SOURCES) $(lib518_SOURCES) \ - $(lib519_SOURCES) $(lib520_SOURCES) $(lib521_SOURCES) \ - $(lib523_SOURCES) $(lib524_SOURCES) $(lib525_SOURCES) \ - $(lib526_SOURCES) $(lib527_SOURCES) $(lib529_SOURCES) \ - $(lib530_SOURCES) $(lib532_SOURCES) $(lib533_SOURCES) \ - $(lib536_SOURCES) $(lib537_SOURCES) $(lib539_SOURCES) \ - $(lib540_SOURCES) $(lib541_SOURCES) $(lib542_SOURCES) \ - $(lib543_SOURCES) $(lib544_SOURCES) $(lib545_SOURCES) \ - $(lib547_SOURCES) $(lib548_SOURCES) $(lib549_SOURCES) \ - $(lib552_SOURCES) $(lib553_SOURCES) $(lib554_SOURCES) \ - $(lib555_SOURCES) $(lib556_SOURCES) $(lib557_SOURCES) -DIST_SOURCES = $(lib500_SOURCES) $(lib501_SOURCES) $(lib502_SOURCES) \ - $(lib503_SOURCES) $(lib504_SOURCES) $(lib505_SOURCES) \ - $(lib506_SOURCES) $(lib507_SOURCES) $(lib508_SOURCES) \ - $(lib510_SOURCES) $(lib511_SOURCES) $(lib512_SOURCES) \ - $(lib513_SOURCES) $(lib514_SOURCES) $(lib515_SOURCES) \ - $(lib516_SOURCES) $(lib517_SOURCES) $(lib518_SOURCES) \ - $(lib519_SOURCES) $(lib520_SOURCES) $(lib521_SOURCES) \ - $(lib523_SOURCES) $(lib524_SOURCES) $(lib525_SOURCES) \ - $(lib526_SOURCES) $(lib527_SOURCES) $(lib529_SOURCES) \ - $(lib530_SOURCES) $(lib532_SOURCES) $(lib533_SOURCES) \ - $(lib536_SOURCES) $(lib537_SOURCES) $(lib539_SOURCES) \ - $(lib540_SOURCES) $(lib541_SOURCES) $(lib542_SOURCES) \ - $(lib543_SOURCES) $(lib544_SOURCES) $(lib545_SOURCES) \ - $(lib547_SOURCES) $(lib548_SOURCES) $(lib549_SOURCES) \ - $(lib552_SOURCES) $(lib553_SOURCES) $(lib554_SOURCES) \ - $(lib555_SOURCES) $(lib556_SOURCES) $(lib557_SOURCES) -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AR = @AR@ -AS = @AS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CROSSCOMPILING_FALSE = @CROSSCOMPILING_FALSE@ -CROSSCOMPILING_TRUE = @CROSSCOMPILING_TRUE@ -CURL_CA_BUNDLE = @CURL_CA_BUNDLE@ -CURL_DISABLE_DICT = @CURL_DISABLE_DICT@ -CURL_DISABLE_FILE = @CURL_DISABLE_FILE@ -CURL_DISABLE_FTP = @CURL_DISABLE_FTP@ -CURL_DISABLE_HTTP = @CURL_DISABLE_HTTP@ -CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@ -CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@ -CURL_DISABLE_TELNET = @CURL_DISABLE_TELNET@ -CURL_DISABLE_TFTP = @CURL_DISABLE_TFTP@ -CURL_LIBS = @CURL_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GREP = @GREP@ -HAVE_ARES = @HAVE_ARES@ -HAVE_LIBZ = @HAVE_LIBZ@ -HAVE_LIBZ_FALSE = @HAVE_LIBZ_FALSE@ -HAVE_LIBZ_TRUE = @HAVE_LIBZ_TRUE@ -HAVE_PK11_CREATEGENERICOBJECT = @HAVE_PK11_CREATEGENERICOBJECT@ -IDN_ENABLED = @IDN_ENABLED@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -IPV6_ENABLED = @IPV6_ENABLED@ -KRB4_ENABLED = @KRB4_ENABLED@ -LDFLAGS = @LDFLAGS@ -LIBCURL_LIBS = @LIBCURL_LIBS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ -MAKEINFO = @MAKEINFO@ -MANOPT = @MANOPT@ -MIMPURE_FALSE = @MIMPURE_FALSE@ -MIMPURE_TRUE = @MIMPURE_TRUE@ -NMEDIT = @NMEDIT@ -NO_UNDEFINED_FALSE = @NO_UNDEFINED_FALSE@ -NO_UNDEFINED_TRUE = @NO_UNDEFINED_TRUE@ -NROFF = @NROFF@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PERL = @PERL@ -PKGADD_NAME = @PKGADD_NAME@ -PKGADD_PKG = @PKGADD_PKG@ -PKGADD_VENDOR = @PKGADD_VENDOR@ -PKGCONFIG = @PKGCONFIG@ -RANDOM_FILE = @RANDOM_FILE@ -RANLIB = @RANLIB@ -REQUIRE_LIB_DEPS = @REQUIRE_LIB_DEPS@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -SONAME_BUMP_FALSE = @SONAME_BUMP_FALSE@ -SONAME_BUMP_TRUE = @SONAME_BUMP_TRUE@ -SSL_ENABLED = @SSL_ENABLED@ -STATICLIB_FALSE = @STATICLIB_FALSE@ -STATICLIB_TRUE = @STATICLIB_TRUE@ -STRIP = @STRIP@ -TEST_SERVER_LIBS = @TEST_SERVER_LIBS@ -USE_GNUTLS = @USE_GNUTLS@ -USE_LIBSSH2 = @USE_LIBSSH2@ -USE_MANUAL_FALSE = @USE_MANUAL_FALSE@ -USE_MANUAL_TRUE = @USE_MANUAL_TRUE@ -USE_NSS = @USE_NSS@ -USE_SSLEAY = @USE_SSLEAY@ -USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ -VERSION = @VERSION@ -VERSIONNUM = @VERSIONNUM@ -ac_ct_CC = @ac_ct_CC@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -libext = @libext@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -subdirs = @subdirs@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ - -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al. -# -# This software is licensed as described in the file COPYING, which -# you should have received as part of this distribution. The terms -# are also available at http://curl.haxx.se/docs/copyright.html. -# -# You may opt to use, copy, modify, merge, publish, distribute and/or sell -# copies of the Software, and permit persons to whom the Software is -# furnished to do so, under the terms of the COPYING file. -# -# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -# KIND, either express or implied. -# -# $Id$ -########################################################################### -AUTOMAKE_OPTIONS = foreign nostdinc - -# Specify our include paths here, and do it relative to $(top_srcdir) and -# $(top_builddir), to ensure that these paths which belong to the library -# being currently built and tested are searched before the library which -# might possibly already be installed in the system. -# -# $(top_builddir)/include is for libcurl's generated curl/curlbuild.h file -# $(top_srcdir)/include is for libcurl's external include files -# $(top_builddir)/lib is for libcurl's generated lib/config.h file -# $(top_srcdir)/lib is for libcurl's lib/setup.h and other "borrowed" files -INCLUDES = -I$(top_builddir)/include \ - -I$(top_srcdir)/include \ - -I$(top_builddir)/lib \ - -I$(top_srcdir)/lib - -LIBDIR = $(top_builddir)/lib -EXTRA_DIST = test75.pl test307.pl test610.pl test613.pl test1013.pl test1022.pl - -# files used only in some libcurl test programs -TESTUTIL = testutil.c testutil.h - -# these files are used in every single test program below -SUPPORTFILES = first.c test.h - -# Dependencies (may need to be overriden) -LDADD = $(LIBDIR)/libcurl.la -DEPENDENCIES = $(LIBDIR)/libcurl.la -lib500_SOURCES = lib500.c $(SUPPORTFILES) -lib501_SOURCES = lib501.c $(SUPPORTFILES) -lib502_SOURCES = lib502.c $(SUPPORTFILES) $(TESTUTIL) -lib503_SOURCES = lib503.c $(SUPPORTFILES) $(TESTUTIL) -lib504_SOURCES = lib504.c $(SUPPORTFILES) $(TESTUTIL) -lib505_SOURCES = lib505.c $(SUPPORTFILES) -lib506_SOURCES = lib506.c $(SUPPORTFILES) -lib507_SOURCES = lib507.c $(SUPPORTFILES) $(TESTUTIL) -lib508_SOURCES = lib508.c $(SUPPORTFILES) -lib510_SOURCES = lib510.c $(SUPPORTFILES) -lib511_SOURCES = lib511.c $(SUPPORTFILES) -lib512_SOURCES = lib512.c $(SUPPORTFILES) -lib513_SOURCES = lib513.c $(SUPPORTFILES) -lib514_SOURCES = lib514.c $(SUPPORTFILES) -lib515_SOURCES = lib515.c $(SUPPORTFILES) -lib516_SOURCES = lib516.c $(SUPPORTFILES) -lib517_SOURCES = lib517.c $(SUPPORTFILES) -lib518_SOURCES = lib518.c $(SUPPORTFILES) -lib519_SOURCES = lib519.c $(SUPPORTFILES) -lib520_SOURCES = lib520.c $(SUPPORTFILES) -lib521_SOURCES = lib521.c $(SUPPORTFILES) -lib523_SOURCES = lib523.c $(SUPPORTFILES) -lib524_SOURCES = lib524.c $(SUPPORTFILES) -lib525_SOURCES = lib525.c $(SUPPORTFILES) $(TESTUTIL) -lib526_SOURCES = lib526.c $(SUPPORTFILES) $(TESTUTIL) -lib526_CFLAGS = -DLIB526 -lib527_SOURCES = lib526.c $(SUPPORTFILES) $(TESTUTIL) -lib527_CFLAGS = -DLIB527 -lib529_SOURCES = lib525.c $(SUPPORTFILES) $(TESTUTIL) -lib529_CFLAGS = -DLIB529 -lib530_SOURCES = lib530.c $(SUPPORTFILES) $(TESTUTIL) -lib530_CFLAGS = -DLIB530 -lib532_SOURCES = lib526.c $(SUPPORTFILES) $(TESTUTIL) -lib532_CFLAGS = -DLIB532 -lib533_SOURCES = lib533.c $(SUPPORTFILES) $(TESTUTIL) -lib536_SOURCES = lib536.c $(SUPPORTFILES) $(TESTUTIL) -lib537_SOURCES = lib537.c $(SUPPORTFILES) -lib539_SOURCES = lib539.c $(SUPPORTFILES) -lib540_SOURCES = lib540.c $(SUPPORTFILES) -lib541_SOURCES = lib541.c $(SUPPORTFILES) -lib542_SOURCES = lib542.c $(SUPPORTFILES) -lib543_SOURCES = lib543.c $(SUPPORTFILES) -lib544_SOURCES = lib544.c $(SUPPORTFILES) -lib545_SOURCES = lib544.c $(SUPPORTFILES) -lib545_CFLAGS = -DLIB545 -lib547_SOURCES = lib547.c $(SUPPORTFILES) -lib548_SOURCES = lib547.c $(SUPPORTFILES) -lib548_CFLAGS = -DLIB548 -lib549_SOURCES = lib549.c $(SUPPORTFILES) -lib555_SOURCES = lib555.c $(SUPPORTFILES) $(TESTUTIL) -lib552_SOURCES = lib552.c $(SUPPORTFILES) -lib553_SOURCES = lib553.c $(SUPPORTFILES) -lib554_SOURCES = lib554.c $(SUPPORTFILES) -lib556_SOURCES = lib556.c $(SUPPORTFILES) -lib557_SOURCES = lib557.c $(SUPPORTFILES) -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/libtest/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign tests/libtest/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -clean-noinstPROGRAMS: - @list='$(noinst_PROGRAMS)'; for p in $$list; do \ - f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f $$p $$f"; \ - rm -f $$p $$f ; \ - done -lib500$(EXEEXT): $(lib500_OBJECTS) $(lib500_DEPENDENCIES) - @rm -f lib500$(EXEEXT) - $(LINK) $(lib500_LDFLAGS) $(lib500_OBJECTS) $(lib500_LDADD) $(LIBS) -lib501$(EXEEXT): $(lib501_OBJECTS) $(lib501_DEPENDENCIES) - @rm -f lib501$(EXEEXT) - $(LINK) $(lib501_LDFLAGS) $(lib501_OBJECTS) $(lib501_LDADD) $(LIBS) -lib502$(EXEEXT): $(lib502_OBJECTS) $(lib502_DEPENDENCIES) - @rm -f lib502$(EXEEXT) - $(LINK) $(lib502_LDFLAGS) $(lib502_OBJECTS) $(lib502_LDADD) $(LIBS) -lib503$(EXEEXT): $(lib503_OBJECTS) $(lib503_DEPENDENCIES) - @rm -f lib503$(EXEEXT) - $(LINK) $(lib503_LDFLAGS) $(lib503_OBJECTS) $(lib503_LDADD) $(LIBS) -lib504$(EXEEXT): $(lib504_OBJECTS) $(lib504_DEPENDENCIES) - @rm -f lib504$(EXEEXT) - $(LINK) $(lib504_LDFLAGS) $(lib504_OBJECTS) $(lib504_LDADD) $(LIBS) -lib505$(EXEEXT): $(lib505_OBJECTS) $(lib505_DEPENDENCIES) - @rm -f lib505$(EXEEXT) - $(LINK) $(lib505_LDFLAGS) $(lib505_OBJECTS) $(lib505_LDADD) $(LIBS) -lib506$(EXEEXT): $(lib506_OBJECTS) $(lib506_DEPENDENCIES) - @rm -f lib506$(EXEEXT) - $(LINK) $(lib506_LDFLAGS) $(lib506_OBJECTS) $(lib506_LDADD) $(LIBS) -lib507$(EXEEXT): $(lib507_OBJECTS) $(lib507_DEPENDENCIES) - @rm -f lib507$(EXEEXT) - $(LINK) $(lib507_LDFLAGS) $(lib507_OBJECTS) $(lib507_LDADD) $(LIBS) -lib508$(EXEEXT): $(lib508_OBJECTS) $(lib508_DEPENDENCIES) - @rm -f lib508$(EXEEXT) - $(LINK) $(lib508_LDFLAGS) $(lib508_OBJECTS) $(lib508_LDADD) $(LIBS) -lib510$(EXEEXT): $(lib510_OBJECTS) $(lib510_DEPENDENCIES) - @rm -f lib510$(EXEEXT) - $(LINK) $(lib510_LDFLAGS) $(lib510_OBJECTS) $(lib510_LDADD) $(LIBS) -lib511$(EXEEXT): $(lib511_OBJECTS) $(lib511_DEPENDENCIES) - @rm -f lib511$(EXEEXT) - $(LINK) $(lib511_LDFLAGS) $(lib511_OBJECTS) $(lib511_LDADD) $(LIBS) -lib512$(EXEEXT): $(lib512_OBJECTS) $(lib512_DEPENDENCIES) - @rm -f lib512$(EXEEXT) - $(LINK) $(lib512_LDFLAGS) $(lib512_OBJECTS) $(lib512_LDADD) $(LIBS) -lib513$(EXEEXT): $(lib513_OBJECTS) $(lib513_DEPENDENCIES) - @rm -f lib513$(EXEEXT) - $(LINK) $(lib513_LDFLAGS) $(lib513_OBJECTS) $(lib513_LDADD) $(LIBS) -lib514$(EXEEXT): $(lib514_OBJECTS) $(lib514_DEPENDENCIES) - @rm -f lib514$(EXEEXT) - $(LINK) $(lib514_LDFLAGS) $(lib514_OBJECTS) $(lib514_LDADD) $(LIBS) -lib515$(EXEEXT): $(lib515_OBJECTS) $(lib515_DEPENDENCIES) - @rm -f lib515$(EXEEXT) - $(LINK) $(lib515_LDFLAGS) $(lib515_OBJECTS) $(lib515_LDADD) $(LIBS) -lib516$(EXEEXT): $(lib516_OBJECTS) $(lib516_DEPENDENCIES) - @rm -f lib516$(EXEEXT) - $(LINK) $(lib516_LDFLAGS) $(lib516_OBJECTS) $(lib516_LDADD) $(LIBS) -lib517$(EXEEXT): $(lib517_OBJECTS) $(lib517_DEPENDENCIES) - @rm -f lib517$(EXEEXT) - $(LINK) $(lib517_LDFLAGS) $(lib517_OBJECTS) $(lib517_LDADD) $(LIBS) -lib518$(EXEEXT): $(lib518_OBJECTS) $(lib518_DEPENDENCIES) - @rm -f lib518$(EXEEXT) - $(LINK) $(lib518_LDFLAGS) $(lib518_OBJECTS) $(lib518_LDADD) $(LIBS) -lib519$(EXEEXT): $(lib519_OBJECTS) $(lib519_DEPENDENCIES) - @rm -f lib519$(EXEEXT) - $(LINK) $(lib519_LDFLAGS) $(lib519_OBJECTS) $(lib519_LDADD) $(LIBS) -lib520$(EXEEXT): $(lib520_OBJECTS) $(lib520_DEPENDENCIES) - @rm -f lib520$(EXEEXT) - $(LINK) $(lib520_LDFLAGS) $(lib520_OBJECTS) $(lib520_LDADD) $(LIBS) -lib521$(EXEEXT): $(lib521_OBJECTS) $(lib521_DEPENDENCIES) - @rm -f lib521$(EXEEXT) - $(LINK) $(lib521_LDFLAGS) $(lib521_OBJECTS) $(lib521_LDADD) $(LIBS) -lib523$(EXEEXT): $(lib523_OBJECTS) $(lib523_DEPENDENCIES) - @rm -f lib523$(EXEEXT) - $(LINK) $(lib523_LDFLAGS) $(lib523_OBJECTS) $(lib523_LDADD) $(LIBS) -lib524$(EXEEXT): $(lib524_OBJECTS) $(lib524_DEPENDENCIES) - @rm -f lib524$(EXEEXT) - $(LINK) $(lib524_LDFLAGS) $(lib524_OBJECTS) $(lib524_LDADD) $(LIBS) -lib525$(EXEEXT): $(lib525_OBJECTS) $(lib525_DEPENDENCIES) - @rm -f lib525$(EXEEXT) - $(LINK) $(lib525_LDFLAGS) $(lib525_OBJECTS) $(lib525_LDADD) $(LIBS) -lib526$(EXEEXT): $(lib526_OBJECTS) $(lib526_DEPENDENCIES) - @rm -f lib526$(EXEEXT) - $(LINK) $(lib526_LDFLAGS) $(lib526_OBJECTS) $(lib526_LDADD) $(LIBS) -lib527$(EXEEXT): $(lib527_OBJECTS) $(lib527_DEPENDENCIES) - @rm -f lib527$(EXEEXT) - $(LINK) $(lib527_LDFLAGS) $(lib527_OBJECTS) $(lib527_LDADD) $(LIBS) -lib529$(EXEEXT): $(lib529_OBJECTS) $(lib529_DEPENDENCIES) - @rm -f lib529$(EXEEXT) - $(LINK) $(lib529_LDFLAGS) $(lib529_OBJECTS) $(lib529_LDADD) $(LIBS) -lib530$(EXEEXT): $(lib530_OBJECTS) $(lib530_DEPENDENCIES) - @rm -f lib530$(EXEEXT) - $(LINK) $(lib530_LDFLAGS) $(lib530_OBJECTS) $(lib530_LDADD) $(LIBS) -lib532$(EXEEXT): $(lib532_OBJECTS) $(lib532_DEPENDENCIES) - @rm -f lib532$(EXEEXT) - $(LINK) $(lib532_LDFLAGS) $(lib532_OBJECTS) $(lib532_LDADD) $(LIBS) -lib533$(EXEEXT): $(lib533_OBJECTS) $(lib533_DEPENDENCIES) - @rm -f lib533$(EXEEXT) - $(LINK) $(lib533_LDFLAGS) $(lib533_OBJECTS) $(lib533_LDADD) $(LIBS) -lib536$(EXEEXT): $(lib536_OBJECTS) $(lib536_DEPENDENCIES) - @rm -f lib536$(EXEEXT) - $(LINK) $(lib536_LDFLAGS) $(lib536_OBJECTS) $(lib536_LDADD) $(LIBS) -lib537$(EXEEXT): $(lib537_OBJECTS) $(lib537_DEPENDENCIES) - @rm -f lib537$(EXEEXT) - $(LINK) $(lib537_LDFLAGS) $(lib537_OBJECTS) $(lib537_LDADD) $(LIBS) -lib539$(EXEEXT): $(lib539_OBJECTS) $(lib539_DEPENDENCIES) - @rm -f lib539$(EXEEXT) - $(LINK) $(lib539_LDFLAGS) $(lib539_OBJECTS) $(lib539_LDADD) $(LIBS) -lib540$(EXEEXT): $(lib540_OBJECTS) $(lib540_DEPENDENCIES) - @rm -f lib540$(EXEEXT) - $(LINK) $(lib540_LDFLAGS) $(lib540_OBJECTS) $(lib540_LDADD) $(LIBS) -lib541$(EXEEXT): $(lib541_OBJECTS) $(lib541_DEPENDENCIES) - @rm -f lib541$(EXEEXT) - $(LINK) $(lib541_LDFLAGS) $(lib541_OBJECTS) $(lib541_LDADD) $(LIBS) -lib542$(EXEEXT): $(lib542_OBJECTS) $(lib542_DEPENDENCIES) - @rm -f lib542$(EXEEXT) - $(LINK) $(lib542_LDFLAGS) $(lib542_OBJECTS) $(lib542_LDADD) $(LIBS) -lib543$(EXEEXT): $(lib543_OBJECTS) $(lib543_DEPENDENCIES) - @rm -f lib543$(EXEEXT) - $(LINK) $(lib543_LDFLAGS) $(lib543_OBJECTS) $(lib543_LDADD) $(LIBS) -lib544$(EXEEXT): $(lib544_OBJECTS) $(lib544_DEPENDENCIES) - @rm -f lib544$(EXEEXT) - $(LINK) $(lib544_LDFLAGS) $(lib544_OBJECTS) $(lib544_LDADD) $(LIBS) -lib545$(EXEEXT): $(lib545_OBJECTS) $(lib545_DEPENDENCIES) - @rm -f lib545$(EXEEXT) - $(LINK) $(lib545_LDFLAGS) $(lib545_OBJECTS) $(lib545_LDADD) $(LIBS) -lib547$(EXEEXT): $(lib547_OBJECTS) $(lib547_DEPENDENCIES) - @rm -f lib547$(EXEEXT) - $(LINK) $(lib547_LDFLAGS) $(lib547_OBJECTS) $(lib547_LDADD) $(LIBS) -lib548$(EXEEXT): $(lib548_OBJECTS) $(lib548_DEPENDENCIES) - @rm -f lib548$(EXEEXT) - $(LINK) $(lib548_LDFLAGS) $(lib548_OBJECTS) $(lib548_LDADD) $(LIBS) -lib549$(EXEEXT): $(lib549_OBJECTS) $(lib549_DEPENDENCIES) - @rm -f lib549$(EXEEXT) - $(LINK) $(lib549_LDFLAGS) $(lib549_OBJECTS) $(lib549_LDADD) $(LIBS) -lib552$(EXEEXT): $(lib552_OBJECTS) $(lib552_DEPENDENCIES) - @rm -f lib552$(EXEEXT) - $(LINK) $(lib552_LDFLAGS) $(lib552_OBJECTS) $(lib552_LDADD) $(LIBS) -lib553$(EXEEXT): $(lib553_OBJECTS) $(lib553_DEPENDENCIES) - @rm -f lib553$(EXEEXT) - $(LINK) $(lib553_LDFLAGS) $(lib553_OBJECTS) $(lib553_LDADD) $(LIBS) -lib554$(EXEEXT): $(lib554_OBJECTS) $(lib554_DEPENDENCIES) - @rm -f lib554$(EXEEXT) - $(LINK) $(lib554_LDFLAGS) $(lib554_OBJECTS) $(lib554_LDADD) $(LIBS) -lib555$(EXEEXT): $(lib555_OBJECTS) $(lib555_DEPENDENCIES) - @rm -f lib555$(EXEEXT) - $(LINK) $(lib555_LDFLAGS) $(lib555_OBJECTS) $(lib555_LDADD) $(LIBS) -lib556$(EXEEXT): $(lib556_OBJECTS) $(lib556_DEPENDENCIES) - @rm -f lib556$(EXEEXT) - $(LINK) $(lib556_LDFLAGS) $(lib556_OBJECTS) $(lib556_LDADD) $(LIBS) -lib557$(EXEEXT): $(lib557_OBJECTS) $(lib557_DEPENDENCIES) - @rm -f lib557$(EXEEXT) - $(LINK) $(lib557_LDFLAGS) $(lib557_OBJECTS) $(lib557_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/first.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib500.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib501.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib502.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib503.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib504.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib505.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib506.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib507.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib508.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib510.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib511.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib512.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib513.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib514.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib515.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib516.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib517.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib518.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib519.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib520.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib521.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib523.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib524.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib525.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib526-first.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib526-lib526.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib526-testutil.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib527-first.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib527-lib526.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib527-testutil.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib529-first.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib529-lib525.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib529-testutil.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib530-first.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib530-lib530.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib530-testutil.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib532-first.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib532-lib526.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib532-testutil.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib533.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib536.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib537.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib539.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib540.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib541.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib542.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib543.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib544.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib545-first.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib545-lib544.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib547.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib548-first.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib548-lib547.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib549.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib552.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib553.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib554.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib555.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib556.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib557.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testutil.Po@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< - -lib526-lib526.o: lib526.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib526_CFLAGS) $(CFLAGS) -MT lib526-lib526.o -MD -MP -MF "$(DEPDIR)/lib526-lib526.Tpo" -c -o lib526-lib526.o `test -f 'lib526.c' || echo '$(srcdir)/'`lib526.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib526-lib526.Tpo" "$(DEPDIR)/lib526-lib526.Po"; else rm -f "$(DEPDIR)/lib526-lib526.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib526.c' object='lib526-lib526.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib526_CFLAGS) $(CFLAGS) -c -o lib526-lib526.o `test -f 'lib526.c' || echo '$(srcdir)/'`lib526.c - -lib526-lib526.obj: lib526.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib526_CFLAGS) $(CFLAGS) -MT lib526-lib526.obj -MD -MP -MF "$(DEPDIR)/lib526-lib526.Tpo" -c -o lib526-lib526.obj `if test -f 'lib526.c'; then $(CYGPATH_W) 'lib526.c'; else $(CYGPATH_W) '$(srcdir)/lib526.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib526-lib526.Tpo" "$(DEPDIR)/lib526-lib526.Po"; else rm -f "$(DEPDIR)/lib526-lib526.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib526.c' object='lib526-lib526.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib526_CFLAGS) $(CFLAGS) -c -o lib526-lib526.obj `if test -f 'lib526.c'; then $(CYGPATH_W) 'lib526.c'; else $(CYGPATH_W) '$(srcdir)/lib526.c'; fi` - -lib526-first.o: first.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib526_CFLAGS) $(CFLAGS) -MT lib526-first.o -MD -MP -MF "$(DEPDIR)/lib526-first.Tpo" -c -o lib526-first.o `test -f 'first.c' || echo '$(srcdir)/'`first.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib526-first.Tpo" "$(DEPDIR)/lib526-first.Po"; else rm -f "$(DEPDIR)/lib526-first.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='first.c' object='lib526-first.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib526_CFLAGS) $(CFLAGS) -c -o lib526-first.o `test -f 'first.c' || echo '$(srcdir)/'`first.c - -lib526-first.obj: first.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib526_CFLAGS) $(CFLAGS) -MT lib526-first.obj -MD -MP -MF "$(DEPDIR)/lib526-first.Tpo" -c -o lib526-first.obj `if test -f 'first.c'; then $(CYGPATH_W) 'first.c'; else $(CYGPATH_W) '$(srcdir)/first.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib526-first.Tpo" "$(DEPDIR)/lib526-first.Po"; else rm -f "$(DEPDIR)/lib526-first.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='first.c' object='lib526-first.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib526_CFLAGS) $(CFLAGS) -c -o lib526-first.obj `if test -f 'first.c'; then $(CYGPATH_W) 'first.c'; else $(CYGPATH_W) '$(srcdir)/first.c'; fi` - -lib526-testutil.o: testutil.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib526_CFLAGS) $(CFLAGS) -MT lib526-testutil.o -MD -MP -MF "$(DEPDIR)/lib526-testutil.Tpo" -c -o lib526-testutil.o `test -f 'testutil.c' || echo '$(srcdir)/'`testutil.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib526-testutil.Tpo" "$(DEPDIR)/lib526-testutil.Po"; else rm -f "$(DEPDIR)/lib526-testutil.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testutil.c' object='lib526-testutil.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib526_CFLAGS) $(CFLAGS) -c -o lib526-testutil.o `test -f 'testutil.c' || echo '$(srcdir)/'`testutil.c - -lib526-testutil.obj: testutil.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib526_CFLAGS) $(CFLAGS) -MT lib526-testutil.obj -MD -MP -MF "$(DEPDIR)/lib526-testutil.Tpo" -c -o lib526-testutil.obj `if test -f 'testutil.c'; then $(CYGPATH_W) 'testutil.c'; else $(CYGPATH_W) '$(srcdir)/testutil.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib526-testutil.Tpo" "$(DEPDIR)/lib526-testutil.Po"; else rm -f "$(DEPDIR)/lib526-testutil.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testutil.c' object='lib526-testutil.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib526_CFLAGS) $(CFLAGS) -c -o lib526-testutil.obj `if test -f 'testutil.c'; then $(CYGPATH_W) 'testutil.c'; else $(CYGPATH_W) '$(srcdir)/testutil.c'; fi` - -lib527-lib526.o: lib526.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib527_CFLAGS) $(CFLAGS) -MT lib527-lib526.o -MD -MP -MF "$(DEPDIR)/lib527-lib526.Tpo" -c -o lib527-lib526.o `test -f 'lib526.c' || echo '$(srcdir)/'`lib526.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib527-lib526.Tpo" "$(DEPDIR)/lib527-lib526.Po"; else rm -f "$(DEPDIR)/lib527-lib526.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib526.c' object='lib527-lib526.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib527_CFLAGS) $(CFLAGS) -c -o lib527-lib526.o `test -f 'lib526.c' || echo '$(srcdir)/'`lib526.c - -lib527-lib526.obj: lib526.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib527_CFLAGS) $(CFLAGS) -MT lib527-lib526.obj -MD -MP -MF "$(DEPDIR)/lib527-lib526.Tpo" -c -o lib527-lib526.obj `if test -f 'lib526.c'; then $(CYGPATH_W) 'lib526.c'; else $(CYGPATH_W) '$(srcdir)/lib526.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib527-lib526.Tpo" "$(DEPDIR)/lib527-lib526.Po"; else rm -f "$(DEPDIR)/lib527-lib526.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib526.c' object='lib527-lib526.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib527_CFLAGS) $(CFLAGS) -c -o lib527-lib526.obj `if test -f 'lib526.c'; then $(CYGPATH_W) 'lib526.c'; else $(CYGPATH_W) '$(srcdir)/lib526.c'; fi` - -lib527-first.o: first.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib527_CFLAGS) $(CFLAGS) -MT lib527-first.o -MD -MP -MF "$(DEPDIR)/lib527-first.Tpo" -c -o lib527-first.o `test -f 'first.c' || echo '$(srcdir)/'`first.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib527-first.Tpo" "$(DEPDIR)/lib527-first.Po"; else rm -f "$(DEPDIR)/lib527-first.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='first.c' object='lib527-first.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib527_CFLAGS) $(CFLAGS) -c -o lib527-first.o `test -f 'first.c' || echo '$(srcdir)/'`first.c - -lib527-first.obj: first.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib527_CFLAGS) $(CFLAGS) -MT lib527-first.obj -MD -MP -MF "$(DEPDIR)/lib527-first.Tpo" -c -o lib527-first.obj `if test -f 'first.c'; then $(CYGPATH_W) 'first.c'; else $(CYGPATH_W) '$(srcdir)/first.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib527-first.Tpo" "$(DEPDIR)/lib527-first.Po"; else rm -f "$(DEPDIR)/lib527-first.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='first.c' object='lib527-first.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib527_CFLAGS) $(CFLAGS) -c -o lib527-first.obj `if test -f 'first.c'; then $(CYGPATH_W) 'first.c'; else $(CYGPATH_W) '$(srcdir)/first.c'; fi` - -lib527-testutil.o: testutil.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib527_CFLAGS) $(CFLAGS) -MT lib527-testutil.o -MD -MP -MF "$(DEPDIR)/lib527-testutil.Tpo" -c -o lib527-testutil.o `test -f 'testutil.c' || echo '$(srcdir)/'`testutil.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib527-testutil.Tpo" "$(DEPDIR)/lib527-testutil.Po"; else rm -f "$(DEPDIR)/lib527-testutil.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testutil.c' object='lib527-testutil.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib527_CFLAGS) $(CFLAGS) -c -o lib527-testutil.o `test -f 'testutil.c' || echo '$(srcdir)/'`testutil.c - -lib527-testutil.obj: testutil.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib527_CFLAGS) $(CFLAGS) -MT lib527-testutil.obj -MD -MP -MF "$(DEPDIR)/lib527-testutil.Tpo" -c -o lib527-testutil.obj `if test -f 'testutil.c'; then $(CYGPATH_W) 'testutil.c'; else $(CYGPATH_W) '$(srcdir)/testutil.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib527-testutil.Tpo" "$(DEPDIR)/lib527-testutil.Po"; else rm -f "$(DEPDIR)/lib527-testutil.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testutil.c' object='lib527-testutil.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib527_CFLAGS) $(CFLAGS) -c -o lib527-testutil.obj `if test -f 'testutil.c'; then $(CYGPATH_W) 'testutil.c'; else $(CYGPATH_W) '$(srcdir)/testutil.c'; fi` - -lib529-lib525.o: lib525.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib529_CFLAGS) $(CFLAGS) -MT lib529-lib525.o -MD -MP -MF "$(DEPDIR)/lib529-lib525.Tpo" -c -o lib529-lib525.o `test -f 'lib525.c' || echo '$(srcdir)/'`lib525.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib529-lib525.Tpo" "$(DEPDIR)/lib529-lib525.Po"; else rm -f "$(DEPDIR)/lib529-lib525.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib525.c' object='lib529-lib525.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib529_CFLAGS) $(CFLAGS) -c -o lib529-lib525.o `test -f 'lib525.c' || echo '$(srcdir)/'`lib525.c - -lib529-lib525.obj: lib525.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib529_CFLAGS) $(CFLAGS) -MT lib529-lib525.obj -MD -MP -MF "$(DEPDIR)/lib529-lib525.Tpo" -c -o lib529-lib525.obj `if test -f 'lib525.c'; then $(CYGPATH_W) 'lib525.c'; else $(CYGPATH_W) '$(srcdir)/lib525.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib529-lib525.Tpo" "$(DEPDIR)/lib529-lib525.Po"; else rm -f "$(DEPDIR)/lib529-lib525.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib525.c' object='lib529-lib525.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib529_CFLAGS) $(CFLAGS) -c -o lib529-lib525.obj `if test -f 'lib525.c'; then $(CYGPATH_W) 'lib525.c'; else $(CYGPATH_W) '$(srcdir)/lib525.c'; fi` - -lib529-first.o: first.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib529_CFLAGS) $(CFLAGS) -MT lib529-first.o -MD -MP -MF "$(DEPDIR)/lib529-first.Tpo" -c -o lib529-first.o `test -f 'first.c' || echo '$(srcdir)/'`first.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib529-first.Tpo" "$(DEPDIR)/lib529-first.Po"; else rm -f "$(DEPDIR)/lib529-first.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='first.c' object='lib529-first.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib529_CFLAGS) $(CFLAGS) -c -o lib529-first.o `test -f 'first.c' || echo '$(srcdir)/'`first.c - -lib529-first.obj: first.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib529_CFLAGS) $(CFLAGS) -MT lib529-first.obj -MD -MP -MF "$(DEPDIR)/lib529-first.Tpo" -c -o lib529-first.obj `if test -f 'first.c'; then $(CYGPATH_W) 'first.c'; else $(CYGPATH_W) '$(srcdir)/first.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib529-first.Tpo" "$(DEPDIR)/lib529-first.Po"; else rm -f "$(DEPDIR)/lib529-first.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='first.c' object='lib529-first.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib529_CFLAGS) $(CFLAGS) -c -o lib529-first.obj `if test -f 'first.c'; then $(CYGPATH_W) 'first.c'; else $(CYGPATH_W) '$(srcdir)/first.c'; fi` - -lib529-testutil.o: testutil.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib529_CFLAGS) $(CFLAGS) -MT lib529-testutil.o -MD -MP -MF "$(DEPDIR)/lib529-testutil.Tpo" -c -o lib529-testutil.o `test -f 'testutil.c' || echo '$(srcdir)/'`testutil.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib529-testutil.Tpo" "$(DEPDIR)/lib529-testutil.Po"; else rm -f "$(DEPDIR)/lib529-testutil.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testutil.c' object='lib529-testutil.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib529_CFLAGS) $(CFLAGS) -c -o lib529-testutil.o `test -f 'testutil.c' || echo '$(srcdir)/'`testutil.c - -lib529-testutil.obj: testutil.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib529_CFLAGS) $(CFLAGS) -MT lib529-testutil.obj -MD -MP -MF "$(DEPDIR)/lib529-testutil.Tpo" -c -o lib529-testutil.obj `if test -f 'testutil.c'; then $(CYGPATH_W) 'testutil.c'; else $(CYGPATH_W) '$(srcdir)/testutil.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib529-testutil.Tpo" "$(DEPDIR)/lib529-testutil.Po"; else rm -f "$(DEPDIR)/lib529-testutil.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testutil.c' object='lib529-testutil.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib529_CFLAGS) $(CFLAGS) -c -o lib529-testutil.obj `if test -f 'testutil.c'; then $(CYGPATH_W) 'testutil.c'; else $(CYGPATH_W) '$(srcdir)/testutil.c'; fi` - -lib530-lib530.o: lib530.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib530_CFLAGS) $(CFLAGS) -MT lib530-lib530.o -MD -MP -MF "$(DEPDIR)/lib530-lib530.Tpo" -c -o lib530-lib530.o `test -f 'lib530.c' || echo '$(srcdir)/'`lib530.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib530-lib530.Tpo" "$(DEPDIR)/lib530-lib530.Po"; else rm -f "$(DEPDIR)/lib530-lib530.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib530.c' object='lib530-lib530.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib530_CFLAGS) $(CFLAGS) -c -o lib530-lib530.o `test -f 'lib530.c' || echo '$(srcdir)/'`lib530.c - -lib530-lib530.obj: lib530.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib530_CFLAGS) $(CFLAGS) -MT lib530-lib530.obj -MD -MP -MF "$(DEPDIR)/lib530-lib530.Tpo" -c -o lib530-lib530.obj `if test -f 'lib530.c'; then $(CYGPATH_W) 'lib530.c'; else $(CYGPATH_W) '$(srcdir)/lib530.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib530-lib530.Tpo" "$(DEPDIR)/lib530-lib530.Po"; else rm -f "$(DEPDIR)/lib530-lib530.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib530.c' object='lib530-lib530.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib530_CFLAGS) $(CFLAGS) -c -o lib530-lib530.obj `if test -f 'lib530.c'; then $(CYGPATH_W) 'lib530.c'; else $(CYGPATH_W) '$(srcdir)/lib530.c'; fi` - -lib530-first.o: first.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib530_CFLAGS) $(CFLAGS) -MT lib530-first.o -MD -MP -MF "$(DEPDIR)/lib530-first.Tpo" -c -o lib530-first.o `test -f 'first.c' || echo '$(srcdir)/'`first.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib530-first.Tpo" "$(DEPDIR)/lib530-first.Po"; else rm -f "$(DEPDIR)/lib530-first.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='first.c' object='lib530-first.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib530_CFLAGS) $(CFLAGS) -c -o lib530-first.o `test -f 'first.c' || echo '$(srcdir)/'`first.c - -lib530-first.obj: first.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib530_CFLAGS) $(CFLAGS) -MT lib530-first.obj -MD -MP -MF "$(DEPDIR)/lib530-first.Tpo" -c -o lib530-first.obj `if test -f 'first.c'; then $(CYGPATH_W) 'first.c'; else $(CYGPATH_W) '$(srcdir)/first.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib530-first.Tpo" "$(DEPDIR)/lib530-first.Po"; else rm -f "$(DEPDIR)/lib530-first.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='first.c' object='lib530-first.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib530_CFLAGS) $(CFLAGS) -c -o lib530-first.obj `if test -f 'first.c'; then $(CYGPATH_W) 'first.c'; else $(CYGPATH_W) '$(srcdir)/first.c'; fi` - -lib530-testutil.o: testutil.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib530_CFLAGS) $(CFLAGS) -MT lib530-testutil.o -MD -MP -MF "$(DEPDIR)/lib530-testutil.Tpo" -c -o lib530-testutil.o `test -f 'testutil.c' || echo '$(srcdir)/'`testutil.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib530-testutil.Tpo" "$(DEPDIR)/lib530-testutil.Po"; else rm -f "$(DEPDIR)/lib530-testutil.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testutil.c' object='lib530-testutil.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib530_CFLAGS) $(CFLAGS) -c -o lib530-testutil.o `test -f 'testutil.c' || echo '$(srcdir)/'`testutil.c - -lib530-testutil.obj: testutil.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib530_CFLAGS) $(CFLAGS) -MT lib530-testutil.obj -MD -MP -MF "$(DEPDIR)/lib530-testutil.Tpo" -c -o lib530-testutil.obj `if test -f 'testutil.c'; then $(CYGPATH_W) 'testutil.c'; else $(CYGPATH_W) '$(srcdir)/testutil.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib530-testutil.Tpo" "$(DEPDIR)/lib530-testutil.Po"; else rm -f "$(DEPDIR)/lib530-testutil.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testutil.c' object='lib530-testutil.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib530_CFLAGS) $(CFLAGS) -c -o lib530-testutil.obj `if test -f 'testutil.c'; then $(CYGPATH_W) 'testutil.c'; else $(CYGPATH_W) '$(srcdir)/testutil.c'; fi` - -lib532-lib526.o: lib526.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib532_CFLAGS) $(CFLAGS) -MT lib532-lib526.o -MD -MP -MF "$(DEPDIR)/lib532-lib526.Tpo" -c -o lib532-lib526.o `test -f 'lib526.c' || echo '$(srcdir)/'`lib526.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib532-lib526.Tpo" "$(DEPDIR)/lib532-lib526.Po"; else rm -f "$(DEPDIR)/lib532-lib526.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib526.c' object='lib532-lib526.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib532_CFLAGS) $(CFLAGS) -c -o lib532-lib526.o `test -f 'lib526.c' || echo '$(srcdir)/'`lib526.c - -lib532-lib526.obj: lib526.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib532_CFLAGS) $(CFLAGS) -MT lib532-lib526.obj -MD -MP -MF "$(DEPDIR)/lib532-lib526.Tpo" -c -o lib532-lib526.obj `if test -f 'lib526.c'; then $(CYGPATH_W) 'lib526.c'; else $(CYGPATH_W) '$(srcdir)/lib526.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib532-lib526.Tpo" "$(DEPDIR)/lib532-lib526.Po"; else rm -f "$(DEPDIR)/lib532-lib526.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib526.c' object='lib532-lib526.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib532_CFLAGS) $(CFLAGS) -c -o lib532-lib526.obj `if test -f 'lib526.c'; then $(CYGPATH_W) 'lib526.c'; else $(CYGPATH_W) '$(srcdir)/lib526.c'; fi` - -lib532-first.o: first.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib532_CFLAGS) $(CFLAGS) -MT lib532-first.o -MD -MP -MF "$(DEPDIR)/lib532-first.Tpo" -c -o lib532-first.o `test -f 'first.c' || echo '$(srcdir)/'`first.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib532-first.Tpo" "$(DEPDIR)/lib532-first.Po"; else rm -f "$(DEPDIR)/lib532-first.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='first.c' object='lib532-first.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib532_CFLAGS) $(CFLAGS) -c -o lib532-first.o `test -f 'first.c' || echo '$(srcdir)/'`first.c - -lib532-first.obj: first.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib532_CFLAGS) $(CFLAGS) -MT lib532-first.obj -MD -MP -MF "$(DEPDIR)/lib532-first.Tpo" -c -o lib532-first.obj `if test -f 'first.c'; then $(CYGPATH_W) 'first.c'; else $(CYGPATH_W) '$(srcdir)/first.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib532-first.Tpo" "$(DEPDIR)/lib532-first.Po"; else rm -f "$(DEPDIR)/lib532-first.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='first.c' object='lib532-first.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib532_CFLAGS) $(CFLAGS) -c -o lib532-first.obj `if test -f 'first.c'; then $(CYGPATH_W) 'first.c'; else $(CYGPATH_W) '$(srcdir)/first.c'; fi` - -lib532-testutil.o: testutil.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib532_CFLAGS) $(CFLAGS) -MT lib532-testutil.o -MD -MP -MF "$(DEPDIR)/lib532-testutil.Tpo" -c -o lib532-testutil.o `test -f 'testutil.c' || echo '$(srcdir)/'`testutil.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib532-testutil.Tpo" "$(DEPDIR)/lib532-testutil.Po"; else rm -f "$(DEPDIR)/lib532-testutil.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testutil.c' object='lib532-testutil.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib532_CFLAGS) $(CFLAGS) -c -o lib532-testutil.o `test -f 'testutil.c' || echo '$(srcdir)/'`testutil.c - -lib532-testutil.obj: testutil.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib532_CFLAGS) $(CFLAGS) -MT lib532-testutil.obj -MD -MP -MF "$(DEPDIR)/lib532-testutil.Tpo" -c -o lib532-testutil.obj `if test -f 'testutil.c'; then $(CYGPATH_W) 'testutil.c'; else $(CYGPATH_W) '$(srcdir)/testutil.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib532-testutil.Tpo" "$(DEPDIR)/lib532-testutil.Po"; else rm -f "$(DEPDIR)/lib532-testutil.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testutil.c' object='lib532-testutil.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib532_CFLAGS) $(CFLAGS) -c -o lib532-testutil.obj `if test -f 'testutil.c'; then $(CYGPATH_W) 'testutil.c'; else $(CYGPATH_W) '$(srcdir)/testutil.c'; fi` - -lib545-lib544.o: lib544.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib545_CFLAGS) $(CFLAGS) -MT lib545-lib544.o -MD -MP -MF "$(DEPDIR)/lib545-lib544.Tpo" -c -o lib545-lib544.o `test -f 'lib544.c' || echo '$(srcdir)/'`lib544.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib545-lib544.Tpo" "$(DEPDIR)/lib545-lib544.Po"; else rm -f "$(DEPDIR)/lib545-lib544.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib544.c' object='lib545-lib544.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib545_CFLAGS) $(CFLAGS) -c -o lib545-lib544.o `test -f 'lib544.c' || echo '$(srcdir)/'`lib544.c - -lib545-lib544.obj: lib544.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib545_CFLAGS) $(CFLAGS) -MT lib545-lib544.obj -MD -MP -MF "$(DEPDIR)/lib545-lib544.Tpo" -c -o lib545-lib544.obj `if test -f 'lib544.c'; then $(CYGPATH_W) 'lib544.c'; else $(CYGPATH_W) '$(srcdir)/lib544.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib545-lib544.Tpo" "$(DEPDIR)/lib545-lib544.Po"; else rm -f "$(DEPDIR)/lib545-lib544.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib544.c' object='lib545-lib544.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib545_CFLAGS) $(CFLAGS) -c -o lib545-lib544.obj `if test -f 'lib544.c'; then $(CYGPATH_W) 'lib544.c'; else $(CYGPATH_W) '$(srcdir)/lib544.c'; fi` - -lib545-first.o: first.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib545_CFLAGS) $(CFLAGS) -MT lib545-first.o -MD -MP -MF "$(DEPDIR)/lib545-first.Tpo" -c -o lib545-first.o `test -f 'first.c' || echo '$(srcdir)/'`first.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib545-first.Tpo" "$(DEPDIR)/lib545-first.Po"; else rm -f "$(DEPDIR)/lib545-first.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='first.c' object='lib545-first.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib545_CFLAGS) $(CFLAGS) -c -o lib545-first.o `test -f 'first.c' || echo '$(srcdir)/'`first.c - -lib545-first.obj: first.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib545_CFLAGS) $(CFLAGS) -MT lib545-first.obj -MD -MP -MF "$(DEPDIR)/lib545-first.Tpo" -c -o lib545-first.obj `if test -f 'first.c'; then $(CYGPATH_W) 'first.c'; else $(CYGPATH_W) '$(srcdir)/first.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib545-first.Tpo" "$(DEPDIR)/lib545-first.Po"; else rm -f "$(DEPDIR)/lib545-first.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='first.c' object='lib545-first.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib545_CFLAGS) $(CFLAGS) -c -o lib545-first.obj `if test -f 'first.c'; then $(CYGPATH_W) 'first.c'; else $(CYGPATH_W) '$(srcdir)/first.c'; fi` - -lib548-lib547.o: lib547.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib548_CFLAGS) $(CFLAGS) -MT lib548-lib547.o -MD -MP -MF "$(DEPDIR)/lib548-lib547.Tpo" -c -o lib548-lib547.o `test -f 'lib547.c' || echo '$(srcdir)/'`lib547.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib548-lib547.Tpo" "$(DEPDIR)/lib548-lib547.Po"; else rm -f "$(DEPDIR)/lib548-lib547.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib547.c' object='lib548-lib547.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib548_CFLAGS) $(CFLAGS) -c -o lib548-lib547.o `test -f 'lib547.c' || echo '$(srcdir)/'`lib547.c - -lib548-lib547.obj: lib547.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib548_CFLAGS) $(CFLAGS) -MT lib548-lib547.obj -MD -MP -MF "$(DEPDIR)/lib548-lib547.Tpo" -c -o lib548-lib547.obj `if test -f 'lib547.c'; then $(CYGPATH_W) 'lib547.c'; else $(CYGPATH_W) '$(srcdir)/lib547.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib548-lib547.Tpo" "$(DEPDIR)/lib548-lib547.Po"; else rm -f "$(DEPDIR)/lib548-lib547.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib547.c' object='lib548-lib547.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib548_CFLAGS) $(CFLAGS) -c -o lib548-lib547.obj `if test -f 'lib547.c'; then $(CYGPATH_W) 'lib547.c'; else $(CYGPATH_W) '$(srcdir)/lib547.c'; fi` - -lib548-first.o: first.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib548_CFLAGS) $(CFLAGS) -MT lib548-first.o -MD -MP -MF "$(DEPDIR)/lib548-first.Tpo" -c -o lib548-first.o `test -f 'first.c' || echo '$(srcdir)/'`first.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib548-first.Tpo" "$(DEPDIR)/lib548-first.Po"; else rm -f "$(DEPDIR)/lib548-first.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='first.c' object='lib548-first.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib548_CFLAGS) $(CFLAGS) -c -o lib548-first.o `test -f 'first.c' || echo '$(srcdir)/'`first.c - -lib548-first.obj: first.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib548_CFLAGS) $(CFLAGS) -MT lib548-first.obj -MD -MP -MF "$(DEPDIR)/lib548-first.Tpo" -c -o lib548-first.obj `if test -f 'first.c'; then $(CYGPATH_W) 'first.c'; else $(CYGPATH_W) '$(srcdir)/first.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lib548-first.Tpo" "$(DEPDIR)/lib548-first.Po"; else rm -f "$(DEPDIR)/lib548-first.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='first.c' object='lib548-first.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib548_CFLAGS) $(CFLAGS) -c -o lib548-first.obj `if test -f 'first.c'; then $(CYGPATH_W) 'first.c'; else $(CYGPATH_W) '$(srcdir)/first.c'; fi` - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -uninstall-info-am: - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ - mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-libtool distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-info-am - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstPROGRAMS ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-exec \ - install-exec-am install-info install-info-am install-man \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am \ - uninstall-info-am - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/first.c b/Utilities/cmcurl-7.19.0/tests/libtest/first.c deleted file mode 100644 index a58755c..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/first.c +++ /dev/null @@ -1,86 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - -#ifdef CURLDEBUG -/* provide a proto for this debug function */ -extern void curl_memdebug(const char *); -extern void curl_memlimit(int); -#endif - -/* test is provided in the test code file */ -int test(char *url); - -int select_test (int num_fds, fd_set *rd, fd_set *wr, fd_set *exc, - struct timeval *tv) -{ -#ifdef USE_WINSOCK - /* Winsock doesn't like no socket set in 'rd', 'wr' or 'exc'. This is - * case when 'num_fds <= 0. So sleep. - */ - if (num_fds <= 0) { - Sleep(1000*tv->tv_sec + tv->tv_usec/1000); - return 0; - } -#endif - return select(num_fds, rd, wr, exc, tv); -} - -char *libtest_arg2=NULL; -char *libtest_arg3=NULL; -int test_argc; -char **test_argv; - - -int main(int argc, char **argv) -{ - char *URL; - -#ifdef CURLDEBUG - /* this sends all memory debug messages to a logfile named memdump */ - char *env = curl_getenv("CURL_MEMDEBUG"); - if(env) { - /* use the value as file name */ - char *s = strdup(env); - curl_free(env); - curl_memdebug(s); - free(s); - /* this weird strdup() and stuff here is to make the curl_free() get - called before the memdebug() as otherwise the memdebug tracing will - with tracing a free() without an alloc! */ - } - /* this enables the fail-on-alloc-number-N functionality */ - env = curl_getenv("CURL_MEMLIMIT"); - if(env) { - curl_memlimit(atoi(env)); - curl_free(env); - } -#endif - if(argc< 2 ) { - fprintf(stderr, "Pass URL as argument please\n"); - return 1; - } - - test_argc = argc; - test_argv = argv; - - if(argc>2) - libtest_arg2=argv[2]; - - if(argc>3) - libtest_arg3=argv[3]; - - URL = argv[1]; /* provide this to the rest */ - - fprintf(stderr, "URL: %s\n", URL); - - return test(URL); -} diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib500.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib500.c deleted file mode 100644 index c28f5d0..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib500.c +++ /dev/null @@ -1,50 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - -int test(char *URL) -{ - CURLcode res; - CURL *curl; - char *ipstr=NULL; - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - curl_easy_setopt(curl, CURLOPT_URL, URL); - curl_easy_setopt(curl, CURLOPT_HEADER, 1L); - - res = curl_easy_perform(curl); - - if(!res) { - FILE *moo; - res = curl_easy_getinfo(curl, CURLINFO_PRIMARY_IP, &ipstr); - moo = fopen(libtest_arg2, "wb"); - if(moo) { - fprintf(moo, "IP: %s\n", ipstr); - fclose(moo); - } - } - - curl_easy_cleanup(curl); - curl_global_cleanup(); - - return (int)res; -} - diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib501.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib501.c deleted file mode 100644 index cf2d957..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib501.c +++ /dev/null @@ -1,40 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - -int test(char *URL) -{ - CURLcode res; - CURL *curl; - - (void)URL; /* we don't use this */ - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - curl_easy_setopt(curl, CURLOPT_HEADER, 1L); - - res = curl_easy_perform(curl); - - curl_easy_cleanup(curl); - curl_global_cleanup(); - - return (int)res; -} - diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib502.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib502.c deleted file mode 100644 index ea53795..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib502.c +++ /dev/null @@ -1,90 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - -#include "testutil.h" - -#define MAIN_LOOP_HANG_TIMEOUT 90 * 1000 -#define MULTI_PERFORM_HANG_TIMEOUT 60 * 1000 - -/* - * Get a single URL without select(). - */ - -int test(char *URL) -{ - CURL *c; - CURLM *m; - int res = 0; - int running=1; - struct timeval mp_start; - char mp_timedout = FALSE; - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - if ((c = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - curl_easy_setopt(c, CURLOPT_URL, URL); - - if ((m = curl_multi_init()) == NULL) { - fprintf(stderr, "curl_multi_init() failed\n"); - curl_easy_cleanup(c); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - if ((res = (int)curl_multi_add_handle(m, c)) != CURLM_OK) { - fprintf(stderr, "curl_multi_add_handle() failed, " - "with code %d\n", res); - curl_multi_cleanup(m); - curl_easy_cleanup(c); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - mp_timedout = FALSE; - mp_start = tutil_tvnow(); - - while (running) { - res = (int)curl_multi_perform(m, &running); - if (tutil_tvdiff(tutil_tvnow(), mp_start) > - MULTI_PERFORM_HANG_TIMEOUT) { - mp_timedout = TRUE; - break; - } - if (running <= 0) { - fprintf(stderr, "nothing left running.\n"); - break; - } - } - - if (mp_timedout) { - if (mp_timedout) fprintf(stderr, "mp_timedout\n"); - fprintf(stderr, "ABORTING TEST, since it seems " - "that it would have run forever.\n"); - res = TEST_ERR_RUNS_FOREVER; - } - - curl_multi_remove_handle(m, c); - curl_easy_cleanup(c); - curl_multi_cleanup(m); - curl_global_cleanup(); - - return res; -} - diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib503.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib503.c deleted file mode 100644 index 5eda599..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib503.c +++ /dev/null @@ -1,148 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - -#include <sys/types.h> - -#include "testutil.h" - -#define MAIN_LOOP_HANG_TIMEOUT 90 * 1000 -#define MULTI_PERFORM_HANG_TIMEOUT 60 * 1000 - -/* - * Source code in here hugely as reported in bug report 651460 by - * Christopher R. Palmer. - * - * Use multi interface to get HTTPS document over proxy, and provide - * auth info. - */ - -int test(char *URL) -{ - CURL *c; - CURLM *m; - int res = 0; - int running; - char done = FALSE; - struct timeval ml_start; - struct timeval mp_start; - char ml_timedout = FALSE; - char mp_timedout = FALSE; - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - if ((c = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - curl_easy_setopt(c, CURLOPT_PROXY, libtest_arg2); /* set in first.c */ - curl_easy_setopt(c, CURLOPT_URL, URL); - curl_easy_setopt(c, CURLOPT_USERPWD, "test:ing"); - curl_easy_setopt(c, CURLOPT_PROXYUSERPWD, "test:ing"); - curl_easy_setopt(c, CURLOPT_HTTPPROXYTUNNEL, 1L); - curl_easy_setopt(c, CURLOPT_HEADER, 1L); - - if ((m = curl_multi_init()) == NULL) { - fprintf(stderr, "curl_multi_init() failed\n"); - curl_easy_cleanup(c); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - if ((res = (int)curl_multi_add_handle(m, c)) != CURLM_OK) { - fprintf(stderr, "curl_multi_add_handle() failed, " - "with code %d\n", res); - curl_multi_cleanup(m); - curl_easy_cleanup(c); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - ml_timedout = FALSE; - ml_start = tutil_tvnow(); - - while(!done) { - fd_set rd, wr, exc; - int max_fd; - struct timeval interval; - - interval.tv_sec = 1; - interval.tv_usec = 0; - - if (tutil_tvdiff(tutil_tvnow(), ml_start) > - MAIN_LOOP_HANG_TIMEOUT) { - ml_timedout = TRUE; - break; - } - mp_timedout = FALSE; - mp_start = tutil_tvnow(); - - while (res == CURLM_CALL_MULTI_PERFORM) { - res = (int)curl_multi_perform(m, &running); - if (tutil_tvdiff(tutil_tvnow(), mp_start) > - MULTI_PERFORM_HANG_TIMEOUT) { - mp_timedout = TRUE; - break; - } - if (running <= 0) { - done = TRUE; - break; - } - } - if (mp_timedout || done) - break; - - if (res != CURLM_OK) { - fprintf(stderr, "not okay???\n"); - break; - } - - FD_ZERO(&rd); - FD_ZERO(&wr); - FD_ZERO(&exc); - max_fd = 0; - - if (curl_multi_fdset(m, &rd, &wr, &exc, &max_fd) != CURLM_OK) { - fprintf(stderr, "unexpected failured of fdset.\n"); - res = 89; - break; - } - - if (select_test(max_fd+1, &rd, &wr, &exc, &interval) == -1) { - fprintf(stderr, "bad select??\n"); - res = 95; - break; - } - - res = CURLM_CALL_MULTI_PERFORM; - } - - if (ml_timedout || mp_timedout) { - if (ml_timedout) fprintf(stderr, "ml_timedout\n"); - if (mp_timedout) fprintf(stderr, "mp_timedout\n"); - fprintf(stderr, "ABORTING TEST, since it seems " - "that it would have run forever.\n"); - res = TEST_ERR_RUNS_FOREVER; - } - - curl_multi_remove_handle(m, c); - curl_easy_cleanup(c); - curl_multi_cleanup(m); - curl_global_cleanup(); - - return res; -} - diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib504.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib504.c deleted file mode 100644 index a57a3d1..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib504.c +++ /dev/null @@ -1,156 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - -#include <sys/types.h> - -#include "testutil.h" - -#define MAIN_LOOP_HANG_TIMEOUT 90 * 1000 -#define MULTI_PERFORM_HANG_TIMEOUT 60 * 1000 - -/* - * Source code in here hugely as reported in bug report 651464 by - * Christopher R. Palmer. - * - * Use multi interface to get document over proxy with bad port number. - * This caused the interface to "hang" in libcurl 7.10.2. - */ -int test(char *URL) -{ - CURL *c; - int ret=0; - CURLM *m; - fd_set rd, wr, exc; - CURLMcode res; - char done = FALSE; - int running; - int max_fd; - int rc; - struct timeval ml_start; - struct timeval mp_start; - char ml_timedout = FALSE; - char mp_timedout = FALSE; - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - if ((c = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - /* the point here being that there must not run anything on the given - proxy port */ - curl_easy_setopt(c, CURLOPT_PROXY, libtest_arg2); - curl_easy_setopt(c, CURLOPT_URL, URL); - curl_easy_setopt(c, CURLOPT_VERBOSE, 1L); - - if ((m = curl_multi_init()) == NULL) { - fprintf(stderr, "curl_multi_init() failed\n"); - curl_easy_cleanup(c); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - if ((res = curl_multi_add_handle(m, c)) != CURLM_OK) { - fprintf(stderr, "curl_multi_add_handle() failed, " - "with code %d\n", res); - curl_multi_cleanup(m); - curl_easy_cleanup(c); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - ml_timedout = FALSE; - ml_start = tutil_tvnow(); - - while (!done) { - struct timeval interval; - - interval.tv_sec = 1; - interval.tv_usec = 0; - - if (tutil_tvdiff(tutil_tvnow(), ml_start) > - MAIN_LOOP_HANG_TIMEOUT) { - ml_timedout = TRUE; - break; - } - mp_timedout = FALSE; - mp_start = tutil_tvnow(); - - fprintf(stderr, "curl_multi_perform()\n"); - - res = CURLM_CALL_MULTI_PERFORM; - - while (res == CURLM_CALL_MULTI_PERFORM) { - res = curl_multi_perform(m, &running); - if (tutil_tvdiff(tutil_tvnow(), mp_start) > - MULTI_PERFORM_HANG_TIMEOUT) { - mp_timedout = TRUE; - break; - } - } - if (mp_timedout) - break; - - if(!running) { - /* This is where this code is expected to reach */ - int numleft; - CURLMsg *msg = curl_multi_info_read(m, &numleft); - fprintf(stderr, "Expected: not running\n"); - if(msg && !numleft) - ret = 100; /* this is where we should be */ - else - ret = 99; /* not correct */ - break; - } - fprintf(stderr, "running == %d, res == %d\n", running, res); - - if (res != CURLM_OK) { - ret = 2; - break; - } - - FD_ZERO(&rd); - FD_ZERO(&wr); - FD_ZERO(&exc); - max_fd = 0; - - fprintf(stderr, "curl_multi_fdset()\n"); - if (curl_multi_fdset(m, &rd, &wr, &exc, &max_fd) != CURLM_OK) { - fprintf(stderr, "unexpected failured of fdset.\n"); - ret = 3; - break; - } - rc = select_test(max_fd+1, &rd, &wr, &exc, &interval); - fprintf(stderr, "select returned %d\n", rc); - } - - if (ml_timedout || mp_timedout) { - if (ml_timedout) fprintf(stderr, "ml_timedout\n"); - if (mp_timedout) fprintf(stderr, "mp_timedout\n"); - fprintf(stderr, "ABORTING TEST, since it seems " - "that it would have run forever.\n"); - ret = TEST_ERR_RUNS_FOREVER; - } - - curl_multi_remove_handle(m, c); - curl_easy_cleanup(c); - curl_multi_cleanup(m); - curl_global_cleanup(); - - return ret; -} - diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib505.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib505.c deleted file mode 100644 index eec2071..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib505.c +++ /dev/null @@ -1,150 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "setup.h" /* struct_stat etc. */ -#include "test.h" - -#ifdef HAVE_SYS_SOCKET_H -#include <sys/socket.h> -#endif -#ifdef HAVE_SYS_TYPES_H -#include <sys/types.h> -#endif -#ifdef HAVE_SYS_STAT_H -#include <sys/stat.h> -#endif -#ifdef HAVE_FCNTL_H -#include <fcntl.h> -#endif - -#ifdef HAVE_UNISTD_H -#include <unistd.h> -#endif - -/* - * This example shows an FTP upload, with a rename of the file just after - * a successful upload. - * - * Example based on source code provided by Erick Nuwendam. Thanks! - */ - -int test(char *URL) -{ - CURL *curl; - CURLcode res = CURLE_OK; - FILE *hd_src ; - int hd ; - struct_stat file_info; - struct curl_slist *hl; - int error; - - struct curl_slist *headerlist=NULL; - const char *buf_1 = "RNFR 505"; - const char *buf_2 = "RNTO 505-forreal"; - - if (!libtest_arg2) { - fprintf(stderr, "Usage: <url> <file-to-upload>\n"); - return -1; - } - - /* get the file size of the local file */ - hd = stat(libtest_arg2, &file_info); - if(hd == -1) { - /* can't open file, bail out */ - error = ERRNO; - fprintf(stderr, "stat() failed with error: %d %s\n", - error, strerror(error)); - fprintf(stderr, "WARNING: cannot open file %s\n", libtest_arg2); - return -1; - } - - if(! file_info.st_size) { - fprintf(stderr, "WARNING: file %s has no size!\n", libtest_arg2); - return -4; - } - - /* get a FILE * of the same file, could also be made with - fdopen() from the previous descriptor, but hey this is just - an example! */ - hd_src = fopen(libtest_arg2, "rb"); - if(NULL == hd_src) { - error = ERRNO; - fprintf(stderr, "fopen() failed with error: %d %s\n", - error, strerror(error)); - fprintf(stderr, "Error opening file: %s\n", libtest_arg2); - return -2; /* if this happens things are major weird */ - } - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - fclose(hd_src); - return TEST_ERR_MAJOR_BAD; - } - - /* get a curl handle */ - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_global_cleanup(); - fclose(hd_src); - return TEST_ERR_MAJOR_BAD; - } - - /* build a list of commands to pass to libcurl */ - - if ((hl = curl_slist_append(headerlist, buf_1)) == NULL) { - fprintf(stderr, "curl_slist_append() failed\n"); - curl_easy_cleanup(curl); - curl_global_cleanup(); - fclose(hd_src); - return TEST_ERR_MAJOR_BAD; - } - if ((headerlist = curl_slist_append(hl, buf_2)) == NULL) { - fprintf(stderr, "curl_slist_append() failed\n"); - curl_slist_free_all(hl); - curl_easy_cleanup(curl); - curl_global_cleanup(); - fclose(hd_src); - return TEST_ERR_MAJOR_BAD; - } - headerlist = hl; - - /* enable uploading */ - curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L); - - /* enable verbose */ - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); - - /* specify target */ - curl_easy_setopt(curl,CURLOPT_URL, URL); - - /* pass in that last of FTP commands to run after the transfer */ - curl_easy_setopt(curl, CURLOPT_POSTQUOTE, headerlist); - - /* now specify which file to upload */ - curl_easy_setopt(curl, CURLOPT_INFILE, hd_src); - - /* and give the size of the upload (optional) */ - curl_easy_setopt(curl, CURLOPT_INFILESIZE_LARGE, - (curl_off_t)file_info.st_size); - - /* Now run off and do what you've been told! */ - res = curl_easy_perform(curl); - - /* clean up the FTP commands list */ - curl_slist_free_all(headerlist); - - /* close the local file */ - fclose(hd_src); - - curl_easy_cleanup(curl); - curl_global_cleanup(); - - return res; -} diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib506.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib506.c deleted file mode 100644 index 0fc5959..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib506.c +++ /dev/null @@ -1,265 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" -#include <stdlib.h> -#include <ctype.h> -#include <errno.h> - -#include <curl/mprintf.h> - -const char *HOSTHEADER = "Host: www.host.foo.com"; -const char *JAR = "log/jar506"; -#define THREADS 2 - -/* struct containing data of a thread */ -struct Tdata { - CURLSH *share; - char *url; -}; - -struct userdata { - char *text; - int counter; -}; - -/* lock callback */ -static void my_lock(CURL *handle, curl_lock_data data, curl_lock_access laccess, - void *useptr ) -{ - const char *what; - struct userdata *user = (struct userdata *)useptr; - - (void)handle; - (void)laccess; - - switch ( data ) { - case CURL_LOCK_DATA_SHARE: - what = "share"; - break; - case CURL_LOCK_DATA_DNS: - what = "dns"; - break; - case CURL_LOCK_DATA_COOKIE: - what = "cookie"; - break; - default: - fprintf(stderr, "lock: no such data: %d\n", (int)data); - return; - } - printf("lock: %-6s <%s>: %d\n", what, user->text, user->counter); - user->counter++; -} - -/* unlock callback */ -static void my_unlock(CURL *handle, curl_lock_data data, void *useptr ) -{ - const char *what; - struct userdata *user = (struct userdata *)useptr; - (void)handle; - switch ( data ) { - case CURL_LOCK_DATA_SHARE: - what = "share"; - break; - case CURL_LOCK_DATA_DNS: - what = "dns"; - break; - case CURL_LOCK_DATA_COOKIE: - what = "cookie"; - break; - default: - fprintf(stderr, "unlock: no such data: %d\n", (int)data); - return; - } - printf("unlock: %-6s <%s>: %d\n", what, user->text, user->counter); - user->counter++; -} - - -/* build host entry */ -static struct curl_slist *sethost(struct curl_slist *headers) -{ - (void)headers; - return curl_slist_append(NULL, HOSTHEADER ); -} - - -/* the dummy thread function */ -static void *fire(void *ptr) -{ - CURLcode code; - struct curl_slist *headers; - struct Tdata *tdata = (struct Tdata*)ptr; - CURL *curl; - int i=0; - - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - return NULL; - } - - headers = sethost(NULL); - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); - curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); - curl_easy_setopt(curl, CURLOPT_URL, tdata->url); - printf( "CURLOPT_SHARE\n" ); - curl_easy_setopt(curl, CURLOPT_SHARE, tdata->share); - - printf( "PERFORM\n" ); - code = curl_easy_perform(curl); - if( code != CURLE_OK ) { - fprintf(stderr, "perform url '%s' repeat %d failed, curlcode %d\n", - tdata->url, i, (int)code); - } - - printf( "CLEANUP\n" ); - curl_easy_cleanup(curl); - curl_slist_free_all(headers); - - return NULL; -} - - -/* build request url */ -static char *suburl(const char *base, int i) -{ - return curl_maprintf("%s000%c", base, 48+i); -} - - -/* test function */ -int test(char *URL) -{ - int res; - CURLSHcode scode = CURLSHE_OK; - char *url; - struct Tdata tdata; - CURL *curl; - CURLSH *share; - struct curl_slist *headers; - int i; - struct userdata user; - - user.text = (char *)"Pigs in space"; - user.counter = 0; - - printf( "GLOBAL_INIT\n" ); - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - /* prepare share */ - printf( "SHARE_INIT\n" ); - if ((share = curl_share_init()) == NULL) { - fprintf(stderr, "curl_share_init() failed\n"); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - if ( CURLSHE_OK == scode ) { - printf( "CURLSHOPT_LOCKFUNC\n" ); - scode = curl_share_setopt( share, CURLSHOPT_LOCKFUNC, my_lock); - } - if ( CURLSHE_OK == scode ) { - printf( "CURLSHOPT_UNLOCKFUNC\n" ); - scode = curl_share_setopt( share, CURLSHOPT_UNLOCKFUNC, my_unlock); - } - if ( CURLSHE_OK == scode ) { - printf( "CURLSHOPT_USERDATA\n" ); - scode = curl_share_setopt( share, CURLSHOPT_USERDATA, &user); - } - if ( CURLSHE_OK == scode ) { - printf( "CURL_LOCK_DATA_COOKIE\n" ); - scode = curl_share_setopt( share, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE); - } - if ( CURLSHE_OK == scode ) { - printf( "CURL_LOCK_DATA_DNS\n" ); - scode = curl_share_setopt( share, CURLSHOPT_SHARE, CURL_LOCK_DATA_DNS); - } - - if ( CURLSHE_OK != scode ) { - fprintf(stderr, "curl_share_setopt() failed\n"); - curl_share_cleanup(share); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - - res = 0; - - /* start treads */ - for (i=1; i<=THREADS; i++ ) { - - /* set thread data */ - tdata.url = suburl( URL, i ); /* must be curl_free()d */ - tdata.share = share; - - /* simulate thread, direct call of "thread" function */ - printf( "*** run %d\n",i ); - fire( &tdata ); - - curl_free( tdata.url ); - - } - - - /* fetch a another one and save cookies */ - printf( "*** run %d\n", i ); - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_share_cleanup(share); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - url = suburl( URL, i ); - headers = sethost( NULL ); - curl_easy_setopt( curl, CURLOPT_HTTPHEADER, headers ); - curl_easy_setopt( curl, CURLOPT_URL, url ); - printf( "CURLOPT_SHARE\n" ); - curl_easy_setopt( curl, CURLOPT_SHARE, share ); - printf( "CURLOPT_COOKIEJAR\n" ); - curl_easy_setopt( curl, CURLOPT_COOKIEJAR, JAR ); - - printf( "PERFORM\n" ); - curl_easy_perform( curl ); - - /* try to free share, expect to fail because share is in use*/ - printf( "try SHARE_CLEANUP...\n" ); - scode = curl_share_cleanup( share ); - if ( scode==CURLSHE_OK ) - { - fprintf(stderr, "curl_share_cleanup succeed but error expected\n"); - share = NULL; - } else { - printf( "SHARE_CLEANUP failed, correct\n" ); - } - - /* clean up last handle */ - printf( "CLEANUP\n" ); - curl_easy_cleanup( curl ); - curl_slist_free_all( headers ); - - curl_free(url); - - /* free share */ - printf( "SHARE_CLEANUP\n" ); - scode = curl_share_cleanup( share ); - if ( scode!=CURLSHE_OK ) - fprintf(stderr, "curl_share_cleanup failed, code errno %d\n", - (int)scode); - - printf( "GLOBAL_CLEANUP\n" ); - curl_global_cleanup(); - - return res; -} - diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib507.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib507.c deleted file mode 100644 index 0137130..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib507.c +++ /dev/null @@ -1,135 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - -#include "testutil.h" - -#define MAIN_LOOP_HANG_TIMEOUT 90 * 1000 -#define MULTI_PERFORM_HANG_TIMEOUT 60 * 1000 - -int test(char *URL) -{ - CURL* curls; - CURLM* multi; - int still_running; - int i = -1; - CURLMsg *msg; - CURLMcode res; - struct timeval ml_start; - struct timeval mp_start; - char ml_timedout = FALSE; - char mp_timedout = FALSE; - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - if ((multi = curl_multi_init()) == NULL) { - fprintf(stderr, "curl_multi_init() failed\n"); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - if ((curls = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_multi_cleanup(multi); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - curl_easy_setopt(curls, CURLOPT_URL, URL); - - if ((res = curl_multi_add_handle(multi, curls)) != CURLM_OK) { - fprintf(stderr, "curl_multi_add_handle() failed, " - "with code %d\n", res); - curl_easy_cleanup(curls); - curl_multi_cleanup(multi); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - mp_timedout = FALSE; - mp_start = tutil_tvnow(); - - do { - res = curl_multi_perform(multi, &still_running); - if (tutil_tvdiff(tutil_tvnow(), mp_start) > - MULTI_PERFORM_HANG_TIMEOUT) { - mp_timedout = TRUE; - break; - } - } while (res == CURLM_CALL_MULTI_PERFORM); - - ml_timedout = FALSE; - ml_start = tutil_tvnow(); - - while ((!ml_timedout) && (!mp_timedout) && (still_running)) { - struct timeval timeout; - int rc; - fd_set fdread; - fd_set fdwrite; - fd_set fdexcep; - int maxfd; - - FD_ZERO(&fdread); - FD_ZERO(&fdwrite); - FD_ZERO(&fdexcep); - timeout.tv_sec = 1; - timeout.tv_usec = 0; - - if (tutil_tvdiff(tutil_tvnow(), ml_start) > - MAIN_LOOP_HANG_TIMEOUT) { - ml_timedout = TRUE; - break; - } - - curl_multi_fdset(multi, &fdread, &fdwrite, &fdexcep, &maxfd); - rc = select_test(maxfd+1, &fdread, &fdwrite, &fdexcep, &timeout); - switch(rc) { - case -1: - break; - case 0: - default: - mp_timedout = FALSE; - mp_start = tutil_tvnow(); - do { - res = curl_multi_perform(multi, &still_running); - if (tutil_tvdiff(tutil_tvnow(), mp_start) > - MULTI_PERFORM_HANG_TIMEOUT) { - mp_timedout = TRUE; - break; - } - } while (res == CURLM_CALL_MULTI_PERFORM); - break; - } - } - if (ml_timedout || mp_timedout) { - if (ml_timedout) fprintf(stderr, "ml_timedout\n"); - if (mp_timedout) fprintf(stderr, "mp_timedout\n"); - fprintf(stderr, "ABORTING TEST, since it seems " - "that it would have run forever.\n"); - i = TEST_ERR_RUNS_FOREVER; - } - else { - msg = curl_multi_info_read(multi, &still_running); - if(msg) - /* this should now contain a result code from the easy handle, - get it */ - i = msg->data.result; - } - - curl_multi_cleanup(multi); - curl_easy_cleanup(curls); - curl_global_cleanup(); - - return i; /* return the final return code */ -} diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib508.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib508.c deleted file mode 100644 index 35679d1..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib508.c +++ /dev/null @@ -1,87 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - -static char data[]="this is what we post to the silly web server\n"; - -struct WriteThis { - char *readptr; - size_t sizeleft; -}; - -static size_t read_callback(void *ptr, size_t size, size_t nmemb, void *userp) -{ - struct WriteThis *pooh = (struct WriteThis *)userp; - - if(size*nmemb < 1) - return 0; - - if(pooh->sizeleft) { - *(char *)ptr = pooh->readptr[0]; /* copy one single byte */ - pooh->readptr++; /* advance pointer */ - pooh->sizeleft--; /* less data left */ - return 1; /* we return 1 byte at a time! */ - } - - return 0; /* no more data left to deliver */ -} - -int test(char *URL) -{ - CURL *curl; - CURLcode res=CURLE_OK; - - struct WriteThis pooh; - - pooh.readptr = data; - pooh.sizeleft = strlen(data); - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - /* First set the URL that is about to receive our POST. */ - curl_easy_setopt(curl, CURLOPT_URL, URL); - - /* Now specify we want to POST data */ - curl_easy_setopt(curl, CURLOPT_POST, 1L); - - /* Set the expected POST size */ - curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, (long)pooh.sizeleft); - - /* we want to use our own read function */ - curl_easy_setopt(curl, CURLOPT_READFUNCTION, read_callback); - - /* pointer to pass to our read function */ - curl_easy_setopt(curl, CURLOPT_INFILE, &pooh); - - /* get verbose debug output please */ - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); - - /* include headers in the output */ - curl_easy_setopt(curl, CURLOPT_HEADER, 1L); - - /* Perform the request, res will get the return code */ - res = curl_easy_perform(curl); - - /* always cleanup */ - curl_easy_cleanup(curl); - curl_global_cleanup(); - - return res; -} diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib510.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib510.c deleted file mode 100644 index d8644c3..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib510.c +++ /dev/null @@ -1,106 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - -static const char *post[]={ - "one", - "two", - "three", - "and a final longer crap: four", - NULL -}; - - -struct WriteThis { - int counter; -}; - -static size_t read_callback(void *ptr, size_t size, size_t nmemb, void *userp) -{ - struct WriteThis *pooh = (struct WriteThis *)userp; - const char *data; - - if(size*nmemb < 1) - return 0; - - data = post[pooh->counter]; - - if(data) { - size_t len = strlen(data); - memcpy(ptr, data, len); - pooh->counter++; /* advance pointer */ - return len; - } - return 0; /* no more data left to deliver */ -} - -int test(char *URL) -{ - CURL *curl; - CURLcode res=CURLE_OK; - struct curl_slist *slist = NULL; - - struct WriteThis pooh; - pooh.counter = 0; - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - slist = curl_slist_append(slist, "Transfer-Encoding: chunked"); - if (slist == NULL) { - fprintf(stderr, "curl_slist_append() failed\n"); - curl_easy_cleanup(curl); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - /* First set the URL that is about to receive our POST. */ - curl_easy_setopt(curl, CURLOPT_URL, URL); - - /* Now specify we want to POST data */ - curl_easy_setopt(curl, CURLOPT_POST, 1L); - - /* we want to use our own read function */ - curl_easy_setopt(curl, CURLOPT_READFUNCTION, read_callback); - - /* pointer to pass to our read function */ - curl_easy_setopt(curl, CURLOPT_INFILE, &pooh); - - /* get verbose debug output please */ - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); - - /* include headers in the output */ - curl_easy_setopt(curl, CURLOPT_HEADER, 1L); - - /* enforce chunked transfer by setting the header */ - curl_easy_setopt(curl, CURLOPT_HTTPHEADER, slist); - - /* Perform the request, res will get the return code */ - res = curl_easy_perform(curl); - - /* clean up the headers list */ - if(slist) - curl_slist_free_all(slist); - - /* always cleanup */ - curl_easy_cleanup(curl); - curl_global_cleanup(); - - return res; -} diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib511.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib511.c deleted file mode 100644 index b0f455d..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib511.c +++ /dev/null @@ -1,40 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - -int test(char *URL) -{ - CURLcode res; - CURL *curl; - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - curl_easy_setopt(curl, CURLOPT_URL, URL); - curl_easy_setopt(curl, CURLOPT_FILETIME, 1L); - curl_easy_setopt(curl, CURLOPT_NOBODY, 1L); - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); - - res = curl_easy_perform(curl); - - curl_easy_cleanup(curl); - curl_global_cleanup(); - - return (int)res; -} diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib512.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib512.c deleted file mode 100644 index 0af9591..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib512.c +++ /dev/null @@ -1,64 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - -/* Test case code based on source in a bug report filed by James Bursa on - 28 Apr 2004 */ - -int test(char *URL) -{ - CURLcode code; - CURL *curl; - CURL *curl2; - int rc = 99; - - code = curl_global_init(CURL_GLOBAL_ALL); - if(code == CURLE_OK) { - - curl = curl_easy_init(); - if(curl) { - - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); - curl_easy_setopt(curl, CURLOPT_HEADER, 1L); - - curl2 = curl_easy_duphandle(curl); - if(curl2) { - - code = curl_easy_setopt(curl2, CURLOPT_URL, URL); - if(code == CURLE_OK) { - - code = curl_easy_perform(curl2); - if(code == CURLE_OK) - rc = 0; - else - rc = 1; - } - else - rc = 2; - - curl_easy_cleanup(curl2); - } - else - rc = 3; - - curl_easy_cleanup(curl); - } - else - rc = 4; - - curl_global_cleanup(); - } - else - rc = 5; - - return rc; -} - diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib513.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib513.c deleted file mode 100644 index d6f3756..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib513.c +++ /dev/null @@ -1,67 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - -static size_t read_callback(void *ptr, size_t size, size_t nmemb, void *userp) -{ - (void)ptr; - (void)size; - (void)nmemb; - (void)userp; - return CURL_READFUNC_ABORT; -} - -int test(char *URL) -{ - CURL *curl; - CURLcode res=CURLE_OK; - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - /* First set the URL that is about to receive our POST. */ - curl_easy_setopt(curl, CURLOPT_URL, URL); - - /* Now specify we want to POST data */ - curl_easy_setopt(curl, CURLOPT_POST, 1L); - - /* Set the expected POST size */ - curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, 1L); - - /* we want to use our own read function */ - curl_easy_setopt(curl, CURLOPT_READFUNCTION, read_callback); - - /* pointer to pass to our read function */ - curl_easy_setopt(curl, CURLOPT_INFILE, NULL); - - /* get verbose debug output please */ - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); - - /* include headers in the output */ - curl_easy_setopt(curl, CURLOPT_HEADER, 1L); - - /* Perform the request, res will get the return code */ - res = curl_easy_perform(curl); - - /* always cleanup */ - curl_easy_cleanup(curl); - curl_global_cleanup(); - - return (int)res; -} diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib514.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib514.c deleted file mode 100644 index 419b842..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib514.c +++ /dev/null @@ -1,63 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - -int test(char *URL) -{ - CURL *curl; - CURLcode res=CURLE_OK; - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - /* First set the URL that is about to receive our POST. */ - curl_easy_setopt(curl, CURLOPT_URL, URL); - - /* Based on a bug report by Niels van Tongeren on June 29, 2004: - - A weird situation occurs when request 1 is a POST request and the request - 2 is a HEAD request. For the POST request we set the CURLOPT_POSTFIELDS, - CURLOPT_POSTFIELDSIZE and CURLOPT_POST options. For the HEAD request we - set the CURLOPT_NOBODY option to '1'. - - */ - - curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "moo"); - curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, 3L); - curl_easy_setopt(curl, CURLOPT_POST, 1L); - - /* this is where transfer 1 would take place, but skip that and change - options right away instead */ - - curl_easy_setopt(curl, CURLOPT_NOBODY, 1L); - - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); /* show verbose for debug */ - curl_easy_setopt(curl, CURLOPT_HEADER, 1L); /* include header */ - - /* Now, we should be making a fine HEAD request */ - - /* Perform the request 2, res will get the return code */ - res = curl_easy_perform(curl); - - /* always cleanup */ - curl_easy_cleanup(curl); - curl_global_cleanup(); - - return (int)res; -} diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib515.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib515.c deleted file mode 100644 index 18df7c9..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib515.c +++ /dev/null @@ -1,44 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - -int test(char *URL) -{ - CURL *curl; - CURLcode res=CURLE_OK; - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - /* First set the URL that is about to receive our POST. */ - curl_easy_setopt(curl, CURLOPT_URL, URL); - curl_easy_setopt(curl, CURLOPT_POSTFIELDS, NULL); - curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, 0L); - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); /* show verbose for debug */ - curl_easy_setopt(curl, CURLOPT_HEADER, 1L); /* include header */ - - /* Now, we should be making a zero byte POST request */ - res = curl_easy_perform(curl); - - /* always cleanup */ - curl_easy_cleanup(curl); - curl_global_cleanup(); - - return (int)res; -} diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib516.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib516.c deleted file mode 100644 index 8295699..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib516.c +++ /dev/null @@ -1,43 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - -int test(char *URL) -{ - CURL *curl; - CURLcode res=CURLE_OK; - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - /* First set the URL that is about to receive our POST. */ - curl_easy_setopt(curl, CURLOPT_URL, URL); - curl_easy_setopt(curl, CURLOPT_HTTPPOST, NULL); - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); /* show verbose for debug */ - curl_easy_setopt(curl, CURLOPT_HEADER, 1L); /* include header */ - - /* Now, we should be making a zero byte POST request */ - res = curl_easy_perform(curl); - - /* always cleanup */ - curl_easy_cleanup(curl); - curl_global_cleanup(); - - return (int)res; -} diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib517.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib517.c deleted file mode 100644 index cdcd64b..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib517.c +++ /dev/null @@ -1,51 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - -const char *dates[]={ - "Sun, 06 Nov 1994 08:49:37 GMT", - "Sunday, 06-Nov-94 08:49:37 GMT", - "Sun Nov 6 08:49:37 1994", - "06 Nov 1994 08:49:37 GMT", - "06-Nov-94 08:49:37 GMT", - "Nov 6 08:49:37 1994", - "06 Nov 1994 08:49:37", - "06-Nov-94 08:49:37", - "1994 Nov 6 08:49:37", - "GMT 08:49:37 06-Nov-94 Sunday", - "94 6 Nov 08:49:37", - "1994 Nov 6", - "06-Nov-94", - "Sun Nov 6 94", - "1994.Nov.6", - "Sun/Nov/6/94/GMT", - "Sun, 06 Nov 1994 08:49:37 CET", - "06 Nov 1994 08:49:37 EST", - "Sun, 12 Sep 2004 15:05:58 -0700", - "Sat, 11 Sep 2004 21:32:11 +0200", - "20040912 15:05:58 -0700", - "20040911 +0200", -/* "2094 Nov 6", See ../data/test517 for details */ - NULL -}; - -int test(char *URL) -{ - int i; - - (void)URL; /* not used */ - - for(i=0; dates[i]; i++) { - printf("%d: %s => %ld\n", i, dates[i], (long)curl_getdate(dates[i], NULL)); - } - - return 0; -} diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib518.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib518.c deleted file mode 100644 index 41c3fe2..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib518.c +++ /dev/null @@ -1,506 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - -#ifdef HAVE_SYS_TYPES_H -#include <sys/types.h> -#endif -#ifdef HAVE_SYS_RESOURCE_H -#include <sys/resource.h> -#endif -#ifdef HAVE_FCNTL_H -#include <fcntl.h> -#endif -#ifdef HAVE_LIMITS_H -#include <limits.h> -#endif -#ifdef HAVE_STRING_H -#include <string.h> -#endif - -#ifndef FD_SETSIZE -#error "this test requires FD_SETSIZE" -#endif - -#define SAFETY_MARGIN (16) -#define NUM_OPEN (FD_SETSIZE + 10) -#define NUM_NEEDED (NUM_OPEN + SAFETY_MARGIN) - -#if defined(WIN32) || defined(_WIN32) || defined(MSDOS) -#define DEV_NULL "NUL" -#else -#define DEV_NULL "/dev/null" -#endif - -#if defined(HAVE_GETRLIMIT) && defined(HAVE_SETRLIMIT) - -static int *fd = NULL; -static struct rlimit num_open; -static char msgbuff[256]; - -static void store_errmsg(const char *msg, int err) -{ - if (!err) - sprintf(msgbuff, "%s", msg); - else - sprintf(msgbuff, "%s, errno %d, %s", msg, err, strerror(err)); -} - -static void close_file_descriptors(void) -{ - for (num_open.rlim_cur = 0; - num_open.rlim_cur < num_open.rlim_max; - num_open.rlim_cur++) - if (fd[num_open.rlim_cur] > 0) - close(fd[num_open.rlim_cur]); - free(fd); - fd = NULL; -} - -static int fopen_works(void) -{ - FILE *fpa[3]; - int i; - int ret = 1; - - for (i = 0; i < 3; i++) { - fpa[i] = NULL; - } - for (i = 0; i < 3; i++) { - fpa[i] = fopen(DEV_NULL, "r"); - if (fpa[i] == NULL) { - store_errmsg("fopen() failed", ERRNO); - fprintf(stderr, "%s\n", msgbuff); - ret = 0; - break; - } - } - for (i = 0; i < 3; i++) { - if (fpa[i] != NULL) - fclose(fpa[i]); - } - return ret; -} - -static int rlimit(int keep_open) -{ - int nitems, i; - int *memchunk = NULL; - char *fmt; - struct rlimit rl; - char strbuff[256]; - char strbuff1[81]; - char strbuff2[81]; - char fmt_u[] = "%u"; - char fmt_lu[] = "%lu"; -#ifdef HAVE_LONGLONG - char fmt_llu[] = "%llu"; - - if (sizeof(rl.rlim_max) > sizeof(long)) - fmt = fmt_llu; - else -#endif - fmt = (sizeof(rl.rlim_max) < sizeof(long))?fmt_u:fmt_lu; - - /* get initial open file limits */ - - if (getrlimit(RLIMIT_NOFILE, &rl) != 0) { - store_errmsg("getrlimit() failed", ERRNO); - fprintf(stderr, "%s\n", msgbuff); - return -1; - } - - /* show initial open file limits */ - -#ifdef RLIM_INFINITY - if (rl.rlim_cur == RLIM_INFINITY) - strcpy(strbuff, "INFINITY"); - else -#endif - sprintf(strbuff, fmt, rl.rlim_cur); - fprintf(stderr, "initial soft limit: %s\n", strbuff); - -#ifdef RLIM_INFINITY - if (rl.rlim_max == RLIM_INFINITY) - strcpy(strbuff, "INFINITY"); - else -#endif - sprintf(strbuff, fmt, rl.rlim_max); - fprintf(stderr, "initial hard limit: %s\n", strbuff); - - /* show our constants */ - - fprintf(stderr, "test518 FD_SETSIZE: %d\n", FD_SETSIZE); - fprintf(stderr, "test518 NUM_OPEN : %d\n", NUM_OPEN); - fprintf(stderr, "test518 NUM_NEEDED: %d\n", NUM_NEEDED); - - /* - * if soft limit and hard limit are different we ask the - * system to raise soft limit all the way up to the hard - * limit. Due to some other system limit the soft limit - * might not be raised up to the hard limit. So from this - * point the resulting soft limit is our limit. Trying to - * open more than soft limit file descriptors will fail. - */ - - if (rl.rlim_cur != rl.rlim_max) { - -#ifdef OPEN_MAX - if ((rl.rlim_cur > 0) && - (rl.rlim_cur < OPEN_MAX)) { - fprintf(stderr, "raising soft limit up to OPEN_MAX\n"); - rl.rlim_cur = OPEN_MAX; - if (setrlimit(RLIMIT_NOFILE, &rl) != 0) { - /* on failure don't abort just issue a warning */ - store_errmsg("setrlimit() failed", ERRNO); - fprintf(stderr, "%s\n", msgbuff); - msgbuff[0] = '\0'; - } - } -#endif - - fprintf(stderr, "raising soft limit up to hard limit\n"); - rl.rlim_cur = rl.rlim_max; - if (setrlimit(RLIMIT_NOFILE, &rl) != 0) { - /* on failure don't abort just issue a warning */ - store_errmsg("setrlimit() failed", ERRNO); - fprintf(stderr, "%s\n", msgbuff); - msgbuff[0] = '\0'; - } - - /* get current open file limits */ - - if (getrlimit(RLIMIT_NOFILE, &rl) != 0) { - store_errmsg("getrlimit() failed", ERRNO); - fprintf(stderr, "%s\n", msgbuff); - return -3; - } - - /* show current open file limits */ - -#ifdef RLIM_INFINITY - if (rl.rlim_cur == RLIM_INFINITY) - strcpy(strbuff, "INFINITY"); - else -#endif - sprintf(strbuff, fmt, rl.rlim_cur); - fprintf(stderr, "current soft limit: %s\n", strbuff); - -#ifdef RLIM_INFINITY - if (rl.rlim_max == RLIM_INFINITY) - strcpy(strbuff, "INFINITY"); - else -#endif - sprintf(strbuff, fmt, rl.rlim_max); - fprintf(stderr, "current hard limit: %s\n", strbuff); - - } /* (rl.rlim_cur != rl.rlim_max) */ - - /* - * test 518 is all about testing libcurl functionality - * when more than FD_SETSIZE file descriptors are open. - * This means that if for any reason we are not able to - * open more than FD_SETSIZE file descriptors then test - * 518 should not be run. - */ - - /* - * verify that soft limit is higher than NUM_NEEDED, - * which is the number of file descriptors we would - * try to open plus SAFETY_MARGIN to not exhaust the - * file descriptor pool - */ - - num_open.rlim_cur = NUM_NEEDED; - - if ((rl.rlim_cur > 0) && -#ifdef RLIM_INFINITY - (rl.rlim_cur != RLIM_INFINITY) && -#endif - (rl.rlim_cur <= num_open.rlim_cur)) { - sprintf(strbuff2, fmt, rl.rlim_cur); - sprintf(strbuff1, fmt, num_open.rlim_cur); - sprintf(strbuff, "fds needed %s > system limit %s", - strbuff1, strbuff2); - store_errmsg(strbuff, 0); - fprintf(stderr, "%s\n", msgbuff); - return -4; - } - - /* - * reserve a chunk of memory before opening file descriptors to - * avoid a low memory condition once the file descriptors are - * open. System conditions that could make the test fail should - * be addressed in the precheck phase. This chunk of memory shall - * be always free()ed before exiting the rlimit() function so - * that it becomes available to the test. - */ - - for (nitems = i = 1; nitems <= i; i *= 2) - nitems = i; - if (nitems > 0x7fff) - nitems = 0x40000; - do { - num_open.rlim_max = sizeof(*memchunk) * (size_t)nitems; - sprintf(strbuff, fmt, num_open.rlim_max); - fprintf(stderr, "allocating memchunk %s byte array\n", strbuff); - memchunk = malloc(sizeof(*memchunk) * (size_t)nitems); - if (!memchunk) { - fprintf(stderr, "memchunk, malloc() failed\n"); - nitems /= 2; - } - } while (nitems && !memchunk); - if (!memchunk) { - store_errmsg("memchunk, malloc() failed", ERRNO); - fprintf(stderr, "%s\n", msgbuff); - return -5; - } - - /* initialize it to fight lazy allocation */ - - fprintf(stderr, "initializing memchunk array\n"); - - for (i = 0; i < nitems; i++) - memchunk[i] = -1; - - /* set the number of file descriptors we will try to open */ - - num_open.rlim_max = NUM_OPEN; - - /* verify that we won't overflow size_t in malloc() */ - - if ((size_t)(num_open.rlim_max) > ((size_t)-1) / sizeof(*fd)) { - sprintf(strbuff1, fmt, num_open.rlim_max); - sprintf(strbuff, "unable to allocate an array for %s " - "file descriptors, would overflow size_t", strbuff1); - store_errmsg(strbuff, 0); - fprintf(stderr, "%s\n", msgbuff); - free(memchunk); - return -6; - } - - /* allocate array for file descriptors */ - - sprintf(strbuff, fmt, num_open.rlim_max); - fprintf(stderr, "allocating array for %s file descriptors\n", strbuff); - - fd = malloc(sizeof(*fd) * (size_t)(num_open.rlim_max)); - if (!fd) { - store_errmsg("fd, malloc() failed", ERRNO); - fprintf(stderr, "%s\n", msgbuff); - free(memchunk); - return -7; - } - - /* initialize it to fight lazy allocation */ - - fprintf(stderr, "initializing fd array\n"); - - for (num_open.rlim_cur = 0; - num_open.rlim_cur < num_open.rlim_max; - num_open.rlim_cur++) - fd[num_open.rlim_cur] = -1; - - sprintf(strbuff, fmt, num_open.rlim_max); - fprintf(stderr, "trying to open %s file descriptors\n", strbuff); - - /* open a dummy descriptor */ - - fd[0] = open(DEV_NULL, O_RDONLY); - if (fd[0] < 0) { - sprintf(strbuff, "opening of %s failed", DEV_NULL); - store_errmsg(strbuff, ERRNO); - fprintf(stderr, "%s\n", msgbuff); - free(fd); - fd = NULL; - free(memchunk); - return -8; - } - - /* create a bunch of file descriptors */ - - for (num_open.rlim_cur = 1; - num_open.rlim_cur < num_open.rlim_max; - num_open.rlim_cur++) { - - fd[num_open.rlim_cur] = dup(fd[0]); - - if (fd[num_open.rlim_cur] < 0) { - - fd[num_open.rlim_cur] = -1; - - sprintf(strbuff1, fmt, num_open.rlim_cur); - sprintf(strbuff, "dup() attempt %s failed", strbuff1); - fprintf(stderr, "%s\n", strbuff); - - sprintf(strbuff1, fmt, num_open.rlim_cur); - sprintf(strbuff, "fds system limit seems close to %s", strbuff1); - fprintf(stderr, "%s\n", strbuff); - - num_open.rlim_max = NUM_NEEDED; - - sprintf(strbuff2, fmt, num_open.rlim_max); - sprintf(strbuff1, fmt, num_open.rlim_cur); - sprintf(strbuff, "fds needed %s > system limit %s", - strbuff2, strbuff1); - store_errmsg(strbuff, 0); - fprintf(stderr, "%s\n", msgbuff); - - for (num_open.rlim_cur = 0; - fd[num_open.rlim_cur] >= 0; - num_open.rlim_cur++) - close(fd[num_open.rlim_cur]); - free(fd); - fd = NULL; - free(memchunk); - return -9; - - } - - } - - sprintf(strbuff, fmt, num_open.rlim_max); - fprintf(stderr, "%s file descriptors open\n", strbuff); - -#if !defined(HAVE_POLL_FINE) && \ - !defined(USE_WINSOCK) && \ - !defined(TPF) - - /* - * when using select() instead of poll() we cannot test - * libcurl functionality with a socket number equal or - * greater than FD_SETSIZE. In any case, macro VERIFY_SOCK - * in lib/select.c enforces this check and protects libcurl - * from a possible crash. The effect of this protection - * is that test 518 will always fail, since the actual - * call to select() never takes place. We skip test 518 - * with an indication that select limit would be exceeded. - */ - - num_open.rlim_cur = FD_SETSIZE - SAFETY_MARGIN; - if (num_open.rlim_max > num_open.rlim_cur) { - sprintf(strbuff, "select limit is FD_SETSIZE %d", FD_SETSIZE); - store_errmsg(strbuff, 0); - fprintf(stderr, "%s\n", msgbuff); - close_file_descriptors(); - free(memchunk); - return -10; - } - - num_open.rlim_cur = FD_SETSIZE - SAFETY_MARGIN; - for (rl.rlim_cur = 0; - rl.rlim_cur < num_open.rlim_max; - rl.rlim_cur++) { - if ((fd[rl.rlim_cur] > 0) && - ((unsigned int)fd[rl.rlim_cur] > num_open.rlim_cur)) { - sprintf(strbuff, "select limit is FD_SETSIZE %d", FD_SETSIZE); - store_errmsg(strbuff, 0); - fprintf(stderr, "%s\n", msgbuff); - close_file_descriptors(); - free(memchunk); - return -11; - } - } - -#endif /* using a FD_SETSIZE bound select() */ - - /* - * Old or 'backwards compatible' implementations of stdio do not allow - * handling of streams with an underlying file descriptor number greater - * than 255, even when allowing high numbered file descriptors for sockets. - * At this point we have a big number of file descriptors which have been - * opened using dup(), so lets test the stdio implementation and discover - * if it is capable of fopen()ing some additional files. - */ - - if (!fopen_works()) { - sprintf(strbuff1, fmt, num_open.rlim_max); - sprintf(strbuff, "stdio fopen() fails with %s fds open()", - strbuff1); - fprintf(stderr, "%s\n", msgbuff); - sprintf(strbuff, "stdio fopen() fails with lots of fds open()"); - store_errmsg(strbuff, 0); - close_file_descriptors(); - free(memchunk); - return -12; - } - - /* free the chunk of memory we were reserving so that it - becomes becomes available to the test */ - - free(memchunk); - - /* close file descriptors unless instructed to keep them */ - - if (!keep_open) { - close_file_descriptors(); - } - - return 0; -} - -int test(char *URL) -{ - CURLcode res; - CURL *curl; - - if(!strcmp(URL, "check")) { - /* used by the test script to ask if we can run this test or not */ - if(rlimit(FALSE)) { - fprintf(stdout, "rlimit problem: %s\n", msgbuff); - return 1; - } - return 0; /* sure, run this! */ - } - - if (rlimit(TRUE)) { - /* failure */ - return TEST_ERR_MAJOR_BAD; - } - - /* run the test with the bunch of open file descriptors - and close them all once the test is over */ - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - close_file_descriptors(); - return TEST_ERR_MAJOR_BAD; - } - - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - close_file_descriptors(); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - curl_easy_setopt(curl, CURLOPT_URL, URL); - curl_easy_setopt(curl, CURLOPT_HEADER, 1L); - - res = curl_easy_perform(curl); - - close_file_descriptors(); - curl_easy_cleanup(curl); - curl_global_cleanup(); - - return (int)res; -} - -#else /* defined(HAVE_GETRLIMIT) && defined(HAVE_SETRLIMIT) */ - -int test(char *URL) -{ - (void)URL; - printf("system lacks necessary system function(s)"); - return 1; /* skip test */ -} - -#endif /* defined(HAVE_GETRLIMIT) && defined(HAVE_SETRLIMIT) */ diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib519.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib519.c deleted file mode 100644 index ce44048..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib519.c +++ /dev/null @@ -1,47 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - -int test(char *URL) -{ - CURLcode res; - CURL *curl; - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - curl_easy_setopt(curl, CURLOPT_URL, URL); - curl_easy_setopt(curl, CURLOPT_USERPWD, "monster:underbed"); - curl_easy_setopt(curl, CURLOPT_HEADER, 1L); - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); - - /* get first page */ - res = curl_easy_perform(curl); - - curl_easy_setopt(curl, CURLOPT_USERPWD, "anothermonster:inwardrobe"); - - /* get second page */ - res = curl_easy_perform(curl); - - curl_easy_cleanup(curl); - curl_global_cleanup(); - - return (int)res; -} - diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib520.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib520.c deleted file mode 100644 index 46cad41..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib520.c +++ /dev/null @@ -1,39 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - -int test(char *URL) -{ - CURLcode res; - CURL *curl; - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - curl_easy_setopt(curl, CURLOPT_URL, URL); - curl_easy_setopt(curl, CURLOPT_FILETIME, 1L); - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); - - res = curl_easy_perform(curl); - - curl_easy_cleanup(curl); - curl_global_cleanup(); - - return (int)res; -} diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib521.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib521.c deleted file mode 100644 index 346ece0..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib521.c +++ /dev/null @@ -1,41 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - -int test(char *URL) -{ - CURLcode res; - CURL *curl; - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - curl_easy_setopt(curl, CURLOPT_URL, URL); - curl_easy_setopt(curl, CURLOPT_PORT, atoi(libtest_arg2)); - curl_easy_setopt(curl, CURLOPT_USERPWD, "xxx:yyy"); - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); - - res = curl_easy_perform(curl); - - curl_easy_cleanup(curl); - curl_global_cleanup(); - - return (int)res; -} - diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib523.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib523.c deleted file mode 100644 index 9f485ff..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib523.c +++ /dev/null @@ -1,42 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - -int test(char *URL) -{ - CURLcode res; - CURL *curl; - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - curl_easy_setopt(curl, CURLOPT_PROXY, libtest_arg2); - curl_easy_setopt(curl, CURLOPT_URL, URL); - curl_easy_setopt(curl, CURLOPT_PORT, 19999L); - curl_easy_setopt(curl, CURLOPT_USERPWD, "xxx:yyy"); - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); - - res = curl_easy_perform(curl); - - curl_easy_cleanup(curl); - curl_global_cleanup(); - - return (int)res; -} - diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib524.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib524.c deleted file mode 100644 index 2fde663..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib524.c +++ /dev/null @@ -1,40 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - -int test(char *URL) -{ - CURLcode res; - CURL *curl; - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - curl_easy_setopt(curl, CURLOPT_URL, URL); - curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L); - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); - - res = curl_easy_perform(curl); - - curl_easy_cleanup(curl); - curl_global_cleanup(); - - return (int)res; -} - diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib525.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib525.c deleted file mode 100644 index 154c209..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib525.c +++ /dev/null @@ -1,201 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - -#include <sys/types.h> -#include <sys/stat.h> -#include <fcntl.h> - -#include "testutil.h" - -#define MAIN_LOOP_HANG_TIMEOUT 90 * 1000 -#define MULTI_PERFORM_HANG_TIMEOUT 60 * 1000 - -int test(char *URL) -{ - int res = 0; - CURL *curl; - FILE *hd_src ; - int hd ; - int error; - struct_stat file_info; - int running; - char done=FALSE; - CURLM *m; - struct timeval ml_start; - struct timeval mp_start; - char ml_timedout = FALSE; - char mp_timedout = FALSE; - - if (!libtest_arg2) { - fprintf(stderr, "Usage: lib525 [url] [uploadfile]\n"); - return -1; - } - - /* get the file size of the local file */ - hd = open(libtest_arg2, O_RDONLY) ; - fstat(hd, &file_info); - close(hd) ; - - /* get a FILE * of the same file, could also be made with - fdopen() from the previous descriptor, but hey this is just - an example! */ - hd_src = fopen(libtest_arg2, "rb"); - if(NULL == hd_src) { - error = ERRNO; - fprintf(stderr, "fopen() failed with error: %d %s\n", - error, strerror(error)); - fprintf(stderr, "Error opening file: %s\n", libtest_arg2); - return TEST_ERR_MAJOR_BAD; - } - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - fclose(hd_src); - return TEST_ERR_MAJOR_BAD; - } - - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - fclose(hd_src); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - /* enable uploading */ - curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L); - - /* specify target */ - curl_easy_setopt(curl,CURLOPT_URL, URL); - - /* go verbose */ - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); - - /* use active FTP */ - curl_easy_setopt(curl, CURLOPT_FTPPORT, "-"); - - /* now specify which file to upload */ - curl_easy_setopt(curl, CURLOPT_READDATA, hd_src); - - /* NOTE: if you want this code to work on Windows with libcurl as a DLL, you - MUST also provide a read callback with CURLOPT_READFUNCTION. Failing to - do so will give you a crash since a DLL may not use the variable's memory - when passed in to it from an app like this. */ - - /* Set the size of the file to upload (optional). If you give a *_LARGE - option you MUST make sure that the type of the passed-in argument is a - curl_off_t. If you use CURLOPT_INFILESIZE (without _LARGE) you must - make sure that to pass in a type 'long' argument. */ - curl_easy_setopt(curl, CURLOPT_INFILESIZE_LARGE, - (curl_off_t)file_info.st_size); - - if ((m = curl_multi_init()) == NULL) { - fprintf(stderr, "curl_multi_init() failed\n"); - curl_easy_cleanup(curl); - curl_global_cleanup(); - fclose(hd_src); - return TEST_ERR_MAJOR_BAD; - } - - if ((res = (int)curl_multi_add_handle(m, curl)) != CURLM_OK) { - fprintf(stderr, "curl_multi_add_handle() failed, " - "with code %d\n", res); - curl_multi_cleanup(m); - curl_easy_cleanup(curl); - curl_global_cleanup(); - fclose(hd_src); - return TEST_ERR_MAJOR_BAD; - } - - ml_timedout = FALSE; - ml_start = tutil_tvnow(); - - while (!done) { - fd_set rd, wr, exc; - int max_fd; - struct timeval interval; - - interval.tv_sec = 1; - interval.tv_usec = 0; - - if (tutil_tvdiff(tutil_tvnow(), ml_start) > - MAIN_LOOP_HANG_TIMEOUT) { - ml_timedout = TRUE; - break; - } - mp_timedout = FALSE; - mp_start = tutil_tvnow(); - - while (res == CURLM_CALL_MULTI_PERFORM) { - res = (int)curl_multi_perform(m, &running); - if (tutil_tvdiff(tutil_tvnow(), mp_start) > - MULTI_PERFORM_HANG_TIMEOUT) { - mp_timedout = TRUE; - break; - } - if (running <= 0) { - done = TRUE; - break; - } - } - if (mp_timedout || done) - break; - - if (res != CURLM_OK) { - fprintf(stderr, "not okay???\n"); - break; - } - - FD_ZERO(&rd); - FD_ZERO(&wr); - FD_ZERO(&exc); - max_fd = 0; - - if (curl_multi_fdset(m, &rd, &wr, &exc, &max_fd) != CURLM_OK) { - fprintf(stderr, "unexpected failured of fdset.\n"); - res = 189; - break; - } - - if (select_test(max_fd+1, &rd, &wr, &exc, &interval) == -1) { - fprintf(stderr, "bad select??\n"); - res = 195; - break; - } - - res = CURLM_CALL_MULTI_PERFORM; - } - - if (ml_timedout || mp_timedout) { - if (ml_timedout) fprintf(stderr, "ml_timedout\n"); - if (mp_timedout) fprintf(stderr, "mp_timedout\n"); - fprintf(stderr, "ABORTING TEST, since it seems " - "that it would have run forever.\n"); - res = TEST_ERR_RUNS_FOREVER; - } - -#ifdef LIB529 - /* test 529 */ - curl_multi_remove_handle(m, curl); - curl_multi_cleanup(m); - curl_easy_cleanup(curl); -#else - /* test 525 */ - curl_multi_remove_handle(m, curl); - curl_easy_cleanup(curl); - curl_multi_cleanup(m); -#endif - - fclose(hd_src); /* close the local file */ - - curl_global_cleanup(); - return res; -} diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib526.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib526.c deleted file mode 100644 index 8951a74..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib526.c +++ /dev/null @@ -1,212 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -/* - * This code sets up multiple easy handles that transfer a single file from - * the same URL, in a serial manner after each other. Due to the connection - * sharing within the multi handle all transfers are performed on the same - * persistent connection. - * - * This source code is used for lib526, lib527 and lib532 with only #ifdefs - * controlling the small differences. - * - * - lib526 closes all easy handles after - * they all have transfered the file over the single connection - * - lib527 closes each easy handle after each single transfer. - * - lib532 uses only a single easy handle that is removed, reset and then - * re-added for each transfer - * - * Test case 526, 527 and 532 use FTP, while test 528 uses the lib526 tool but - * with HTTP. - */ - -#include "test.h" - -#include <sys/types.h> -#include <sys/stat.h> -#include <fcntl.h> - -#include "testutil.h" - -#define MAIN_LOOP_HANG_TIMEOUT 90 * 1000 -#define MULTI_PERFORM_HANG_TIMEOUT 60 * 1000 - -#define NUM_HANDLES 4 - -int test(char *URL) -{ - int res = 0; - CURL *curl[NUM_HANDLES]; - int running; - char done=FALSE; - CURLM *m; - int current=0; - int i, j; - struct timeval ml_start; - struct timeval mp_start; - char ml_timedout = FALSE; - char mp_timedout = FALSE; - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - /* get NUM_HANDLES easy handles */ - for(i=0; i < NUM_HANDLES; i++) { - curl[i] = curl_easy_init(); - if(!curl[i]) { - fprintf(stderr, "curl_easy_init() failed " - "on handle #%d\n", i); - for (j=i-1; j >= 0; j--) { - curl_easy_cleanup(curl[j]); - } - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD + i; - } - curl_easy_setopt(curl[i], CURLOPT_URL, URL); - - /* go verbose */ - curl_easy_setopt(curl[i], CURLOPT_VERBOSE, 1L); - } - - if ((m = curl_multi_init()) == NULL) { - fprintf(stderr, "curl_multi_init() failed\n"); - for(i=0; i < NUM_HANDLES; i++) { - curl_easy_cleanup(curl[i]); - } - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - if ((res = (int)curl_multi_add_handle(m, curl[current])) != CURLM_OK) { - fprintf(stderr, "curl_multi_add_handle() failed, " - "with code %d\n", res); - curl_multi_cleanup(m); - for(i=0; i < NUM_HANDLES; i++) { - curl_easy_cleanup(curl[i]); - } - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - ml_timedout = FALSE; - ml_start = tutil_tvnow(); - - fprintf(stderr, "Start at URL 0\n"); - - while (!done) { - fd_set rd, wr, exc; - int max_fd; - struct timeval interval; - - interval.tv_sec = 1; - interval.tv_usec = 0; - - if (tutil_tvdiff(tutil_tvnow(), ml_start) > - MAIN_LOOP_HANG_TIMEOUT) { - ml_timedout = TRUE; - break; - } - mp_timedout = FALSE; - mp_start = tutil_tvnow(); - - while (res == CURLM_CALL_MULTI_PERFORM) { - res = (int)curl_multi_perform(m, &running); - if (tutil_tvdiff(tutil_tvnow(), mp_start) > - MULTI_PERFORM_HANG_TIMEOUT) { - mp_timedout = TRUE; - break; - } - if (running <= 0) { -#ifdef LIB527 - /* NOTE: this code does not remove the handle from the multi handle - here, which would be the nice, sane and documented way of working. - This however tests that the API survives this abuse gracefully. */ - curl_easy_cleanup(curl[current]); -#endif - if(++current < NUM_HANDLES) { - fprintf(stderr, "Advancing to URL %d\n", current); -#ifdef LIB532 - /* first remove the only handle we use */ - curl_multi_remove_handle(m, curl[0]); - - /* make us re-use the same handle all the time, and try resetting - the handle first too */ - curl_easy_reset(curl[0]); - curl_easy_setopt(curl[0], CURLOPT_URL, URL); - curl_easy_setopt(curl[0], CURLOPT_VERBOSE, 1L); - - /* re-add it */ - res = (int)curl_multi_add_handle(m, curl[0]); -#else - res = (int)curl_multi_add_handle(m, curl[current]); -#endif - if(res) { - fprintf(stderr, "add handle failed: %d.\n", res); - res = 243; - break; - } - } - else - done = TRUE; /* bail out */ - break; - } - } - if (mp_timedout || done) - break; - - if (res != CURLM_OK) { - fprintf(stderr, "not okay???\n"); - break; - } - - FD_ZERO(&rd); - FD_ZERO(&wr); - FD_ZERO(&exc); - max_fd = 0; - - if (curl_multi_fdset(m, &rd, &wr, &exc, &max_fd) != CURLM_OK) { - fprintf(stderr, "unexpected failured of fdset.\n"); - res = 189; - break; - } - - if (select_test(max_fd+1, &rd, &wr, &exc, &interval) == -1) { - fprintf(stderr, "bad select??\n"); - res = 195; - break; - } - - res = CURLM_CALL_MULTI_PERFORM; - } - - if (ml_timedout || mp_timedout) { - if (ml_timedout) fprintf(stderr, "ml_timedout\n"); - if (mp_timedout) fprintf(stderr, "mp_timedout\n"); - fprintf(stderr, "ABORTING TEST, since it seems " - "that it would have run forever.\n"); - res = TEST_ERR_RUNS_FOREVER; - } - -#ifndef LIB527 - /* get NUM_HANDLES easy handles */ - for(i=0; i < NUM_HANDLES; i++) { -#ifdef LIB526 - curl_multi_remove_handle(m, curl[i]); -#endif - curl_easy_cleanup(curl[i]); - } -#endif - curl_multi_cleanup(m); - - curl_global_cleanup(); - return res; -} diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib530.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib530.c deleted file mode 100644 index af7d00d..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib530.c +++ /dev/null @@ -1,175 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - -#ifdef HAVE_SYS_TYPES_H -#include <sys/types.h> -#endif -#ifdef HAVE_SYS_STAT_H -#include <sys/stat.h> -#endif -#ifdef HAVE_STRING_H -#include <string.h> -#endif - -#include "testutil.h" - -#define MAIN_LOOP_HANG_TIMEOUT 90 * 1000 -#define MULTI_PERFORM_HANG_TIMEOUT 60 * 1000 - -#define NUM_HANDLES 4 - -int test(char *URL) -{ - int res = 0; - CURL *curl[NUM_HANDLES]; - int running; - char done=FALSE; - CURLM *m; - int i, j; - struct timeval ml_start; - struct timeval mp_start; - char ml_timedout = FALSE; - char mp_timedout = FALSE; - char target_url[256]; - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - if ((m = curl_multi_init()) == NULL) { - fprintf(stderr, "curl_multi_init() failed\n"); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - /* get NUM_HANDLES easy handles */ - for(i=0; i < NUM_HANDLES; i++) { - curl[i] = curl_easy_init(); - if(!curl[i]) { - fprintf(stderr, "curl_easy_init() failed " - "on handle #%d\n", i); - for (j=i-1; j >= 0; j--) { - curl_multi_remove_handle(m, curl[j]); - curl_easy_cleanup(curl[j]); - } - curl_multi_cleanup(m); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD + i; - } - sprintf(target_url, "%s%04i", URL, i + 1); - target_url[sizeof(target_url) - 1] = '\0'; - curl_easy_setopt(curl[i], CURLOPT_URL, target_url); - - /* go verbose */ - curl_easy_setopt(curl[i], CURLOPT_VERBOSE, 1L); - - /* include headers */ - curl_easy_setopt(curl[i], CURLOPT_HEADER, 1L); - - /* add handle to multi */ - if ((res = (int)curl_multi_add_handle(m, curl[i])) != CURLM_OK) { - fprintf(stderr, "curl_multi_add_handle() failed, " - "on handle #%d with code %d\n", i, res); - curl_easy_cleanup(curl[i]); - for (j=i-1; j >= 0; j--) { - curl_multi_remove_handle(m, curl[j]); - curl_easy_cleanup(curl[j]); - } - curl_multi_cleanup(m); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD + i; - } - } - - curl_multi_setopt(m, CURLMOPT_PIPELINING, 1L); - - ml_timedout = FALSE; - ml_start = tutil_tvnow(); - - fprintf(stderr, "Start at URL 0\n"); - - while (!done) { - fd_set rd, wr, exc; - int max_fd; - struct timeval interval; - - interval.tv_sec = 1; - interval.tv_usec = 0; - - if (tutil_tvdiff(tutil_tvnow(), ml_start) > - MAIN_LOOP_HANG_TIMEOUT) { - ml_timedout = TRUE; - break; - } - mp_timedout = FALSE; - mp_start = tutil_tvnow(); - - while (res == CURLM_CALL_MULTI_PERFORM) { - res = (int)curl_multi_perform(m, &running); - if (tutil_tvdiff(tutil_tvnow(), mp_start) > - MULTI_PERFORM_HANG_TIMEOUT) { - mp_timedout = TRUE; - break; - } - if (running <= 0) { - done = TRUE; /* bail out */ - break; - } - } - if (mp_timedout || done) - break; - - if (res != CURLM_OK) { - fprintf(stderr, "not okay???\n"); - break; - } - - FD_ZERO(&rd); - FD_ZERO(&wr); - FD_ZERO(&exc); - max_fd = 0; - - if (curl_multi_fdset(m, &rd, &wr, &exc, &max_fd) != CURLM_OK) { - fprintf(stderr, "unexpected failured of fdset.\n"); - res = 189; - break; - } - - if (select_test(max_fd+1, &rd, &wr, &exc, &interval) == -1) { - fprintf(stderr, "bad select??\n"); - res = 195; - break; - } - - res = CURLM_CALL_MULTI_PERFORM; - } - - if (ml_timedout || mp_timedout) { - if (ml_timedout) fprintf(stderr, "ml_timedout\n"); - if (mp_timedout) fprintf(stderr, "mp_timedout\n"); - fprintf(stderr, "ABORTING TEST, since it seems " - "that it would have run forever.\n"); - res = TEST_ERR_RUNS_FOREVER; - } - - /* cleanup NUM_HANDLES easy handles */ - for(i=0; i < NUM_HANDLES; i++) { - curl_multi_remove_handle(m, curl[i]); - curl_easy_cleanup(curl[i]); - } - - curl_multi_cleanup(m); - curl_global_cleanup(); - - return res; -} diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib533.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib533.c deleted file mode 100644 index 71c43c2..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib533.c +++ /dev/null @@ -1,163 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -/* used for test case 533, 534 and 535 */ - -#include "test.h" - -#include <sys/types.h> -#include <sys/stat.h> -#include <fcntl.h> - -#include "testutil.h" - -#define MAIN_LOOP_HANG_TIMEOUT 90 * 1000 -#define MULTI_PERFORM_HANG_TIMEOUT 60 * 1000 - -int test(char *URL) -{ - int res = 0; - CURL *curl; - int running; - char done=FALSE; - CURLM *m; - int current=0; - struct timeval ml_start; - struct timeval mp_start; - char ml_timedout = FALSE; - char mp_timedout = FALSE; - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - curl_easy_setopt(curl, CURLOPT_URL, URL); - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1); - curl_easy_setopt(curl, CURLOPT_FAILONERROR, 1); - - if ((m = curl_multi_init()) == NULL) { - fprintf(stderr, "curl_multi_init() failed\n"); - curl_easy_cleanup(curl); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - if ((res = (int)curl_multi_add_handle(m, curl)) != CURLM_OK) { - fprintf(stderr, "curl_multi_add_handle() failed, " - "with code %d\n", res); - curl_multi_cleanup(m); - curl_easy_cleanup(curl); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - ml_timedout = FALSE; - ml_start = tutil_tvnow(); - - fprintf(stderr, "Start at URL 0\n"); - - while (!done) { - fd_set rd, wr, exc; - int max_fd; - struct timeval interval; - - interval.tv_sec = 1; - interval.tv_usec = 0; - - if (tutil_tvdiff(tutil_tvnow(), ml_start) > - MAIN_LOOP_HANG_TIMEOUT) { - ml_timedout = TRUE; - break; - } - mp_timedout = FALSE; - mp_start = tutil_tvnow(); - - while (res == CURLM_CALL_MULTI_PERFORM) { - res = (int)curl_multi_perform(m, &running); - if (tutil_tvdiff(tutil_tvnow(), mp_start) > - MULTI_PERFORM_HANG_TIMEOUT) { - mp_timedout = TRUE; - break; - } - if (running <= 0) { - if(!current++) { - fprintf(stderr, "Advancing to URL 1\n"); - /* remove the handle we use */ - curl_multi_remove_handle(m, curl); - - /* make us re-use the same handle all the time, and try resetting - the handle first too */ - curl_easy_reset(curl); - curl_easy_setopt(curl, CURLOPT_URL, libtest_arg2); - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1); - curl_easy_setopt(curl, CURLOPT_FAILONERROR, 1); - - /* re-add it */ - res = (int)curl_multi_add_handle(m, curl); - if(res) { - fprintf(stderr, "add handle failed: %d.\n", res); - res = 243; - break; - } - } - else - done = TRUE; /* bail out */ - break; - } - } - if (mp_timedout || done) - break; - - if (res != CURLM_OK) { - fprintf(stderr, "not okay???\n"); - break; - } - - FD_ZERO(&rd); - FD_ZERO(&wr); - FD_ZERO(&exc); - max_fd = 0; - - if (curl_multi_fdset(m, &rd, &wr, &exc, &max_fd) != CURLM_OK) { - fprintf(stderr, "unexpected failured of fdset.\n"); - res = 189; - break; - } - - if (select_test(max_fd+1, &rd, &wr, &exc, &interval) == -1) { - fprintf(stderr, "bad select??\n"); - res = 195; - break; - } - - res = CURLM_CALL_MULTI_PERFORM; - } - - if (ml_timedout || mp_timedout) { - if (ml_timedout) fprintf(stderr, "ml_timedout\n"); - if (mp_timedout) fprintf(stderr, "mp_timedout\n"); - fprintf(stderr, "ABORTING TEST, since it seems " - "that it would have run forever.\n"); - res = TEST_ERR_RUNS_FOREVER; - } - - curl_easy_cleanup(curl); - curl_multi_cleanup(m); - curl_global_cleanup(); - - return res; -} diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib536.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib536.c deleted file mode 100644 index 9e764a9..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib536.c +++ /dev/null @@ -1,129 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - -#include <sys/types.h> -#include <sys/stat.h> -#include <fcntl.h> - -#include "testutil.h" - -#define MAIN_LOOP_HANG_TIMEOUT 90 * 1000 -#define MULTI_PERFORM_HANG_TIMEOUT 60 * 1000 - -static CURLMcode perform(CURLM * multi) -{ - int handles, maxfd; - CURLMcode code; - fd_set fdread, fdwrite, fdexcep; - struct timeval mp_start; - char mp_timedout = FALSE; - - mp_timedout = FALSE; - mp_start = tutil_tvnow(); - - for (;;) { - code = curl_multi_perform(multi, &handles); - if (tutil_tvdiff(tutil_tvnow(), mp_start) > - MULTI_PERFORM_HANG_TIMEOUT) { - mp_timedout = TRUE; - break; - } - if (handles <= 0) - return CURLM_OK; - - switch (code) { - case CURLM_OK: - break; - case CURLM_CALL_MULTI_PERFORM: - continue; - default: - return code; - } - - FD_ZERO(&fdread); - FD_ZERO(&fdwrite); - FD_ZERO(&fdexcep); - curl_multi_fdset(multi, &fdread, &fdwrite, &fdexcep, &maxfd); - if (maxfd < 0) - return (CURLMcode) ~CURLM_OK; - if (select(maxfd + 1, &fdread, &fdwrite, &fdexcep, 0) == -1) - return (CURLMcode) ~CURLM_OK; - } - - /* We only reach this point if (mp_timedout) */ - if (mp_timedout) fprintf(stderr, "mp_timedout\n"); - fprintf(stderr, "ABORTING TEST, since it seems " - "that it would have run forever.\n"); - return (CURLMcode) ~CURLM_OK; -} - -int test(char *URL) -{ - CURLM *multi; - CURL *easy; - int res = 0; - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - if ((multi = curl_multi_init()) == NULL) { - fprintf(stderr, "curl_multi_init() failed\n"); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - if ((easy = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_multi_cleanup(multi); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - curl_multi_setopt(multi, CURLMOPT_PIPELINING, 1L); - - curl_easy_setopt(easy, CURLOPT_WRITEFUNCTION, fwrite); - curl_easy_setopt(easy, CURLOPT_FAILONERROR, 1L); - curl_easy_setopt(easy, CURLOPT_URL, URL); - - if (curl_multi_add_handle(multi, easy) != CURLM_OK) { - printf("curl_multi_add_handle() failed\n"); - res = TEST_ERR_MAJOR_BAD; - } else { - if (perform(multi) != CURLM_OK) - printf("retrieve 1 failed\n"); - - curl_multi_remove_handle(multi, easy); - } - curl_easy_reset(easy); - - curl_easy_setopt(easy, CURLOPT_FAILONERROR, 1L); - curl_easy_setopt(easy, CURLOPT_URL, libtest_arg2); - - if (curl_multi_add_handle(multi, easy) != CURLM_OK) { - printf("curl_multi_add_handle() 2 failed\n"); - res = TEST_ERR_MAJOR_BAD; - } else { - if (perform(multi) != CURLM_OK) - printf("retrieve 2 failed\n"); - - curl_multi_remove_handle(multi, easy); - } - curl_easy_cleanup(easy); - curl_multi_cleanup(multi); - curl_global_cleanup(); - - printf("Finished!\n"); - - return res; -} diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib537.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib537.c deleted file mode 100644 index f3b42e7..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib537.c +++ /dev/null @@ -1,509 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - -#ifdef HAVE_SYS_TYPES_H -#include <sys/types.h> -#endif -#ifdef HAVE_SYS_RESOURCE_H -#include <sys/resource.h> -#endif -#ifdef HAVE_FCNTL_H -#include <fcntl.h> -#endif -#ifdef HAVE_LIMITS_H -#include <limits.h> -#endif -#ifdef HAVE_STRING_H -#include <string.h> -#endif - -#if !defined(HAVE_POLL_FINE) && \ - !defined(USE_WINSOCK) && \ - !defined(TPF) && \ - !defined(FD_SETSIZE) -#error "this test requires FD_SETSIZE" -#endif - -#define SAFETY_MARGIN (10) - -#if defined(WIN32) || defined(_WIN32) || defined(MSDOS) -#define DEV_NULL "NUL" -#else -#define DEV_NULL "/dev/null" -#endif - -#if defined(HAVE_GETRLIMIT) && defined(HAVE_SETRLIMIT) - -static int *fd = NULL; -static struct rlimit num_open; -static char msgbuff[256]; - -static void store_errmsg(const char *msg, int err) -{ - if (!err) - sprintf(msgbuff, "%s", msg); - else - sprintf(msgbuff, "%s, errno %d, %s", msg, err, strerror(err)); -} - -static void close_file_descriptors(void) -{ - for (num_open.rlim_cur = 0; - num_open.rlim_cur < num_open.rlim_max; - num_open.rlim_cur++) - if (fd[num_open.rlim_cur] > 0) - close(fd[num_open.rlim_cur]); - free(fd); - fd = NULL; -} - -static int fopen_works(void) -{ - FILE *fpa[3]; - int i; - int ret = 1; - - for (i = 0; i < 3; i++) { - fpa[i] = NULL; - } - for (i = 0; i < 3; i++) { - fpa[i] = fopen(DEV_NULL, "r"); - if (fpa[i] == NULL) { - store_errmsg("fopen() failed", ERRNO); - fprintf(stderr, "%s\n", msgbuff); - ret = 0; - break; - } - } - for (i = 0; i < 3; i++) { - if (fpa[i] != NULL) - fclose(fpa[i]); - } - return ret; -} - -static int rlimit(int keep_open) -{ - int *tmpfd; - int nitems, i; - int *memchunk = NULL; - char *fmt; - struct rlimit rl; - char strbuff[256]; - char strbuff1[81]; - char fmt_u[] = "%u"; - char fmt_lu[] = "%lu"; -#ifdef HAVE_LONGLONG - char fmt_llu[] = "%llu"; - - if (sizeof(rl.rlim_max) > sizeof(long)) - fmt = fmt_llu; - else -#endif - fmt = (sizeof(rl.rlim_max) < sizeof(long))?fmt_u:fmt_lu; - - /* get initial open file limits */ - - if (getrlimit(RLIMIT_NOFILE, &rl) != 0) { - store_errmsg("getrlimit() failed", ERRNO); - fprintf(stderr, "%s\n", msgbuff); - return -1; - } - - /* show initial open file limits */ - -#ifdef RLIM_INFINITY - if (rl.rlim_cur == RLIM_INFINITY) - strcpy(strbuff, "INFINITY"); - else -#endif - sprintf(strbuff, fmt, rl.rlim_cur); - fprintf(stderr, "initial soft limit: %s\n", strbuff); - -#ifdef RLIM_INFINITY - if (rl.rlim_max == RLIM_INFINITY) - strcpy(strbuff, "INFINITY"); - else -#endif - sprintf(strbuff, fmt, rl.rlim_max); - fprintf(stderr, "initial hard limit: %s\n", strbuff); - - /* - * if soft limit and hard limit are different we ask the - * system to raise soft limit all the way up to the hard - * limit. Due to some other system limit the soft limit - * might not be raised up to the hard limit. So from this - * point the resulting soft limit is our limit. Trying to - * open more than soft limit file descriptors will fail. - */ - - if (rl.rlim_cur != rl.rlim_max) { - -#ifdef OPEN_MAX - if ((rl.rlim_cur > 0) && - (rl.rlim_cur < OPEN_MAX)) { - fprintf(stderr, "raising soft limit up to OPEN_MAX\n"); - rl.rlim_cur = OPEN_MAX; - if (setrlimit(RLIMIT_NOFILE, &rl) != 0) { - /* on failure don't abort just issue a warning */ - store_errmsg("setrlimit() failed", ERRNO); - fprintf(stderr, "%s\n", msgbuff); - msgbuff[0] = '\0'; - } - } -#endif - - fprintf(stderr, "raising soft limit up to hard limit\n"); - rl.rlim_cur = rl.rlim_max; - if (setrlimit(RLIMIT_NOFILE, &rl) != 0) { - /* on failure don't abort just issue a warning */ - store_errmsg("setrlimit() failed", ERRNO); - fprintf(stderr, "%s\n", msgbuff); - msgbuff[0] = '\0'; - } - - /* get current open file limits */ - - if (getrlimit(RLIMIT_NOFILE, &rl) != 0) { - store_errmsg("getrlimit() failed", ERRNO); - fprintf(stderr, "%s\n", msgbuff); - return -3; - } - - /* show current open file limits */ - -#ifdef RLIM_INFINITY - if (rl.rlim_cur == RLIM_INFINITY) - strcpy(strbuff, "INFINITY"); - else -#endif - sprintf(strbuff, fmt, rl.rlim_cur); - fprintf(stderr, "current soft limit: %s\n", strbuff); - -#ifdef RLIM_INFINITY - if (rl.rlim_max == RLIM_INFINITY) - strcpy(strbuff, "INFINITY"); - else -#endif - sprintf(strbuff, fmt, rl.rlim_max); - fprintf(stderr, "current hard limit: %s\n", strbuff); - - } /* (rl.rlim_cur != rl.rlim_max) */ - - /* - * test 537 is all about testing libcurl functionality - * when the system has nearly exhausted the number of - * available file descriptors. Test 537 will try to run - * with a very small number of file descriptors available. - * This implies that any file descriptor which is open - * when the test runs will have a number in the high range - * of whatever the system supports. - */ - - /* - * reserve a chunk of memory before opening file descriptors to - * avoid a low memory condition once the file descriptors are - * open. System conditions that could make the test fail should - * be addressed in the precheck phase. This chunk of memory shall - * be always free()ed before exiting the rlimit() function so - * that it becomes available to the test. - */ - - for (nitems = i = 1; nitems <= i; i *= 2) - nitems = i; - if (nitems > 0x7fff) - nitems = 0x40000; - do { - num_open.rlim_max = sizeof(*memchunk) * (size_t)nitems; - sprintf(strbuff, fmt, num_open.rlim_max); - fprintf(stderr, "allocating memchunk %s byte array\n", strbuff); - memchunk = malloc(sizeof(*memchunk) * (size_t)nitems); - if (!memchunk) { - fprintf(stderr, "memchunk, malloc() failed\n"); - nitems /= 2; - } - } while (nitems && !memchunk); - if (!memchunk) { - store_errmsg("memchunk, malloc() failed", ERRNO); - fprintf(stderr, "%s\n", msgbuff); - return -4; - } - - /* initialize it to fight lazy allocation */ - - fprintf(stderr, "initializing memchunk array\n"); - - for (i = 0; i < nitems; i++) - memchunk[i] = -1; - - /* set the number of file descriptors we will try to open */ - -#ifdef RLIM_INFINITY - if ((rl.rlim_cur > 0) && (rl.rlim_cur != RLIM_INFINITY)) { -#else - if (rl.rlim_cur > 0) { -#endif - /* soft limit minus SAFETY_MARGIN */ - num_open.rlim_max = rl.rlim_cur - SAFETY_MARGIN; - } - else { - /* a huge number of file descriptors */ - for (nitems = i = 1; nitems <= i; i *= 2) - nitems = i; - if (nitems > 0x7fff) - nitems = 0x40000; - num_open.rlim_max = nitems; - } - - /* verify that we won't overflow size_t in malloc() */ - - if ((size_t)(num_open.rlim_max) > ((size_t)-1) / sizeof(*fd)) { - sprintf(strbuff1, fmt, num_open.rlim_max); - sprintf(strbuff, "unable to allocate an array for %s " - "file descriptors, would overflow size_t", strbuff1); - store_errmsg(strbuff, 0); - fprintf(stderr, "%s\n", msgbuff); - free(memchunk); - return -5; - } - - /* allocate array for file descriptors */ - - do { - sprintf(strbuff, fmt, num_open.rlim_max); - fprintf(stderr, "allocating array for %s file descriptors\n", strbuff); - fd = malloc(sizeof(*fd) * (size_t)(num_open.rlim_max)); - if (!fd) { - fprintf(stderr, "fd, malloc() failed\n"); - num_open.rlim_max /= 2; - } - } while (num_open.rlim_max && !fd); - if (!fd) { - store_errmsg("fd, malloc() failed", ERRNO); - fprintf(stderr, "%s\n", msgbuff); - free(memchunk); - return -6; - } - - /* initialize it to fight lazy allocation */ - - fprintf(stderr, "initializing fd array\n"); - - for (num_open.rlim_cur = 0; - num_open.rlim_cur < num_open.rlim_max; - num_open.rlim_cur++) - fd[num_open.rlim_cur] = -1; - - sprintf(strbuff, fmt, num_open.rlim_max); - fprintf(stderr, "trying to open %s file descriptors\n", strbuff); - - /* open a dummy descriptor */ - - fd[0] = open(DEV_NULL, O_RDONLY); - if (fd[0] < 0) { - sprintf(strbuff, "opening of %s failed", DEV_NULL); - store_errmsg(strbuff, ERRNO); - fprintf(stderr, "%s\n", msgbuff); - free(fd); - fd = NULL; - free(memchunk); - return -7; - } - - /* create a bunch of file descriptors */ - - for (num_open.rlim_cur = 1; - num_open.rlim_cur < num_open.rlim_max; - num_open.rlim_cur++) { - - fd[num_open.rlim_cur] = dup(fd[0]); - - if (fd[num_open.rlim_cur] < 0) { - - fd[num_open.rlim_cur] = -1; - - sprintf(strbuff1, fmt, num_open.rlim_cur); - sprintf(strbuff, "dup() attempt %s failed", strbuff1); - fprintf(stderr, "%s\n", strbuff); - - sprintf(strbuff1, fmt, num_open.rlim_cur); - sprintf(strbuff, "fds system limit seems close to %s", strbuff1); - fprintf(stderr, "%s\n", strbuff); - - num_open.rlim_max = num_open.rlim_cur - SAFETY_MARGIN; - - num_open.rlim_cur -= num_open.rlim_max; - sprintf(strbuff1, fmt, num_open.rlim_cur); - sprintf(strbuff, "closing %s file descriptors", strbuff1); - fprintf(stderr, "%s\n", strbuff); - - for (num_open.rlim_cur = num_open.rlim_max; - fd[num_open.rlim_cur] >= 0; - num_open.rlim_cur++) { - close(fd[num_open.rlim_cur]); - fd[num_open.rlim_cur] = -1; - } - - sprintf(strbuff, fmt, num_open.rlim_max); - fprintf(stderr, "shrinking array for %s file descriptors\n", strbuff); - - /* we don't care if we can't shrink it */ - - tmpfd = realloc(fd, sizeof(*fd) * (size_t)(num_open.rlim_max)); - if (tmpfd) { - fd = tmpfd; - tmpfd = NULL; - } - - break; - - } - - } - - sprintf(strbuff, fmt, num_open.rlim_max); - fprintf(stderr, "%s file descriptors open\n", strbuff); - -#if !defined(HAVE_POLL_FINE) && \ - !defined(USE_WINSOCK) && \ - !defined(TPF) - - /* - * when using select() instead of poll() we cannot test - * libcurl functionality with a socket number equal or - * greater than FD_SETSIZE. In any case, macro VERIFY_SOCK - * in lib/select.c enforces this check and protects libcurl - * from a possible crash. The effect of this protection - * is that test 537 will always fail, since the actual - * call to select() never takes place. We skip test 537 - * with an indication that select limit would be exceeded. - */ - - num_open.rlim_cur = FD_SETSIZE - SAFETY_MARGIN; - if (num_open.rlim_max > num_open.rlim_cur) { - sprintf(strbuff, "select limit is FD_SETSIZE %d", FD_SETSIZE); - store_errmsg(strbuff, 0); - fprintf(stderr, "%s\n", msgbuff); - close_file_descriptors(); - free(memchunk); - return -8; - } - - num_open.rlim_cur = FD_SETSIZE - SAFETY_MARGIN; - for (rl.rlim_cur = 0; - rl.rlim_cur < num_open.rlim_max; - rl.rlim_cur++) { - if ((fd[rl.rlim_cur] > 0) && - ((unsigned int)fd[rl.rlim_cur] > num_open.rlim_cur)) { - sprintf(strbuff, "select limit is FD_SETSIZE %d", FD_SETSIZE); - store_errmsg(strbuff, 0); - fprintf(stderr, "%s\n", msgbuff); - close_file_descriptors(); - free(memchunk); - return -9; - } - } - -#endif /* using a FD_SETSIZE bound select() */ - - /* - * Old or 'backwards compatible' implementations of stdio do not allow - * handling of streams with an underlying file descriptor number greater - * than 255, even when allowing high numbered file descriptors for sockets. - * At this point we have a big number of file descriptors which have been - * opened using dup(), so lets test the stdio implementation and discover - * if it is capable of fopen()ing some additional files. - */ - - if (!fopen_works()) { - sprintf(strbuff1, fmt, num_open.rlim_max); - sprintf(strbuff, "stdio fopen() fails with %s fds open()", - strbuff1); - fprintf(stderr, "%s\n", msgbuff); - sprintf(strbuff, "stdio fopen() fails with lots of fds open()"); - store_errmsg(strbuff, 0); - close_file_descriptors(); - free(memchunk); - return -10; - } - - /* free the chunk of memory we were reserving so that it - becomes becomes available to the test */ - - free(memchunk); - - /* close file descriptors unless instructed to keep them */ - - if (!keep_open) { - close_file_descriptors(); - } - - return 0; -} - -int test(char *URL) -{ - CURLcode res; - CURL *curl; - - if(!strcmp(URL, "check")) { - /* used by the test script to ask if we can run this test or not */ - if(rlimit(FALSE)) { - fprintf(stdout, "rlimit problem: %s\n", msgbuff); - return 1; - } - return 0; /* sure, run this! */ - } - - if (rlimit(TRUE)) { - /* failure */ - return TEST_ERR_MAJOR_BAD; - } - - /* run the test with the bunch of open file descriptors - and close them all once the test is over */ - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - close_file_descriptors(); - return TEST_ERR_MAJOR_BAD; - } - - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - close_file_descriptors(); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - curl_easy_setopt(curl, CURLOPT_URL, URL); - curl_easy_setopt(curl, CURLOPT_HEADER, 1L); - - res = curl_easy_perform(curl); - - close_file_descriptors(); - curl_easy_cleanup(curl); - curl_global_cleanup(); - - return (int)res; -} - -#else /* defined(HAVE_GETRLIMIT) && defined(HAVE_SETRLIMIT) */ - -int test(char *URL) -{ - (void)URL; - printf("system lacks necessary system function(s)"); - return 1; /* skip test */ -} - -#endif /* defined(HAVE_GETRLIMIT) && defined(HAVE_SETRLIMIT) */ diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib539.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib539.c deleted file mode 100644 index 0e43654..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib539.c +++ /dev/null @@ -1,65 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - -int test(char *URL) -{ - CURLcode res; - CURL *curl; - char *newURL; - struct curl_slist *slist; - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - /* - * Begin with cURL set to use a single CWD to the URL's directory. - */ - curl_easy_setopt(curl, CURLOPT_URL, URL); - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); - curl_easy_setopt(curl, CURLOPT_FTP_FILEMETHOD, CURLFTPMETHOD_SINGLECWD); - - res = curl_easy_perform(curl); - - /* - * Change the FTP_FILEMETHOD option to use full paths rather than a CWD - * command. Alter the URL's path a bit, appending a "./". Use an innocuous - * QUOTE command, after which cURL will CWD to ftp_conn->entrypath and then - * (on the next call to ftp_statemach_act) find a non-zero ftpconn->dirdepth - * even though no directories are stored in the ftpconn->dirs array (after a - * call to freedirs). - */ - newURL = strcat (strcpy ((char*)malloc (strlen (URL) + 3), - URL), - "./"); - slist = curl_slist_append (NULL, "SYST"); - - curl_easy_setopt(curl, CURLOPT_URL, newURL); - curl_easy_setopt(curl, CURLOPT_FTP_FILEMETHOD, CURLFTPMETHOD_NOCWD); - curl_easy_setopt(curl, CURLOPT_QUOTE, slist); - - res = curl_easy_perform(curl); - - curl_slist_free_all(slist); - free(newURL); - curl_easy_cleanup(curl); - curl_global_cleanup(); - - return (int)res; -} diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib540.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib540.c deleted file mode 100644 index 089fcd5..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib540.c +++ /dev/null @@ -1,134 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - * - * This is the 'proxyauth.c' test app posted by Shmulik Regev on the libcurl - * mailing list on 10 Jul 2007, converted to a test case. - * - * argv1 = URL - * argv2 = proxy - * argv3 = proxyuser:password - * argv4 = host name to use for the custom Host: header - */ - -#include "test.h" - -#define PROXY libtest_arg2 -#define PROXYUSERPWD libtest_arg3 -#define HOST test_argv[4] - -static void init(CURLM *cm, const char* url, const char* userpwd, - struct curl_slist *headers) -{ - CURL *eh = curl_easy_init(); - - curl_easy_setopt(eh, CURLOPT_URL, url); - curl_easy_setopt(eh, CURLOPT_PROXY, PROXY); - curl_easy_setopt(eh, CURLOPT_PROXYUSERPWD, userpwd); - curl_easy_setopt(eh, CURLOPT_PROXYAUTH, (long)CURLAUTH_ANY); - curl_easy_setopt(eh, CURLOPT_VERBOSE, 1L); - curl_easy_setopt(eh, CURLOPT_HEADER, 1L); - curl_easy_setopt(eh, CURLOPT_HTTPHEADER, headers); /* custom Host: */ - - curl_multi_add_handle(cm, eh); -} - -static int loop(CURLM *cm, const char* url, const char* userpwd, - struct curl_slist *headers) -{ - CURLMsg *msg; - long L; - int M, Q, U = -1; - fd_set R, W, E; - struct timeval T; - - init(cm, url, userpwd, headers); - - while (U) { - while (CURLM_CALL_MULTI_PERFORM == curl_multi_perform(cm, &U)); - - if (U) { - FD_ZERO(&R); - FD_ZERO(&W); - FD_ZERO(&E); - - if (curl_multi_fdset(cm, &R, &W, &E, &M)) { - fprintf(stderr, "E: curl_multi_fdset\n"); - return EXIT_FAILURE; - } - - /* In a real-world program you OF COURSE check the return that maxfd is - bigger than -1 so that the call to select() below makes sense! */ - - if (curl_multi_timeout(cm, &L)) { - fprintf(stderr, "E: curl_multi_timeout\n"); - return EXIT_FAILURE; - } - - if(L != -1) { - T.tv_sec = L/1000; - T.tv_usec = (L%1000)*1000; - } - else { - T.tv_sec = 5; - T.tv_usec = 0; - } - - if (0 > select(M+1, &R, &W, &E, &T)) { - fprintf(stderr, "E: select\n"); - return EXIT_FAILURE; - } - } - - while ((msg = curl_multi_info_read(cm, &Q))) { - if (msg->msg == CURLMSG_DONE) { - CURL *e = msg->easy_handle; - fprintf(stderr, "R: %d - %s\n", (int)msg->data.result, - curl_easy_strerror(msg->data.result)); - curl_multi_remove_handle(cm, e); - curl_easy_cleanup(e); - } - else { - fprintf(stderr, "E: CURLMsg (%d)\n", (int)msg->msg); - } - } - } - - return 1; -} - -int test(char *URL) -{ - CURLM *cm; - struct curl_slist *headers = NULL; - char buffer[246]; /* naively fixed-size */ - - if(test_argc < 4) - return 99; - - sprintf(buffer, "Host: %s", HOST); - - /* now add a custom Host: header */ - headers = curl_slist_append(headers, buffer); - - curl_global_init(CURL_GLOBAL_ALL); - - cm = curl_multi_init(); - loop(cm, URL, PROXYUSERPWD, headers); - - fprintf(stderr, "lib540: now we do the request again\n"); - loop(cm, URL, PROXYUSERPWD, headers); - - curl_multi_cleanup(cm); - - curl_global_cleanup(); - - curl_slist_free_all(headers); - - return EXIT_SUCCESS; -} diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib541.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib541.c deleted file mode 100644 index a2224ae..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib541.c +++ /dev/null @@ -1,117 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "setup.h" /* struct_stat etc. */ -#include "test.h" - -#ifdef HAVE_SYS_SOCKET_H -#include <sys/socket.h> -#endif -#ifdef HAVE_SYS_TYPES_H -#include <sys/types.h> -#endif -#ifdef HAVE_SYS_STAT_H -#include <sys/stat.h> -#endif -#ifdef HAVE_FCNTL_H -#include <fcntl.h> -#endif - -#ifdef HAVE_UNISTD_H -#include <unistd.h> -#endif - -/* - * Two FTP uploads, the second with no content sent. - */ - -int test(char *URL) -{ - CURL *curl; - CURLcode res = CURLE_OK; - FILE *hd_src ; - int hd ; - struct_stat file_info; - int error; - - if (!libtest_arg2) { - fprintf(stderr, "Usage: <url> <file-to-upload>\n"); - return -1; - } - - /* get the file size of the local file */ - hd = stat(libtest_arg2, &file_info); - if(hd == -1) { - /* can't open file, bail out */ - error = ERRNO; - fprintf(stderr, "stat() failed with error: %d %s\n", - error, strerror(error)); - fprintf(stderr, "WARNING: cannot open file %s\n", libtest_arg2); - return -1; - } - - if(! file_info.st_size) { - fprintf(stderr, "WARNING: file %s has no size!\n", libtest_arg2); - return -4; - } - - /* get a FILE * of the same file, could also be made with - fdopen() from the previous descriptor, but hey this is just - an example! */ - hd_src = fopen(libtest_arg2, "rb"); - if(NULL == hd_src) { - error = ERRNO; - fprintf(stderr, "fopen() failed with error: %d %s\n", - error, strerror(error)); - fprintf(stderr, "Error opening file: %s\n", libtest_arg2); - return -2; /* if this happens things are major weird */ - } - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - fclose(hd_src); - return TEST_ERR_MAJOR_BAD; - } - - /* get a curl handle */ - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_global_cleanup(); - fclose(hd_src); - return TEST_ERR_MAJOR_BAD; - } - - /* enable uploading */ - curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L); - - /* enable verbose */ - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); - - /* specify target */ - curl_easy_setopt(curl,CURLOPT_URL, URL); - - /* now specify which file to upload */ - curl_easy_setopt(curl, CURLOPT_INFILE, hd_src); - - /* Now run off and do what you've been told! */ - res = curl_easy_perform(curl); - - /* and now upload the exact same again, but without rewinding so it already - is at end of file */ - res = curl_easy_perform(curl); - - /* close the local file */ - fclose(hd_src); - - curl_easy_cleanup(curl); - curl_global_cleanup(); - - return res; -} diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib542.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib542.c deleted file mode 100644 index ffd8f36..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib542.c +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "setup.h" /* struct_stat etc. */ -#include "test.h" - -#ifdef HAVE_SYS_SOCKET_H -#include <sys/socket.h> -#endif -#ifdef HAVE_SYS_TYPES_H -#include <sys/types.h> -#endif -#ifdef HAVE_SYS_STAT_H -#include <sys/stat.h> -#endif -#ifdef HAVE_FCNTL_H -#include <fcntl.h> -#endif - -#ifdef HAVE_UNISTD_H -#include <unistd.h> -#endif - -/* - * FTP get with NOBODY but no HEADER - */ - -int test(char *URL) -{ - CURL *curl; - CURLcode res = CURLE_OK; - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - /* get a curl handle */ - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - /* enable verbose */ - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); - - /* enable NOBODY */ - curl_easy_setopt(curl, CURLOPT_NOBODY, 1L); - - /* disable HEADER */ - curl_easy_setopt(curl, CURLOPT_HEADER, 0L); - - /* specify target */ - curl_easy_setopt(curl,CURLOPT_URL, URL); - - /* Now run off and do what you've been told! */ - res = curl_easy_perform(curl); - - curl_easy_cleanup(curl); - curl_global_cleanup(); - - return res; -} diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib543.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib543.c deleted file mode 100644 index 2e930d2..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib543.c +++ /dev/null @@ -1,32 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - * - * Based on Alex Fishman's bug report on September 30, 2007 - */ - -#include "setup.h" -#include "test.h" - -int test(char *URL) -{ - unsigned char a[] = {0x9c, 0x26, 0x4b, 0x3d, 0x49, 0x4, 0xa1, 0x1, - 0xe0, 0xd8, 0x7c, 0x20, 0xb7, 0xef, 0x53, 0x29, 0xfa, - 0x1d, 0x57, 0xe1}; - - CURL* easy = curl_easy_init(); - char* s = curl_easy_escape(easy, (char*)a, sizeof(a)); - (void)URL; - - printf("%s\n", s); - - curl_free(s); - curl_easy_cleanup(easy); - - return 0; -} diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib544.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib544.c deleted file mode 100644 index f91cef3..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib544.c +++ /dev/null @@ -1,57 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - - -static char teststring[] = - "This\0 is test binary data with an embedded NUL byte\n"; - - -int test(char *URL) -{ - CURL *curl; - CURLcode res=CURLE_OK; - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - /* First set the URL that is about to receive our POST. */ - curl_easy_setopt(curl, CURLOPT_URL, URL); - -#ifdef LIB545 - curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, (long) sizeof teststring - 1); -#endif - - curl_easy_setopt(curl, CURLOPT_COPYPOSTFIELDS, teststring); - - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); /* show verbose for debug */ - curl_easy_setopt(curl, CURLOPT_HEADER, 1L); /* include header */ - - /* Update the original data to detect non-copy. */ - strcpy(teststring, "FAIL"); - - /* Now, this is a POST request with binary 0 embedded in POST data. */ - res = curl_easy_perform(curl); - - /* always cleanup */ - curl_easy_cleanup(curl); - curl_global_cleanup(); - - return (int)res; -} diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib547.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib547.c deleted file mode 100644 index 85f22fe..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib547.c +++ /dev/null @@ -1,106 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - * - * argv1 = URL - * argv2 = proxy - * argv3 = proxyuser:password - */ - -#include "test.h" - -#define UPLOADTHIS "this is the blurb we want to upload\n" - -#ifndef LIB548 -static size_t readcallback(void *ptr, - size_t size, - size_t nmemb, - void *clientp) -{ - int *counter = (int *)clientp; - - if(*counter) { - /* only do this once and then require a clearing of this */ - fprintf(stderr, "READ ALREADY DONE!\n"); - return 0; - } - (*counter)++; /* bump */ - - if(size * nmemb > strlen(UPLOADTHIS)) { - fprintf(stderr, "READ!\n"); - strcpy(ptr, UPLOADTHIS); - return strlen(UPLOADTHIS); - } - fprintf(stderr, "READ NOT FINE!\n"); - return 0; -} -static curlioerr ioctlcallback(CURL *handle, - int cmd, - void *clientp) -{ - int *counter = (int *)clientp; - (void)handle; /* unused */ - if(cmd == CURLIOCMD_RESTARTREAD) { - fprintf(stderr, "REWIND!\n"); - *counter = 0; /* clear counter to make the read callback restart */ - } - return CURLIOE_OK; -} - - - -#endif - -int test(char *URL) -{ - CURLcode res; - CURL *curl; -#ifndef LIB548 - int counter=0; -#endif - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - curl_easy_setopt(curl, CURLOPT_URL, URL); - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); - curl_easy_setopt(curl, CURLOPT_HEADER, 1L); -#ifdef LIB548 - /* set the data to POST with a mere pointer to a zero-terminated string */ - curl_easy_setopt(curl, CURLOPT_POSTFIELDS, UPLOADTHIS); -#else - /* 547 style, which means reading the POST data from a callback */ - curl_easy_setopt(curl, CURLOPT_IOCTLFUNCTION, ioctlcallback); - curl_easy_setopt(curl, CURLOPT_IOCTLDATA, &counter); - curl_easy_setopt(curl, CURLOPT_READFUNCTION, readcallback); - curl_easy_setopt(curl, CURLOPT_READDATA, &counter); - /* We CANNOT do the POST fine without setting the size (or choose chunked)! */ - curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, (long)strlen(UPLOADTHIS)); -#endif - curl_easy_setopt(curl, CURLOPT_POST, 1L); - curl_easy_setopt(curl, CURLOPT_PROXY, libtest_arg2); - curl_easy_setopt(curl, CURLOPT_PROXYUSERPWD, libtest_arg3); - curl_easy_setopt(curl, CURLOPT_PROXYAUTH, - (long) (CURLAUTH_NTLM | CURLAUTH_DIGEST | CURLAUTH_BASIC) ); - - res = curl_easy_perform(curl); - - curl_easy_cleanup(curl); - curl_global_cleanup(); - - return (int)res; -} - diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib549.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib549.c deleted file mode 100644 index d508356..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib549.c +++ /dev/null @@ -1,48 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - * - * argv1 = URL - * argv2 = proxy - * argv3 = non-zero means ASCII transfer - */ - -#include "test.h" - -int test(char *URL) -{ - CURLcode res; - CURL *curl; - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - curl_easy_setopt(curl, CURLOPT_PROXY, libtest_arg2); - curl_easy_setopt(curl, CURLOPT_URL, URL); - curl_easy_setopt(curl, CURLOPT_PROXY_TRANSFER_MODE, 1L); - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); - if(libtest_arg3) - /* enable ascii/text mode */ - curl_easy_setopt(curl, CURLOPT_TRANSFERTEXT, 1L); - - res = curl_easy_perform(curl); - - curl_easy_cleanup(curl); - curl_global_cleanup(); - - return (int)res; -} - diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib552.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib552.c deleted file mode 100644 index 1c6e234..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib552.c +++ /dev/null @@ -1,195 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - * - * argv1 = URL - * argv2 = proxy with embedded user+password - */ - -#include "test.h" - -struct data { - char trace_ascii; /* 1 or 0 */ -}; - -static -void dump(const char *text, - FILE *stream, unsigned char *ptr, size_t size, - char nohex) -{ - size_t i; - size_t c; - - unsigned int width=0x10; - - if(nohex) - /* without the hex output, we can fit more on screen */ - width = 0x40; - - fprintf(stream, "%s, %d bytes (0x%x)\n", text, (int)size, (int)size); - - for(i=0; i<size; i+= width) { - - fprintf(stream, "%04x: ", (int)i); - - if(!nohex) { - /* hex not disabled, show it */ - for(c = 0; c < width; c++) - if(i+c < size) - fprintf(stream, "%02x ", ptr[i+c]); - else - fputs(" ", stream); - } - - for(c = 0; (c < width) && (i+c < size); c++) { - /* check for 0D0A; if found, skip past and start a new line of output */ - if (nohex && (i+c+1 < size) && ptr[i+c]==0x0D && ptr[i+c+1]==0x0A) { - i+=(c+2-width); - break; - } - fprintf(stream, "%c", - (ptr[i+c]>=0x20) && (ptr[i+c]<0x80)?ptr[i+c]:'.'); - /* check again for 0D0A, to avoid an extra \n if it's at width */ - if (nohex && (i+c+2 < size) && ptr[i+c+1]==0x0D && ptr[i+c+2]==0x0A) { - i+=(c+3-width); - break; - } - } - fputc('\n', stream); /* newline */ - } - fflush(stream); -} - -static -int my_trace(CURL *handle, curl_infotype type, - char *data, size_t size, - void *userp) -{ - struct data *config = (struct data *)userp; - const char *text; - (void)handle; /* prevent compiler warning */ - - switch (type) { - case CURLINFO_TEXT: - fprintf(stderr, "== Info: %s", (char *)data); - default: /* in case a new one is introduced to shock us */ - return 0; - - case CURLINFO_HEADER_OUT: - text = "=> Send header"; - break; - case CURLINFO_DATA_OUT: - text = "=> Send data"; - break; - case CURLINFO_SSL_DATA_OUT: - text = "=> Send SSL data"; - break; - case CURLINFO_HEADER_IN: - text = "<= Recv header"; - break; - case CURLINFO_DATA_IN: - text = "<= Recv data"; - break; - case CURLINFO_SSL_DATA_IN: - text = "<= Recv SSL data"; - break; - } - - dump(text, stderr, (unsigned char *)data, size, config->trace_ascii); - return 0; -} - - -static size_t current_offset = 0; -char data[70000]; /* MUST be more than 64k OR MAX_INITIAL_POST_SIZE */ - -static size_t read_callback(void *ptr, size_t size, size_t nmemb, void *stream) -{ - size_t amount = nmemb * size; /* Total bytes curl wants */ - size_t available = sizeof data - current_offset; /* What we have to give */ - size_t given = amount < available ? amount : available; /* What is given */ - (void)stream; - memcpy(ptr, data + current_offset, given); - current_offset += given; - return given; -} - - -static size_t write_callback(void *ptr, size_t size, size_t nmemb, void *stream) -{ - printf("%.*s", (int)(size * nmemb), (char *)ptr); - (void)stream; - return size * nmemb; -} - - -static curlioerr ioctl_callback(CURL * handle, int cmd, void *clientp) -{ - (void)clientp; - if (cmd == CURLIOCMD_RESTARTREAD ) { - printf("APPLICATION: recieved a CURLIOCMD_RESTARTREAD request\n"); - printf("APPLICATION: ** REWINDING! **\n"); - current_offset = 0; - return CURLIOE_OK; - } - (void)handle; - return CURLIOE_UNKNOWNCMD; -} - - - -int test(char *URL) -{ - CURL *curl; - CURLcode res = CURLE_OUT_OF_MEMORY; - struct data config; - size_t i; - static const char fill[] = "test data"; - - config.trace_ascii = 1; /* enable ascii tracing */ - - curl = curl_easy_init(); - if(curl) { - curl_easy_setopt(curl, CURLOPT_DEBUGFUNCTION, my_trace); - curl_easy_setopt(curl, CURLOPT_DEBUGDATA, &config); - /* the DEBUGFUNCTION has no effect until we enable VERBOSE */ - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); - - /* setup repeated data string */ - for (i=0; i < sizeof data; ++i) - data[i] = fill[i % sizeof fill]; - - /* Post */ - curl_easy_setopt(curl, CURLOPT_POST, 1L); - - /* Setup read callback */ - curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, (long) sizeof data); - curl_easy_setopt(curl, CURLOPT_READFUNCTION, read_callback); - - /* Write callback */ - curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback); - - /* Ioctl function */ - curl_easy_setopt(curl, CURLOPT_IOCTLFUNCTION, ioctl_callback); - - curl_easy_setopt(curl, CURLOPT_PROXY, libtest_arg2); - - curl_easy_setopt(curl, CURLOPT_URL, URL); - - /* Accept any auth. But for this bug configure proxy with DIGEST, basic might work too, not NTLM */ - curl_easy_setopt(curl, CURLOPT_PROXYAUTH, (long)CURLAUTH_ANY); - - res = curl_easy_perform(curl); - fprintf(stderr, "curl_easy_perform = %d\n", (int)res); - - /* always cleanup */ - curl_easy_cleanup(curl); - } - curl_global_cleanup(); - return (int)res; -} diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib553.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib553.c deleted file mode 100644 index 0603b3f..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib553.c +++ /dev/null @@ -1,85 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - * - * This test case and code is based on the bug recipe Joe Malicki provided for - * bug report #1871269, fixed on Jan 14 2008 before the 7.18.0 release. - */ - -#include "test.h" - -#define POSTLEN 40960 - -static size_t myreadfunc(void *ptr, size_t size, size_t nmemb, void *stream) -{ - static size_t total=POSTLEN; - static char buf[1024]; - (void)stream; - - memset(buf, 'A', sizeof(buf)); - - size *= nmemb; - if (size > total) - size = total; - - if(size > sizeof(buf)) - size = sizeof(buf); - - memcpy(ptr, buf, size); - total -= size; - return size; -} - -#define NUM_HEADERS 8 -#define SIZE_HEADERS 5000 - -static char buf[SIZE_HEADERS + 100]; - -int test(char *URL) -{ - CURL *curl; - CURLcode res; - int i; - struct curl_slist *headerlist=NULL, *hl; - - curl_global_init(CURL_GLOBAL_ALL); - curl = curl_easy_init(); - - if(curl) { - for (i = 0; i < NUM_HEADERS; i++) { - int len = sprintf(buf, "Header%d: ", i); - memset(&buf[len], 'A', SIZE_HEADERS); - buf[len + SIZE_HEADERS]=0; /* zero terminate */ - hl = curl_slist_append(headerlist, buf); - if (!hl) - goto errout; - headerlist = hl; - } - hl = curl_slist_append(headerlist, "Expect: "); - if (!hl) - goto errout; - headerlist = hl; - - curl_easy_setopt(curl, CURLOPT_URL, URL); - curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist); - curl_easy_setopt(curl, CURLOPT_POST, 1L); - curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, (long)POSTLEN); - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); - curl_easy_setopt(curl, CURLOPT_HEADER, 1L); - curl_easy_setopt(curl, CURLOPT_READFUNCTION, myreadfunc); - res = curl_easy_perform(curl); - -errout: - curl_easy_cleanup(curl); - - curl_slist_free_all(headerlist); - } - curl_global_cleanup(); - - return (int)res; -} diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib554.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib554.c deleted file mode 100644 index fe0c16a..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib554.c +++ /dev/null @@ -1,129 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - -static char data[]="this is what we post to the silly web server\n"; - -struct WriteThis { - char *readptr; - size_t sizeleft; -}; - -static size_t read_callback(void *ptr, size_t size, size_t nmemb, void *userp) -{ - struct WriteThis *pooh = (struct WriteThis *)userp; - - if(size*nmemb < 1) - return 0; - - if(pooh->sizeleft) { - *(char *)ptr = pooh->readptr[0]; /* copy one single byte */ - pooh->readptr++; /* advance pointer */ - pooh->sizeleft--; /* less data left */ - return 1; /* we return 1 byte at a time! */ - } - - return 0; /* no more data left to deliver */ -} - -int test(char *URL) -{ - CURL *curl; - CURLcode res=CURLE_OK; - CURLFORMcode formrc; - - struct curl_httppost *formpost=NULL; - struct curl_httppost *lastptr=NULL; - struct WriteThis pooh; - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - pooh.readptr = data; - pooh.sizeleft = strlen(data); - - /* Fill in the file upload field */ - formrc = curl_formadd(&formpost, - &lastptr, - CURLFORM_COPYNAME, "sendfile", - CURLFORM_STREAM, &pooh, - CURLFORM_CONTENTSLENGTH, pooh.sizeleft, - CURLFORM_FILENAME, "postit2.c", - CURLFORM_END); - - if(formrc) - printf("curl_formadd(1) = %d\n", (int)formrc); - - /* Fill in the filename field */ - formrc = curl_formadd(&formpost, - &lastptr, - CURLFORM_COPYNAME, "filename", - CURLFORM_COPYCONTENTS, "postit2.c", - CURLFORM_END); - - if(formrc) - printf("curl_formadd(2) = %d\n", (int)formrc); - - /* Fill in a submit field too */ - formrc = curl_formadd(&formpost, - &lastptr, - CURLFORM_COPYNAME, "submit", - CURLFORM_COPYCONTENTS, "send", - CURLFORM_END); - - if(formrc) - printf("curl_formadd(3) = %d\n", (int)formrc); - - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_formfree(formpost); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - /* First set the URL that is about to receive our POST. */ - curl_easy_setopt(curl, CURLOPT_URL, URL); - - /* Now specify we want to POST data */ - curl_easy_setopt(curl, CURLOPT_POST, 1L); - - /* Set the expected POST size */ - curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, (long)pooh.sizeleft); - - /* we want to use our own read function */ - curl_easy_setopt(curl, CURLOPT_READFUNCTION, read_callback); - - /* pointer to pass to our read function */ - curl_easy_setopt(curl, CURLOPT_READDATA, &pooh); - - /* send a multi-part formpost */ - curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost); - - /* get verbose debug output please */ - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); - - /* include headers in the output */ - curl_easy_setopt(curl, CURLOPT_HEADER, 1L); - - /* Perform the request, res will get the return code */ - res = curl_easy_perform(curl); - - /* always cleanup */ - curl_easy_cleanup(curl); - curl_global_cleanup(); - - /* now cleanup the formpost chain */ - curl_formfree(formpost); - - return res; -} diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib555.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib555.c deleted file mode 100644 index ad259e0..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib555.c +++ /dev/null @@ -1,147 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - * - * This test case is supposed to be identical to 547 except that this uses the - * multi interface and 547 is easy interface. - * - * argv1 = URL - * argv2 = proxy - * argv3 = proxyuser:password - */ - -#include "test.h" -#include "testutil.h" - -#define MULTI_PERFORM_HANG_TIMEOUT 60 * 1000 - -#define UPLOADTHIS "this is the blurb we want to upload\n" - -static size_t readcallback(void *ptr, - size_t size, - size_t nmemb, - void *clientp) -{ - int *counter = (int *)clientp; - - if(*counter) { - /* only do this once and then require a clearing of this */ - fprintf(stderr, "READ ALREADY DONE!\n"); - return 0; - } - (*counter)++; /* bump */ - - if(size * nmemb > strlen(UPLOADTHIS)) { - fprintf(stderr, "READ!\n"); - strcpy(ptr, UPLOADTHIS); - return strlen(UPLOADTHIS); - } - fprintf(stderr, "READ NOT FINE!\n"); - return 0; -} -static curlioerr ioctlcallback(CURL *handle, - int cmd, - void *clientp) -{ - int *counter = (int *)clientp; - (void)handle; /* unused */ - if(cmd == CURLIOCMD_RESTARTREAD) { - fprintf(stderr, "REWIND!\n"); - *counter = 0; /* clear counter to make the read callback restart */ - } - return CURLIOE_OK; -} - - -int test(char *URL) -{ - int res; - CURL *curl; - int counter=0; - CURLM *m; - int running=1; - struct timeval mp_start; - char mp_timedout = FALSE; - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - curl_easy_setopt(curl, CURLOPT_URL, URL); - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); - curl_easy_setopt(curl, CURLOPT_HEADER, 1L); - - /* read the POST data from a callback */ - curl_easy_setopt(curl, CURLOPT_IOCTLFUNCTION, ioctlcallback); - curl_easy_setopt(curl, CURLOPT_IOCTLDATA, &counter); - curl_easy_setopt(curl, CURLOPT_READFUNCTION, readcallback); - curl_easy_setopt(curl, CURLOPT_READDATA, &counter); - /* We CANNOT do the POST fine without setting the size (or choose chunked)! */ - curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, strlen(UPLOADTHIS)); - - curl_easy_setopt(curl, CURLOPT_POST, 1L); - curl_easy_setopt(curl, CURLOPT_PROXY, libtest_arg2); - curl_easy_setopt(curl, CURLOPT_PROXYUSERPWD, libtest_arg3); - curl_easy_setopt(curl, CURLOPT_PROXYAUTH, - (long) (CURLAUTH_NTLM | CURLAUTH_DIGEST | CURLAUTH_BASIC) ); - - if ((m = curl_multi_init()) == NULL) { - fprintf(stderr, "curl_multi_init() failed\n"); - curl_easy_cleanup(curl); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - if ((res = (int)curl_multi_add_handle(m, curl)) != CURLM_OK) { - fprintf(stderr, "curl_multi_add_handle() failed, " - "with code %d\n", res); - curl_multi_cleanup(m); - curl_easy_cleanup(curl); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - mp_timedout = FALSE; - mp_start = tutil_tvnow(); - - while (running) { - res = (int)curl_multi_perform(m, &running); - if (tutil_tvdiff(tutil_tvnow(), mp_start) > - MULTI_PERFORM_HANG_TIMEOUT) { - mp_timedout = TRUE; - break; - } - if (running <= 0) { - fprintf(stderr, "nothing left running.\n"); - break; - } - } - - if (mp_timedout) { - if (mp_timedout) fprintf(stderr, "mp_timedout\n"); - fprintf(stderr, "ABORTING TEST, since it seems " - "that it would have run forever.\n"); - res = TEST_ERR_RUNS_FOREVER; - } - - curl_multi_remove_handle(m, curl); - curl_easy_cleanup(curl); - curl_multi_cleanup(m); - - curl_global_cleanup(); - - return res; -} - diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib556.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib556.c deleted file mode 100644 index 85fd656..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib556.c +++ /dev/null @@ -1,67 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -#include "test.h" - -int test(char *URL) -{ - CURLcode res; - CURL *curl; - - if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { - fprintf(stderr, "curl_global_init() failed\n"); - return TEST_ERR_MAJOR_BAD; - } - - if ((curl = curl_easy_init()) == NULL) { - fprintf(stderr, "curl_easy_init() failed\n"); - curl_global_cleanup(); - return TEST_ERR_MAJOR_BAD; - } - - curl_easy_setopt(curl, CURLOPT_URL, URL); - curl_easy_setopt(curl, CURLOPT_CONNECT_ONLY, 1L); - - res = curl_easy_perform(curl); - - if(!res) { - /* we are connected, now get a HTTP document the raw way */ - const char *request = "GET /556 HTTP/1.2\r\n" - "Host: ninja\r\n\r\n"; - size_t iolen; - char buf[1024]; - - res = curl_easy_send(curl, request, strlen(request), &iolen); - - if(!res) { - /* we assume that sending always work */ - int total=0; - - do { - /* busy-read like crazy */ - res = curl_easy_recv(curl, buf, 1024, &iolen); - - if(iolen) - /* send received stuff to stdout */ - write(STDOUT_FILENO, buf, iolen); - - total += iolen; - - } while(((res == CURLE_OK) || (res == CURLE_AGAIN)) && (total < 129)); - } - } - - - curl_easy_cleanup(curl); - curl_global_cleanup(); - - return (int)res; -} - diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/lib557.c b/Utilities/cmcurl-7.19.0/tests/libtest/lib557.c deleted file mode 100644 index 13148dd..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/lib557.c +++ /dev/null @@ -1,1088 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -/* - * The purpose of this test is to minimally exercise libcurl's internal - * curl_m*printf formatting capabilities and handling of some data types. - */ - -#include "test.h" - -int curl_msprintf(char *buffer, const char *format, ...); - - -#if (CURL_SIZEOF_CURL_OFF_T > CURL_SIZEOF_LONG) -# define MPRNT_SUFFIX_CURL_OFF_T LL -#else -# define MPRNT_SUFFIX_CURL_OFF_T L -#endif - - -#ifdef CURL_ISOCPP -# define MPRNT_OFF_T_C_HELPER2(Val,Suffix) Val ## Suffix -#else -# define MPRNT_OFF_T_C_HELPER2(Val,Suffix) Val/**/Suffix -#endif -#define MPRNT_OFF_T_C_HELPER1(Val,Suffix) MPRNT_OFF_T_C_HELPER2(Val,Suffix) -#define MPRNT_OFF_T_C(Val) MPRNT_OFF_T_C_HELPER1(Val,MPRNT_SUFFIX_CURL_OFF_T) - - -#define BUFSZ 256 -#define UINT_TESTS_ARRSZ 1 + 100 -#define SINT_TESTS_ARRSZ 1 + 100 -#define ULONG_TESTS_ARRSZ 1 + 100 -#define SLONG_TESTS_ARRSZ 1 + 100 -#define COFFT_TESTS_ARRSZ 1 + 100 - - -struct unsint_st { - unsigned int num; /* unsigned int */ - const char *expected; /* expected string */ - char result[BUFSZ]; /* result string */ -}; - - -struct sigint_st { - int num; /* signed int */ - const char *expected; /* expected string */ - char result[BUFSZ]; /* result string */ -}; - - -struct unslong_st { - unsigned long num; /* unsigned long */ - const char *expected; /* expected string */ - char result[BUFSZ]; /* result string */ -}; - - -struct siglong_st { - long num; /* signed long */ - const char *expected; /* expected string */ - char result[BUFSZ]; /* result string */ -}; - - -struct curloff_st { - curl_off_t num; /* curl_off_t */ - const char *expected; /* expected string */ - char result[BUFSZ]; /* result string */ -}; - - -static struct unsint_st ui_test[UINT_TESTS_ARRSZ]; -static struct sigint_st si_test[SINT_TESTS_ARRSZ]; -static struct unslong_st ul_test[ULONG_TESTS_ARRSZ]; -static struct siglong_st sl_test[SLONG_TESTS_ARRSZ]; -static struct curloff_st co_test[COFFT_TESTS_ARRSZ]; - - -static int test_unsigned_int_formatting(void) -{ - int i, j; - int num_uint_tests; - int failed = 0; - -#if (SIZEOF_INT == 2) - - i=1; ui_test[i].num = 0xFFFFU; ui_test[i].expected = "65535"; - i++; ui_test[i].num = 0xFF00U; ui_test[i].expected = "65280"; - i++; ui_test[i].num = 0x00FFU; ui_test[i].expected = "255"; - - i++; ui_test[i].num = 0xF000U; ui_test[i].expected = "61440"; - i++; ui_test[i].num = 0x0F00U; ui_test[i].expected = "3840"; - i++; ui_test[i].num = 0x00F0U; ui_test[i].expected = "240"; - i++; ui_test[i].num = 0x000FU; ui_test[i].expected = "15"; - - i++; ui_test[i].num = 0xC000U; ui_test[i].expected = "49152"; - i++; ui_test[i].num = 0x0C00U; ui_test[i].expected = "3072"; - i++; ui_test[i].num = 0x00C0U; ui_test[i].expected = "192"; - i++; ui_test[i].num = 0x000CU; ui_test[i].expected = "12"; - - i++; ui_test[i].num = 0x0001U; ui_test[i].expected = "1"; - i++; ui_test[i].num = 0x0000U; ui_test[i].expected = "0"; - - num_uint_tests = i; - -#elif (SIZEOF_INT == 4) - - i=1; ui_test[i].num = 0xFFFFFFFFU; ui_test[i].expected = "4294967295"; - i++; ui_test[i].num = 0xFFFF0000U; ui_test[i].expected = "4294901760"; - i++; ui_test[i].num = 0x0000FFFFU; ui_test[i].expected = "65535"; - - i++; ui_test[i].num = 0xFF000000U; ui_test[i].expected = "4278190080"; - i++; ui_test[i].num = 0x00FF0000U; ui_test[i].expected = "16711680"; - i++; ui_test[i].num = 0x0000FF00U; ui_test[i].expected = "65280"; - i++; ui_test[i].num = 0x000000FFU; ui_test[i].expected = "255"; - - i++; ui_test[i].num = 0xF0000000U; ui_test[i].expected = "4026531840"; - i++; ui_test[i].num = 0x0F000000U; ui_test[i].expected = "251658240"; - i++; ui_test[i].num = 0x00F00000U; ui_test[i].expected = "15728640"; - i++; ui_test[i].num = 0x000F0000U; ui_test[i].expected = "983040"; - i++; ui_test[i].num = 0x0000F000U; ui_test[i].expected = "61440"; - i++; ui_test[i].num = 0x00000F00U; ui_test[i].expected = "3840"; - i++; ui_test[i].num = 0x000000F0U; ui_test[i].expected = "240"; - i++; ui_test[i].num = 0x0000000FU; ui_test[i].expected = "15"; - - i++; ui_test[i].num = 0xC0000000U; ui_test[i].expected = "3221225472"; - i++; ui_test[i].num = 0x0C000000U; ui_test[i].expected = "201326592"; - i++; ui_test[i].num = 0x00C00000U; ui_test[i].expected = "12582912"; - i++; ui_test[i].num = 0x000C0000U; ui_test[i].expected = "786432"; - i++; ui_test[i].num = 0x0000C000U; ui_test[i].expected = "49152"; - i++; ui_test[i].num = 0x00000C00U; ui_test[i].expected = "3072"; - i++; ui_test[i].num = 0x000000C0U; ui_test[i].expected = "192"; - i++; ui_test[i].num = 0x0000000CU; ui_test[i].expected = "12"; - - i++; ui_test[i].num = 0x00000001U; ui_test[i].expected = "1"; - i++; ui_test[i].num = 0x00000000U; ui_test[i].expected = "0"; - - num_uint_tests = i; - -#elif (SIZEOF_INT == 8) - - i=1; ui_test[i].num = 0xFFFFFFFFFFFFFFFFU; ui_test[i].expected = "18446744073709551615"; - i++; ui_test[i].num = 0xFFFFFFFF00000000U; ui_test[i].expected = "18446744069414584320"; - i++; ui_test[i].num = 0x00000000FFFFFFFFU; ui_test[i].expected = "4294967295"; - - i++; ui_test[i].num = 0xFFFF000000000000U; ui_test[i].expected = "18446462598732840960"; - i++; ui_test[i].num = 0x0000FFFF00000000U; ui_test[i].expected = "281470681743360"; - i++; ui_test[i].num = 0x00000000FFFF0000U; ui_test[i].expected = "4294901760"; - i++; ui_test[i].num = 0x000000000000FFFFU; ui_test[i].expected = "65535"; - - i++; ui_test[i].num = 0xFF00000000000000U; ui_test[i].expected = "18374686479671623680"; - i++; ui_test[i].num = 0x00FF000000000000U; ui_test[i].expected = "71776119061217280"; - i++; ui_test[i].num = 0x0000FF0000000000U; ui_test[i].expected = "280375465082880"; - i++; ui_test[i].num = 0x000000FF00000000U; ui_test[i].expected = "1095216660480"; - i++; ui_test[i].num = 0x00000000FF000000U; ui_test[i].expected = "4278190080"; - i++; ui_test[i].num = 0x0000000000FF0000U; ui_test[i].expected = "16711680"; - i++; ui_test[i].num = 0x000000000000FF00U; ui_test[i].expected = "65280"; - i++; ui_test[i].num = 0x00000000000000FFU; ui_test[i].expected = "255"; - - i++; ui_test[i].num = 0xF000000000000000U; ui_test[i].expected = "17293822569102704640"; - i++; ui_test[i].num = 0x0F00000000000000U; ui_test[i].expected = "1080863910568919040"; - i++; ui_test[i].num = 0x00F0000000000000U; ui_test[i].expected = "67553994410557440"; - i++; ui_test[i].num = 0x000F000000000000U; ui_test[i].expected = "4222124650659840"; - i++; ui_test[i].num = 0x0000F00000000000U; ui_test[i].expected = "263882790666240"; - i++; ui_test[i].num = 0x00000F0000000000U; ui_test[i].expected = "16492674416640"; - i++; ui_test[i].num = 0x000000F000000000U; ui_test[i].expected = "1030792151040"; - i++; ui_test[i].num = 0x0000000F00000000U; ui_test[i].expected = "64424509440"; - i++; ui_test[i].num = 0x00000000F0000000U; ui_test[i].expected = "4026531840"; - i++; ui_test[i].num = 0x000000000F000000U; ui_test[i].expected = "251658240"; - i++; ui_test[i].num = 0x0000000000F00000U; ui_test[i].expected = "15728640"; - i++; ui_test[i].num = 0x00000000000F0000U; ui_test[i].expected = "983040"; - i++; ui_test[i].num = 0x000000000000F000U; ui_test[i].expected = "61440"; - i++; ui_test[i].num = 0x0000000000000F00U; ui_test[i].expected = "3840"; - i++; ui_test[i].num = 0x00000000000000F0U; ui_test[i].expected = "240"; - i++; ui_test[i].num = 0x000000000000000FU; ui_test[i].expected = "15"; - - i++; ui_test[i].num = 0xC000000000000000U; ui_test[i].expected = "13835058055282163712"; - i++; ui_test[i].num = 0x0C00000000000000U; ui_test[i].expected = "864691128455135232"; - i++; ui_test[i].num = 0x00C0000000000000U; ui_test[i].expected = "54043195528445952"; - i++; ui_test[i].num = 0x000C000000000000U; ui_test[i].expected = "3377699720527872"; - i++; ui_test[i].num = 0x0000C00000000000U; ui_test[i].expected = "211106232532992"; - i++; ui_test[i].num = 0x00000C0000000000U; ui_test[i].expected = "13194139533312"; - i++; ui_test[i].num = 0x000000C000000000U; ui_test[i].expected = "824633720832"; - i++; ui_test[i].num = 0x0000000C00000000U; ui_test[i].expected = "51539607552"; - i++; ui_test[i].num = 0x00000000C0000000U; ui_test[i].expected = "3221225472"; - i++; ui_test[i].num = 0x000000000C000000U; ui_test[i].expected = "201326592"; - i++; ui_test[i].num = 0x0000000000C00000U; ui_test[i].expected = "12582912"; - i++; ui_test[i].num = 0x00000000000C0000U; ui_test[i].expected = "786432"; - i++; ui_test[i].num = 0x000000000000C000U; ui_test[i].expected = "49152"; - i++; ui_test[i].num = 0x0000000000000C00U; ui_test[i].expected = "3072"; - i++; ui_test[i].num = 0x00000000000000C0U; ui_test[i].expected = "192"; - i++; ui_test[i].num = 0x000000000000000CU; ui_test[i].expected = "12"; - - i++; ui_test[i].num = 0x00000001U; ui_test[i].expected = "1"; - i++; ui_test[i].num = 0x00000000U; ui_test[i].expected = "0"; - - num_uint_tests = i; - -#endif - - for(i=1; i<=num_uint_tests; i++) { - - for(j=0; j<BUFSZ; j++) - ui_test[i].result[j] = 'X'; - ui_test[i].result[BUFSZ-1] = '\0'; - - (void)curl_msprintf(ui_test[i].result, "%u", ui_test[i].num); - - if(memcmp(ui_test[i].result, - ui_test[i].expected, - strlen(ui_test[i].expected))) { - printf("unsigned int test #%.2d: Failed (Expected: %s Got: %s)\n", - i, ui_test[i].expected, ui_test[i].result); - failed++; - } - - } - - if(!failed) - printf("All curl_mprintf() unsigned int tests OK!\n"); - else - printf("Some curl_mprintf() unsigned int tests Failed!\n"); - - return failed; -} - - -static int test_signed_int_formatting(void) -{ - int i, j; - int num_sint_tests; - int failed = 0; - -#if (SIZEOF_INT == 2) - - i=1; si_test[i].num = 0x7FFF; si_test[i].expected = "32767"; - i++; si_test[i].num = 0x7FFE; si_test[i].expected = "32766"; - i++; si_test[i].num = 0x7FFD; si_test[i].expected = "32765"; - i++; si_test[i].num = 0x7F00; si_test[i].expected = "32512"; - i++; si_test[i].num = 0x07F0; si_test[i].expected = "2032"; - i++; si_test[i].num = 0x007F; si_test[i].expected = "127"; - - i++; si_test[i].num = 0x7000; si_test[i].expected = "28672"; - i++; si_test[i].num = 0x0700; si_test[i].expected = "1792"; - i++; si_test[i].num = 0x0070; si_test[i].expected = "112"; - i++; si_test[i].num = 0x0007; si_test[i].expected = "7"; - - i++; si_test[i].num = 0x5000; si_test[i].expected = "20480"; - i++; si_test[i].num = 0x0500; si_test[i].expected = "1280"; - i++; si_test[i].num = 0x0050; si_test[i].expected = "80"; - i++; si_test[i].num = 0x0005; si_test[i].expected = "5"; - - i++; si_test[i].num = 0x0001; si_test[i].expected = "1"; - i++; si_test[i].num = 0x0000; si_test[i].expected = "0"; - - i++; si_test[i].num = -0x7FFF -1; si_test[i].expected = "-32768"; - i++; si_test[i].num = -0x7FFE -1; si_test[i].expected = "-32767"; - i++; si_test[i].num = -0x7FFD -1; si_test[i].expected = "-32766"; - i++; si_test[i].num = -0x7F00 -1; si_test[i].expected = "-32513"; - i++; si_test[i].num = -0x07F0 -1; si_test[i].expected = "-2033"; - i++; si_test[i].num = -0x007F -1; si_test[i].expected = "-128"; - - i++; si_test[i].num = -0x7000 -1; si_test[i].expected = "-28673"; - i++; si_test[i].num = -0x0700 -1; si_test[i].expected = "-1793"; - i++; si_test[i].num = -0x0070 -1; si_test[i].expected = "-113"; - i++; si_test[i].num = -0x0007 -1; si_test[i].expected = "-8"; - - i++; si_test[i].num = -0x5000 -1; si_test[i].expected = "-20481"; - i++; si_test[i].num = -0x0500 -1; si_test[i].expected = "-1281"; - i++; si_test[i].num = -0x0050 -1; si_test[i].expected = "-81"; - i++; si_test[i].num = -0x0005 -1; si_test[i].expected = "-6"; - - i++; si_test[i].num = 0x0000 -1; si_test[i].expected = "-1"; - - num_sint_tests = i; - -#elif (SIZEOF_INT == 4) - - i=1; si_test[i].num = 0x7FFFFFFF; si_test[i].expected = "2147483647"; - i++; si_test[i].num = 0x7FFFFFFE; si_test[i].expected = "2147483646"; - i++; si_test[i].num = 0x7FFFFFFD; si_test[i].expected = "2147483645"; - i++; si_test[i].num = 0x7FFF0000; si_test[i].expected = "2147418112"; - i++; si_test[i].num = 0x00007FFF; si_test[i].expected = "32767"; - - i++; si_test[i].num = 0x7F000000; si_test[i].expected = "2130706432"; - i++; si_test[i].num = 0x007F0000; si_test[i].expected = "8323072"; - i++; si_test[i].num = 0x00007F00; si_test[i].expected = "32512"; - i++; si_test[i].num = 0x0000007F; si_test[i].expected = "127"; - - i++; si_test[i].num = 0x70000000; si_test[i].expected = "1879048192"; - i++; si_test[i].num = 0x07000000; si_test[i].expected = "117440512"; - i++; si_test[i].num = 0x00700000; si_test[i].expected = "7340032"; - i++; si_test[i].num = 0x00070000; si_test[i].expected = "458752"; - i++; si_test[i].num = 0x00007000; si_test[i].expected = "28672"; - i++; si_test[i].num = 0x00000700; si_test[i].expected = "1792"; - i++; si_test[i].num = 0x00000070; si_test[i].expected = "112"; - i++; si_test[i].num = 0x00000007; si_test[i].expected = "7"; - - i++; si_test[i].num = 0x50000000; si_test[i].expected = "1342177280"; - i++; si_test[i].num = 0x05000000; si_test[i].expected = "83886080"; - i++; si_test[i].num = 0x00500000; si_test[i].expected = "5242880"; - i++; si_test[i].num = 0x00050000; si_test[i].expected = "327680"; - i++; si_test[i].num = 0x00005000; si_test[i].expected = "20480"; - i++; si_test[i].num = 0x00000500; si_test[i].expected = "1280"; - i++; si_test[i].num = 0x00000050; si_test[i].expected = "80"; - i++; si_test[i].num = 0x00000005; si_test[i].expected = "5"; - - i++; si_test[i].num = 0x00000001; si_test[i].expected = "1"; - i++; si_test[i].num = 0x00000000; si_test[i].expected = "0"; - - i++; si_test[i].num = -0x7FFFFFFF -1; si_test[i].expected = "-2147483648"; - i++; si_test[i].num = -0x7FFFFFFE -1; si_test[i].expected = "-2147483647"; - i++; si_test[i].num = -0x7FFFFFFD -1; si_test[i].expected = "-2147483646"; - i++; si_test[i].num = -0x7FFF0000 -1; si_test[i].expected = "-2147418113"; - i++; si_test[i].num = -0x00007FFF -1; si_test[i].expected = "-32768"; - - i++; si_test[i].num = -0x7F000000 -1; si_test[i].expected = "-2130706433"; - i++; si_test[i].num = -0x007F0000 -1; si_test[i].expected = "-8323073"; - i++; si_test[i].num = -0x00007F00 -1; si_test[i].expected = "-32513"; - i++; si_test[i].num = -0x0000007F -1; si_test[i].expected = "-128"; - - i++; si_test[i].num = -0x70000000 -1; si_test[i].expected = "-1879048193"; - i++; si_test[i].num = -0x07000000 -1; si_test[i].expected = "-117440513"; - i++; si_test[i].num = -0x00700000 -1; si_test[i].expected = "-7340033"; - i++; si_test[i].num = -0x00070000 -1; si_test[i].expected = "-458753"; - i++; si_test[i].num = -0x00007000 -1; si_test[i].expected = "-28673"; - i++; si_test[i].num = -0x00000700 -1; si_test[i].expected = "-1793"; - i++; si_test[i].num = -0x00000070 -1; si_test[i].expected = "-113"; - i++; si_test[i].num = -0x00000007 -1; si_test[i].expected = "-8"; - - i++; si_test[i].num = -0x50000000 -1; si_test[i].expected = "-1342177281"; - i++; si_test[i].num = -0x05000000 -1; si_test[i].expected = "-83886081"; - i++; si_test[i].num = -0x00500000 -1; si_test[i].expected = "-5242881"; - i++; si_test[i].num = -0x00050000 -1; si_test[i].expected = "-327681"; - i++; si_test[i].num = -0x00005000 -1; si_test[i].expected = "-20481"; - i++; si_test[i].num = -0x00000500 -1; si_test[i].expected = "-1281"; - i++; si_test[i].num = -0x00000050 -1; si_test[i].expected = "-81"; - i++; si_test[i].num = -0x00000005 -1; si_test[i].expected = "-6"; - - i++; si_test[i].num = 0x00000000 -1; si_test[i].expected = "-1"; - - num_sint_tests = i; - -#elif (SIZEOF_INT == 8) - - i=1; si_test[i].num = 0x7FFFFFFFFFFFFFFF; si_test[i].expected = "9223372036854775807"; - i++; si_test[i].num = 0x7FFFFFFFFFFFFFFE; si_test[i].expected = "9223372036854775806"; - i++; si_test[i].num = 0x7FFFFFFFFFFFFFFD; si_test[i].expected = "9223372036854775805"; - i++; si_test[i].num = 0x7FFFFFFF00000000; si_test[i].expected = "9223372032559808512"; - i++; si_test[i].num = 0x000000007FFFFFFF; si_test[i].expected = "2147483647"; - - i++; si_test[i].num = 0x7FFF000000000000; si_test[i].expected = "9223090561878065152"; - i++; si_test[i].num = 0x00007FFF00000000; si_test[i].expected = "140733193388032"; - i++; si_test[i].num = 0x000000007FFF0000; si_test[i].expected = "2147418112"; - i++; si_test[i].num = 0x0000000000007FFF; si_test[i].expected = "32767"; - - i++; si_test[i].num = 0x7F00000000000000; si_test[i].expected = "9151314442816847872"; - i++; si_test[i].num = 0x007F000000000000; si_test[i].expected = "35747322042253312"; - i++; si_test[i].num = 0x00007F0000000000; si_test[i].expected = "139637976727552"; - i++; si_test[i].num = 0x0000007F00000000; si_test[i].expected = "545460846592"; - i++; si_test[i].num = 0x000000007F000000; si_test[i].expected = "2130706432"; - i++; si_test[i].num = 0x00000000007F0000; si_test[i].expected = "8323072"; - i++; si_test[i].num = 0x0000000000007F00; si_test[i].expected = "32512"; - i++; si_test[i].num = 0x000000000000007F; si_test[i].expected = "127"; - - i++; si_test[i].num = 0x7000000000000000; si_test[i].expected = "8070450532247928832"; - i++; si_test[i].num = 0x0700000000000000; si_test[i].expected = "504403158265495552"; - i++; si_test[i].num = 0x0070000000000000; si_test[i].expected = "31525197391593472"; - i++; si_test[i].num = 0x0007000000000000; si_test[i].expected = "1970324836974592"; - i++; si_test[i].num = 0x0000700000000000; si_test[i].expected = "123145302310912"; - i++; si_test[i].num = 0x0000070000000000; si_test[i].expected = "7696581394432"; - i++; si_test[i].num = 0x0000007000000000; si_test[i].expected = "481036337152"; - i++; si_test[i].num = 0x0000000700000000; si_test[i].expected = "30064771072"; - i++; si_test[i].num = 0x0000000070000000; si_test[i].expected = "1879048192"; - i++; si_test[i].num = 0x0000000007000000; si_test[i].expected = "117440512"; - i++; si_test[i].num = 0x0000000000700000; si_test[i].expected = "7340032"; - i++; si_test[i].num = 0x0000000000070000; si_test[i].expected = "458752"; - i++; si_test[i].num = 0x0000000000007000; si_test[i].expected = "28672"; - i++; si_test[i].num = 0x0000000000000700; si_test[i].expected = "1792"; - i++; si_test[i].num = 0x0000000000000070; si_test[i].expected = "112"; - i++; si_test[i].num = 0x0000000000000007; si_test[i].expected = "7"; - - i++; si_test[i].num = 0x0000000000000001; si_test[i].expected = "1"; - i++; si_test[i].num = 0x0000000000000000; si_test[i].expected = "0"; - - i++; si_test[i].num = -0x7FFFFFFFFFFFFFFF -1; si_test[i].expected = "-9223372036854775808"; - i++; si_test[i].num = -0x7FFFFFFFFFFFFFFE -1; si_test[i].expected = "-9223372036854775807"; - i++; si_test[i].num = -0x7FFFFFFFFFFFFFFD -1; si_test[i].expected = "-9223372036854775806"; - i++; si_test[i].num = -0x7FFFFFFF00000000 -1; si_test[i].expected = "-9223372032559808513"; - i++; si_test[i].num = -0x000000007FFFFFFF -1; si_test[i].expected = "-2147483648"; - - i++; si_test[i].num = -0x7FFF000000000000 -1; si_test[i].expected = "-9223090561878065153"; - i++; si_test[i].num = -0x00007FFF00000000 -1; si_test[i].expected = "-140733193388033"; - i++; si_test[i].num = -0x000000007FFF0000 -1; si_test[i].expected = "-2147418113"; - i++; si_test[i].num = -0x0000000000007FFF -1; si_test[i].expected = "-32768"; - - i++; si_test[i].num = -0x7F00000000000000 -1; si_test[i].expected = "-9151314442816847873"; - i++; si_test[i].num = -0x007F000000000000 -1; si_test[i].expected = "-35747322042253313"; - i++; si_test[i].num = -0x00007F0000000000 -1; si_test[i].expected = "-139637976727553"; - i++; si_test[i].num = -0x0000007F00000000 -1; si_test[i].expected = "-545460846593"; - i++; si_test[i].num = -0x000000007F000000 -1; si_test[i].expected = "-2130706433"; - i++; si_test[i].num = -0x00000000007F0000 -1; si_test[i].expected = "-8323073"; - i++; si_test[i].num = -0x0000000000007F00 -1; si_test[i].expected = "-32513"; - i++; si_test[i].num = -0x000000000000007F -1; si_test[i].expected = "-128"; - - i++; si_test[i].num = -0x7000000000000000 -1; si_test[i].expected = "-8070450532247928833"; - i++; si_test[i].num = -0x0700000000000000 -1; si_test[i].expected = "-504403158265495553"; - i++; si_test[i].num = -0x0070000000000000 -1; si_test[i].expected = "-31525197391593473"; - i++; si_test[i].num = -0x0007000000000000 -1; si_test[i].expected = "-1970324836974593"; - i++; si_test[i].num = -0x0000700000000000 -1; si_test[i].expected = "-123145302310913"; - i++; si_test[i].num = -0x0000070000000000 -1; si_test[i].expected = "-7696581394433"; - i++; si_test[i].num = -0x0000007000000000 -1; si_test[i].expected = "-481036337153"; - i++; si_test[i].num = -0x0000000700000000 -1; si_test[i].expected = "-30064771073"; - i++; si_test[i].num = -0x0000000070000000 -1; si_test[i].expected = "-1879048193"; - i++; si_test[i].num = -0x0000000007000000 -1; si_test[i].expected = "-117440513"; - i++; si_test[i].num = -0x0000000000700000 -1; si_test[i].expected = "-7340033"; - i++; si_test[i].num = -0x0000000000070000 -1; si_test[i].expected = "-458753"; - i++; si_test[i].num = -0x0000000000007000 -1; si_test[i].expected = "-28673"; - i++; si_test[i].num = -0x0000000000000700 -1; si_test[i].expected = "-1793"; - i++; si_test[i].num = -0x0000000000000070 -1; si_test[i].expected = "-113"; - i++; si_test[i].num = -0x0000000000000007 -1; si_test[i].expected = "-8"; - - i++; si_test[i].num = 0x0000000000000000 -1; si_test[i].expected = "-1"; - - num_sint_tests = i; - -#endif - - for(i=1; i<=num_sint_tests; i++) { - - for(j=0; j<BUFSZ; j++) - si_test[i].result[j] = 'X'; - si_test[i].result[BUFSZ-1] = '\0'; - - (void)curl_msprintf(si_test[i].result, "%d", si_test[i].num); - - if(memcmp(si_test[i].result, - si_test[i].expected, - strlen(si_test[i].expected))) { - printf("signed int test #%.2d: Failed (Expected: %s Got: %s)\n", - i, si_test[i].expected, si_test[i].result); - failed++; - } - - } - - if(!failed) - printf("All curl_mprintf() signed int tests OK!\n"); - else - printf("Some curl_mprintf() signed int tests Failed!\n"); - - return failed; -} - - -static int test_unsigned_long_formatting(void) -{ - int i, j; - int num_ulong_tests; - int failed = 0; - -#if (CURL_SIZEOF_LONG == 2) - - i=1; ul_test[i].num = 0xFFFFUL; ul_test[i].expected = "65535"; - i++; ul_test[i].num = 0xFF00UL; ul_test[i].expected = "65280"; - i++; ul_test[i].num = 0x00FFUL; ul_test[i].expected = "255"; - - i++; ul_test[i].num = 0xF000UL; ul_test[i].expected = "61440"; - i++; ul_test[i].num = 0x0F00UL; ul_test[i].expected = "3840"; - i++; ul_test[i].num = 0x00F0UL; ul_test[i].expected = "240"; - i++; ul_test[i].num = 0x000FUL; ul_test[i].expected = "15"; - - i++; ul_test[i].num = 0xC000UL; ul_test[i].expected = "49152"; - i++; ul_test[i].num = 0x0C00UL; ul_test[i].expected = "3072"; - i++; ul_test[i].num = 0x00C0UL; ul_test[i].expected = "192"; - i++; ul_test[i].num = 0x000CUL; ul_test[i].expected = "12"; - - i++; ul_test[i].num = 0x0001UL; ul_test[i].expected = "1"; - i++; ul_test[i].num = 0x0000UL; ul_test[i].expected = "0"; - - num_ulong_tests = i; - -#elif (CURL_SIZEOF_LONG == 4) - - i=1; ul_test[i].num = 0xFFFFFFFFUL; ul_test[i].expected = "4294967295"; - i++; ul_test[i].num = 0xFFFF0000UL; ul_test[i].expected = "4294901760"; - i++; ul_test[i].num = 0x0000FFFFUL; ul_test[i].expected = "65535"; - - i++; ul_test[i].num = 0xFF000000UL; ul_test[i].expected = "4278190080"; - i++; ul_test[i].num = 0x00FF0000UL; ul_test[i].expected = "16711680"; - i++; ul_test[i].num = 0x0000FF00UL; ul_test[i].expected = "65280"; - i++; ul_test[i].num = 0x000000FFUL; ul_test[i].expected = "255"; - - i++; ul_test[i].num = 0xF0000000UL; ul_test[i].expected = "4026531840"; - i++; ul_test[i].num = 0x0F000000UL; ul_test[i].expected = "251658240"; - i++; ul_test[i].num = 0x00F00000UL; ul_test[i].expected = "15728640"; - i++; ul_test[i].num = 0x000F0000UL; ul_test[i].expected = "983040"; - i++; ul_test[i].num = 0x0000F000UL; ul_test[i].expected = "61440"; - i++; ul_test[i].num = 0x00000F00UL; ul_test[i].expected = "3840"; - i++; ul_test[i].num = 0x000000F0UL; ul_test[i].expected = "240"; - i++; ul_test[i].num = 0x0000000FUL; ul_test[i].expected = "15"; - - i++; ul_test[i].num = 0xC0000000UL; ul_test[i].expected = "3221225472"; - i++; ul_test[i].num = 0x0C000000UL; ul_test[i].expected = "201326592"; - i++; ul_test[i].num = 0x00C00000UL; ul_test[i].expected = "12582912"; - i++; ul_test[i].num = 0x000C0000UL; ul_test[i].expected = "786432"; - i++; ul_test[i].num = 0x0000C000UL; ul_test[i].expected = "49152"; - i++; ul_test[i].num = 0x00000C00UL; ul_test[i].expected = "3072"; - i++; ul_test[i].num = 0x000000C0UL; ul_test[i].expected = "192"; - i++; ul_test[i].num = 0x0000000CUL; ul_test[i].expected = "12"; - - i++; ul_test[i].num = 0x00000001UL; ul_test[i].expected = "1"; - i++; ul_test[i].num = 0x00000000UL; ul_test[i].expected = "0"; - - num_ulong_tests = i; - -#elif (CURL_SIZEOF_LONG == 8) - - i=1; ul_test[i].num = 0xFFFFFFFFFFFFFFFFUL; ul_test[i].expected = "18446744073709551615"; - i++; ul_test[i].num = 0xFFFFFFFF00000000UL; ul_test[i].expected = "18446744069414584320"; - i++; ul_test[i].num = 0x00000000FFFFFFFFUL; ul_test[i].expected = "4294967295"; - - i++; ul_test[i].num = 0xFFFF000000000000UL; ul_test[i].expected = "18446462598732840960"; - i++; ul_test[i].num = 0x0000FFFF00000000UL; ul_test[i].expected = "281470681743360"; - i++; ul_test[i].num = 0x00000000FFFF0000UL; ul_test[i].expected = "4294901760"; - i++; ul_test[i].num = 0x000000000000FFFFUL; ul_test[i].expected = "65535"; - - i++; ul_test[i].num = 0xFF00000000000000UL; ul_test[i].expected = "18374686479671623680"; - i++; ul_test[i].num = 0x00FF000000000000UL; ul_test[i].expected = "71776119061217280"; - i++; ul_test[i].num = 0x0000FF0000000000UL; ul_test[i].expected = "280375465082880"; - i++; ul_test[i].num = 0x000000FF00000000UL; ul_test[i].expected = "1095216660480"; - i++; ul_test[i].num = 0x00000000FF000000UL; ul_test[i].expected = "4278190080"; - i++; ul_test[i].num = 0x0000000000FF0000UL; ul_test[i].expected = "16711680"; - i++; ul_test[i].num = 0x000000000000FF00UL; ul_test[i].expected = "65280"; - i++; ul_test[i].num = 0x00000000000000FFUL; ul_test[i].expected = "255"; - - i++; ul_test[i].num = 0xF000000000000000UL; ul_test[i].expected = "17293822569102704640"; - i++; ul_test[i].num = 0x0F00000000000000UL; ul_test[i].expected = "1080863910568919040"; - i++; ul_test[i].num = 0x00F0000000000000UL; ul_test[i].expected = "67553994410557440"; - i++; ul_test[i].num = 0x000F000000000000UL; ul_test[i].expected = "4222124650659840"; - i++; ul_test[i].num = 0x0000F00000000000UL; ul_test[i].expected = "263882790666240"; - i++; ul_test[i].num = 0x00000F0000000000UL; ul_test[i].expected = "16492674416640"; - i++; ul_test[i].num = 0x000000F000000000UL; ul_test[i].expected = "1030792151040"; - i++; ul_test[i].num = 0x0000000F00000000UL; ul_test[i].expected = "64424509440"; - i++; ul_test[i].num = 0x00000000F0000000UL; ul_test[i].expected = "4026531840"; - i++; ul_test[i].num = 0x000000000F000000UL; ul_test[i].expected = "251658240"; - i++; ul_test[i].num = 0x0000000000F00000UL; ul_test[i].expected = "15728640"; - i++; ul_test[i].num = 0x00000000000F0000UL; ul_test[i].expected = "983040"; - i++; ul_test[i].num = 0x000000000000F000UL; ul_test[i].expected = "61440"; - i++; ul_test[i].num = 0x0000000000000F00UL; ul_test[i].expected = "3840"; - i++; ul_test[i].num = 0x00000000000000F0UL; ul_test[i].expected = "240"; - i++; ul_test[i].num = 0x000000000000000FUL; ul_test[i].expected = "15"; - - i++; ul_test[i].num = 0xC000000000000000UL; ul_test[i].expected = "13835058055282163712"; - i++; ul_test[i].num = 0x0C00000000000000UL; ul_test[i].expected = "864691128455135232"; - i++; ul_test[i].num = 0x00C0000000000000UL; ul_test[i].expected = "54043195528445952"; - i++; ul_test[i].num = 0x000C000000000000UL; ul_test[i].expected = "3377699720527872"; - i++; ul_test[i].num = 0x0000C00000000000UL; ul_test[i].expected = "211106232532992"; - i++; ul_test[i].num = 0x00000C0000000000UL; ul_test[i].expected = "13194139533312"; - i++; ul_test[i].num = 0x000000C000000000UL; ul_test[i].expected = "824633720832"; - i++; ul_test[i].num = 0x0000000C00000000UL; ul_test[i].expected = "51539607552"; - i++; ul_test[i].num = 0x00000000C0000000UL; ul_test[i].expected = "3221225472"; - i++; ul_test[i].num = 0x000000000C000000UL; ul_test[i].expected = "201326592"; - i++; ul_test[i].num = 0x0000000000C00000UL; ul_test[i].expected = "12582912"; - i++; ul_test[i].num = 0x00000000000C0000UL; ul_test[i].expected = "786432"; - i++; ul_test[i].num = 0x000000000000C000UL; ul_test[i].expected = "49152"; - i++; ul_test[i].num = 0x0000000000000C00UL; ul_test[i].expected = "3072"; - i++; ul_test[i].num = 0x00000000000000C0UL; ul_test[i].expected = "192"; - i++; ul_test[i].num = 0x000000000000000CUL; ul_test[i].expected = "12"; - - i++; ul_test[i].num = 0x00000001UL; ul_test[i].expected = "1"; - i++; ul_test[i].num = 0x00000000UL; ul_test[i].expected = "0"; - - num_ulong_tests = i; - -#endif - - for(i=1; i<=num_ulong_tests; i++) { - - for(j=0; j<BUFSZ; j++) - ul_test[i].result[j] = 'X'; - ul_test[i].result[BUFSZ-1] = '\0'; - - (void)curl_msprintf(ul_test[i].result, "%lu", ul_test[i].num); - - if(memcmp(ul_test[i].result, - ul_test[i].expected, - strlen(ul_test[i].expected))) { - printf("unsigned long test #%.2d: Failed (Expected: %s Got: %s)\n", - i, ul_test[i].expected, ul_test[i].result); - failed++; - } - - } - - if(!failed) - printf("All curl_mprintf() unsigned long tests OK!\n"); - else - printf("Some curl_mprintf() unsigned long tests Failed!\n"); - - return failed; -} - - -static int test_signed_long_formatting(void) -{ - int i, j; - int num_slong_tests; - int failed = 0; - -#if (CURL_SIZEOF_LONG == 2) - - i=1; sl_test[i].num = 0x7FFFL; sl_test[i].expected = "32767"; - i++; sl_test[i].num = 0x7FFEL; sl_test[i].expected = "32766"; - i++; sl_test[i].num = 0x7FFDL; sl_test[i].expected = "32765"; - i++; sl_test[i].num = 0x7F00L; sl_test[i].expected = "32512"; - i++; sl_test[i].num = 0x07F0L; sl_test[i].expected = "2032"; - i++; sl_test[i].num = 0x007FL; sl_test[i].expected = "127"; - - i++; sl_test[i].num = 0x7000L; sl_test[i].expected = "28672"; - i++; sl_test[i].num = 0x0700L; sl_test[i].expected = "1792"; - i++; sl_test[i].num = 0x0070L; sl_test[i].expected = "112"; - i++; sl_test[i].num = 0x0007L; sl_test[i].expected = "7"; - - i++; sl_test[i].num = 0x5000L; sl_test[i].expected = "20480"; - i++; sl_test[i].num = 0x0500L; sl_test[i].expected = "1280"; - i++; sl_test[i].num = 0x0050L; sl_test[i].expected = "80"; - i++; sl_test[i].num = 0x0005L; sl_test[i].expected = "5"; - - i++; sl_test[i].num = 0x0001L; sl_test[i].expected = "1"; - i++; sl_test[i].num = 0x0000L; sl_test[i].expected = "0"; - - i++; sl_test[i].num = -0x7FFFL -1L; sl_test[i].expected = "-32768"; - i++; sl_test[i].num = -0x7FFEL -1L; sl_test[i].expected = "-32767"; - i++; sl_test[i].num = -0x7FFDL -1L; sl_test[i].expected = "-32766"; - i++; sl_test[i].num = -0x7F00L -1L; sl_test[i].expected = "-32513"; - i++; sl_test[i].num = -0x07F0L -1L; sl_test[i].expected = "-2033"; - i++; sl_test[i].num = -0x007FL -1L; sl_test[i].expected = "-128"; - - i++; sl_test[i].num = -0x7000L -1L; sl_test[i].expected = "-28673"; - i++; sl_test[i].num = -0x0700L -1L; sl_test[i].expected = "-1793"; - i++; sl_test[i].num = -0x0070L -1L; sl_test[i].expected = "-113"; - i++; sl_test[i].num = -0x0007L -1L; sl_test[i].expected = "-8"; - - i++; sl_test[i].num = -0x5000L -1L; sl_test[i].expected = "-20481"; - i++; sl_test[i].num = -0x0500L -1L; sl_test[i].expected = "-1281"; - i++; sl_test[i].num = -0x0050L -1L; sl_test[i].expected = "-81"; - i++; sl_test[i].num = -0x0005L -1L; sl_test[i].expected = "-6"; - - i++; sl_test[i].num = 0x0000L -1L; sl_test[i].expected = "-1"; - - num_slong_tests = i; - -#elif (CURL_SIZEOF_LONG == 4) - - i=1; sl_test[i].num = 0x7FFFFFFFL; sl_test[i].expected = "2147483647"; - i++; sl_test[i].num = 0x7FFFFFFEL; sl_test[i].expected = "2147483646"; - i++; sl_test[i].num = 0x7FFFFFFDL; sl_test[i].expected = "2147483645"; - i++; sl_test[i].num = 0x7FFF0000L; sl_test[i].expected = "2147418112"; - i++; sl_test[i].num = 0x00007FFFL; sl_test[i].expected = "32767"; - - i++; sl_test[i].num = 0x7F000000L; sl_test[i].expected = "2130706432"; - i++; sl_test[i].num = 0x007F0000L; sl_test[i].expected = "8323072"; - i++; sl_test[i].num = 0x00007F00L; sl_test[i].expected = "32512"; - i++; sl_test[i].num = 0x0000007FL; sl_test[i].expected = "127"; - - i++; sl_test[i].num = 0x70000000L; sl_test[i].expected = "1879048192"; - i++; sl_test[i].num = 0x07000000L; sl_test[i].expected = "117440512"; - i++; sl_test[i].num = 0x00700000L; sl_test[i].expected = "7340032"; - i++; sl_test[i].num = 0x00070000L; sl_test[i].expected = "458752"; - i++; sl_test[i].num = 0x00007000L; sl_test[i].expected = "28672"; - i++; sl_test[i].num = 0x00000700L; sl_test[i].expected = "1792"; - i++; sl_test[i].num = 0x00000070L; sl_test[i].expected = "112"; - i++; sl_test[i].num = 0x00000007L; sl_test[i].expected = "7"; - - i++; sl_test[i].num = 0x50000000L; sl_test[i].expected = "1342177280"; - i++; sl_test[i].num = 0x05000000L; sl_test[i].expected = "83886080"; - i++; sl_test[i].num = 0x00500000L; sl_test[i].expected = "5242880"; - i++; sl_test[i].num = 0x00050000L; sl_test[i].expected = "327680"; - i++; sl_test[i].num = 0x00005000L; sl_test[i].expected = "20480"; - i++; sl_test[i].num = 0x00000500L; sl_test[i].expected = "1280"; - i++; sl_test[i].num = 0x00000050L; sl_test[i].expected = "80"; - i++; sl_test[i].num = 0x00000005L; sl_test[i].expected = "5"; - - i++; sl_test[i].num = 0x00000001L; sl_test[i].expected = "1"; - i++; sl_test[i].num = 0x00000000L; sl_test[i].expected = "0"; - - i++; sl_test[i].num = -0x7FFFFFFFL -1L; sl_test[i].expected = "-2147483648"; - i++; sl_test[i].num = -0x7FFFFFFEL -1L; sl_test[i].expected = "-2147483647"; - i++; sl_test[i].num = -0x7FFFFFFDL -1L; sl_test[i].expected = "-2147483646"; - i++; sl_test[i].num = -0x7FFF0000L -1L; sl_test[i].expected = "-2147418113"; - i++; sl_test[i].num = -0x00007FFFL -1L; sl_test[i].expected = "-32768"; - - i++; sl_test[i].num = -0x7F000000L -1L; sl_test[i].expected = "-2130706433"; - i++; sl_test[i].num = -0x007F0000L -1L; sl_test[i].expected = "-8323073"; - i++; sl_test[i].num = -0x00007F00L -1L; sl_test[i].expected = "-32513"; - i++; sl_test[i].num = -0x0000007FL -1L; sl_test[i].expected = "-128"; - - i++; sl_test[i].num = -0x70000000L -1L; sl_test[i].expected = "-1879048193"; - i++; sl_test[i].num = -0x07000000L -1L; sl_test[i].expected = "-117440513"; - i++; sl_test[i].num = -0x00700000L -1L; sl_test[i].expected = "-7340033"; - i++; sl_test[i].num = -0x00070000L -1L; sl_test[i].expected = "-458753"; - i++; sl_test[i].num = -0x00007000L -1L; sl_test[i].expected = "-28673"; - i++; sl_test[i].num = -0x00000700L -1L; sl_test[i].expected = "-1793"; - i++; sl_test[i].num = -0x00000070L -1L; sl_test[i].expected = "-113"; - i++; sl_test[i].num = -0x00000007L -1L; sl_test[i].expected = "-8"; - - i++; sl_test[i].num = -0x50000000L -1L; sl_test[i].expected = "-1342177281"; - i++; sl_test[i].num = -0x05000000L -1L; sl_test[i].expected = "-83886081"; - i++; sl_test[i].num = -0x00500000L -1L; sl_test[i].expected = "-5242881"; - i++; sl_test[i].num = -0x00050000L -1L; sl_test[i].expected = "-327681"; - i++; sl_test[i].num = -0x00005000L -1L; sl_test[i].expected = "-20481"; - i++; sl_test[i].num = -0x00000500L -1L; sl_test[i].expected = "-1281"; - i++; sl_test[i].num = -0x00000050L -1L; sl_test[i].expected = "-81"; - i++; sl_test[i].num = -0x00000005L -1L; sl_test[i].expected = "-6"; - - i++; sl_test[i].num = 0x00000000L -1L; sl_test[i].expected = "-1"; - - num_slong_tests = i; - -#elif (CURL_SIZEOF_LONG == 8) - - i=1; sl_test[i].num = 0x7FFFFFFFFFFFFFFFL; sl_test[i].expected = "9223372036854775807"; - i++; sl_test[i].num = 0x7FFFFFFFFFFFFFFEL; sl_test[i].expected = "9223372036854775806"; - i++; sl_test[i].num = 0x7FFFFFFFFFFFFFFDL; sl_test[i].expected = "9223372036854775805"; - i++; sl_test[i].num = 0x7FFFFFFF00000000L; sl_test[i].expected = "9223372032559808512"; - i++; sl_test[i].num = 0x000000007FFFFFFFL; sl_test[i].expected = "2147483647"; - - i++; sl_test[i].num = 0x7FFF000000000000L; sl_test[i].expected = "9223090561878065152"; - i++; sl_test[i].num = 0x00007FFF00000000L; sl_test[i].expected = "140733193388032"; - i++; sl_test[i].num = 0x000000007FFF0000L; sl_test[i].expected = "2147418112"; - i++; sl_test[i].num = 0x0000000000007FFFL; sl_test[i].expected = "32767"; - - i++; sl_test[i].num = 0x7F00000000000000L; sl_test[i].expected = "9151314442816847872"; - i++; sl_test[i].num = 0x007F000000000000L; sl_test[i].expected = "35747322042253312"; - i++; sl_test[i].num = 0x00007F0000000000L; sl_test[i].expected = "139637976727552"; - i++; sl_test[i].num = 0x0000007F00000000L; sl_test[i].expected = "545460846592"; - i++; sl_test[i].num = 0x000000007F000000L; sl_test[i].expected = "2130706432"; - i++; sl_test[i].num = 0x00000000007F0000L; sl_test[i].expected = "8323072"; - i++; sl_test[i].num = 0x0000000000007F00L; sl_test[i].expected = "32512"; - i++; sl_test[i].num = 0x000000000000007FL; sl_test[i].expected = "127"; - - i++; sl_test[i].num = 0x7000000000000000L; sl_test[i].expected = "8070450532247928832"; - i++; sl_test[i].num = 0x0700000000000000L; sl_test[i].expected = "504403158265495552"; - i++; sl_test[i].num = 0x0070000000000000L; sl_test[i].expected = "31525197391593472"; - i++; sl_test[i].num = 0x0007000000000000L; sl_test[i].expected = "1970324836974592"; - i++; sl_test[i].num = 0x0000700000000000L; sl_test[i].expected = "123145302310912"; - i++; sl_test[i].num = 0x0000070000000000L; sl_test[i].expected = "7696581394432"; - i++; sl_test[i].num = 0x0000007000000000L; sl_test[i].expected = "481036337152"; - i++; sl_test[i].num = 0x0000000700000000L; sl_test[i].expected = "30064771072"; - i++; sl_test[i].num = 0x0000000070000000L; sl_test[i].expected = "1879048192"; - i++; sl_test[i].num = 0x0000000007000000L; sl_test[i].expected = "117440512"; - i++; sl_test[i].num = 0x0000000000700000L; sl_test[i].expected = "7340032"; - i++; sl_test[i].num = 0x0000000000070000L; sl_test[i].expected = "458752"; - i++; sl_test[i].num = 0x0000000000007000L; sl_test[i].expected = "28672"; - i++; sl_test[i].num = 0x0000000000000700L; sl_test[i].expected = "1792"; - i++; sl_test[i].num = 0x0000000000000070L; sl_test[i].expected = "112"; - i++; sl_test[i].num = 0x0000000000000007L; sl_test[i].expected = "7"; - - i++; sl_test[i].num = 0x0000000000000001L; sl_test[i].expected = "1"; - i++; sl_test[i].num = 0x0000000000000000L; sl_test[i].expected = "0"; - - i++; sl_test[i].num = -0x7FFFFFFFFFFFFFFFL -1L; sl_test[i].expected = "-9223372036854775808"; - i++; sl_test[i].num = -0x7FFFFFFFFFFFFFFEL -1L; sl_test[i].expected = "-9223372036854775807"; - i++; sl_test[i].num = -0x7FFFFFFFFFFFFFFDL -1L; sl_test[i].expected = "-9223372036854775806"; - i++; sl_test[i].num = -0x7FFFFFFF00000000L -1L; sl_test[i].expected = "-9223372032559808513"; - i++; sl_test[i].num = -0x000000007FFFFFFFL -1L; sl_test[i].expected = "-2147483648"; - - i++; sl_test[i].num = -0x7FFF000000000000L -1L; sl_test[i].expected = "-9223090561878065153"; - i++; sl_test[i].num = -0x00007FFF00000000L -1L; sl_test[i].expected = "-140733193388033"; - i++; sl_test[i].num = -0x000000007FFF0000L -1L; sl_test[i].expected = "-2147418113"; - i++; sl_test[i].num = -0x0000000000007FFFL -1L; sl_test[i].expected = "-32768"; - - i++; sl_test[i].num = -0x7F00000000000000L -1L; sl_test[i].expected = "-9151314442816847873"; - i++; sl_test[i].num = -0x007F000000000000L -1L; sl_test[i].expected = "-35747322042253313"; - i++; sl_test[i].num = -0x00007F0000000000L -1L; sl_test[i].expected = "-139637976727553"; - i++; sl_test[i].num = -0x0000007F00000000L -1L; sl_test[i].expected = "-545460846593"; - i++; sl_test[i].num = -0x000000007F000000L -1L; sl_test[i].expected = "-2130706433"; - i++; sl_test[i].num = -0x00000000007F0000L -1L; sl_test[i].expected = "-8323073"; - i++; sl_test[i].num = -0x0000000000007F00L -1L; sl_test[i].expected = "-32513"; - i++; sl_test[i].num = -0x000000000000007FL -1L; sl_test[i].expected = "-128"; - - i++; sl_test[i].num = -0x7000000000000000L -1L; sl_test[i].expected = "-8070450532247928833"; - i++; sl_test[i].num = -0x0700000000000000L -1L; sl_test[i].expected = "-504403158265495553"; - i++; sl_test[i].num = -0x0070000000000000L -1L; sl_test[i].expected = "-31525197391593473"; - i++; sl_test[i].num = -0x0007000000000000L -1L; sl_test[i].expected = "-1970324836974593"; - i++; sl_test[i].num = -0x0000700000000000L -1L; sl_test[i].expected = "-123145302310913"; - i++; sl_test[i].num = -0x0000070000000000L -1L; sl_test[i].expected = "-7696581394433"; - i++; sl_test[i].num = -0x0000007000000000L -1L; sl_test[i].expected = "-481036337153"; - i++; sl_test[i].num = -0x0000000700000000L -1L; sl_test[i].expected = "-30064771073"; - i++; sl_test[i].num = -0x0000000070000000L -1L; sl_test[i].expected = "-1879048193"; - i++; sl_test[i].num = -0x0000000007000000L -1L; sl_test[i].expected = "-117440513"; - i++; sl_test[i].num = -0x0000000000700000L -1L; sl_test[i].expected = "-7340033"; - i++; sl_test[i].num = -0x0000000000070000L -1L; sl_test[i].expected = "-458753"; - i++; sl_test[i].num = -0x0000000000007000L -1L; sl_test[i].expected = "-28673"; - i++; sl_test[i].num = -0x0000000000000700L -1L; sl_test[i].expected = "-1793"; - i++; sl_test[i].num = -0x0000000000000070L -1L; sl_test[i].expected = "-113"; - i++; sl_test[i].num = -0x0000000000000007L -1L; sl_test[i].expected = "-8"; - - i++; sl_test[i].num = 0x0000000000000000L -1L; sl_test[i].expected = "-1"; - - num_slong_tests = i; - -#endif - - for(i=1; i<=num_slong_tests; i++) { - - for(j=0; j<BUFSZ; j++) - sl_test[i].result[j] = 'X'; - sl_test[i].result[BUFSZ-1] = '\0'; - - (void)curl_msprintf(sl_test[i].result, "%ld", sl_test[i].num); - - if(memcmp(sl_test[i].result, - sl_test[i].expected, - strlen(sl_test[i].expected))) { - printf("signed long test #%.2d: Failed (Expected: %s Got: %s)\n", - i, sl_test[i].expected, sl_test[i].result); - failed++; - } - - } - - if(!failed) - printf("All curl_mprintf() signed long tests OK!\n"); - else - printf("Some curl_mprintf() signed long tests Failed!\n"); - - return failed; -} - - -static int test_curl_off_t_formatting(void) -{ - int i, j; - int num_cofft_tests; - int failed = 0; - -#if (CURL_SIZEOF_CURL_OFF_T == 2) - - i=1; co_test[i].num = MPRNT_OFF_T_C(0x7FFF); co_test[i].expected = "32767"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x7FFE); co_test[i].expected = "32766"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x7FFD); co_test[i].expected = "32765"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x7F00); co_test[i].expected = "32512"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x07F0); co_test[i].expected = "2032"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x007F); co_test[i].expected = "127"; - - i++; co_test[i].num = MPRNT_OFF_T_C(0x7000); co_test[i].expected = "28672"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x0700); co_test[i].expected = "1792"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x0070); co_test[i].expected = "112"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x0007); co_test[i].expected = "7"; - - i++; co_test[i].num = MPRNT_OFF_T_C(0x5000); co_test[i].expected = "20480"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x0500); co_test[i].expected = "1280"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x0050); co_test[i].expected = "80"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x0005); co_test[i].expected = "5"; - - i++; co_test[i].num = MPRNT_OFF_T_C(0x0001); co_test[i].expected = "1"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x0000); co_test[i].expected = "0"; - - i++; co_test[i].num = -MPRNT_OFF_T_C(0x7FFF) -MPRNT_OFF_T_C(1); co_test[i].expected = "-32768"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x7FFE) -MPRNT_OFF_T_C(1); co_test[i].expected = "-32767"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x7FFD) -MPRNT_OFF_T_C(1); co_test[i].expected = "-32766"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x7F00) -MPRNT_OFF_T_C(1); co_test[i].expected = "-32513"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x07F0) -MPRNT_OFF_T_C(1); co_test[i].expected = "-2033"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x007F) -MPRNT_OFF_T_C(1); co_test[i].expected = "-128"; - - i++; co_test[i].num = -MPRNT_OFF_T_C(0x7000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-28673"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x0700) -MPRNT_OFF_T_C(1); co_test[i].expected = "-1793"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x0070) -MPRNT_OFF_T_C(1); co_test[i].expected = "-113"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x0007) -MPRNT_OFF_T_C(1); co_test[i].expected = "-8"; - - i++; co_test[i].num = -MPRNT_OFF_T_C(0x5000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-20481"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x0500) -MPRNT_OFF_T_C(1); co_test[i].expected = "-1281"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x0050) -MPRNT_OFF_T_C(1); co_test[i].expected = "-81"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x0005) -MPRNT_OFF_T_C(1); co_test[i].expected = "-6"; - - i++; co_test[i].num = MPRNT_OFF_T_C(0x0000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-1"; - - num_cofft_tests = i; - -#elif (CURL_SIZEOF_CURL_OFF_T == 4) - - i=1; co_test[i].num = MPRNT_OFF_T_C(0x7FFFFFFF); co_test[i].expected = "2147483647"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x7FFFFFFE); co_test[i].expected = "2147483646"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x7FFFFFFD); co_test[i].expected = "2147483645"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x7FFF0000); co_test[i].expected = "2147418112"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x00007FFF); co_test[i].expected = "32767"; - - i++; co_test[i].num = MPRNT_OFF_T_C(0x7F000000); co_test[i].expected = "2130706432"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x007F0000); co_test[i].expected = "8323072"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x00007F00); co_test[i].expected = "32512"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x0000007F); co_test[i].expected = "127"; - - i++; co_test[i].num = MPRNT_OFF_T_C(0x70000000); co_test[i].expected = "1879048192"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x07000000); co_test[i].expected = "117440512"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x00700000); co_test[i].expected = "7340032"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x00070000); co_test[i].expected = "458752"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x00007000); co_test[i].expected = "28672"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x00000700); co_test[i].expected = "1792"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x00000070); co_test[i].expected = "112"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x00000007); co_test[i].expected = "7"; - - i++; co_test[i].num = MPRNT_OFF_T_C(0x50000000); co_test[i].expected = "1342177280"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x05000000); co_test[i].expected = "83886080"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x00500000); co_test[i].expected = "5242880"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x00050000); co_test[i].expected = "327680"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x00005000); co_test[i].expected = "20480"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x00000500); co_test[i].expected = "1280"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x00000050); co_test[i].expected = "80"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x00000005); co_test[i].expected = "5"; - - i++; co_test[i].num = MPRNT_OFF_T_C(0x00000001); co_test[i].expected = "1"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x00000000); co_test[i].expected = "0"; - - i++; co_test[i].num = -MPRNT_OFF_T_C(0x7FFFFFFF) -MPRNT_OFF_T_C(1); co_test[i].expected = "-2147483648"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x7FFFFFFE) -MPRNT_OFF_T_C(1); co_test[i].expected = "-2147483647"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x7FFFFFFD) -MPRNT_OFF_T_C(1); co_test[i].expected = "-2147483646"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x7FFF0000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-2147418113"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x00007FFF) -MPRNT_OFF_T_C(1); co_test[i].expected = "-32768"; - - i++; co_test[i].num = -MPRNT_OFF_T_C(0x7F000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-2130706433"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x007F0000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-8323073"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x00007F00) -MPRNT_OFF_T_C(1); co_test[i].expected = "-32513"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000007F) -MPRNT_OFF_T_C(1); co_test[i].expected = "-128"; - - i++; co_test[i].num = -MPRNT_OFF_T_C(0x70000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-1879048193"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x07000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-117440513"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x00700000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-7340033"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x00070000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-458753"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x00007000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-28673"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x00000700) -MPRNT_OFF_T_C(1); co_test[i].expected = "-1793"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x00000070) -MPRNT_OFF_T_C(1); co_test[i].expected = "-113"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x00000007) -MPRNT_OFF_T_C(1); co_test[i].expected = "-8"; - - i++; co_test[i].num = -MPRNT_OFF_T_C(0x50000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-1342177281"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x05000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-83886081"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x00500000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-5242881"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x00050000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-327681"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x00005000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-20481"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x00000500) -MPRNT_OFF_T_C(1); co_test[i].expected = "-1281"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x00000050) -MPRNT_OFF_T_C(1); co_test[i].expected = "-81"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x00000005) -MPRNT_OFF_T_C(1); co_test[i].expected = "-6"; - - i++; co_test[i].num = MPRNT_OFF_T_C(0x00000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-1"; - - num_cofft_tests = i; - -#elif (CURL_SIZEOF_CURL_OFF_T == 8) - - i=1; co_test[i].num = MPRNT_OFF_T_C(0x7FFFFFFFFFFFFFFF); co_test[i].expected = "9223372036854775807"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x7FFFFFFFFFFFFFFE); co_test[i].expected = "9223372036854775806"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x7FFFFFFFFFFFFFFD); co_test[i].expected = "9223372036854775805"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x7FFFFFFF00000000); co_test[i].expected = "9223372032559808512"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x000000007FFFFFFF); co_test[i].expected = "2147483647"; - - i++; co_test[i].num = MPRNT_OFF_T_C(0x7FFF000000000000); co_test[i].expected = "9223090561878065152"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x00007FFF00000000); co_test[i].expected = "140733193388032"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x000000007FFF0000); co_test[i].expected = "2147418112"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x0000000000007FFF); co_test[i].expected = "32767"; - - i++; co_test[i].num = MPRNT_OFF_T_C(0x7F00000000000000); co_test[i].expected = "9151314442816847872"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x007F000000000000); co_test[i].expected = "35747322042253312"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x00007F0000000000); co_test[i].expected = "139637976727552"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x0000007F00000000); co_test[i].expected = "545460846592"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x000000007F000000); co_test[i].expected = "2130706432"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x00000000007F0000); co_test[i].expected = "8323072"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x0000000000007F00); co_test[i].expected = "32512"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x000000000000007F); co_test[i].expected = "127"; - - i++; co_test[i].num = MPRNT_OFF_T_C(0x7000000000000000); co_test[i].expected = "8070450532247928832"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x0700000000000000); co_test[i].expected = "504403158265495552"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x0070000000000000); co_test[i].expected = "31525197391593472"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x0007000000000000); co_test[i].expected = "1970324836974592"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x0000700000000000); co_test[i].expected = "123145302310912"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x0000070000000000); co_test[i].expected = "7696581394432"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x0000007000000000); co_test[i].expected = "481036337152"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x0000000700000000); co_test[i].expected = "30064771072"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x0000000070000000); co_test[i].expected = "1879048192"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x0000000007000000); co_test[i].expected = "117440512"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x0000000000700000); co_test[i].expected = "7340032"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x0000000000070000); co_test[i].expected = "458752"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x0000000000007000); co_test[i].expected = "28672"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x0000000000000700); co_test[i].expected = "1792"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x0000000000000070); co_test[i].expected = "112"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x0000000000000007); co_test[i].expected = "7"; - - i++; co_test[i].num = MPRNT_OFF_T_C(0x0000000000000001); co_test[i].expected = "1"; - i++; co_test[i].num = MPRNT_OFF_T_C(0x0000000000000000); co_test[i].expected = "0"; - - i++; co_test[i].num = -MPRNT_OFF_T_C(0x7FFFFFFFFFFFFFFF) -MPRNT_OFF_T_C(1); co_test[i].expected = "-9223372036854775808"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x7FFFFFFFFFFFFFFE) -MPRNT_OFF_T_C(1); co_test[i].expected = "-9223372036854775807"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x7FFFFFFFFFFFFFFD) -MPRNT_OFF_T_C(1); co_test[i].expected = "-9223372036854775806"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x7FFFFFFF00000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-9223372032559808513"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x000000007FFFFFFF) -MPRNT_OFF_T_C(1); co_test[i].expected = "-2147483648"; - - i++; co_test[i].num = -MPRNT_OFF_T_C(0x7FFF000000000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-9223090561878065153"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x00007FFF00000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-140733193388033"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x000000007FFF0000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-2147418113"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000000000007FFF) -MPRNT_OFF_T_C(1); co_test[i].expected = "-32768"; - - i++; co_test[i].num = -MPRNT_OFF_T_C(0x7F00000000000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-9151314442816847873"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x007F000000000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-35747322042253313"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x00007F0000000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-139637976727553"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000007F00000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-545460846593"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x000000007F000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-2130706433"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x00000000007F0000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-8323073"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000000000007F00) -MPRNT_OFF_T_C(1); co_test[i].expected = "-32513"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x000000000000007F) -MPRNT_OFF_T_C(1); co_test[i].expected = "-128"; - - i++; co_test[i].num = -MPRNT_OFF_T_C(0x7000000000000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-8070450532247928833"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x0700000000000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-504403158265495553"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x0070000000000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-31525197391593473"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x0007000000000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-1970324836974593"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000700000000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-123145302310913"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000070000000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-7696581394433"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000007000000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-481036337153"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000000700000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-30064771073"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000000070000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-1879048193"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000000007000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-117440513"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000000000700000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-7340033"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000000000070000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-458753"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000000000007000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-28673"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000000000000700) -MPRNT_OFF_T_C(1); co_test[i].expected = "-1793"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000000000000070) -MPRNT_OFF_T_C(1); co_test[i].expected = "-113"; - i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000000000000007) -MPRNT_OFF_T_C(1); co_test[i].expected = "-8"; - - i++; co_test[i].num = MPRNT_OFF_T_C(0x0000000000000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-1"; - - num_cofft_tests = i; - -#endif - - for(i=1; i<=num_cofft_tests; i++) { - - for(j=0; j<BUFSZ; j++) - co_test[i].result[j] = 'X'; - co_test[i].result[BUFSZ-1] = '\0'; - - (void)curl_msprintf(co_test[i].result, "%" FORMAT_OFF_T, co_test[i].num); - - if(memcmp(co_test[i].result, - co_test[i].expected, - strlen(co_test[i].expected))) { - printf("curl_off_t test #%.2d: Failed (Expected: %s Got: %s)\n", - i, co_test[i].expected, co_test[i].result); - failed++; - } - - } - - if(!failed) - printf("All curl_mprintf() curl_off_t tests OK!\n"); - else - printf("Some curl_mprintf() curl_off_t tests Failed!\n"); - - return failed; -} - - -int test(char *URL) -{ - int errors = 0; - (void)URL; /* not used */ - - errors += test_unsigned_int_formatting(); - - errors += test_signed_int_formatting(); - - errors += test_unsigned_long_formatting(); - - errors += test_signed_long_formatting(); - - errors += test_curl_off_t_formatting(); - - if(errors) - return TEST_ERR_MAJOR_BAD; - else - return 0; -} diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/test.h b/Utilities/cmcurl-7.19.0/tests/libtest/test.h deleted file mode 100644 index ef85c34..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/test.h +++ /dev/null @@ -1,50 +0,0 @@ -/***************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - */ - -/* Now include the setup.h file from libcurl's private libdir (the source - version, but that might include "config.h" from the build dir so we need - both of them in the include path), so that we get good in-depth knowledge - about the system we're building this on */ - -#include "setup.h" - -#include <curl/curl.h> -#include <stdio.h> -#include <string.h> -#include <stdlib.h> -#include <errno.h> - -#ifdef HAVE_SYS_SOCKET_H -#include <sys/socket.h> -#endif -#ifdef HAVE_SYS_SELECT_H -/* since so many tests use select(), we can just as well include it here */ -#include <sys/select.h> -#endif -#ifdef HAVE_UNISTD_H -/* at least somewhat oldish FreeBSD systems need this for select() */ -#include <unistd.h> -#endif - -#define TEST_ERR_MAJOR_BAD 100 -#define TEST_ERR_RUNS_FOREVER 99 - -extern char *libtest_arg2; /* set by first.c to the argv[2] or NULL */ -extern char *libtest_arg3; /* set by first.c to the argv[3] or NULL */ - -/* argc and argv as passed in to the main() function */ -extern int test_argc; -extern char **test_argv; - -int select_test (int num_fds, fd_set *rd, fd_set *wr, fd_set *exc, - struct timeval *tv); - -int test(char *URL); /* the actual test function provided by each individual - libXXX.c file */ diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/test1013.pl b/Utilities/cmcurl-7.19.0/tests/libtest/test1013.pl deleted file mode 100755 index 6127df8..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/test1013.pl +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/env perl -# Determine if curl-config --protocols/--features matches the -# curl --version protocols/features -if ( $#ARGV != 2 ) -{ - print "Usage: $0 curl-config-script curl-version-output-file features|protocols\n"; - exit 3; -} - -my $what=$ARGV[2]; - -# Read the output of curl --version -my $curl_protocols=""; -open(CURL, "$ARGV[1]") || die "Can't get curl $what list\n"; -while( <CURL> ) -{ - $curl_protocols = lc($_) if ( /$what:/i ); -} -close CURL; - -$curl_protocols =~ /\w+: (.*)$/; -@curl = split / /,$1; - -# These features are not supported by curl-config -@curl = grep(!/^(Debug|Largefile|CharConv|GSS-Negotiate|SPNEGO)$/i, @curl); -@curl = sort @curl; - -# Read the output of curl-config -my @curl_config; -open(CURLCONFIG, "sh $ARGV[0] --$what|") || die "Can't get curl-config $what list\n"; -while( <CURLCONFIG> ) -{ - chomp; - push @curl_config, lc($_); -} -close CURLCONFIG; - -@curl_config = sort @curl_config; - -my $curlproto = join ' ', @curl; -my $curlconfigproto = join ' ', @curl_config; - -my $different = $curlproto ne $curlconfigproto; -if ($different) { - print "Mismatch in $what lists:\n"; - print "curl: $curlproto\n"; - print "curl-config: $curlconfigproto\n"; -} -exit $different; diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/test1022.pl b/Utilities/cmcurl-7.19.0/tests/libtest/test1022.pl deleted file mode 100755 index 5b16de3..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/test1022.pl +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/env perl -# Determine if curl-config --version matches the curl --version -if ( $#ARGV != 2 ) -{ - print "Usage: $0 curl-config-script curl-version-output-file version|vernum\n"; - exit 3; -} - -my $what=$ARGV[2]; - -# Read the output of curl --version -open(CURL, "$ARGV[1]") || die "Can't open curl --version list in $ARGV[1]\n"; -$_ = <CURL>; -chomp; -/libcurl\/([\.\d]+(-CVS)?)/; -my $version = $1; -close CURL; - -my $curlconfigversion; - -# Read the output of curl-config --version/--vernum -open(CURLCONFIG, "sh $ARGV[0] --$what|") || die "Can't get curl-config --$what list\n"; -$_ = <CURLCONFIG>; -chomp; -if ( $what eq "version" ) { - /^libcurl ([\.\d]+(-CVS)?)$/ ; - $curlconfigversion = $1; -} -else { - # Convert hex version to decimal for comparison's sake - /^(..)(..)(..)$/ ; - $curlconfigversion = hex($1) . "." . hex($2) . "." . hex($3); - - # Strip off the -CVS from the curl version if it's there - $version =~ s/-CVS$//; -} -close CURLCONFIG; - -my $different = $version ne $curlconfigversion; -if ($different || !$version) { - print "Mismatch in --version:\n"; - print "curl: $version\n"; - print "curl-config: $curlconfigversion\n"; - exit 1; -} diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/test307.pl b/Utilities/cmcurl-7.19.0/tests/libtest/test307.pl deleted file mode 100755 index 7e2687b..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/test307.pl +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env perl -# Determine if the given curl executable supports the 'openssl' SSL engine -if ( $#ARGV != 0 ) -{ - print "Usage: $0 curl-executable\n"; - exit 3; -} -if (!open(CURL, "@ARGV[0] -s --engine list|")) -{ - print "Can't get SSL engine list\n"; - exit 2; -} -while( <CURL> ) -{ - exit 0 if ( /openssl/ ); -} -close CURL; -print "openssl engine not supported\n"; -exit 1; diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/test610.pl b/Utilities/cmcurl-7.19.0/tests/libtest/test610.pl deleted file mode 100755 index 5257171..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/test610.pl +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env perl -# Perform simple file and directory manipulation in a portable way -if ( $#ARGV <= 0 ) -{ - print "Usage: $0 mkdir|rmdir|rm|move|gone path1 [path2] [more commands...]\n"; - exit 1; -} - -use File::Copy; -while(@ARGV) { - my $cmd = shift @ARGV; - my $arg = shift @ARGV; - if ($cmd eq "mkdir") { - mkdir $arg || die "$!"; - } - elsif ($cmd eq "rmdir") { - rmdir $arg || die "$!"; - } - elsif ($cmd eq "rm") { - unlink $arg || die "$!"; - } - elsif ($cmd eq "move") { - my $arg2 = shift @ARGV; - move($arg,$arg2) || die "$!"; - } - elsif ($cmd eq "gone") { - ! -e $arg || die "Path $arg exists"; - } else { - print "Unsupported command $cmd\n"; - exit 1; - } -} -exit 0; diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/test613.pl b/Utilities/cmcurl-7.19.0/tests/libtest/test613.pl deleted file mode 100755 index ba9ed32..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/test613.pl +++ /dev/null @@ -1,105 +0,0 @@ -#!/usr/bin/env perl -# Prepare a directory with known files and clean up afterwards -use Time::Local; - -if ( $#ARGV < 1 ) -{ - print "Usage: $0 prepare|postprocess dir [logfile]\n"; - exit 1; -} - -# <precheck> expects an error message on stdout -sub errout { - print $_[0] . "\n"; - exit 1; -} - -if ($ARGV[0] eq "prepare") -{ - my $dirname = $ARGV[1]; - mkdir $dirname || errout "$!"; - chdir $dirname; - - # Create the files in alphabetical order, to increase the chances - # of receiving a consistent set of directory contents regardless - # of whether the server alphabetizes the results or not. - mkdir "asubdir" || errout "$!"; - chmod 0777, "asubdir"; - - open(FILE, ">plainfile.txt") || errout "$!"; - binmode FILE; - print FILE "Test file to support curl test suite\n"; - close(FILE); - utime time, timegm(0,0,12,1,0,100), "plainfile.txt"; - chmod 0666, "plainfile.txt"; - - open(FILE, ">rofile.txt") || errout "$!"; - binmode FILE; - print FILE "Read-only test file to support curl test suite\n"; - close(FILE); - utime time, timegm(0,0,12,31,11,100), "rofile.txt"; - chmod 0444, "rofile.txt"; - - exit 0; -} -elsif ($ARGV[0] eq "postprocess") -{ - my $dirname = $ARGV[1]; - my $logfile = $ARGV[2]; - - # Clean up the test directory - unlink "$dirname/rofile.txt"; - unlink "$dirname/plainfile.txt"; - rmdir "$dirname/asubdir"; - - rmdir $dirname || die "$!"; - - if ($logfile) { - # Process the directory file to remove all information that - # could be inconsistent from one test run to the next (e.g. - # file date) or may be unsupported on some platforms (e.g. - # Windows). Also, since 7.17.0, the sftp directory listing - # format can be dependent on the server (with a recent - # enough version of libssh2) so this script must also - # canonicalize the format. Here are examples of the general - # format supported: - # -r--r--r-- 12 ausername grp 47 Dec 31 2000 rofile.txt - # -r--r--r-- 1 1234 4321 47 Dec 31 2000 rofile.txt - # The "canonical" format is similar to the first (which is - # the one generated on a typical Linux installation): - # -r-?r-?r-? 12 U U 47 Dec 31 2000 rofile.txt - - my @canondir; - open(IN, "<$logfile") || die "$!"; - while (<IN>) { - /^(.)(..).(..).(..).\s*(\S+)\s+\S+\s+\S+\s+(\S+)\s+(\S+\s+\S+\s+\S+)(.*)$/; - if ($1 eq "d") { - # Erase all directory metadata except for the name, as it is not - # consistent for across all test systems and filesystems - push @canondir, "d????????? N U U N ??? N NN:NN$8\n"; - } elsif ($1 eq "-") { - # Erase user and group names, as they are not consistent across - # all test systems - my $line = sprintf("%s%s?%s?%s?%5d U U %15d %s%s\n", $1,$2,$3,$4,$5,$6,$7,$8); - push @canondir, $line; - } else { - # Unexpected format; just pass it through and let the test fail - push @canondir, $_; - } - } - close(IN); - - @canondir = sort {substr($a,57) cmp substr($b,57)} @canondir; - my $newfile = $logfile . ".new"; - open(OUT, ">$newfile") || die "$!"; - print OUT join('', @canondir); - close(OUT); - - unlink $logfile; - rename $newfile, $logfile; - } - - exit 0; -} -print "Unsupported command $ARGV[0]\n"; -exit 1; diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/test75.pl b/Utilities/cmcurl-7.19.0/tests/libtest/test75.pl deleted file mode 100755 index 01a53ff..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/test75.pl +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env perl -# Check that the length of a given URL is correct -if ( $#ARGV != 1 ) -{ - print "Usage: $0 string length\n"; - exit 3; -} -if (length(@ARGV[0]) != @ARGV[1]) -{ - print "Given host IP and port not supported\n"; - exit 1; -} -exit 0; diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/testutil.c b/Utilities/cmcurl-7.19.0/tests/libtest/testutil.c deleted file mode 100644 index 573e6fa..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/testutil.c +++ /dev/null @@ -1,135 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - * $Id$ - ***************************************************************************/ - -#include "setup.h" - -#include "testutil.h" - -#if defined(WIN32) && !defined(MSDOS) - -struct timeval tutil_tvnow(void) -{ - /* - ** GetTickCount() is available on _all_ Windows versions from W95 up - ** to nowadays. Returns milliseconds elapsed since last system boot, - ** increases monotonically and wraps once 49.7 days have elapsed. - */ - struct timeval now; - DWORD milliseconds = GetTickCount(); - now.tv_sec = milliseconds / 1000; - now.tv_usec = (milliseconds % 1000) * 1000; - return now; -} - -#elif defined(HAVE_CLOCK_GETTIME_MONOTONIC) - -struct timeval tutil_tvnow(void) -{ - /* - ** clock_gettime() is granted to be increased monotonically when the - ** monotonic clock is queried. Time starting point is unspecified, it - ** could be the system start-up time, the Epoch, or something else, - ** in any case the time starting point does not change once that the - ** system has started up. - */ - struct timeval now; - struct timespec tsnow; - if(0 == clock_gettime(CLOCK_MONOTONIC, &tsnow)) { - now.tv_sec = tsnow.tv_sec; - now.tv_usec = tsnow.tv_nsec / 1000; - } - /* - ** Even when the configure process has truly detected monotonic clock - ** availability, it might happen that it is not actually available at - ** run-time. When this occurs simply fallback to other time source. - */ -#ifdef HAVE_GETTIMEOFDAY - else - (void)gettimeofday(&now, NULL); -#else - else { - now.tv_sec = (long)time(NULL); - now.tv_usec = 0; - } -#endif - return now; -} - -#elif defined(HAVE_GETTIMEOFDAY) - -struct timeval tutil_tvnow(void) -{ - /* - ** gettimeofday() is not granted to be increased monotonically, due to - ** clock drifting and external source time synchronization it can jump - ** forward or backward in time. - */ - struct timeval now; - (void)gettimeofday(&now, NULL); - return now; -} - -#else - -struct timeval tutil_tvnow(void) -{ - /* - ** time() returns the value of time in seconds since the Epoch. - */ - struct timeval now; - now.tv_sec = (long)time(NULL); - now.tv_usec = 0; - return now; -} - -#endif - -/* - * Make sure that the first argument is the more recent time, as otherwise - * we'll get a weird negative time-diff back... - * - * Returns: the time difference in number of milliseconds. - */ -long tutil_tvdiff(struct timeval newer, struct timeval older) -{ - return (newer.tv_sec-older.tv_sec)*1000+ - (newer.tv_usec-older.tv_usec)/1000; -} - -/* - * Same as tutil_tvdiff but with full usec resolution. - * - * Returns: the time difference in seconds with subsecond resolution. - */ -double tutil_tvdiff_secs(struct timeval newer, struct timeval older) -{ - return (double)(newer.tv_sec-older.tv_sec)+ - (double)(newer.tv_usec-older.tv_usec)/1000000.0; -} - -/* return the number of seconds in the given input timeval struct */ -long tutil_tvlong(struct timeval t1) -{ - return t1.tv_sec; -} - diff --git a/Utilities/cmcurl-7.19.0/tests/libtest/testutil.h b/Utilities/cmcurl-7.19.0/tests/libtest/testutil.h deleted file mode 100644 index 6f7839d..0000000 --- a/Utilities/cmcurl-7.19.0/tests/libtest/testutil.h +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef __LIBTEST_TESTUTIL_H -#define __LIBTEST_TESTUTIL_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2007, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - * $Id$ - ***************************************************************************/ - -#include "setup.h" - - -struct timeval tutil_tvnow(void); - -/* - * Make sure that the first argument (t1) is the more recent time and t2 is - * the older time, as otherwise you get a weird negative time-diff back... - * - * Returns: the time difference in number of milliseconds. - */ -long tutil_tvdiff(struct timeval t1, struct timeval t2); - -/* - * Same as tutil_tvdiff but with full usec resolution. - * - * Returns: the time difference in seconds with subsecond resolution. - */ -double tutil_tvdiff_secs(struct timeval t1, struct timeval t2); - -long tutil_tvlong(struct timeval t1); - - -#endif /* __LIBTEST_TESTUTIL_H */ - diff --git a/Utilities/cmcurl-7.19.0/tests/memanalyze.pl b/Utilities/cmcurl-7.19.0/tests/memanalyze.pl deleted file mode 100755 index 763f9a3..0000000 --- a/Utilities/cmcurl-7.19.0/tests/memanalyze.pl +++ /dev/null @@ -1,356 +0,0 @@ -#!/usr/bin/env perl -# -# Example input: -# -# MEM mprintf.c:1094 malloc(32) = e5718 -# MEM mprintf.c:1103 realloc(e5718, 64) = e6118 -# MEM sendf.c:232 free(f6520) - -my $mallocs=0; -my $callocs=0; -my $reallocs=0; -my $strdups=0; -my $showlimit; - -while(1) { - if($ARGV[0] eq "-v") { - $verbose=1; - shift @ARGV; - } - elsif($ARGV[0] eq "-t") { - $trace=1; - shift @ARGV; - } - elsif($ARGV[0] eq "-l") { - # only show what alloc that caused a memlimit failure - $showlimit=1; - shift @ARGV; - } - else { - last; - } -} - -my $maxmem; - -sub newtotal { - my ($newtot)=@_; - # count a max here - - if($newtot > $maxmem) { - $maxmem= $newtot; - } -} - -my $file = $ARGV[0]; - -if(! -f $file) { - print "Usage: memanalyze.pl [options] <dump file>\n", - "Options:\n", - " -l memlimit failure displayed\n", - " -v Verbose\n", - " -t Trace\n"; - exit; -} - -open(FILE, "<$file"); - -if($showlimit) { - while(<FILE>) { - if(/^LIMIT.*memlimit$/) { - print $_; - last; - } - } - close(FILE); - exit; -} - - -my $lnum=0; -while(<FILE>) { - chomp $_; - $line = $_; - $lnum++; - if($line =~ /^LIMIT ([^ ]*):(\d*) (.*)/) { - # new memory limit test prefix - my $i = $3; - my ($source, $linenum) = ($1, $2); - if($trace && ($i =~ /([^ ]*) reached memlimit/)) { - print "LIMIT: $1 returned error at $source:$linenum\n"; - } - } - elsif($line =~ /^MEM ([^ ]*):(\d*) (.*)/) { - # generic match for the filename+linenumber - $source = $1; - $linenum = $2; - $function = $3; - - if($function =~ /free\(0x([0-9a-f]*)/) { - $addr = $1; - if(!exists $sizeataddr{$addr}) { - print "FREE ERROR: No memory allocated: $line\n"; - } - elsif(-1 == $sizeataddr{$addr}) { - print "FREE ERROR: Memory freed twice: $line\n"; - print "FREE ERROR: Previously freed at: ".$getmem{$addr}."\n"; - } - else { - $totalmem -= $sizeataddr{$addr}; - if($trace) { - print "FREE: malloc at ".$getmem{$addr}." is freed again at $source:$linenum\n"; - printf("FREE: %d bytes freed, left allocated: $totalmem bytes\n", $sizeataddr{$addr}); - } - - newtotal($totalmem); - $frees++; - - $sizeataddr{$addr}=-1; # set -1 to mark as freed - $getmem{$addr}="$source:$linenum"; - - } - } - elsif($function =~ /malloc\((\d*)\) = 0x([0-9a-f]*)/) { - $size = $1; - $addr = $2; - - if($sizeataddr{$addr}>0) { - # this means weeeeeirdo - print "Mixed debug compile ($source:$linenum at line $lnum), rebuild curl now\n"; - print "We think $sizeataddr{$addr} bytes are already allocated at that memory address: $addr!\n"; - } - - $sizeataddr{$addr}=$size; - $totalmem += $size; - - if($trace) { - print "MALLOC: malloc($size) at $source:$linenum", - " makes totally $totalmem bytes\n"; - } - - newtotal($totalmem); - $mallocs++; - - $getmem{$addr}="$source:$linenum"; - } - elsif($function =~ /calloc\((\d*),(\d*)\) = 0x([0-9a-f]*)/) { - $size = $1*$2; - $addr = $3; - - $arg1 = $1; - $arg2 = $2; - - if($sizeataddr{$addr}>0) { - # this means weeeeeirdo - print "Mixed debug compile, rebuild curl now\n"; - } - - $sizeataddr{$addr}=$size; - $totalmem += $size; - - if($trace) { - print "CALLOC: calloc($arg1,$arg2) at $source:$linenum", - " makes totally $totalmem bytes\n"; - } - - newtotal($totalmem); - $callocs++; - - $getmem{$addr}="$source:$linenum"; - } - elsif($function =~ /realloc\((\(nil\)|0x([0-9a-f]*)), (\d*)\) = 0x([0-9a-f]*)/) { - my ($oldaddr, $newsize, $newaddr) = ($2, $3, $4); - - $totalmem -= $sizeataddr{$oldaddr}; - if($trace) { - printf("REALLOC: %d less bytes and ", $sizeataddr{$oldaddr}); - } - $sizeataddr{$oldaddr}=0; - - $totalmem += $newsize; - $sizeataddr{$newaddr}=$newsize; - - if($trace) { - printf("%d more bytes ($source:$linenum)\n", $newsize); - } - - newtotal($totalmem); - $reallocs++; - - $getmem{$oldaddr}=""; - $getmem{$newaddr}="$source:$linenum"; - } - elsif($function =~ /strdup\(0x([0-9a-f]*)\) \((\d*)\) = 0x([0-9a-f]*)/) { - # strdup(a5b50) (8) = df7c0 - - $dup = $1; - $size = $2; - $addr = $3; - $getmem{$addr}="$source:$linenum"; - $sizeataddr{$addr}=$size; - - $totalmem += $size; - - if($trace) { - printf("STRDUP: $size bytes at %s, makes totally: %d bytes\n", - $getmem{$addr}, $totalmem); - } - - newtotal($totalmem); - $strdups++; - } - else { - print "Not recognized input line: $function\n"; - } - } - # FD url.c:1282 socket() = 5 - elsif($_ =~ /^FD ([^ ]*):(\d*) (.*)/) { - # generic match for the filename+linenumber - $source = $1; - $linenum = $2; - $function = $3; - - if($function =~ /socket\(\) = (\d*)/) { - $filedes{$1}=1; - $getfile{$1}="$source:$linenum"; - $openfile++; - } - elsif($function =~ /accept\(\) = (\d*)/) { - $filedes{$1}=1; - $getfile{$1}="$source:$linenum"; - $openfile++; - } - elsif($function =~ /sclose\((\d*)\)/) { - if($filedes{$1} != 1) { - print "Close without open: $line\n"; - } - else { - $filedes{$1}=0; # closed now - $openfile--; - } - } - } - # FILE url.c:1282 fopen("blabla") = 0x5ddd - elsif($_ =~ /^FILE ([^ ]*):(\d*) (.*)/) { - # generic match for the filename+linenumber - $source = $1; - $linenum = $2; - $function = $3; - - if($function =~ /f[d]*open\(\"([^\"]*)\",\"([^\"]*)\"\) = (\(nil\)|0x([0-9a-f]*))/) { - if($3 eq "(nil)") { - ; - } - else { - $fopen{$4}=1; - $fopenfile{$4}="$source:$linenum"; - $fopens++; - } - } - # fclose(0x1026c8) - elsif($function =~ /fclose\(0x([0-9a-f]*)\)/) { - if(!$fopen{$1}) { - print "fclose() without fopen(): $line\n"; - } - else { - $fopen{$1}=0; - $fopens--; - } - } - } - # GETNAME url.c:1901 getnameinfo() - elsif($_ =~ /^GETNAME ([^ ]*):(\d*) (.*)/) { - # not much to do - } - - # ADDR url.c:1282 getaddrinfo() = 0x5ddd - elsif($_ =~ /^ADDR ([^ ]*):(\d*) (.*)/) { - # generic match for the filename+linenumber - $source = $1; - $linenum = $2; - $function = $3; - - if($function =~ /getaddrinfo\(\) = (\(nil\)|0x([0-9a-f]*))/) { - my $add = $2; - if($add eq "(nil)") { - ; - } - else { - $addrinfo{$add}=1; - $addrinfofile{$add}="$source:$linenum"; - $addrinfos++; - } - if($trace) { - printf("GETADDRINFO ($source:$linenum)\n"); - } - } - # fclose(0x1026c8) - elsif($function =~ /freeaddrinfo\(0x([0-9a-f]*)\)/) { - if(!$addrinfo{$1}) { - print "freeaddrinfo() without getaddrinfo(): $line\n"; - } - else { - $addrinfo{$1}=0; - $addrinfos--; - } - if($trace) { - printf("FREEADDRINFO ($source:$linenum)\n"); - } - } - - } - else { - print "Not recognized prefix line: $line\n"; - } -} -close(FILE); - -if($totalmem) { - print "Leak detected: memory still allocated: $totalmem bytes\n"; - - for(keys %sizeataddr) { - $addr = $_; - $size = $sizeataddr{$addr}; - if($size > 0) { - print "At $addr, there's $size bytes.\n"; - print " allocated by ".$getmem{$addr}."\n"; - } - } -} - -if($openfile) { - for(keys %filedes) { - if($filedes{$_} == 1) { - print "Open file descriptor created at ".$getfile{$_}."\n"; - } - } -} - -if($fopens) { - print "Open FILE handles left at:\n"; - for(keys %fopen) { - if($fopen{$_} == 1) { - print "fopen() called at ".$fopenfile{$_}."\n"; - } - } -} - -if($addrinfos) { - print "IPv6-style name resolve data left at:\n"; - for(keys %addrinfofile) { - if($addrinfo{$_} == 1) { - print "getaddrinfo() called at ".$addrinfofile{$_}."\n"; - } - } -} - -if($verbose) { - print "Mallocs: $mallocs\n", - "Reallocs: $reallocs\n", - "Callocs: $callocs\n", - "Strdups: $strdups\n", - "Frees: $frees\n", - "Allocations: ".($mallocs + $callocs + $reallocs + $strdups)."\n"; - - print "Maximum allocated: $maxmem\n"; -} diff --git a/Utilities/cmcurl-7.19.0/tests/runtests.1 b/Utilities/cmcurl-7.19.0/tests/runtests.1 deleted file mode 100644 index c09741c..0000000 --- a/Utilities/cmcurl-7.19.0/tests/runtests.1 +++ /dev/null @@ -1,104 +0,0 @@ -.\" ************************************************************************** -.\" * _ _ ____ _ -.\" * Project ___| | | | _ \| | -.\" * / __| | | | |_) | | -.\" * | (__| |_| | _ <| |___ -.\" * \___|\___/|_| \_\_____| -.\" * -.\" * Copyright (C) 1998 - 2007, Daniel Stenberg, <daniel@haxx.se>, et al. -.\" * -.\" * This software is licensed as described in the file COPYING, which -.\" * you should have received as part of this distribution. The terms -.\" * are also available at http://curl.haxx.se/docs/copyright.html. -.\" * -.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell -.\" * copies of the Software, and permit persons to whom the Software is -.\" * furnished to do so, under the terms of the COPYING file. -.\" * -.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -.\" * KIND, either express or implied. -.\" * -.\" * $Id$ -.\" ************************************************************************** -.\" -.TH runtests.pl 1 "11 Oct 2007" "Curl 7.17.1" "runtests" -.SH NAME -runtests.pl \- run one or more test cases -.SH SYNOPSIS -.B runtests.pl [options] [test number] [!test number] [key word] [!key word] -.SH DESCRIPTION -\fIruntests.pl\fP runs one, several or all the existing test cases in curl's -test suite. It is often called from the root Makefile of the curl package with -\&'make test'. -.SH "TEST NUMBER" -If no test case number is given, all existing tests that the script can find -will be considered for running. You can specify single test cases to run, -space-separated, like "1 3 5 7 11", and you can specify a range like "45 to -67". You can also specify only the tests you don't want to run by listing -the numbers with a leading exclamation point, like "!66". -.P -It is also possible to specify tests to skip based on a key word describing -the test. These are specified with a leading exclamation point and the -key word or phrase, like "!HTTP NTLM auth". Likewise, tests to run can -be specified simply by specifying the unadorned key words, like "FTPS". -Remember that the exclamation marks and spaces will need to be quoted somehow -when entered at many command shells. -.SH OPTIONS -.IP "-a" -Continue running the rest of the test cases even if one test fails. By -default, the test script stops as soon as an error is detected. -.IP "-bN" -Use N as the base TCP/UDP port number on which to start the test servers. -.IP "-c <curl>" -Provide a custom curl binary to run the tests with. Default is the curl -executable in the build tree. -.IP "-d" -Enable protocol debug: have the servers display protocol output. -.IP "-g" -Run the given test(s) with gdb. This is best used on a single test case and -curl built --disable-shared. This then fires up gdb with command line set to -run the specified test case. Simply (set a break-point and) type 'run' to -start. -.IP "-h" -Displays a help text about this program's command line options. -.IP "-k" -Keep output and log files in log/ after a test run, even if no error was -detected. Useful for debugging. -.IP "-l" -Lists all test case names. -.IP "-n" -Disable the check for and use of valgrind. -.IP "-p" -Prints out all files in "log/" to stdout when a test case fails. Very -practical when used in the automated and distributed tests since then the -people checking the failures and the reasons for them might not have physical -access to the machine and logs. -.IP "-s" -Shorter output. Speaks less than default. -.IP "-t[num]" -Selects a \fBtorture\fP test for the given tests. This makes runtests.pl first -run the tests once and count the number of memory allocations made. It then -reruns the test that number of times, each time forcing one of the allocations -to fail until all allocs have been tested. By setting \fInum\fP you can force -the allocation with that number to be set to fail at once instead of looping -through everyone, which is very handy when debugging and then often in -combination with \fI-g\fP. -.IP "-v" -Enable verbose output. Speaks more than default. -.SH "RUNNING TESTS" -Many tests have conditions that must be met before the test case can run -fine. They could depend on built-in features in libcurl or features present in -the operating system or even in third-party libraries that curl may or may not -use. -.P -The test script checks most of these by itself to determine when it is -safe to attempt to run each test. Those which cannot be run due to -failed requirements will simply be skipped and listed at the completion -of all test cases. In some unusual configurations, the test script -cannot make the correct determination for all tests. In these cases, -the problematic tests can be skipped using the "!keyword" skip feature -documented earlier. -.SH "WRITING TESTS" -The simplest way to write test cases is to start with a similar existing test, -save it with a new number and then adjust it to fit. There's an attempt to -document the test case file format in the tests/FILEFORMAT. diff --git a/Utilities/cmcurl-7.19.0/tests/runtests.html b/Utilities/cmcurl-7.19.0/tests/runtests.html deleted file mode 100644 index 32d78f2..0000000 --- a/Utilities/cmcurl-7.19.0/tests/runtests.html +++ /dev/null @@ -1,83 +0,0 @@ -<html><head> -<title>runtests.pl man page</title> -<meta name="generator" content="roffit 0.7"> -<STYLE type="text/css"> -P.level0 { - padding-left: 2em; -} - -P.level1 { - padding-left: 4em; -} - -P.level2 { - padding-left: 6em; -} - -span.emphasis { - font-style: italic; -} - -span.bold { - font-weight: bold; -} - -span.manpage { - font-weight: bold; -} - -h2.nroffsh { - background-color: #e0e0e0; -} - -span.nroffip { - font-weight: bold; - font-size: 120%; - font-family: monospace; -} - -p.roffit { - text-align: center; - font-size: 80%; -} -</STYLE> -</head><body> - -<p class="level0"><a name="NAME"></a><h2 class="nroffsh">NAME</h2> -<p class="level0">runtests.pl - run one or more test cases <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2> -<p class="level0"><span Class="bold">runtests.pl [options] [test number] [!test number] [key word] [!key word]</span> <a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2> -<p class="level0"><span Class="emphasis">runtests.pl</span> runs one, several or all the existing test cases in curl's test suite. It is often called from the root Makefile of the curl package with 'make test'. <a name="TEST"></a><h2 class="nroffsh">TEST NUMBER</h2> -<p class="level0">If no test case number is given, all existing tests that the script can find will be considered for running. You can specify single test cases to run, space-separated, like "1 3 5 7 11", and you can specify a range like "45 to 67". You can also specify only the tests you don't want to run by listing the numbers with a leading exclamation point, like "!66". -<p class="level0">It is also possible to specify tests to skip based on a key word describing the test. These are specified with a leading exclamation point and the key word or phrase, like "!HTTP NTLM auth". Likewise, tests to run can be specified simply by specifying the unadorned key words, like "FTPS". Remember that the exclamation marks and spaces will need to be quoted somehow when entered at many command shells. <a name="OPTIONS"></a><h2 class="nroffsh">OPTIONS</h2> -<p class="level0"> -<p class="level0"><a name="-a"></a><span class="nroffip">-a</span> -<p class="level1">Continue running the rest of the test cases even if one test fails. By default, the test script stops as soon as an error is detected. -<p class="level0"><a name="-bN"></a><span class="nroffip">-bN</span> -<p class="level1">Use N as the base TCP/UDP port number on which to start the test servers. -<p class="level0"><a name="-c"></a><span class="nroffip">-c <curl></span> -<p class="level1">Provide a custom curl binary to run the tests with. Default is the curl executable in the build tree. -<p class="level0"><a name="-d"></a><span class="nroffip">-d</span> -<p class="level1">Enable protocol debug: have the servers display protocol output. -<p class="level0"><a name="-g"></a><span class="nroffip">-g</span> -<p class="level1">Run the given test(s) with gdb. This is best used on a single test case and curl built --disable-shared. This then fires up gdb with command line set to run the specified test case. Simply (set a break-point and) type 'run' to start. -<p class="level0"><a name="-h"></a><span class="nroffip">-h</span> -<p class="level1">Displays a help text about this program's command line options. -<p class="level0"><a name="-k"></a><span class="nroffip">-k</span> -<p class="level1">Keep output and log files in log/ after a test run, even if no error was detected. Useful for debugging. -<p class="level0"><a name="-l"></a><span class="nroffip">-l</span> -<p class="level1">Lists all test case names. -<p class="level0"><a name="-n"></a><span class="nroffip">-n</span> -<p class="level1">Disable the check for and use of valgrind. -<p class="level0"><a name="-p"></a><span class="nroffip">-p</span> -<p class="level1">Prints out all files in "log/" to stdout when a test case fails. Very practical when used in the automated and distributed tests since then the people checking the failures and the reasons for them might not have physical access to the machine and logs. -<p class="level0"><a name="-s"></a><span class="nroffip">-s</span> -<p class="level1">Shorter output. Speaks less than default. -<p class="level0"><a name="-tnum"></a><span class="nroffip">-t[num]</span> -<p class="level1">Selects a <span Class="bold">torture</span> test for the given tests. This makes runtests.pl first run the tests once and count the number of memory allocations made. It then reruns the test that number of times, each time forcing one of the allocations to fail until all allocs have been tested. By setting <span Class="emphasis">num</span> you can force the allocation with that number to be set to fail at once instead of looping through everyone, which is very handy when debugging and then often in combination with <a class="emphasis" href="#-g">-g</a>. -<p class="level0"><a name="-v"></a><span class="nroffip">-v</span> -<p class="level1">Enable verbose output. Speaks more than default. <a name="RUNNING"></a><h2 class="nroffsh">RUNNING TESTS</h2> -<p class="level0">Many tests have conditions that must be met before the test case can run fine. They could depend on built-in features in libcurl or features present in the operating system or even in third-party libraries that curl may or may not use. -<p class="level0">The test script checks most of these by itself to determine when it is safe to attempt to run each test. Those which cannot be run due to failed requirements will simply be skipped and listed at the completion of all test cases. In some unusual configurations, the test script cannot make the correct determination for all tests. In these cases, the problematic tests can be skipped using the "!keyword" skip feature documented earlier. <a name="WRITING"></a><h2 class="nroffsh">WRITING TESTS</h2> -<p class="level0">The simplest way to write test cases is to start with a similar existing test, save it with a new number and then adjust it to fit. There's an attempt to document the test case file format in the tests/FILEFORMAT. <p class="roffit"> - This HTML page was made with <a href="http://daniel.haxx.se/projects/roffit/">roffit</a>. -</body></html> diff --git a/Utilities/cmcurl-7.19.0/tests/runtests.pdf b/Utilities/cmcurl-7.19.0/tests/runtests.pdf Binary files differdeleted file mode 100644 index 90dec5e..0000000 --- a/Utilities/cmcurl-7.19.0/tests/runtests.pdf +++ /dev/null diff --git a/Utilities/cmcurl-7.19.0/tests/runtests.pl b/Utilities/cmcurl-7.19.0/tests/runtests.pl deleted file mode 100755 index 79d85e6..0000000 --- a/Utilities/cmcurl-7.19.0/tests/runtests.pl +++ /dev/null @@ -1,3160 +0,0 @@ -#!/usr/bin/env perl -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al. -# -# This software is licensed as described in the file COPYING, which -# you should have received as part of this distribution. The terms -# are also available at http://curl.haxx.se/docs/copyright.html. -# -# You may opt to use, copy, modify, merge, publish, distribute and/or sell -# copies of the Software, and permit persons to whom the Software is -# furnished to do so, under the terms of the COPYING file. -# -# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -# KIND, either express or implied. -# -# $Id$ -########################################################################### - -# Experimental hooks are available to run tests remotely on machines that -# are able to run curl but are unable to run the test harness. -# The following sections need to be modified: -# -# $HOSTIP, $HOST6IP - Set to the address of the host running the test suite -# $CLIENTIP, $CLIENT6IP - Set to the address of the host running curl -# runclient, runclientoutput - Modify to copy all the files in the log/ -# directory to the system running curl, run the given command remotely -# and save the return code or returned stdout (respectively), then -# copy all the files from the remote system's log/ directory back to -# the host running the test suite. This can be done a few ways, such -# as using scp & ssh, rsync & telnet, or using a NFS shared directory -# and ssh. -# -# 'make && make test' needs to be done on both machines before making the -# above changes and running runtests.pl manually. In the shared NFS case, -# the contents of the tests/server/ directory must be from the host -# running the test suite, while the rest must be from the host running curl. -# -# Note that even with these changes a number of tests will still fail (mainly -# to do with cookies, those that set environment variables, or those that -# do more than touch the file system in a <precheck> or <postcheck> -# section). These can be added to the $TESTCASES line below, -# e.g. $TESTCASES="!8 !31 !63 !cookies..." -# -# Finally, to properly support -g and -n, checktestcmd needs to change -# to check the remote system's PATH, and the places in the code where -# the curl binary is read directly to determine its type also need to be -# fixed. As long as the -g option is never given, and the -n is always -# given, this won't be a problem. - - -# These should be the only variables that might be needed to get edited: - -BEGIN { - @INC=(@INC, $ENV{'srcdir'}, "."); -} - -use strict; -#use Time::HiRes qw( gettimeofday ); -#use warnings; -use Cwd; - -# Variables and subs imported from sshhelp module -use sshhelp qw( - $sshdexe - $sshexe - $sftpexe - $sshconfig - $sftpconfig - $sshlog - $sftplog - $sftpcmds - display_sshdconfig - display_sshconfig - display_sftpconfig - display_sshdlog - display_sshlog - display_sftplog - find_sshd - find_ssh - find_sftp - sshversioninfo - ); - -require "getpart.pm"; # array functions -require "valgrind.pm"; # valgrind report parser -require "ftp.pm"; - -my $HOSTIP="127.0.0.1"; # address on which the test server listens -my $HOST6IP="[::1]"; # address on which the test server listens -my $CLIENTIP="127.0.0.1"; # address which curl uses for incoming connections -my $CLIENT6IP="[::1]"; # address which curl uses for incoming connections - -my $base = 8990; # base port number - -my $HTTPPORT; # HTTP server port -my $HTTP6PORT; # HTTP IPv6 server port -my $HTTPSPORT; # HTTPS server port -my $FTPPORT; # FTP server port -my $FTP2PORT; # FTP server 2 port -my $FTPSPORT; # FTPS server port -my $FTP6PORT; # FTP IPv6 server port -my $TFTPPORT; # TFTP -my $TFTP6PORT; # TFTP -my $SSHPORT; # SCP/SFTP -my $SOCKSPORT; # SOCKS4/5 port - -my $srcdir = $ENV{'srcdir'} || '.'; -my $CURL="../src/curl"; # what curl executable to run on the tests -my $DBGCURL=$CURL; #"../src/.libs/curl"; # alternative for debugging -my $LOGDIR="log"; -my $TESTDIR="$srcdir/data"; -my $LIBDIR="./libtest"; -my $SERVERIN="$LOGDIR/server.input"; # what curl sent the server -my $SERVER2IN="$LOGDIR/server2.input"; # what curl sent the second server -my $CURLLOG="$LOGDIR/curl.log"; # all command lines run -my $FTPDCMD="$LOGDIR/ftpserver.cmd"; # copy ftp server instructions here -my $SERVERLOGS_LOCK="$LOGDIR/serverlogs.lock"; # server logs advisor read lock - -# Normally, all test cases should be run, but at times it is handy to -# simply run a particular one: -my $TESTCASES="all"; - -# To run specific test cases, set them like: -# $TESTCASES="1 2 3 7 8"; - -####################################################################### -# No variables below this point should need to be modified -# - -my $HTTPPIDFILE=".http.pid"; -my $HTTP6PIDFILE=".http6.pid"; -my $HTTPSPIDFILE=".https.pid"; -my $FTPPIDFILE=".ftp.pid"; -my $FTP6PIDFILE=".ftp6.pid"; -my $FTP2PIDFILE=".ftp2.pid"; -my $FTPSPIDFILE=".ftps.pid"; -my $TFTPPIDFILE=".tftpd.pid"; -my $TFTP6PIDFILE=".tftp6.pid"; -my $SSHPIDFILE=".ssh.pid"; -my $SOCKSPIDFILE=".socks.pid"; - -# invoke perl like this: -my $perl="perl -I$srcdir"; -my $server_response_maxtime=13; - -# this gets set if curl is compiled with debugging: -my $curl_debug=0; -my $libtool; - -# name of the file that the memory debugging creates: -my $memdump="$LOGDIR/memdump"; - -# the path to the script that analyzes the memory debug output file: -my $memanalyze="$perl $srcdir/memanalyze.pl"; - -my $pwd = getcwd(); # current working directory - -my $start; -my $forkserver=0; -my $ftpchecktime; # time it took to verify our test FTP server - -my $stunnel = checkcmd("stunnel4") || checkcmd("stunnel"); -my $valgrind = checktestcmd("valgrind"); -my $valgrind_logfile="--logfile"; -my $valgrind_tool; -my $gdb = checktestcmd("gdb"); - -my $ssl_version; # set if libcurl is built with SSL support -my $large_file; # set if libcurl is built with large file support -my $has_idn; # set if libcurl is built with IDN support -my $http_ipv6; # set if HTTP server has IPv6 support -my $ftp_ipv6; # set if FTP server has IPv6 support -my $tftp_ipv6; # set if TFTP server has IPv6 support -my $has_ipv6; # set if libcurl is built with IPv6 support -my $has_libz; # set if libcurl is built with libz support -my $has_getrlimit; # set if system has getrlimit() -my $has_ntlm; # set if libcurl is built with NTLM support - -my $has_openssl; # built with a lib using an OpenSSL-like API -my $has_gnutls; # built with GnuTLS -my $has_nss; # built with NSS -my $has_yassl; # built with yassl - -my $ssllib; # name of the lib we use (for human presentation) -my $has_crypto; # set if libcurl is built with cryptographic support -my $has_textaware; # set if running on a system that has a text mode concept - # on files. Windows for example -my @protocols; # array of supported protocols - -my $skipped=0; # number of tests skipped; reported in main loop -my %skipped; # skipped{reason}=counter, reasons for skip -my @teststat; # teststat[testnum]=reason, reasons for skip -my %disabled_keywords; # key words of tests to skip -my %enabled_keywords; # key words of tests to run - -my $sshdid; # for socks server, ssh daemon version id -my $sshdvernum; # for socks server, ssh daemon version number -my $sshdverstr; # for socks server, ssh daemon version string -my $sshderror; # for socks server, ssh daemon version error - -my $defserverlogslocktimeout = 20; # timeout to await server logs lock removal -my $defpostcommanddelay = 0; # delay between command and postcheck sections - -####################################################################### -# variables the command line options may set -# - -my $short; -my $verbose; -my $debugprotocol; -my $anyway; -my $gdbthis; # run test case with gdb debugger -my $keepoutfiles; # keep stdout and stderr files after tests -my $listonly; # only list the tests -my $postmortem; # display detailed info about failed tests - -my %run; # running server -my %doesntrun; # servers that don't work, identified by pidfile - -# torture test variables -my $torture; -my $tortnum; -my $tortalloc; - -# open and close each time to allow removal at any time -sub logmsg { -# uncomment the Time::HiRes usage for this -# my ($seconds, $microseconds) = gettimeofday; -# my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = -# localtime($seconds); - my $t; - if(1) { -# $t = sprintf ("%02d:%02d:%02d.%06d ", $hour, $min, $sec, -# $microseconds); - } - for(@_) { - print "${t}$_"; - } -} - -# get the name of the current user -my $USER = $ENV{USER}; # Linux -if (!$USER) { - $USER = $ENV{USERNAME}; # Windows - if (!$USER) { - $USER = $ENV{LOGNAME}; # Some UNIX (I think) - } -} - -# enable memory debugging if curl is compiled with it -$ENV{'CURL_MEMDEBUG'} = $memdump; -$ENV{'HOME'}=$pwd; - -sub catch_zap { - my $signame = shift; - logmsg "runtests.pl received SIG$signame, exiting\n"; - stopservers(1); - die "Somebody sent me a SIG$signame"; -} -$SIG{INT} = \&catch_zap; -$SIG{KILL} = \&catch_zap; - -########################################################################## -# Clear all possible '*_proxy' environment variables for various protocols -# to prevent them to interfere with our testing! - -my $protocol; -foreach $protocol (('ftp', 'http', 'ftps', 'https', 'no')) { - my $proxy = "${protocol}_proxy"; - # clear lowercase version - $ENV{$proxy}=undef; - # clear uppercase version - $ENV{uc($proxy)}=undef; -} - -# make sure we don't get affected by other variables that control our -# behaviour - -$ENV{'SSL_CERT_DIR'}=undef; -$ENV{'SSL_CERT_PATH'}=undef; -$ENV{'CURL_CA_BUNDLE'}=undef; - -####################################################################### -# Check if a given child process has just died. Reaps it if so. -# -sub checkdied { - use POSIX ":sys_wait_h"; - my $pid = $_[0]; - if(not defined $pid || $pid <= 0) { - return 0; - } - my $rc = waitpid($pid, &WNOHANG); - return ($rc == $pid)?1:0; -} - -####################################################################### -# Start a new thread/process and run the given command line in there. -# Return the pids (yes plural) of the new child process to the parent. -# -sub startnew { - my ($cmd, $pidfile, $timeout, $fake)=@_; - - logmsg "startnew: $cmd\n" if ($verbose); - - my $child = fork(); - my $pid2 = 0; - - if(not defined $child) { - logmsg "startnew: fork() failure detected\n"; - return (-1,-1); - } - - if(0 == $child) { - # Here we are the child. Run the given command. - - # Put an "exec" in front of the command so that the child process - # keeps this child's process ID. - exec("exec $cmd") || die "Can't exec() $cmd: $!"; - - # exec() should never return back here to this process. We protect - # ourselves by calling die() just in case something goes really bad. - die "error: exec() has returned"; - } - - # Ugly hack but ssh client doesn't support pid files - if ($fake) { - if(open(OUT, ">$pidfile")) { - print OUT $child . "\n"; - close(OUT); - logmsg "startnew: $pidfile faked with pid=$child\n" if($verbose); - } - else { - logmsg "startnew: failed to write fake $pidfile with pid=$child\n"; - } - # could/should do a while connect fails sleep a bit and loop - sleep $timeout; - if (checkdied($child)) { - logmsg "startnew: child process has failed to start\n" if($verbose); - return (-1,-1); - } - } - - my $count = $timeout; - while($count--) { - if(-f $pidfile && -s $pidfile && open(PID, "<$pidfile")) { - $pid2 = 0 + <PID>; - close(PID); - if(($pid2 > 0) && kill(0, $pid2)) { - # if $pid2 is valid, then make sure this pid is alive, as - # otherwise it is just likely to be the _previous_ pidfile or - # similar! - last; - } - # invalidate $pid2 if not actually alive - $pid2 = 0; - } - if (checkdied($child)) { - logmsg "startnew: child process has died, server might start up\n" - if($verbose); - # We can't just abort waiting for the server with a - # return (-1,-1); - # because the server might have forked and could still start - # up normally. Instead, just reduce the amount of time we remain - # waiting. - $count >>= 2; - } - sleep(1); - } - - # Return two PIDs, the one for the child process we spawned and the one - # reported by the server itself (in case it forked again on its own). - # Both (potentially) need to be killed at the end of the test. - return ($child, $pid2); -} - - -####################################################################### -# Check for a command in the PATH of the test server. -# -sub checkcmd { - my ($cmd)=@_; - my @paths=(split(":", $ENV{'PATH'}), "/usr/sbin", "/usr/local/sbin", - "/sbin", "/usr/bin", "/usr/local/bin" ); - for(@paths) { - if( -x "$_/$cmd" && ! -d "$_/$cmd") { - # executable bit but not a directory! - return "$_/$cmd"; - } - } -} - -####################################################################### -# Check for a command in the PATH of the machine running curl. -# -sub checktestcmd { - my ($cmd)=@_; - return checkcmd($cmd); -} - -####################################################################### -# Run the application under test and return its return code -# -sub runclient { - my ($cmd)=@_; - return system($cmd); - -# This is one way to test curl on a remote machine -# my $out = system("ssh $CLIENTIP cd \'$pwd\' \\; \'$cmd\'"); -# sleep 2; # time to allow the NFS server to be updated -# return $out; -} - -####################################################################### -# Run the application under test and return its stdout -# -sub runclientoutput { - my ($cmd)=@_; - return `$cmd`; - -# This is one way to test curl on a remote machine -# my @out = `ssh $CLIENTIP cd \'$pwd\' \\; \'$cmd\'`; -# sleep 2; # time to allow the NFS server to be updated -# return @out; - } - -####################################################################### -# Memory allocation test and failure torture testing. -# -sub torture { - my $testcmd = shift; - my $gdbline = shift; - - # remove memdump first to be sure we get a new nice and clean one - unlink($memdump); - - # First get URL from test server, ignore the output/result - runclient($testcmd); - - logmsg " CMD: $testcmd\n" if($verbose); - - # memanalyze -v is our friend, get the number of allocations made - my $count=0; - my @out = `$memanalyze -v $memdump`; - for(@out) { - if(/^Allocations: (\d+)/) { - $count = $1; - last; - } - } - if(!$count) { - logmsg " found no allocs to make fail\n"; - return 0; - } - - logmsg " $count allocations to make fail\n"; - - for ( 1 .. $count ) { - my $limit = $_; - my $fail; - my $dumped_core; - - if($tortalloc && ($tortalloc != $limit)) { - next; - } - - logmsg "Fail alloc no: $limit\r" if($verbose); - - # make the memory allocation function number $limit return failure - $ENV{'CURL_MEMLIMIT'} = $limit; - - # remove memdump first to be sure we get a new nice and clean one - unlink($memdump); - - logmsg "**> Alloc number $limit is now set to fail <**\n" if($gdbthis); - - my $ret; - if($gdbthis) { - runclient($gdbline) - } - else { - $ret = runclient($testcmd); - } - - # Now clear the variable again - $ENV{'CURL_MEMLIMIT'} = undef; - - if(-r "core") { - # there's core file present now! - logmsg " core dumped\n"; - $dumped_core = 1; - $fail = 2; - } - - # verify that it returns a proper error code, doesn't leak memory - # and doesn't core dump - if($ret & 255) { - logmsg " system() returned $ret\n"; - $fail=1; - } - else { - my @memdata=`$memanalyze $memdump`; - my $leak=0; - for(@memdata) { - if($_ ne "") { - # well it could be other memory problems as well, but - # we call it leak for short here - $leak=1; - } - } - if($leak) { - logmsg "** MEMORY FAILURE\n"; - logmsg @memdata; - logmsg `$memanalyze -l $memdump`; - $fail = 1; - } - } - if($fail) { - logmsg " Failed on alloc number $limit in test.\n", - " invoke with -t$limit to repeat this single case.\n"; - stopservers($verbose); - return 1; - } - } - - logmsg "torture OK\n"; - return 0; -} - -####################################################################### -# stop the given test server (pid) -# -sub stopserver { - my ($pid) = @_; - - if(not defined $pid || $pid <= 0) { - return; # whad'da'ya wanna'da with no pid ? - } - - # It might be more than one pid - # Send each one a SIGTERM to gracefully kill it - - my @killed; - my @pids = split(/\s+/, $pid); - for (@pids) { - chomp($_); - if($_ =~ /^(\d+)$/) { - if(($1 > 0) && kill(0, $1)) { - if($verbose) { - logmsg "RUN: Test server pid $1 signalled to die\n"; - } - kill(15, $1); # die! - push @killed, $1; - } - } - } - - # Give each process killed up to a few seconds to die, then send - # a SIGKILL to finish it off for good. - for (@killed) { - my $count = 5; # wait for this many seconds for server to die - while($count--) { - if (!kill(0, $_) || checkdied($_)) { - last; - } - sleep(1); - } - if ($count < 0) { - logmsg "RUN: forcing pid $_ to die with SIGKILL\n"; - kill(9, $_); # die! - } - } -} - -####################################################################### -# Verify that the server that runs on $ip, $port is our server. This also -# implies that we can speak with it, as there might be occasions when the -# server runs fine but we cannot talk to it ("Failed to connect to ::1: Can't -# assign requested address" # - -sub verifyhttp { - my ($proto, $ip, $port) = @_; - my $cmd = "$CURL --max-time $server_response_maxtime --output $LOGDIR/verifiedserver --insecure --silent --verbose --globoff \"$proto://$ip:$port/verifiedserver\" 2>$LOGDIR/verifyhttp"; - my $pid; - - # verify if our/any server is running on this port - logmsg "CMD; $cmd\n" if ($verbose); - my $res = runclient($cmd); - - $res >>= 8; # rotate the result - my $data; - - if($res && $verbose) { - open(ERR, "<$LOGDIR/verifyhttp"); - my @e = <ERR>; - close(ERR); - logmsg "RUN: curl command returned $res\n"; - for(@e) { - if($_ !~ /^([ \t]*)$/) { - logmsg "RUN: $_"; - } - } - } - open(FILE, "<$LOGDIR/verifiedserver"); - my @file=<FILE>; - close(FILE); - $data=$file[0]; # first line - - if ( $data =~ /WE ROOLZ: (\d+)/ ) { - $pid = 0+$1; - } - elsif($res == 6) { - # curl: (6) Couldn't resolve host '::1' - logmsg "RUN: failed to resolve host ($proto://$ip:$port/verifiedserver)\n"; - return -1; - } - elsif($data || ($res != 7)) { - logmsg "RUN: Unknown server is running on port $port\n"; - return -1; - } - return $pid; -} - -####################################################################### -# Verify that the server that runs on $ip, $port is our server. This also -# implies that we can speak with it, as there might be occasions when the -# server runs fine but we cannot talk to it ("Failed to connect to ::1: Can't -# assign requested address" # - -sub verifyftp { - my ($proto, $ip, $port) = @_; - my $pid; - my $time=time(); - my $extra; - if($proto eq "ftps") { - $extra = "--insecure --ftp-ssl-control "; - } - my $cmd="$CURL --max-time $server_response_maxtime --silent --verbose --globoff $extra\"$proto://$ip:$port/verifiedserver\" 2>$LOGDIR/verifyftp"; - # check if this is our server running on this port: - my @data=runclientoutput($cmd); - logmsg "RUN: $cmd\n" if($verbose); - my $line; - - foreach $line (@data) { - if ( $line =~ /WE ROOLZ: (\d+)/ ) { - # this is our test server with a known pid! - $pid = 0+$1; - last; - } - } - if($pid <= 0 && $data[0]) { - # this is not a known server - logmsg "RUN: Unknown server on our FTP port: $port\n"; - return 0; - } - # we can/should use the time it took to verify the FTP server as a measure - # on how fast/slow this host/FTP is. - my $took = time()-$time; - - if($verbose) { - logmsg "RUN: Verifying our test FTP server took $took seconds\n"; - } - $ftpchecktime = $took?$took:1; # make sure it never is zero - - return $pid; -} - -####################################################################### -# Verify that the ssh server has written out its pidfile, recovering -# the pid from the file and returning it if a process with that pid is -# actually alive. - -sub verifyssh { - my ($proto, $ip, $port) = @_; - my $pid = 0; - if(open(FILE, "<$SSHPIDFILE")) { - $pid=0+<FILE>; - close(FILE); - } - if($pid > 0) { - # if we have a pid it is actually our ssh server, - # since runsshserver() unlinks previous pidfile - if(!kill(0, $pid)) { - logmsg "RUN: SSH server has died after starting up\n"; - checkdied($pid); - unlink($SSHPIDFILE); - $pid = -1; - } - } - return $pid; -} - -####################################################################### -# Verify that we can connect to the sftp server, properly authenticate -# with generated config and key files and run a simple remote pwd. - -sub verifysftp { - my ($proto, $ip, $port) = @_; - my $verified = 0; - # Find out sftp client canonical file name - my $sftp = find_sftp(); - if(!$sftp) { - logmsg "RUN: SFTP server cannot find $sftpexe\n"; - return -1; - } - # Find out ssh client canonical file name - my $ssh = find_ssh(); - if(!$ssh) { - logmsg "RUN: SFTP server cannot find $sshexe\n"; - return -1; - } - # Connect to sftp server, authenticate and run a remote pwd - # command using our generated configuration and key files - my $cmd = "$sftp -b $sftpcmds -F $sftpconfig -S $ssh $ip > $sftplog 2>&1"; - my $res = runclient($cmd); - # Search for pwd command response in log file - if(open(SFTPLOGFILE, "<$sftplog")) { - while(<SFTPLOGFILE>) { - if(/^Remote working directory: /) { - $verified = 1; - last; - } - } - close(SFTPLOGFILE); - } - return $verified; -} - - -####################################################################### -# STUB for verifying socks - -sub verifysocks { - my ($proto, $ip, $port) = @_; - my $pid = 0; - if(open(FILE, "<$SOCKSPIDFILE")) { - $pid=0+<FILE>; - close(FILE); - } - if($pid > 0) { - # if we have a pid it is actually our socks server, - # since runsocksserver() unlinks previous pidfile - if(!kill(0, $pid)) { - logmsg "RUN: SOCKS server has died after starting up\n"; - checkdied($pid); - unlink($SOCKSPIDFILE); - $pid = -1; - } - } - return $pid; -} - -####################################################################### -# Verify that the server that runs on $ip, $port is our server. -# Retry over several seconds before giving up. The ssh server in -# particular can take a long time to start if it needs to generate -# keys on a slow or loaded host. -# - -my %protofunc = ('http' => \&verifyhttp, - 'https' => \&verifyhttp, - 'ftp' => \&verifyftp, - 'ftps' => \&verifyftp, - 'tftp' => \&verifyftp, - 'ssh' => \&verifyssh, - 'socks' => \&verifysocks); - -sub verifyserver { - my ($proto, $ip, $port) = @_; - - my $count = 30; # try for this many seconds - my $pid; - - while($count--) { - my $fun = $protofunc{$proto}; - - $pid = &$fun($proto, $ip, $port); - - if($pid > 0) { - last; - } - elsif($pid < 0) { - # a real failure, stop trying and bail out - return 0; - } - sleep(1); - } - return $pid; -} - - - -####################################################################### -# start the http server -# -sub runhttpserver { - my ($verbose, $ipv6) = @_; - my $RUNNING; - my $pidfile = $HTTPPIDFILE; - my $port = $HTTPPORT; - my $ip = $HOSTIP; - my $nameext; - my $fork = $forkserver?"--fork":""; - - if($ipv6) { - # if IPv6, use a different setup - $pidfile = $HTTP6PIDFILE; - $port = $HTTP6PORT; - $ip = $HOST6IP; - $nameext="-ipv6"; - } - - # don't retry if the server doesn't work - if ($doesntrun{$pidfile}) { - return (0,0); - } - - my $pid = checkserver($pidfile); - if($pid > 0) { - stopserver($pid); - } - unlink($pidfile); - - my $flag=$debugprotocol?"-v ":""; - my $dir=$ENV{'srcdir'}; - if($dir) { - $flag .= "-d \"$dir\" "; - } - - my $cmd="$perl $srcdir/httpserver.pl -p $pidfile $fork$flag $port $ipv6"; - my ($httppid, $pid2) = - startnew($cmd, $pidfile, 15, 0); # start the server in a new process - - if($httppid <= 0 || !kill(0, $httppid)) { - # it is NOT alive - logmsg "RUN: failed to start the HTTP$nameext server\n"; - stopserver("$pid2"); - $doesntrun{$pidfile} = 1; - return (0,0); - } - - # Server is up. Verify that we can speak to it. - my $pid3 = verifyserver("http", $ip, $port); - if(!$pid3) { - logmsg "RUN: HTTP$nameext server failed verification\n"; - # failed to talk to it properly. Kill the server and return failure - stopserver("$httppid $pid2"); - $doesntrun{$pidfile} = 1; - return (0,0); - } - $pid2 = $pid3; - - if($verbose) { - logmsg "RUN: HTTP$nameext server is now running PID $httppid\n"; - } - - sleep(1); - - return ($httppid, $pid2); -} - -####################################################################### -# start the https server (or rather, tunnel) -# -sub runhttpsserver { - my ($verbose, $ipv6) = @_; - my $STATUS; - my $RUNNING; - my $ip = $HOSTIP; - my $pidfile = $HTTPSPIDFILE; - - if(!$stunnel) { - return 0; - } - - if($ipv6) { - # not complete yet - $ip = $HOST6IP; - } - - # don't retry if the server doesn't work - if ($doesntrun{$pidfile}) { - return (0,0); - } - - my $pid = checkserver($pidfile); - if($pid > 0) { - # kill previous stunnel! - stopserver($pid); - } - unlink($pidfile); - - my $flag=$debugprotocol?"-v ":""; - my $cmd="$perl $srcdir/httpsserver.pl $flag -p https -s \"$stunnel\" -d $srcdir -r $HTTPPORT $HTTPSPORT"; - - my ($httpspid, $pid2) = startnew($cmd, $pidfile, 15, 0); - - if($httpspid <= 0 || !kill(0, $httpspid)) { - # it is NOT alive - logmsg "RUN: failed to start the HTTPS server\n"; - stopservers($verbose); - $doesntrun{$pidfile} = 1; - return(0,0); - } - - # Server is up. Verify that we can speak to it. - my $pid3 = verifyserver("https", $ip, $HTTPSPORT); - if(!$pid3) { - logmsg "RUN: HTTPS server failed verification\n"; - # failed to talk to it properly. Kill the server and return failure - stopserver("$httpspid $pid2"); - $doesntrun{$pidfile} = 1; - return (0,0); - } - # Here pid3 is actually the pid returned by the unsecure-http server. - - if($verbose) { - logmsg "RUN: HTTPS server is now running PID $httpspid\n"; - } - - sleep(1); - - return ($httpspid, $pid2); -} - -####################################################################### -# start the ftp server -# -sub runftpserver { - my ($id, $verbose, $ipv6) = @_; - my $STATUS; - my $RUNNING; - my $port = $id?$FTP2PORT:$FTPPORT; - # check for pidfile - my $pidfile = $id?$FTP2PIDFILE:$FTPPIDFILE; - my $ip=$HOSTIP; - my $nameext; - my $cmd; - - if($ipv6) { - # if IPv6, use a different setup - $pidfile = $FTP6PIDFILE; - $port = $FTP6PORT; - $ip = $HOST6IP; - $nameext="-ipv6"; - } - - # don't retry if the server doesn't work - if ($doesntrun{$pidfile}) { - return (0,0); - } - - my $pid = checkserver($pidfile); - if($pid > 0) { - stopserver($pid); - } - unlink($pidfile); - - # start our server: - my $flag=$debugprotocol?"-v ":""; - $flag .= "-s \"$srcdir\" "; - my $addr; - if($id) { - $flag .="--id $id "; - } - if($ipv6) { - $flag .="--ipv6 "; - $addr = $HOST6IP; - } else { - $addr = $HOSTIP; - } - - $cmd="$perl $srcdir/ftpserver.pl --pidfile $pidfile $flag --port $port --addr \"$addr\""; - my ($ftppid, $pid2) = startnew($cmd, $pidfile, 15, 0); - - if($ftppid <= 0 || !kill(0, $ftppid)) { - # it is NOT alive - logmsg "RUN: failed to start the FTP$id$nameext server\n"; - stopserver("$pid2"); - $doesntrun{$pidfile} = 1; - return (0,0); - } - - # Server is up. Verify that we can speak to it. - my $pid3 = verifyserver("ftp", $ip, $port); - if(!$pid3) { - logmsg "RUN: FTP$id$nameext server failed verification\n"; - # failed to talk to it properly. Kill the server and return failure - stopserver("$ftppid $pid2"); - $doesntrun{$pidfile} = 1; - return (0,0); - } - $pid2 = $pid3; - - if($verbose) { - logmsg "RUN: FTP$id$nameext server is now running PID $ftppid\n"; - } - - sleep(1); - - return ($pid2, $ftppid); -} - -####################################################################### -# start the ftps server (or rather, tunnel) -# -sub runftpsserver { - my ($verbose, $ipv6) = @_; - my $STATUS; - my $RUNNING; - my $ip = $HOSTIP; - my $pidfile = $FTPSPIDFILE; - - if(!$stunnel) { - return 0; - } - - if($ipv6) { - # not complete yet - $ip = $HOST6IP; - } - - # don't retry if the server doesn't work - if ($doesntrun{$pidfile}) { - return (0,0); - } - - my $pid = checkserver($pidfile); - if($pid > 0) { - # kill previous stunnel! - stopserver($pid); - } - unlink($pidfile); - - my $flag=$debugprotocol?"-v ":""; - my $cmd="$perl $srcdir/httpsserver.pl $flag -p ftps -s \"$stunnel\" -d $srcdir -r $FTPPORT $FTPSPORT"; - - my ($ftpspid, $pid2) = startnew($cmd, $pidfile, 15, 0); - - if($ftpspid <= 0 || !kill(0, $ftpspid)) { - # it is NOT alive - logmsg "RUN: failed to start the FTPS server\n"; - stopservers($verbose); - $doesntrun{$pidfile} = 1; - return(0,0); - } - - # Server is up. Verify that we can speak to it. - my $pid3 = verifyserver("ftps", $ip, $FTPSPORT); - if(!$pid3) { - logmsg "RUN: FTPS server failed verification\n"; - # failed to talk to it properly. Kill the server and return failure - stopserver("$ftpspid $pid2"); - $doesntrun{$pidfile} = 1; - return (0,0); - } - # Here pid3 is actually the pid returned by the unsecure-ftp server. - - if($verbose) { - logmsg "RUN: FTPS server is now running PID $ftpspid\n"; - } - - sleep(1); - - return ($ftpspid, $pid2); -} - -####################################################################### -# start the tftp server -# -sub runtftpserver { - my ($id, $verbose, $ipv6) = @_; - my $STATUS; - my $RUNNING; - my $port = $TFTPPORT; - # check for pidfile - my $pidfile = $TFTPPIDFILE; - my $ip=$HOSTIP; - my $nameext; - my $cmd; - - if($ipv6) { - # if IPv6, use a different setup - $pidfile = $TFTP6PIDFILE; - $port = $TFTP6PORT; - $ip = $HOST6IP; - $nameext="-ipv6"; - } - - # don't retry if the server doesn't work - if ($doesntrun{$pidfile}) { - return (0,0); - } - - my $pid = checkserver($pidfile); - if($pid > 0) { - stopserver($pid); - } - unlink($pidfile); - - # start our server: - my $flag=$debugprotocol?"-v ":""; - $flag .= "-s \"$srcdir\" "; - if($id) { - $flag .="--id $id "; - } - if($ipv6) { - $flag .="--ipv6 "; - } - - $cmd="./server/tftpd --pidfile $pidfile $flag $port"; - my ($tftppid, $pid2) = startnew($cmd, $pidfile, 15, 0); - - if($tftppid <= 0 || !kill(0, $tftppid)) { - # it is NOT alive - logmsg "RUN: failed to start the TFTP$id$nameext server\n"; - stopserver("$pid2"); - $doesntrun{$pidfile} = 1; - return (0,0); - } - - # Server is up. Verify that we can speak to it. - my $pid3 = verifyserver("tftp", $ip, $port); - if(!$pid3) { - logmsg "RUN: TFTP$id$nameext server failed verification\n"; - # failed to talk to it properly. Kill the server and return failure - stopserver("$tftppid $pid2"); - $doesntrun{$pidfile} = 1; - return (0,0); - } - $pid2 = $pid3; - - if($verbose) { - logmsg "RUN: TFTP$id$nameext server is now running PID $tftppid\n"; - } - - sleep(1); - - return ($pid2, $tftppid); -} - - -####################################################################### -# Start the scp/sftp server -# -sub runsshserver { - my ($id, $verbose, $ipv6) = @_; - my $ip=$HOSTIP; - my $port = $SSHPORT; - my $socksport = $SOCKSPORT; - my $pidfile = $SSHPIDFILE; - - # don't retry if the server doesn't work - if ($doesntrun{$pidfile}) { - return (0,0); - } - - my $pid = checkserver($pidfile); - if($pid > 0) { - stopserver($pid); - } - unlink($pidfile); - - my $flag=$verbose?'-v ':''; - $flag .= '-d ' if($debugprotocol); - - my $cmd="$perl $srcdir/sshserver.pl ${flag}-u $USER -l $ip -p $port -s $socksport"; - my ($sshpid, $pid2) = startnew($cmd, $pidfile, 60, 0); - - # on loaded systems sshserver start up can take longer than the timeout - # passed to startnew, when this happens startnew completes without being - # able to read the pidfile and consequently returns a zero pid2 above. - - if($sshpid <= 0 || !kill(0, $sshpid)) { - # it is NOT alive - logmsg "RUN: failed to start the SSH server\n"; - stopserver("$pid2"); - $doesntrun{$pidfile} = 1; - return (0,0); - } - - # ssh server verification allows some extra time for the server to start up - # and gives us the opportunity of recovering the pid from the pidfile, when - # this verification succeeds the recovered pid is assigned to pid2. - - my $pid3 = verifyserver("ssh",$ip,$port); - if(!$pid3) { - logmsg "RUN: SSH server failed verification\n"; - # failed to fetch server pid. Kill the server and return failure - stopserver("$sshpid $pid2"); - $doesntrun{$pidfile} = 1; - return (0,0); - } - $pid2 = $pid3; - - # once it is known that the ssh server is alive, sftp server verification - # is performed actually connecting to it, authenticating and performing a - # very simple remote command. This verification is tried only one time. - - if(verifysftp("sftp",$ip,$port) < 1) { - logmsg "RUN: SFTP server failed verification\n"; - # failed to talk to it properly. Kill the server and return failure - display_sftplog(); - display_sftpconfig(); - display_sshdlog(); - display_sshdconfig(); - stopserver("$sshpid $pid2"); - $doesntrun{$pidfile} = 1; - return (0,0); - } - - if($verbose) { - logmsg "RUN: SSH server is now running PID $pid2\n"; - } - - return ($pid2, $sshpid); -} - -####################################################################### -# Start the socks server -# -sub runsocksserver { - my ($id, $verbose, $ipv6) = @_; - my $ip=$HOSTIP; - my $port = $SOCKSPORT; - my $pidfile = $SOCKSPIDFILE; - - # don't retry if the server doesn't work - if ($doesntrun{$pidfile}) { - return (0,0); - } - - my $pid = checkserver($pidfile); - if($pid > 0) { - stopserver($pid); - } - unlink($pidfile); - - # The ssh server must be already running - if(!$run{'ssh'}) { - logmsg "RUN: SOCKS server cannot find running SSH server\n"; - $doesntrun{$pidfile} = 1; - return (0,0); - } - - # Find out ssh daemon canonical file name - my $sshd = find_sshd(); - if(!$sshd) { - logmsg "RUN: SOCKS server cannot find $sshdexe\n"; - $doesntrun{$pidfile} = 1; - return (0,0); - } - - # Find out ssh daemon version info - ($sshdid, $sshdvernum, $sshdverstr, $sshderror) = sshversioninfo($sshd); - if(!$sshdid) { - # Not an OpenSSH or SunSSH ssh daemon - logmsg "$sshderror\n" if($verbose); - logmsg "SCP, SFTP and SOCKS tests require OpenSSH 2.9.9 or later\n"; - $doesntrun{$pidfile} = 1; - return (0,0); - } - logmsg "ssh server found $sshd is $sshdverstr\n" if($verbose); - - # Find out ssh client canonical file name - my $ssh = find_ssh(); - if(!$ssh) { - logmsg "RUN: SOCKS server cannot find $sshexe\n"; - $doesntrun{$pidfile} = 1; - return (0,0); - } - - # Find out ssh client version info - my ($sshid, $sshvernum, $sshverstr, $ssherror) = sshversioninfo($ssh); - if(!$sshid) { - # Not an OpenSSH or SunSSH ssh client - logmsg "$ssherror\n" if($verbose); - logmsg "SCP, SFTP and SOCKS tests require OpenSSH 2.9.9 or later\n"; - $doesntrun{$pidfile} = 1; - return (0,0); - } - - # Verify minimum ssh client version - if((($sshid =~ /OpenSSH/) && ($sshvernum < 299)) || - (($sshid =~ /SunSSH/) && ($sshvernum < 100))) { - logmsg "ssh client found $ssh is $sshverstr\n"; - logmsg "SCP, SFTP and SOCKS tests require OpenSSH 2.9.9 or later\n"; - $doesntrun{$pidfile} = 1; - return (0,0); - } - logmsg "ssh client found $ssh is $sshverstr\n" if($verbose); - - # Verify if ssh client and ssh daemon versions match - if(($sshdid ne $sshid) || ($sshdvernum != $sshvernum)) { - # Our test harness might work with slightly mismatched versions - logmsg "Warning: version mismatch: sshd $sshdverstr - ssh $sshverstr\n" - if($verbose); - } - - # Config file options for ssh client are previously set from sshserver.pl - if(! -e $sshconfig) { - logmsg "RUN: SOCKS server cannot find $sshconfig\n"; - $doesntrun{$pidfile} = 1; - return (0,0); - } - - # start our socks server - my $cmd="$ssh -N -F $sshconfig $ip > $sshlog 2>&1"; - my ($sshpid, $pid2) = startnew($cmd, $pidfile, 30, 1); - - if($sshpid <= 0 || !kill(0, $sshpid)) { - # it is NOT alive - logmsg "RUN: failed to start the SOCKS server\n"; - display_sshlog(); - display_sshconfig(); - display_sshdlog(); - display_sshdconfig(); - stopserver("$pid2"); - $doesntrun{$pidfile} = 1; - return (0,0); - } - - # Ugly hack but ssh doesn't support pid files - my $pid3 = verifyserver("socks",$ip,$port); - if(!$pid3) { - logmsg "RUN: SOCKS server failed verification\n"; - # failed to talk to it properly. Kill the server and return failure - stopserver("$sshpid $pid2"); - $doesntrun{$pidfile} = 1; - return (0,0); - } - $pid2 = $pid3; - - if($verbose) { - logmsg "RUN: SOCKS server is now running PID $pid2\n"; - } - - return ($pid2, $sshpid); -} - -####################################################################### -# Remove all files in the specified directory -# -sub cleardir { - my $dir = $_[0]; - my $count; - my $file; - - # Get all files - opendir(DIR, $dir) || - return 0; # can't open dir - while($file = readdir(DIR)) { - if($file !~ /^\./) { - unlink("$dir/$file"); - $count++; - } - } - closedir DIR; - return $count; -} - -####################################################################### -# filter out the specified pattern from the given input file and store the -# results in the given output file -# -sub filteroff { - my $infile=$_[0]; - my $filter=$_[1]; - my $ofile=$_[2]; - - open(IN, "<$infile") - || return 1; - - open(OUT, ">$ofile") - || return 1; - - # logmsg "FILTER: off $filter from $infile to $ofile\n"; - - while(<IN>) { - $_ =~ s/$filter//; - print OUT $_; - } - close(IN); - close(OUT); - return 0; -} - -####################################################################### -# compare test results with the expected output, we might filter off -# some pattern that is allowed to differ, output test results -# - -sub compare { - # filter off patterns _before_ this comparison! - my ($subject, $firstref, $secondref)=@_; - - my $result = compareparts($firstref, $secondref); - - if($result) { - if(!$short) { - logmsg "\n $subject FAILED:\n"; - logmsg showdiff($LOGDIR, $firstref, $secondref); - } - else { - logmsg "FAILED\n"; - } - } - return $result; -} - -####################################################################### -# display information about curl and the host the test suite runs on -# -sub checksystem { - - unlink($memdump); # remove this if there was one left - - my $feat; - my $curl; - my $libcurl; - my $versretval; - my $versnoexec; - my @version=(); - - my $curlverout="$LOGDIR/curlverout.log"; - my $curlvererr="$LOGDIR/curlvererr.log"; - my $versioncmd="$CURL --version 1>$curlverout 2>$curlvererr"; - - unlink($curlverout); - unlink($curlvererr); - - $versretval = runclient($versioncmd); - $versnoexec = $!; - - open(VERSOUT, "<$curlverout"); - @version = <VERSOUT>; - close(VERSOUT); - - for(@version) { - chomp; - - if($_ =~ /^curl/) { - $curl = $_; - $curl =~ s/^(.*)(libcurl.*)/$1/g; - - $libcurl = $2; - if($curl =~ /mingw32/) { - # This is a windows minw32 build, we need to translate the - # given path to the "actual" windows path. - - my @m = `mount`; - my $matchlen; - my $bestmatch; - my $mount; - -# example mount output: -# C:\DOCUME~1\Temp on /tmp type user (binmode,noumount) -# c:\ActiveState\perl on /perl type user (binmode) -# C:\msys\1.0\bin on /usr/bin type user (binmode,cygexec,noumount) -# C:\msys\1.0\bin on /bin type user (binmode,cygexec,noumount) - - foreach $mount (@m) { - if( $mount =~ /(.*) on ([^ ]*) type /) { - my ($mingw, $real)=($2, $1); - if($pwd =~ /^$mingw/) { - # the path we got from pwd starts with the path - # we found on this line in the mount output - - my $len = length($real); - if($len > $matchlen) { - # we remember the match that is the longest - $matchlen = $len; - $bestmatch = $real; - } - } - } - } - if(!$matchlen) { - logmsg "Serious error, can't find our \"real\" path\n"; - } - else { - # now prepend the prefix from the mount command to build - # our "actual path" - $pwd = "$bestmatch$pwd"; - } - $pwd =~ s#\\#/#g; - } - elsif ($curl =~ /win32/) { - # Native Windows builds don't understand the - # output of cygwin's pwd. It will be - # something like /cygdrive/c/<some path>. - # - # Use the cygpath utility to convert the - # working directory to a Windows friendly - # path. The -m option converts to use drive - # letter:, but it uses / instead \. Forward - # slashes (/) are easier for us. We don't - # have to escape them to get them to curl - # through a shell. - chomp($pwd = `cygpath -m $pwd`); - } - elsif ($libcurl =~ /openssl/i) { - $has_openssl=1; - $ssllib="OpenSSL"; - } - elsif ($libcurl =~ /gnutls/i) { - $has_gnutls=1; - $ssllib="GnuTLS"; - } - elsif ($libcurl =~ /nss/i) { - $has_nss=1; - $ssllib="NSS"; - } - elsif ($libcurl =~ /yassl/i) { - $has_yassl=1; - $has_openssl=1; - $ssllib="yassl"; - } - } - elsif($_ =~ /^Protocols: (.*)/i) { - # these are the protocols compiled in to this libcurl - @protocols = split(' ', $1); - - # Generate a "proto-ipv6" version of each protocol to match the - # IPv6 <server> name. This works even if IPv6 support isn't - # compiled in because the <features> test will fail. - push @protocols, map($_ . "-ipv6", @protocols); - - # 'none' is used in test cases to mean no server - push @protocols, ('none'); - } - elsif($_ =~ /^Features: (.*)/i) { - $feat = $1; - if($feat =~ /debug/i) { - # debug is a listed "feature", use that knowledge - $curl_debug = 1; - # set the NETRC debug env - $ENV{'CURL_DEBUG_NETRC'} = "$LOGDIR/netrc"; - } - if($feat =~ /SSL/i) { - # ssl enabled - $ssl_version=1; - } - if($feat =~ /Largefile/i) { - # large file support - $large_file=1; - } - if($feat =~ /IDN/i) { - # IDN support - $has_idn=1; - } - if($feat =~ /IPv6/i) { - $has_ipv6 = 1; - } - if($feat =~ /libz/i) { - $has_libz = 1; - } - if($feat =~ /NTLM/i) { - # NTLM enabled - $has_ntlm=1; - } - } - } - if(!$curl) { - logmsg "unable to get curl's version, further details are:\n"; - logmsg "issued command: \n"; - logmsg "$versioncmd \n"; - if ($versretval == -1) { - logmsg "command failed with: \n"; - logmsg "$versnoexec \n"; - } - elsif ($versretval & 127) { - logmsg sprintf("command died with signal %d, and %s coredump.\n", - ($versretval & 127), ($versretval & 128)?"a":"no"); - } - else { - logmsg sprintf("command exited with value %d \n", $versretval >> 8); - } - logmsg "contents of $curlverout: \n"; - displaylogcontent("$curlverout"); - logmsg "contents of $curlvererr: \n"; - displaylogcontent("$curlvererr"); - die "couldn't get curl's version"; - } - - if(-r "../lib/config.h") { - open(CONF, "<../lib/config.h"); - while(<CONF>) { - if($_ =~ /^\#define HAVE_GETRLIMIT/) { - $has_getrlimit = 1; - } - } - close(CONF); - } - - if($has_ipv6) { - # client has ipv6 support - - # check if the HTTP server has it! - my @sws = `server/sws --version`; - if($sws[0] =~ /IPv6/) { - # HTTP server has ipv6 support! - $http_ipv6 = 1; - } - - # check if the FTP server has it! - @sws = `server/sockfilt --version`; - if($sws[0] =~ /IPv6/) { - # FTP server has ipv6 support! - $ftp_ipv6 = 1; - } - } - - if(!$curl_debug && $torture) { - die "can't run torture tests since curl was not build with debug"; - } - - # curl doesn't list cryptographic support separately, so assume it's - # always available - $has_crypto=1; - - my $hostname=join(' ', runclientoutput("hostname")); - my $hosttype=join(' ', runclientoutput("uname -a")); - - logmsg ("********* System characteristics ******** \n", - "* $curl\n", - "* $libcurl\n", - "* Features: $feat\n", - "* Host: $hostname", - "* System: $hosttype"); - - logmsg sprintf("* Server SSL: %s\n", $stunnel?"ON":"OFF"); - logmsg sprintf("* libcurl SSL: %s\n", $ssl_version?"ON":"OFF"); - logmsg sprintf("* libcurl debug: %s\n", $curl_debug?"ON":"OFF"); - logmsg sprintf("* valgrind: %s\n", $valgrind?"ON":"OFF"); - logmsg sprintf("* HTTP IPv6 %s\n", $http_ipv6?"ON":"OFF"); - logmsg sprintf("* FTP IPv6 %s\n", $ftp_ipv6?"ON":"OFF"); - - logmsg sprintf("* HTTP port: %d\n", $HTTPPORT); - logmsg sprintf("* FTP port: %d\n", $FTPPORT); - logmsg sprintf("* FTP port 2: %d\n", $FTP2PORT); - if($stunnel) { - logmsg sprintf("* FTPS port: %d\n", $FTPSPORT); - logmsg sprintf("* HTTPS port: %d\n", $HTTPSPORT); - } - if($http_ipv6) { - logmsg sprintf("* HTTP IPv6 port: %d\n", $HTTP6PORT); - } - if($ftp_ipv6) { - logmsg sprintf("* FTP IPv6 port: %d\n", $FTP6PORT); - } - logmsg sprintf("* TFTP port: %d\n", $TFTPPORT); - if($tftp_ipv6) { - logmsg sprintf("* TFTP IPv6 port: %d\n", $TFTP6PORT); - } - logmsg sprintf("* SCP/SFTP port: %d\n", $SSHPORT); - logmsg sprintf("* SOCKS port: %d\n", $SOCKSPORT); - - if($ssl_version) { - logmsg sprintf("* SSL library: %s\n", $ssllib); - } - - $has_textaware = ($^O eq 'MSWin32') || ($^O eq 'msys'); - - logmsg sprintf("* Libtool lib: %s\n", $libtool?"ON":"OFF"); - logmsg "***************************************** \n"; -} - -####################################################################### -# substitute the variable stuff into either a joined up file or -# a command, in either case passed by reference -# -sub subVariables { - my ($thing) = @_; - $$thing =~ s/%HOSTIP/$HOSTIP/g; - $$thing =~ s/%HTTPPORT/$HTTPPORT/g; - $$thing =~ s/%HOST6IP/$HOST6IP/g; - $$thing =~ s/%HTTP6PORT/$HTTP6PORT/g; - $$thing =~ s/%HTTPSPORT/$HTTPSPORT/g; - $$thing =~ s/%FTPPORT/$FTPPORT/g; - $$thing =~ s/%FTP6PORT/$FTP6PORT/g; - $$thing =~ s/%FTP2PORT/$FTP2PORT/g; - $$thing =~ s/%FTPSPORT/$FTPSPORT/g; - $$thing =~ s/%SRCDIR/$srcdir/g; - $$thing =~ s/%PWD/$pwd/g; - $$thing =~ s/%TFTPPORT/$TFTPPORT/g; - $$thing =~ s/%TFTP6PORT/$TFTP6PORT/g; - $$thing =~ s/%SSHPORT/$SSHPORT/g; - $$thing =~ s/%SOCKSPORT/$SOCKSPORT/g; - $$thing =~ s/%CURL/$CURL/g; - $$thing =~ s/%USER/$USER/g; - $$thing =~ s/%CLIENTIP/$CLIENTIP/g; - $$thing =~ s/%CLIENT6IP/$CLIENT6IP/g; - - # The purpose of FTPTIME2 and FTPTIME3 is to provide times that can be - # used for time-out tests and that whould work on most hosts as these - # adjust for the startup/check time for this particular host. We needed - # to do this to make the test suite run better on very slow hosts. - - my $ftp2 = $ftpchecktime * 2; - my $ftp3 = $ftpchecktime * 3; - - $$thing =~ s/%FTPTIME2/$ftp2/g; - $$thing =~ s/%FTPTIME3/$ftp3/g; -} - -sub fixarray { - my @in = @_; - - for(@in) { - subVariables \$_; - } - return @in; -} - -####################################################################### -# Run a single specified test case -# - -sub singletest { - my ($testnum, $count, $total)=@_; - - my @what; - my $why; - my %feature; - my $cmd; - - # load the test case file definition - if(loadtest("${TESTDIR}/test${testnum}")) { - if($verbose) { - # this is not a test - logmsg "RUN: $testnum doesn't look like a test case\n"; - } - $why = "no test"; - } - else { - @what = getpart("client", "features"); - } - - for(@what) { - my $f = $_; - $f =~ s/\s//g; - - $feature{$f}=$f; # we require this feature - - if($f eq "SSL") { - if($ssl_version) { - next; - } - } - elsif($f eq "OpenSSL") { - if($has_openssl) { - next; - } - } - elsif($f eq "GnuTLS") { - if($has_gnutls) { - next; - } - } - elsif($f eq "NSS") { - if($has_nss) { - next; - } - } - elsif($f eq "netrc_debug") { - if($curl_debug) { - next; - } - } - elsif($f eq "large_file") { - if($large_file) { - next; - } - } - elsif($f eq "idn") { - if($has_idn) { - next; - } - } - elsif($f eq "ipv6") { - if($has_ipv6) { - next; - } - } - elsif($f eq "libz") { - if($has_libz) { - next; - } - } - elsif($f eq "NTLM") { - if($has_ntlm) { - next; - } - } - elsif($f eq "getrlimit") { - if($has_getrlimit) { - next; - } - } - elsif($f eq "crypto") { - if($has_crypto) { - next; - } - } - elsif($f eq "socks") { - next; - } - # See if this "feature" is in the list of supported protocols - elsif (grep /^$f$/, @protocols) { - next; - } - - $why = "curl lacks $f support"; - last; - } - - if(!$why) { - my @keywords = getpart("info", "keywords"); - my $match; - my $k; - for $k (@keywords) { - chomp $k; - if ($disabled_keywords{$k}) { - $why = "disabled by keyword"; - } elsif ($enabled_keywords{$k}) { - $match = 1; - } - } - - if(!$why && !$match && %enabled_keywords) { - $why = "disabled by missing keyword"; - } - } - - if(!$why) { - $why = serverfortest($testnum); - } - - if(!$why) { - my @precheck = getpart("client", "precheck"); - $cmd = $precheck[0]; - chomp $cmd; - subVariables \$cmd; - if($cmd) { - my @o = `$cmd 2>/dev/null`; - if($o[0]) { - $why = $o[0]; - chomp $why; - } - logmsg "prechecked $cmd\n" if($verbose); - } - } - - if($why && !$listonly) { - # there's a problem, count it as "skipped" - $skipped++; - $skipped{$why}++; - $teststat[$testnum]=$why; # store reason for this test case - - if(!$short) { - printf "test %03d SKIPPED: $why\n", $testnum; - } - - return -1; - } - logmsg sprintf("test %03d...", $testnum); - - # extract the reply data - my @reply = getpart("reply", "data"); - my @replycheck = getpart("reply", "datacheck"); - - if (@replycheck) { - # we use this file instead to check the final output against - - my %hash = getpartattr("reply", "datacheck"); - if($hash{'nonewline'}) { - # Yes, we must cut off the final newline from the final line - # of the datacheck - chomp($replycheck[$#replycheck]); - } - - @reply=@replycheck; - } - - # curl command to run - my @curlcmd= fixarray ( getpart("client", "command") ); - - # this is the valid protocol blurb curl should generate - my @protocol= fixarray ( getpart("verify", "protocol") ); - - # redirected stdout/stderr to these files - $STDOUT="$LOGDIR/stdout$testnum"; - $STDERR="$LOGDIR/stderr$testnum"; - - # if this section exists, we verify that the stdout contained this: - my @validstdout = fixarray ( getpart("verify", "stdout") ); - - # if this section exists, we verify upload - my @upload = getpart("verify", "upload"); - - # if this section exists, it might be FTP server instructions: - my @ftpservercmd = getpart("reply", "servercmd"); - - my $CURLOUT="$LOGDIR/curl$testnum.out"; # curl output if not stdout - - # name of the test - my @testname= getpart("client", "name"); - - if(!$short) { - my $name = $testname[0]; - $name =~ s/\n//g; - logmsg "[$name]\n"; - } - - if($listonly) { - return 0; # look successful - } - - my @codepieces = getpart("client", "tool"); - - my $tool=""; - if(@codepieces) { - $tool = $codepieces[0]; - chomp $tool; - } - - # remove server output logfiles - unlink($SERVERIN); - unlink($SERVER2IN); - - if(@ftpservercmd) { - # write the instructions to file - writearray($FTPDCMD, \@ftpservercmd); - } - - my (@setenv)= getpart("client", "setenv"); - my @envs; - - my $s; - for $s (@setenv) { - chomp $s; # cut off the newline - - subVariables \$s; - - if($s =~ /([^=]*)=(.*)/) { - my ($var, $content)=($1, $2); - $ENV{$var}=$content; - # remember which, so that we can clear them afterwards! - push @envs, $var; - } - } - - # get the command line options to use - my @blaha; - ($cmd, @blaha)= getpart("client", "command"); - - # make some nice replace operations - $cmd =~ s/\n//g; # no newlines please - - # substitute variables in the command line - subVariables \$cmd; - - if($curl_debug) { - unlink($memdump); - } - - # create a (possibly-empty) file before starting the test - my @inputfile=getpart("client", "file"); - my %fileattr = getpartattr("client", "file"); - my $filename=$fileattr{'name'}; - if(@inputfile || $filename) { - if(!$filename) { - logmsg "ERROR: section client=>file has no name attribute\n"; - return -1; - } - my $fileContent = join('', @inputfile); - subVariables \$fileContent; -# logmsg "DEBUG: writing file " . $filename . "\n"; - open(OUTFILE, ">$filename"); - binmode OUTFILE; # for crapage systems, use binary - print OUTFILE $fileContent; - close(OUTFILE); - } - - my %cmdhash = getpartattr("client", "command"); - - my $out=""; - - if($cmdhash{'option'} !~ /no-output/) { - #We may slap on --output! - if (!@validstdout) { - $out=" --output $CURLOUT "; - } - } - - my $serverlogslocktimeout = $defserverlogslocktimeout; - if($cmdhash{'timeout'}) { - # test is allowed to override default server logs lock timeout - if($cmdhash{'timeout'} =~ /(\d+)/) { - $serverlogslocktimeout = $1 if($1 >= 0); - } - } - - my $postcommanddelay = $defpostcommanddelay; - if($cmdhash{'delay'}) { - # test is allowed to specify a delay after command is executed - if($cmdhash{'delay'} =~ /(\d+)/) { - $postcommanddelay = $1 if($1 > 0); - } - } - - my $cmdargs; - if(!$tool) { - # run curl, add --verbose for debug information output - $cmdargs ="$out --include --verbose --trace-time $cmd"; - } - else { - $cmdargs = " $cmd"; # $cmd is the command line for the test file - $CURLOUT = $STDOUT; # sends received data to stdout - } - - my @stdintest = getpart("client", "stdin"); - - if(@stdintest) { - my $stdinfile="$LOGDIR/stdin-for-$testnum"; - writearray($stdinfile, \@stdintest); - - $cmdargs .= " <$stdinfile"; - } - my $CMDLINE; - - if(!$tool) { - $CMDLINE="$CURL"; - } - else { - $CMDLINE="$LIBDIR/$tool"; - if(! -f $CMDLINE) { - print "The tool set in the test case for this: '$tool' does not exist\n"; - return -1; - } - $DBGCURL=$CMDLINE; - } - - my $usevalgrind = $valgrind && ((getpart("verify", "valgrind"))[0] !~ /disable/); - if($usevalgrind) { - $CMDLINE = "$valgrind ".$valgrind_tool."--leak-check=yes --num-callers=16 ${valgrind_logfile}=$LOGDIR/valgrind$testnum $CMDLINE"; - } - - $CMDLINE .= "$cmdargs >>$STDOUT 2>>$STDERR"; - - if($verbose) { - logmsg "$CMDLINE\n"; - } - - print CMDLOG "$CMDLINE\n"; - - unlink("core"); - - my $dumped_core; - my $cmdres; - - # Apr 2007: precommand isn't being used and could be removed - my @precommand= getpart("client", "precommand"); - if($precommand[0]) { - # this is pure perl to eval! - my $code = join("", @precommand); - eval $code; - if($@) { - logmsg "perl: $code\n"; - logmsg "precommand: $@"; - stopservers($verbose); - return -1; - } - } - - if($gdbthis) { - open(GDBCMD, ">$LOGDIR/gdbcmd"); - print GDBCMD "set args $cmdargs\n"; - print GDBCMD "show args\n"; - close(GDBCMD); - } - # run the command line we built - if ($torture) { - $cmdres = torture($CMDLINE, - "$gdb --directory libtest $DBGCURL -x $LOGDIR/gdbcmd"); - } - elsif($gdbthis) { - runclient("$gdb --directory libtest $DBGCURL -x $LOGDIR/gdbcmd"); - $cmdres=0; # makes it always continue after a debugged run - } - else { - $cmdres = runclient("$CMDLINE"); - my $signal_num = $cmdres & 127; - $dumped_core = $cmdres & 128; - - if(!$anyway && ($signal_num || $dumped_core)) { - $cmdres = 1000; - } - else { - $cmdres /= 256; - } - } - if(!$dumped_core) { - if(-r "core") { - # there's core file present now! - $dumped_core = 1; - } - } - - if($dumped_core) { - logmsg "core dumped\n"; - if(0 && $gdb) { - logmsg "running gdb for post-mortem analysis:\n"; - open(GDBCMD, ">$LOGDIR/gdbcmd2"); - print GDBCMD "bt\n"; - close(GDBCMD); - runclient("$gdb --directory libtest -x $LOGDIR/gdbcmd2 -batch $DBGCURL core "); - # unlink("$LOGDIR/gdbcmd2"); - } - } - - # If a server logs advisor read lock file exists, it is an indication - # that the server has not yet finished writing out all its log files, - # including server request log files used for protocol verification. - # So, if the lock file exists the script waits here a certain amount - # of time until the server removes it, or the given time expires. - - if($serverlogslocktimeout) { - my $lockretry = $serverlogslocktimeout * 4; - while((-f $SERVERLOGS_LOCK) && $lockretry--) { - select(undef, undef, undef, 0.25); - } - if(($lockretry < 0) && - ($serverlogslocktimeout >= $defserverlogslocktimeout)) { - logmsg "Warning: server logs lock timeout ", - "($serverlogslocktimeout seconds) expired\n"; - } - } - - # Test harness ssh server does not have this synchronization mechanism, - # this implies that some ssh server based tests might need a small delay - # once that the client command has run to avoid false test failures. - - sleep($postcommanddelay) if($postcommanddelay); - - # run the postcheck command - my @postcheck= getpart("client", "postcheck"); - $cmd = $postcheck[0]; - chomp $cmd; - subVariables \$cmd; - if($cmd) { - logmsg "postcheck $cmd\n" if($verbose); - my $rc = runclient("$cmd"); - # Must run the postcheck command in torture mode in order - # to clean up, but the result can't be relied upon. - if($rc != 0 && !$torture) { - logmsg " postcheck FAILED\n"; - return 1; - } - } - - # remove the special FTP command file after each test! - unlink($FTPDCMD); - - my $e; - for $e (@envs) { - $ENV{$e}=""; # clean up - } - - # Skip all the verification on torture tests - if ($torture) { - if(!$cmdres && !$keepoutfiles) { - cleardir($LOGDIR); - } - return $cmdres; - } - - my @err = getpart("verify", "errorcode"); - my $errorcode = $err[0] || "0"; - my $ok=""; - my $res; - if (@validstdout) { - # verify redirected stdout - my @actual = loadarray($STDOUT); - - # variable-replace in the stdout we have from the test case file - @validstdout = fixarray(@validstdout); - - # get all attributes - my %hash = getpartattr("verify", "stdout"); - - # get the mode attribute - my $filemode=$hash{'mode'}; - if(($filemode eq "text") && $has_textaware) { - # text mode when running on windows: fix line endings - map s/\r\n/\n/g, @actual; - } - - if($hash{'nonewline'}) { - # Yes, we must cut off the final newline from the final line - # of the protocol data - chomp($validstdout[$#validstdout]); - } - - $res = compare("stdout", \@actual, \@validstdout); - if($res) { - return 1; - } - $ok .= "s"; - } - else { - $ok .= "-"; # stdout not checked - } - - my %replyattr = getpartattr("reply", "data"); - if(!$replyattr{'nocheck'} && (@reply || $replyattr{'sendzero'})) { - # verify the received data - my @out = loadarray($CURLOUT); - my %hash = getpartattr("reply", "data"); - # get the mode attribute - my $filemode=$hash{'mode'}; - if(($filemode eq "text") && $has_textaware) { - # text mode when running on windows: fix line endings - map s/\r\n/\n/g, @out; - } - - $res = compare("data", \@out, \@reply); - if ($res) { - return 1; - } - $ok .= "d"; - } - else { - $ok .= "-"; # data not checked - } - - if(@upload) { - # verify uploaded data - my @out = loadarray("$LOGDIR/upload.$testnum"); - $res = compare("upload", \@out, \@upload); - if ($res) { - return 1; - } - $ok .= "u"; - } - else { - $ok .= "-"; # upload not checked - } - - if(@protocol) { - # Verify the sent request - my @out = loadarray($SERVERIN); - - # what to cut off from the live protocol sent by curl - my @strip = getpart("verify", "strip"); - - my @protstrip=@protocol; - - # check if there's any attributes on the verify/protocol section - my %hash = getpartattr("verify", "protocol"); - - if($hash{'nonewline'}) { - # Yes, we must cut off the final newline from the final line - # of the protocol data - chomp($protstrip[$#protstrip]); - } - - for(@strip) { - # strip off all lines that match the patterns from both arrays - chomp $_; - @out = striparray( $_, \@out); - @protstrip= striparray( $_, \@protstrip); - } - - # what parts to cut off from the protocol - my @strippart = getpart("verify", "strippart"); - my $strip; - for $strip (@strippart) { - chomp $strip; - for(@out) { - eval $strip; - } - } - - $res = compare("protocol", \@out, \@protstrip); - if($res) { - return 1; - } - - $ok .= "p"; - - } - else { - $ok .= "-"; # protocol not checked - } - - my @outfile=getpart("verify", "file"); - if(@outfile) { - # we're supposed to verify a dynamically generated file! - my %hash = getpartattr("verify", "file"); - - my $filename=$hash{'name'}; - if(!$filename) { - logmsg "ERROR: section verify=>file has no name attribute\n"; - stopservers($verbose); - return -1; - } - my @generated=loadarray($filename); - - # what parts to cut off from the file - my @stripfile = getpart("verify", "stripfile"); - - my $filemode=$hash{'mode'}; - if(($filemode eq "text") && $has_textaware) { - # text mode when running on windows means adding an extra - # strip expression - push @stripfile, "s/\r\n/\n/"; - } - - my $strip; - for $strip (@stripfile) { - chomp $strip; - for(@generated) { - eval $strip; - } - } - - @outfile = fixarray(@outfile); - - $res = compare("output", \@generated, \@outfile); - if($res) { - return 1; - } - - $ok .= "o"; - } - else { - $ok .= "-"; # output not checked - } - - # accept multiple comma-separated error codes - my @splerr = split(/ *, */, $errorcode); - my $errok; - foreach $e (@splerr) { - if($e == $cmdres) { - # a fine error code - $errok = 1; - last; - } - } - - if($errok) { - $ok .= "e"; - } - else { - if(!$short) { - printf "\ncurl returned $cmdres, %d was expected\n", $errorcode; - } - logmsg " exit FAILED\n"; - return 1; - } - - @what = getpart("client", "killserver"); - for(@what) { - my $serv = $_; - chomp $serv; - if($serv =~ /^ftp(\d*)(-ipv6|)/) { - my ($id, $ext) = ($1, $2); - #print STDERR "SERV $serv $id $ext\n"; - ftpkillslave($id, $ext, $verbose); - } - if($run{$serv}) { - stopserver($run{$serv}); # the pid file is in the hash table - $run{$serv}=0; # clear pid - } - else { - logmsg "RUN: The $serv server is not running\n"; - } - } - - if($curl_debug) { - if(! -f $memdump) { - logmsg "\n** ALERT! memory debugging with no output file?\n"; - } - else { - my @memdata=`$memanalyze $memdump`; - my $leak=0; - for(@memdata) { - if($_ ne "") { - # well it could be other memory problems as well, but - # we call it leak for short here - $leak=1; - } - } - if($leak) { - logmsg "\n** MEMORY FAILURE\n"; - logmsg @memdata; - return 1; - } - else { - $ok .= "m"; - } - } - } - else { - $ok .= "-"; # memory not checked - } - - if($valgrind) { - # this is the valid protocol blurb curl should generate - if($usevalgrind) { - - opendir(DIR, "log") || - return 0; # can't open log dir - my @files = readdir(DIR); - closedir(DIR); - my $f; - my $l; - foreach $f (@files) { - if($f =~ /^valgrind$testnum\.pid/) { - $l = $f; - last; - } - } - my $src=$ENV{'srcdir'}; - if(!$src) { - $src="."; - } - my @e = valgrindparse($src, $feature{'SSL'}, "$LOGDIR/$l"); - if($e[0]) { - logmsg " valgrind ERROR "; - logmsg @e; - return 1; - } - $ok .= "v"; - } - else { - if(!$short) { - logmsg " valgrind SKIPPED\n"; - } - $ok .= "-"; # skipped - } - } - else { - $ok .= "-"; # valgrind not checked - } - - logmsg "$ok " if(!$short); - - my $sofar= time()-$start; - my $esttotal = $sofar/$count * $total; - my $estleft = $esttotal - $sofar; - my $left=sprintf("remaining: %02d:%02d", - $estleft/60, - $estleft%60); - printf "OK (%-3d out of %-3d, %s)\n", $count, $total, $left; - - # the test succeeded, remove all log files - if(!$keepoutfiles) { - cleardir($LOGDIR); - } - - unlink($FTPDCMD); # remove the instructions for this test - - return 0; -} - -####################################################################### -# Stop all running test servers -sub stopservers { - my ($verbose)=@_; - for(keys %run) { - my $server = $_; - my $pids=$run{$server}; - my $pid; - my $prev; - - foreach $pid (split(" ", $pids)) { - if($pid != $prev) { - # no need to kill same pid twice! - logmsg sprintf("* kill pid for %s => %d\n", - $server, $pid) if($verbose); - stopserver($pid); - } - $prev = $pid; - } - delete $run{$server}; - } - ftpkillslaves($verbose); -} - -####################################################################### -# startservers() starts all the named servers -# -# Returns: string with error reason or blank for success - -sub startservers { - my @what = @_; - my ($pid, $pid2); - for(@what) { - my $what = lc($_); - $what =~ s/[^a-z0-9-]//g; - if($what eq "ftp") { - if(!$run{'ftp'}) { - ($pid, $pid2) = runftpserver("", $verbose); - if($pid <= 0) { - return "failed starting FTP server"; - } - printf ("* pid ftp => %d %d\n", $pid, $pid2) if($verbose); - $run{'ftp'}="$pid $pid2"; - } - } - elsif($what eq "ftp2") { - if(!$run{'ftp2'}) { - ($pid, $pid2) = runftpserver("2", $verbose); - if($pid <= 0) { - return "failed starting FTP2 server"; - } - printf ("* pid ftp2 => %d %d\n", $pid, $pid2) if($verbose); - $run{'ftp2'}="$pid $pid2"; - } - } - elsif($what eq "ftp-ipv6") { - if(!$run{'ftp-ipv6'}) { - ($pid, $pid2) = runftpserver("", $verbose, "ipv6"); - if($pid <= 0) { - return "failed starting FTP-IPv6 server"; - } - logmsg sprintf("* pid ftp-ipv6 => %d %d\n", $pid, - $pid2) if($verbose); - $run{'ftp-ipv6'}="$pid $pid2"; - } - } - elsif($what eq "http") { - if(!$run{'http'}) { - ($pid, $pid2) = runhttpserver($verbose); - if($pid <= 0) { - return "failed starting HTTP server"; - } - printf ("* pid http => %d %d\n", $pid, $pid2) if($verbose); - $run{'http'}="$pid $pid2"; - } - } - elsif($what eq "http-ipv6") { - if(!$run{'http-ipv6'}) { - ($pid, $pid2) = runhttpserver($verbose, "IPv6"); - if($pid <= 0) { - return "failed starting HTTP-IPv6 server"; - } - logmsg sprintf("* pid http-ipv6 => %d %d\n", $pid, $pid2) - if($verbose); - $run{'http-ipv6'}="$pid $pid2"; - } - } - elsif($what eq "ftps") { - if(!$stunnel) { - # we can't run ftps tests without stunnel - return "no stunnel"; - } - if(!$ssl_version) { - # we can't run ftps tests if libcurl is SSL-less - return "curl lacks SSL support"; - } - - if(!$run{'ftp'}) { - ($pid, $pid2) = runftpserver("", $verbose); - if($pid <= 0) { - return "failed starting FTP server"; - } - printf ("* pid ftp => %d %d\n", $pid, $pid2) if($verbose); - $run{'ftp'}="$pid $pid2"; - } - if(!$run{'ftps'}) { - ($pid, $pid2) = runftpsserver($verbose); - if($pid <= 0) { - return "failed starting FTPS server (stunnel)"; - } - logmsg sprintf("* pid ftps => %d %d\n", $pid, $pid2) - if($verbose); - $run{'ftps'}="$pid $pid2"; - } - } - elsif($what eq "file") { - # we support it but have no server! - } - elsif($what eq "https") { - if(!$stunnel) { - # we can't run ftps tests without stunnel - return "no stunnel"; - } - if(!$ssl_version) { - # we can't run ftps tests if libcurl is SSL-less - return "curl lacks SSL support"; - } - - if(!$run{'http'}) { - ($pid, $pid2) = runhttpserver($verbose); - if($pid <= 0) { - return "failed starting HTTP server"; - } - printf ("* pid http => %d %d\n", $pid, $pid2) if($verbose); - $run{'http'}="$pid $pid2"; - } - if(!$run{'https'}) { - ($pid, $pid2) = runhttpsserver($verbose); - if($pid <= 0) { - return "failed starting HTTPS server (stunnel)"; - } - logmsg sprintf("* pid https => %d %d\n", $pid, $pid2) - if($verbose); - $run{'https'}="$pid $pid2"; - } - } - elsif($what eq "tftp") { - if(!$run{'tftp'}) { - ($pid, $pid2) = runtftpserver("", $verbose); - if($pid <= 0) { - return "failed starting TFTP server"; - } - printf ("* pid tftp => %d %d\n", $pid, $pid2) if($verbose); - $run{'tftp'}="$pid $pid2"; - } - } - elsif($what eq "tftp-ipv6") { - if(!$run{'tftp-ipv6'}) { - ($pid, $pid2) = runtftpserver("", $verbose, "IPv6"); - if($pid <= 0) { - return "failed starting TFTP-IPv6 server"; - } - printf("* pid tftp-ipv6 => %d %d\n", $pid, $pid2) if($verbose); - $run{'tftp-ipv6'}="$pid $pid2"; - } - } - elsif($what eq "sftp" || $what eq "scp" || $what eq "socks4" || $what eq "socks5" ) { - if(!$run{'ssh'}) { - ($pid, $pid2) = runsshserver("", $verbose); - if($pid <= 0) { - return "failed starting SSH server"; - } - printf ("* pid ssh => %d %d\n", $pid, $pid2) if($verbose); - $run{'ssh'}="$pid $pid2"; - } - if($what eq "socks4" || $what eq "socks5") { - if(!$run{'socks'}) { - ($pid, $pid2) = runsocksserver("", $verbose); - if($pid <= 0) { - return "failed starting socks server"; - } - printf ("* pid socks => %d %d\n", $pid, $pid2) if($verbose); - $run{'socks'}="$pid $pid2"; - } - } - if($what eq "socks5") { - if(!$sshdid) { - # Not an OpenSSH or SunSSH ssh daemon - logmsg "Not OpenSSH or SunSSH; socks5 tests need at least OpenSSH 3.7\n"; - return "failed starting socks5 server"; - } - elsif(($sshdid =~ /OpenSSH/) && ($sshdvernum < 370)) { - # Need OpenSSH 3.7 for socks5 - http://www.openssh.com/txt/release-3.7 - logmsg "$sshdverstr insufficient; socks5 tests need at least OpenSSH 3.7\n"; - return "failed starting socks5 server"; - } - elsif(($sshdid =~ /SunSSH/) && ($sshdvernum < 100)) { - # Need SunSSH 1.0 for socks5 - logmsg "$sshdverstr insufficient; socks5 tests need at least SunSSH 1.0\n"; - return "failed starting socks5 server"; - } - } - } - elsif($what eq "none") { - logmsg "* starts no server\n" if ($verbose); - } - else { - warn "we don't support a server for $what"; - return "no server for $what"; - } - } - return 0; -} - -############################################################################## -# This function makes sure the right set of server is running for the -# specified test case. This is a useful design when we run single tests as not -# all servers need to run then! -# -# Returns: a string, blank if everything is fine or a reason why it failed -# - -sub serverfortest { - my ($testnum)=@_; - - my @what = getpart("client", "server"); - - if(!$what[0]) { - warn "Test case $testnum has no server(s) specified"; - return "no server specified"; - } - - for (@what) { - my $proto = lc($_); - chomp $proto; - if (! grep /^$proto$/, @protocols) { - if (substr($proto,0,5) ne "socks") { - return "curl lacks $proto support"; - } - } - } - - return &startservers(@what); -} - -####################################################################### -# Check options to this test program -# - -my $number=0; -my $fromnum=-1; -my @testthis; -my %disabled; -while(@ARGV) { - if ($ARGV[0] eq "-v") { - # verbose output - $verbose=1; - } - elsif($ARGV[0] =~ /^-b(.*)/) { - my $portno=$1; - if($portno =~ s/(\d+)$//) { - $base = int $1; - } - } - elsif ($ARGV[0] eq "-c") { - # use this path to curl instead of default - $DBGCURL=$CURL=$ARGV[1]; - shift @ARGV; - } - elsif ($ARGV[0] eq "-d") { - # have the servers display protocol output - $debugprotocol=1; - } - elsif ($ARGV[0] eq "-f") { - # run fork-servers, which makes the server fork for all new - # connections This is NOT what you wanna do without knowing exactly - # why and for what - $forkserver=1; - } - elsif ($ARGV[0] eq "-g") { - # run this test with gdb - $gdbthis=1; - } - elsif($ARGV[0] eq "-s") { - # short output - $short=1; - } - elsif($ARGV[0] eq "-n") { - # no valgrind - undef $valgrind; - } - elsif($ARGV[0] =~ /^-t(.*)/) { - # torture - $torture=1; - my $xtra = $1; - - if($xtra =~ s/(\d+)$//) { - $tortalloc = $1; - } - # we undef valgrind to make this fly in comparison - undef $valgrind; - } - elsif($ARGV[0] eq "-a") { - # continue anyway, even if a test fail - $anyway=1; - } - elsif($ARGV[0] eq "-p") { - $postmortem=1; - } - elsif($ARGV[0] eq "-l") { - # lists the test case names only - $listonly=1; - } - elsif($ARGV[0] eq "-k") { - # keep stdout and stderr files after tests - $keepoutfiles=1; - } - elsif($ARGV[0] eq "-h") { - # show help text - print <<EOHELP -Usage: runtests.pl [options] [test selection(s)] - -a continue even if a test fails - -bN use base port number N for test servers (default $base) - -c path use this curl executable - -d display server debug info - -g run the test case with gdb - -h this help text - -k keep stdout and stderr files present after tests - -l list all test case names/descriptions - -n no valgrind - -p print log file contents when a test fails - -s short output - -t[N] torture (simulate memory alloc failures); N means fail Nth alloc - -v verbose output - [num] like "5 6 9" or " 5 to 22 " to run those tests only - [!num] like "!5 !6 !9" to disable those tests - [keyword] like "IPv6" to select only tests containing the key word - [!keyword] like "!cookies" to disable any tests containing the key word -EOHELP - ; - exit; - } - elsif($ARGV[0] =~ /^(\d+)/) { - $number = $1; - if($fromnum >= 0) { - for($fromnum .. $number) { - push @testthis, $_; - } - $fromnum = -1; - } - else { - push @testthis, $1; - } - } - elsif($ARGV[0] =~ /^to$/i) { - $fromnum = $number+1; - } - elsif($ARGV[0] =~ /^!(\d+)/) { - $fromnum = -1; - $disabled{$1}=$1; - } - elsif($ARGV[0] =~ /^!(.+)/) { - $disabled_keywords{$1}=$1; - } - elsif($ARGV[0] =~ /^([-[{a-zA-Z].*)/) { - $enabled_keywords{$1}=$1; - } - else { - print "Unknown option: $ARGV[0]\n"; - exit; - } - shift @ARGV; -} - -if($testthis[0] ne "") { - $TESTCASES=join(" ", @testthis); -} - -if($valgrind) { - # we have found valgrind on the host, use it - - # verify that we can invoke it fine - my $code = runclient("valgrind >/dev/null 2>&1"); - - if(($code>>8) != 1) { - #logmsg "Valgrind failure, disable it\n"; - undef $valgrind; - } else { - - # since valgrind 2.1.x, '--tool' option is mandatory - # use it, if it is supported by the version installed on the system - runclient("valgrind --help 2>&1 | grep -- --tool > /dev/null 2>&1"); - if (($? >> 8)==0) { - $valgrind_tool="--tool=memcheck "; - } - open(C, "<$CURL"); - my $l = <C>; - if($l =~ /^\#\!/) { - # A shell script. This is typically when built with libtool, - $valgrind="../libtool --mode=execute $valgrind"; - } - close(C); - - # valgrind 3 renamed the --logfile option to --log-file!!! - my $ver=join(' ', runclientoutput("valgrind --version")); - # cut off all but digits and dots - $ver =~ s/[^0-9.]//g; - - if($ver >= 3) { - $valgrind_logfile="--log-file"; - } - } -} - -if ($gdbthis) { - # open the executable curl and read the first 4 bytes of it - open(CHECK, "<$CURL"); - my $c; - sysread CHECK, $c, 4; - close(CHECK); - if($c eq "#! /") { - # A shell script. This is typically when built with libtool, - $libtool = 1; - $gdb = "libtool --mode=execute gdb"; - } -} - -$HTTPPORT = $base + 0; # HTTP server port -$HTTPSPORT = $base + 1; # HTTPS server port -$FTPPORT = $base + 2; # FTP server port -$FTPSPORT = $base + 3; # FTPS server port -$HTTP6PORT = $base + 4; # HTTP IPv6 server port (different IP protocol - # but we follow the same port scheme anyway) -$FTP2PORT = $base + 5; # FTP server 2 port -$FTP6PORT = $base + 6; # FTP IPv6 port -$TFTPPORT = $base + 7; # TFTP (UDP) port -$TFTP6PORT = $base + 8; # TFTP IPv6 (UDP) port -$SSHPORT = $base + 9; # SSH (SCP/SFTP) port -$SOCKSPORT = $base + 10; # SOCKS port - -####################################################################### -# clear and create logging directory: -# - -cleardir($LOGDIR); -mkdir($LOGDIR, 0777); - -####################################################################### -# Output curl version and host info being tested -# - -if(!$listonly) { - checksystem(); -} - -####################################################################### -# If 'all' tests are requested, find out all test numbers -# - -if ( $TESTCASES eq "all") { - # Get all commands and find out their test numbers - opendir(DIR, $TESTDIR) || die "can't opendir $TESTDIR: $!"; - my @cmds = grep { /^test([0-9]+)$/ && -f "$TESTDIR/$_" } readdir(DIR); - closedir(DIR); - - open(D, "<$TESTDIR/DISABLED"); - while(<D>) { - if(/^ *\#/) { - # allow comments - next; - } - if($_ =~ /(\d+)/) { - $disabled{$1}=$1; # disable this test number - } - } - close(D); - - $TESTCASES=""; # start with no test cases - - # cut off everything but the digits - for(@cmds) { - $_ =~ s/[a-z\/\.]*//g; - } - # sort the numbers from low to high - foreach my $n (sort { $a <=> $b } @cmds) { - if($disabled{$n}) { - # skip disabled test cases - my $why = "configured as DISABLED"; - $skipped++; - $skipped{$why}++; - $teststat[$n]=$why; # store reason for this test case - next; - } - $TESTCASES .= " $n"; - } -} - -####################################################################### -# Start the command line log -# -open(CMDLOG, ">$CURLLOG") || - logmsg "can't log command lines to $CURLLOG\n"; - -####################################################################### - -# Display the contents of the given file. Line endings are canonicalized -# and excessively long files are elided -sub displaylogcontent { - my ($file)=@_; - if(open(SINGLE, "<$file")) { - my $linecount = 0; - my $truncate; - my @tail; - while(my $string = <SINGLE>) { - $string =~ s/\r\n/\n/g; - $string =~ s/[\r\f\032]/\n/g; - $string .= "\n" unless ($string =~ /\n$/); - $string =~ tr/\n//; - for my $line (split("\n", $string)) { - $line =~ s/\s*\!$//; - if ($truncate) { - push @tail, " $line\n"; - } else { - logmsg " $line\n"; - } - $linecount++; - $truncate = $linecount > 1000; - } - } - if (@tail) { - logmsg "=== File too long: lines here were removed\n"; - # This won't work properly if time stamps are enabled in logmsg - logmsg join('',@tail[$#tail-200..$#tail]); - } - close(SINGLE); - } -} - -sub displaylogs { - my ($testnum)=@_; - opendir(DIR, "$LOGDIR") || - die "can't open dir: $!"; - my @logs = readdir(DIR); - closedir(DIR); - - logmsg "== Contents of files in the $LOGDIR/ dir after test $testnum\n"; - foreach my $log (sort @logs) { - if($log =~ /\.(\.|)$/) { - next; # skip "." and ".." - } - if($log =~ /^\.nfs/) { - next; # skip ".nfs" - } - if(($log eq "memdump") || ($log eq "core")) { - next; # skip "memdump" and "core" - } - if((-d "$LOGDIR/$log") || (! -s "$LOGDIR/$log")) { - next; # skip directory and empty files - } - if(($log =~ /^stdout\d+/) && ($log !~ /^stdout$testnum/)) { - next; # skip stdoutNnn of other tests - } - if(($log =~ /^stderr\d+/) && ($log !~ /^stderr$testnum/)) { - next; # skip stderrNnn of other tests - } - if(($log =~ /^upload\d+/) && ($log !~ /^upload$testnum/)) { - next; # skip uploadNnn of other tests - } - if(($log =~ /^curl\d+\.out/) && ($log !~ /^curl$testnum\.out/)) { - next; # skip curlNnn.out of other tests - } - if(($log =~ /^test\d+\.txt/) && ($log !~ /^test$testnum\.txt/)) { - next; # skip testNnn.txt of other tests - } - if(($log =~ /^file\d+\.txt/) && ($log !~ /^file$testnum\.txt/)) { - next; # skip fileNnn.txt of other tests - } - if(($log =~ /^valgrind\d+/) && ($log !~ /^valgrind$testnum/)) { - next; # skip valgrindNnn of other tests - } - logmsg "=== Start of file $log\n"; - displaylogcontent("$LOGDIR/$log"); - logmsg "=== End of file $log\n"; - } -} - -####################################################################### -# The main test-loop -# - -my $failed; -my $testnum; -my $ok=0; -my $total=0; -my $lasttest; -my @at = split(" ", $TESTCASES); -my $count=0; - -$start = time(); - -foreach $testnum (@at) { - - $lasttest = $testnum if($testnum > $lasttest); - $count++; - - my $error = singletest($testnum, $count, scalar(@at)); - if($error < 0) { - # not a test we can run - next; - } - - $total++; # number of tests we've run - - if($error>0) { - $failed.= "$testnum "; - if($postmortem) { - # display all files in log/ in a nice way - displaylogs($testnum); - } - if(!$anyway) { - # a test failed, abort - logmsg "\n - abort tests\n"; - last; - } - } - elsif(!$error) { - $ok++; # successful test counter - } - - # loop for next test -} - -####################################################################### -# Close command log -# -close(CMDLOG); - -# Tests done, stop the servers -stopservers($verbose); - -unlink($SOCKSPIDFILE); - -my $all = $total + $skipped; - -if($total) { - logmsg sprintf("TESTDONE: $ok tests out of $total reported OK: %d%%\n", - $ok/$total*100); - - if($ok != $total) { - logmsg "TESTFAIL: These test cases failed: $failed\n"; - } -} -else { - logmsg "TESTFAIL: No tests were performed\n"; -} - -if($all) { - my $sofar = time()-$start; - logmsg "TESTDONE: $all tests were considered during $sofar seconds.\n"; -} - -if($skipped) { - my $s=0; - logmsg "TESTINFO: $skipped tests were skipped due to these restraints:\n"; - - for(keys %skipped) { - my $r = $_; - printf "TESTINFO: \"%s\" %d times (", $r, $skipped{$_}; - - # now show all test case numbers that had this reason for being - # skipped - my $c=0; - for(0 .. scalar @teststat) { - my $t = $_; - if($teststat[$_] eq $r) { - logmsg ", " if($c); - logmsg $_; - $c++; - } - } - logmsg ")\n"; - } -} - -if($total && ($ok != $total)) { - exit 1; -} diff --git a/Utilities/cmcurl-7.19.0/tests/server/Makefile.am b/Utilities/cmcurl-7.19.0/tests/server/Makefile.am deleted file mode 100644 index 74f0ec2..0000000 --- a/Utilities/cmcurl-7.19.0/tests/server/Makefile.am +++ /dev/null @@ -1,64 +0,0 @@ -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al. -# -# This software is licensed as described in the file COPYING, which -# you should have received as part of this distribution. The terms -# are also available at http://curl.haxx.se/docs/copyright.html. -# -# You may opt to use, copy, modify, merge, publish, distribute and/or sell -# copies of the Software, and permit persons to whom the Software is -# furnished to do so, under the terms of the COPYING file. -# -# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -# KIND, either express or implied. -# -# $Id$ -########################################################################### -AUTOMAKE_OPTIONS = foreign nostdinc - -# Specify our include paths here, and do it relative to $(top_srcdir) and -# $(top_builddir), to ensure that these paths which belong to the library -# being currently built and tested are searched before the library which -# might possibly already be installed in the system. -# -# $(top_builddir)/include is for libcurl's generated curl/curlbuild.h file -# $(top_srcdir)/include is for libcurl's external include files -# $(top_builddir)/lib is for libcurl's generated lib/config.h file -# $(top_srcdir)/lib is for libcurl's lib/setup.h and other "borrowed" files - -INCLUDES = -I$(top_builddir)/include \ - -I$(top_srcdir)/include \ - -I$(top_builddir)/lib \ - -I$(top_srcdir)/lib - -noinst_PROGRAMS = sws getpart sockfilt resolve tftpd - -useful = getpart.c getpart.h $(top_srcdir)/lib/strequal.c \ - $(top_srcdir)/lib/base64.c $(top_srcdir)/lib/mprintf.c \ - $(top_srcdir)/lib/memdebug.c $(top_srcdir)/lib/timeval.c - -resolve_SOURCES= resolve.c util.c util.h $(useful) -resolve_LDADD = @TEST_SERVER_LIBS@ - -sws_SOURCES= sws.c util.c util.h $(useful) -sws_LDADD = @TEST_SERVER_LIBS@ - -sockfilt_SOURCES = sockfilt.c util.c util.h $(useful) \ - $(top_srcdir)/lib/inet_pton.c -sockfilt_LDADD = @TEST_SERVER_LIBS@ - -getpart_SOURCES= testpart.c $(useful) -# This is needed because of (unused) network debugging functions in memdebug.c -getpart_LDADD = @TEST_SERVER_LIBS@ - -tftpd_SOURCES = tftpd.c util.c util.h $(useful) tftp.h -tftpd_LDADD = @TEST_SERVER_LIBS@ - -extra_DIST = base64.pl - diff --git a/Utilities/cmcurl-7.19.0/tests/server/Makefile.in b/Utilities/cmcurl-7.19.0/tests/server/Makefile.in deleted file mode 100644 index fdd615c..0000000 --- a/Utilities/cmcurl-7.19.0/tests/server/Makefile.in +++ /dev/null @@ -1,656 +0,0 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = ../.. -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -noinst_PROGRAMS = sws$(EXEEXT) getpart$(EXEEXT) sockfilt$(EXEEXT) \ - resolve$(EXEEXT) tftpd$(EXEEXT) -subdir = tests/server -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/curl-reentrant.m4 \ - $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/lib/config.h \ - $(top_builddir)/src/config.h \ - $(top_builddir)/include/curl/curlbuild.h -CONFIG_CLEAN_FILES = -PROGRAMS = $(noinst_PROGRAMS) -am__objects_1 = getpart.$(OBJEXT) strequal.$(OBJEXT) base64.$(OBJEXT) \ - mprintf.$(OBJEXT) memdebug.$(OBJEXT) timeval.$(OBJEXT) -am_getpart_OBJECTS = testpart.$(OBJEXT) $(am__objects_1) -getpart_OBJECTS = $(am_getpart_OBJECTS) -getpart_DEPENDENCIES = -am_resolve_OBJECTS = resolve.$(OBJEXT) util.$(OBJEXT) $(am__objects_1) -resolve_OBJECTS = $(am_resolve_OBJECTS) -resolve_DEPENDENCIES = -am_sockfilt_OBJECTS = sockfilt.$(OBJEXT) util.$(OBJEXT) \ - $(am__objects_1) inet_pton.$(OBJEXT) -sockfilt_OBJECTS = $(am_sockfilt_OBJECTS) -sockfilt_DEPENDENCIES = -am_sws_OBJECTS = sws.$(OBJEXT) util.$(OBJEXT) $(am__objects_1) -sws_OBJECTS = $(am_sws_OBJECTS) -sws_DEPENDENCIES = -am_tftpd_OBJECTS = tftpd.$(OBJEXT) util.$(OBJEXT) $(am__objects_1) -tftpd_OBJECTS = $(am_tftpd_OBJECTS) -tftpd_DEPENDENCIES = -DEFAULT_INCLUDES = -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -SOURCES = $(getpart_SOURCES) $(resolve_SOURCES) $(sockfilt_SOURCES) \ - $(sws_SOURCES) $(tftpd_SOURCES) -DIST_SOURCES = $(getpart_SOURCES) $(resolve_SOURCES) \ - $(sockfilt_SOURCES) $(sws_SOURCES) $(tftpd_SOURCES) -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AR = @AR@ -AS = @AS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CROSSCOMPILING_FALSE = @CROSSCOMPILING_FALSE@ -CROSSCOMPILING_TRUE = @CROSSCOMPILING_TRUE@ -CURL_CA_BUNDLE = @CURL_CA_BUNDLE@ -CURL_DISABLE_DICT = @CURL_DISABLE_DICT@ -CURL_DISABLE_FILE = @CURL_DISABLE_FILE@ -CURL_DISABLE_FTP = @CURL_DISABLE_FTP@ -CURL_DISABLE_HTTP = @CURL_DISABLE_HTTP@ -CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@ -CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@ -CURL_DISABLE_TELNET = @CURL_DISABLE_TELNET@ -CURL_DISABLE_TFTP = @CURL_DISABLE_TFTP@ -CURL_LIBS = @CURL_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GREP = @GREP@ -HAVE_ARES = @HAVE_ARES@ -HAVE_LIBZ = @HAVE_LIBZ@ -HAVE_LIBZ_FALSE = @HAVE_LIBZ_FALSE@ -HAVE_LIBZ_TRUE = @HAVE_LIBZ_TRUE@ -HAVE_PK11_CREATEGENERICOBJECT = @HAVE_PK11_CREATEGENERICOBJECT@ -IDN_ENABLED = @IDN_ENABLED@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -IPV6_ENABLED = @IPV6_ENABLED@ -KRB4_ENABLED = @KRB4_ENABLED@ -LDFLAGS = @LDFLAGS@ -LIBCURL_LIBS = @LIBCURL_LIBS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ -MAKEINFO = @MAKEINFO@ -MANOPT = @MANOPT@ -MIMPURE_FALSE = @MIMPURE_FALSE@ -MIMPURE_TRUE = @MIMPURE_TRUE@ -NMEDIT = @NMEDIT@ -NO_UNDEFINED_FALSE = @NO_UNDEFINED_FALSE@ -NO_UNDEFINED_TRUE = @NO_UNDEFINED_TRUE@ -NROFF = @NROFF@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PERL = @PERL@ -PKGADD_NAME = @PKGADD_NAME@ -PKGADD_PKG = @PKGADD_PKG@ -PKGADD_VENDOR = @PKGADD_VENDOR@ -PKGCONFIG = @PKGCONFIG@ -RANDOM_FILE = @RANDOM_FILE@ -RANLIB = @RANLIB@ -REQUIRE_LIB_DEPS = @REQUIRE_LIB_DEPS@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -SONAME_BUMP_FALSE = @SONAME_BUMP_FALSE@ -SONAME_BUMP_TRUE = @SONAME_BUMP_TRUE@ -SSL_ENABLED = @SSL_ENABLED@ -STATICLIB_FALSE = @STATICLIB_FALSE@ -STATICLIB_TRUE = @STATICLIB_TRUE@ -STRIP = @STRIP@ -TEST_SERVER_LIBS = @TEST_SERVER_LIBS@ -USE_GNUTLS = @USE_GNUTLS@ -USE_LIBSSH2 = @USE_LIBSSH2@ -USE_MANUAL_FALSE = @USE_MANUAL_FALSE@ -USE_MANUAL_TRUE = @USE_MANUAL_TRUE@ -USE_NSS = @USE_NSS@ -USE_SSLEAY = @USE_SSLEAY@ -USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ -VERSION = @VERSION@ -VERSIONNUM = @VERSIONNUM@ -ac_ct_CC = @ac_ct_CC@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -libext = @libext@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -subdirs = @subdirs@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ - -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al. -# -# This software is licensed as described in the file COPYING, which -# you should have received as part of this distribution. The terms -# are also available at http://curl.haxx.se/docs/copyright.html. -# -# You may opt to use, copy, modify, merge, publish, distribute and/or sell -# copies of the Software, and permit persons to whom the Software is -# furnished to do so, under the terms of the COPYING file. -# -# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -# KIND, either express or implied. -# -# $Id$ -########################################################################### -AUTOMAKE_OPTIONS = foreign nostdinc - -# Specify our include paths here, and do it relative to $(top_srcdir) and -# $(top_builddir), to ensure that these paths which belong to the library -# being currently built and tested are searched before the library which -# might possibly already be installed in the system. -# -# $(top_builddir)/include is for libcurl's generated curl/curlbuild.h file -# $(top_srcdir)/include is for libcurl's external include files -# $(top_builddir)/lib is for libcurl's generated lib/config.h file -# $(top_srcdir)/lib is for libcurl's lib/setup.h and other "borrowed" files -INCLUDES = -I$(top_builddir)/include \ - -I$(top_srcdir)/include \ - -I$(top_builddir)/lib \ - -I$(top_srcdir)/lib - -useful = getpart.c getpart.h $(top_srcdir)/lib/strequal.c \ - $(top_srcdir)/lib/base64.c $(top_srcdir)/lib/mprintf.c \ - $(top_srcdir)/lib/memdebug.c $(top_srcdir)/lib/timeval.c - -resolve_SOURCES = resolve.c util.c util.h $(useful) -resolve_LDADD = @TEST_SERVER_LIBS@ -sws_SOURCES = sws.c util.c util.h $(useful) -sws_LDADD = @TEST_SERVER_LIBS@ -sockfilt_SOURCES = sockfilt.c util.c util.h $(useful) \ - $(top_srcdir)/lib/inet_pton.c - -sockfilt_LDADD = @TEST_SERVER_LIBS@ -getpart_SOURCES = testpart.c $(useful) -# This is needed because of (unused) network debugging functions in memdebug.c -getpart_LDADD = @TEST_SERVER_LIBS@ -tftpd_SOURCES = tftpd.c util.c util.h $(useful) tftp.h -tftpd_LDADD = @TEST_SERVER_LIBS@ -extra_DIST = base64.pl -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/server/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign tests/server/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -clean-noinstPROGRAMS: - @list='$(noinst_PROGRAMS)'; for p in $$list; do \ - f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f $$p $$f"; \ - rm -f $$p $$f ; \ - done -getpart$(EXEEXT): $(getpart_OBJECTS) $(getpart_DEPENDENCIES) - @rm -f getpart$(EXEEXT) - $(LINK) $(getpart_LDFLAGS) $(getpart_OBJECTS) $(getpart_LDADD) $(LIBS) -resolve$(EXEEXT): $(resolve_OBJECTS) $(resolve_DEPENDENCIES) - @rm -f resolve$(EXEEXT) - $(LINK) $(resolve_LDFLAGS) $(resolve_OBJECTS) $(resolve_LDADD) $(LIBS) -sockfilt$(EXEEXT): $(sockfilt_OBJECTS) $(sockfilt_DEPENDENCIES) - @rm -f sockfilt$(EXEEXT) - $(LINK) $(sockfilt_LDFLAGS) $(sockfilt_OBJECTS) $(sockfilt_LDADD) $(LIBS) -sws$(EXEEXT): $(sws_OBJECTS) $(sws_DEPENDENCIES) - @rm -f sws$(EXEEXT) - $(LINK) $(sws_LDFLAGS) $(sws_OBJECTS) $(sws_LDADD) $(LIBS) -tftpd$(EXEEXT): $(tftpd_OBJECTS) $(tftpd_DEPENDENCIES) - @rm -f tftpd$(EXEEXT) - $(LINK) $(tftpd_LDFLAGS) $(tftpd_OBJECTS) $(tftpd_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/base64.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpart.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inet_pton.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memdebug.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mprintf.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/resolve.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sockfilt.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strequal.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sws.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testpart.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tftpd.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timeval.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util.Po@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< - -strequal.o: $(top_srcdir)/lib/strequal.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT strequal.o -MD -MP -MF "$(DEPDIR)/strequal.Tpo" -c -o strequal.o `test -f '$(top_srcdir)/lib/strequal.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/strequal.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/strequal.Tpo" "$(DEPDIR)/strequal.Po"; else rm -f "$(DEPDIR)/strequal.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_srcdir)/lib/strequal.c' object='strequal.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o strequal.o `test -f '$(top_srcdir)/lib/strequal.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/strequal.c - -strequal.obj: $(top_srcdir)/lib/strequal.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT strequal.obj -MD -MP -MF "$(DEPDIR)/strequal.Tpo" -c -o strequal.obj `if test -f '$(top_srcdir)/lib/strequal.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/strequal.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/strequal.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/strequal.Tpo" "$(DEPDIR)/strequal.Po"; else rm -f "$(DEPDIR)/strequal.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_srcdir)/lib/strequal.c' object='strequal.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o strequal.obj `if test -f '$(top_srcdir)/lib/strequal.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/strequal.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/strequal.c'; fi` - -base64.o: $(top_srcdir)/lib/base64.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT base64.o -MD -MP -MF "$(DEPDIR)/base64.Tpo" -c -o base64.o `test -f '$(top_srcdir)/lib/base64.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/base64.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/base64.Tpo" "$(DEPDIR)/base64.Po"; else rm -f "$(DEPDIR)/base64.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_srcdir)/lib/base64.c' object='base64.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o base64.o `test -f '$(top_srcdir)/lib/base64.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/base64.c - -base64.obj: $(top_srcdir)/lib/base64.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT base64.obj -MD -MP -MF "$(DEPDIR)/base64.Tpo" -c -o base64.obj `if test -f '$(top_srcdir)/lib/base64.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/base64.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/base64.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/base64.Tpo" "$(DEPDIR)/base64.Po"; else rm -f "$(DEPDIR)/base64.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_srcdir)/lib/base64.c' object='base64.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o base64.obj `if test -f '$(top_srcdir)/lib/base64.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/base64.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/base64.c'; fi` - -mprintf.o: $(top_srcdir)/lib/mprintf.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mprintf.o -MD -MP -MF "$(DEPDIR)/mprintf.Tpo" -c -o mprintf.o `test -f '$(top_srcdir)/lib/mprintf.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/mprintf.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mprintf.Tpo" "$(DEPDIR)/mprintf.Po"; else rm -f "$(DEPDIR)/mprintf.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_srcdir)/lib/mprintf.c' object='mprintf.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mprintf.o `test -f '$(top_srcdir)/lib/mprintf.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/mprintf.c - -mprintf.obj: $(top_srcdir)/lib/mprintf.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mprintf.obj -MD -MP -MF "$(DEPDIR)/mprintf.Tpo" -c -o mprintf.obj `if test -f '$(top_srcdir)/lib/mprintf.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/mprintf.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/mprintf.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mprintf.Tpo" "$(DEPDIR)/mprintf.Po"; else rm -f "$(DEPDIR)/mprintf.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_srcdir)/lib/mprintf.c' object='mprintf.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mprintf.obj `if test -f '$(top_srcdir)/lib/mprintf.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/mprintf.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/mprintf.c'; fi` - -memdebug.o: $(top_srcdir)/lib/memdebug.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT memdebug.o -MD -MP -MF "$(DEPDIR)/memdebug.Tpo" -c -o memdebug.o `test -f '$(top_srcdir)/lib/memdebug.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/memdebug.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/memdebug.Tpo" "$(DEPDIR)/memdebug.Po"; else rm -f "$(DEPDIR)/memdebug.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_srcdir)/lib/memdebug.c' object='memdebug.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o memdebug.o `test -f '$(top_srcdir)/lib/memdebug.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/memdebug.c - -memdebug.obj: $(top_srcdir)/lib/memdebug.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT memdebug.obj -MD -MP -MF "$(DEPDIR)/memdebug.Tpo" -c -o memdebug.obj `if test -f '$(top_srcdir)/lib/memdebug.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/memdebug.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/memdebug.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/memdebug.Tpo" "$(DEPDIR)/memdebug.Po"; else rm -f "$(DEPDIR)/memdebug.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_srcdir)/lib/memdebug.c' object='memdebug.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o memdebug.obj `if test -f '$(top_srcdir)/lib/memdebug.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/memdebug.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/memdebug.c'; fi` - -timeval.o: $(top_srcdir)/lib/timeval.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT timeval.o -MD -MP -MF "$(DEPDIR)/timeval.Tpo" -c -o timeval.o `test -f '$(top_srcdir)/lib/timeval.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/timeval.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/timeval.Tpo" "$(DEPDIR)/timeval.Po"; else rm -f "$(DEPDIR)/timeval.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_srcdir)/lib/timeval.c' object='timeval.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o timeval.o `test -f '$(top_srcdir)/lib/timeval.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/timeval.c - -timeval.obj: $(top_srcdir)/lib/timeval.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT timeval.obj -MD -MP -MF "$(DEPDIR)/timeval.Tpo" -c -o timeval.obj `if test -f '$(top_srcdir)/lib/timeval.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/timeval.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/timeval.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/timeval.Tpo" "$(DEPDIR)/timeval.Po"; else rm -f "$(DEPDIR)/timeval.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_srcdir)/lib/timeval.c' object='timeval.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o timeval.obj `if test -f '$(top_srcdir)/lib/timeval.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/timeval.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/timeval.c'; fi` - -inet_pton.o: $(top_srcdir)/lib/inet_pton.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT inet_pton.o -MD -MP -MF "$(DEPDIR)/inet_pton.Tpo" -c -o inet_pton.o `test -f '$(top_srcdir)/lib/inet_pton.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/inet_pton.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/inet_pton.Tpo" "$(DEPDIR)/inet_pton.Po"; else rm -f "$(DEPDIR)/inet_pton.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_srcdir)/lib/inet_pton.c' object='inet_pton.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o inet_pton.o `test -f '$(top_srcdir)/lib/inet_pton.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/inet_pton.c - -inet_pton.obj: $(top_srcdir)/lib/inet_pton.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT inet_pton.obj -MD -MP -MF "$(DEPDIR)/inet_pton.Tpo" -c -o inet_pton.obj `if test -f '$(top_srcdir)/lib/inet_pton.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/inet_pton.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/inet_pton.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/inet_pton.Tpo" "$(DEPDIR)/inet_pton.Po"; else rm -f "$(DEPDIR)/inet_pton.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_srcdir)/lib/inet_pton.c' object='inet_pton.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o inet_pton.obj `if test -f '$(top_srcdir)/lib/inet_pton.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/inet_pton.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/inet_pton.c'; fi` - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -uninstall-info-am: - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ - mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-libtool distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-info-am - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstPROGRAMS ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-exec \ - install-exec-am install-info install-info-am install-man \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am \ - uninstall-info-am - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/Utilities/cmcurl-7.19.0/tests/server/getpart.c b/Utilities/cmcurl-7.19.0/tests/server/getpart.c deleted file mode 100644 index 72a6d0f..0000000 --- a/Utilities/cmcurl-7.19.0/tests/server/getpart.c +++ /dev/null @@ -1,238 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - * $Id$ - ***************************************************************************/ - -#include "setup.h" - -#include "getpart.h" - -#define _MPRINTF_REPLACE /* use our functions only */ -#include <curl/mprintf.h> - -/* just to please base64.h we create a fake struct */ -struct SessionHandle { - int fake; -}; - -#include "curl_base64.h" - -/* include memdebug.h last */ -#include "memdebug.h" - -#define EAT_SPACE(ptr) while( ptr && *ptr && ISSPACE(*ptr) ) ptr++ -#define EAT_WORD(ptr) while( ptr && *ptr && !ISSPACE(*ptr) && \ - ('>' != *ptr)) ptr++ - -#ifdef DEBUG -#define show(x) printf x -#else -#define show(x) -#endif - -curl_malloc_callback Curl_cmalloc = (curl_malloc_callback)malloc; -curl_free_callback Curl_cfree = (curl_free_callback)free; -curl_realloc_callback Curl_crealloc = (curl_realloc_callback)realloc; -curl_strdup_callback Curl_cstrdup = (curl_strdup_callback)strdup; -curl_calloc_callback Curl_ccalloc = (curl_calloc_callback)calloc; - -static -char *appendstring(char *string, /* original string */ - char *buffer, /* to append */ - size_t *stringlen, /* length of string */ - size_t *stralloc, /* allocated size */ - char base64) /* 1 if base64 encoded */ -{ - size_t len = strlen(buffer); - size_t needed_len = len + *stringlen + 1; - char *buf64=NULL; - - if(base64) { - /* decode the given buffer first */ - len = Curl_base64_decode(buffer, (unsigned char**)&buf64); /* updated len */ - buffer = buf64; - needed_len = len + *stringlen + 1; /* recalculate */ - } - - if(needed_len >= *stralloc) { - char *newptr; - size_t newsize = needed_len*2; /* get twice the needed size */ - - newptr = realloc(string, newsize); - if(newptr) { - string = newptr; - *stralloc = newsize; - } - else { - if(buf64) - free(buf64); - return NULL; - } - } - /* memcpy to support binary blobs */ - memcpy(&string[*stringlen], buffer, len); - *stringlen += len; - string[*stringlen]=0; - - if(buf64) - free(buf64); - - return string; -} - -const char *spitout(FILE *stream, - const char *main, - const char *sub, size_t *size) -{ - char buffer[8192]; /* big enough for anything */ - char cmain[128]=""; /* current main section */ - char csub[128]=""; /* current sub section */ - char *ptr; - char *end; - char display = 0; - - char *string; - size_t stringlen=0; - size_t stralloc=256; - char base64 = 0; /* set to 1 if true */ - - enum { - STATE_OUTSIDE, - STATE_OUTER, - STATE_INMAIN, - STATE_INSUB, - STATE_ILLEGAL - } state = STATE_OUTSIDE; - - string = (char *)malloc(stralloc); - if(!string) - return NULL; - - string[0] = 0; /* zero first byte in case of no data */ - - while(fgets(buffer, sizeof(buffer), stream)) { - - ptr = buffer; - - /* pass white spaces */ - EAT_SPACE(ptr); - - if('<' != *ptr) { - if(display) { - show(("=> %s", buffer)); - string = appendstring(string, buffer, &stringlen, &stralloc, base64); - show(("* %s\n", buffer)); - } - continue; - } - - ptr++; - EAT_SPACE(ptr); - - if('/' == *ptr) { - /* end of a section */ - ptr++; - EAT_SPACE(ptr); - - end = ptr; - EAT_WORD(end); - *end = 0; - - if((state == STATE_INSUB) && - !strcmp(csub, ptr)) { - /* this is the end of the currently read sub section */ - state--; - csub[0]=0; /* no sub anymore */ - display=0; - } - else if((state == STATE_INMAIN) && - !strcmp(cmain, ptr)) { - /* this is the end of the currently read main section */ - state--; - cmain[0]=0; /* no main anymore */ - display=0; - } - else if(state == STATE_OUTER) { - /* this is the end of the outermost file section */ - state--; - } - } - else if(!display) { - /* this is the beginning of a section */ - end = ptr; - EAT_WORD(end); - - *end = 0; - switch(state) { - case STATE_OUTSIDE: - /* Skip over the outermost element (<testcase>), but if it turns out - to be a comment, completely ignore it below */ - strcpy(cmain, ptr); - state = STATE_OUTER; - break; - case STATE_OUTER: - strcpy(cmain, ptr); - state = STATE_INMAIN; - break; - case STATE_INMAIN: - strcpy(csub, ptr); - state = STATE_INSUB; - break; - default: - break; - } - - if(!end[1] != '>') { - /* There might be attributes here. Check for those we know of and care - about. */ - if(strstr(&end[1], "base64=")) { - /* rough and dirty, but "mostly" functional */ - /* Treat all data as base64 encoded */ - base64 = 1; - } - } - } - if(display) { - string = appendstring(string, buffer, &stringlen, &stralloc, base64); - show(("* %s\n", buffer)); - } - - if((STATE_INSUB == state) && - !strcmp(cmain, main) && - !strcmp(csub, sub)) { - show(("* (%d bytes) %s\n", stringlen, buffer)); - display = 1; /* start displaying */ - } - else if ((*cmain == '?') || (*cmain == '!') || (*csub == '!')) { - /* Ignore comments, DOCTYPEs and XML declarations */ - show(("%d ignoring (%s/%s)\n", state, cmain, csub)); - state--; - } - else { - show(("%d (%s/%s): %s\n", state, cmain, csub, buffer)); - display = 0; /* no display */ - } - } - - *size = stringlen; - return string; -} - diff --git a/Utilities/cmcurl-7.19.0/tests/server/getpart.h b/Utilities/cmcurl-7.19.0/tests/server/getpart.h deleted file mode 100644 index 0ded4f7..0000000 --- a/Utilities/cmcurl-7.19.0/tests/server/getpart.h +++ /dev/null @@ -1,27 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2004, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - * $Id$ - ***************************************************************************/ -const char * -spitout(FILE *stream, - const char *main, - const char *sub, - size_t *size); diff --git a/Utilities/cmcurl-7.19.0/tests/server/resolve.c b/Utilities/cmcurl-7.19.0/tests/server/resolve.c deleted file mode 100644 index 75b8643..0000000 --- a/Utilities/cmcurl-7.19.0/tests/server/resolve.c +++ /dev/null @@ -1,142 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - * $Id$ - ***************************************************************************/ - -/* Purpose - * - * Resolve the given name, using system name resolve functions (NOT any - * function provided by libcurl). Used to see if the name exists and thus if - * we can allow a test case to use it for testing. - * - * Like if 'localhost' actual exists etc. - * - */ -#include "setup.h" /* portability help from the lib directory */ - -#ifdef HAVE_SIGNAL_H -#include <signal.h> -#endif -#ifdef HAVE_UNISTD_H -#include <unistd.h> -#endif -#ifdef HAVE_SYS_SOCKET_H -#include <sys/socket.h> -#endif -#ifdef HAVE_NETINET_IN_H -#include <netinet/in.h> -#endif -#ifdef _XOPEN_SOURCE_EXTENDED -/* This define is "almost" required to build on HPUX 11 */ -#include <arpa/inet.h> -#endif -#ifdef HAVE_NETDB_H -#include <netdb.h> -#endif - -#define ENABLE_CURLX_PRINTF -/* make the curlx header define all printf() functions to use the curlx_* - versions instead */ -#include "curlx.h" /* from the private lib dir */ -#include "util.h" - -/* include memdebug.h last */ -#include "memdebug.h" - -char use_ipv6=FALSE; - -const char *serverlogfile=""; /* for a util.c function we don't use */ - -int main(int argc, char *argv[]) -{ - int arg=1; - char *host; - int rc; - - while(argc>arg) { - if(!strcmp("--version", argv[arg])) { - printf("resolve IPv4%s\n", -#ifdef ENABLE_IPV6 - "/IPv6" -#else - "" -#endif - ); - return 0; - } - else if(!strcmp("--ipv6", argv[arg])) { -#ifdef ENABLE_IPV6 - use_ipv6=TRUE; -#endif - arg++; - } - else if(!strcmp("--ipv4", argv[arg])) { - /* for completeness, we support this option as well */ - use_ipv6=FALSE; - arg++; - } - else { - host = argv[arg++]; - } - } - if(!host) { - puts("Usage: resolve [option] <host>\n" - " --version\n" - " --ipv4\n" - " --ipv6"); - return 0; - } - -#ifdef WIN32 - win32_init(); - atexit(win32_cleanup); -#endif - -#ifdef ENABLE_IPV6 - if(!use_ipv6) -#endif - { - /* gethostbyname() resolve */ - struct hostent *he; - - he = gethostbyname(host); - - rc = !he; - } -#ifdef ENABLE_IPV6 - else { - /* getaddrinfo() resolve */ - struct addrinfo *ai; - struct addrinfo hints; - - memset(&hints, 0, sizeof(hints)); - hints.ai_family = PF_INET6; - hints.ai_socktype = SOCK_STREAM; - hints.ai_flags = AI_CANONNAME; - rc = (getaddrinfo)(host, "80", &hints, &ai); - - } -#endif - if(rc) - printf("Resolving '%s' didn't work\n", host); - - return !rc?0:1; -} diff --git a/Utilities/cmcurl-7.19.0/tests/server/sockfilt.c b/Utilities/cmcurl-7.19.0/tests/server/sockfilt.c deleted file mode 100644 index f390fc6..0000000 --- a/Utilities/cmcurl-7.19.0/tests/server/sockfilt.c +++ /dev/null @@ -1,964 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - * $Id$ - ***************************************************************************/ - -/* Purpose - * - * 1. Accept a TCP connection on a custom port (ipv4 or ipv6), or connect - * to a given (localhost) port. - * - * 2. Get commands on STDIN. Pass data on to the TCP stream. - * Get data from TCP stream and pass on to STDOUT. - * - * This program is made to perform all the socket/stream/connection stuff for - * the test suite's (perl) FTP server. Previously the perl code did all of - * this by its own, but I decided to let this program do the socket layer - * because of several things: - * - * o We want the perl code to work with rather old perl installations, thus - * we cannot use recent perl modules or features. - * - * o We want IPv6 support for systems that provide it, and doing optional IPv6 - * support in perl seems if not impossible so at least awkward. - * - * o We want FTP-SSL support, which means that a connection that starts with - * plain sockets needs to be able to "go SSL" in the midst. This would also - * require some nasty perl stuff I'd rather avoid. - * - * (Source originally based on sws.c) - */ - -/* - * Signal handling notes for sockfilt - * ---------------------------------- - * - * This program is a single-threaded process. - * - * This program is intended to be highly portable and as such it must be kept as - * simple as possible, due to this the only signal handling mechanisms used will - * be those of ANSI C, and used only in the most basic form which is good enough - * for the purpose of this program. - * - * For the above reason and the specific needs of this program signals SIGHUP, - * SIGPIPE and SIGALRM will be simply ignored on systems where this can be done. - * If possible, signals SIGINT and SIGTERM will be handled by this program as an - * indication to cleanup and finish execution as soon as possible. This will be - * achieved with a single signal handler 'exit_signal_handler' for both signals. - * - * The 'exit_signal_handler' upon the first SIGINT or SIGTERM received signal - * will just set to one the global var 'got_exit_signal' storing in global var - * 'exit_signal' the signal that triggered this change. - * - * Nothing fancy that could introduce problems is used, the program at certain - * points in its normal flow checks if var 'got_exit_signal' is set and in case - * this is true it just makes its way out of loops and functions in structured - * and well behaved manner to achieve proper program cleanup and termination. - * - * Even with the above mechanism implemented it is worthwile to note that other - * signals might still be received, or that there might be systems on which it - * is not possible to trap and ignore some of the above signals. This implies - * that for increased portability and reliability the program must be coded as - * if no signal was being ignored or handled at all. Enjoy it! - */ - -#include "setup.h" /* portability help from the lib directory */ - -#ifdef HAVE_SIGNAL_H -#include <signal.h> -#endif -#ifdef HAVE_UNISTD_H -#include <unistd.h> -#endif -#ifdef HAVE_SYS_SOCKET_H -#include <sys/socket.h> -#endif -#ifdef HAVE_NETINET_IN_H -#include <netinet/in.h> -#endif -#ifdef _XOPEN_SOURCE_EXTENDED -/* This define is "almost" required to build on HPUX 11 */ -#include <arpa/inet.h> -#endif -#ifdef HAVE_NETDB_H -#include <netdb.h> -#endif - -#define ENABLE_CURLX_PRINTF -/* make the curlx header define all printf() functions to use the curlx_* - versions instead */ -#include "curlx.h" /* from the private lib dir */ -#include "getpart.h" -#include "inet_pton.h" -#include "util.h" - -/* include memdebug.h last */ -#include "memdebug.h" - -#define DEFAULT_PORT 8999 - -#ifndef DEFAULT_LOGFILE -#define DEFAULT_LOGFILE "log/sockfilt.log" -#endif - -const char *serverlogfile = (char *)DEFAULT_LOGFILE; - -bool verbose = FALSE; -bool use_ipv6 = FALSE; -unsigned short port = DEFAULT_PORT; -unsigned short connectport = 0; /* if non-zero, we activate this mode */ - -enum sockmode { - PASSIVE_LISTEN, /* as a server waiting for connections */ - PASSIVE_CONNECT, /* as a server, connected to a client */ - ACTIVE, /* as a client, connected to a server */ - ACTIVE_DISCONNECT /* as a client, disconnected from server */ -}; - -/* do-nothing macro replacement for systems which lack siginterrupt() */ - -#ifndef HAVE_SIGINTERRUPT -#define siginterrupt(x,y) do {} while(0) -#endif - -/* vars used to keep around previous signal handlers */ - -typedef RETSIGTYPE (*SIGHANDLER_T)(int); - -static SIGHANDLER_T old_sighup_handler = SIG_ERR; -static SIGHANDLER_T old_sigpipe_handler = SIG_ERR; -static SIGHANDLER_T old_sigalrm_handler = SIG_ERR; -static SIGHANDLER_T old_sigint_handler = SIG_ERR; -static SIGHANDLER_T old_sigterm_handler = SIG_ERR; - -/* var which if set indicates that the program should finish execution */ - -SIG_ATOMIC_T got_exit_signal = 0; - -/* if next is set indicates the first signal handled in exit_signal_handler */ - -static volatile int exit_signal = 0; - -/* signal handler that will be triggered to indicate that the program - should finish its execution in a controlled manner as soon as possible. - The first time this is called it will set got_exit_signal to one and - store in exit_signal the signal that triggered its execution. */ - -static RETSIGTYPE exit_signal_handler(int signum) -{ - int old_errno = ERRNO; - if(got_exit_signal == 0) { - got_exit_signal = 1; - exit_signal = signum; - } - (void)signal(signum, exit_signal_handler); - SET_ERRNO(old_errno); -} - -static void install_signal_handlers(void) -{ -#ifdef SIGHUP - /* ignore SIGHUP signal */ - if((old_sighup_handler = signal(SIGHUP, SIG_IGN)) == SIG_ERR) - logmsg("cannot install SIGHUP handler: 5s", strerror(ERRNO)); -#endif -#ifdef SIGPIPE - /* ignore SIGPIPE signal */ - if((old_sigpipe_handler = signal(SIGPIPE, SIG_IGN)) == SIG_ERR) - logmsg("cannot install SIGPIPE handler: 5s", strerror(ERRNO)); -#endif -#ifdef SIGALRM - /* ignore SIGALRM signal */ - if((old_sigalrm_handler = signal(SIGALRM, SIG_IGN)) == SIG_ERR) - logmsg("cannot install SIGALRM handler: 5s", strerror(ERRNO)); -#endif -#ifdef SIGINT - /* handle SIGINT signal with our exit_signal_handler */ - if((old_sigint_handler = signal(SIGINT, exit_signal_handler)) == SIG_ERR) - logmsg("cannot install SIGINT handler: 5s", strerror(ERRNO)); - else - siginterrupt(SIGINT, 1); -#endif -#ifdef SIGTERM - /* handle SIGTERM signal with our exit_signal_handler */ - if((old_sigterm_handler = signal(SIGTERM, exit_signal_handler)) == SIG_ERR) - logmsg("cannot install SIGTERM handler: 5s", strerror(ERRNO)); - else - siginterrupt(SIGTERM, 1); -#endif -} - -static void restore_signal_handlers(void) -{ -#ifdef SIGHUP - if(SIG_ERR != old_sighup_handler) - (void)signal(SIGHUP, old_sighup_handler); -#endif -#ifdef SIGPIPE - if(SIG_ERR != old_sigpipe_handler) - (void)signal(SIGPIPE, old_sigpipe_handler); -#endif -#ifdef SIGALRM - if(SIG_ERR != old_sigalrm_handler) - (void)signal(SIGALRM, old_sigalrm_handler); -#endif -#ifdef SIGINT - if(SIG_ERR != old_sigint_handler) - (void)signal(SIGINT, old_sigint_handler); -#endif -#ifdef SIGTERM - if(SIG_ERR != old_sigterm_handler) - (void)signal(SIGTERM, old_sigterm_handler); -#endif -} - -/* - * fullread is a wrapper around the read() function. This will repeat the call - * to read() until it actually has read the complete number of bytes indicated - * in nbytes or it fails with a condition that cannot be handled with a simple - * retry of the read call. - */ - -static ssize_t fullread(int filedes, void *buffer, size_t nbytes) -{ - int error; - ssize_t rc; - ssize_t nread = 0; - - do { - rc = read(filedes, (unsigned char *)buffer + nread, nbytes - nread); - - if(got_exit_signal) { - logmsg("signalled to die"); - return -1; - } - - if(rc < 0) { - error = ERRNO; - if((error == EINTR) || (error == EAGAIN)) - continue; - logmsg("unrecoverable read() failure: %s", strerror(error)); - return -1; - } - - if(rc == 0) { - logmsg("got 0 reading from stdin"); - return 0; - } - - nread += rc; - - } while((size_t)nread < nbytes); - - if(verbose) - logmsg("read %ld bytes", (long)nread); - - return nread; -} - -/* - * fullwrite is a wrapper around the write() function. This will repeat the - * call to write() until it actually has written the complete number of bytes - * indicated in nbytes or it fails with a condition that cannot be handled - * with a simple retry of the write call. - */ - -static ssize_t fullwrite(int filedes, const void *buffer, size_t nbytes) -{ - int error; - ssize_t wc; - ssize_t nwrite = 0; - - do { - wc = write(filedes, (unsigned char *)buffer + nwrite, nbytes - nwrite); - - if(got_exit_signal) { - logmsg("signalled to die"); - return -1; - } - - if(wc < 0) { - error = ERRNO; - if((error == EINTR) || (error == EAGAIN)) - continue; - logmsg("unrecoverable write() failure: %s", strerror(error)); - return -1; - } - - if(wc == 0) { - logmsg("put 0 writing to stdout"); - return 0; - } - - nwrite += wc; - - } while((size_t)nwrite < nbytes); - - if(verbose) - logmsg("wrote %ld bytes", (long)nwrite); - - return nwrite; -} - -/* - * read_stdin tries to read from stdin nbytes into the given buffer. This is a - * blocking function that will only return TRUE when nbytes have actually been - * read or FALSE when an unrecoverable error has been detected. Failure of this - * function is an indication that the sockfilt process should terminate. - */ - -static bool read_stdin(void *buffer, size_t nbytes) -{ - ssize_t nread = fullread(fileno(stdin), buffer, nbytes); - if(nread != (ssize_t)nbytes) { - logmsg("exiting..."); - return FALSE; - } - return TRUE; -} - -/* - * write_stdout tries to write to stdio nbytes from the given buffer. This is a - * blocking function that will only return TRUE when nbytes have actually been - * written or FALSE when an unrecoverable error has been detected. Failure of - * this function is an indication that the sockfilt process should terminate. - */ - -static bool write_stdout(const void *buffer, size_t nbytes) -{ - ssize_t nwrite = fullwrite(fileno(stdout), buffer, nbytes); - if(nwrite != (ssize_t)nbytes) { - logmsg("exiting..."); - return FALSE; - } - return TRUE; -} - -static void lograw(unsigned char *buffer, ssize_t len) -{ - char data[120]; - ssize_t i; - unsigned char *ptr = buffer; - char *optr = data; - ssize_t width=0; - - for(i=0; i<len; i++) { - switch(ptr[i]) { - case '\n': - sprintf(optr, "\\n"); - width += 2; - optr += 2; - break; - case '\r': - sprintf(optr, "\\r"); - width += 2; - optr += 2; - break; - default: - sprintf(optr, "%c", (ISGRAPH(ptr[i]) || ptr[i]==0x20) ?ptr[i]:'.'); - width++; - optr++; - break; - } - - if(width>60) { - logmsg("'%s'", data); - width = 0; - optr = data; - } - } - if(width) - logmsg("'%s'", data); -} - -/* - sockfdp is a pointer to an established stream or CURL_SOCKET_BAD - - if sockfd is CURL_SOCKET_BAD, listendfd is a listening socket we must - accept() -*/ -static bool juggle(curl_socket_t *sockfdp, - curl_socket_t listenfd, - enum sockmode *mode) -{ - struct timeval timeout; - fd_set fds_read; - fd_set fds_write; - fd_set fds_err; - curl_socket_t sockfd; - curl_socket_t maxfd; - ssize_t rc; - ssize_t nread_socket; - ssize_t bytes_written; - ssize_t buffer_len; - int error; - - /* 'buffer' is this excessively large only to be able to support things like - test 1003 which tests exceedingly large server response lines */ - unsigned char buffer[17010]; - char data[16]; - - if(got_exit_signal) { - logmsg("signalled to die, exiting..."); - return FALSE; - } - -#ifdef HAVE_GETPPID - /* As a last resort, quit if sockfilt process becomes orphan. Just in case - parent ftpserver process has died without killing its sockfilt children */ - if(getppid() <= 1) { - logmsg("process becomes orphan, exiting"); - return FALSE; - } -#endif - - timeout.tv_sec = 120; - timeout.tv_usec = 0; - - FD_ZERO(&fds_read); - FD_ZERO(&fds_write); - FD_ZERO(&fds_err); - - FD_SET(fileno(stdin), &fds_read); - - switch(*mode) { - - case PASSIVE_LISTEN: - - /* server mode */ - sockfd = listenfd; - /* there's always a socket to wait for */ - FD_SET(sockfd, &fds_read); - maxfd = sockfd; - break; - - case PASSIVE_CONNECT: - - sockfd = *sockfdp; - if(CURL_SOCKET_BAD == sockfd) { - /* eeek, we are supposedly connected and then this cannot be -1 ! */ - logmsg("socket is -1! on %s:%d", __FILE__, __LINE__); - maxfd = 0; /* stdin */ - } - else { - /* there's always a socket to wait for */ - FD_SET(sockfd, &fds_read); - maxfd = sockfd; - } - break; - - case ACTIVE: - - sockfd = *sockfdp; - /* sockfd turns CURL_SOCKET_BAD when our connection has been closed */ - if(CURL_SOCKET_BAD != sockfd) { - FD_SET(sockfd, &fds_read); - maxfd = sockfd; - } - else { - logmsg("No socket to read on"); - maxfd = 0; - } - break; - - case ACTIVE_DISCONNECT: - - logmsg("disconnected, no socket to read on"); - maxfd = 0; - sockfd = CURL_SOCKET_BAD; - break; - - } /* switch(*mode) */ - - - do { - - rc = select((int)maxfd + 1, &fds_read, &fds_write, &fds_err, &timeout); - - if(got_exit_signal) { - logmsg("signalled to die, exiting..."); - return FALSE; - } - - } while((rc == -1) && ((error = SOCKERRNO) == EINTR)); - - if(rc < 0) { - logmsg("select() failed with error: (%d) %s", - error, strerror(error)); - return FALSE; - } - - if(rc == 0) - /* timeout */ - return TRUE; - - - if(FD_ISSET(fileno(stdin), &fds_read)) { - /* read from stdin, commands/data to be dealt with and possibly passed on - to the socket - - protocol: - - 4 letter command + LF [mandatory] - - 4-digit hexadecimal data length + LF [if the command takes data] - data [the data being as long as set above] - - Commands: - - DATA - plain pass-thru data - */ - - if(!read_stdin(buffer, 5)) - return FALSE; - - logmsg("Received %c%c%c%c (on stdin)", - buffer[0], buffer[1], buffer[2], buffer[3] ); - - if(!memcmp("PING", buffer, 4)) { - /* send reply on stdout, just proving we are alive */ - if(!write_stdout("PONG\n", 5)) - return FALSE; - } - - else if(!memcmp("PORT", buffer, 4)) { - /* Question asking us what PORT number we are listening to. - Replies to PORT with "IPv[num]/[port]" */ - sprintf((char *)buffer, "IPv%d/%d\n", use_ipv6?6:4, (int)port); - buffer_len = (ssize_t)strlen((char *)buffer); - snprintf(data, sizeof(data), "PORT\n%04x\n", buffer_len); - if(!write_stdout(data, 10)) - return FALSE; - if(!write_stdout(buffer, buffer_len)) - return FALSE; - } - else if(!memcmp("QUIT", buffer, 4)) { - /* just die */ - logmsg("quits"); - return FALSE; - } - else if(!memcmp("DATA", buffer, 4)) { - /* data IN => data OUT */ - - if(!read_stdin(buffer, 5)) - return FALSE; - - buffer[5] = '\0'; - - buffer_len = (ssize_t)strtol((char *)buffer, NULL, 16); - if (buffer_len > (ssize_t)sizeof(buffer)) { - logmsg("ERROR: Buffer size (%ld bytes) too small for data size " - "(%ld bytes)", (long)sizeof(buffer), (long)buffer_len); - return FALSE; - } - logmsg("> %d bytes data, server => client", buffer_len); - - if(!read_stdin(buffer, buffer_len)) - return FALSE; - - lograw(buffer, buffer_len); - - if(*mode == PASSIVE_LISTEN) { - logmsg("*** We are disconnected!"); - if(!write_stdout("DISC\n", 5)) - return FALSE; - } - else { - /* send away on the socket */ - bytes_written = swrite(sockfd, buffer, buffer_len); - if(bytes_written != buffer_len) { - logmsg("Not all data was sent. Bytes to send: %d sent: %d", - buffer_len, bytes_written); - } - } - } - else if(!memcmp("DISC", buffer, 4)) { - /* disconnect! */ - if(!write_stdout("DISC\n", 5)) - return FALSE; - if(sockfd != CURL_SOCKET_BAD) { - logmsg("====> Client forcibly disconnected"); - sclose(sockfd); - *sockfdp = CURL_SOCKET_BAD; - if(*mode == PASSIVE_CONNECT) - *mode = PASSIVE_LISTEN; - else - *mode = ACTIVE_DISCONNECT; - } - else - logmsg("attempt to close already dead connection"); - return TRUE; - } - } - - - if((sockfd != CURL_SOCKET_BAD) && (FD_ISSET(sockfd, &fds_read)) ) { - - if(*mode == PASSIVE_LISTEN) { - /* there's no stream set up yet, this is an indication that there's a - client connecting. */ - sockfd = accept(sockfd, NULL, NULL); - if(CURL_SOCKET_BAD == sockfd) - logmsg("accept() failed"); - else { - logmsg("====> Client connect"); - if(!write_stdout("CNCT\n", 5)) - return FALSE; - *sockfdp = sockfd; /* store the new socket */ - *mode = PASSIVE_CONNECT; /* we have connected */ - } - return TRUE; - } - - /* read from socket, pass on data to stdout */ - nread_socket = sread(sockfd, buffer, sizeof(buffer)); - - if(nread_socket <= 0) { - logmsg("====> Client disconnect"); - if(!write_stdout("DISC\n", 5)) - return FALSE; - sclose(sockfd); - *sockfdp = CURL_SOCKET_BAD; - if(*mode == PASSIVE_CONNECT) - *mode = PASSIVE_LISTEN; - else - *mode = ACTIVE_DISCONNECT; - return TRUE; - } - - snprintf(data, sizeof(data), "DATA\n%04x\n", nread_socket); - if(!write_stdout(data, 10)) - return FALSE; - if(!write_stdout(buffer, nread_socket)) - return FALSE; - - logmsg("< %d bytes data, client => server", nread_socket); - lograw(buffer, nread_socket); - } - - return TRUE; -} - -static curl_socket_t sockdaemon(curl_socket_t sock, - unsigned short *listenport) -{ - /* passive daemon style */ - struct sockaddr_in me; -#ifdef ENABLE_IPV6 - struct sockaddr_in6 me6; -#endif /* ENABLE_IPV6 */ - int flag = 1; - int rc; - int totdelay = 0; - int maxretr = 10; - int delay= 20; - int attempt = 0; - int error = 0; - - do { - attempt++; - rc = setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, - (void *)&flag, sizeof(flag)); - if(rc) { - error = SOCKERRNO; - if(maxretr) { - rc = wait_ms(delay); - if(rc) { - /* should not happen */ - error = SOCKERRNO; - logmsg("wait_ms() failed: (%d) %s", error, strerror(error)); - sclose(sock); - return CURL_SOCKET_BAD; - } - if(got_exit_signal) { - logmsg("signalled to die, exiting..."); - sclose(sock); - return CURL_SOCKET_BAD; - } - totdelay += delay; - delay *= 2; /* double the sleep for next attempt */ - } - } - } while(rc && maxretr--); - - if(rc) { - logmsg("setsockopt(SO_REUSEADDR) failed %d times in %d ms. Error: (%d) %s", - attempt, totdelay, error, strerror(error)); - logmsg("Continuing anyway..."); - } - -#ifdef ENABLE_IPV6 - if(!use_ipv6) { -#endif - memset(&me, 0, sizeof(me)); - me.sin_family = AF_INET; - me.sin_addr.s_addr = INADDR_ANY; - me.sin_port = htons(*listenport); - rc = bind(sock, (struct sockaddr *) &me, sizeof(me)); -#ifdef ENABLE_IPV6 - } - else { - memset(&me6, 0, sizeof(me6)); - me6.sin6_family = AF_INET6; - me6.sin6_addr = in6addr_any; - me6.sin6_port = htons(*listenport); - rc = bind(sock, (struct sockaddr *) &me6, sizeof(me6)); - } -#endif /* ENABLE_IPV6 */ - if(rc) { - error = SOCKERRNO; - logmsg("Error binding socket: (%d) %s", error, strerror(error)); - sclose(sock); - return CURL_SOCKET_BAD; - } - - if(!*listenport) { - /* The system picked a port number, now figure out which port we actually - got */ - /* we succeeded to bind */ - struct sockaddr_in add; - socklen_t socksize = sizeof(add); - - if(getsockname(sock, (struct sockaddr *) &add, - &socksize)<0) { - error = SOCKERRNO; - logmsg("getsockname() failed with error: (%d) %s", - error, strerror(error)); - sclose(sock); - return CURL_SOCKET_BAD; - } - *listenport = ntohs(add.sin_port); - } - - /* start accepting connections */ - rc = listen(sock, 5); - if(0 != rc) { - error = SOCKERRNO; - logmsg("listen() failed with error: (%d) %s", - error, strerror(error)); - sclose(sock); - return CURL_SOCKET_BAD; - } - - return sock; -} - - -int main(int argc, char *argv[]) -{ - struct sockaddr_in me; -#ifdef ENABLE_IPV6 - struct sockaddr_in6 me6; -#endif /* ENABLE_IPV6 */ - curl_socket_t sock = CURL_SOCKET_BAD; - curl_socket_t msgsock = CURL_SOCKET_BAD; - int wrotepidfile = 0; - char *pidname= (char *)".sockfilt.pid"; - int rc; - int error; - int arg=1; - enum sockmode mode = PASSIVE_LISTEN; /* default */ - const char *addr = NULL; - - while(argc>arg) { - if(!strcmp("--version", argv[arg])) { - printf("sockfilt IPv4%s\n", -#ifdef ENABLE_IPV6 - "/IPv6" -#else - "" -#endif - ); - return 0; - } - else if(!strcmp("--verbose", argv[arg])) { - verbose = TRUE; - arg++; - } - else if(!strcmp("--pidfile", argv[arg])) { - arg++; - if(argc>arg) - pidname = argv[arg++]; - } - else if(!strcmp("--logfile", argv[arg])) { - arg++; - if(argc>arg) - serverlogfile = argv[arg++]; - } - else if(!strcmp("--ipv6", argv[arg])) { -#ifdef ENABLE_IPV6 - use_ipv6=TRUE; -#endif - arg++; - } - else if(!strcmp("--ipv4", argv[arg])) { - /* for completeness, we support this option as well */ - use_ipv6=FALSE; - arg++; - } - else if(!strcmp("--port", argv[arg])) { - arg++; - if(argc>arg) { - port = (unsigned short)atoi(argv[arg]); - arg++; - } - } - else if(!strcmp("--connect", argv[arg])) { - /* Asked to actively connect to the specified local port instead of - doing a passive server-style listening. */ - arg++; - if(argc>arg) { - connectport = (unsigned short)atoi(argv[arg]); - arg++; - } - } - else if(!strcmp("--addr", argv[arg])) { - /* Set an IP address to use with --connect; otherwise use localhost */ - arg++; - if(argc>arg) { - addr = argv[arg]; - arg++; - } - } - else { - puts("Usage: sockfilt [option]\n" - " --version\n" - " --verbose\n" - " --logfile [file]\n" - " --pidfile [file]\n" - " --ipv4\n" - " --ipv6\n" - " --port [port]\n" - " --connect [port]\n" - " --addr [address]"); - return 0; - } - } - -#ifdef WIN32 - win32_init(); - atexit(win32_cleanup); -#endif - - install_signal_handlers(); - -#ifdef ENABLE_IPV6 - if(!use_ipv6) -#endif - sock = socket(AF_INET, SOCK_STREAM, 0); -#ifdef ENABLE_IPV6 - else - sock = socket(AF_INET6, SOCK_STREAM, 0); -#endif - - if(CURL_SOCKET_BAD == sock) { - error = SOCKERRNO; - logmsg("Error creating socket: (%d) %s", - error, strerror(error)); - goto sockfilt_cleanup; - } - - if(connectport) { - /* Active mode, we should connect to the given port number */ - mode = ACTIVE; -#ifdef ENABLE_IPV6 - if(!use_ipv6) { -#endif - memset(&me, 0, sizeof(me)); - me.sin_family = AF_INET; - me.sin_port = htons(connectport); - me.sin_addr.s_addr = INADDR_ANY; - if (!addr) - addr = "127.0.0.1"; - Curl_inet_pton(AF_INET, addr, &me.sin_addr); - - rc = connect(sock, (struct sockaddr *) &me, sizeof(me)); -#ifdef ENABLE_IPV6 - } - else { - memset(&me6, 0, sizeof(me6)); - me6.sin6_family = AF_INET6; - me6.sin6_port = htons(connectport); - if (!addr) - addr = "::1"; - Curl_inet_pton(AF_INET6, addr, &me6.sin6_addr); - - rc = connect(sock, (struct sockaddr *) &me6, sizeof(me6)); - } -#endif /* ENABLE_IPV6 */ - if(rc) { - error = SOCKERRNO; - logmsg("Error connecting to port %d: (%d) %s", - connectport, error, strerror(error)); - goto sockfilt_cleanup; - } - logmsg("====> Client connect"); - msgsock = sock; /* use this as stream */ - } - else { - /* passive daemon style */ - sock = sockdaemon(sock, &port); - if(CURL_SOCKET_BAD == sock) - goto sockfilt_cleanup; - msgsock = CURL_SOCKET_BAD; /* no stream socket yet */ - } - - logmsg("Running IPv%d version", - (use_ipv6?6:4)); - - if(connectport) - logmsg("Connected to port %d", connectport); - else - logmsg("Listening on port %d", port); - - wrotepidfile = write_pidfile(pidname); - if(!wrotepidfile) - goto sockfilt_cleanup; - - while(juggle(&msgsock, sock, &mode)); - -sockfilt_cleanup: - - if((msgsock != sock) && (msgsock != CURL_SOCKET_BAD)) - sclose(msgsock); - - if(sock != CURL_SOCKET_BAD) - sclose(sock); - - if(wrotepidfile) - unlink(pidname); - - restore_signal_handlers(); - - if(got_exit_signal) { - logmsg("============> sockfilt exits with signal (%d)", exit_signal); - /* - * To properly set the return status of the process we - * must raise the same signal SIGINT or SIGTERM that we - * caught and let the old handler take care of it. - */ - raise(exit_signal); - } - - logmsg("============> sockfilt quits"); - return 0; -} - diff --git a/Utilities/cmcurl-7.19.0/tests/server/sws.c b/Utilities/cmcurl-7.19.0/tests/server/sws.c deleted file mode 100644 index f658d18..0000000 --- a/Utilities/cmcurl-7.19.0/tests/server/sws.c +++ /dev/null @@ -1,1105 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - * $Id$ - ***************************************************************************/ - -/* sws.c: simple (silly?) web server - - This code was originally graciously donated to the project by Juergen - Wilke. Thanks a bunch! - - */ -#include "setup.h" /* portability help from the lib directory */ - -#ifdef HAVE_SIGNAL_H -#include <signal.h> -#endif -#ifdef HAVE_UNISTD_H -#include <unistd.h> -#endif -#ifdef HAVE_SYS_SOCKET_H -#include <sys/socket.h> -#endif -#ifdef HAVE_NETINET_IN_H -#include <netinet/in.h> -#endif -#ifdef _XOPEN_SOURCE_EXTENDED -/* This define is "almost" required to build on HPUX 11 */ -#include <arpa/inet.h> -#endif -#ifdef HAVE_NETDB_H -#include <netdb.h> -#endif -#ifdef HAVE_NETINET_TCP_H -#include <netinet/tcp.h> /* for TCP_NODELAY */ -#endif - -#define ENABLE_CURLX_PRINTF -/* make the curlx header define all printf() functions to use the curlx_* - versions instead */ -#include "curlx.h" /* from the private lib dir */ -#include "getpart.h" -#include "util.h" - -/* include memdebug.h last */ -#include "memdebug.h" - -#if !defined(CURL_SWS_FORK_ENABLED) && defined(HAVE_FORK) -/* - * The normal sws build for the plain standard curl test suite has no use for - * fork(), but if you feel wild and crazy and want to setup some more exotic - * tests. Define this and run... - */ -#define CURL_SWS_FORK_ENABLED -#endif - -#define REQBUFSIZ 150000 -#define REQBUFSIZ_TXT "149999" - -long prevtestno=-1; /* previous test number we served */ -long prevpartno=-1; /* previous part number we served */ -bool prevbounce=FALSE; /* instructs the server to increase the part number for - a test in case the identical testno+partno request - shows up again */ - -#define RCMD_NORMALREQ 0 /* default request, use the tests file normally */ -#define RCMD_IDLE 1 /* told to sit idle */ -#define RCMD_STREAM 2 /* told to stream */ - -struct httprequest { - char reqbuf[REQBUFSIZ]; /* buffer area for the incoming request */ - int checkindex; /* where to start checking of the request */ - int offset; /* size of the incoming request */ - long testno; /* test number found in the request */ - long partno; /* part number found in the request */ - bool open; /* keep connection open info, as found in the request */ - bool auth_req; /* authentication required, don't wait for body unless - there's an Authorization header */ - bool auth; /* Authorization header present in the incoming request */ - size_t cl; /* Content-Length of the incoming request */ - bool digest; /* Authorization digest header found */ - bool ntlm; /* Authorization ntlm header found */ - int pipe; /* if non-zero, expect this many requests to do a "piped" - request/response */ - int skip; /* if non-zero, the server is instructed to not read this - many bytes from a PUT/POST request. Ie the client sends N - bytes said in Content-Length, but the server only reads N - - skip bytes. */ - int rcmd; /* doing a special command, see defines above */ - int prot_version; /* HTTP version * 10 */ - bool pipelining; /* true if request is pipelined */ -}; - -int ProcessRequest(struct httprequest *req); -void storerequest(char *reqbuf, ssize_t totalsize); - -#define DEFAULT_PORT 8999 - -#ifndef DEFAULT_LOGFILE -#define DEFAULT_LOGFILE "log/sws.log" -#endif - -const char *serverlogfile = DEFAULT_LOGFILE; - -#define SWSVERSION "cURL test suite HTTP server/0.1" - -#define REQUEST_DUMP "log/server.input" -#define RESPONSE_DUMP "log/server.response" - -/* very-big-path support */ -#define MAXDOCNAMELEN 140000 -#define MAXDOCNAMELEN_TXT "139999" - -#define REQUEST_KEYWORD_SIZE 256 -#define REQUEST_KEYWORD_SIZE_TXT "255" - -#define CMD_AUTH_REQUIRED "auth_required" - -/* 'idle' means that it will accept the request fine but never respond - any data. Just keep the connection alive. */ -#define CMD_IDLE "idle" - -/* 'stream' means to send a never-ending stream of data */ -#define CMD_STREAM "stream" - -#define END_OF_HEADERS "\r\n\r\n" - -enum { - DOCNUMBER_NOTHING = -7, - DOCNUMBER_QUIT = -6, - DOCNUMBER_BADCONNECT = -5, - DOCNUMBER_INTERNAL= -4, - DOCNUMBER_CONNECT = -3, - DOCNUMBER_WERULEZ = -2, - DOCNUMBER_404 = -1 -}; - - -/* sent as reply to a QUIT */ -static const char *docquit = -"HTTP/1.1 200 Goodbye" END_OF_HEADERS; - -/* sent as reply to a CONNECT */ -static const char *docconnect = -"HTTP/1.1 200 Mighty fine indeed" END_OF_HEADERS; - -/* sent as reply to a "bad" CONNECT */ -static const char *docbadconnect = -"HTTP/1.1 501 Forbidden you fool" END_OF_HEADERS; - -/* send back this on 404 file not found */ -static const char *doc404 = "HTTP/1.1 404 Not Found\r\n" - "Server: " SWSVERSION "\r\n" - "Connection: close\r\n" - "Content-Type: text/html" - END_OF_HEADERS - "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n" - "<HTML><HEAD>\n" - "<TITLE>404 Not Found</TITLE>\n" - "</HEAD><BODY>\n" - "<H1>Not Found</H1>\n" - "The requested URL was not found on this server.\n" - "<P><HR><ADDRESS>" SWSVERSION "</ADDRESS>\n" "</BODY></HTML>\n"; - -#ifdef SIGPIPE -static volatile int sigpipe; /* Why? It's not used */ -#endif - -#ifdef SIGPIPE -static void sigpipe_handler(int sig) -{ - (void)sig; /* prevent warning */ - sigpipe = 1; -} -#endif - -int ProcessRequest(struct httprequest *req) -{ - char *line=&req->reqbuf[req->checkindex]; - bool chunked = FALSE; - static char request[REQUEST_KEYWORD_SIZE]; - static char doc[MAXDOCNAMELEN]; - char logbuf[256]; - int prot_major, prot_minor; - char *end; - int error; - end = strstr(line, END_OF_HEADERS); - - logmsg("ProcessRequest() called"); - - /* try to figure out the request characteristics as soon as possible, but - only once! */ - if((req->testno == DOCNUMBER_NOTHING) && - sscanf(line, - "%" REQUEST_KEYWORD_SIZE_TXT"s %" MAXDOCNAMELEN_TXT "s HTTP/%d.%d", - request, - doc, - &prot_major, - &prot_minor) == 4) { - char *ptr; - - req->prot_version = prot_major*10 + prot_minor; - - /* find the last slash */ - ptr = strrchr(doc, '/'); - - /* get the number after it */ - if(ptr) { - FILE *stream; - char *filename; - - if((strlen(doc) + strlen(request)) < 200) - sprintf(logbuf, "Got request: %s %s HTTP/%d.%d", - request, doc, prot_major, prot_minor); - else - sprintf(logbuf, "Got a *HUGE* request HTTP/%d.%d", - prot_major, prot_minor); - logmsg("%s", logbuf); - - if(!strncmp("/verifiedserver", ptr, 15)) { - logmsg("Are-we-friendly question received"); - req->testno = DOCNUMBER_WERULEZ; - return 1; /* done */ - } - - if(!strncmp("/quit", ptr, 5)) { - logmsg("Request-to-quit received"); - req->testno = DOCNUMBER_QUIT; - return 1; /* done */ - } - - ptr++; /* skip the slash */ - - /* skip all non-numericals following the slash */ - while(*ptr && !ISDIGIT(*ptr)) - ptr++; - - req->testno = strtol(ptr, &ptr, 10); - - if(req->testno > 10000) { - req->partno = req->testno % 10000; - req->testno /= 10000; - } - else - req->partno = 0; - - sprintf(logbuf, "Requested test number %ld part %ld", - req->testno, req->partno); - - logmsg("%s", logbuf); - - filename = test2file(req->testno); - - stream=fopen(filename, "rb"); - if(!stream) { - error = ERRNO; - logmsg("fopen() failed with error: %d %s", error, strerror(error)); - logmsg("Error opening file: %s", filename); - logmsg("Couldn't open test file %d", req->testno); - req->open = FALSE; /* closes connection */ - return 1; /* done */ - } - else { - char *cmd = NULL; - size_t cmdsize = 0; - int num=0; - - /* get the custom server control "commands" */ - cmd = (char *)spitout(stream, "reply", "servercmd", &cmdsize); - fclose(stream); - - if(cmdsize) { - logmsg("Found a reply-servercmd section!"); - - if(!strncmp(CMD_AUTH_REQUIRED, cmd, strlen(CMD_AUTH_REQUIRED))) { - logmsg("instructed to require authorization header"); - req->auth_req = TRUE; - } - else if(!strncmp(CMD_IDLE, cmd, strlen(CMD_IDLE))) { - logmsg("instructed to idle"); - req->rcmd = RCMD_IDLE; - req->open = TRUE; - } - else if(!strncmp(CMD_STREAM, cmd, strlen(CMD_STREAM))) { - logmsg("instructed to stream"); - req->rcmd = RCMD_STREAM; - } - else if(1 == sscanf(cmd, "pipe: %d", &num)) { - logmsg("instructed to allow a pipe size %d", num); - req->pipe = num-1; /* decrease by one since we don't count the - first request in this number */ - } - else if(1 == sscanf(cmd, "skip: %d", &num)) { - logmsg("instructed to skip this number of bytes %d", num); - req->skip = num; - } - else { - logmsg("funny instruction found: %s", cmd); - } - free(cmd); - } - } - } - else { - if(sscanf(req->reqbuf, "CONNECT %" MAXDOCNAMELEN_TXT "s HTTP/%d.%d", - doc, &prot_major, &prot_minor) == 3) { - sprintf(logbuf, "Received a CONNECT %s HTTP/%d.%d request", - doc, prot_major, prot_minor); - logmsg("%s", logbuf); - - if(req->prot_version == 10) - req->open = FALSE; /* HTTP 1.0 closes connection by default */ - - if(!strncmp(doc, "bad", 3)) - /* if the host name starts with bad, we fake an error here */ - req->testno = DOCNUMBER_BADCONNECT; - else if(!strncmp(doc, "test", 4)) { - /* if the host name starts with test, the port number used in the - CONNECT line will be used as test number! */ - char *portp = strchr(doc, ':'); - if(portp) - req->testno = atoi(portp+1); - else - req->testno = DOCNUMBER_CONNECT; - } - else - req->testno = DOCNUMBER_CONNECT; - } - else { - logmsg("Did not find test number in PATH"); - req->testno = DOCNUMBER_404; - } - } - } - - if(!end) { - /* we don't have a complete request yet! */ - logmsg("ProcessRequest returned without a complete request"); - return 0; - } - logmsg("ProcessRequest found a complete request"); - - if(req->pipe) - /* we do have a full set, advance the checkindex to after the end of the - headers, for the pipelining case mostly */ - req->checkindex += (end - line) + strlen(END_OF_HEADERS); - - /* **** Persistence **** - * - * If the request is a HTTP/1.0 one, we close the connection unconditionally - * when we're done. - * - * If the request is a HTTP/1.1 one, we MUST check for a "Connection:" - * header that might say "close". If it does, we close a connection when - * this request is processed. Otherwise, we keep the connection alive for X - * seconds. - */ - - do { - if((req->cl<=0) && curlx_strnequal("Content-Length:", line, 15)) { - /* If we don't ignore content-length, we read it and we read the whole - request including the body before we return. If we've been told to - ignore the content-length, we will return as soon as all headers - have been received */ - size_t cl = strtol(line+15, &line, 10); - req->cl = cl - req->skip; - - logmsg("Found Content-Length: %d in the request", cl); - if(req->skip) - logmsg("... but will abort after %d bytes", req->cl); - break; - } - else if(curlx_strnequal("Transfer-Encoding: chunked", line, - strlen("Transfer-Encoding: chunked"))) { - /* chunked data coming in */ - chunked = TRUE; - } - - if(chunked) { - if(strstr(req->reqbuf, "\r\n0\r\n\r\n")) - /* end of chunks reached */ - return 1; /* done */ - else - return 0; /* not done */ - } - - line = strchr(line, '\n'); - if(line) - line++; - } while(line); - - if(!req->auth && strstr(req->reqbuf, "Authorization:")) { - req->auth = TRUE; /* Authorization: header present! */ - if(req->auth_req) - logmsg("Authorization header found, as required"); - } - - if(!req->digest && strstr(req->reqbuf, "Authorization: Digest")) { - /* If the client is passing this Digest-header, we set the part number - to 1000. Not only to spice up the complexity of this, but to make - Digest stuff to work in the test suite. */ - req->partno += 1000; - req->digest = TRUE; /* header found */ - logmsg("Received Digest request, sending back data %d", req->partno); - } - else if(!req->ntlm && - strstr(req->reqbuf, "Authorization: NTLM TlRMTVNTUAAD")) { - /* If the client is passing this type-3 NTLM header */ - req->partno += 1002; - req->ntlm = TRUE; /* NTLM found */ - logmsg("Received NTLM type-3, sending back data %d", req->partno); - if(req->cl) { - logmsg(" Expecting %d POSTed bytes", req->cl); - } - } - else if(!req->ntlm && - strstr(req->reqbuf, "Authorization: NTLM TlRMTVNTUAAB")) { - /* If the client is passing this type-1 NTLM header */ - req->partno += 1001; - req->ntlm = TRUE; /* NTLM found */ - logmsg("Received NTLM type-1, sending back data %d", req->partno); - } - if(strstr(req->reqbuf, "Connection: close")) - req->open = FALSE; /* close connection after this request */ - - if(!req->pipe && - req->open && - req->prot_version >= 11 && - end && - req->reqbuf + req->offset > end + strlen(END_OF_HEADERS) && - (!strncmp(req->reqbuf, "GET", strlen("GET")) || - !strncmp(req->reqbuf, "HEAD", strlen("HEAD")))) { - /* If we have a persistent connection, HTTP version >= 1.1 - and GET/HEAD request, enable pipelining. */ - req->checkindex = (end - req->reqbuf) + strlen(END_OF_HEADERS); - req->pipelining = TRUE; - } - - while(req->pipe) { - /* scan for more header ends within this chunk */ - line = &req->reqbuf[req->checkindex]; - end = strstr(line, END_OF_HEADERS); - if(!end) - break; - req->checkindex += (end - line) + strlen(END_OF_HEADERS); - req->pipe--; - } - - - /* If authentication is required and no auth was provided, end now. This - makes the server NOT wait for PUT/POST data and you can then make the - test case send a rejection before any such data has been sent. Test case - 154 uses this.*/ - if(req->auth_req && !req->auth) - return 1; - - if(req->cl > 0) { - if(req->cl <= req->offset - (end - req->reqbuf) - strlen(END_OF_HEADERS)) - return 1; /* done */ - else - return 0; /* not complete yet */ - } - - return 1; /* done */ -} - -/* store the entire request in a file */ -void storerequest(char *reqbuf, ssize_t totalsize) -{ - int res; - int error; - ssize_t written; - ssize_t writeleft; - FILE *dump; - - if (reqbuf == NULL) - return; - - if (totalsize == 0) - return; - else if (totalsize < 0) { - logmsg("Invalid size (%d bytes) for request input. Not written to %s", - totalsize, REQUEST_DUMP); - return; - } - - do { - dump = fopen(REQUEST_DUMP, "ab"); - } while ((dump == NULL) && ((error = ERRNO) == EINTR)); - if (dump == NULL) { - logmsg("Error opening file %s error: %d %s", - REQUEST_DUMP, error, strerror(error)); - logmsg("Failed to write request input to " REQUEST_DUMP); - return; - } - - writeleft = totalsize; - do { - written = (ssize_t)fwrite((void *) &reqbuf[totalsize-writeleft], - 1, (size_t)writeleft, dump); - if (written > 0) - writeleft -= written; - } while ((writeleft > 0) && ((error = ERRNO) == EINTR)); - - if (writeleft > 0) { - logmsg("Error writing file %s error: %d %s", - REQUEST_DUMP, error, strerror(error)); - logmsg("Wrote only (%d bytes) of (%d bytes) request input to %s", - totalsize-writeleft, totalsize, REQUEST_DUMP); - } - - do { - res = fclose(dump); - } while(res && ((error = ERRNO) == EINTR)); - if(res) - logmsg("Error closing file %s error: %d %s", - REQUEST_DUMP, error, strerror(error)); - - if(!writeleft) - logmsg("Wrote request (%d bytes) input to " REQUEST_DUMP, - totalsize); -} - -/* return 0 on success, non-zero on failure */ -static int get_request(curl_socket_t sock, struct httprequest *req) -{ - int fail = 0; - char *reqbuf = req->reqbuf; - ssize_t got = 0; - - char *pipereq; - int pipereq_length = 0; - - if(req->pipelining) { - pipereq = reqbuf + req->checkindex; - pipereq_length = req->offset - req->checkindex; - } - - /*** Init the httprequest structure properly for the upcoming request ***/ - - req->checkindex = 0; - req->offset = 0; - req->testno = DOCNUMBER_NOTHING; - req->partno = 0; - req->open = TRUE; - req->auth_req = FALSE; - req->auth = FALSE; - req->cl = 0; - req->digest = FALSE; - req->ntlm = FALSE; - req->pipe = 0; - req->skip = 0; - req->rcmd = RCMD_NORMALREQ; - req->prot_version = 0; - req->pipelining = FALSE; - - /*** end of httprequest init ***/ - - while (req->offset < REQBUFSIZ-1) { - if(pipereq_length) { - memmove(reqbuf, pipereq, pipereq_length); - got = pipereq_length; - pipereq_length = 0; - } - else { - if(req->skip) - /* we are instructed to not read the entire thing, so we make sure to only - read what we're supposed to and NOT read the enire thing the client - wants to send! */ - got = sread(sock, reqbuf + req->offset, req->cl); - else - got = sread(sock, reqbuf + req->offset, REQBUFSIZ-1 - req->offset); - } - if (got <= 0) { - if (got < 0) { - logmsg("recv() returned error: %d", SOCKERRNO); - return DOCNUMBER_INTERNAL; - } - logmsg("Connection closed by client"); - reqbuf[req->offset] = '\0'; - - /* dump the request receivied so far to the external file */ - storerequest(reqbuf, req->offset); - return DOCNUMBER_INTERNAL; - } - - logmsg("Read %d bytes", got); - - req->offset += got; - reqbuf[req->offset] = '\0'; - - if(ProcessRequest(req)) { - if(req->pipe--) { - logmsg("Waiting for another piped request"); - continue; - } - break; - } - } - - if((req->offset == REQBUFSIZ-1) && (got > 0)) { - logmsg("Request would overflow buffer, closing connection"); - /* dump request received so far to external file anyway */ - reqbuf[REQBUFSIZ-1] = '\0'; - fail = 1; - } - else if(req->offset > REQBUFSIZ-1) { - logmsg("Request buffer overflow, closing connection"); - /* dump request received so far to external file anyway */ - reqbuf[REQBUFSIZ-1] = '\0'; - fail = 1; - } - else - reqbuf[req->offset] = '\0'; - - /* dump the request to an external file */ - storerequest(reqbuf, req->pipelining ? req->checkindex : req->offset); - - return fail; /* return 0 on success */ -} - -/* returns -1 on failure */ -static int send_doc(curl_socket_t sock, struct httprequest *req) -{ - ssize_t written; - size_t count; - const char *buffer; - char *ptr=NULL; - FILE *stream; - char *cmd=NULL; - size_t cmdsize=0; - FILE *dump; - bool persistant = TRUE; - bool sendfailure = FALSE; - size_t responsesize; - int error; - int res; - - static char weare[256]; - - char partbuf[80]="data"; - - logmsg("Send response number %d part %d", req->testno, req->partno); - - switch(req->rcmd) { - default: - case RCMD_NORMALREQ: - break; /* continue with business as usual */ - case RCMD_STREAM: -#define STREAMTHIS "a string to stream 01234567890\n" - count = strlen(STREAMTHIS); - while(1) { - written = swrite(sock, STREAMTHIS, count); - if(written != (ssize_t)count) { - logmsg("Stopped streaming"); - break; - } - } - return -1; - case RCMD_IDLE: - /* Do nothing. Sit idle. Pretend it rains. */ - return 0; - } - - req->open = FALSE; - - if(req->testno < 0) { - size_t msglen; - char msgbuf[64]; - - switch(req->testno) { - case DOCNUMBER_QUIT: - logmsg("Replying to QUIT"); - buffer = docquit; - break; - case DOCNUMBER_WERULEZ: - /* we got a "friends?" question, reply back that we sure are */ - logmsg("Identifying ourselves as friends"); - sprintf(msgbuf, "WE ROOLZ: %ld\r\n", (long)getpid()); - msglen = strlen(msgbuf); - sprintf(weare, "HTTP/1.1 200 OK\r\nContent-Length: %d\r\n\r\n%s", - msglen, msgbuf); - buffer = weare; - break; - case DOCNUMBER_INTERNAL: - logmsg("Bailing out due to internal error"); - return -1; - case DOCNUMBER_CONNECT: - logmsg("Replying to CONNECT"); - buffer = docconnect; - break; - case DOCNUMBER_BADCONNECT: - logmsg("Replying to a bad CONNECT"); - buffer = docbadconnect; - break; - case DOCNUMBER_404: - default: - logmsg("Replying to with a 404"); - buffer = doc404; - break; - } - ptr = NULL; - stream=NULL; - - count = strlen(buffer); - } - else { - char *filename = test2file(req->testno); - - if(0 != req->partno) - sprintf(partbuf, "data%ld", req->partno); - - stream=fopen(filename, "rb"); - if(!stream) { - error = ERRNO; - logmsg("fopen() failed with error: %d %s", error, strerror(error)); - logmsg("Error opening file: %s", filename); - logmsg("Couldn't open test file"); - return 0; - } - else { - buffer = spitout(stream, "reply", partbuf, &count); - ptr = (char *)buffer; - fclose(stream); - } - - /* re-open the same file again */ - stream=fopen(filename, "rb"); - if(!stream) { - error = ERRNO; - logmsg("fopen() failed with error: %d %s", error, strerror(error)); - logmsg("Error opening file: %s", filename); - logmsg("Couldn't open test file"); - return 0; - } - else { - /* get the custom server control "commands" */ - cmd = (char *)spitout(stream, "reply", "postcmd", &cmdsize); - fclose(stream); - } - } - - dump = fopen(RESPONSE_DUMP, "ab"); /* b is for windows-preparing */ - if(!dump) { - error = ERRNO; - logmsg("fopen() failed with error: %d %s", error, strerror(error)); - logmsg("Error opening file: %s", RESPONSE_DUMP); - logmsg("couldn't create logfile: " RESPONSE_DUMP); - return -1; - } - - /* If the word 'swsclose' is present anywhere in the reply chunk, the - connection will be closed after the data has been sent to the requesting - client... */ - if(strstr(buffer, "swsclose") || !count) { - persistant = FALSE; - logmsg("connection close instruction \"swsclose\" found in response"); - } - if(strstr(buffer, "swsbounce")) { - prevbounce = TRUE; - logmsg("enable \"swsbounce\" in the next request"); - } - else - prevbounce = FALSE; - - - responsesize = count; - do { - /* Ok, we send no more than 200 bytes at a time, just to make sure that - larger chunks are split up so that the client will need to do multiple - recv() calls to get it and thus we exercise that code better */ - size_t num = count; - if(num > 200) - num = 200; - written = swrite(sock, buffer, num); - if (written < 0) { - sendfailure = TRUE; - break; - } - else { - logmsg("Sent off %d bytes", written); - } - /* write to file as well */ - fwrite(buffer, 1, written, dump); - - count -= written; - buffer += written; - } while(count>0); - - do { - res = fclose(dump); - } while(res && ((error = ERRNO) == EINTR)); - if(res) - logmsg("Error closing file %s error: %d %s", - RESPONSE_DUMP, error, strerror(error)); - - if(sendfailure) { - logmsg("Sending response failed. Only (%d bytes) of (%d bytes) were sent", - responsesize-count, responsesize); - if(ptr) - free(ptr); - if(cmd) - free(cmd); - return -1; - } - - logmsg("Response sent (%d bytes) and written to " RESPONSE_DUMP, - responsesize); - - if(ptr) - free(ptr); - - if(cmdsize > 0 ) { - char command[32]; - int num; - ptr=cmd; - do { - if(2 == sscanf(ptr, "%31s %d", command, &num)) { - if(!strcmp("wait", command)) { - logmsg("Told to sleep for %d seconds", num); - sleep(num); /* wait this many seconds */ - } - else - logmsg("Unknown command in reply command section"); - } - ptr = strchr(ptr, '\n'); - if(ptr) - ptr++; - else - ptr = NULL; - } while(ptr && *ptr); - } - if(cmd) - free(cmd); - - req->open = persistant; - - prevtestno = req->testno; - prevpartno = req->partno; - - return 0; -} - -bool use_ipv6=FALSE; - -int main(int argc, char *argv[]) -{ - struct sockaddr_in me; -#ifdef ENABLE_IPV6 - struct sockaddr_in6 me6; -#endif /* ENABLE_IPV6 */ - curl_socket_t sock, msgsock; - int flag; - unsigned short port = DEFAULT_PORT; - char *pidname= (char *)".http.pid"; - struct httprequest req; - int rc; - int arg=1; -#ifdef CURL_SWS_FORK_ENABLED - bool use_fork = FALSE; -#endif - - while(argc>arg) { - if(!strcmp("--version", argv[arg])) { - printf("sws IPv4%s" -#ifdef CURL_SWS_FORK_ENABLED - " FORK" -#endif - "\n" - , -#ifdef ENABLE_IPV6 - "/IPv6" -#else - "" -#endif - ); - return 0; - } - else if(!strcmp("--pidfile", argv[arg])) { - arg++; - if(argc>arg) - pidname = argv[arg++]; - } - else if(!strcmp("--ipv6", argv[arg])) { -#ifdef ENABLE_IPV6 - use_ipv6=TRUE; -#endif - arg++; - } -#ifdef CURL_SWS_FORK_ENABLED - else if(!strcmp("--fork", argv[arg])) { - use_fork=TRUE; - arg++; - } -#endif - else if(argc>arg) { - - if(atoi(argv[arg])) - port = (unsigned short)atoi(argv[arg++]); - - if(argc>arg) - path = argv[arg++]; - } - } - -#ifdef WIN32 - win32_init(); - atexit(win32_cleanup); -#else - -#ifdef SIGPIPE -#ifdef HAVE_SIGNAL - signal(SIGPIPE, sigpipe_handler); -#endif -#ifdef HAVE_SIGINTERRUPT - siginterrupt(SIGPIPE, 1); -#endif -#endif -#endif - -#ifdef ENABLE_IPV6 - if(!use_ipv6) -#endif - sock = socket(AF_INET, SOCK_STREAM, 0); -#ifdef ENABLE_IPV6 - else - sock = socket(AF_INET6, SOCK_STREAM, 0); -#endif - - if (CURL_SOCKET_BAD == sock) { - logmsg("Error opening socket: %d", SOCKERRNO); - return 1; - } - - flag = 1; - if (0 != setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, - (void *) &flag, sizeof(flag))) { - logmsg("setsockopt(SO_REUSEADDR) failed: %d", SOCKERRNO); - sclose(sock); - return 1; - } - -#ifdef ENABLE_IPV6 - if(!use_ipv6) { -#endif - memset(&me, 0, sizeof(me)); - me.sin_family = AF_INET; - me.sin_addr.s_addr = INADDR_ANY; - me.sin_port = htons(port); - rc = bind(sock, (struct sockaddr *) &me, sizeof(me)); -#ifdef ENABLE_IPV6 - } - else { - memset(&me6, 0, sizeof(me6)); - me6.sin6_family = AF_INET6; - me6.sin6_addr = in6addr_any; - me6.sin6_port = htons(port); - rc = bind(sock, (struct sockaddr *) &me6, sizeof(me6)); - } -#endif /* ENABLE_IPV6 */ - if(0 != rc) { - logmsg("Error binding socket: %d", SOCKERRNO); - sclose(sock); - return 1; - } - - if(!write_pidfile(pidname)) { - sclose(sock); - return 1; - } - - logmsg("Running IPv%d version on port %d", -#ifdef ENABLE_IPV6 - (use_ipv6?6:4) -#else - 4 -#endif - , port ); - - /* start accepting connections */ - rc = listen(sock, 5); - if(0 != rc) { - logmsg("listen() failed with error: %d", SOCKERRNO); - sclose(sock); - return 1; - } - - while (1) { - msgsock = accept(sock, NULL, NULL); - - if (CURL_SOCKET_BAD == msgsock) { - printf("MAJOR ERROR: accept() failed with error: %d\n", SOCKERRNO); - break; - } - - set_advisor_read_lock(SERVERLOGS_LOCK); - -#ifdef CURL_SWS_FORK_ENABLED - if(use_fork) { - /* The fork enabled version just forks off the child and don't care - about it anymore, so don't assume otherwise. Beware and don't do - this at home. */ - rc = fork(); - if(-1 == rc) { - printf("MAJOR ERROR: fork() failed!\n"); - break; - } - } - else - /* not a fork, just set rc so the following proceeds nicely */ - rc = 0; - /* 0 is returned to the child */ - if(0 == rc) { -#endif - logmsg("====> Client connect"); - -#ifdef TCP_NODELAY - /* - * Disable the Nagle algorithm to make it easier to send out a large - * response in many small segments to torture the clients more. - */ - flag = 1; - if (setsockopt(msgsock, IPPROTO_TCP, TCP_NODELAY, - (void *)&flag, sizeof(flag)) == -1) { - logmsg("====> TCP_NODELAY failed"); - } -#endif - - /* initialization of httprequest struct is done in get_request(), but due - to pipelining treatment the pipelining struct field must be initialized - previously to FALSE every time a new connection arrives. */ - - req.pipelining = FALSE; - - do { - if(get_request(msgsock, &req)) - /* non-zero means error, break out of loop */ - break; - - if(prevbounce) { - /* bounce treatment requested */ - if((req.testno == prevtestno) && - (req.partno == prevpartno)) { - req.partno++; - logmsg("BOUNCE part number to %ld", req.partno); - } - else { - prevbounce = FALSE; - prevtestno = -1; - prevpartno = -1; - } - } - - send_doc(msgsock, &req); - - if((req.testno < 0) && (req.testno != DOCNUMBER_CONNECT)) { - logmsg("special request received, no persistency"); - break; - } - if(!req.open) { - logmsg("instructed to close connection after server-reply"); - break; - } - - if(req.open) - logmsg("=> persistant connection request ended, awaits new request"); - /* if we got a CONNECT, loop and get another request as well! */ - } while(req.open || (req.testno == DOCNUMBER_CONNECT)); - - logmsg("====> Client disconnect"); - sclose(msgsock); - - clear_advisor_read_lock(SERVERLOGS_LOCK); - - if (req.testno == DOCNUMBER_QUIT) - break; -#ifdef CURL_SWS_FORK_ENABLED - } -#endif - } - - sclose(sock); - - clear_advisor_read_lock(SERVERLOGS_LOCK); - - return 0; -} - diff --git a/Utilities/cmcurl-7.19.0/tests/server/testpart.c b/Utilities/cmcurl-7.19.0/tests/server/testpart.c deleted file mode 100644 index df0d1aa..0000000 --- a/Utilities/cmcurl-7.19.0/tests/server/testpart.c +++ /dev/null @@ -1,48 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - * $Id$ - ***************************************************************************/ - -#include "setup.h" - -#include "getpart.h" - -#define _MPRINTF_REPLACE /* use our functions only */ -#include <curl/mprintf.h> - -/* include memdebug.h last */ -#include "memdebug.h" - -int main(int argc, char **argv) -{ - if(argc< 3) { - printf("./testpart main sub\n"); - } - else { - size_t size; - unsigned int i; - const char *buffer = spitout(stdin, argv[1], argv[2], &size); - for(i=0; i< size; i++) - printf("%c", buffer[i]); - } - return 0; -} - diff --git a/Utilities/cmcurl-7.19.0/tests/server/tftp.h b/Utilities/cmcurl-7.19.0/tests/server/tftp.h deleted file mode 100644 index 6a11f6a..0000000 --- a/Utilities/cmcurl-7.19.0/tests/server/tftp.h +++ /dev/null @@ -1,64 +0,0 @@ -#ifndef __SERVER_TFTP_H -#define __SERVER_TFTP_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2007, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - * $Id$ - ***************************************************************************/ - -/* This file is a rewrite/clone of the arpa/tftp.h file for systems without - it. */ - -#define SEGSIZE 512 /* data segment size */ - -#ifndef __GNUC__ -#define __attribute__(x) -#endif - -/* Using a packed struct as binary in a program is begging for problems, but - the tftpd server was written like this so we have this struct here to make - things build. */ - -struct tftphdr { - short th_opcode; /* packet type */ - unsigned short th_block; /* all sorts of things */ - char th_data[1]; /* data or error string */ -} __attribute__ ((__packed__)); - -#define th_stuff th_block -#define th_code th_block -#define th_msg th_data - -#define RRQ 1 -#define WRQ 2 -#define DATA 3 -#define ACK 4 -#define ERROR 5 - -#define EUNDEF 0 -#define ENOTFOUND 1 -#define EACCESS 2 -#define ENOSPACE 3 -#define EBADOP 4 -#define EBADID 5 -#define EEXISTS 6 -#define ENOUSER 7 - -#endif /* __SERVER_TFTP_H */ diff --git a/Utilities/cmcurl-7.19.0/tests/server/tftpd.c b/Utilities/cmcurl-7.19.0/tests/server/tftpd.c deleted file mode 100644 index 7737519..0000000 --- a/Utilities/cmcurl-7.19.0/tests/server/tftpd.c +++ /dev/null @@ -1,960 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * $Id$ - * - * Trivial file transfer protocol server. - * - * This code includes many modifications by Jim Guyton <guyton@rand-unix> - * - * This source file was started based on netkit-tftpd 0.17 - * Heavily modified for curl's test suite - */ - -/* - * Copyright (c) 1983 Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "setup.h" /* portability help from the lib directory */ - -#ifdef HAVE_SYS_IOCTL_H -#include <sys/ioctl.h> -#endif -#ifdef HAVE_SIGNAL_H -#include <signal.h> -#endif -#ifdef HAVE_FCNTL_H -#include <fcntl.h> -#endif -#ifdef HAVE_SYS_SOCKET_H -#include <sys/socket.h> -#endif -#ifdef HAVE_NETINET_IN_H -#include <netinet/in.h> -#endif -#ifdef HAVE_ARPA_TFTP_H -#include <arpa/tftp.h> -#else -#include "tftp.h" -#endif -#ifdef HAVE_NETDB_H -#include <netdb.h> -#endif -#ifdef HAVE_SYS_FILIO_H -/* FIONREAD on Solaris 7 */ -#include <sys/filio.h> -#endif - -#include <setjmp.h> -#ifdef HAVE_UNISTD_H -#include <unistd.h> -#endif -#ifdef HAVE_PWD_H -#include <pwd.h> -#endif - -#define ENABLE_CURLX_PRINTF -/* make the curlx header define all printf() functions to use the curlx_* - versions instead */ -#include "curlx.h" /* from the private lib dir */ -#include "getpart.h" -#include "util.h" - -/* include memdebug.h last */ -#include "memdebug.h" - -struct testcase { - char *buffer; /* holds the file data to send to the client */ - size_t bufsize; /* size of the data in buffer */ - char *rptr; /* read pointer into the buffer */ - size_t rcount; /* amount of data left to read of the file */ - long num; /* test case number */ - int ofile; /* file descriptor for output file when uploading to us */ -}; - -static int synchnet(curl_socket_t); -static struct tftphdr *r_init(void); -static struct tftphdr *w_init(void); -static int readit(struct testcase *test, struct tftphdr **dpp, int convert); -static int writeit(struct testcase *test, struct tftphdr **dpp, int ct, - int convert); -static void mysignal(int, void (*func)(int)); - - -#define TIMEOUT 5 - -#define PKTSIZE SEGSIZE+4 - -struct formats; -static int tftp(struct testcase *test, struct tftphdr *tp, ssize_t size); -static void nak(int error); -static void sendtftp(struct testcase *test, struct formats *pf); -static void recvtftp(struct testcase *test, struct formats *pf); -static int validate_access(struct testcase *test, const char *, int); - -static curl_socket_t peer; -static int rexmtval = TIMEOUT; -static int maxtimeout = 5*TIMEOUT; - -static char buf[PKTSIZE]; -static char ackbuf[PKTSIZE]; -static struct sockaddr_in from; -static socklen_t fromlen; - -struct bf { - int counter; /* size of data in buffer, or flag */ - char buf[PKTSIZE]; /* room for data packet */ -} bfs[2]; - - /* Values for bf.counter */ -#define BF_ALLOC -3 /* alloc'd but not yet filled */ -#define BF_FREE -2 /* free */ -/* [-1 .. SEGSIZE] = size of data in the data buffer */ - -static int nextone; /* index of next buffer to use */ -static int current; /* index of buffer in use */ - - /* control flags for crlf conversions */ -int newline = 0; /* fillbuf: in middle of newline expansion */ -int prevchar = -1; /* putbuf: previous char (cr check) */ - -static void read_ahead(struct testcase *test, - int convert /* if true, convert to ascii */); -static ssize_t write_behind(struct testcase *test, int convert); -static struct tftphdr *rw_init(int); -static struct tftphdr *w_init(void) { return rw_init(0); } /* write-behind */ -static struct tftphdr *r_init(void) { return rw_init(1); } /* read-ahead */ - -static struct tftphdr * -rw_init(int x) /* init for either read-ahead or write-behind */ -{ /* zero for write-behind, one for read-head */ - newline = 0; /* init crlf flag */ - prevchar = -1; - bfs[0].counter = BF_ALLOC; /* pass out the first buffer */ - current = 0; - bfs[1].counter = BF_FREE; - nextone = x; /* ahead or behind? */ - return (struct tftphdr *)bfs[0].buf; -} - - -/* Have emptied current buffer by sending to net and getting ack. - Free it and return next buffer filled with data. - */ -static int readit(struct testcase *test, struct tftphdr **dpp, - int convert /* if true, convert to ascii */) -{ - struct bf *b; - - bfs[current].counter = BF_FREE; /* free old one */ - current = !current; /* "incr" current */ - - b = &bfs[current]; /* look at new buffer */ - if (b->counter == BF_FREE) /* if it's empty */ - read_ahead(test, convert); /* fill it */ - - *dpp = (struct tftphdr *)b->buf; /* set caller's ptr */ - return b->counter; -} - -#undef MIN /* some systems have this defined already, some don't */ -#define MIN(x,y) ((x)<(y)?(x):(y)); - -/* - * fill the input buffer, doing ascii conversions if requested - * conversions are lf -> cr,lf and cr -> cr, nul - */ -static void read_ahead(struct testcase *test, - int convert /* if true, convert to ascii */) -{ - int i; - char *p; - int c; - struct bf *b; - struct tftphdr *dp; - - b = &bfs[nextone]; /* look at "next" buffer */ - if (b->counter != BF_FREE) /* nop if not free */ - return; - nextone = !nextone; /* "incr" next buffer ptr */ - - dp = (struct tftphdr *)b->buf; - - if (convert == 0) { - /* The former file reading code did this: - b->counter = read(fileno(file), dp->th_data, SEGSIZE); */ - size_t copy_n = MIN(SEGSIZE, test->rcount); - memcpy(dp->th_data, test->rptr, copy_n); - - /* decrease amount, advance pointer */ - test->rcount -= copy_n; - test->rptr += copy_n; - b->counter = (int)copy_n; - return; - } - - p = dp->th_data; - for (i = 0 ; i < SEGSIZE; i++) { - if (newline) { - if (prevchar == '\n') - c = '\n'; /* lf to cr,lf */ - else - c = '\0'; /* cr to cr,nul */ - newline = 0; - } - else { - if(test->rcount) { - c=test->rptr[0]; - test->rptr++; - test->rcount--; - } - else - break; - if (c == '\n' || c == '\r') { - prevchar = c; - c = '\r'; - newline = 1; - } - } - *p++ = (char)c; - } - b->counter = (int)(p - dp->th_data); -} - -/* Update count associated with the buffer, get new buffer from the queue. - Calls write_behind only if next buffer not available. - */ -static int writeit(struct testcase *test, struct tftphdr **dpp, - int ct, int convert) -{ - bfs[current].counter = ct; /* set size of data to write */ - current = !current; /* switch to other buffer */ - if (bfs[current].counter != BF_FREE) /* if not free */ - write_behind(test, convert); /* flush it */ - bfs[current].counter = BF_ALLOC; /* mark as alloc'd */ - *dpp = (struct tftphdr *)bfs[current].buf; - return ct; /* this is a lie of course */ -} - -/* - * Output a buffer to a file, converting from netascii if requested. - * CR,NUL -> CR and CR,LF => LF. - * Note spec is undefined if we get CR as last byte of file or a - * CR followed by anything else. In this case we leave it alone. - */ -static ssize_t write_behind(struct testcase *test, int convert) -{ - char *writebuf; - int count; - int ct; - char *p; - int c; /* current character */ - struct bf *b; - struct tftphdr *dp; - - b = &bfs[nextone]; - if (b->counter < -1) /* anything to flush? */ - return 0; /* just nop if nothing to do */ - - if(!test->ofile) { - char outfile[256]; - snprintf(outfile, sizeof(outfile), "log/upload.%ld", test->num); - test->ofile=open(outfile, O_CREAT|O_RDWR, 0777); - if(test->ofile == -1) { - logmsg("Couldn't create and/or open file %s for upload!", outfile); - return -1; /* failure! */ - } - } - - count = b->counter; /* remember byte count */ - b->counter = BF_FREE; /* reset flag */ - dp = (struct tftphdr *)b->buf; - nextone = !nextone; /* incr for next time */ - writebuf = dp->th_data; - - if (count <= 0) - return -1; /* nak logic? */ - - if (convert == 0) - return write(test->ofile, writebuf, count); - - p = writebuf; - ct = count; - while (ct--) { /* loop over the buffer */ - c = *p++; /* pick up a character */ - if (prevchar == '\r') { /* if prev char was cr */ - if (c == '\n') /* if have cr,lf then just */ - lseek(test->ofile, -1, SEEK_CUR); /* smash lf on top of the cr */ - else - if (c == '\0') /* if have cr,nul then */ - goto skipit; /* just skip over the putc */ - /* else just fall through and allow it */ - } - /* formerly - putc(c, file); */ - write(test->ofile, &c, 1); - skipit: - prevchar = c; - } - return count; -} - - -/* When an error has occurred, it is possible that the two sides are out of - * synch. Ie: that what I think is the other side's response to packet N is - * really their response to packet N-1. - * - * So, to try to prevent that, we flush all the input queued up for us on the - * network connection on our host. - * - * We return the number of packets we flushed (mostly for reporting when trace - * is active). - */ - -static int synchnet(curl_socket_t f /* socket to flush */) -{ - -#if defined(HAVE_IOCTLSOCKET) - unsigned long i; -#else - int i; -#endif - int j = 0; - char rbuf[PKTSIZE]; - struct sockaddr_in fromaddr; - socklen_t fromaddrlen; - - while (1) { -#if defined(HAVE_IOCTLSOCKET) - (void) ioctlsocket(f, FIONREAD, &i); -#else - (void) ioctl(f, FIONREAD, &i); -#endif - if (i) { - j++; - fromaddrlen = sizeof(fromaddr); - (void)recvfrom(f, rbuf, sizeof(rbuf), 0, - (struct sockaddr *)&fromaddr, &fromaddrlen); - } - else - break; - } - return j; -} - -#if defined(HAVE_ALARM) && defined(SIGALRM) -/* - * Like signal(), but with well-defined semantics. - */ -static void mysignal(int sig, void (*handler)(int)) -{ - struct sigaction sa; - memset(&sa, 0, sizeof(sa)); - sa.sa_handler = handler; - sigaction(sig, &sa, NULL); -} -#endif - -#ifndef DEFAULT_LOGFILE -#define DEFAULT_LOGFILE "log/tftpd.log" -#endif - -#define DEFAULT_PORT 8999 /* UDP */ -const char *serverlogfile = DEFAULT_LOGFILE; - -#define REQUEST_DUMP "log/server.input" - -char use_ipv6=FALSE; - -int main(int argc, char **argv) -{ - struct sockaddr_in me; -#ifdef ENABLE_IPV6 - struct sockaddr_in6 me6; -#endif /* ENABLE_IPV6 */ - - struct tftphdr *tp; - ssize_t n = 0; - int arg = 1; - char *pidname= (char *)".tftpd.pid"; - unsigned short port = DEFAULT_PORT; - curl_socket_t sock; - int flag; - int rc; - struct testcase test; - int result = 0; - - while(argc>arg) { - if(!strcmp("--version", argv[arg])) { - printf("tftpd IPv4%s\n", -#ifdef ENABLE_IPV6 - "/IPv6" -#else - "" -#endif - ); - return 0; - } - else if(!strcmp("--pidfile", argv[arg])) { - arg++; - if(argc>arg) - pidname = argv[arg++]; - } - else if(!strcmp("--ipv6", argv[arg])) { -#ifdef ENABLE_IPV6 - use_ipv6=TRUE; -#endif - arg++; - } - else if(argc>arg) { - - if(atoi(argv[arg])) - port = (unsigned short)atoi(argv[arg++]); - - if(argc>arg) - path = argv[arg++]; - } - } - -#ifdef WIN32 - win32_init(); - atexit(win32_cleanup); -#endif - -#ifdef ENABLE_IPV6 - if(!use_ipv6) -#endif - sock = socket(AF_INET, SOCK_DGRAM, 0); -#ifdef ENABLE_IPV6 - else - sock = socket(AF_INET6, SOCK_DGRAM, 0); -#endif - - if (sock < 0) { - perror("opening stream socket"); - logmsg("Error opening socket"); - return 1; - } - - flag = 1; - if (setsockopt - (sock, SOL_SOCKET, SO_REUSEADDR, (const void *) &flag, - sizeof(int)) < 0) { - perror("setsockopt(SO_REUSEADDR)"); - } - -#ifdef ENABLE_IPV6 - if(!use_ipv6) { -#endif - me.sin_family = AF_INET; - me.sin_addr.s_addr = INADDR_ANY; - me.sin_port = htons(port); - rc = bind(sock, (struct sockaddr *) &me, sizeof(me)); -#ifdef ENABLE_IPV6 - } - else { - memset(&me6, 0, sizeof(struct sockaddr_in6)); - me6.sin6_family = AF_INET6; - me6.sin6_addr = in6addr_any; - me6.sin6_port = htons(port); - rc = bind(sock, (struct sockaddr *) &me6, sizeof(me6)); - } -#endif /* ENABLE_IPV6 */ - if(rc < 0) { - perror("binding stream socket"); - logmsg("Error binding socket"); - sclose(sock); - return 1; - } - - if(!write_pidfile(pidname)) { - sclose(sock); - return 1; - } - - logmsg("Running IPv%d version on port UDP/%d", -#ifdef ENABLE_IPV6 - (use_ipv6?6:4) -#else - 4 -#endif - , port ); - - do { - fromlen = sizeof(from); - n = (ssize_t)recvfrom(sock, buf, sizeof(buf), 0, - (struct sockaddr *)&from, &fromlen); - if (n < 0) { - logmsg("recvfrom:\n"); - result = 3; - break; - } - - set_advisor_read_lock(SERVERLOGS_LOCK); - - from.sin_family = AF_INET; - - peer = socket(AF_INET, SOCK_DGRAM, 0); - if (peer < 0) { - logmsg("socket:\n"); - result = 2; - break; - } - - if (connect(peer, (struct sockaddr *)&from, sizeof(from)) < 0) { - logmsg("connect: fail\n"); - result = 1; - break; - } - maxtimeout = 5*TIMEOUT; - - tp = (struct tftphdr *)buf; - tp->th_opcode = ntohs(tp->th_opcode); - if (tp->th_opcode == RRQ || tp->th_opcode == WRQ) { - memset(&test, 0, sizeof(test)); - if (tftp(&test, tp, n) < 0) - break; - if(test.buffer) - free(test.buffer); - } - sclose(peer); - - clear_advisor_read_lock(SERVERLOGS_LOCK); - - } while(1); - - clear_advisor_read_lock(SERVERLOGS_LOCK); - - return result; -} - -struct formats { - const char *f_mode; - int f_convert; -} formats[] = { - { "netascii", 1 }, - { "octet", 0 }, - { NULL, 0 } -}; - -/* - * Handle initial connection protocol. - */ -static int tftp(struct testcase *test, struct tftphdr *tp, ssize_t size) -{ - char *cp; - int first = 1, ecode; - struct formats *pf; - char *filename, *mode = NULL; - int error; - FILE *server; - - /* Open request dump file. */ - server = fopen(REQUEST_DUMP, "ab"); - if(!server) { - error = ERRNO; - logmsg("fopen() failed with error: %d %s", error, strerror(error)); - logmsg("Error opening file: %s", REQUEST_DUMP); - return -1; - } - - /* store input protocol */ - fprintf(server, "opcode: %x\n", tp->th_opcode); - - cp = (char *)&tp->th_stuff; - filename = cp; -again: - while (cp < buf + size) { - if (*cp == '\0') - break; - cp++; - } - if (*cp) { - nak(EBADOP); - fclose(server); - return 3; - } - if (first) { - mode = ++cp; - first = 0; - goto again; - } - /* store input protocol */ - fprintf(server, "filename: %s\n", filename); - - for (cp = mode; *cp; cp++) - if(ISUPPER(*cp)) - *cp = (char)tolower((int)*cp); - - /* store input protocol */ - fprintf(server, "mode: %s\n", mode); - fclose(server); - - for (pf = formats; pf->f_mode; pf++) - if (strcmp(pf->f_mode, mode) == 0) - break; - if (!pf->f_mode) { - nak(EBADOP); - return 2; - } - ecode = validate_access(test, filename, tp->th_opcode); - if (ecode) { - nak(ecode); - return 1; - } - if (tp->th_opcode == WRQ) - recvtftp(test, pf); - else - sendtftp(test, pf); - - return 0; -} - -/* - * Validate file access. - */ -static int validate_access(struct testcase *test, - const char *filename, int mode) -{ - char *ptr; - long testno, partno; - int error; - char partbuf[80]="data"; - - logmsg("trying to get file: %s mode %x", filename, mode); - - if(!strncmp("verifiedserver", filename, 14)) { - char weare[128]; - size_t count = sprintf(weare, "WE ROOLZ: %ld\r\n", (long)getpid()); - - logmsg("Are-we-friendly question received"); - test->buffer = strdup(weare); - test->rptr = test->buffer; /* set read pointer */ - test->bufsize = count; /* set total count */ - test->rcount = count; /* set data left to read */ - return 0; /* fine */ - } - - /* find the last slash */ - ptr = strrchr(filename, '/'); - - if(ptr) { - char *file; - - ptr++; /* skip the slash */ - - /* skip all non-numericals following the slash */ - while(*ptr && !ISDIGIT(*ptr)) - ptr++; - - /* get the number */ - testno = strtol(ptr, &ptr, 10); - - if(testno > 10000) { - partno = testno % 10000; - testno /= 10000; - } - else - partno = 0; - - - logmsg("requested test number %ld part %ld", testno, partno); - - test->num = testno; - - file = test2file(testno); - - if(0 != partno) - sprintf(partbuf, "data%ld", partno); - - if(file) { - FILE *stream=fopen(file, "rb"); - if(!stream) { - error = ERRNO; - logmsg("fopen() failed with error: %d %s", error, strerror(error)); - logmsg("Error opening file: %s", file); - logmsg("Couldn't open test file: %s", file); - return EACCESS; - } - else { - size_t count; - test->buffer = (char *)spitout(stream, "reply", partbuf, &count); - fclose(stream); - if(test->buffer) { - test->rptr = test->buffer; /* set read pointer */ - test->bufsize = count; /* set total count */ - test->rcount = count; /* set data left to read */ - } - else - return EACCESS; - } - - } - else - return EACCESS; - } - else { - logmsg("no slash found in path"); - return EACCESS; /* failure */ - } - - return 0; -} - -int timeout; -#ifdef HAVE_SIGSETJMP -sigjmp_buf timeoutbuf; -#endif - -static void timer(int signum) -{ - (void)signum; - - logmsg("alarm!"); - - timeout += rexmtval; - if(timeout >= maxtimeout) { - clear_advisor_read_lock(SERVERLOGS_LOCK); - exit(1); - } -#ifdef HAVE_SIGSETJMP - siglongjmp(timeoutbuf, 1); -#endif -} - -/* - * Send the requested file. - */ -static void sendtftp(struct testcase *test, struct formats *pf) -{ - struct tftphdr *dp; - struct tftphdr *ap; /* ack packet */ - unsigned short block = 1; - int size; - ssize_t n; -#if defined(HAVE_ALARM) && defined(SIGALRM) - mysignal(SIGALRM, timer); -#endif - dp = r_init(); - ap = (struct tftphdr *)ackbuf; - do { - size = readit(test, &dp, pf->f_convert); - if (size < 0) { - nak(ERRNO + 100); - return; - } - dp->th_opcode = htons((u_short)DATA); - dp->th_block = htons((u_short)block); - timeout = 0; -#ifdef HAVE_SIGSETJMP - (void) sigsetjmp(timeoutbuf, 1); -#endif - send_data: - if (swrite(peer, dp, size + 4) != size + 4) { - logmsg("write\n"); - return; - } - read_ahead(test, pf->f_convert); - for ( ; ; ) { -#ifdef HAVE_ALARM - alarm(rexmtval); /* read the ack */ -#endif - n = sread(peer, ackbuf, sizeof (ackbuf)); -#ifdef HAVE_ALARM - alarm(0); -#endif - if (n < 0) { - logmsg("read: fail\n"); - return; - } - ap->th_opcode = ntohs((u_short)ap->th_opcode); - ap->th_block = ntohs((u_short)ap->th_block); - - if (ap->th_opcode == ERROR) { - logmsg("got ERROR"); - return; - } - - if (ap->th_opcode == ACK) { - if (ap->th_block == block) { - break; - } - /* Re-synchronize with the other side */ - (void) synchnet(peer); - if (ap->th_block == (block -1)) { - goto send_data; - } - } - - } - block++; - } while (size == SEGSIZE); -} - -static void justtimeout(int signum) -{ - (void)signum; -} - - -/* - * Receive a file. - */ -static void recvtftp(struct testcase *test, struct formats *pf) -{ - struct tftphdr *dp; - struct tftphdr *ap; /* ack buffer */ - unsigned short block = 0; - ssize_t n, size; -#if defined(HAVE_ALARM) && defined(SIGALRM) - mysignal(SIGALRM, timer); -#endif - dp = w_init(); - ap = (struct tftphdr *)ackbuf; - do { - timeout = 0; - ap->th_opcode = htons((u_short)ACK); - ap->th_block = htons((u_short)block); - block++; -#ifdef HAVE_SIGSETJMP - (void) sigsetjmp(timeoutbuf, 1); -#endif -send_ack: - if (swrite(peer, ackbuf, 4) != 4) { - logmsg("write: fail\n"); - goto abort; - } - write_behind(test, pf->f_convert); - for ( ; ; ) { -#ifdef HAVE_ALARM - alarm(rexmtval); -#endif - n = sread(peer, dp, PKTSIZE); -#ifdef HAVE_ALARM - alarm(0); -#endif - if (n < 0) { /* really? */ - logmsg("read: fail\n"); - goto abort; - } - dp->th_opcode = ntohs((u_short)dp->th_opcode); - dp->th_block = ntohs((u_short)dp->th_block); - if (dp->th_opcode == ERROR) - goto abort; - if (dp->th_opcode == DATA) { - if (dp->th_block == block) { - break; /* normal */ - } - /* Re-synchronize with the other side */ - (void) synchnet(peer); - if (dp->th_block == (block-1)) - goto send_ack; /* rexmit */ - } - } - - size = writeit(test, &dp, (int)(n - 4), pf->f_convert); - if (size != (n-4)) { /* ahem */ - if (size < 0) - nak(ERRNO + 100); - else - nak(ENOSPACE); - goto abort; - } - } while (size == SEGSIZE); - write_behind(test, pf->f_convert); - - ap->th_opcode = htons((u_short)ACK); /* send the "final" ack */ - ap->th_block = htons((u_short)(block)); - (void) swrite(peer, ackbuf, 4); -#if defined(HAVE_ALARM) && defined(SIGALRM) - mysignal(SIGALRM, justtimeout); /* just abort read on timeout */ - alarm(rexmtval); -#endif - n = sread(peer, buf, sizeof(buf)); /* normally times out and quits */ -#ifdef HAVE_ALARM - alarm(0); -#endif - if (n >= 4 && /* if read some data */ - dp->th_opcode == DATA && /* and got a data block */ - block == dp->th_block) { /* then my last ack was lost */ - (void) swrite(peer, ackbuf, 4); /* resend final ack */ - } -abort: - return; -} - -struct errmsg { - int e_code; - const char *e_msg; -} errmsgs[] = { - { EUNDEF, "Undefined error code" }, - { ENOTFOUND, "File not found" }, - { EACCESS, "Access violation" }, - { ENOSPACE, "Disk full or allocation exceeded" }, - { EBADOP, "Illegal TFTP operation" }, - { EBADID, "Unknown transfer ID" }, - { EEXISTS, "File already exists" }, - { ENOUSER, "No such user" }, - { -1, 0 } -}; - -/* - * Send a nak packet (error message). Error code passed in is one of the - * standard TFTP codes, or a UNIX errno offset by 100. - */ -static void nak(int error) -{ - struct tftphdr *tp; - int length; - struct errmsg *pe; - - tp = (struct tftphdr *)buf; - tp->th_opcode = htons((u_short)ERROR); - tp->th_code = htons((u_short)error); - for (pe = errmsgs; pe->e_code >= 0; pe++) - if (pe->e_code == error) - break; - if (pe->e_code < 0) { - pe->e_msg = strerror(error - 100); - tp->th_code = EUNDEF; /* set 'undef' errorcode */ - } - strcpy(tp->th_msg, pe->e_msg); - length = (int)strlen(pe->e_msg); - tp->th_msg[length] = '\0'; - length += 5; - if (swrite(peer, buf, length) != length) - logmsg("nak: fail\n"); -} diff --git a/Utilities/cmcurl-7.19.0/tests/server/util.c b/Utilities/cmcurl-7.19.0/tests/server/util.c deleted file mode 100644 index 6468454..0000000 --- a/Utilities/cmcurl-7.19.0/tests/server/util.c +++ /dev/null @@ -1,272 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - * $Id$ - ***************************************************************************/ -#include "setup.h" /* portability help from the lib directory */ - -#ifdef HAVE_SIGNAL_H -#include <signal.h> -#endif -#ifdef HAVE_UNISTD_H -#include <unistd.h> -#endif -#ifdef HAVE_SYS_SOCKET_H -#include <sys/socket.h> -#endif -#ifdef HAVE_NETINET_IN_H -#include <netinet/in.h> -#endif -#ifdef _XOPEN_SOURCE_EXTENDED -/* This define is "almost" required to build on HPUX 11 */ -#include <arpa/inet.h> -#endif -#ifdef HAVE_NETDB_H -#include <netdb.h> -#endif -#ifdef HAVE_SYS_POLL_H -#include <sys/poll.h> -#elif defined(HAVE_POLL_H) -#include <poll.h> -#endif - -#define ENABLE_CURLX_PRINTF -/* make the curlx header define all printf() functions to use the curlx_* - versions instead */ -#include "curlx.h" /* from the private lib dir */ -#include "getpart.h" -#include "util.h" -#include "timeval.h" - -#if defined(ENABLE_IPV6) && defined(__MINGW32__) -const struct in6_addr in6addr_any = {{ IN6ADDR_ANY_INIT }}; -#endif - -/* someone else must set this properly */ -extern const char *serverlogfile; - -void logmsg(const char *msg, ...) -{ - va_list ap; - char buffer[512]; /* possible overflow if you pass in a huge string */ - FILE *logfp; - int error; - struct timeval tv; - time_t sec; - struct tm *now; - char timebuf[20]; - - if (!serverlogfile) { - fprintf(stderr, "Error: serverlogfile not set\n"); - return; - } - - tv = curlx_tvnow(); - sec = tv.tv_sec; - now = localtime(&sec); /* not multithread safe but we don't care */ - - snprintf(timebuf, sizeof(timebuf), "%02d:%02d:%02d.%06ld", - now->tm_hour, now->tm_min, now->tm_sec, tv.tv_usec); - - va_start(ap, msg); - vsprintf(buffer, msg, ap); - va_end(ap); - - logfp = fopen(serverlogfile, "a"); - if(logfp) { - fprintf(logfp, "%s %s\n", timebuf, buffer); - fclose(logfp); - } - else { - error = ERRNO; - fprintf(stderr, "fopen() failed with error: %d %s\n", - error, strerror(error)); - fprintf(stderr, "Error opening file: %s\n", serverlogfile); - fprintf(stderr, "Msg not logged: %s %s\n", timebuf, buffer); - } -} - -#ifdef WIN32 -/* use instead of perror() on generic windows */ -void win32_perror (const char *msg) -{ - char buf[512]; - DWORD err = SOCKERRNO; - - if (!FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, err, - LANG_NEUTRAL, buf, sizeof(buf), NULL)) - snprintf(buf, sizeof(buf), "Unknown error %lu (%#lx)", err, err); - if (msg) - fprintf(stderr, "%s: ", msg); - fprintf(stderr, "%s\n", buf); -} -#endif /* WIN32 */ - -#ifdef USE_WINSOCK -void win32_init(void) -{ - WORD wVersionRequested; - WSADATA wsaData; - int err; - wVersionRequested = MAKEWORD(USE_WINSOCK, USE_WINSOCK); - - err = WSAStartup(wVersionRequested, &wsaData); - - if (err != 0) { - perror("Winsock init failed"); - logmsg("Error initialising winsock -- aborting"); - exit(1); - } - - if ( LOBYTE( wsaData.wVersion ) != USE_WINSOCK || - HIBYTE( wsaData.wVersion ) != USE_WINSOCK ) { - - WSACleanup(); - perror("Winsock init failed"); - logmsg("No suitable winsock.dll found -- aborting"); - exit(1); - } -} - -void win32_cleanup(void) -{ - WSACleanup(); -} -#endif /* USE_WINSOCK */ - -/* set by the main code to point to where the test dir is */ -const char *path="."; - -char *test2file(long testno) -{ - static char filename[256]; - snprintf(filename, sizeof(filename), TEST_DATA_PATH, path, testno); - return filename; -} - -/* - * Portable function used for waiting a specific amount of ms. - * Waiting indefinitely with this function is not allowed, a - * zero or negative timeout value will return immediately. - * - * Return values: - * -1 = system call error, or invalid timeout value - * 0 = specified timeout has elapsed - */ -int wait_ms(int timeout_ms) -{ -#if !defined(MSDOS) && !defined(USE_WINSOCK) -#ifndef HAVE_POLL_FINE - struct timeval pending_tv; -#endif - struct timeval initial_tv; - int pending_ms; - int error; -#endif - int r = 0; - - if(!timeout_ms) - return 0; - if(timeout_ms < 0) { - SET_SOCKERRNO(EINVAL); - return -1; - } -#if defined(MSDOS) - delay(timeout_ms); -#elif defined(USE_WINSOCK) - Sleep(timeout_ms); -#else - pending_ms = timeout_ms; - initial_tv = curlx_tvnow(); - do { -#if defined(HAVE_POLL_FINE) - r = poll(NULL, 0, pending_ms); -#else - pending_tv.tv_sec = pending_ms / 1000; - pending_tv.tv_usec = (pending_ms % 1000) * 1000; - r = select(0, NULL, NULL, NULL, &pending_tv); -#endif /* HAVE_POLL_FINE */ - if(r != -1) - break; - error = SOCKERRNO; - if(error == EINVAL) - break; - pending_ms = timeout_ms - (int)curlx_tvdiff(curlx_tvnow(), initial_tv); - if(pending_ms <= 0) - break; - } while(r == -1); -#endif /* USE_WINSOCK */ - if(r) - r = -1; - return r; -} - -int write_pidfile(const char *filename) -{ - FILE *pidfile; - long pid; - - pid = (long)getpid(); - pidfile = fopen(filename, "w"); - if(!pidfile) { - logmsg("Couldn't write pid file: %s %s", filename, strerror(ERRNO)); - return 0; /* fail */ - } - fprintf(pidfile, "%ld\n", pid); - fclose(pidfile); - logmsg("Wrote pid %ld to %s", pid, filename); - return 1; /* success */ -} - -void set_advisor_read_lock(const char *filename) -{ - FILE *lockfile; - int error; - int res; - - do { - lockfile = fopen(filename, "wb"); - } while((lockfile == NULL) && ((error = ERRNO) == EINTR)); - if(lockfile == NULL) { - logmsg("Error creating lock file %s error: %d %s", - filename, error, strerror(error)); - return; - } - - do { - res = fclose(lockfile); - } while(res && ((error = ERRNO) == EINTR)); - if(res) - logmsg("Error closing lock file %s error: %d %s", - filename, error, strerror(error)); -} - -void clear_advisor_read_lock(const char *filename) -{ - int error; - int res; - - do { - res = unlink(filename); - } while(res && ((error = ERRNO) == EINTR)); - if(res) - logmsg("Error removing lock file %s error: %d %s", - filename, error, strerror(error)); -} diff --git a/Utilities/cmcurl-7.19.0/tests/server/util.h b/Utilities/cmcurl-7.19.0/tests/server/util.h deleted file mode 100644 index 9b9dd59..0000000 --- a/Utilities/cmcurl-7.19.0/tests/server/util.h +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef __SERVER_UTIL_H -#define __SERVER_UTIL_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - * $Id$ - ***************************************************************************/ - -void logmsg(const char *msg, ...); - -#define TEST_DATA_PATH "%s/data/test%ld" - -#define SERVERLOGS_LOCK "log/serverlogs.lock" - -/* global variable, where to find the 'data' dir */ -extern const char *path; - -#ifdef WIN32 -#include <process.h> -#include <fcntl.h> - -#define sleep(sec) Sleep ((sec)*1000) - -#undef perror -#define perror(m) win32_perror(m) -void win32_perror (const char *msg); -#endif /* WIN32 */ - -#ifdef USE_WINSOCK -void win32_init(void); -void win32_cleanup(void); -#endif /* USE_WINSOCK */ - -/* returns the path name to the test case file */ -char *test2file(long testno); - -int wait_ms(int timeout_ms); - -int write_pidfile(const char *filename); - -void set_advisor_read_lock(const char *filename); - -void clear_advisor_read_lock(const char *filename); - -#endif /* __SERVER_UTIL_H */ diff --git a/Utilities/cmcurl-7.19.0/tests/sshhelp.pm b/Utilities/cmcurl-7.19.0/tests/sshhelp.pm deleted file mode 100644 index 7cd4b5c..0000000 --- a/Utilities/cmcurl-7.19.0/tests/sshhelp.pm +++ /dev/null @@ -1,385 +0,0 @@ -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al. -# -# This software is licensed as described in the file COPYING, which -# you should have received as part of this distribution. The terms -# are also available at http://curl.haxx.se/docs/copyright.html. -# -# You may opt to use, copy, modify, merge, publish, distribute and/or sell -# copies of the Software, and permit persons to whom the Software is -# furnished to do so, under the terms of the COPYING file. -# -# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -# KIND, either express or implied. -# -# $Id$ -#*************************************************************************** - -package sshhelp; - -use strict; -#use warnings; -use Exporter; -use File::Spec; - - -#*************************************************************************** -# Global symbols allowed without explicit package name -# -use vars qw( - @ISA - @EXPORT_OK - $sshdexe - $sshexe - $sftpsrvexe - $sftpexe - $sshkeygenexe - $sshdconfig - $sshconfig - $sftpconfig - $knownhosts - $sshdlog - $sshlog - $sftplog - $sftpcmds - $hstprvkeyf - $hstpubkeyf - $cliprvkeyf - $clipubkeyf - @sftppath - ); - - -#*************************************************************************** -# Inherit Exporter's capabilities -# -@ISA = qw(Exporter); - - -#*************************************************************************** -# Global symbols this module will export upon request -# -@EXPORT_OK = qw( - $sshdexe - $sshexe - $sftpsrvexe - $sftpexe - $sshkeygenexe - $sshdconfig - $sshconfig - $sftpconfig - $knownhosts - $sshdlog - $sshlog - $sftplog - $sftpcmds - $hstprvkeyf - $hstpubkeyf - $cliprvkeyf - $clipubkeyf - display_sshdconfig - display_sshconfig - display_sftpconfig - display_sshdlog - display_sshlog - display_sftplog - dump_array - find_sshd - find_ssh - find_sftpsrv - find_sftp - find_sshkeygen - logmsg - sshversioninfo - ); - - -#*************************************************************************** -# Global variables initialization -# -$sshdexe = 'sshd' .exe_ext(); # base name and ext of ssh daemon -$sshexe = 'ssh' .exe_ext(); # base name and ext of ssh client -$sftpsrvexe = 'sftp-server' .exe_ext(); # base name and ext of sftp-server -$sftpexe = 'sftp' .exe_ext(); # base name and ext of sftp client -$sshkeygenexe = 'ssh-keygen' .exe_ext(); # base name and ext of ssh-keygen -$sshdconfig = 'curl_sshd_config'; # ssh daemon config file -$sshconfig = 'curl_ssh_config'; # ssh client config file -$sftpconfig = 'curl_sftp_config'; # sftp client config file -$sshdlog = 'log/sshd.log'; # ssh daemon log file -$sshlog = 'log/ssh.log'; # ssh client log file -$sftplog = 'log/sftp.log'; # sftp client log file -$sftpcmds = 'curl_sftp_cmds'; # sftp client commands batch file -$knownhosts = 'curl_client_knownhosts'; # ssh knownhosts file -$hstprvkeyf = 'curl_host_dsa_key'; # host private key file -$hstpubkeyf = 'curl_host_dsa_key.pub'; # host public key file -$cliprvkeyf = 'curl_client_key'; # client private key file -$clipubkeyf = 'curl_client_key.pub'; # client public key file - - -#*************************************************************************** -# Absolute paths where to look for sftp-server plugin -# -@sftppath = qw( - /usr/lib/openssh - /usr/libexec/openssh - /usr/libexec - /usr/local/libexec - /opt/local/libexec - /usr/lib/ssh - /usr/libexec/ssh - /usr/sbin - /usr/lib - /usr/lib/ssh/openssh - /usr/lib64/ssh - /usr/lib64/misc - /usr/lib/misc - /usr/local/sbin - /usr/freeware/bin - /usr/freeware/sbin - /usr/freeware/libexec - /opt/ssh/sbin - /opt/ssh/libexec - ); - - -#*************************************************************************** -# Return file extension for executable files on this operating system -# -sub exe_ext { - if ($^O eq 'MSWin32' || $^O eq 'cygwin' || $^O eq 'msys' || - $^O eq 'dos' || $^O eq 'os2') { - return '.exe'; - } -} - - -#*************************************************************************** -# Create or overwrite the given file with lines from an array of strings -# -sub dump_array { - my ($filename, @arr) = @_; - my $error; - - if(!$filename) { - $error = 'Error: Missing argument 1 for dump_array()'; - } - elsif(open(TEXTFH, ">$filename")) { - foreach my $line (@arr) { - $line .= "\n" unless($line =~ /\n$/); - print TEXTFH $line; - } - if(!close(TEXTFH)) { - $error = "Error: cannot close file $filename"; - } - } - else { - $error = "Error: cannot write file $filename"; - } - return $error; -} - - -#*************************************************************************** -# Display a message -# -sub logmsg { - my ($line) = @_; - chomp $line if($line); - $line .= "\n"; - print "$line"; -} - - -#*************************************************************************** -# Display contents of the given file -# -sub display_file { - my $filename = $_[0]; - print "=== Start of file $filename\n"; - if(open(DISPLAYFH, "<$filename")) { - while(my $line = <DISPLAYFH>) { - print "$line"; - } - close DISPLAYFH; - } - print "=== End of file $filename\n"; -} - - -#*************************************************************************** -# Display contents of the ssh daemon config file -# -sub display_sshdconfig { - display_file($sshdconfig); -} - - -#*************************************************************************** -# Display contents of the ssh client config file -# -sub display_sshconfig { - display_file($sshconfig); -} - - -#*************************************************************************** -# Display contents of the sftp client config file -# -sub display_sftpconfig { - display_file($sftpconfig); -} - - -#*************************************************************************** -# Display contents of the ssh daemon log file -# -sub display_sshdlog { - display_file($sshdlog); -} - - -#*************************************************************************** -# Display contents of the ssh client log file -# -sub display_sshlog { - display_file($sshlog); -} - - -#*************************************************************************** -# Display contents of the sftp client log file -# -sub display_sftplog { - display_file($sftplog); -} - - -#*************************************************************************** -# Find a file somewhere in the given path -# -sub find_file { - my $fn = $_[0]; - shift; - my @path = @_; - foreach (@path) { - my $file = File::Spec->catfile($_, $fn); - if(-e $file) { - return $file; - } - } -} - - -#*************************************************************************** -# Find a file in environment path or in our sftppath -# -sub find_sfile { - my $filename = $_[0]; - my @spath; - push(@spath, File::Spec->path()); - push(@spath, @sftppath); - return find_file($filename, @spath); -} - - -#*************************************************************************** -# Find ssh daemon and return canonical filename -# -sub find_sshd { - return find_sfile($sshdexe); -} - - -#*************************************************************************** -# Find ssh client and return canonical filename -# -sub find_ssh { - return find_sfile($sshexe); -} - - -#*************************************************************************** -# Find sftp-server plugin and return canonical filename -# -sub find_sftpsrv { - return find_sfile($sftpsrvexe); -} - - -#*************************************************************************** -# Find sftp client and return canonical filename -# -sub find_sftp { - return find_sfile($sftpexe); -} - - -#*************************************************************************** -# Find ssh-keygen and return canonical filename -# -sub find_sshkeygen { - return find_sfile($sshkeygenexe); -} - - -#*************************************************************************** -# Return version info for the given ssh client or server binaries -# -sub sshversioninfo { - my $sshbin = $_[0]; # canonical filename - my $major; - my $minor; - my $patch; - my $sshid; - my $versnum; - my $versstr; - my $error; - - if(!$sshbin) { - $error = 'Error: Missing argument 1 for sshversioninfo()'; - } - elsif(! -x $sshbin) { - $error = "Error: cannot read or execute $sshbin"; - } - else { - my $cmd = ($sshbin =~ /$sshdexe$/) ? "$sshbin -?" : "$sshbin -V"; - $error = "$cmd\n"; - foreach my $tmpstr (qx($cmd 2>&1)) { - if($tmpstr =~ /OpenSSH[_-](\d+)\.(\d+)(\.(\d+))*/i) { - $major = $1; - $minor = $2; - $patch = $4?$4:0; - $sshid = 'OpenSSH'; - $versnum = (100*$major) + (10*$minor) + $patch; - $versstr = "$sshid $major.$minor.$patch"; - $error = undef; - last; - } - if($tmpstr =~ /Sun[_-]SSH[_-](\d+)\.(\d+)(\.(\d+))*/i) { - $major = $1; - $minor = $2; - $patch = $4?$4:0; - $sshid = 'SunSSH'; - $versnum = (100*$major) + (10*$minor) + $patch; - $versstr = "$sshid $major.$minor.$patch"; - $error = undef; - last; - } - $error .= $tmpstr; - } - chomp $error if($error); - } - return ($sshid, $versnum, $versstr, $error); -} - - -#*************************************************************************** -# End of library -1; - diff --git a/Utilities/cmcurl-7.19.0/tests/sshserver.pl b/Utilities/cmcurl-7.19.0/tests/sshserver.pl deleted file mode 100755 index 564e615..0000000 --- a/Utilities/cmcurl-7.19.0/tests/sshserver.pl +++ /dev/null @@ -1,982 +0,0 @@ -#!/usr/bin/env perl -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al. -# -# This software is licensed as described in the file COPYING, which -# you should have received as part of this distribution. The terms -# are also available at http://curl.haxx.se/docs/copyright.html. -# -# You may opt to use, copy, modify, merge, publish, distribute and/or sell -# copies of the Software, and permit persons to whom the Software is -# furnished to do so, under the terms of the COPYING file. -# -# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -# KIND, either express or implied. -# -# $Id$ -#*************************************************************************** - -# Starts sshd for use in the SCP, SFTP and SOCKS curl test harness tests. -# Also creates the ssh configuration files needed for these tests. - -# Options: -# -# -v -# -d -# -u user -# -l listen address -# -p SCP/SFTP server port -# -s SOCKS4/5 server port - -use strict; -#use warnings; -use Cwd; - -#*************************************************************************** -# Variables and subs imported from sshhelp module -# -use sshhelp qw( - $sshdexe - $sshexe - $sftpsrvexe - $sftpexe - $sshkeygenexe - $sshdconfig - $sshconfig - $sftpconfig - $knownhosts - $sshdlog - $sshlog - $sftplog - $sftpcmds - $hstprvkeyf - $hstpubkeyf - $cliprvkeyf - $clipubkeyf - display_sshdconfig - display_sshconfig - display_sftpconfig - display_sshdlog - display_sshlog - display_sftplog - dump_array - find_sshd - find_ssh - find_sftpsrv - find_sftp - find_sshkeygen - logmsg - sshversioninfo - ); - - -#*************************************************************************** - -my $verbose = 0; # set to 1 for debugging -my $debugprotocol = 0; # set to 1 for protocol debugging -my $port = 8999; # our default SCP/SFTP server port -my $socksport = $port + 1; # our default SOCKS4/5 server port -my $listenaddr = '127.0.0.1'; # default address on which to listen -my $path = getcwd(); # current working directory -my $username = $ENV{USER}; # default user - -my $error; -my @cfgarr; - - -#*************************************************************************** -# Parse command line options -# -while(@ARGV) { - if($ARGV[0] eq '-v') { - $verbose = 1; - } - elsif($ARGV[0] eq '-d') { - $verbose = 1; - $debugprotocol = 1; - } - elsif($ARGV[0] eq '-u') { - $username = $ARGV[1]; - shift @ARGV; - } - elsif($ARGV[0] eq '-l') { - $listenaddr = $ARGV[1]; - shift @ARGV; - } - elsif($ARGV[0] eq '-p') { - if($ARGV[1] =~ /^(\d+)$/) { - $port = $1; - } - shift @ARGV; - } - elsif($ARGV[0] eq '-s') { - if($ARGV[1] =~ /^(\d+)$/) { - $socksport = $1; - } - shift @ARGV; - } - shift @ARGV; -}; - - -#*************************************************************************** -# Logging level for ssh server and client -# -my $loglevel = $debugprotocol?'DEBUG3':'DEBUG2'; - - -#*************************************************************************** -# Validate username -# -if(!$username) { - $error = 'Will not run ssh server without a user name'; -} -elsif($username eq 'root') { - $error = 'Will not run ssh server as root to mitigate security risks'; -} -if($error) { - logmsg $error; - exit 1; -} - - -#*************************************************************************** -# Find out ssh daemon canonical file name -# -my $sshd = find_sshd(); -if(!$sshd) { - logmsg "cannot find $sshdexe"; - exit 1; -} - - -#*************************************************************************** -# Find out ssh daemon version info -# -my ($sshdid, $sshdvernum, $sshdverstr, $sshderror) = sshversioninfo($sshd); -if(!$sshdid) { - # Not an OpenSSH or SunSSH ssh daemon - logmsg $sshderror if($verbose); - logmsg 'SCP, SFTP and SOCKS tests require OpenSSH 2.9.9 or later'; - exit 1; -} -logmsg "ssh server found $sshd is $sshdverstr" if($verbose); - - -#*************************************************************************** -# ssh daemon command line options we might use and version support -# -# -e: log stderr : OpenSSH 2.9.0 and later -# -f: sshd config file : OpenSSH 1.2.1 and later -# -D: no daemon forking : OpenSSH 2.5.0 and later -# -o: command-line option : OpenSSH 3.1.0 and later -# -t: test config file : OpenSSH 2.9.9 and later -# -?: sshd version info : OpenSSH 1.2.1 and later -# -# -e: log stderr : SunSSH 1.0.0 and later -# -f: sshd config file : SunSSH 1.0.0 and later -# -D: no daemon forking : SunSSH 1.0.0 and later -# -o: command-line option : SunSSH 1.0.0 and later -# -t: test config file : SunSSH 1.0.0 and later -# -?: sshd version info : SunSSH 1.0.0 and later - - -#*************************************************************************** -# Verify minimum ssh daemon version -# -if((($sshdid =~ /OpenSSH/) && ($sshdvernum < 299)) || - (($sshdid =~ /SunSSH/) && ($sshdvernum < 100))) { - logmsg 'SCP, SFTP and SOCKS tests require OpenSSH 2.9.9 or later'; - exit 1; -} - - -#*************************************************************************** -# Find out sftp server plugin canonical file name -# -my $sftpsrv = find_sftpsrv(); -if(!$sftpsrv) { - logmsg "cannot find $sftpsrvexe"; - exit 1; -} -logmsg "sftp server plugin found $sftpsrv" if($verbose); - - -#*************************************************************************** -# Find out sftp client canonical file name -# -my $sftp = find_sftp(); -if(!$sftp) { - logmsg "cannot find $sftpexe"; - exit 1; -} -logmsg "sftp client found $sftp" if($verbose); - - -#*************************************************************************** -# Find out ssh keygen canonical file name -# -my $sshkeygen = find_sshkeygen(); -if(!$sshkeygen) { - logmsg "cannot find $sshkeygenexe"; - exit 1; -} -logmsg "ssh keygen found $sshkeygen" if($verbose); - - -#*************************************************************************** -# Find out ssh client canonical file name -# -my $ssh = find_ssh(); -if(!$ssh) { - logmsg "cannot find $sshexe"; - exit 1; -} - - -#*************************************************************************** -# Find out ssh client version info -# -my ($sshid, $sshvernum, $sshverstr, $ssherror) = sshversioninfo($ssh); -if(!$sshid) { - # Not an OpenSSH or SunSSH ssh client - logmsg $ssherror if($verbose); - logmsg 'SCP, SFTP and SOCKS tests require OpenSSH 2.9.9 or later'; - exit 1; -} -logmsg "ssh client found $ssh is $sshverstr" if($verbose); - - -#*************************************************************************** -# ssh client command line options we might use and version support -# -# -D: dynamic app port forwarding : OpenSSH 2.9.9 and later -# -F: ssh config file : OpenSSH 2.9.9 and later -# -N: no shell/command : OpenSSH 2.1.0 and later -# -p: connection port : OpenSSH 1.2.1 and later -# -v: verbose messages : OpenSSH 1.2.1 and later -# -vv: increase verbosity : OpenSSH 2.3.0 and later -# -V: ssh version info : OpenSSH 1.2.1 and later -# -# -D: dynamic app port forwarding : SunSSH 1.0.0 and later -# -F: ssh config file : SunSSH 1.0.0 and later -# -N: no shell/command : SunSSH 1.0.0 and later -# -p: connection port : SunSSH 1.0.0 and later -# -v: verbose messages : SunSSH 1.0.0 and later -# -vv: increase verbosity : SunSSH 1.0.0 and later -# -V: ssh version info : SunSSH 1.0.0 and later - - -#*************************************************************************** -# Verify minimum ssh client version -# -if((($sshid =~ /OpenSSH/) && ($sshvernum < 299)) || - (($sshid =~ /SunSSH/) && ($sshvernum < 100))) { - logmsg 'SCP, SFTP and SOCKS tests require OpenSSH 2.9.9 or later'; - exit 1; -} - - -#*************************************************************************** -# ssh keygen command line options we actually use and version support -# -# -C: identity comment : OpenSSH 1.2.1 and later -# -f: key filename : OpenSSH 1.2.1 and later -# -N: new passphrase : OpenSSH 1.2.1 and later -# -q: quiet keygen : OpenSSH 1.2.1 and later -# -t: key type : OpenSSH 2.5.0 and later -# -# -C: identity comment : SunSSH 1.0.0 and later -# -f: key filename : SunSSH 1.0.0 and later -# -N: new passphrase : SunSSH 1.0.0 and later -# -q: quiet keygen : SunSSH 1.0.0 and later -# -t: key type : SunSSH 1.0.0 and later - - -#*************************************************************************** -# Generate host and client key files for curl's tests -# -if((! -e $hstprvkeyf) || (! -e $hstpubkeyf) || - (! -e $cliprvkeyf) || (! -e $clipubkeyf)) { - # Make sure all files are gone so ssh-keygen doesn't complain - unlink($hstprvkeyf, $hstpubkeyf, $cliprvkeyf, $clipubkeyf); - logmsg 'generating host keys...' if($verbose); - if(system "$sshkeygen -q -t dsa -f $hstprvkeyf -C 'curl test server' -N ''") { - logmsg 'Could not generate host key'; - exit 1; - } - logmsg 'generating client keys...' if($verbose); - if(system "$sshkeygen -q -t dsa -f $cliprvkeyf -C 'curl test client' -N ''") { - logmsg 'Could not generate client key'; - exit 1; - } -} - - -#*************************************************************************** -# ssh daemon configuration file options we might use and version support -# -# AFSTokenPassing : OpenSSH 1.2.1 and later [1] -# AcceptEnv : OpenSSH 3.9.0 and later -# AddressFamily : OpenSSH 4.0.0 and later -# AllowGroups : OpenSSH 1.2.1 and later -# AllowTcpForwarding : OpenSSH 2.3.0 and later -# AllowUsers : OpenSSH 1.2.1 and later -# AuthorizedKeysFile : OpenSSH 2.9.9 and later -# AuthorizedKeysFile2 : OpenSSH 2.9.9 and later -# Banner : OpenSSH 2.5.0 and later -# ChallengeResponseAuthentication : OpenSSH 2.5.0 and later -# Ciphers : OpenSSH 2.1.0 and later [3] -# ClientAliveCountMax : OpenSSH 2.9.0 and later -# ClientAliveInterval : OpenSSH 2.9.0 and later -# Compression : OpenSSH 3.3.0 and later -# DenyGroups : OpenSSH 1.2.1 and later -# DenyUsers : OpenSSH 1.2.1 and later -# ForceCommand : OpenSSH 4.4.0 and later [3] -# GatewayPorts : OpenSSH 2.1.0 and later -# GSSAPIAuthentication : OpenSSH 3.7.0 and later [1] -# GSSAPICleanupCredentials : OpenSSH 3.8.0 and later [1] -# GSSAPIKeyExchange : SunSSH 1.0.0 and later [1] -# GSSAPIStoreDelegatedCredentials : SunSSH 1.0.0 and later [1] -# GSSCleanupCreds : SunSSH 1.0.0 and later [1] -# GSSUseSessionCredCache : SunSSH 1.0.0 and later [1] -# HostbasedAuthentication : OpenSSH 2.9.0 and later -# HostbasedUsesNameFromPacketOnly : OpenSSH 2.9.0 and later -# HostKey : OpenSSH 1.2.1 and later -# IgnoreRhosts : OpenSSH 1.2.1 and later -# IgnoreUserKnownHosts : OpenSSH 1.2.1 and later -# KbdInteractiveAuthentication : OpenSSH 2.3.0 and later -# KeepAlive : OpenSSH 1.2.1 and later -# KerberosAuthentication : OpenSSH 1.2.1 and later [1] -# KerberosGetAFSToken : OpenSSH 3.8.0 and later [1] -# KerberosOrLocalPasswd : OpenSSH 1.2.1 and later [1] -# KerberosTgtPassing : OpenSSH 1.2.1 and later [1] -# KerberosTicketCleanup : OpenSSH 1.2.1 and later [1] -# KeyRegenerationInterval : OpenSSH 1.2.1 and later -# ListenAddress : OpenSSH 1.2.1 and later -# LoginGraceTime : OpenSSH 1.2.1 and later -# LogLevel : OpenSSH 1.2.1 and later -# LookupClientHostnames : SunSSH 1.0.0 and later -# MACs : OpenSSH 2.5.0 and later [3] -# Match : OpenSSH 4.4.0 and later [3] -# MaxAuthTries : OpenSSH 3.9.0 and later -# MaxStartups : OpenSSH 2.2.0 and later -# PAMAuthenticationViaKbdInt : OpenSSH 2.9.0 and later [2] -# PasswordAuthentication : OpenSSH 1.2.1 and later -# PermitEmptyPasswords : OpenSSH 1.2.1 and later -# PermitOpen : OpenSSH 4.4.0 and later [3] -# PermitRootLogin : OpenSSH 1.2.1 and later -# PermitTunnel : OpenSSH 4.3.0 and later -# PermitUserEnvironment : OpenSSH 3.5.0 and later -# PidFile : OpenSSH 2.1.0 and later -# Port : OpenSSH 1.2.1 and later -# PrintLastLog : OpenSSH 2.9.0 and later -# PrintMotd : OpenSSH 1.2.1 and later -# Protocol : OpenSSH 2.1.0 and later -# PubkeyAuthentication : OpenSSH 2.5.0 and later -# RhostsAuthentication : OpenSSH 1.2.1 and later -# RhostsRSAAuthentication : OpenSSH 1.2.1 and later -# RSAAuthentication : OpenSSH 1.2.1 and later -# ServerKeyBits : OpenSSH 1.2.1 and later -# SkeyAuthentication : OpenSSH 1.2.1 and later [1] -# StrictModes : OpenSSH 1.2.1 and later -# Subsystem : OpenSSH 2.2.0 and later -# SyslogFacility : OpenSSH 1.2.1 and later -# TCPKeepAlive : OpenSSH 3.8.0 and later -# UseDNS : OpenSSH 3.7.0 and later -# UseLogin : OpenSSH 1.2.1 and later -# UsePAM : OpenSSH 3.7.0 and later [1][2] -# UsePrivilegeSeparation : OpenSSH 3.2.2 and later -# VerifyReverseMapping : OpenSSH 3.1.0 and later -# X11DisplayOffset : OpenSSH 1.2.1 and later [3] -# X11Forwarding : OpenSSH 1.2.1 and later -# X11UseLocalhost : OpenSSH 3.1.0 and later -# XAuthLocation : OpenSSH 2.1.1 and later [3] -# -# [1] Option only available if activated at compile time -# [2] Option specific for portable versions -# [3] Option not used in our ssh server config file - - -#*************************************************************************** -# Initialize sshd config with options actually supported in OpenSSH 2.9.9 -# -logmsg 'generating ssh server config file...' if($verbose); -@cfgarr = (); -push @cfgarr, '# This is a generated file. Do not edit.'; -push @cfgarr, "# $sshdverstr sshd configuration file for curl testing"; -push @cfgarr, '#'; -push @cfgarr, "DenyUsers !$username"; -push @cfgarr, "AllowUsers $username"; -push @cfgarr, 'DenyGroups'; -push @cfgarr, 'AllowGroups'; -push @cfgarr, '#'; -push @cfgarr, "AuthorizedKeysFile $path/$clipubkeyf"; -push @cfgarr, "AuthorizedKeysFile2 $path/$clipubkeyf"; -push @cfgarr, "HostKey $path/$hstprvkeyf"; -push @cfgarr, "PidFile $path/.ssh.pid"; -push @cfgarr, '#'; -push @cfgarr, "Port $port"; -push @cfgarr, "ListenAddress $listenaddr"; -push @cfgarr, 'Protocol 2'; -push @cfgarr, '#'; -push @cfgarr, 'AllowTcpForwarding yes'; -push @cfgarr, 'Banner none'; -push @cfgarr, 'ChallengeResponseAuthentication no'; -push @cfgarr, 'ClientAliveCountMax 3'; -push @cfgarr, 'ClientAliveInterval 0'; -push @cfgarr, 'GatewayPorts no'; -push @cfgarr, 'HostbasedAuthentication no'; -push @cfgarr, 'HostbasedUsesNameFromPacketOnly no'; -push @cfgarr, 'IgnoreRhosts yes'; -push @cfgarr, 'IgnoreUserKnownHosts yes'; -push @cfgarr, 'KeyRegenerationInterval 0'; -push @cfgarr, 'LoginGraceTime 30'; -push @cfgarr, "LogLevel $loglevel"; -push @cfgarr, 'MaxStartups 5'; -push @cfgarr, 'PasswordAuthentication no'; -push @cfgarr, 'PermitEmptyPasswords no'; -push @cfgarr, 'PermitRootLogin no'; -push @cfgarr, 'PrintLastLog no'; -push @cfgarr, 'PrintMotd no'; -push @cfgarr, 'PubkeyAuthentication yes'; -push @cfgarr, 'RhostsRSAAuthentication no'; -push @cfgarr, 'RSAAuthentication no'; -push @cfgarr, 'ServerKeyBits 768'; -push @cfgarr, 'StrictModes no'; -push @cfgarr, "Subsystem sftp $sftpsrv"; -push @cfgarr, 'SyslogFacility AUTH'; -push @cfgarr, 'UseLogin no'; -push @cfgarr, 'X11Forwarding no'; -push @cfgarr, '#'; - - -#*************************************************************************** -# Write out initial sshd configuration file for curl's tests -# -$error = dump_array($sshdconfig, @cfgarr); -if($error) { - logmsg $error; - exit 1; -} - - -#*************************************************************************** -# Verifies at run time if sshd supports a given configuration file option -# -sub sshd_supports_opt { - my ($option, $value) = @_; - my $err; - # - if((($sshdid =~ /OpenSSH/) && ($sshdvernum >= 310)) || - ($sshdid =~ /SunSSH/)) { - # ssh daemon supports command line options -t -f and -o - $err = grep /((Unsupported)|(Bad configuration)|(Deprecated)) option.*$option/, - qx($sshd -t -f $sshdconfig -o $option=$value 2>&1); - return !$err; - } - if(($sshdid =~ /OpenSSH/) && ($sshdvernum >= 299)) { - # ssh daemon supports command line options -t and -f - $err = dump_array($sshdconfig, (@cfgarr, "$option $value")); - if($err) { - logmsg $err; - return 0; - } - $err = grep /((Unsupported)|(Bad configuration)|(Deprecated)) option.*$option/, - qx($sshd -t -f $sshdconfig 2>&1); - unlink $sshdconfig; - return !$err; - } - return 0; -} - - -#*************************************************************************** -# Kerberos Authentication support may have not been built into sshd -# -if(sshd_supports_opt('KerberosAuthentication','no')) { - push @cfgarr, 'KerberosAuthentication no'; -} -if(sshd_supports_opt('KerberosGetAFSToken','no')) { - push @cfgarr, 'KerberosGetAFSToken no'; -} -if(sshd_supports_opt('KerberosOrLocalPasswd','no')) { - push @cfgarr, 'KerberosOrLocalPasswd no'; -} -if(sshd_supports_opt('KerberosTgtPassing','no')) { - push @cfgarr, 'KerberosTgtPassing no'; -} -if(sshd_supports_opt('KerberosTicketCleanup','yes')) { - push @cfgarr, 'KerberosTicketCleanup yes'; -} - - -#*************************************************************************** -# Andrew File System support may have not been built into sshd -# -if(sshd_supports_opt('AFSTokenPassing','no')) { - push @cfgarr, 'AFSTokenPassing no'; -} - - -#*************************************************************************** -# S/Key authentication support may have not been built into sshd -# -if(sshd_supports_opt('SkeyAuthentication','no')) { - push @cfgarr, 'SkeyAuthentication no'; -} - - -#*************************************************************************** -# GSSAPI Authentication support may have not been built into sshd -# -my $sshd_builtwith_GSSAPI; -if(sshd_supports_opt('GSSAPIAuthentication','no')) { - push @cfgarr, 'GSSAPIAuthentication no'; - $sshd_builtwith_GSSAPI = 1; -} -if(sshd_supports_opt('GSSAPICleanupCredentials','yes')) { - push @cfgarr, 'GSSAPICleanupCredentials yes'; -} -if(sshd_supports_opt('GSSAPIKeyExchange','no')) { - push @cfgarr, 'GSSAPIKeyExchange no'; -} -if(sshd_supports_opt('GSSAPIStoreDelegatedCredentials','no')) { - push @cfgarr, 'GSSAPIStoreDelegatedCredentials no'; -} -if(sshd_supports_opt('GSSCleanupCreds','yes')) { - push @cfgarr, 'GSSCleanupCreds yes'; -} -if(sshd_supports_opt('GSSUseSessionCredCache','no')) { - push @cfgarr, 'GSSUseSessionCredCache no'; -} -push @cfgarr, '#'; - - -#*************************************************************************** -# Options that might be supported or not in sshd OpenSSH 2.9.9 and later -# -if(sshd_supports_opt('AcceptEnv','')) { - push @cfgarr, 'AcceptEnv'; -} -if(sshd_supports_opt('AddressFamily','any')) { - # Address family must be specified before ListenAddress - splice @cfgarr, 14, 0, 'AddressFamily any'; -} -if(sshd_supports_opt('Compression','no')) { - push @cfgarr, 'Compression no'; -} -if(sshd_supports_opt('KbdInteractiveAuthentication','no')) { - push @cfgarr, 'KbdInteractiveAuthentication no'; -} -if(sshd_supports_opt('KeepAlive','no')) { - push @cfgarr, 'KeepAlive no'; -} -if(sshd_supports_opt('LookupClientHostnames','no')) { - push @cfgarr, 'LookupClientHostnames no'; -} -if(sshd_supports_opt('MaxAuthTries','10')) { - push @cfgarr, 'MaxAuthTries 10'; -} -if(sshd_supports_opt('PAMAuthenticationViaKbdInt','no')) { - push @cfgarr, 'PAMAuthenticationViaKbdInt no'; -} -if(sshd_supports_opt('PermitTunnel','no')) { - push @cfgarr, 'PermitTunnel no'; -} -if(sshd_supports_opt('PermitUserEnvironment','no')) { - push @cfgarr, 'PermitUserEnvironment no'; -} -if(sshd_supports_opt('RhostsAuthentication','no')) { - push @cfgarr, 'RhostsAuthentication no'; -} -if(sshd_supports_opt('TCPKeepAlive','no')) { - push @cfgarr, 'TCPKeepAlive no'; -} -if(sshd_supports_opt('UseDNS','no')) { - push @cfgarr, 'UseDNS no'; -} -if(sshd_supports_opt('UsePAM','no')) { - push @cfgarr, 'UsePAM no'; -} - -if($sshdid =~ /OpenSSH/) { - # http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6492415 - if(sshd_supports_opt('UsePrivilegeSeparation','no')) { - push @cfgarr, 'UsePrivilegeSeparation no'; - } -} - -if(sshd_supports_opt('VerifyReverseMapping','no')) { - push @cfgarr, 'VerifyReverseMapping no'; -} -if(sshd_supports_opt('X11UseLocalhost','yes')) { - push @cfgarr, 'X11UseLocalhost yes'; -} -push @cfgarr, '#'; - - -#*************************************************************************** -# Write out resulting sshd configuration file for curl's tests -# -$error = dump_array($sshdconfig, @cfgarr); -if($error) { - logmsg $error; - exit 1; -} - - -#*************************************************************************** -# Verify that sshd actually supports our generated configuration file -# -if(system "$sshd -t -f $sshdconfig > $sshdlog 2>&1") { - logmsg "sshd configuration file $sshdconfig failed verification"; - display_sshdlog(); - display_sshdconfig(); - exit 1; -} - - -#*************************************************************************** -# Generate ssh client host key database file for curl's tests -# -if(! -e $knownhosts) { - logmsg 'generating ssh client known hosts file...' if($verbose); - if(open(DSAKEYFILE, "<$hstpubkeyf")) { - my @dsahostkey = do { local $/ = ' '; <DSAKEYFILE> }; - if(close(DSAKEYFILE)) { - if(open(KNOWNHOSTS, ">$knownhosts")) { - print KNOWNHOSTS "$listenaddr ssh-dss $dsahostkey[1]\n"; - if(!close(KNOWNHOSTS)) { - $error = "Error: cannot close file $knownhosts"; - } - } - else { - $error = "Error: cannot write file $knownhosts"; - } - } - else { - $error = "Error: cannot close file $hstpubkeyf"; - } - } - else { - $error = "Error: cannot read file $hstpubkeyf"; - } - if($error) { - logmsg $error; - exit 1; - } -} - - -#*************************************************************************** -# ssh client configuration file options we might use and version support -# -# AddressFamily : OpenSSH 3.7.0 and later -# BatchMode : OpenSSH 1.2.1 and later -# BindAddress : OpenSSH 2.9.9 and later -# ChallengeResponseAuthentication : OpenSSH 2.5.0 and later -# CheckHostIP : OpenSSH 1.2.1 and later -# Cipher : OpenSSH 1.2.1 and later [3] -# Ciphers : OpenSSH 2.1.0 and later [3] -# ClearAllForwardings : OpenSSH 2.9.9 and later -# Compression : OpenSSH 1.2.1 and later -# CompressionLevel : OpenSSH 1.2.1 and later [3] -# ConnectionAttempts : OpenSSH 1.2.1 and later -# ConnectTimeout : OpenSSH 3.7.0 and later -# ControlMaster : OpenSSH 3.9.0 and later -# ControlPath : OpenSSH 3.9.0 and later -# DisableBanner : SunSSH 1.2.0 and later -# DynamicForward : OpenSSH 2.9.0 and later -# EnableSSHKeysign : OpenSSH 3.6.0 and later -# EscapeChar : OpenSSH 1.2.1 and later [3] -# ExitOnForwardFailure : OpenSSH 4.4.0 and later -# ForwardAgent : OpenSSH 1.2.1 and later -# ForwardX11 : OpenSSH 1.2.1 and later -# ForwardX11Trusted : OpenSSH 3.8.0 and later -# GatewayPorts : OpenSSH 1.2.1 and later -# GlobalKnownHostsFile : OpenSSH 1.2.1 and later -# GSSAPIAuthentication : OpenSSH 3.7.0 and later [1] -# GSSAPIDelegateCredentials : OpenSSH 3.7.0 and later [1] -# HashKnownHosts : OpenSSH 4.0.0 and later -# Host : OpenSSH 1.2.1 and later -# HostbasedAuthentication : OpenSSH 2.9.0 and later -# HostKeyAlgorithms : OpenSSH 2.9.0 and later [3] -# HostKeyAlias : OpenSSH 2.5.0 and later [3] -# HostName : OpenSSH 1.2.1 and later -# IdentitiesOnly : OpenSSH 3.9.0 and later -# IdentityFile : OpenSSH 1.2.1 and later -# IgnoreIfUnknown : SunSSH 1.2.0 and later -# KeepAlive : OpenSSH 1.2.1 and later -# KbdInteractiveAuthentication : OpenSSH 2.3.0 and later -# KbdInteractiveDevices : OpenSSH 2.3.0 and later [3] -# LocalCommand : OpenSSH 4.3.0 and later [3] -# LocalForward : OpenSSH 1.2.1 and later [3] -# LogLevel : OpenSSH 1.2.1 and later -# MACs : OpenSSH 2.5.0 and later [3] -# NoHostAuthenticationForLocalhost : OpenSSH 3.0.0 and later -# NumberOfPasswordPrompts : OpenSSH 1.2.1 and later -# PasswordAuthentication : OpenSSH 1.2.1 and later -# PermitLocalCommand : OpenSSH 4.3.0 and later -# Port : OpenSSH 1.2.1 and later -# PreferredAuthentications : OpenSSH 2.5.2 and later -# Protocol : OpenSSH 2.1.0 and later -# ProxyCommand : OpenSSH 1.2.1 and later [3] -# PubkeyAuthentication : OpenSSH 2.5.0 and later -# RekeyLimit : OpenSSH 3.7.0 and later -# RemoteForward : OpenSSH 1.2.1 and later [3] -# RhostsRSAAuthentication : OpenSSH 1.2.1 and later -# RSAAuthentication : OpenSSH 1.2.1 and later -# SendEnv : OpenSSH 3.9.0 and later -# ServerAliveCountMax : OpenSSH 3.8.0 and later -# ServerAliveInterval : OpenSSH 3.8.0 and later -# SmartcardDevice : OpenSSH 2.9.9 and later [1][3] -# StrictHostKeyChecking : OpenSSH 1.2.1 and later -# TCPKeepAlive : OpenSSH 3.8.0 and later -# Tunnel : OpenSSH 4.3.0 and later -# TunnelDevice : OpenSSH 4.3.0 and later [3] -# UsePAM : OpenSSH 3.7.0 and later [1][2][3] -# UsePrivilegedPort : OpenSSH 1.2.1 and later -# User : OpenSSH 1.2.1 and later -# UserKnownHostsFile : OpenSSH 1.2.1 and later -# VerifyHostKeyDNS : OpenSSH 3.8.0 and later -# XAuthLocation : OpenSSH 2.1.1 and later [3] -# -# [1] Option only available if activated at compile time -# [2] Option specific for portable versions -# [3] Option not used in our ssh client config file - - -#*************************************************************************** -# Initialize ssh config with options actually supported in OpenSSH 2.9.9 -# -logmsg 'generating ssh client config file...' if($verbose); -@cfgarr = (); -push @cfgarr, '# This is a generated file. Do not edit.'; -push @cfgarr, "# $sshverstr ssh client configuration file for curl testing"; -push @cfgarr, '#'; -push @cfgarr, 'Host *'; -push @cfgarr, '#'; -push @cfgarr, "Port $port"; -push @cfgarr, "HostName $listenaddr"; -push @cfgarr, "User $username"; -push @cfgarr, 'Protocol 2'; -push @cfgarr, '#'; -push @cfgarr, "BindAddress $listenaddr"; -push @cfgarr, "DynamicForward $socksport"; -push @cfgarr, '#'; -push @cfgarr, "IdentityFile $path/curl_client_key"; -push @cfgarr, "UserKnownHostsFile $path/$knownhosts"; -push @cfgarr, '#'; -push @cfgarr, 'BatchMode yes'; -push @cfgarr, 'ChallengeResponseAuthentication no'; -push @cfgarr, 'CheckHostIP no'; -push @cfgarr, 'ClearAllForwardings no'; -push @cfgarr, 'Compression no'; -push @cfgarr, 'ConnectionAttempts 3'; -push @cfgarr, 'ForwardAgent no'; -push @cfgarr, 'ForwardX11 no'; -push @cfgarr, 'GatewayPorts no'; -push @cfgarr, 'GlobalKnownHostsFile /dev/null'; -push @cfgarr, 'HostbasedAuthentication no'; -push @cfgarr, 'KbdInteractiveAuthentication no'; -push @cfgarr, "LogLevel $loglevel"; -push @cfgarr, 'NumberOfPasswordPrompts 0'; -push @cfgarr, 'PasswordAuthentication no'; -push @cfgarr, 'PreferredAuthentications publickey'; -push @cfgarr, 'PubkeyAuthentication yes'; -push @cfgarr, 'RhostsRSAAuthentication no'; -push @cfgarr, 'RSAAuthentication no'; -push @cfgarr, 'StrictHostKeyChecking yes'; -push @cfgarr, 'UsePrivilegedPort no'; -push @cfgarr, '#'; - - -#*************************************************************************** -# Options supported in ssh client newer than OpenSSH 2.9.9 -# - -if(($sshid =~ /OpenSSH/) && ($sshvernum >= 370)) { - push @cfgarr, 'AddressFamily any'; -} - -if((($sshid =~ /OpenSSH/) && ($sshvernum >= 370)) || - (($sshid =~ /SunSSH/) && ($sshvernum >= 120))) { - push @cfgarr, 'ConnectTimeout 30'; -} - -if(($sshid =~ /OpenSSH/) && ($sshvernum >= 390)) { - push @cfgarr, 'ControlMaster no'; -} - -if(($sshid =~ /OpenSSH/) && ($sshvernum >= 420)) { - push @cfgarr, 'ControlPath none'; -} - -if(($sshid =~ /SunSSH/) && ($sshvernum >= 120)) { - push @cfgarr, 'DisableBanner yes'; -} - -if(($sshid =~ /OpenSSH/) && ($sshvernum >= 360)) { - push @cfgarr, 'EnableSSHKeysign no'; -} - -if(($sshid =~ /OpenSSH/) && ($sshvernum >= 440)) { - push @cfgarr, 'ExitOnForwardFailure yes'; -} - -if((($sshid =~ /OpenSSH/) && ($sshvernum >= 380)) || - (($sshid =~ /SunSSH/) && ($sshvernum >= 120))) { - push @cfgarr, 'ForwardX11Trusted no'; -} - -if(($sshd_builtwith_GSSAPI) && ($sshdid eq $sshid) && - ($sshdvernum == $sshvernum)) { - push @cfgarr, 'GSSAPIAuthentication no'; - push @cfgarr, 'GSSAPIDelegateCredentials no'; - if($sshid =~ /SunSSH/) { - push @cfgarr, 'GSSAPIKeyExchange no'; - } -} - -if((($sshid =~ /OpenSSH/) && ($sshvernum >= 400)) || - (($sshid =~ /SunSSH/) && ($sshvernum >= 120))) { - push @cfgarr, 'HashKnownHosts no'; -} - -if(($sshid =~ /OpenSSH/) && ($sshvernum >= 390)) { - push @cfgarr, 'IdentitiesOnly yes'; -} - -if(($sshid =~ /SunSSH/) && ($sshvernum >= 120)) { - push @cfgarr, 'IgnoreIfUnknown no'; -} - -if((($sshid =~ /OpenSSH/) && ($sshvernum < 380)) || - ($sshid =~ /SunSSH/)) { - push @cfgarr, 'KeepAlive no'; -} - -if((($sshid =~ /OpenSSH/) && ($sshvernum >= 300)) || - ($sshid =~ /SunSSH/)) { - push @cfgarr, 'NoHostAuthenticationForLocalhost no'; -} - -if(($sshid =~ /OpenSSH/) && ($sshvernum >= 430)) { - push @cfgarr, 'PermitLocalCommand no'; -} - -if((($sshid =~ /OpenSSH/) && ($sshvernum >= 370)) || - (($sshid =~ /SunSSH/) && ($sshvernum >= 120))) { - push @cfgarr, 'RekeyLimit 1G'; -} - -if(($sshid =~ /OpenSSH/) && ($sshvernum >= 390)) { - push @cfgarr, 'SendEnv'; -} - -if((($sshid =~ /OpenSSH/) && ($sshvernum >= 380)) || - (($sshid =~ /SunSSH/) && ($sshvernum >= 120))) { - push @cfgarr, 'ServerAliveCountMax 3'; - push @cfgarr, 'ServerAliveInterval 0'; -} - -if(($sshid =~ /OpenSSH/) && ($sshvernum >= 380)) { - push @cfgarr, 'TCPKeepAlive no'; -} - -if(($sshid =~ /OpenSSH/) && ($sshvernum >= 430)) { - push @cfgarr, 'Tunnel no'; -} - -if(($sshid =~ /OpenSSH/) && ($sshvernum >= 380)) { - push @cfgarr, 'VerifyHostKeyDNS no'; -} - -push @cfgarr, '#'; - - -#*************************************************************************** -# Write out resulting ssh client configuration file for curl's tests -# -$error = dump_array($sshconfig, @cfgarr); -if($error) { - logmsg $error; - exit 1; -} - - -#*************************************************************************** -# Initialize client sftp config with options actually supported. -# -logmsg 'generating sftp client config file...' if($verbose); -splice @cfgarr, 1, 1, "# $sshverstr sftp client configuration file for curl testing"; -# -for(my $i = scalar(@cfgarr) - 1; $i > 0; $i--) { - if($cfgarr[$i] =~ /^DynamicForward/) { - splice @cfgarr, $i, 1; - next; - } - if($cfgarr[$i] =~ /^ClearAllForwardings/) { - splice @cfgarr, $i, 1, "ClearAllForwardings yes"; - next; - } -} - - -#*************************************************************************** -# Write out resulting sftp client configuration file for curl's tests -# -$error = dump_array($sftpconfig, @cfgarr); -if($error) { - logmsg $error; - exit 1; -} -@cfgarr = (); - - -#*************************************************************************** -# Generate client sftp commands batch file for sftp server verification -# -logmsg 'generating sftp client commands file...' if($verbose); -push @cfgarr, 'pwd'; -push @cfgarr, 'quit'; -$error = dump_array($sftpcmds, @cfgarr); -if($error) { - logmsg $error; - exit 1; -} -@cfgarr = (); - - -#*************************************************************************** -# Start the ssh server daemon without forking it -# -logmsg "SCP/SFTP server listening on port $port" if($verbose); -my $rc = system "$sshd -e -D -f $sshdconfig > $sshdlog 2>&1"; -if($rc == -1) { - logmsg "$sshd failed with: $!"; -} -elsif($rc & 127) { - logmsg sprintf("$sshd died with signal %d, and %s coredump", - ($rc & 127), ($rc & 128)?'a':'no'); -} -elsif($verbose && ($rc >> 8)) { - logmsg sprintf("$sshd exited with %d", $rc >> 8); -} - - -#*************************************************************************** -# Clean up once the server has stopped -# -unlink($hstprvkeyf, $hstpubkeyf, $cliprvkeyf, $clipubkeyf, $knownhosts); -unlink($sshdconfig, $sshconfig, $sftpconfig); - - -exit 0; diff --git a/Utilities/cmcurl-7.19.0/tests/stunnel.pem b/Utilities/cmcurl-7.19.0/tests/stunnel.pem deleted file mode 100644 index 1b4d669..0000000 --- a/Utilities/cmcurl-7.19.0/tests/stunnel.pem +++ /dev/null @@ -1,142 +0,0 @@ -# -# This file contains a private key and a certificate used for stunnel. -# The certificate contains a number of extensions essentially being -# used in the 509 test. The certificate has been generated using -# openssl with the parameters listed below up to the line -# contain [something], after that you find the result. -# -# -extensions = x509v3 -[ x509v3 ] -subjectAltName = DNS:localhost -nsCertType = server -nsComment = "CURL stunnel server test certificate" -keyUsage = digitalSignature,keyEncipherment -extendedKeyUsage = serverAuth -basicConstraints = CA:false -subjectKeyIdentifier = hash -subjectInfoAccess = AD_DVCS;URI:"https://localhost:8433/509" -authorityInfoAccess = AD_DVCS;URI:"https://localhost:8433/509" -[ req ] -default_bits = 1234 -distinguished_name = req_DN -default_md = sha1 -string_mask = pkix -[ req_DN ] -countryName = "1. Country Name (2 letter code)" -countryName_value = SE -stateOrProvinceName = "2. State or Province Name (full name) " -stateOrProvinceName_value = Solna -localityName = "3. Locality Name (eg, city) " -localityName_value = Mooo -0.organizationName = "4. Organization Name (eg, company) " -0.organizationName_value = Haxx -organizationalUnitName = "5. Organizational Unit Name (eg, section) " -organizationalUnitName_value = Coolx -commonName = "6. Common Name (eg, FQDN) " -commonName_value = "storbror" -1.commonName = "6. Common Name (eg, FQDN) " -1.commonName_value = "localhost" -[something] ------BEGIN RSA PRIVATE KEY----- -MIIC1AIBAAKBmwNZN+oG6vJ8DAze+FvOKSS49X4xGMxALhKRLhQQb7qvM+7BcMgR -v+RKxkX7SNgcxKPLcIHf7QQ6DBIlLXuAuVHQtWW9b06q64kBElkEwh6gP5Ia9JrR -ysGbu2U6NRP+xBU33dVwZjF07ocN9Pp392W4VxEc+g3+FkRzUEaahDGOabmjgKuq -DdlKdZLzgJj7+9sEKpb7+FdG56rZAgMBAAECgZsCkK1Z1XTUz5x3m7PMuHEiVaKS -yk/B4ISq6pbO/gxpieARzhR038wNug6L+8VA8UDebXHBvGYYr9Mhb2OZUfIlr+nW -h7kmHZ+T88M3eH/hQc3jtnvnu1dGmMlIXjTLQOrKgrAn6fYaw2HAGPdGKjpatAy/ -3vRjguv/22pNJLRQmMHdozJdc8mEYY+AhqrQxXCWQT/1peZzlq/IAQJOAfhE2YWf -qB9iYNmuhxJ1PolPW4I63atXuoavqadbaRoaLm/pqLVB1QjMeyak8O/0TmO6CXk6 -878ps85fLFgARRjSYX+rYwoYNzqxK3cBAk4Bsy4oofReVT8xB+7rFZFMV4McyL7e -sOABFqecLuNIGT6CdeEU1z7TUfq8sKM1MQ25e0J1PMmoWTqDwzhnxK+ckeFsZ8Te -dgqVW+Oyy9kCTgHqyc/P/uEZkp1ioDu0WkpAR+1vZa2jeyH+vm9nhE9Z6Uty/r6F -k4otIx9lMDmTwXqeE03vINJlJshqvjShfbnCe9gK8xrUk1cFl7QPAQJOATD3LQRq -At2MniioFtiTbUN6n2ZS1C5xnHGq3fnBzxnZw4UmSfuZjG/L3gWPKkyJCK3HYe9K -ho6ZQhNB6P5d7sQQjG6f+SIRwp+VjwvpAk4AnM4do54FETeLHhY4zy47dM/zdy3u -iDjiFwoMTR+PfF03evsWe5pW3EaXolGi3FRAZ/idFA+L3Gi2y4xR44z71HkbF32L -WKaLdOuBQvI= ------END RSA PRIVATE KEY----- -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 09:c2:f9:ca:9a:d8 - Signature Algorithm: md5WithRSAEncryption - Issuer: C=SE, ST=Solna, L=Mooo, O=Haxx, OU=Coolx, CN=storbror, CN=localhost - Validity - Not Before: Jan 5 11:25:13 2004 GMT - Not After : Feb 13 11:25:13 2008 GMT - Subject: C=SE, ST=Solna, L=Mooo, O=Haxx, OU=Coolx, CN=storbror, CN=localhost - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public Key: (1234 bit) - Modulus (1234 bit): - 03:59:37:ea:06:ea:f2:7c:0c:0c:de:f8:5b:ce:29: - 24:b8:f5:7e:31:18:cc:40:2e:12:91:2e:14:10:6f: - ba:af:33:ee:c1:70:c8:11:bf:e4:4a:c6:45:fb:48: - d8:1c:c4:a3:cb:70:81:df:ed:04:3a:0c:12:25:2d: - 7b:80:b9:51:d0:b5:65:bd:6f:4e:aa:eb:89:01:12: - 59:04:c2:1e:a0:3f:92:1a:f4:9a:d1:ca:c1:9b:bb: - 65:3a:35:13:fe:c4:15:37:dd:d5:70:66:31:74:ee: - 87:0d:f4:fa:77:f7:65:b8:57:11:1c:fa:0d:fe:16: - 44:73:50:46:9a:84:31:8e:69:b9:a3:80:ab:aa:0d: - d9:4a:75:92:f3:80:98:fb:fb:db:04:2a:96:fb:f8: - 57:46:e7:aa:d9 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Subject Alternative Name: - DNS:localhost - Netscape Cert Type: - SSL Server - Netscape Comment: - CURL stunnel server test certificate - X509v3 Key Usage: - Digital Signature, Key Encipherment - X509v3 Extended Key Usage: - TLS Web Server Authentication - X509v3 Basic Constraints: - CA:FALSE - X509v3 Subject Key Identifier: - 35:77:35:3B:9B:98:3C:B6:C7:9A:E7:A8:04:B9:7C:70:AD:FA:37:A9 - Subject Information Access: - ad dvcs - URI:https://localhost:8433/509 - - Authority Information Access: - ad dvcs - URI:https://localhost:8433/509 - - Signature Algorithm: md5WithRSAEncryption - 02:47:57:18:5f:54:3f:1d:29:0a:05:7a:d1:0f:e6:b9:2c:8b: - 29:38:50:bf:c1:a1:7f:73:4a:9d:f1:1b:bf:2e:ea:87:91:dd: - ff:75:73:57:78:cf:75:52:57:0b:5b:bb:d4:77:b2:dd:e8:0c: - 06:ce:1b:c0:3d:9f:68:c0:0b:66:b8:f9:46:db:04:a9:2f:a3: - 5e:9c:c6:70:ff:1d:af:1f:17:9c:38:3d:12:aa:af:7b:72:44: - a0:44:41:6b:9a:9b:60:8c:50:94:f1:d7:a5:77:6b:d3:0e:66: - 88:a1:52:63:23:f6:66:a6:ea:f9:d0:df:4d:8a:14:f0:73:c6: - b6:b6:b6:68:4f:3d:9a:b6:31:ba:19:f3:66:9f:16:6d:87:64: - 32:53:d2:90:e5:8c:1e:f5:18:61:1a ------BEGIN CERTIFICATE----- -MIIDujCCAwigAwIBAgIGCcMA3QkhMA0GCSqGSIb3DQEBBAUAMHIxCzAJBgNVBAYT -AlNFMQ4wDAYDVQQIEwVTb2xuYTENMAsGA1UEBxMETW9vbzENMAsGA1UEChMESGF4 -eDEOMAwGA1UECxMFQ29vbHgxETAPBgNVBAMTCHN0b3Jicm9yMRIwEAYDVQQDEwls -b2NhbGhvc3QwHhcNMDQwMTA1MTQ0MjU2WhcNMDgwMjEzMTQ0MjU2WjByMQswCQYD -VQQGEwJTRTEOMAwGA1UECBMFU29sbmExDTALBgNVBAcTBE1vb28xDTALBgNVBAoT -BEhheHgxDjAMBgNVBAsTBUNvb2x4MREwDwYDVQQDEwhzdG9yYnJvcjESMBAGA1UE -AxMJbG9jYWxob3N0MIG5MA0GCSqGSIb3DQEBAQUAA4GnADCBowKBmwNZN+oG6vJ8 -DAze+FvOKSS49X4xGMxALhKRLhQQb7qvM+7BcMgRv+RKxkX7SNgcxKPLcIHf7QQ6 -DBIlLXuAuVHQtWW9b06q64kBElkEwh6gP5Ia9JrRysGbu2U6NRP+xBU33dVwZjF0 -7ocN9Pp392W4VxEc+g3+FkRzUEaahDGOabmjgKuqDdlKdZLzgJj7+9sEKpb7+FdG -56rZAgMBAAGjggEkMIIBIDARBglghkgBhvhCAQEEBAMCBkAwMwYJYIZIAYb4QgEN -BCYWJENVUkwgc3R1bm5lbCBzZXJ2ZXIgdGVzdCBjZXJ0aWZpY2F0ZTALBgNVHQ8E -BAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwCQYDVR0TBAIwADAdBgNVHQ4EFgQU -NXc1O5uYPLbHmueoBLl8cK36N6kwNgYIKwYBBQUHAQsEKjAoMCYGCCsGAQUFBzAE -hhpodHRwczovL2xvY2FsaG9zdDo4NDMzLzUwOTA2BggrBgEFBQcBAQQqMCgwJgYI -KwYBBQUHMASGGmh0dHBzOi8vbG9jYWxob3N0Ojg0MzMvNTA5MBoGA1UdEQQTMBGH -BH8AAAGCCWxvY2FsaG9zdDANBgkqhkiG9w0BAQQFAAOBnAAAIHkvI0V6padfc8Lv -onuNqBwCMIg4SugCslkN597Yb8ZDEAUe3ArkOvzAHUngsD5D0gfbKblKP/P0bN6Y -Ft896NmH4QFsDAetZcCFf24AM4DbUQo5jtG+dkanI/7IxxNYJ1PQ64/yscdQFvHW -xhIX3Q6FqABjcN5nc80Rog+b6eS8QRX1BRnQqbGtocuptUgW5mWsSb+DR6pZbA== ------END CERTIFICATE----- ------BEGIN DH PARAMETERS----- -MEYCQQD+KCcagSasA1QSo8tRXpbaLJJ1Ezt3FJFEZ3RVplp4qZwXQpSZ+Vly3xWx -q3YvALe/enMbIq8F3OUmppq3UHwTAgEC ------END DH PARAMETERS----- diff --git a/Utilities/cmcurl-7.19.0/tests/testcurl.1 b/Utilities/cmcurl-7.19.0/tests/testcurl.1 deleted file mode 100644 index 9b98eea..0000000 --- a/Utilities/cmcurl-7.19.0/tests/testcurl.1 +++ /dev/null @@ -1,127 +0,0 @@ -.\" ************************************************************************** -.\" * _ _ ____ _ -.\" * Project ___| | | | _ \| | -.\" * / __| | | | |_) | | -.\" * | (__| |_| | _ <| |___ -.\" * \___|\___/|_| \_\_____| -.\" * -.\" * Copyright (C) 1998 - 2005, Daniel Stenberg, <daniel@haxx.se>, et al. -.\" * -.\" * This software is licensed as described in the file COPYING, which -.\" * you should have received as part of this distribution. The terms -.\" * are also available at http://curl.haxx.se/docs/copyright.html. -.\" * -.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell -.\" * copies of the Software, and permit persons to whom the Software is -.\" * furnished to do so, under the terms of the COPYING file. -.\" * -.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -.\" * KIND, either express or implied. -.\" * -.\" * $Id$ -.\" ************************************************************************** -.\" -.TH testcurl.pl 1 "20 May 2005" "Curl 7.14.1" "testcurl" -.SH NAME -testcurl.pl \- (automatically) test curl -.SH SYNOPSIS -.B testcurl.pl [options] [dir] > output -.SH DESCRIPTION -\fItestcurl.pl\fP is the master script to use for automatic testing of curl -off CVS or daily snapshots. It is written for the purpose of being run from a -crontab job or similar at a regular interval. The output is suitable to be -mailed to curl-autocompile@haxx.se to be dealt with automatically (make sure -the subject includes the word "autobuild" as the mail gets silently discarded -otherwise). The most current build status (with a reasonable backlog) will be -published on the curl site, at http://curl.haxx.se/auto/ - -\fIoptions\fP may be omitted. See \fI--setup\fP for what happens then. - -\fIdir\fP is a curl source dir, possibly a daily snapshot one. Using this will -make testcurl.pl skip the 'buildconf' stage and thus it removes the dependency -on automake, autoconf, libtool, GNU m4 and possibly a few other things. - -testcurl.pl will run 'buildconf' (or similar), run configure, build curl and -libcurl in a separate build directory and then run 'make test' to test the -fresh build. -.SH OPTIONS -.IP "--configure=[options]" -Configure options passed to configure. -.IP "--crosscompile" -This is a cross-compile. Makes \fItestcurl.pl\fP skip a few things. -.IP "--desc=[desc]" -Description of your test system. Displayed on the build summary page on the -weba site. -.IP "--email=[email]" -Set email address to report as. Displayed in the build logs on the site. -.IP "--mktarball=[command]" -Generic command to run after completed test. -.IP "--name=[name]" -Set name to report as. Displayed in the build summary on the site. -.IP "--nobuildconf" -Don't run buildconf. Useful when many builds use the same source tree, as then -only one need to do this. Also, if multiple processes run tests simultaneously -on the same source tree (like several hosts on a NFS mounted dir), -simultaneous buildconf invokes may cause problems. (Added in 7.14.1) -.IP "--nocvsup" -Don't update from CVS even though it is a CVS tree. Useful to still be able to -test even though your network is down, or similar. -.IP "--runtestopts=[options]" -Options that is passed to the runtests.pl script. Useful for disabling valgrind -by force, and similar. -.IP "--setup=[file name]" -File name to read setup from (deprecated). The old style of providing info. -If info is missing when testcurl.pl is started, it will prompt you and then -store the info in a 'setup' file, which it will look for on each invoke. Use -\fI--name\fP, \fI--emacs\fP, \fI--configure\fP and \fI--desc\fP instead. -.IP "--target=[your os]" -Specify your target environment. Recognized strings include 'vc', 'mingw32', -\&'borland' and 'netware'. -.SH "INITIAL SETUP" -First you make a checkout from CVS (or you write a script that downloads daily -snapshots automatically, find inspiration at -http://curl.haxx.se/auto/autocurl.txt): - -.nf - $ mkdir daily-curl - $ cd daily-curl - $ cvs -d :pserver:anonymous@cool.haxx.se:/cvsroot/curl login - [enter return when prompted for password ] - $ cvs -d :pserver:anonymous@cool.haxx.se:/cvsroot/curl checkout curl -.fi - -With the curl sources checked out, or downloaded, you can start testing right -away. If you want to use \fItestcurl.pl\fP without command line arguments and -to have it store and remember the config in its 'setup' file, then start it -manually now and fill in the answers to the questions it prompts you for: - -.nf - $ ./curl/tests/testcurl.pl -.fi - -Now you are ready to go. If you let the script run, it will perform a full -cycle and spit out lots of output. Mail us that output as described above. -.SH "CRONTAB EXAMPLE" -The crontab could include something like this: - -.nf -\# autobuild curl: -0 4 * * * cd daily-curl && ./testit.sh -.fi - -Where testit.sh is a shell script that could look similar to this: - -.nf -mail="mail -s autobuild curl-autocompile@haxx.se" -name="--name=whoami" -email="--email=iamme@nowhere" -desc='"--desc=supermachine Turbo 2000"' -testprog="perl ./curl/tests/testcurl.pl $name $email $desc" -opts1="--configure=--enable-debug" -opts2="--configure=--enable-ipv6" - -# run first test -$testprog $opts1 | $mail - -# run second test -$testprog $opts2 | $mail diff --git a/Utilities/cmcurl-7.19.0/tests/testcurl.html b/Utilities/cmcurl-7.19.0/tests/testcurl.html deleted file mode 100644 index 22b299d..0000000 --- a/Utilities/cmcurl-7.19.0/tests/testcurl.html +++ /dev/null @@ -1,112 +0,0 @@ -<html><head> -<title>testcurl.pl man page</title> -<meta name="generator" content="roffit 0.7"> -<STYLE type="text/css"> -P.level0 { - padding-left: 2em; -} - -P.level1 { - padding-left: 4em; -} - -P.level2 { - padding-left: 6em; -} - -span.emphasis { - font-style: italic; -} - -span.bold { - font-weight: bold; -} - -span.manpage { - font-weight: bold; -} - -h2.nroffsh { - background-color: #e0e0e0; -} - -span.nroffip { - font-weight: bold; - font-size: 120%; - font-family: monospace; -} - -p.roffit { - text-align: center; - font-size: 80%; -} -</STYLE> -</head><body> - -<p class="level0"><a name="NAME"></a><h2 class="nroffsh">NAME</h2> -<p class="level0">testcurl.pl - (automatically) test curl <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2> -<p class="level0"><span Class="bold">testcurl.pl [options] [dir] > output</span> <a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2> -<p class="level0"><span Class="emphasis">testcurl.pl</span> is the master script to use for automatic testing of curl off CVS or daily snapshots. It is written for the purpose of being run from a crontab job or similar at a regular interval. The output is suitable to be mailed to curl-autocompile@haxx.se to be dealt with automatically (make sure the subject includes the word "autobuild" as the mail gets silently discarded otherwise). The most current build status (with a reasonable backlog) will be published on the curl site, at <a href="http://curl.haxx.se/auto/">http://curl.haxx.se/auto/</a> -<p class="level0"><span Class="emphasis">options</span> may be omitted. See <span Class="emphasis">--setup</span> for what happens then. -<p class="level0"><span Class="emphasis">dir</span> is a curl source dir, possibly a daily snapshot one. Using this will make testcurl.pl skip the 'buildconf' stage and thus it removes the dependency on automake, autoconf, libtool, GNU m4 and possibly a few other things. -<p class="level0">testcurl.pl will run 'buildconf' (or similar), run configure, build curl and libcurl in a separate build directory and then run 'make test' to test the fresh build. <a name="OPTIONS"></a><h2 class="nroffsh">OPTIONS</h2> -<p class="level0"> -<p class="level0"><a name="--configureoptions"></a><span class="nroffip">--configure=[options]</span> -<p class="level1">Configure options passed to configure. -<p class="level0"><a name="--crosscompile"></a><span class="nroffip">--crosscompile</span> -<p class="level1">This is a cross-compile. Makes <span Class="emphasis">testcurl.pl</span> skip a few things. -<p class="level0"><a name="--descdesc"></a><span class="nroffip">--desc=[desc]</span> -<p class="level1">Description of your test system. Displayed on the build summary page on the weba site. -<p class="level0"><a name="--emailemail"></a><span class="nroffip">--email=[email]</span> -<p class="level1">Set email address to report as. Displayed in the build logs on the site. -<p class="level0"><a name="--mktarballcommand"></a><span class="nroffip">--mktarball=[command]</span> -<p class="level1">Generic command to run after completed test. -<p class="level0"><a name="--namename"></a><span class="nroffip">--name=[name]</span> -<p class="level1">Set name to report as. Displayed in the build summary on the site. -<p class="level0"><a name="--nobuildconf"></a><span class="nroffip">--nobuildconf</span> -<p class="level1">Don't run buildconf. Useful when many builds use the same source tree, as then only one need to do this. Also, if multiple processes run tests simultaneously on the same source tree (like several hosts on a NFS mounted dir), simultaneous buildconf invokes may cause problems. (Added in 7.14.1) -<p class="level0"><a name="--nocvsup"></a><span class="nroffip">--nocvsup</span> -<p class="level1">Don't update from CVS even though it is a CVS tree. Useful to still be able to test even though your network is down, or similar. -<p class="level0"><a name="--runtestoptsoptions"></a><span class="nroffip">--runtestopts=[options]</span> -<p class="level1">Options that is passed to the runtests.pl script. Useful for disabling valgrind by force, and similar. -<p class="level0"><a name="--setupfile"></a><span class="nroffip">--setup=[file name]</span> -<p class="level1">File name to read setup from (deprecated). The old style of providing info. If info is missing when testcurl.pl is started, it will prompt you and then store the info in a 'setup' file, which it will look for on each invoke. Use <span Class="emphasis">--name</span>, <span Class="emphasis">--emacs</span>, <span Class="emphasis">--configure</span> and <span Class="emphasis">--desc</span> instead. -<p class="level0"><a name="--targetyour"></a><span class="nroffip">--target=[your os]</span> -<p class="level1">Specify your target environment. Recognized strings include 'vc', 'mingw32', 'borland' and 'netware'. <a name="INITIAL"></a><h2 class="nroffsh">INITIAL SETUP</h2> -<p class="level0">First you make a checkout from CVS (or you write a script that downloads daily snapshots automatically, find inspiration at <a href="http://curl.haxx.se/auto/autocurl.txt">http://curl.haxx.se/auto/autocurl.txt</a>): -<p class="level0"><pre> -<p class="level0"> $ mkdir daily-curl - $ cd daily-curl - $ cvs -d :pserver:anonymous@cool.haxx.se:/cvsroot/curl login - [enter return when prompted for password ] - $ cvs -d :pserver:anonymous@cool.haxx.se:/cvsroot/curl checkout curl - <p class="level0">With the curl sources checked out, or downloaded, you can start testing right - away. If you want to use <span Class="emphasis">testcurl.pl</span> without command line arguments and - to have it store and remember the config in its 'setup' file, then start it - manually now and fill in the answers to the questions it prompts you for: - <p class="level0"><pre> -<p class="level0"> $ ./curl/tests/testcurl.pl - <p class="level0">Now you are ready to go. If you let the script run, it will perform a full - cycle and spit out lots of output. Mail us that output as described above. - </pre> -<a name="CRONTAB"></a><h2 class="nroffsh">CRONTAB EXAMPLE</h2> -<p class="level0">The crontab could include something like this: -<p class="level0"><pre> -<p class="level0"># autobuild curl: - 0 4 * * * cd daily-curl && ./testit.sh - <p class="level0">Where testit.sh is a shell script that could look similar to this: - <p class="level0"><pre> -<p class="level0">mail="mail -s autobuild curl-autocompile@haxx.se" - name="--name=whoami" - email="--email=iamme@nowhere" - desc='"--desc=supermachine Turbo 2000"' - testprog="perl ./curl/tests/testcurl.pl $name $email $desc" - opts1="--configure=--enable-debug" - opts2="--configure=--enable-ipv6" - <p class="level0"># run first test - $testprog $opts1 | $mail - <p class="level0"># run second test - $testprog $opts2 | $mail - <p class="roffit"> - This HTML page was made with <a href="http://daniel.haxx.se/projects/roffit/">roffit</a>. -</body></html> diff --git a/Utilities/cmcurl-7.19.0/tests/testcurl.pdf b/Utilities/cmcurl-7.19.0/tests/testcurl.pdf Binary files differdeleted file mode 100644 index 396030f..0000000 --- a/Utilities/cmcurl-7.19.0/tests/testcurl.pdf +++ /dev/null diff --git a/Utilities/cmcurl-7.19.0/tests/testcurl.pl b/Utilities/cmcurl-7.19.0/tests/testcurl.pl deleted file mode 100755 index c681477..0000000 --- a/Utilities/cmcurl-7.19.0/tests/testcurl.pl +++ /dev/null @@ -1,658 +0,0 @@ -#!/usr/bin/env perl -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al. -# -# This software is licensed as described in the file COPYING, which -# you should have received as part of this distribution. The terms -# are also available at http://curl.haxx.se/docs/copyright.html. -# -# You may opt to use, copy, modify, merge, publish, distribute and/or sell -# copies of the Software, and permit persons to whom the Software is -# furnished to do so, under the terms of the COPYING file. -# -# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -# KIND, either express or implied. -# -# $Id$ -########################################################################### - -########################### -# What is This Script? -########################### - -# testcurl.pl is the master script to use for automatic testing of CVS-curl. -# This is written for the purpose of being run from a crontab job or similar -# at a regular interval. The output is suitable to be mailed to -# curl-autocompile@haxx.se to be dealt with automatically (make sure the -# subject includes the word "autobuild" as the mail gets silently discarded -# otherwise). The most current build status (with a resonable backlog) will -# be published on the curl site, at http://curl.haxx.se/auto/ - -# USAGE: -# testcurl.pl [options] [curl-daily-name] > output - -# Options: -# -# --configure=[options] Configure options -# --crosscompile This is a crosscompile -# --desc=[desc] Description of your test system -# --email=[email] Set email address to report as -# --extvercmd=[command] Command to use for displaying version with cross compiles. -# --mktarball=[command] Command to run after completed test -# --name=[name] Set name to report as -# --nocvsup Don't update from CVS even though it is a CVS tree -# --nobuildconf Don't run buildconf -# --runtestopts=[options] Options to pass to runtests.pl -# --setup=[file name] File name to read setup from (deprecated) -# --target=[your os] Specify your target environment. -# -# if [curl-daily-name] is omitted, a 'curl' CVS directory is assumed. -# - -use strict; - -use Cwd; - -# Turn on warnings (equivalent to -w, which can't be used with /usr/bin/env) -#BEGIN { $^W = 1; } - -use vars qw($version $fixed $infixed $CURLDIR $CVS $pwd $build $buildlog - $buildlogname $configurebuild $targetos $confsuffix $binext - $libext); -use vars qw($name $email $desc $confopts $runtestopts $setupfile $mktarball - $extvercmd $nocvsup $nobuildconf $crosscompile $timestamp); - -# version of this script -$version='$Revision$'; -$fixed=0; - -# Determine if we're running from CVS or a canned copy of curl, -# or if we got a specific target option or setup file option. -$CURLDIR="curl"; -$CVS=1; -$setupfile = 'setup'; -while ($ARGV[0]) { - if ($ARGV[0] =~ /--target=/) { - $targetos = (split(/=/, shift @ARGV))[1]; - } - elsif ($ARGV[0] =~ /--setup=/) { - $setupfile = (split(/=/, shift @ARGV))[1]; - } - elsif ($ARGV[0] =~ /--extvercmd=/) { - $extvercmd = (split(/=/, shift @ARGV))[1]; - } - elsif ($ARGV[0] =~ /--mktarball=/) { - $mktarball = (split(/=/, shift @ARGV))[1]; - } - elsif ($ARGV[0] =~ /--name=/) { - $name = (split(/=/, shift @ARGV))[1]; - } - elsif ($ARGV[0] =~ /--email=/) { - $email = (split(/=/, shift @ARGV))[1]; - } - elsif ($ARGV[0] =~ /--desc=/) { - $desc = (split(/=/, shift @ARGV))[1]; - } - elsif ($ARGV[0] =~ /--configure=/) { - $confopts = (split(/=/, shift @ARGV))[1]; - } - elsif ($ARGV[0] =~ /--nocvsup/) { - $nocvsup=1; - shift @ARGV; - } - elsif ($ARGV[0] =~ /--nobuildconf/) { - $nobuildconf=1; - shift @ARGV; - } - elsif ($ARGV[0] =~ /--crosscompile/) { - $crosscompile=1; - shift @ARGV; - } - elsif ($ARGV[0] =~ /--runtestopts=/) { - $runtestopts = (split(/=/, shift @ARGV, 2))[1]; - } - else { - $CURLDIR=shift @ARGV; - $CVS=0; - } -} - -# Do the platform-specific stuff here -$configurebuild = 1; -$confsuffix = ''; -$binext = ''; -$libext = '.la'; # .la since both libcurl and libcares are made with libtool -if ($^O eq 'MSWin32' || $targetos) { - if (!$targetos) { - # If no target defined on Win32 lets assume vc - $targetos = 'vc'; - } - if ($targetos =~ /vc/ || $targetos =~ /borland/) { - $binext = '.exe'; - $libext = '.lib'; - } - elsif ($targetos =~ /mingw32/) { - $binext = '.exe'; - if ($^O eq 'MSWin32') { - $libext = '.a'; - } - } - elsif ($targetos =~ /netware/) { - $configurebuild = 0; - $binext = '.nlm'; - if ($^O eq 'MSWin32') { - $libext = '.lib'; - } - else { - $libext = '.a'; - } - } -} - -if (($^O eq 'MSWin32') && - ($targetos =~ /vc/ || $targetos =~ /mingw32/ || $targetos =~ /borland/)) { - - # Set these things only when building ON Windows and for Win32 platform. - # FOR Windows since we might be cross-compiling on another system. Non- - # Windows builds still default to configure-style builds with no confsuffix. - - $configurebuild = 0; - $confsuffix = '-win32'; -} - - -$ENV{LANG}="C"; - -sub rmtree($) { - my $target = $_[0]; - if ($^O eq 'MSWin32') { - foreach (glob($target)) { - s:/:\\:g; - system("rd /s /q $_"); - } - } else { - system("rm -rf $target"); - } -} - -sub grepfile($$) { - my ($target, $fn) = @_; - open(F, $fn) or die; - while (<F>) { - if (/$target/) { - close(F); - return 1; - } - } - close(F); - return 0; -} - -sub logit($) { - my $text=$_[0]; - if ($text) { - print "testcurl: $text\n"; - } -} - -sub mydie($){ - my $text=$_[0]; - logit "$text"; - chdir $pwd; # cd back to the original root dir - - if ($pwd && $build) { - # we have a build directory name, remove the dir - logit "removing the $build dir"; - rmtree "$pwd/$build"; - } - if (-r $buildlog) { - # we have a build log output file left, remove it - logit "removing the $buildlogname file"; - unlink "$buildlog"; - } - logit "ENDING HERE"; # last line logged! - exit 1; -} - -if (open(F, "$setupfile")) { - while (<F>) { - if (/(\w+)=(.*)/) { - eval "\$$1=$2;"; - } - } - close(F); - $infixed=$fixed; -} else { - $infixed=0; # so that "additional args to configure" works properly first time... -} - -if (!$name) { - print "please enter your name\n"; - $name = <>; - chomp $name; - $fixed=1; -} - -if (!$email) { - print "please enter your contact email address\n"; - $email = <>; - chomp $email; - $fixed=2; -} - -if (!$desc) { - print "please enter a one line system description\n"; - $desc = <>; - chomp $desc; - $fixed=3; -} - -if (!$confopts) { - if ($infixed < 4) { - print "please enter your additional arguments to configure\n"; - print "examples: --with-ssl --enable-debug --enable-ipv6 --with-krb4\n"; - $confopts = <>; - chomp $confopts; - } -} - - -if ($fixed < 4) { - $fixed=4; - open(F, ">$setupfile") or die; - print F "name='$name'\n"; - print F "email='$email'\n"; - print F "desc='$desc'\n"; - print F "confopts='$confopts'\n"; - print F "fixed='$fixed'\n"; - close(F); -} - -my $str1066os = 'o' x 1066; - -# Set timestamp to the UTC this script is running. Its value might -# be changed later in the script to the value present in curlver.h -$timestamp = scalar(gmtime)." UTC"; - -logit "STARTING HERE"; # first line logged, for scripts to trigger on -logit 'TRANSFER CONTROL ==== 1120 CHAR LINE' . $str1066os . 'LINE_END'; -logit "NAME = $name"; -logit "EMAIL = $email"; -logit "DESC = $desc"; -logit "CONFOPTS = $confopts"; -logit "CPPFLAGS = ".$ENV{CPPFLAGS}; -logit "CFLAGS = ".$ENV{CFLAGS}; -logit "LDFLAGS = ".$ENV{LDFLAGS}; -logit "CC = ".$ENV{CC}; -logit "target = ".$targetos; -logit "version = $version"; # script version -logit "date = $timestamp"; # When the test build starts - -$str1066os = undef; - -# Make $pwd to become the path without newline. We'll use that in order to cut -# off that path from all possible logs and error messages etc. -$pwd = getcwd(); - -if (-d $CURLDIR) { - if ($CVS && -d "$CURLDIR/CVS") { - logit "$CURLDIR is verified to be a fine source dir"; - # remove the generated sources to force them to be re-generated each - # time we run this test - unlink "$CURLDIR/src/hugehelp.c"; - } elsif (!$CVS && -f "$CURLDIR/tests/testcurl.pl") { - logit "$CURLDIR is verified to be a fine daily source dir" - } else { - mydie "$CURLDIR is not a daily source dir or checked out from CVS!" - } -} -$build="build-$$"; -$buildlogname="buildlog-$$"; -$buildlog="$pwd/$buildlogname"; - -# remove any previous left-overs -rmtree "build-*"; -rmtree "buildlog-*"; - -# this is to remove old build logs that ended up in the wrong dir -foreach (glob("$CURLDIR/buildlog-*")) { unlink $_; } - -# create a dir to build in -mkdir $build, 0777; - -if (-d $build) { - logit "build dir $build was created fine"; -} else { - mydie "failed to create dir $build"; -} - -# get in the curl source tree root -chdir $CURLDIR; - -# Do the CVS thing, or not... -if ($CVS) { - - # this is a temporary fix to make things work again, remove later - logit "remove ares/aclocal.m4"; - unlink "ares/aclocal.m4"; - - logit "update from CVS"; - my $cvsstat; - - sub cvsup() { - # update quietly to the latest CVS - if($nocvsup) { - logit "Skipping CVS update (--nocvsup)"; - return 1; - } - else { - logit "run cvs up"; - system("cvs -Q up -dP 2>&1"); - } - - $cvsstat=$?; - - # return !RETURNVALUE so that errors return 0 while goodness - # returns 1 - return !$cvsstat; - } - - my $att=0; - while (!cvsup()) { - $att++; - logit "failed CVS update attempt number $att."; - if ($att > 20) { - $cvsstat=111; - last; # get out of the loop - } - sleep 5; - } - - if ($cvsstat != 0) { - mydie "failed to update from CVS ($cvsstat), exiting"; - } - elsif (!$nocvsup) { - # Set timestamp to the UTC the CVS update took place. - $timestamp = scalar(gmtime)." UTC"; - } - - if($nobuildconf) { - logit "told to not run buildconf"; - } - elsif ($configurebuild) { - # remove possible left-overs from the past - unlink "configure"; - unlink "autom4te.cache"; - - # generate the build files - logit "invoke buildconf, but filter off aclocal underquoted definition warnings"; - open(F, "./buildconf 2>&1 |") or die; - open(LOG, ">$buildlog") or die; - while (<F>) { - next if /warning: underquoted definition of/; - print; - print LOG; - } - close(F); - close(LOG); - - if (grepfile("^buildconf: OK", $buildlog)) { - logit "buildconf was successful"; - } - else { - mydie "buildconf was NOT successful"; - } - } - else { - logit "buildconf was successful (dummy message)"; - } -} - -# Set timestamp to the one in curlver.h if this isn't a CVS test build. -if ((-f "include/curl/curlver.h") && - (open(F, "<include/curl/curlver.h"))) { - while (<F>) { - chomp; - if ($_ =~ /^\#define\s+LIBCURL_TIMESTAMP\s+\"(.+)\".*$/) { - my $stampstring = $1; - if ($stampstring !~ /CVS/) { - $stampstring =~ s/\s+UTC//; - $timestamp = $stampstring." UTC"; - } - last; - } - } - close(F); -} - -# Show timestamp we are using for this test build. -logit "timestamp = $timestamp"; - -if ($configurebuild) { - if (-f "configure") { - logit "configure created (at least it exists)"; - } else { - mydie "no configure created/found"; - } -} else { - logit "configure created (dummy message)"; # dummy message to feign success -} - -sub findinpath { - my $c; - my $e; - my $x=''; - $x='.exe' if ($^O eq 'MSWin32'); - my $s=':'; - $s=';' if ($^O eq 'MSWin32'); - my $p=$ENV{'PATH'}; - my @pa = split($s, $p); - for $c (@_) { - for $e (@pa) { - if( -x "$e/$c$x") { - return $c; - } - } - } -} - -my $make = findinpath("gmake", "make", "nmake"); -if(!$make) { - mydie "Couldn't find make in the PATH"; -} -logit "going with $make as make"; - -# change to build dir -chdir "$pwd/$build"; - -if ($configurebuild) { - # run configure script - print `../$CURLDIR/configure $confopts 2>&1`; - - if (-f "lib/Makefile") { - logit "configure seems to have finished fine"; - } else { - mydie "configure didn't work"; - } -} else { - logit "copying files to build dir ..."; - if (($^O eq 'MSWin32') && ($targetos !~ /netware/)) { - system("xcopy /s /q ..\\$CURLDIR ."); - system("buildconf.bat"); - } - elsif ($targetos =~ /netware/) { - system("cp -afr ../$CURLDIR/* ."); - system("cp -af ../$CURLDIR/Makefile.dist Makefile"); - system("$make -i -C lib -f Makefile.netware prebuild"); - system("$make -i -C src -f Makefile.netware prebuild"); - } - elsif ($^O eq 'linux') { - system("cp -afr ../$CURLDIR/* ."); - system("cp -af ../$CURLDIR/Makefile.dist Makefile"); - system("cp -af ../$CURLDIR/include/curl/curlbuild.h.dist ./include/curl/curlbuild.h"); - system("$make -i -C lib -f Makefile.$targetos prebuild"); - system("$make -i -C src -f Makefile.$targetos prebuild"); - } -} - -if(-f "./include/curl/curlbuild.h") { - logit "display include/curl/curlbuild.h"; - if(open(F, "<./include/curl/curlbuild.h")) { - while(<F>) { - my $ll = $_; - print $ll if(($ll =~ /^ *# *define/) && ($ll !~ /__CURL_CURLBUILD_H/)); - } - close(F); - } -} -else { - mydie "no curlbuild.h created/found"; -} - -logit "display lib/config$confsuffix.h"; -open(F, "lib/config$confsuffix.h") or die "lib/config$confsuffix.h: $!"; -while (<F>) { - print if /^ *#/; -} -close(F); - -if (grepfile("define USE_ARES", "lib/config$confsuffix.h")) { - logit "setup to build ares"; - - logit "display ares/config$confsuffix.h"; - if(open(F, "ares/config$confsuffix.h")) { - while (<F>) { - print if /^ *#/; - } - close(F); - } - - logit "build ares"; - chdir "ares"; - - if ($targetos && !$configurebuild) { - logit "$make -f Makefile.$targetos"; - open(F, "$make -f Makefile.$targetos 2>&1 |") or die; - } - else { - logit "$make"; - open(F, "$make 2>&1 |") or die; - } - while (<F>) { - s/$pwd//g; - print; - } - close(F); - - if (-f "libcares$libext") { - logit "ares is now built successfully (libcares$libext)"; - } else { - logit "ares build failed (libares$libext)"; - } - - # cd back to the curl build dir - chdir "$pwd/$build"; -} - -if ($configurebuild) { - logit "$make -i"; - open(F, "$make -i 2>&1 |") or die; - while (<F>) { - s/$pwd//g; - print; - } - close(F); -} -else { - logit "$make -i $targetos"; - if ($^O eq 'MSWin32') { - if ($targetos =~ /vc/) { - open(F, "nmake -i $targetos|") or die; - } - else { - open(F, "$make -i $targetos |") or die; - } - } - else { - open(F, "$make -i $targetos 2>&1 |") or die; - } - while (<F>) { - s/$pwd//g; - print; - } - close(F); -} - -if (-f "lib/libcurl$libext") { - logit "libcurl was created fine (libcurl$libext)"; -} -else { - mydie "libcurl was not created (libcurl$libext)"; -} - -if (-f "src/curl$binext") { - logit "curl was created fine (curl$binext)"; -} -else { - mydie "curl was not created (curl$binext)"; -} - -if (!$crosscompile || (($extvercmd ne '') && (-x $extvercmd))) { - logit "display curl${binext} --version output"; - my $cmd = ($extvercmd ne '' ? $extvercmd.' ' : '')."./src/curl${binext} --version|"; - open(F, $cmd); - while(<F>) { - print; - print LOG; - } - close(F); -} - -if ($configurebuild && !$crosscompile) { - my $o; - if($runtestopts) { - $o = "TEST_F=\"$runtestopts\" "; - } - logit "$make -k ${o}test-full"; - open(F, "$make -k ${o}test-full 2>&1 |") or die; - open(LOG, ">$buildlog") or die; - while (<F>) { - s/$pwd//g; - print; - print LOG; - } - close(F); - close(LOG); - - if (grepfile("^TEST", $buildlog)) { - logit "tests were run"; - } else { - mydie "test suite failure"; - } - - if (grepfile("^TESTFAIL:", $buildlog)) { - logit "the tests were not successful"; - } else { - logit "the tests were successful!"; - } -} else { - # dummy message to feign success - if($crosscompile) { - logit "cross-compiling, can't run tests"; - } - print "TESTDONE: 1 tests out of 0 (dummy message)\n"; -} - -# create a tarball if we got that option. -if (($mktarball ne '') && (-x $mktarball)) { - system($mktarball); -} - -# mydie to cleanup -mydie "ending nicely"; diff --git a/Utilities/cmcurl-7.19.0/tests/valgrind.pm b/Utilities/cmcurl-7.19.0/tests/valgrind.pm deleted file mode 100644 index 82efe2f..0000000 --- a/Utilities/cmcurl-7.19.0/tests/valgrind.pm +++ /dev/null @@ -1,111 +0,0 @@ -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) 1998 - 2005, Daniel Stenberg, <daniel@haxx.se>, et al. -# -# This software is licensed as described in the file COPYING, which -# you should have received as part of this distribution. The terms -# are also available at http://curl.haxx.se/docs/copyright.html. -# -# You may opt to use, copy, modify, merge, publish, distribute and/or sell -# copies of the Software, and permit persons to whom the Software is -# furnished to do so, under the terms of the COPYING file. -# -# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -# KIND, either express or implied. -# -# $Id$ -########################################################################### - -use File::Basename; - -sub valgrindparse { - my ($srcdir, # the dir in which the runtests script resides - $sslenabled, - $file) = @_; - my $leak; - my $invalidread; - my $uninitedvar; - my $error; - my $partial; - my $us; - - my @o; - - my $bt=0; - - open(VAL, "<$file"); - while(<VAL>) { - if($bt) { - # back trace parsing - if($_ =~ /^==(\d+)== *(at|by) 0x([0-9A-F]+): (.*)/) { - my $w = $4; - if($w =~ /(.*) \(([^:]*):(\d+)/) { - my ($func, $source, $line)=($1, $2, $3); - my $sourcename = basename($source); - if(-f "$srcdir/../src/$sourcename" || - -f "$srcdir/../lib/$sourcename") { - # this is our source - # print "$func() at $source:$line\n"; - $us++; - } #else {print "Not our source: $func, $source, $line\n";} - } - } - else { - if($us) { - # the stack trace included source details about us - - $error++; - if($leak) { - push @o, "\n Leaked $leak bytes\n"; - } - if($invalidread) { - push @o, "\n Read $invalidread invalid bytes\n"; - } - if($uninitedvar) { - push @o, "\n Conditional jump or move depends on uninitialised value(s)\n"; - } - } - $bt = 0; # no more backtrace - $us = 0; - } - } - else { - if($_ =~ /(\d+) bytes in (\d+) blocks are definitely lost/) { - $leak = $1; - if($leak) { - $error++; - } - $bt = 1; - } - elsif($_ =~ /Invalid read of size (\d+)/) { - $invalidread = $1; - $error++; - $bt = 1; - } - elsif($_ =~ /Conditional jump or move/) { - # If we require SSL, this test case most probaly makes - # us use OpenSSL. OpenSSL produces numerous valgrind - # errors of this kind, rendering it impossible for us to - # detect (valid) reports on actual curl or libcurl code. - - if(!$sslenabled) { - $uninitedvar = 1; - $error++; - $bt = 1; - } - else { - $partial=1; - } - } - } - } - close(VAL); - return @o; -} - -1; |