aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Android.bp2
-rw-r--r--CHANGES3396
-rw-r--r--CMake/CMakeConfigurableFile.in1
-rw-r--r--CMake/CurlTests.c16
-rw-r--r--CMake/curl-config.cmake.in66
-rw-r--r--CMakeLists.txt100
-rw-r--r--METADATA8
-rw-r--r--Makefile.am34
-rw-r--r--RELEASE-NOTES462
-rw-r--r--acinclude.m4126
-rw-r--r--buildconf.bat4
-rwxr-xr-xconfigure1033
-rwxr-xr-xconfigure.ac128
-rw-r--r--curl-config.in32
-rw-r--r--docs/BINDINGS.md18
-rw-r--r--docs/CIPHERS.md27
-rw-r--r--docs/CONTRIBUTE.md2
-rw-r--r--docs/DEPRECATE.md20
-rw-r--r--docs/FAQ4
-rw-r--r--docs/INSTALL.cmake1
-rw-r--r--docs/INSTALL.md1
-rw-r--r--docs/INTERNALS.md11
-rw-r--r--docs/KNOWN_BUGS12
-rw-r--r--docs/MANUAL22
-rw-r--r--docs/Makefile.am1
-rw-r--r--docs/README.md2
-rw-r--r--docs/README.netware2
-rw-r--r--docs/README.win322
-rw-r--r--docs/RELEASE-PROCEDURE.md14
-rw-r--r--docs/SECURITY-PROCESS.md24
-rw-r--r--docs/THANKS23
-rw-r--r--docs/TODO38
-rw-r--r--docs/TheArtOfHttpScripting2
-rw-r--r--docs/cmdline-opts/CMakeLists.txt2
-rw-r--r--docs/cmdline-opts/Makefile.inc2
-rw-r--r--docs/cmdline-opts/data-binary.d5
-rw-r--r--docs/cmdline-opts/doh-url.d9
-rwxr-xr-xdocs/cmdline-opts/gen.pl1
-rw-r--r--docs/cmdline-opts/ipv6.d2
-rw-r--r--docs/cmdline-opts/metalink.d1
-rw-r--r--docs/cmdline-opts/tlsv1.0.d4
-rw-r--r--docs/cmdline-opts/tlsv1.1.d2
-rw-r--r--docs/cmdline-opts/tlsv1.2.d2
-rw-r--r--docs/cmdline-opts/tlsv1.3.d2
-rw-r--r--docs/curl-config.12
-rw-r--r--docs/curl.117
-rw-r--r--docs/examples/10-at-a-time.c97
-rw-r--r--docs/examples/Makefile.am2
-rw-r--r--docs/examples/Makefile.inc14
-rw-r--r--docs/examples/Makefile.m32165
-rw-r--r--docs/examples/Makefile.netware222
-rw-r--r--docs/examples/anyauthput.c13
-rw-r--r--docs/examples/asiohiper.cpp12
-rw-r--r--docs/examples/cookie_interface.c4
-rw-r--r--docs/examples/crawler.c8
-rw-r--r--docs/examples/curlgtk.c1
-rw-r--r--docs/examples/curlx.c12
-rw-r--r--docs/examples/debug.c4
-rw-r--r--docs/examples/getinfo.c4
-rw-r--r--docs/examples/getinmemory.c9
-rw-r--r--docs/examples/getredirect.c4
-rw-r--r--docs/examples/href_extractor.c2
-rw-r--r--docs/examples/htmltidy.c6
-rw-r--r--docs/examples/http2-download.c6
-rw-r--r--docs/examples/http2-pushinmemory.c188
-rw-r--r--docs/examples/http2-upload.c6
-rw-r--r--docs/examples/makefile.dj1
-rw-r--r--docs/examples/multi-app.c10
-rw-r--r--docs/examples/multi-debugcallback.c10
-rw-r--r--docs/examples/multi-double.c10
-rw-r--r--docs/examples/multi-formadd.c10
-rw-r--r--docs/examples/multi-post.c10
-rw-r--r--docs/examples/multi-single.c10
-rw-r--r--docs/examples/multi-uv.c2
-rw-r--r--docs/examples/multithread.c2
-rw-r--r--docs/examples/parseurl.c78
-rw-r--r--docs/examples/persistent.c (renamed from docs/examples/persistant.c)6
-rw-r--r--docs/examples/postinmemory.c9
-rw-r--r--docs/examples/postit2-formadd.c4
-rw-r--r--docs/examples/postit2.c4
-rw-r--r--docs/examples/progressfunc.c2
-rw-r--r--docs/examples/resolve.c6
-rw-r--r--docs/examples/rtsp.c3
-rw-r--r--docs/examples/sampleconv.c4
-rw-r--r--docs/examples/sendrecv.c4
-rw-r--r--docs/examples/sepheaders.c4
-rw-r--r--docs/examples/simple.c4
-rw-r--r--docs/examples/simplepost.c4
-rw-r--r--docs/examples/smooth-gtk-thread.c2
-rw-r--r--docs/examples/synctime.c20
-rwxr-xr-xdocs/examples/version-check.pl2
-rw-r--r--docs/examples/xmlstream.c11
-rw-r--r--docs/libcurl/Makefile.inc104
-rw-r--r--docs/libcurl/curl_easy_cleanup.32
-rw-r--r--docs/libcurl/curl_easy_duphandle.33
-rw-r--r--docs/libcurl/curl_easy_escape.32
-rw-r--r--docs/libcurl/curl_easy_getinfo.32
-rw-r--r--docs/libcurl/curl_easy_init.32
-rw-r--r--docs/libcurl/curl_easy_pause.32
-rw-r--r--docs/libcurl/curl_easy_perform.33
-rw-r--r--docs/libcurl/curl_easy_recv.32
-rw-r--r--docs/libcurl/curl_easy_reset.33
-rw-r--r--docs/libcurl/curl_easy_send.32
-rw-r--r--docs/libcurl/curl_easy_setopt.39
-rw-r--r--docs/libcurl/curl_easy_strerror.32
-rw-r--r--docs/libcurl/curl_easy_unescape.32
-rw-r--r--docs/libcurl/curl_easy_upkeep.377
-rw-r--r--docs/libcurl/curl_escape.32
-rw-r--r--docs/libcurl/curl_formadd.32
-rw-r--r--docs/libcurl/curl_formfree.32
-rw-r--r--docs/libcurl/curl_formget.32
-rw-r--r--docs/libcurl/curl_free.32
-rw-r--r--docs/libcurl/curl_getdate.32
-rw-r--r--docs/libcurl/curl_getenv.32
-rw-r--r--docs/libcurl/curl_global_cleanup.32
-rw-r--r--docs/libcurl/curl_global_init.32
-rw-r--r--docs/libcurl/curl_global_init_mem.33
-rw-r--r--docs/libcurl/curl_global_sslset.35
-rw-r--r--docs/libcurl/curl_mime_addpart.32
-rw-r--r--docs/libcurl/curl_mime_data.32
-rw-r--r--docs/libcurl/curl_mime_data_cb.32
-rw-r--r--docs/libcurl/curl_mime_encoder.32
-rw-r--r--docs/libcurl/curl_mime_filedata.32
-rw-r--r--docs/libcurl/curl_mime_filename.32
-rw-r--r--docs/libcurl/curl_mime_free.32
-rw-r--r--docs/libcurl/curl_mime_headers.32
-rw-r--r--docs/libcurl/curl_mime_init.32
-rw-r--r--docs/libcurl/curl_mime_name.32
-rw-r--r--docs/libcurl/curl_mime_subparts.32
-rw-r--r--docs/libcurl/curl_mime_type.32
-rw-r--r--docs/libcurl/curl_mprintf.32
-rw-r--r--docs/libcurl/curl_multi_add_handle.32
-rw-r--r--docs/libcurl/curl_multi_assign.32
-rw-r--r--docs/libcurl/curl_multi_cleanup.32
-rw-r--r--docs/libcurl/curl_multi_fdset.32
-rw-r--r--docs/libcurl/curl_multi_info_read.32
-rw-r--r--docs/libcurl/curl_multi_init.33
-rw-r--r--docs/libcurl/curl_multi_perform.32
-rw-r--r--docs/libcurl/curl_multi_remove_handle.32
-rw-r--r--docs/libcurl/curl_multi_setopt.32
-rw-r--r--docs/libcurl/curl_multi_socket.32
-rw-r--r--docs/libcurl/curl_multi_socket_action.32
-rw-r--r--docs/libcurl/curl_multi_strerror.32
-rw-r--r--docs/libcurl/curl_multi_timeout.33
-rw-r--r--docs/libcurl/curl_multi_wait.32
-rw-r--r--docs/libcurl/curl_share_cleanup.32
-rw-r--r--docs/libcurl/curl_share_init.33
-rw-r--r--docs/libcurl/curl_share_setopt.32
-rw-r--r--docs/libcurl/curl_share_strerror.32
-rw-r--r--docs/libcurl/curl_slist_append.32
-rw-r--r--docs/libcurl/curl_slist_free_all.33
-rw-r--r--docs/libcurl/curl_strequal.32
-rw-r--r--docs/libcurl/curl_unescape.32
-rw-r--r--docs/libcurl/curl_url.362
-rw-r--r--docs/libcurl/curl_url_cleanup.345
-rw-r--r--docs/libcurl/curl_url_dup.353
-rw-r--r--docs/libcurl/curl_url_get.3111
-rw-r--r--docs/libcurl/curl_url_set.3131
-rw-r--r--docs/libcurl/curl_version.32
-rw-r--r--docs/libcurl/curl_version_info.33
-rw-r--r--docs/libcurl/libcurl-easy.32
-rw-r--r--docs/libcurl/libcurl-env.32
-rw-r--r--docs/libcurl/libcurl-errors.339
-rw-r--r--docs/libcurl/libcurl-multi.32
-rw-r--r--docs/libcurl/libcurl-security.33
-rw-r--r--docs/libcurl/libcurl-share.32
-rw-r--r--docs/libcurl/libcurl-symbols.369
-rw-r--r--docs/libcurl/libcurl-thread.32
-rw-r--r--docs/libcurl/libcurl-tutorial.34
-rw-r--r--docs/libcurl/libcurl-url.3138
-rw-r--r--docs/libcurl/libcurl.32
-rw-r--r--docs/libcurl/opts/CURLINFO_ACTIVESOCKET.32
-rw-r--r--docs/libcurl/opts/CURLINFO_APPCONNECT_TIME.32
-rw-r--r--docs/libcurl/opts/CURLINFO_APPCONNECT_TIME_T.32
-rw-r--r--docs/libcurl/opts/CURLINFO_CERTINFO.32
-rw-r--r--docs/libcurl/opts/CURLINFO_CONDITION_UNMET.32
-rw-r--r--docs/libcurl/opts/CURLINFO_CONNECT_TIME.32
-rw-r--r--docs/libcurl/opts/CURLINFO_CONNECT_TIME_T.32
-rw-r--r--docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD.32
-rw-r--r--docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.32
-rw-r--r--docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD.32
-rw-r--r--docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD_T.32
-rw-r--r--docs/libcurl/opts/CURLINFO_CONTENT_TYPE.32
-rw-r--r--docs/libcurl/opts/CURLINFO_COOKIELIST.32
-rw-r--r--docs/libcurl/opts/CURLINFO_EFFECTIVE_URL.32
-rw-r--r--docs/libcurl/opts/CURLINFO_FILETIME.32
-rw-r--r--docs/libcurl/opts/CURLINFO_FILETIME_T.32
-rw-r--r--docs/libcurl/opts/CURLINFO_FTP_ENTRY_PATH.32
-rw-r--r--docs/libcurl/opts/CURLINFO_HEADER_SIZE.32
-rw-r--r--docs/libcurl/opts/CURLINFO_HTTPAUTH_AVAIL.32
-rw-r--r--docs/libcurl/opts/CURLINFO_HTTP_CONNECTCODE.32
-rw-r--r--docs/libcurl/opts/CURLINFO_HTTP_VERSION.32
-rw-r--r--docs/libcurl/opts/CURLINFO_LASTSOCKET.32
-rw-r--r--docs/libcurl/opts/CURLINFO_LOCAL_IP.32
-rw-r--r--docs/libcurl/opts/CURLINFO_LOCAL_PORT.32
-rw-r--r--docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME.32
-rw-r--r--docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME_T.32
-rw-r--r--docs/libcurl/opts/CURLINFO_NUM_CONNECTS.32
-rw-r--r--docs/libcurl/opts/CURLINFO_OS_ERRNO.32
-rw-r--r--docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME.32
-rw-r--r--docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME_T.32
-rw-r--r--docs/libcurl/opts/CURLINFO_PRIMARY_IP.32
-rw-r--r--docs/libcurl/opts/CURLINFO_PRIMARY_PORT.32
-rw-r--r--docs/libcurl/opts/CURLINFO_PRIVATE.32
-rw-r--r--docs/libcurl/opts/CURLINFO_PROTOCOL.32
-rw-r--r--docs/libcurl/opts/CURLINFO_PROXYAUTH_AVAIL.32
-rw-r--r--docs/libcurl/opts/CURLINFO_PROXY_SSL_VERIFYRESULT.32
-rw-r--r--docs/libcurl/opts/CURLINFO_REDIRECT_COUNT.32
-rw-r--r--docs/libcurl/opts/CURLINFO_REDIRECT_TIME.32
-rw-r--r--docs/libcurl/opts/CURLINFO_REDIRECT_TIME_T.32
-rw-r--r--docs/libcurl/opts/CURLINFO_REDIRECT_URL.32
-rw-r--r--docs/libcurl/opts/CURLINFO_REQUEST_SIZE.32
-rw-r--r--docs/libcurl/opts/CURLINFO_RESPONSE_CODE.32
-rw-r--r--docs/libcurl/opts/CURLINFO_RTSP_CLIENT_CSEQ.32
-rw-r--r--docs/libcurl/opts/CURLINFO_RTSP_CSEQ_RECV.32
-rw-r--r--docs/libcurl/opts/CURLINFO_RTSP_SERVER_CSEQ.32
-rw-r--r--docs/libcurl/opts/CURLINFO_RTSP_SESSION_ID.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SCHEME.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD_T.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SIZE_UPLOAD.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SIZE_UPLOAD_T.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD_T.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SPEED_UPLOAD.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SPEED_UPLOAD_T.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SSL_ENGINES.32
-rw-r--r--docs/libcurl/opts/CURLINFO_SSL_VERIFYRESULT.32
-rw-r--r--docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME.32
-rw-r--r--docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME_T.32
-rw-r--r--docs/libcurl/opts/CURLINFO_TLS_SESSION.32
-rw-r--r--docs/libcurl/opts/CURLINFO_TLS_SSL_PTR.310
-rw-r--r--docs/libcurl/opts/CURLINFO_TOTAL_TIME.32
-rw-r--r--docs/libcurl/opts/CURLINFO_TOTAL_TIME_T.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_MAXCONNECTS.33
-rw-r--r--docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_MAX_PIPELINE_LENGTH.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_MAX_TOTAL_CONNECTIONS.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_PIPELINING.310
-rw-r--r--docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.34
-rw-r--r--docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_PUSHDATA.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_PUSHFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_SOCKETDATA.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.33
-rw-r--r--docs/libcurl/opts/CURLMOPT_TIMERDATA.32
-rw-r--r--docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_ABSTRACT_UNIX_SOCKET.32
-rw-r--r--docs/libcurl/opts/CURLOPT_ACCEPTTIMEOUT_MS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_ACCEPT_ENCODING.32
-rw-r--r--docs/libcurl/opts/CURLOPT_ADDRESS_SCOPE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_APPEND.32
-rw-r--r--docs/libcurl/opts/CURLOPT_AUTOREFERER.32
-rw-r--r--docs/libcurl/opts/CURLOPT_BUFFERSIZE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CAINFO.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CAPATH.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CERTINFO.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CHUNK_DATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CLOSESOCKETDATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CLOSESOCKETFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.34
-rw-r--r--docs/libcurl/opts/CURLOPT_CONNECT_ONLY.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CONNECT_TO.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_COOKIE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_COOKIEFILE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_COOKIEJAR.32
-rw-r--r--docs/libcurl/opts/CURLOPT_COOKIELIST.32
-rw-r--r--docs/libcurl/opts/CURLOPT_COOKIESESSION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CRLF.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CRLFILE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_CUSTOMREQUEST.32
-rw-r--r--docs/libcurl/opts/CURLOPT_DEBUGDATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_DEFAULT_PROTOCOL.32
-rw-r--r--docs/libcurl/opts/CURLOPT_DIRLISTONLY.32
-rw-r--r--docs/libcurl/opts/CURLOPT_DISALLOW_USERNAME_IN_URL.32
-rw-r--r--docs/libcurl/opts/CURLOPT_DNS_CACHE_TIMEOUT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_DNS_INTERFACE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP4.32
-rw-r--r--docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP6.32
-rw-r--r--docs/libcurl/opts/CURLOPT_DNS_SERVERS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_DNS_SHUFFLE_ADDRESSES.32
-rw-r--r--docs/libcurl/opts/CURLOPT_DNS_USE_GLOBAL_CACHE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_DOH_URL.372
-rw-r--r--docs/libcurl/opts/CURLOPT_EGDSOCKET.32
-rw-r--r--docs/libcurl/opts/CURLOPT_ERRORBUFFER.32
-rw-r--r--docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FAILONERROR.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FILETIME.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FNMATCH_DATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FORBID_REUSE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FRESH_CONNECT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FTPPORT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FTPSSLAUTH.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_ACCOUNT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_RESPONSE_TIMEOUT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_SSL_CCC.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_USE_EPRT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_USE_EPSV.32
-rw-r--r--docs/libcurl/opts/CURLOPT_FTP_USE_PRET.32
-rw-r--r--docs/libcurl/opts/CURLOPT_GSSAPI_DELEGATION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_HAPROXYPROTOCOL.32
-rw-r--r--docs/libcurl/opts/CURLOPT_HEADER.34
-rw-r--r--docs/libcurl/opts/CURLOPT_HEADERDATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_HEADERFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_HEADEROPT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTP200ALIASES.32
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTPAUTH.32
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTPGET.32
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTPHEADER.32
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTPPOST.32
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.32
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.32
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.32
-rw-r--r--docs/libcurl/opts/CURLOPT_HTTP_VERSION.38
-rw-r--r--docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.32
-rw-r--r--docs/libcurl/opts/CURLOPT_INFILESIZE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.34
-rw-r--r--docs/libcurl/opts/CURLOPT_INTERFACE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_INTERLEAVEDATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_IOCTLDATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_IPRESOLVE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_ISSUERCERT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_KEEP_SENDING_ON_ERROR.32
-rw-r--r--docs/libcurl/opts/CURLOPT_KEYPASSWD.32
-rw-r--r--docs/libcurl/opts/CURLOPT_KRBLEVEL.32
-rw-r--r--docs/libcurl/opts/CURLOPT_LOCALPORT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_LOCALPORTRANGE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_LOGIN_OPTIONS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_LOW_SPEED_LIMIT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_LOW_SPEED_TIME.32
-rw-r--r--docs/libcurl/opts/CURLOPT_MAIL_AUTH.32
-rw-r--r--docs/libcurl/opts/CURLOPT_MAIL_FROM.32
-rw-r--r--docs/libcurl/opts/CURLOPT_MAIL_RCPT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_MAXCONNECTS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_MAXFILESIZE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_MAXREDIRS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_MIMEPOST.32
-rw-r--r--docs/libcurl/opts/CURLOPT_NETRC.32
-rw-r--r--docs/libcurl/opts/CURLOPT_NETRC_FILE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_NOBODY.32
-rw-r--r--docs/libcurl/opts/CURLOPT_NOPROGRESS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_NOPROXY.32
-rw-r--r--docs/libcurl/opts/CURLOPT_NOSIGNAL.32
-rw-r--r--docs/libcurl/opts/CURLOPT_OPENSOCKETDATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PASSWORD.33
-rw-r--r--docs/libcurl/opts/CURLOPT_PATH_AS_IS.33
-rw-r--r--docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PIPEWAIT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PORT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_POST.32
-rw-r--r--docs/libcurl/opts/CURLOPT_POSTFIELDS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_POSTQUOTE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_POSTREDIR.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PREQUOTE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PRE_PROXY.33
-rw-r--r--docs/libcurl/opts/CURLOPT_PRIVATE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROGRESSDATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROGRESSFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROTOCOLS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYAUTH.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYHEADER.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYPASSWORD.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYPORT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYTYPE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYUSERNAME.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXYUSERPWD.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_CAINFO.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_CAPATH.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_CRLFILE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_KEYPASSWD.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_PINNEDPUBLICKEY.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SSLCERT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SSLCERTTYPE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SSLKEY.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SSLKEYTYPE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SSLVERSION.33
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SSL_CIPHER_LIST.35
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SSL_OPTIONS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYHOST.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYPEER.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_TLS13_CIPHERS.36
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_PASSWORD.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_TYPE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_USERNAME.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PROXY_TRANSFER_MODE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_PUT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_QUOTE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_RANDOM_FILE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_RANGE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_READDATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_READFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_REFERER.32
-rw-r--r--docs/libcurl/opts/CURLOPT_REQUEST_TARGET.32
-rw-r--r--docs/libcurl/opts/CURLOPT_RESOLVE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_RESOLVER_START_DATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_RESOLVER_START_FUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_RESUME_FROM.32
-rw-r--r--docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_RTSP_CLIENT_CSEQ.32
-rw-r--r--docs/libcurl/opts/CURLOPT_RTSP_REQUEST.32
-rw-r--r--docs/libcurl/opts/CURLOPT_RTSP_SERVER_CSEQ.32
-rw-r--r--docs/libcurl/opts/CURLOPT_RTSP_SESSION_ID.32
-rw-r--r--docs/libcurl/opts/CURLOPT_RTSP_STREAM_URI.32
-rw-r--r--docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SASL_IR.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SEEKDATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SEEKFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SERVICE_NAME.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SHARE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SOCKOPTDATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SOCKS5_AUTH.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_NEC.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_AUTH_TYPES.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_COMPRESSION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_KEYDATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_KNOWNHOSTS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLCERT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLCERTTYPE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLENGINE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLENGINE_DEFAULT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLKEY.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLKEYTYPE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSLVERSION.312
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_CIPHER_LIST.36
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_CTX_DATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_CTX_FUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_ENABLE_ALPN.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_FALSESTART.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_OPTIONS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SSL_VERIFYSTATUS.36
-rw-r--r--docs/libcurl/opts/CURLOPT_STDERR.32
-rw-r--r--docs/libcurl/opts/CURLOPT_STREAM_DEPENDS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_STREAM_DEPENDS_E.32
-rw-r--r--docs/libcurl/opts/CURLOPT_STREAM_WEIGHT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_SUPPRESS_CONNECT_HEADERS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TCP_FASTOPEN.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TCP_NODELAY.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TELNETOPTIONS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TFTP_BLKSIZE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TFTP_NO_OPTIONS.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TIMECONDITION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TIMEOUT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TIMEOUT_MS.34
-rw-r--r--docs/libcurl/opts/CURLOPT_TIMEVALUE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TIMEVALUE_LARGE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TLS13_CIPHERS.36
-rw-r--r--docs/libcurl/opts/CURLOPT_TLSAUTH_PASSWORD.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TLSAUTH_TYPE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TLSAUTH_USERNAME.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TRANSFERTEXT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING.32
-rw-r--r--docs/libcurl/opts/CURLOPT_UNIX_SOCKET_PATH.32
-rw-r--r--docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.32
-rw-r--r--docs/libcurl/opts/CURLOPT_UPKEEP_INTERVAL_MS.373
-rw-r--r--docs/libcurl/opts/CURLOPT_UPLOAD.32
-rw-r--r--docs/libcurl/opts/CURLOPT_UPLOAD_BUFFERSIZE.370
-rw-r--r--docs/libcurl/opts/CURLOPT_URL.37
-rw-r--r--docs/libcurl/opts/CURLOPT_USERAGENT.32
-rw-r--r--docs/libcurl/opts/CURLOPT_USERNAME.32
-rw-r--r--docs/libcurl/opts/CURLOPT_USERPWD.32
-rw-r--r--docs/libcurl/opts/CURLOPT_USE_SSL.35
-rw-r--r--docs/libcurl/opts/CURLOPT_VERBOSE.32
-rw-r--r--docs/libcurl/opts/CURLOPT_WILDCARDMATCH.32
-rw-r--r--docs/libcurl/opts/CURLOPT_WRITEDATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_WRITEFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_XFERINFODATA.32
-rw-r--r--docs/libcurl/opts/CURLOPT_XFERINFOFUNCTION.32
-rw-r--r--docs/libcurl/opts/CURLOPT_XOAUTH2_BEARER.32
-rw-r--r--docs/libcurl/opts/Makefile.inc3
-rw-r--r--docs/libcurl/symbols-in-versions35
-rw-r--r--include/curl/Makefile.am6
-rw-r--r--include/curl/curl.h25
-rw-r--r--include/curl/curlver.h10
-rw-r--r--include/curl/easy.h10
-rw-r--r--include/curl/system.h2
-rw-r--r--include/curl/typecheck-gcc.h6
-rw-r--r--include/curl/urlapi.h120
-rw-r--r--lib/CMakeLists.txt18
-rw-r--r--lib/Makefile.Watcom1
-rw-r--r--lib/Makefile.am22
-rw-r--r--lib/Makefile.inc9
-rw-r--r--lib/Makefile.m3264
-rw-r--r--lib/Makefile.netware255
-rw-r--r--lib/amigaos.h1
-rw-r--r--lib/arpa_telnet.h6
-rwxr-xr-xlib/checksrc.pl37
-rw-r--r--lib/config-dos.h1
-rw-r--r--lib/config-vxworks.h3
-rw-r--r--lib/config-win32.h1
-rw-r--r--lib/cookie.c26
-rw-r--r--lib/curl_config.h24
-rw-r--r--lib/curl_config.h.cmake6
-rw-r--r--lib/curl_config.h.in6
-rw-r--r--lib/curl_ldap.h1
-rw-r--r--lib/curl_ntlm_wb.c18
-rw-r--r--lib/curl_path.c4
-rw-r--r--lib/curl_path.h2
-rw-r--r--lib/curl_rtmp.c4
-rw-r--r--lib/curl_setup.h5
-rw-r--r--lib/curl_setup_once.h1
-rw-r--r--lib/curl_sspi.c7
-rw-r--r--lib/curl_threads.c14
-rw-r--r--lib/curl_threads.h3
-rw-r--r--lib/curlx.h1
-rw-r--r--lib/dict.c2
-rw-r--r--lib/doh.c920
-rw-r--r--lib/doh.h105
-rw-r--r--lib/dotdot.c2
-rw-r--r--lib/dotdot.h2
-rw-r--r--lib/easy.c23
-rw-r--r--lib/easyif.h1
-rw-r--r--lib/escape.c20
-rw-r--r--lib/escape.h4
-rw-r--r--lib/file.c33
-rw-r--r--lib/file.h1
-rw-r--r--lib/firefox-db2pem.sh1
-rw-r--r--lib/ftp.c46
-rw-r--r--lib/ftp.h2
-rw-r--r--lib/getinfo.c1
-rw-r--r--lib/gopher.c2
-rw-r--r--lib/hostasyn.c25
-rw-r--r--lib/hostcheck.h1
-rw-r--r--lib/hostip.c78
-rw-r--r--lib/hostip.h13
-rw-r--r--lib/http.c245
-rw-r--r--lib/http.h19
-rw-r--r--lib/http2.c135
-rw-r--r--lib/http2.h1
-rw-r--r--lib/http_chunks.h1
-rw-r--r--lib/http_proxy.c14
-rw-r--r--lib/imap.c84
-rw-r--r--lib/imap.h1
-rw-r--r--lib/inet_ntop.h1
-rw-r--r--lib/inet_pton.h1
-rw-r--r--lib/krb5.c6
-rw-r--r--lib/ldap.c18
-rw-r--r--lib/libcurl.plist6
-rw-r--r--lib/llist.h1
-rw-r--r--lib/makefile.amiga8
-rw-r--r--lib/makefile.dj1
-rw-r--r--lib/md4.c2
-rw-r--r--lib/md5.c2
-rw-r--r--lib/multi.c77
-rw-r--r--lib/netrc.c48
-rw-r--r--lib/nonblock.c3
-rw-r--r--lib/nonblock.h1
-rw-r--r--lib/nwlib.c7
-rw-r--r--lib/parsedate.h1
-rw-r--r--lib/pop3.c5
-rw-r--r--lib/progress.h1
-rw-r--r--lib/rand.c4
-rw-r--r--lib/rtsp.c27
-rw-r--r--lib/rtsp.h1
-rw-r--r--lib/security.c6
-rw-r--r--lib/select.h1
-rw-r--r--lib/sendf.h2
-rw-r--r--lib/setopt.c31
-rw-r--r--lib/slist.c1
-rw-r--r--lib/slist.h1
-rw-r--r--lib/smb.c5
-rw-r--r--lib/smtp.c9
-rw-r--r--lib/sockaddr.h1
-rw-r--r--lib/socks.c3
-rw-r--r--lib/socks.h1
-rw-r--r--lib/splay.c1
-rw-r--r--lib/ssh.c2
-rw-r--r--lib/strdup.c2
-rw-r--r--lib/strerror.c9
-rw-r--r--lib/telnet.h1
-rw-r--r--lib/tftp.c4
-rw-r--r--lib/tftp.h1
-rw-r--r--lib/timeval.c23
-rw-r--r--lib/transfer.c368
-rw-r--r--lib/transfer.h1
-rw-r--r--lib/url.c1096
-rw-r--r--lib/url.h25
-rw-r--r--lib/urlapi-int.h33
-rw-r--r--lib/urlapi.c1340
-rw-r--r--lib/urldata.h83
-rw-r--r--lib/vauth/cleartext.c4
-rw-r--r--lib/vauth/cram.c2
-rw-r--r--lib/vauth/digest.c10
-rw-r--r--lib/vauth/digest_sspi.c4
-rw-r--r--lib/vauth/krb5_gssapi.c2
-rw-r--r--lib/vauth/krb5_sspi.c2
-rw-r--r--lib/vauth/ntlm.c4
-rw-r--r--lib/vauth/ntlm_sspi.c4
-rw-r--r--lib/vauth/spnego_gssapi.c2
-rw-r--r--lib/vauth/spnego_sspi.c4
-rw-r--r--lib/vtls/axtls.h1
-rw-r--r--lib/vtls/darwinssl.c429
-rw-r--r--lib/vtls/gskit.c5
-rw-r--r--lib/vtls/gtls.c91
-rw-r--r--lib/vtls/mbedtls.c3
-rw-r--r--lib/vtls/mesalink.c627
-rw-r--r--lib/vtls/mesalink.h32
-rw-r--r--lib/vtls/nss.c17
-rw-r--r--lib/vtls/openssl.c75
-rw-r--r--lib/vtls/polarssl.c3
-rw-r--r--lib/vtls/schannel.c105
-rw-r--r--lib/vtls/schannel.h2
-rw-r--r--lib/vtls/schannel_verify.c8
-rw-r--r--lib/vtls/vtls.c5
-rw-r--r--lib/vtls/vtls.h1
-rw-r--r--lib/x509asn1.c144
-rw-r--r--m4/curl-compilers.m43
-rw-r--r--m4/curl-confopts.m42
-rw-r--r--m4/curl-functions.m418
-rw-r--r--m4/curl-override.m41
-rw-r--r--m4/curl-reentrant.m41
-rw-r--r--m4/xc-am-iface.m41
-rw-r--r--m4/xc-cc-check.m41
-rw-r--r--m4/xc-lt-iface.m41
-rw-r--r--m4/xc-translit.m41
-rw-r--r--m4/xc-val-flgs.m41
-rw-r--r--m4/zz40-xc-ovr.m41
-rw-r--r--m4/zz50-xc-ovr.m41
-rw-r--r--m4/zz60-xc-ovr.m41
-rw-r--r--packages/AIX/RPM/Makefile.am1
-rw-r--r--packages/AIX/RPM/README3
-rw-r--r--packages/EPM/Makefile.am3
-rw-r--r--packages/EPM/README12
-rw-r--r--packages/EPM/curl.list.in60
-rw-r--r--packages/Linux/RPM/Makefile.am1
-rw-r--r--packages/Linux/RPM/README1
-rw-r--r--packages/Linux/RPM/curl.spec.in1
-rw-r--r--packages/Makefile.am64
-rw-r--r--packages/NetWare/get_exp.awk1
-rw-r--r--packages/NetWare/get_ver.awk1
-rw-r--r--packages/OS400/curl.inc.in2
-rw-r--r--packages/Symbian/bwins/libcurlu.def1
-rw-r--r--packages/Symbian/eabi/libcurlu.def1
-rw-r--r--packages/Symbian/group/curl.mmp1
-rw-r--r--packages/TPF/curl.mak1
-rw-r--r--packages/TPF/maketpf.env_curl1
-rw-r--r--packages/TPF/maketpf.env_curllib1
-rw-r--r--packages/Win32/README2
-rw-r--r--packages/vms/clean_gnv_curl.com3
-rw-r--r--packages/vms/gnv_conftest.c_first1
-rw-r--r--projects/Windows/VC10/lib/libcurl.vcxproj118
-rw-r--r--projects/Windows/VC11/lib/libcurl.vcxproj118
-rw-r--r--projects/Windows/VC12/lib/libcurl.vcxproj118
-rw-r--r--projects/Windows/VC14/lib/libcurl.vcxproj118
-rw-r--r--projects/Windows/VC15/lib/libcurl.vcxproj118
-rw-r--r--projects/Windows/VC6/lib/libcurl.dsp24
-rw-r--r--projects/Windows/VC7.1/lib/libcurl.vcproj18
-rw-r--r--projects/Windows/VC7/lib/libcurl.vcproj18
-rw-r--r--projects/Windows/VC8/lib/libcurl.vcproj24
-rw-r--r--projects/Windows/VC9/lib/libcurl.vcproj120
-rw-r--r--projects/build-openssl.bat54
-rw-r--r--projects/generate.bat6
-rw-r--r--projects/wolfssl_options.h3
-rw-r--r--projects/wolfssl_override.props2
-rw-r--r--src/CMakeLists.txt9
-rw-r--r--src/Makefile.am14
-rw-r--r--src/Makefile.inc180
-rw-r--r--src/Makefile.m3262
-rw-r--r--src/Makefile.netware278
-rw-r--r--src/makefile.amiga17
-rw-r--r--src/makefile.dj1
-rw-r--r--src/slist_wc.h1
-rw-r--r--src/tool_binmode.c1
-rw-r--r--src/tool_binmode.h1
-rw-r--r--src/tool_bname.c1
-rw-r--r--src/tool_bname.h1
-rw-r--r--src/tool_cb_dbg.c1
-rw-r--r--src/tool_cb_dbg.h1
-rw-r--r--src/tool_cb_hdr.c20
-rw-r--r--src/tool_cb_hdr.h1
-rw-r--r--src/tool_cb_prg.h1
-rw-r--r--src/tool_cb_rea.c1
-rw-r--r--src/tool_cb_rea.h1
-rw-r--r--src/tool_cb_see.c1
-rw-r--r--src/tool_cb_see.h1
-rw-r--r--src/tool_cb_wrt.h1
-rw-r--r--src/tool_cfgable.c1
-rw-r--r--src/tool_cfgable.h1
-rw-r--r--src/tool_convert.c1
-rw-r--r--src/tool_convert.h1
-rw-r--r--src/tool_dirhie.c1
-rw-r--r--src/tool_dirhie.h1
-rw-r--r--src/tool_doswin.h1
-rw-r--r--src/tool_filetime.h1
-rw-r--r--src/tool_formparse.h1
-rw-r--r--src/tool_getparam.c4
-rw-r--r--src/tool_getparam.h1
-rw-r--r--src/tool_help.c10
-rw-r--r--src/tool_help.h1
-rw-r--r--src/tool_helpers.h1
-rw-r--r--src/tool_hugehelp.c10226
-rw-r--r--src/tool_libinfo.c1
-rw-r--r--src/tool_libinfo.h1
-rw-r--r--src/tool_main.c56
-rw-r--r--src/tool_main.h1
-rw-r--r--src/tool_msgs.c3
-rw-r--r--src/tool_msgs.h1
-rw-r--r--src/tool_operate.c3
-rw-r--r--src/tool_operate.h1
-rw-r--r--src/tool_operhlp.h1
-rw-r--r--src/tool_panykey.c1
-rw-r--r--src/tool_panykey.h1
-rw-r--r--src/tool_parsecfg.c1
-rw-r--r--src/tool_parsecfg.h1
-rw-r--r--src/tool_sdecls.h1
-rw-r--r--src/tool_setup.h1
-rw-r--r--src/tool_sleep.c1
-rw-r--r--src/tool_sleep.h1
-rw-r--r--src/tool_urlglob.c13
-rw-r--r--src/tool_urlglob.h1
-rw-r--r--src/tool_util.c3
-rw-r--r--src/tool_util.h1
-rw-r--r--src/tool_version.h2
-rw-r--r--src/tool_vms.c1
-rw-r--r--src/tool_vms.h1
-rw-r--r--tests/FILEFORMAT21
-rw-r--r--tests/certs/EdelCurlRoot-ca.cacert60
-rw-r--r--tests/certs/EdelCurlRoot-ca.crt60
-rw-r--r--tests/certs/EdelCurlRoot-ca.derbin918 -> 918 bytes
-rw-r--r--tests/certs/EdelCurlRoot-ca.prm1
-rw-r--r--tests/certs/Server-localhost-firstSAN-sv.crl24
-rw-r--r--tests/certs/Server-localhost-firstSAN-sv.crt104
-rw-r--r--tests/certs/Server-localhost-firstSAN-sv.csr21
-rw-r--r--tests/certs/Server-localhost-firstSAN-sv.derbin862 -> 994 bytes
-rw-r--r--tests/certs/Server-localhost-firstSAN-sv.key38
-rw-r--r--tests/certs/Server-localhost-firstSAN-sv.pem142
-rw-r--r--tests/certs/Server-localhost-firstSAN-sv.pub.derbin162 -> 294 bytes
-rw-r--r--tests/certs/Server-localhost-firstSAN-sv.pub.pem11
-rw-r--r--tests/certs/Server-localhost-lastSAN-sv.crl20
-rw-r--r--tests/certs/Server-localhost-lastSAN-sv.crt100
-rw-r--r--tests/certs/Server-localhost-lastSAN-sv.csr21
-rw-r--r--tests/certs/Server-localhost-lastSAN-sv.derbin862 -> 994 bytes
-rw-r--r--tests/certs/Server-localhost-lastSAN-sv.key38
-rw-r--r--tests/certs/Server-localhost-lastSAN-sv.pem138
-rw-r--r--tests/certs/Server-localhost-lastSAN-sv.pub.derbin162 -> 294 bytes
-rw-r--r--tests/certs/Server-localhost-lastSAN-sv.pub.pem11
-rw-r--r--tests/certs/Server-localhost-sv.crl29
-rw-r--r--tests/certs/Server-localhost-sv.crt104
-rw-r--r--tests/certs/Server-localhost-sv.csr23
-rw-r--r--tests/certs/Server-localhost-sv.derbin835 -> 967 bytes
-rw-r--r--tests/certs/Server-localhost-sv.key38
-rw-r--r--tests/certs/Server-localhost-sv.pem142
-rw-r--r--tests/certs/Server-localhost-sv.pub.derbin162 -> 294 bytes
-rw-r--r--tests/certs/Server-localhost-sv.pub.pem11
-rw-r--r--tests/certs/Server-localhost.nn-sv.crl30
-rw-r--r--tests/certs/Server-localhost.nn-sv.crt104
-rw-r--r--tests/certs/Server-localhost.nn-sv.csr21
-rw-r--r--tests/certs/Server-localhost.nn-sv.derbin841 -> 973 bytes
-rw-r--r--tests/certs/Server-localhost.nn-sv.key38
-rw-r--r--tests/certs/Server-localhost.nn-sv.pem142
-rw-r--r--tests/certs/Server-localhost.nn-sv.pub.derbin162 -> 294 bytes
-rw-r--r--tests/certs/Server-localhost.nn-sv.pub.pem11
-rw-r--r--tests/certs/Server-localhost0h-sv.crl32
-rw-r--r--tests/certs/Server-localhost0h-sv.crt104
-rw-r--r--tests/certs/Server-localhost0h-sv.csr23
-rw-r--r--tests/certs/Server-localhost0h-sv.derbin837 -> 969 bytes
-rw-r--r--tests/certs/Server-localhost0h-sv.key38
-rw-r--r--tests/certs/Server-localhost0h-sv.pem142
-rw-r--r--tests/certs/Server-localhost0h-sv.pub.derbin162 -> 294 bytes
-rw-r--r--tests/certs/Server-localhost0h-sv.pub.pem11
-rw-r--r--tests/certs/scripts/Makefile.am1
-rwxr-xr-xtests/certs/scripts/genroot.sh24
-rwxr-xr-xtests/certs/scripts/genserv.sh52
-rw-r--r--tests/data/DISABLED8
-rw-r--r--tests/data/Makefile.inc14
-rw-r--r--tests/data/test10162
-rw-r--r--tests/data/test10172
-rw-r--r--tests/data/test10182
-rw-r--r--tests/data/test10192
-rw-r--r--tests/data/test10203
-rw-r--r--tests/data/test10292
-rw-r--r--tests/data/test11353
-rw-r--r--tests/data/test11462
-rw-r--r--tests/data/test12082
-rw-r--r--tests/data/test12202
-rw-r--r--tests/data/test12992
-rw-r--r--tests/data/test13212
-rw-r--r--tests/data/test13252
-rw-r--r--tests/data/test13312
-rw-r--r--tests/data/test14081
-rw-r--r--tests/data/test14204
-rw-r--r--tests/data/test14521
-rw-r--r--tests/data/test15384
-rw-r--r--tests/data/test15522
-rw-r--r--tests/data/test156034
-rw-r--r--tests/data/test162026
-rw-r--r--tests/data/test165027
-rw-r--r--tests/data/test165126
-rw-r--r--tests/data/test2002
-rw-r--r--tests/data/test20002
-rw-r--r--tests/data/test200113
-rw-r--r--tests/data/test200213
-rw-r--r--tests/data/test200326
-rw-r--r--tests/data/test20042
-rw-r--r--tests/data/test20068
-rw-r--r--tests/data/test20078
-rw-r--r--tests/data/test20088
-rw-r--r--tests/data/test20098
-rw-r--r--tests/data/test20108
-rw-r--r--tests/data/test2022
-rw-r--r--tests/data/test2032
-rw-r--r--tests/data/test2042
-rw-r--r--tests/data/test20412
-rw-r--r--tests/data/test2052
-rw-r--r--tests/data/test20702
-rw-r--r--tests/data/test20712
-rw-r--r--tests/data/test20722
-rw-r--r--tests/data/test2080bin0 -> 20659 bytes
-rw-r--r--tests/data/test2102
-rw-r--r--tests/data/test2100bin0 -> 1642 bytes
-rw-r--r--tests/data/test2312
-rw-r--r--tests/data/test2882
-rw-r--r--tests/data/test3112
-rw-r--r--tests/data/test3122
-rw-r--r--tests/data/test32024
-rw-r--r--tests/data/test3242
-rw-r--r--tests/data/test3254
-rw-r--r--tests/data/test5234
-rw-r--r--tests/data/test5632
-rw-r--r--tests/data/test5671
-rw-r--r--tests/data/test5681
-rw-r--r--tests/data/test5691
-rw-r--r--tests/data/test5701
-rw-r--r--tests/data/test5711
-rw-r--r--tests/data/test5721
-rw-r--r--tests/data/test6302
-rw-r--r--tests/data/test6312
-rw-r--r--tests/data/test754
-rw-r--r--tests/data/test8002
-rw-r--r--tests/data/test8014
-rw-r--r--tests/data/test8022
-rw-r--r--tests/data/test8032
-rw-r--r--tests/data/test8042
-rw-r--r--tests/data/test8192
-rw-r--r--tests/data/test8202
-rw-r--r--tests/data/test8212
-rw-r--r--tests/data/test8222
-rw-r--r--tests/data/test8232
-rw-r--r--tests/data/test8242
-rw-r--r--tests/data/test8252
-rw-r--r--tests/data/test8262
-rw-r--r--tests/data/test8272
-rw-r--r--tests/data/test8282
-rw-r--r--tests/data/test8302
-rw-r--r--tests/data/test8312
-rw-r--r--tests/data/test8322
-rw-r--r--tests/data/test8332
-rw-r--r--tests/data/test8342
-rw-r--r--tests/data/test8352
-rw-r--r--tests/data/test8362
-rw-r--r--tests/data/test8372
-rw-r--r--tests/data/test8382
-rw-r--r--tests/data/test8392
-rw-r--r--tests/data/test8402
-rw-r--r--tests/data/test8422
-rw-r--r--tests/data/test8432
-rw-r--r--tests/data/test8442
-rw-r--r--tests/data/test8452
-rw-r--r--tests/data/test8462
-rw-r--r--tests/data/test84749
-rwxr-xr-xtests/ftpserver.pl8
-rw-r--r--tests/libtest/CMakeLists.txt8
-rw-r--r--tests/libtest/Makefile.am9
-rw-r--r--tests/libtest/Makefile.inc4
-rw-r--r--tests/libtest/lib1507.c2
-rw-r--r--tests/libtest/lib1512.c1
-rw-r--r--tests/libtest/lib1520.c2
-rw-r--r--tests/libtest/lib1526.c1
-rw-r--r--tests/libtest/lib1531.c1
-rw-r--r--tests/libtest/lib1533.c1
-rw-r--r--tests/libtest/lib1560.c790
-rw-r--r--tests/libtest/lib500.c1
-rw-r--r--tests/libtest/lib501.c1
-rw-r--r--tests/libtest/lib502.c1
-rw-r--r--tests/libtest/lib503.c1
-rw-r--r--tests/libtest/lib504.c1
-rw-r--r--tests/libtest/lib506.c1
-rw-r--r--tests/libtest/lib509.c1
-rw-r--r--tests/libtest/lib512.c1
-rw-r--r--tests/libtest/lib519.c1
-rw-r--r--tests/libtest/lib521.c1
-rw-r--r--tests/libtest/lib523.c1
-rw-r--r--tests/libtest/lib524.c1
-rw-r--r--tests/libtest/lib547.c1
-rw-r--r--tests/libtest/lib549.c1
-rw-r--r--tests/libtest/lib555.c1
-rw-r--r--tests/libtest/lib556.c1
-rw-r--r--tests/libtest/lib558.c1
-rw-r--r--tests/libtest/lib559.c1
-rw-r--r--tests/libtest/lib566.c1
-rw-r--r--tests/libtest/lib567.c1
-rw-r--r--tests/libtest/lib568.c1
-rw-r--r--tests/libtest/lib569.c1
-rw-r--r--tests/libtest/lib570.c1
-rw-r--r--tests/libtest/lib571.c1
-rw-r--r--tests/libtest/lib572.c1
-rw-r--r--tests/libtest/lib573.c1
-rw-r--r--tests/libtest/lib586.c1
-rw-r--r--tests/libtest/lib590.c1
-rw-r--r--tests/libtest/lib598.c1
-rw-r--r--tests/libtest/libauthretry.c1
-rw-r--r--tests/libtest/sethostname.h1
-rw-r--r--tests/libtest/stub_gssapi.h1
-rw-r--r--tests/libtest/testtrace.c1
-rw-r--r--tests/libtest/testtrace.h1
-rw-r--r--tests/libtest/testutil.h1
-rwxr-xr-xtests/negtelnetserver.py33
-rw-r--r--tests/pathhelp.pm6
-rw-r--r--tests/runtests.12
-rwxr-xr-xtests/runtests.pl144
-rw-r--r--tests/server/CMakeLists.txt1
-rw-r--r--tests/server/rtspd.c1
-rw-r--r--tests/server/sockfilt.c1
-rw-r--r--tests/server/sws.c1
-rw-r--r--tests/server/testpart.c1
-rw-r--r--tests/server/util.c3
-rw-r--r--tests/serverhelp.pm1
-rw-r--r--tests/sshhelp.pm1
-rw-r--r--tests/stunnel.pem177
-rw-r--r--tests/testcurl.12
-rw-r--r--tests/unit/CMakeLists.txt1
-rw-r--r--tests/unit/Makefile.inc18
-rw-r--r--tests/unit/curlcheck.h1
-rw-r--r--tests/unit/unit1300.c7
-rw-r--r--tests/unit/unit1620.c90
-rw-r--r--tests/unit/unit1650.c294
-rw-r--r--tests/unit/unit1651.c386
-rw-r--r--winbuild/BUILD.WINDOWS.txt2
-rw-r--r--winbuild/Makefile.vc8
-rw-r--r--winbuild/MakefileBuild.vc4
972 files changed, 19621 insertions, 12864 deletions
diff --git a/Android.bp b/Android.bp
index 06237dac..a36c1a65 100644
--- a/Android.bp
+++ b/Android.bp
@@ -62,6 +62,7 @@ cc_library {
srcs:[
"lib/curl_ctype.c",
"lib/curl_range.c",
+ "lib/doh.c",
"lib/rand.c",
"lib/file.c",
"lib/timeval.c",
@@ -74,6 +75,7 @@ cc_library {
"lib/sendf.c",
"lib/ftp.c",
"lib/url.c",
+ "lib/urlapi.c",
"lib/dict.c",
"lib/if2ip.c",
"lib/speedcheck.c",
diff --git a/CHANGES b/CHANGES
index 96c77834..221e90cd 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,1752 @@
Changelog
+Version 7.62.0 (30 Oct 2018)
+
+Daniel Stenberg (30 Oct 2018)
+- RELEASE-NOTES: 7.62.0
+
+- THANKS: 7.62.0 status
+
+Daniel Gustafsson (30 Oct 2018)
+- vtls: add MesaLink to curl_sslbackend enum
+
+ MesaLink support was added in commit 57348eb97d1b8fc3742e02c but the
+ backend was never added to the curl_sslbackend enum in curl/curl.h.
+ This adds the new backend to the enum and updates the relevant docs.
+
+ Closes #3195
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+Daniel Stenberg (30 Oct 2018)
+- [Ruslan Baratov brought this change]
+
+ cmake: Remove unused CURL_CONFIG_HAS_BEEN_RUN_BEFORE variable
+
+ Closes #3191
+
+- test2080: verify the fix for CVE-2018-16842
+
+- voutf: fix bad arethmetic when outputting warnings to stderr
+
+ CVE-2018-16842
+ Reported-by: Brian Carpenter
+ Bug: https://curl.haxx.se/docs/CVE-2018-16842.html
+
+- [Tuomo Rinne brought this change]
+
+ cmake: uniform ZLIB to use USE_ variable and clean curl-config.cmake.in
+
+ Closes #3123
+
+- [Tuomo Rinne brought this change]
+
+ cmake: add find_dependency call for ZLIB to CMake config file
+
+- [Tuomo Rinne brought this change]
+
+ cmake: add support for transitive ZLIB target
+
+- unit1650: fix "null pointer passed as argument 1 to memcmp"
+
+ Detected by UndefinedBehaviorSanitizer
+
+ Closes #3187
+
+- travis: add a "make tidy" build that runs clang-tidy
+
+ Closes #3182
+
+- unit1300: fix stack-use-after-scope AddressSanitizer warning
+
+ Closes #3186
+
+- Curl_auth_create_plain_message: fix too-large-input-check
+
+ CVE-2018-16839
+ Reported-by: Harry Sintonen
+ Bug: https://curl.haxx.se/docs/CVE-2018-16839.html
+
+- Curl_close: clear data->multi_easy on free to avoid use-after-free
+
+ Regression from b46cfbc068 (7.59.0)
+ CVE-2018-16840
+ Reported-by: Brian Carpenter (Geeknik Labs)
+
+ Bug: https://curl.haxx.se/docs/CVE-2018-16840.html
+
+- [randomswdev brought this change]
+
+ system.h: use proper setting with Sun C++ as well
+
+ system.h selects the proper Sun settings when __SUNPRO_C is defined. The
+ Sun compiler does not define it when compiling C++ files. I'm adding a
+ check also on __SUNPRO_CC to allow curl to work properly also when used
+ in a C++ project on Sun Solaris.
+
+ Closes #3181
+
+- rand: add comment to skip a clang-tidy false positive
+
+- test1651: unit test Curl_extract_certinfo()
+
+ The version used for Gskit, NSS, GnuTLS, WolfSSL and schannel.
+
+- x509asn1: always check return code from getASN1Element()
+
+- Makefile: add 'tidy' target that runs clang-tidy
+
+ Available in the root, src and lib dirs.
+
+ Closes #3163
+
+- RELEASE-PROCEDURE: adjust the release dates
+
+ See: https://curl.haxx.se/mail/lib-2018-10/0107.html
+
+Patrick Monnerat (27 Oct 2018)
+- x509asn1: suppress left shift on signed value
+
+ Use an unsigned variable: as the signed operation behavior is undefined,
+ this change silents clang-tidy about it.
+
+ Ref: https://github.com/curl/curl/pull/3163
+ Reported-By: Daniel Stenberg
+
+Michael Kaufmann (27 Oct 2018)
+- multi: Fix error handling in the SENDPROTOCONNECT state
+
+ If Curl_protocol_connect() returns an error code,
+ handle the error instead of switching to the next state.
+
+ Closes #3170
+
+Daniel Stenberg (27 Oct 2018)
+- RELEASE-NOTES: synced
+
+- openssl: output the correct cipher list on TLS 1.3 error
+
+ When failing to set the 1.3 cipher suite, the wrong string pointer would
+ be used in the error message. Most often saying "(nil)".
+
+ Reported-by: Ricky-Tigg on github
+ Fixes #3178
+ Closes #3180
+
+- docs/CIPHERS: fix the TLS 1.3 cipher names
+
+ ... picked straight from the OpenSSL man page:
+ https://www.openssl.org/docs/manmaster/man3/SSL_CTX_set_ciphersuites.html
+
+ Reported-by: Ricky-Tigg on github
+ Bug: #3178
+
+Marcel Raad (27 Oct 2018)
+- travis: install gnutls-bin package
+
+ This is required for gnutls-serv, which enables a few more tests.
+
+ Closes https://github.com/curl/curl/pull/2958
+
+Daniel Gustafsson (26 Oct 2018)
+- ssh: free the session on init failures
+
+ Ensure to clear the session object in case the libssh2 initialization
+ fails.
+
+ It could be argued that the libssh2 error function should be called to
+ get a proper error message in this case. But since the only error path
+ in libssh2_knownhost_init() is memory a allocation failure it's safest
+ to avoid since the libssh2 error handling allocates memory.
+
+ Closes #3179
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+Daniel Stenberg (26 Oct 2018)
+- docs/RELEASE-PROCEDURE: remove old entries, modify the Dec 2018 date
+
+ ... I'm moving it up one week due to travels. The rest stays.
+
+- [Daniel Gustafsson brought this change]
+
+ openssl: make 'done' a proper boolean
+
+ Closes #3176
+
+- gtls: Values stored to but never read
+
+ Detected by clang-tidy
+
+ Closes #3176
+
+- [Alexey Eremikhin brought this change]
+
+ curl.1: --ipv6 mutexes ipv4 (fixed typo)
+
+ Fixes #3171
+ Closes #3172
+
+- tool_main: make TerminalSettings static
+
+ Reported-by: Gisle Vanem
+ Bug: https://github.com/curl/curl/commit/becfe1233ff2b6b0c3e1b6a10048b55b68c2539f#commitcomment-31008819
+ Closes #3161
+
+- curl-config.in: remove dependency on bc
+
+ Reported-by: Dima Pasechnik
+ Fixes #3143
+ Closes #3174
+
+- [Gisle Vanem brought this change]
+
+ rtmp: fix for compiling with lwIP
+
+ Compiling on _WIN32 and with USE_LWIPSOCK, causes this error:
+ curl_rtmp.c(223,3): error: use of undeclared identifier 'setsockopt'
+ setsockopt(r->m_sb.sb_socket, SOL_SOCKET, SO_RCVTIMEO,
+ ^
+ curl_rtmp.c(41,32): note: expanded from macro 'setsockopt'
+ #define setsockopt(a,b,c,d,e) (setsockopt)(a,b,c,(const char *)d,(int)e)
+ ^
+ Closes #3155
+
+- configure: remove CURL_CONFIGURE_CURL_SOCKLEN_T
+
+ Follow-up to #3166 which did the cmake part of this. This type/define is
+ not used.
+
+ Closes #3168
+
+- [Ruslan Baratov brought this change]
+
+ cmake: remove unused variables
+
+ Remove variables:
+ * HAVE_SOCKLEN_T
+ * CURL_SIZEOF_CURL_SOCKLEN_T
+ * CURL_TYPEOF_CURL_SOCKLEN_T
+
+ Closes #3166
+
+Michael Kaufmann (25 Oct 2018)
+- urldata: Fix comment in header
+
+ The "connecting" function is used by multiple protocols, not only FTP
+
+- netrc: free temporary strings if memory allocation fails
+
+ - Change the inout parameters after all needed memory has been
+ allocated. Do not change them if something goes wrong.
+ - Free the allocated temporary strings if strdup() fails.
+
+ Closes #3122
+
+Daniel Stenberg (24 Oct 2018)
+- [Ruslan Baratov brought this change]
+
+ config: Remove unused SIZEOF_VOIDP
+
+ Closes #3162
+
+- RELEASE-NOTES: synced
+
+GitHub (23 Oct 2018)
+- [Gisle Vanem brought this change]
+
+ Fix for compiling with lwIP (3)
+
+ lwIP on Windows does not have a WSAIoctl() function.
+ But it do have a SO_SNDBUF option to lwip_setsockopt(). But it currently does nothing.
+
+Daniel Stenberg (23 Oct 2018)
+- Curl_follow: return better errors on URL problems
+
+ ... by making the converter function global and accessible.
+
+ Closes #3153
+
+- Curl_follow: remove remaining free(newurl)
+
+ Follow-up to 05564e750e8f0c. This function no longer frees the passed-in
+ URL.
+
+ Reported-by: Michael Kaufmann
+ Bug: https://github.com/curl/curl/commit/05564e750e8f0c79016c680f301ce251e6e86155#commitcomm
+ ent-30985666
+
+Daniel Gustafsson (23 Oct 2018)
+- headers: end all headers with guard comment
+
+ Most headerfiles end with a /* <headerguard> */ comment, but it was
+ missing from some. The comment isn't the most important part of our
+ code documentation but consistency has an intrinsic value in itself.
+ This adds header guard comments to the files that were lacking it.
+
+ Closes #3158
+ Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+Jay Satiro (23 Oct 2018)
+- CIPHERS.md: Mention the options used to set TLS 1.3 ciphers
+
+ Closes https://github.com/curl/curl/pull/3159
+
+Daniel Stenberg (20 Oct 2018)
+- docs/BUG-BOUNTY: the sponsors actually decide the amount
+
+ Retract the previous approach as the sponsors will be the ones to set the
+ final amounts.
+
+ Closes #3152
+ [ci skip]
+
+- multi: avoid double-free
+
+ Curl_follow() no longer frees the string. Make sure it happens in the
+ caller function, like we normally handle allocations.
+
+ This bug was introduced with the use of the URL API internally, it has
+ never been in a release version
+
+ Reported-by: Dario Weißer
+ Closes #3149
+
+- multi: make the closure handle "inherit" CURLOPT_NOSIGNAL
+
+ Otherwise, closing that handle can still cause surprises!
+
+ Reported-by: Martin Ankerl
+ Fixes #3138
+ Closes #3147
+
+Marcel Raad (19 Oct 2018)
+- VS projects: add USE_IPV6
+
+ The Visual Studio builds didn't use IPv6. Add it to all projects since
+ Visual Studio 2008, which is verified to build via AppVeyor.
+
+ Closes https://github.com/curl/curl/pull/3137
+
+- config_win32: enable LDAPS
+
+ As done in the autotools and CMake builds by default.
+
+ Closes https://github.com/curl/curl/pull/3137
+
+Daniel Stenberg (18 Oct 2018)
+- travis: add build for "configure --disable-verbose"
+
+ Closes #3144
+
+Kamil Dudka (17 Oct 2018)
+- tool_cb_hdr: handle failure of rename()
+
+ Detected by Coverity.
+
+ Closes #3140
+ Reviewed-by: Jay Satiro
+
+Daniel Stenberg (17 Oct 2018)
+- RELEASE-NOTES: synced
+
+- docs/SECURITY-PROCESS: the hackerone IBB program drops curl
+
+ ... now there's only BountyGraph.
+
+Jay Satiro (16 Oct 2018)
+- [Matthew Whitehead brought this change]
+
+ x509asn1: Fix SAN IP address verification
+
+ For IP addresses in the subject alternative name field, the length
+ of the IP address (and hence the number of bytes to perform a
+ memcmp on) is incorrectly calculated to be zero. The code previously
+ subtracted q from name.end. where in a successful case q = name.end
+ and therefore addrlen equalled 0. The change modifies the code to
+ subtract name.beg from name.end to calculate the length correctly.
+
+ The issue only affects libcurl with GSKit SSL, not other SSL backends.
+ The issue is not a security issue as IP verification would always fail.
+
+ Fixes #3102
+ Closes #3141
+
+Daniel Gustafsson (15 Oct 2018)
+- INSTALL: mention mesalink in TLS section
+
+ Commit 57348eb97d1b8fc3742e02c6587d2d02ff592da5 added support for the
+ MesaLink vtls backend, but missed updating the TLS section containing
+ supported backends in the docs.
+
+ Closes #3134
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+Marcel Raad (14 Oct 2018)
+- nonblock: fix unused parameter warning
+
+ If USE_BLOCKING_SOCKETS is defined, curlx_nonblock's arguments are not
+ used.
+
+Michael Kaufmann (13 Oct 2018)
+- Curl_follow: Always free the passed new URL
+
+ Closes #3124
+
+Viktor Szakats (12 Oct 2018)
+- replace rawgit links [ci skip]
+
+ Ref: https://rawgit.com/ "RawGit has reached the end of its useful life"
+ Ref: https://news.ycombinator.com/item?id=18202481
+ Closes https://github.com/curl/curl/pull/3131
+
+Daniel Stenberg (12 Oct 2018)
+- docs/BUG-BOUNTY.md: for vulns published since Aug 1st 2018
+
+ [ci skip]
+
+- travis: make distcheck scan for BOM markers
+
+ and remove BOM from projects/wolfssl_override.props
+
+ Closes #3126
+
+Marcel Raad (11 Oct 2018)
+- CMake: remove BOM
+
+ Accidentally aded in commit 1bb86057ff07083deeb0b00f8ad35879ec4d03ea.
+
+ Reported-by: Viktor Szakats
+ Ref: https://github.com/curl/curl/pull/3120#issuecomment-428673136
+
+Daniel Gustafsson (10 Oct 2018)
+- transfer: fix typo in comment
+
+Michael Kaufmann (10 Oct 2018)
+- docs: add "see also" links for SSL options
+
+ - link TLS 1.2 and TLS 1.3 options
+ - link proxy and non-proxy options
+
+ Closes #3121
+
+Marcel Raad (10 Oct 2018)
+- AppVeyor: remove BDIR variable that sneaked in again
+
+ Removed in ae762e1abebe3a5fe75658583c85059a0957ef6e, accidentally added
+ again in 9f3be5672dc4dda30ab43e0152e13d714a84d762.
+
+- CMake: disable -Wpedantic-ms-format
+
+ As done in the autotools build. This is required for MinGW, which
+ supports only %I64 for printing 64-bit values, but warns about it.
+
+ Closes https://github.com/curl/curl/pull/3120
+
+Viktor Szakats (9 Oct 2018)
+- ldap: show precise LDAP call in error message on Windows
+
+ Also add a unique but common text ('bind via') to make it
+ easy to grep this specific failure regardless of platform.
+
+ Ref: https://github.com/curl/curl/pull/878/files#diff-7a636f08047c4edb53a240f540b4ecf6R468
+ Closes https://github.com/curl/curl/pull/3118
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+ Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
+
+Daniel Stenberg (9 Oct 2018)
+- docs/DEPRECATE: minor reformat to render nicer on web
+
+Daniel Gustafsson (9 Oct 2018)
+- CURLOPT_SSL_VERIFYSTATUS: Fix typo
+
+ Changes s/OSCP/OCSP/ and bumps the copyright year due to the change.
+
+Marcel Raad (9 Oct 2018)
+- curl_setup: define NOGDI on Windows
+
+ This avoids an ERROR macro clash between <wingdi.h> and <arpa/tftp.h>
+ on MinGW.
+
+ Closes https://github.com/curl/curl/pull/3113
+
+- Windows: fixes for MinGW targeting Windows Vista
+
+ Classic MinGW has neither InitializeCriticalSectionEx nor
+ GetTickCount64, independent of the target Windows version.
+
+ Closes https://github.com/curl/curl/pull/3113
+
+Daniel Stenberg (8 Oct 2018)
+- TODO: fixed 'API for URL parsing/splitting'
+
+Daniel Gustafsson (8 Oct 2018)
+- KNOWN_BUGS: Fix various typos
+
+ Closes #3112
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+Viktor Szakats (8 Oct 2018)
+- spelling fixes [ci skip]
+
+ as detected by codespell 1.14.0
+
+ Closes https://github.com/curl/curl/pull/3114
+ Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
+
+Daniel Stenberg (8 Oct 2018)
+- RELEASE-NOTES: synced
+
+- curl_ntlm_wb: check aprintf() return codes
+
+ ... when they return NULL we're out of memory and MUST return failure.
+
+ closes #3111
+
+- docs/BUG-BOUNTY: proposed additional docs
+
+ Bug bounty explainer. See https://bountygraph.com/programs/curl
+
+ Closes #3067
+
+- [Rick Deist brought this change]
+
+ hostip: fix check on Curl_shuffle_addr return value
+
+ Closes #3110
+
+- FILE: fix CURLOPT_NOBODY and CURLOPT_HEADER output
+
+ Now FILE transfers send headers to the header callback like HTTP and
+ other protocols. Also made curl_easy_getinfo(...CURLINFO_PROTOCOL...)
+ work for FILE in the callbacks.
+
+ Makes "curl -i file://.." and "curl -I file://.." work like before
+ again. Applied the bold header logic to them too.
+
+ Regression from c1c2762 (7.61.0)
+
+ Reported-by: Shaun Jackman
+ Fixes #3083
+ Closes #3101
+
+Daniel Gustafsson (7 Oct 2018)
+- gskit: make sure to terminate version string
+
+ In case a very small buffer was passed to the version function, it could
+ result in the buffer not being NULL-terminated since strncpy() doesn't
+ guarantee a terminator on an overflowed buffer. Rather than adding code
+ to terminate (and handle zero-sized buffers), move to using snprintf()
+ instead like all the other vtls backends.
+
+ Closes #3105
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+ Reviewed-by: Viktor Szakats <commit@vszakats.net>
+
+- TODO: add LD_PRELOAD support on macOS
+
+ Add DYLD_INSERT_LIBRARIES support to the TODO list. Reported in #2394.
+
+- runtests: skip ld_preload tests on macOS
+
+ The LD_PRELOAD functionality doesn't exist on macOS, so skip any tests
+ requiring it.
+
+ Fixes #2394
+ Closes #3106
+ Reported-by: Github user @jakirkham
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+Marcel Raad (7 Oct 2018)
+- AppVeyor: use Debug builds to run tests
+
+ This enables more tests.
+
+ Closes https://github.com/curl/curl/pull/3104
+
+- AppVeyor: add HTTP_ONLY build
+
+ Closes https://github.com/curl/curl/pull/3104
+
+- AppVeyor: add WinSSL builds
+
+ Use the oldest and latest Windows SDKs for them.
+ Also, remove all but one OpenSSL build.
+
+ Closes https://github.com/curl/curl/pull/3104
+
+- AppVeyor: add remaining Visual Studio versions
+
+ This adds Visual Studio 9 and 10 builds.
+ There's no 64-bit VC9 compiler on AppVeyor, so use it as the Win32
+ build. Also, VC9 cannot be used for running the test suite.
+
+ Closes https://github.com/curl/curl/pull/3104
+
+- AppVeyor: break long line
+
+ Closes https://github.com/curl/curl/pull/3104
+
+- AppVeyor: remove unused BDIR variable
+
+ Closes https://github.com/curl/curl/pull/3104
+
+Daniel Stenberg (6 Oct 2018)
+- test2100: test DoH using IPv4-only
+
+ To make it only send one DoH request and avoid the race condition that
+ could lead to the requests getting sent in reversed order and thus
+ making it hard to compare in the test case.
+
+ Fixes #3107
+ Closes #3108
+
+- tests/FILEFORMAT: mention how to use <fileN> and <stripfileN> too
+
+ [ci skip]
+
+- RELEASE-NOTES: synced
+
+- [Dmitry Kostjuchenko brought this change]
+
+ timeval: fix use of weak symbol clock_gettime() on Apple platforms
+
+ Closes #3048
+
+- doh: keep the IPv4 address in (original) network byte order
+
+ Ideally this will fix the reversed order shown in SPARC tests:
+
+ resp 8: Expected 127.0.0.1 got 1.0.0.127
+
+ Closes #3091
+
+Jay Satiro (5 Oct 2018)
+- INTERNALS.md: wrap lines longer than 79
+
+Daniel Gustafsson (5 Oct 2018)
+- INTERNALS: escape reference to parameter
+
+ The parameter reference <string> was causing rendering issues in the
+ generated HTML page, as <string> isn't a valid HTML tag. Fix by back-
+ tick escaping it.
+
+ Closes #3099
+ Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+- checksrc: handle zero scoped ignore commands
+
+ If a !checksrc! disable command specified to ignore zero errors, it was
+ still added to the ignore block even though nothing was ignored. While
+ there were no blocks ignored that shouldn't be ignored, the processing
+ ended with with a warning:
+
+ <filename>:<line>:<col>: warning: Unused ignore: LONGLINE (UNUSEDIGNORE)
+ /* !checksrc! disable LONGLINE 0 */
+ ^
+ Fix by instead treating a zero ignore as a a badcommand and throw a
+ warning for that one.
+
+ Closes #3096
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+- checksrc: enable strict mode and warnings
+
+ Enable strict and warnings mode for checksrc to ensure we aren't missing
+ anything due to bugs in the checking code. This uncovered a few things
+ which are all fixed in this commit:
+
+ * several variables were used uninitialized
+ * several variables were not defined in the correct scope
+ * the whitelist filehandle was read even if the file didn't exist
+ * the enable_warn() call when a disable counter had expired was passing
+ incorrect variables, but since the checkwarn() call is unlikely to hit
+ (the counter is only decremented to zero on actual ignores) it didn't
+ manifest a problem.
+
+ Closes #3090
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+ Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
+
+Marcel Raad (5 Oct 2018)
+- CMake: suppress MSVC warning C4127 for libtest
+
+ It's issued by older Windows SDKs (prior to version 8.0).
+
+Sergei Nikulov (5 Oct 2018)
+- Merge branch 'dmitrykos-fix_missing_CMake_defines'
+
+- [Dmitry Kostjuchenko brought this change]
+
+ cmake: test and set missed defines during configuration
+
+ Added configuration checks for HAVE_BUILTIN_AVAILABLE and HAVE_CLOCK_GETTIME_MONOTONIC.
+
+ Closes #3097
+
+Marcel Raad (5 Oct 2018)
+- AppVeyor: disable test 500
+
+ It almost always results in
+ "starttransfer vs total: 0.000001 0.000000".
+ I cannot reproduce this locally, so disable it for now.
+
+ Closes https://github.com/curl/curl/pull/3100
+
+- AppVeyor: set custom install prefix
+
+ CMake's default has spaces and in 32-bit mode parentheses, which result
+ in syntax errors in curl-config.
+
+ Closes https://github.com/curl/curl/pull/3100
+
+- AppVeyor: Remove non-SSL non-test builds
+
+ They don't add much value.
+
+ Closes https://github.com/curl/curl/pull/3100
+
+- AppVeyor: run test suite
+
+ Use the preinstalled MSYS2 bash for that.
+ Disable test 1139 as the CMake build doesn't generate curl.1.
+
+ Ref: https://github.com/curl/curl/issues/3070#issuecomment-425922224
+ Closes https://github.com/curl/curl/pull/3100
+
+- AppVeyor: use in-tree build
+
+ Required to run the tests.
+
+ Closes https://github.com/curl/curl/pull/3100
+
+Daniel Stenberg (4 Oct 2018)
+- doh: make sure TTL isn't re-inited by second (discarded?) response
+
+ Closes #3092
+
+- test320: strip out more HTML when comparing
+
+ To make the test case work with different gnutls-serv versions better.
+
+ Reported-by: Kamil Dudka
+ Fixes #3093
+ Closes #3094
+
+Marcel Raad (4 Oct 2018)
+- runtests: use Windows paths for Windows curl
+
+ curl generated by CMake's Visual Studio generator has "Windows" in the
+ version number.
+
+Daniel Stenberg (4 Oct 2018)
+- [Colin Hogben brought this change]
+
+ tests/negtelnetserver.py: fix Python2-ism in neg TELNET server
+
+ Fix problems caused by differences in treatment of bytes objects between
+ python2 and python3.
+
+ Fixes #2929
+ Closes #3080
+
+Daniel Gustafsson (3 Oct 2018)
+- memory: ensure to check allocation results
+
+ The result of a memory allocation should always be checked, as we may
+ run under memory pressure where even a small allocation can fail. This
+ adds checking and error handling to a few cases where the allocation
+ wasn't checked for success. In the ftp case, the freeing of the path
+ variable is moved ahead of the allocation since there is little point
+ in keeping it around across the strdup, and the separation makes for
+ more readable code. In nwlib, the lock is aslo freed in the error path.
+
+ Also bumps the copyright years on affected files.
+
+ Closes #3084
+ Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+- comment: Fix multiple typos in function parameters
+
+ Ensure that the parameters in the comment match the actual names in the
+ prototype.
+
+ Closes #3079
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+- CURLOPT_SSLVERSION.3: fix typos and consistent spelling
+
+ Use TLS vX.Y throughout the document, instead of TLS X.Y, as that was
+ already done in all but a few cases. Also fix a few typos.
+
+ Closes #3076
+ Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+- SECURITY-PROCESS: make links into hyperlinks
+
+ Use proper Markdown hyperlink format for the Bountygraph links in order
+ for the generated website page to be more user friendly. Also link to
+ the sponsors to give them a little extra credit.
+
+ Closes #3082
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+Jay Satiro (3 Oct 2018)
+- CURLOPT_HEADER.3: fix typo
+
+- nss: fix nssckbi module loading on Windows
+
+ - Use .DLL extension instead of .so to load modules on Windows.
+
+ Bug: https://curl.haxx.se/mail/lib-2018-09/0077.html
+ Reported-by: Maxime Legros
+
+ Ref: https://github.com/curl/curl/pull/3016/#issuecomment-423069442
+
+ Closes https://github.com/curl/curl/pull/3086
+
+- data-binary.d: clarify default content-type is x-www-form-urlencoded
+
+ - Advise user that --data-binary sends a default content type of
+ x-www-form-urlencoded, and to have the data treated as arbitrary
+ binary data by the server set the content-type header to octet-stream.
+
+ Ref: https://github.com/curl/curl/pull/2852#issuecomment-426465094
+
+ Closes https://github.com/curl/curl/pull/3085
+
+Marcel Raad (2 Oct 2018)
+- test1299: use single quotes around asterisk
+
+ Ref: https://github.com/curl/curl/issues/1751#issuecomment-321522580
+
+Daniel Stenberg (2 Oct 2018)
+- docs/CIPHERS: mention the colon separation for OpenSSL
+
+ Bug: #3077
+
+- runtests: ignore disabled even when ranges are given
+
+ runtests.pl support running a range of tests, like "44 to 127". Starting
+ now, the code makes sure that even such given ranges will ignore tests
+ that are marked as disabled.
+
+ Disabled tests can still be run by explictly specifying that test
+ number.
+
+ Closes #3075
+
+- urlapi: starting with a drive letter on win32 is not an abs url
+
+ ... and libcurl doesn't support any single-letter URL schemes (if there
+ even exist any) so it should be fairly risk-free.
+
+ Reported-by: Marcel Raad
+
+ Fixes #3070
+ Closes #3071
+
+Marcel Raad (2 Oct 2018)
+- doh: fix curl_easy_setopt argument type
+
+ CURLOPT_POSTFIELDSIZE is long. Fixes a compiler warning on 64-bit
+ MinGW.
+
+Daniel Stenberg (2 Oct 2018)
+- RELEASE-NOTES: synced
+
+Jay Satiro (1 Oct 2018)
+- [Ruslan Baratov brought this change]
+
+ CMake: Improve config installation
+
+ Use 'GNUInstallDirs' standard module to set destinations of installed
+ files.
+
+ Use uppercase "CURL" names instead of lowercase "curl" to match standard
+ 'FindCURL.cmake' CMake module:
+ * https://cmake.org/cmake/help/latest/module/FindCURL.html
+
+ Meaning:
+ * Install 'CURLConfig.cmake' instead of 'curl-config.cmake'
+ * User should call 'find_package(CURL)' instead of 'find_package(curl)'
+
+ Use 'configure_package_config_file' function to generate
+ 'CURLConfig.cmake' file. This will make 'curl-config.cmake.in' template
+ file smaller and handle components better. E.g. current configuration
+ report no error if user specified unknown components (note: new
+ configuration expects no components, report error if user will try to
+ specify any).
+
+ Closes https://github.com/curl/curl/pull/2849
+
+Daniel Stenberg (1 Oct 2018)
+- test1650: make it depend on http/2
+
+ Follow-up to 570008c99da0ccbb as it gets link errors.
+
+ Reported-by: Michael Kaufmann
+ Closes #3068
+
+- [Nate Prewitt brought this change]
+
+ MANUAL: minor grammar fix
+
+ Noticed a typo reading through the docs.
+
+ Closes #3069
+
+- doh: only build if h2 enabled
+
+ The DoH spec says "HTTP/2 [RFC7540] is the minimum RECOMMENDED version
+ of HTTP for use with DoH".
+
+ Reported-by: Marcel Raad
+ Closes #3066
+
+- test2100: require http2 to run
+
+ Reported-by: Marcel Raad
+ Fixes #3064
+ Closes #3065
+
+- multi: fix memory leak in content encoding related error path
+
+ ... a missing multi_done() call.
+
+ Credit to OSS-Fuzz
+ Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10728
+ Closes #3063
+
+- travis: bump the Secure Transport build to use xcode 10
+
+ Due to an issue with travis
+ (https://github.com/travis-ci/travis-ci/issues/9956) we've been using
+ Xcode 9.2 for darwinssl builds for a while. Now xcode 10 is offered as
+ an alternative and as it builds curl+darwinssl fine that seems like a
+ better choice.
+
+ Closes #3062
+
+- [Rich Turner brought this change]
+
+ curl: enabled Windows VT Support and UTF-8 output
+
+ Enabled Console VT support (if running OS supports VT) in tool_main.c.
+
+ Fixes #3008
+ Closes #3011
+
+- multi: fix location URL memleak in error path
+
+ Follow-up to #3044 - fix a leak OSS-Fuzz detected
+ Closes #3057
+
+Sergei Nikulov (28 Sep 2018)
+- cmake: fixed path used in generation of docs/tests during curl build through add_subdicectory(...)
+
+- [Brad King brought this change]
+
+ cmake: Backport to work with CMake 3.0 again
+
+ Changes in commit 7867aaa9a0 (cmake: link curl to the OpenSSL targets
+ instead of lib absolute paths, 2018-07-17) and commit f826b4ce98 (cmake:
+ bumped minimum version to 3.4, 2018-07-19) required CMake 3.4 to fix
+ issue #2746. This broke support for users on older versions of CMake
+ even if they just want to build curl and do not care whether transitive
+ dependencies work.
+
+ Backport the logic to work with CMake 3.0 again by implementing the
+ fix only when the version of CMake is at least 3.4.
+
+Marcel Raad (27 Sep 2018)
+- curl_threads: fix classic MinGW compile break
+
+ Classic MinGW still has _beginthreadex's return type as unsigned long
+ instead of uintptr_t [0]. uintptr_t is not even defined because of [1].
+
+ [0] https://sourceforge.net/p/mingw/mingw-org-wsl/ci/wsl-5.1-release/tree/mingwrt/include/process.h#l167
+ [1] https://sourceforge.net/p/mingw/mingw-org-wsl/ci/wsl-5.1-release/tree/mingwrt/include/process.h#l90
+
+ Bug: https://github.com/curl/curl/issues/2924#issuecomment-424334807
+ Closes https://github.com/curl/curl/pull/3051
+
+Daniel Stenberg (26 Sep 2018)
+- configure: s/AC_RUN_IFELSE/CURL_RUN_IFELSE
+
+ fix a few leftovers
+
+ Fixes #3006
+ Closes #3049
+
+- [Doron Behar brought this change]
+
+ example/htmltidy: fix include paths of tidy libraries
+
+ Closes #3050
+
+- RELEASE-NOTES: synced
+
+- Curl_http2_done: fix memleak in error path
+
+ Free 'header_recvbuf' unconditionally even if 'h2' isn't (yet) set, for
+ early failures.
+
+ Detected by OSS-Fuzz
+
+ Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10669
+ Closes #3046
+
+- http: fix memleak in rewind error path
+
+ If the rewind would fail, a strdup() would not get freed.
+
+ Detected by OSS-Fuzz
+
+ Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10665
+ Closes #3044
+
+Viktor Szakats (24 Sep 2018)
+- test320: fix regression in [ci skip]
+
+ The value in question is coming directly from `gnutls-serv`, so it cannot
+ be modified freely.
+
+ Reported-by: Marcel Raad
+ Ref: https://github.com/curl/curl/commit/6ae6b2a533e8630afbb21f570305bd4ceece6348#commitcomment-30621004
+
+Daniel Stenberg (24 Sep 2018)
+- Curl_retry_request: fix memory leak
+
+ Detected by OSS-Fuzz
+
+ Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10648
+ Closes #3042
+
+- openssl: load built-in engines too
+
+ Regression since 38203f1
+
+ Reported-by: Jean Fabrice
+ Fixes #3023
+ Closes #3040
+
+- [Christian Heimes brought this change]
+
+ OpenSSL: enable TLS 1.3 post-handshake auth
+
+ OpenSSL 1.1.1 requires clients to opt-in for post-handshake
+ authentication.
+
+ Fixes: https://github.com/curl/curl/issues/3026
+ Signed-off-by: Christian Heimes <christian@python.org>
+
+ Closes https://github.com/curl/curl/pull/3027
+
+- [Even Rouault brought this change]
+
+ Curl_dedotdotify(): always nul terminate returned string.
+
+ This fixes potential out-of-buffer access on "file:./" URL
+
+ $ valgrind curl "file:./"
+ ==24516== Memcheck, a memory error detector
+ ==24516== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
+ ==24516== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
+ ==24516== Command: /home/even/install-curl-git/bin/curl file:./
+ ==24516==
+ ==24516== Conditional jump or move depends on uninitialised value(s)
+ ==24516== at 0x4C31F9C: strcmp (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
+ ==24516== by 0x4EBB315: seturl (urlapi.c:801)
+ ==24516== by 0x4EBB568: parseurl (urlapi.c:861)
+ ==24516== by 0x4EBC509: curl_url_set (urlapi.c:1199)
+ ==24516== by 0x4E644C6: parseurlandfillconn (url.c:2044)
+ ==24516== by 0x4E67AEF: create_conn (url.c:3613)
+ ==24516== by 0x4E68A4F: Curl_connect (url.c:4119)
+ ==24516== by 0x4E7F0A4: multi_runsingle (multi.c:1440)
+ ==24516== by 0x4E808E5: curl_multi_perform (multi.c:2173)
+ ==24516== by 0x4E7558C: easy_transfer (easy.c:686)
+ ==24516== by 0x4E75801: easy_perform (easy.c:779)
+ ==24516== by 0x4E75868: curl_easy_perform (easy.c:798)
+
+ Was originally spotted by
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10637
+ Credit to OSS-Fuzz
+
+ Closes #3039
+
+Viktor Szakats (23 Sep 2018)
+- update URLs in tests
+
+ - and one in docs/MANUAL as well
+
+ Closes https://github.com/curl/curl/pull/3038
+
+- whitespace fixes
+
+ - replace tabs with spaces where possible
+ - remove line ending spaces
+ - remove double/triple newlines at EOF
+ - fix a non-UTF-8 character
+ - cleanup a few indentations/line continuations
+ in manual examples
+
+ Closes https://github.com/curl/curl/pull/3037
+
+Daniel Stenberg (23 Sep 2018)
+- http: add missing return code check
+
+ Detected by Coverity. CID 1439610.
+
+ Follow-up from 46e164069d1a523
+
+ Closes #3034
+
+- ftp: don't access pointer before NULL check
+
+ Detected by Coverity. CID 1439611.
+
+ Follow-up from 46e164069d1a523
+
+- unit1650: fix out of boundary access
+
+ Fixes #2987
+ Closes #3035
+
+Viktor Szakats (23 Sep 2018)
+- docs/examples: URL updates
+
+ - also update two URLs outside of docs/examples
+ - fix spelling of filename persistant.c
+ - fix three long lines that started failing checksrc.pl
+
+ Closes https://github.com/curl/curl/pull/3036
+
+- examples/Makefile.m32: sync with core [ci skip]
+
+ also:
+ - fix two warnings in synctime.c (one of them Windows-specific)
+ - upgrade URLs in synctime.c and remove a broken one
+
+ Closes https://github.com/curl/curl/pull/3033
+
+Daniel Stenberg (22 Sep 2018)
+- examples/parseurl.c: show off the URL API a bit
+
+ Closes #3030
+
+- SECURITY-PROCESS: mention the bountygraph program [ci skip]
+
+ Closes #3032
+
+- url: use the URL API internally as well
+
+ ... to make it a truly unified URL parser.
+
+ Closes #3017
+
+Viktor Szakats (22 Sep 2018)
+- URL and mailmap updates, remove an obsolete directory [ci skip]
+
+ Closes https://github.com/curl/curl/pull/3031
+
+Daniel Stenberg (22 Sep 2018)
+- RELEASE-NOTES: synced
+
+- configure: force-use -lpthreads on HPUX
+
+ When trying to detect pthreads use on HPUX the checks will succeed
+ without the correct -l option but then end up failing at run-time.
+
+ Reported-by: Eason-Yu on github
+ Fixes #2697
+ Closes #3025
+
+- [Erik Minekus brought this change]
+
+ Curl_saferealloc: Fixed typo in docblock
+
+ Closes #3029
+
+- urlapi: fix support for address scope in IPv6 numerical addresses
+
+ Closes #3024
+
+- [Loganaden Velvindron brought this change]
+
+ GnutTLS: TLS 1.3 support
+
+ Closes #2971
+
+- TODO: c-ares and CURLOPT_OPENSOCKETFUNCTION
+
+ Removed DoH.
+
+ Closes #2734
+
+Jay Satiro (20 Sep 2018)
+- vtls: fix ssl version "or later" behavior change for many backends
+
+ - Treat CURL_SSLVERSION_MAX_NONE the same as
+ CURL_SSLVERSION_MAX_DEFAULT. Prior to this change NONE would mean use
+ the minimum version also as the maximum.
+
+ This is a follow-up to 6015cef which changed the behavior of setting
+ the SSL version so that the requested version would only be the minimum
+ and not the maximum. It appears it was (mostly) implemented in OpenSSL
+ but not other backends. In other words CURL_SSLVERSION_TLSv1_0 used to
+ mean use just TLS v1.0 and now it means use TLS v1.0 *or later*.
+
+ - Fix CURL_SSLVERSION_MAX_DEFAULT for OpenSSL.
+
+ Prior to this change CURL_SSLVERSION_MAX_DEFAULT with OpenSSL was
+ erroneously treated as always TLS 1.3, and would cause an error if
+ OpenSSL was built without TLS 1.3 support.
+
+ Co-authored-by: Daniel Gustafsson
+
+ Fixes https://github.com/curl/curl/issues/2969
+ Closes https://github.com/curl/curl/pull/3012
+
+Daniel Stenberg (20 Sep 2018)
+- certs: generate tests certs with sha256 digest algorithm
+
+ As OpenSSL 1.1.1 starts to complain and fail on sha1 CAs:
+
+ "SSL certificate problem: CA signature digest algorithm too weak"
+
+ Closes #3014
+
+- urlapi: document the error codes, remove two unused ones
+
+ Assisted-by: Daniel Gustafsson
+ Closes #3019
+
+- urlapi: add CURLU_GUESS_SCHEME and fix hostname acceptance
+
+ In order for this API to fully work for libcurl itself, it now offers a
+ CURLU_GUESS_SCHEME flag that makes it "guess" scheme based on the host
+ name prefix just like libcurl always did. If there's no known prefix, it
+ will guess "http://".
+
+ Separately, it relaxes the check of the host name so that IDN host names
+ can be passed in as well.
+
+ Both these changes are necessary for libcurl itself to use this API.
+
+ Assisted-by: Daniel Gustafsson
+ Closes #3018
+
+Kamil Dudka (19 Sep 2018)
+- nss: try to connect even if libnssckbi.so fails to load
+
+ One can still use CA certificates stored in NSS database.
+
+ Reported-by: Maxime Legros
+ Bug: https://curl.haxx.se/mail/lib-2018-09/0077.html
+
+ Closes #3016
+
+Daniel Gustafsson (19 Sep 2018)
+- urlapi: don't set value which is never read
+
+ In the CURLUPART_URL case, there is no codepath which invokes url
+ decoding so remove the assignment of the urldecode variable. This
+ fixes the deadstore bug-report from clang static analysis.
+
+ Closes #3015
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+- todo: Update reference to already done item
+
+ TODO item 1.1 was implemented in commit 946ce5b61f, update reference
+ to it with instead referencing the implemented option.
+
+ Closes #3013
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+Daniel Stenberg (18 Sep 2018)
+- RELEASE-NOTES: synced
+
+- [slodki brought this change]
+
+ cmake: don't require OpenSSL if USE_OPENSSL=OFF
+
+ User must have OpenSSL installed even if not used by libcurl at all
+ since 7.61.1 release. Broken at
+ 7867aaa9a01decf93711428462335be8cef70212
+
+ Reviewed-by: Sergei Nikulov
+ Closes #3001
+
+- curl_multi_wait: call getsock before figuring out timeout
+
+ .... since getsock may update the expiry timer.
+
+ Fixes #2996
+ Closes #3000
+
+- examples/http2-pushinmemory: receive HTTP/2 pushed files in memory
+
+ Closes #3004
+
+Daniel Gustafsson (18 Sep 2018)
+- darwinssl: Fix realloc memleak
+
+ The reallocation was using the input pointer for the return value, which
+ leads to a memory leak on reallication failure. Fix by instead use the
+ safe internal API call Curl_saferealloc().
+
+ Closes #3005
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+ Reviewed-by: Nick Zitzmann <nickzman@gmail.com>
+
+- [Kruzya brought this change]
+
+ examples: Fix memory leaks from realloc errors
+
+ Make sure to not overwrite the reallocated pointer in realloc() calls
+ to avoid a memleak on memory errors.
+
+- memory: add missing curl_printf header
+
+ ftp_send_command() was using vsnprintf() without including the libcurl
+ *rintf() replacement header. Fix by including curl_printf.h and also
+ add curl_memory.h while at it since memdebug.h depends on it.
+
+ Closes #2999
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+Daniel Stenberg (16 Sep 2018)
+- [Si brought this change]
+
+ curl: update --tlsv* descriptions in --help output
+
+ Closes #2994
+
+- http: made Curl_add_buffer functions take a pointer-pointer
+
+ ... so that they can clear the original pointer on failure, which makes
+ the error-paths and their cleanups easier.
+
+ Closes #2992
+
+- http2: fix memory leaks on error-path
+
+- [Rikard Falkeborn brought this change]
+
+ libtest: Add chkdecimalpoint to .gitignore
+
+ Closes #2998
+
+Viktor Szakats (14 Sep 2018)
+- secure Openwall URLs
+
+Daniel Stenberg (14 Sep 2018)
+- openssl: show "proper" version number for libressl builds
+
+ Closes #2989
+
+- [Rainer Jung brought this change]
+
+ openssl: assume engine support in 0.9.8 or later
+
+ Fixes #2983
+ Closes #2988
+
+Daniel Gustafsson (13 Sep 2018)
+- sendf: use failf() rather than Curl_failf()
+
+ The failf() macro is the name used for invoking Curl_failf(). While
+ there isn't a way to turn off failf like there is for infof, but it's
+ still a good idea to use the macro.
+
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+- sendf: Fix whitespace in infof/failf concatenation
+
+ Strings broken on multiple rows in the .c file need to have appropriate
+ whitespace padding on either side of the concatenation point to render
+ a correct amalgamated string. Fix by adding a space at the occurrences
+ found.
+
+ Closes #2986
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+- krb5: fix memory leak in krb_auth
+
+ The FTP command allocated by aprintf() must be freed after usage.
+
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+- ftp: include command in Curl_ftpsend sendbuffer
+
+ Commit 8238ba9c5f10414a88f502bf3f5d5a42d632984c inadvertently removed
+ the actual command to be sent from the send buffer in a refactoring.
+ Add back copying the command into the buffer. Also add more guards
+ against malformed input while at it.
+
+ Closes #2985
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+- ntlm_wb: Fix memory leaks in ntlm_wb_response
+
+ When erroring out on a request being too large, the existing buffer was
+ leaked. Fix by explicitly freeing on the way out.
+
+ Closes #2966
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+Daniel Stenberg (13 Sep 2018)
+- [Yiming Jing brought this change]
+
+ travis: build the MesaLink vtls backend with MesaLink 0.7.1
+
+- [Yiming Jing brought this change]
+
+ runtests.pl: run tests against the MesaLink vtls backend
+
+- [Yiming Jing brought this change]
+
+ vtls: add a MesaLink vtls backend
+
+ Closes #2984
+
+- [Yiming Jing brought this change]
+
+ configure.ac: add a MesaLink vtls backend
+
+- [Dave Reisner brought this change]
+
+ curl_url_set.3: properly escape \n in example code
+
+ This yields
+
+ "the scheme is %s\n"
+
+ instead of
+
+ "the scheme is %s0
+
+ Closes #2970
+
+- [Dave Reisner brought this change]
+
+ curl_url_set.3: fix typo in reference to CURLU_APPENDQUERY
+
+- urlglob: improve error message
+
+ to help user understand what the problem is
+
+ Reported-by: Daniel Shahaf
+
+ Fixes #2763
+ Closes #2977
+
+- [Yiming Jing brought this change]
+
+ tests/certs: rebuild certs with 2048-bit RSA keys
+
+ The previous test certificates contained RSA keys of only 1024 bits.
+ However, RSA claims that 1024-bit RSA keys are likely to become
+ crackable some time before 2010. The NIST recommends at least 2048-bit
+ keys for RSA for now.
+
+ Better use full 2048 also for testing.
+
+ Closes #2973
+
+Daniel Gustafsson (12 Sep 2018)
+- TODO: fix typo in item
+
+ Closes #2968
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+
+Marcel Raad (12 Sep 2018)
+- anyauthput: fix compiler warning on 64-bit Windows
+
+ On Windows, the read function from <io.h> is used, which has its byte
+ count parameter as unsigned int instead of size_t.
+
+ Closes https://github.com/curl/curl/pull/2972
+
+Viktor Szakats (12 Sep 2018)
+- lib: fix gcc8 warning on Windows
+
+ Closes https://github.com/curl/curl/pull/2979
+
+Jay Satiro (12 Sep 2018)
+- openssl: fix gcc8 warning
+
+ - Use memcpy instead of strncpy to copy a string without termination,
+ since gcc8 warns about using strncpy to copy as many bytes from a
+ string as its length.
+
+ Suggested-by: Viktor Szakats
+
+ Closes https://github.com/curl/curl/issues/2980
+
+Daniel Stenberg (10 Sep 2018)
+- libcurl-url.3: overview man page for the URL API
+
+ Closes #2967
+
+- example/asiohiper: insert warning comment about its status
+
+ This example is simply not working correctly but there's nobody around
+ with the skills and energy to fix it.
+
+ Closes #2407
+
+Kamil Dudka (10 Sep 2018)
+- docs/cmdline-opts: update the documentation of --tlsv1.0
+
+ ... to reflect the changes in 6015cefb1b2cfde4b4850121c42405275e5e77d9
+
+ Closes #2955
+
+- docs/examples: do not wait when no transfers are running
+
+ Closes #2948
+
+Daniel Stenberg (10 Sep 2018)
+- [Daniel Gustafsson brought this change]
+
+ cookies: Move failure case label to end of function
+
+ Rather than jumping backwards to where failure cleanup happens
+ to be performed, move the failure case to end of the function
+ where it is expected per existing coding convention.
+
+ Closes #2965
+
+- [Daniel Gustafsson brought this change]
+
+ misc: fix typos in comments
+
+ Closes #2963
+
+- [Daniel Gustafsson brought this change]
+
+ cookies: fix leak when writing cookies to file
+
+ If the formatting fails, we error out on a fatal error and
+ clean up on the way out. The array was however freed within
+ the wrong scope and was thus never freed in case the cookies
+ were written to a file instead of STDOUT.
+
+ Closes #2957
+
+- [Daniel Gustafsson brought this change]
+
+ cookies: Remove redundant expired check
+
+ Expired cookies have already been purged at a later expiration time
+ before this check, so remove the redundant check.
+
+ closes #2962
+
+- ntlm_wb: bail out if the response gets overly large
+
+ Exit the realloc() loop if the response turns out ridiculously large to
+ avoid worse problems.
+
+ Reported-by: Harry Sintonen
+ Closes #2959
+
+- [Daniel Gustafsson brought this change]
+
+ url.c: fix comment typo and indentation
+
+ Closes #2960
+
+- urlapi: avoid derefencing a possible NULL pointer
+
+ Coverity CID 1439134
+
+- RELEASE-NOTES: synced
+
+Marcel Raad (8 Sep 2018)
+- test324: fix after 3f3b26d6feb0667714902e836af608094235fca2
+
+ The expected error code is now 60. 51 is dead.
+
+Daniel Stenberg (8 Sep 2018)
+- curl_url_set.3: correct description
+
+- curl_url-docs: fix AVAILABILITY as Added in curl 7.62.0
+
+- URL-API
+
+ See header file and man pages for API. All documented API details work
+ and are tested in the 1560 test case.
+
+ Closes #2842
+
+- curl_easy_upkeep: removed 'conn' from the name
+
+ ... including the associated option.
+
+ Fixes #2951
+ Closes #2952
+
+- [Max Dymond brought this change]
+
+ upkeep: add a connection upkeep API: curl_easy_conn_upkeep()
+
+ Add functionality so that protocols can do custom keepalive on their
+ connections, when an external API function is called.
+
+ Add docs for the new options in 7.62.0
+
+ Closes #1641
+
+- [Philipp Waehnert brought this change]
+
+ configure: add option to disable automatic OpenSSL config loading
+
+ Sometimes it may be considered a security risk to load an external
+ OpenSSL configuration automatically inside curl_global_init(). The
+ configuration option --disable-ssl-auto-load-config disables this
+ automatism. The Windows build scripts winbuild/Makefile.vs provide a
+ corresponding option ENABLE_SSL_AUTO_LOAD_CONFIG accepting a boolean
+ value.
+
+ Setting neither of these options corresponds to the previous behavior
+ loading the external OpenSSL configuration automatically.
+
+ Fixes #2724
+ Closes #2791
+
+- doh: minor edits to please Coverity
+
+ The gcc typecheck macros and coverity combined made it warn on the 2nd
+ argument for ERROR_CHECK_SETOPT(). Here's minor rearrange to please it.
+
+ Coverity CID 1439115 and CID 1439114.
+
+- schannel: avoid switch-cases that go to default anyway
+
+ SEC_E_APPLICATION_PROTOCOL_MISMATCH isn't defined in some versions of
+ mingw and would require an ifdef otherwise.
+
+ Reported-by: Thomas Glanzmann
+ Approved-by: Marc Hörsken
+ Bug: https://curl.haxx.se/mail/lib-2018-09/0020.html
+ Closes #2950
+
+- [Nicklas Avén brought this change]
+
+ imap: change from "FETCH" to "UID FETCH"
+
+ ... and add "MAILINDEX".
+
+ As described in #2789, this is a suggested solution. Changing UID=xx to
+ actually get mail with UID xx and add "MAILINDEX" to get a mail with a
+ special index in the mail box (old behavior). So MAILINDEX=1 gives the
+ first non deleted mail in the mail box.
+
+ Fixes #2789
+ Closes #2815
+
+- CURLOPT_UPLOAD_BUFFERSIZE: set upload buffer size
+
+ This is step 3 of #2888.
+
+ Fixes #2888
+ Closes #2896
+
+- travis: add the DOH tests to the torture testing
+
+- DOH: add test case 1650 and 2100
+
+- curl: --doh-url added
+
+- setopt: add CURLOPT_DOH_URL
+
+ Closes #2668
+
+- [Han Han brought this change]
+
+ ssl: deprecate CURLE_SSL_CACERT in favour of a unified error code
+
+ Long live CURLE_PEER_FAILED_VERIFICATION
+
+- [Han Han brought this change]
+
+ x509asn1: return CURLE_PEER_FAILED_VERIFICATION on failure to parse cert
+
+ CURLE_PEER_FAILED_VERIFICATION makes more sense because Curl_parseX509
+ does not allocate memory internally as its first argument is a pointer
+ to the certificate structure. The same error code is also returned by
+ Curl_verifyhost when its call to Curl_parseX509 fails so the change
+ makes error handling more consistent.
+
+- [Han Han brought this change]
+
+ openssl: return CURLE_PEER_FAILED_VERIFICATION on failure to parse issuer
+
+ Failure to extract the issuer name from the server certificate should
+ return a more specific error code like on other TLS backends.
+
+- [Han Han brought this change]
+
+ schannel: unified error code handling
+
+ Closes #2901
+
+- [Han Han brought this change]
+
+ darwinssl: more specific and unified error codes
+
+ Closes #2901
+
+- CURLOPT_DNS_USE_GLOBAL_CACHE: deprecated
+
+ Disable the CURLOPT_DNS_USE_GLOBAL_CACHE option and mark it for
+ deprecation and complete removal in six months.
+
+ Bug: https://curl.haxx.se/mail/lib-2018-09/0010.html
+ Closes #2942
+
+- url: default to CURL_HTTP_VERSION_2TLS if built h2-enabled
+
+ Closes #2709
+
+- multiplex: enable by default
+
+ Starting 7.62.0, multiplexing is enabled by default in multi handles.
+
+- [Jim Fuller brought this change]
+
+ tests: add unit tests for url.c
+
+ Approved-by: Daniel Gustafsson
+ Closes #2937
+
+- test1452: mark as flaky
+
+ makes it not run in the CI builds
+
+ Closes #2941
+
+- pipelining: deprecated
+
+ Transparently. The related curl_multi_setopt() options all still returns
+ OK when pipelining is selected.
+
+ To re-enable the support, the single line change in lib/multi.c needs to
+ be reverted.
+
+ See docs/DEPRECATE.md
+
+ Closes #2705
+
+- RELEASE-NOTES: start working on 7.62.0
+
Version 7.61.1 (4 Sep 2018)
Daniel Stenberg (4 Sep 2018)
@@ -5544,1653 +7290,3 @@ Daniel Stenberg (2 Dec 2017)
- RELEASE-NOTES: synced with af8cc7a69
- curlver: towards 7.57.1
-
-- [W. Mark Kubacki brought this change]
-
- lib: don't export all symbols, just everything curl_*
-
- Absent any 'symbol map' or script to limit what gets exported, static
- linking of libraries previously resulted in a libcurl with curl's and
- those other symbols being (re-)exported.
-
- This did not happen if 'versioned symbols' were enabled (which is not
- the default) because then a version script is employed.
-
- This limits exports to everything starting in 'curl_*'., which is
- what "libcurl.vers" exports.
-
- This avoids strange side-effects such as with mixing methods
- from system libraries and those erroneously offered by libcurl.
-
- Closes #2127
-
-- [Johannes Schindelin brought this change]
-
- SSL: Avoid magic allocation of SSL backend specific data
-
- Originally, my idea was to allocate the two structures (or more
- precisely, the connectdata structure and the four SSL backend-specific
- strucutres required for ssl[0..1] and proxy_ssl[0..1]) in one go, so
- that they all could be free()d together.
-
- However, getting the alignment right is tricky. Too tricky.
-
- So let's just bite the bullet and allocate the SSL backend-specific
- data separately.
-
- As a consequence, we now have to be very careful to release the memory
- allocated for the SSL backend-specific data whenever we release any
- connectdata.
-
- Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
-
- Closes #2119
-
-- examples/xmlstream.c: don't switch off CURL_GLOBAL_SSL
-
- Reported-by: Dima Tisnek
-
-- travis: add boringssl build
-
- Uses a separate build without --enable-debug and no valgrind.
-
- The debug option causes far too many warnings in boringssl's headers
- (C++ comments, trailing commas etc). Valgrind triggers some false
- positive errors in thread-local data used by boringssl.
-
- Closes #2118
-
-Version 7.57.0 (29 Nov 2017)
-
-Daniel Stenberg (29 Nov 2017)
-- RELEASE-NOTES: curl 7.57.0
-
-- THANKS: added contributors from 7.57.0 release
-
-- openssl: fix boringssl build again
-
- commit d3ab7c5a21e broke the boringssl build since it doesn't have
- RSA_flags(), so we disable that code block for boringssl builds.
-
- Reported-by: W. Mark Kubacki
- Fixes #2117
-
-- curl_ntlm_core.c: use the limits.h's SIZE_T_MAX if provided
-
-- libcurl-share.3: the connection cache is shareable now
-
-- global_init: ignore CURL_GLOBAL_SSL's absense
-
- This bit is no longer used. It is not clear what it meant for users to
- "init the TLS" in a world with different TLS backends and since the
- introduction of multissl, libcurl didn't properly work if inited without
- this bit set.
-
- Not a single user responded to the call for users of it:
- https://curl.haxx.se/mail/lib-2017-11/0072.html
-
- Reported-by: Evgeny Grin
- Assisted-by: Jay Satiro
-
- Fixes #2089
- Fixes #2083
- Closes #2107
-
-- ntlm: avoid integer overflow for malloc size
-
- Reported-by: Alex Nichols
- Assisted-by: Kamil Dudka and Max Dymond
-
- CVE-2017-8816
-
- Bug: https://curl.haxx.se/docs/adv_2017-11e7.html
-
-- wildcardmatch: fix heap buffer overflow in setcharset
-
- The code would previous read beyond the end of the pattern string if the
- match pattern ends with an open bracket when the default pattern
- matching function is used.
-
- Detected by OSS-Fuzz:
- https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4161
-
- CVE-2017-8817
-
- Bug: https://curl.haxx.se/docs/adv_2017-ae72.html
-
-- [Jay Satiro brought this change]
-
- url: fix alignment of ssl_backend_data struct
-
- - Align the array of ssl_backend_data on a max 32 byte boundary.
-
- 8 is likely to be ok but I went with 32 for posterity should one of
- the ssl_backend_data structs change to contain a larger sized variable
- in the future.
-
- Prior to this change (since dev 70f1db3, release 7.56) the connectdata
- structure was undersized by 4 bytes in 32-bit builds with ssl enabled
- because long long * was mistakenly used for alignment instead of
- long long, with the intention being an 8 byte boundary. Also long long
- may not be an available type.
-
- The undersized connectdata could lead to oob read/write past the end in
- what was expected to be the last 4 bytes of the connection's secondary
- socket https proxy ssl_backend_data struct (the secondary socket in a
- connection is used by ftp, others?).
-
- Closes https://github.com/curl/curl/issues/2093
-
- CVE-2017-8818
-
- Bug: https://curl.haxx.se/docs/adv_2017-af0a.html
-
-- ssh: remove check for a NULL pointer (!)
-
- With this check present, scan-build warns that we might dereference this
- point in other places where it isn't first checked for NULL. Thus, if it
- *can* be NULL we have a problem on a few places. However, this pointer
- should not be possible to be NULL here so I remove the check and thus
- also three different scan-build warnings.
-
- Closes #2111
-
-- [Matthew Kerwin brought this change]
-
- test: add test for bad UNC/SMB path in file: URL
-
-- [Matthew Kerwin brought this change]
-
- test: add tests to ensure basic file: URLs
-
-- [Matthew Kerwin brought this change]
-
- URL: update "file:" URL handling
-
- * LOTS of comment updates
- * explicit error for SMB shares (e.g. "file:////share/path/file")
- * more strict handling of authority (i.e. "//localhost/")
- * now accepts dodgy old "C:|" drive letters
- * more precise handling of drive letters in and out of Windows
- (especially recognising both "file:c:/" and "file:/c:/")
-
- Closes #2110
-
-- metalink: fix memory-leak and NULL pointer dereference
-
- Reported by scan-build
-
- Closes #2109
-
-- [Alessandro Ghedini brought this change]
-
- connect: add support for new TCP Fast Open API on Linux
-
- The new API added in Linux 4.11 only requires setting a socket option
- before connecting, without the whole sento() machinery.
-
- Notably, this makes it possible to use TFO with SSL connections on Linux
- as well, without the need to mess around with OpenSSL (or whatever other
- SSL library) internals.
-
- Closes #2056
-
-- make: fix "make distclean"
-
- Fixes #2097
- Closes #2108
-
-- RELEASE-NOTES: synced with 31f18d272
-
-Jay Satiro (23 Nov 2017)
-- connect: improve the bind error message
-
- eg consider a non-existent interface eth8, curl --interface eth8
-
- Before: curl: (45) Could not resolve host: eth8
- After: curl: (45) Couldn't bind to 'eth8'
-
- Bug: https://github.com/curl/curl/issues/2104
- Reported-by: Alfonso Martone
-
-Daniel Stenberg (23 Nov 2017)
-- examples/rtsp: clear RANGE again after use
-
- Fixes #2106
- Reported-by: youngchopin on github
-
-- [Michael Kaufmann brought this change]
-
- test1264: verify URL with space in host name being rejected
-
-- url: reject ASCII control characters and space in host names
-
- Host names like "127.0.0.1 moo" would otherwise be accepted by some
- getaddrinfo() implementations.
-
- Updated test 1034 and 1035 accordingly.
-
- Fixes #2073
- Closes #2092
-
-- Curl_open: fix OOM return error correctly
-
- Closes #2098
-
-- http2: fix "Value stored to 'end' is never read" scan-build error
-
-- http2: fix "Value stored to 'hdbuf' is never read" scan-build error
-
-- openssl: fix "Value stored to 'rc' is never read" scan-build error
-
-- mime: fix "Value stored to 'sz' is never read" scan-build error
-
-- Curl_llist_remove: fix potential NULL pointer deref
-
- Fixes a scan-build warning.
-
-- ntlm: remove unnecessary NULL-check to please scan-build
-
-- BUGS: spellchecked
-
-Jay Satiro (18 Nov 2017)
-- [fmmedeiros brought this change]
-
- examples/curlx: Fix code style
-
- - Add braces around multi-line if statement.
-
- Closes https://github.com/curl/curl/pull/2096
-
-Daniel Stenberg (17 Nov 2017)
-- resolve: allow IP address within [] brackets
-
- ... so that IPv6 addresses can be passed like they can for connect-to
- and how they're used in URLs.
-
- Added test 1324 to verify
- Reported-by: Alex Malinovich
-
- Fixes #2087
- Closes #2091
-
-- [Pavol Markovic brought this change]
-
- macOS: Fix missing connectx function with Xcode version older than 9.0
-
- The previous fix https://github.com/curl/curl/pull/1788 worked just for
- Xcode 9. This commit extends the fix to older Xcode versions effectively
- by not using connectx function.
-
- Fixes https://github.com/curl/curl/issues/1330
- Fixes https://github.com/curl/curl/issues/2080
- Closes https://github.com/curl/curl/pull/1336
- Closes #2082
-
-- [Dirk Feytons brought this change]
-
- openssl: fix too broad use of HAVE_OPAQUE_EVP_PKEY
-
- Fixes #2079
- Closes #2081
-
-- TODO: ignore private IP addresses in PASV response
-
- Closes #1455
-
-- RELEASE-NOTES: synced with ae7369b6d
-
-Michael Kaufmann (14 Nov 2017)
-- URL: return error on malformed URLs with junk after IPv6 bracket
-
- Follow-up to aadb7c7. Verified by new test 1263.
-
- Closes #2072
-
-Daniel Stenberg (14 Nov 2017)
-- INTERNALS: we may use libidn2 now, not libidn
-
-Patrick Monnerat (13 Nov 2017)
-- zlib/brotli: only include header files in modules needing them
-
- There is a conflict on symbol 'free_func' between openssl/crypto.h and
- zlib.h on AIX. This is an attempt to resolve it.
-
- Bug: https://curl.haxx.se/mail/lib-2017-11/0032.html
- Reported-By: Michael Felt
-
-Daniel Stenberg (13 Nov 2017)
-- SMB: fix uninitialized local variable
-
- Reported-by: Brian Carpenter
-
-- [Orgad Shaneh brought this change]
-
- connect.c: remove executable bit on file
-
- Closes #2071
-
-- [hsiao yi brought this change]
-
- README.md: fixed layout
-
- Closes #2069
-
-- setopt: split out curl_easy_setopt() to its own file
-
- ... to make url.c smaller.
-
- Closes #1944
-
-Jay Satiro (10 Nov 2017)
-- [John Starks brought this change]
-
- cmake: Add missing setmode check
-
- Ensure HAVE_SETMODE is set to 1 on OSes that have setmode. Without this,
- curl will corrupt binary files when writing them to stdout on Windows.
-
- Closes https://github.com/curl/curl/pull/2067
-
-Daniel Stenberg (10 Nov 2017)
-- curl_share_setopt: va_end was not called if conncache errors
-
- CID 984459, detected by Coverity
-
-Sergei Nikulov (10 Nov 2017)
-- [John Starks brought this change]
-
- cmake: Correctly include curl.rc in Windows builds (#2064)
-
- Update CMakeLists.txt to add curl.rc to the correct list.
-
-Daniel Stenberg (9 Nov 2017)
-- RELEASE-NOTES: synced with 32828cc4f
-
-- [Luca Boccassi brought this change]
-
- --interface: add support for Linux VRF
-
- The --interface command (CURLOPT_INTERFACE option) already uses
- SO_BINDTODEVICE on Linux, but it tries to parse it as an interface or IP
- address first, which fails in case the user passes a VRF.
-
- Try to use the socket option immediately and parse it as a fallback
- instead. Update the documentation to mention this feature, and that it
- requires the binary to be ran by root or with CAP_NET_RAW capabilities
- for this to work.
-
- Closes #2024
-
-- curl_share_setopt.3: document CURL_LOCK_DATA_CONNECT
-
- Closes #2043
-
-- examples: add shared-connection-cache
-
-- test1554: verify connection cache sharing
-
-- share: add support for sharing the connection cache
-
-- imap: deal with commands case insensitively
-
- As documented in RFC 3501 section 9:
- https://tools.ietf.org/html/rfc3501#section-9
-
- Closes #2061
-
-- connect: store IPv6 connection status after valid connection
-
- ... previously it would store it already in the happy eyeballs stage
- which could lead to the IPv6 bit being set for an IPv4 connection,
- leading to curl not wanting to do EPSV=>PASV for FTP transfers.
-
- Closes #2053
-
-- curl_multi_fdset.3: emphasize curl_multi_timeout
-
- ... even when there's no socket to wait for, the timeout can still be
- very short.
-
-Jay Satiro (9 Nov 2017)
-- content_encoding: fix inflate_stream for no bytes available
-
- - Don't call zlib's inflate() when avail_in stream bytes is 0.
-
- This is a follow up to the parent commit 19e66e5. Prior to that change
- libcurl's inflate_stream could call zlib's inflate even when no bytes
- were available, causing inflate to return Z_BUF_ERROR, and then
- inflate_stream would treat that as a hard error and return
- CURLE_BAD_CONTENT_ENCODING.
-
- According to the zlib FAQ, Z_BUF_ERROR is not fatal.
-
- This bug would happen randomly since packet sizes are arbitrary. A test
- of 10,000 transfers had 55 fail (ie 0.55%).
-
- Ref: https://zlib.net/zlib_faq.html#faq05
-
- Closes https://github.com/curl/curl/pull/2060
-
-Patrick Monnerat (7 Nov 2017)
-- content_encoding: do not write 0 length data
-
-Daniel Stenberg (6 Nov 2017)
-- fnmatch: remove dead code
-
- There was a duplicate check for backslashes in the setcharset()
- function.
-
- Coverity CID 1420611
-
-- url: remove unncessary NULL-check
-
- Since 'conn' won't be NULL in there and we also access the pointer in
- there without the check.
-
- Coverity CID 1420610
-
-Viktor Szakats (6 Nov 2017)
-- src/Makefile.m32: fix typo in brotli lib customization
-
- Ref cc1f4436099decb9d1a7034b2bb773a9f8379d31
-
-- Makefile.m32: allow to customize brotli libs
-
- It adds the ability to link against static brotli libs.
-
- Also fix brotli include path.
-
-Patrick Monnerat (5 Nov 2017)
-- travis: add a job with brotli enabled
-
-- [Viktor Szakats brought this change]
-
- Makefile.m32: add brotli support
-
-- HTTP: implement Brotli content encoding
-
- This uses the brotli external library (https://github.com/google/brotli).
- Brotli becomes a feature: additional curl_version_info() bit and
- structure fields are provided for it and CURLVERSION_NOW bumped.
-
- Tests 314 and 315 check Brotli content unencoding with correct and
- erroneous data.
-
- Some tests are updated to accomodate with the now configuration dependent
- parameters of the Accept-Encoding header.
-
-- HTTP: support multiple Content-Encodings
-
- This is implemented as an output streaming stack of unencoders, the last
- calling the client write procedure.
-
- New test 230 checks this feature.
-
- Bug: https://github.com/curl/curl/pull/2002
- Reported-By: Daniel Bankhead
-
-Jay Satiro (4 Nov 2017)
-- url: remove arg value check from CURLOPT_SSH_AUTH_TYPES
-
- Since CURLSSH_AUTH_ANY (aka CURLSSH_AUTH_DEFAULT) is ~0 an arg value
- check on this option is incorrect; we have to accept any value.
-
- Prior to this change since f121575 (7.56.1+) CURLOPT_SSH_AUTH_TYPES
- erroneously rejected CURLSSH_AUTH_ANY with CURLE_BAD_FUNCTION_ARGUMENT.
-
- Bug: https://github.com/curl/curl/commit/f121575#commitcomment-25347120
-
-Daniel Stenberg (4 Nov 2017)
-- ntlm: avoid malloc(0) for zero length passwords
-
- It triggers an assert() when built with memdebug since malloc(0) may
- return NULL *or* a valid pointer.
-
- Detected by OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4054
-
- Assisted-by: Max Dymond
- Closes #2054
-
-- RELEASE-NOTES: synced with ee8016b3d
-
-- curl: speed up handling of many URLs
-
- By properly keeping track of the last entry in the list of URLs/uploads
- to handle, curl now avoids many meaningless traverses of the list which
- speeds up many-URL handling *MASSIVELY* (several magnitudes on 100K
- URLs).
-
- Added test 1291, to verify that it doesn't take ages - but we don't have
- any detection of "too slow" command in the test suite.
-
- Reported-by: arainchik on github
- Fixes #1959
- Closes #2052
-
-- curl: pass through [] in URLs instead of calling globbing error
-
- Assisted-by: Per Lundberg
- Fixes #2044
- Closes #2046
- Closes #2048
-
-- CURLOPT_INFILESIZE: accept -1
-
- Regression since f121575
-
- Reported-by: Petr Voytsik
- Fixes #2047
-
-Jay Satiro (2 Nov 2017)
-- url: fix CURLOPT_DNS_CACHE_TIMEOUT arg value check to allow -1
-
- Prior to this change since f121575 (7.56.1+) CURLOPT_DNS_CACHE_TIMEOUT
- erroneously rejected -1 with CURLE_BAD_FUNCTION_ARGUMENT.
-
-Dan Fandrich (1 Nov 2017)
-- http2: Fixed OOM handling in upgrade request
-
- This caused the torture tests on test 1800 to fail.
-
-- tests: Fixed torture tests on tests 556 and 650
-
- Test cleanup after OOM wasn't being consistently performed.
-
-Daniel Stenberg (1 Nov 2017)
-- CURLOPT_MAXREDIRS: allow -1 as a value
-
- ... which is valid according to documentation. Regression since
- f121575c0b5f.
-
- Verified now in test 501.
-
- Reported-by: cbartl on github
- Fixes #2038
- Closes #2039
-
-- include: remove conncache.h inclusion from where its not needed
-
-Jay Satiro (1 Nov 2017)
-- url: fix CURLOPT_POSTFIELDSIZE arg value check to allow -1
-
- .. also add same arg value check to CURLOPT_POSTFIELDSIZE_LARGE.
-
- Prior to this change since f121575 (7.56.1+) CURLOPT_POSTFIELDSIZE
- erroneously rejected -1 value with CURLE_BAD_FUNCTION_ARGUMENT.
-
- Bug: https://curl.haxx.se/mail/lib-2017-11/0000.html
- Reported-by: Andrew Lambert
-
-Daniel Stenberg (31 Oct 2017)
-- cookie: avoid NULL dereference
-
- ... when expiring old cookies.
-
- Reported-by: Pavel Gushchin
- Fixes #2032
- Closes #2035
-
-Marcel Raad (30 Oct 2017)
-- memdebug: use send/recv signature for curl_dosend/curl_dorecv
-
- This avoids build errors and warnings caused by implicit casts.
-
- Closes https://github.com/curl/curl/pull/2031
-
-Daniel Stenberg (30 Oct 2017)
-- [Juro Bystricky brought this change]
-
- mkhelp.pl: support reproducible build
-
- Do not generate line with the current date, such as:
-
- * Generation time: Tue Oct-24 18:01:41 2017
-
- This will improve reproducibility. The generated string is only
- part of a comment, so there should be no adverse consequences.
-
- Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
-
- closes #2026
-
-Dan Fandrich (30 Oct 2017)
-- runtests.pl: Fixed typo in message
-
-Daniel Stenberg (30 Oct 2017)
-- curlx: the timeval functions are no longer provided as curlx_*
-
- Pointed-out-by: Dmitri Tikhonov
- Bug: #2034
-
-- select: update comments
-
- s/curlx_tvnow/Curl_now
-
-- INTERNALS: remove curlx_tv* functions no longer provided
-
-- [Dmitri Tikhonov brought this change]
-
- timeval: use mach time on MacOS
-
- If clock_gettime() is not supported, use mach_absolute_time() on MacOS.
-
- closes #2033
-
-Patrick Monnerat (29 Oct 2017)
-- cli tool: improve ";type=" handling in -F option arguments
-
-- cli tool: in -F option arg, comma is a delimiter for files only
-
- Also upgrade test 1133 to cover this case and clarify man page about
- form data quoting.
-
- Bug: https://github.com/curl/curl/issues/2022
- Reported-By: omau on github
-
-Daniel Stenberg (29 Oct 2017)
-- timeleft: made two more users of Curl_timeleft use timediff_t
-
-Jakub Zakrzewski (28 Oct 2017)
-- cmake: Export libcurl and curl targets to use by other cmake projects
-
- The config files define curl and libcurl targets as imported targets
- CURL::curl and CURL::libcurl. For backward compatibility with CMake-
- provided find-module the CURL_INCLUDE_DIRS and CURL_LIBRARIES are
- also set.
-
- Closes #1879
-
-Daniel Stenberg (28 Oct 2017)
-- RELEASE-NOTES: synced with f20cbac97
-
-- [Florin Petriuc brought this change]
-
- auth: Added test cases for RFC7616
-
- Updated docs to include support for RFC7616
-
- Signed-off-by: Florin <petriuc.florin@gmail.com>
-
- Closes #1934
-
-- [Florin Petriuc brought this change]
-
- auth: add support for RFC7616 - HTTP Digest access authentication
-
- Signed-off-by: Florin <petriuc.florin@gmail.com>
-
-- [Daniel Bankhead brought this change]
-
- TODO: support multiple Content-Encodings
-
- Closes #2002
-
-- ROADMAP: cleanup
-
- Removed done stuff. Removed entries no longer considered for the near
- term.
-
-- [Magicansk brought this change]
-
- ROADMAP.md: spelling fixes
-
- Closes #2028
-
-- Curl_timeleft: change return type to timediff_t
-
- returning 'time_t' is problematic when that type is unsigned and we
- return values less than zero to signal "already expired", used in
- several places in the code.
-
- Closes #2021
-
-- appveyor: add a win32 build
-
-- setopt: fix CURLOPT_SSH_AUTH_TYPES option read
-
- Regression since f121575c0b5f
-
- Reported-by: Rob Cotrone
-
-Marcel Raad (27 Oct 2017)
-- resolvers: only include anything if needed
-
- This avoids warnings about unused stuff.
-
- Closes https://github.com/curl/curl/pull/2023
-
-Daniel Stenberg (27 Oct 2017)
-- HELP-US: rename the subtitle too since the label is changed
-
- "PR-welcome" was the former name.
-
-- curl_setup.h: oops, shorten the too long line
-
-- [Martin Storsjo brought this change]
-
- curl_setup: Improve detection of CURL_WINDOWS_APP
-
- If WINAPI_FAMILY is defined, it should be safe to try to include
- winapifamily.h to check what the define evaluates to.
-
- This should fix detection of CURL_WINDOWS_APP if building with
- _WIN32_WINNT set to 0x0600.
-
- Closes #2025
-
-Jay Satiro (26 Oct 2017)
-- transfer: Fix chunked-encoding upload bug
-
- - When uploading via chunked-encoding don't compare file size to bytes
- sent to determine whether the upload has finished.
-
- Chunked-encoding adds its own overhead which why the bytes sent is not
- equal to the file size. Prior to this change if a file was uploaded in
- chunked-encoding and its size was known it was possible that the upload
- could end prematurely without sending the final few chunks. That would
- result in a server hang waiting for the remaining data, likely followed
- by a disconnect.
-
- The scope of this bug is limited to some arbitrary file sizes which have
- not been determined. One size that triggers the bug is 475020.
-
- Bug: https://github.com/curl/curl/issues/2001
- Reported-by: moohoorama@users.noreply.github.com
-
- Closes https://github.com/curl/curl/pull/2010
-
-Daniel Stenberg (26 Oct 2017)
-- timeval: make timediff_t also work on 32bit windows
-
- ... by using curl_off_t for the typedef if time_t is larger than 4
- bytes.
-
- Reported-by: Gisle Vanem
- Bug: https://github.com/curl/curl/commit/b9d25f9a6b3ca791385b80a6a3c3fa5ae113e1e0#co
- mmitcomment-25205058
- Closes #2019
-
-- curl_fnmatch: return error on illegal wildcard pattern
-
- ... instead of doing an infinite loop!
-
- Added test 1162 to verify.
-
- Reported-by: Max Dymond
- Fixes #2015
- Closes #2017
-
-- [Max Dymond brought this change]
-
- wildcards: don't use with non-supported protocols
-
- Fixes timeouts in the fuzzing tests for non-FTP protocols.
-
- Closes #2016
-
-- [Max Dymond brought this change]
-
- multi: allow table handle sizes to be overridden
-
- Allow users to specify their own hash define for
- CURL_CONNECTION_HASH_SIZE so that both values can be overridden.
-
- Closes #1982
-
-- time: rename Curl_tvnow to Curl_now
-
- ... since the 'tv' stood for timeval and this function does not return a
- timeval struct anymore.
-
- Also, cleaned up the Curl_timediff*() functions to avoid typecasts and
- clean up the descriptive comments.
-
- Closes #2011
-
-- ftplistparser: follow-up cleanup to remove PL_ERROR()
-
-- [Max Dymond brought this change]
-
- ftplistparser: free off temporary memory always
-
- When using the FTP list parser, ensure that the memory that's
- allocated is always freed.
-
- Detected by OSS-fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3682
- Closes #2013
-
-- timediff: return timediff_t from the time diff functions
-
- ... to cater for systems with unsigned time_t variables.
-
- - Renamed the functions to curlx_timediff and Curl_timediff_us.
-
- - Added overflow protection for both of them in either direction for
- both 32 bit and 64 bit time_ts
-
- - Reprefixed the curlx_time functions to use Curl_*
-
- Reported-by: Peter Piekarski
- Fixes #2004
- Closes #2005
-
-- [Paul Howarth brought this change]
-
- libtest: Add required test libraries for lib1552 and lib1553
-
- They use $(TESTUTIL) and thus should use $(TESTUTIL_LIBS) too.
-
- This fixes build failures on Fedora 13.
-
- Closes #2006
-
-- [Alessandro Ghedini brought this change]
-
- libcurl-tutorial.3: fix typo
-
- closes #2008
-
-Alessandro Ghedini (23 Oct 2017)
-- curl_mime_filedata.3: fix typos
-
-Daniel Stenberg (23 Oct 2017)
-- RELEASE-NOTES: clean slate towards 7.57.0
-
-- [Max Dymond brought this change]
-
- travis: exit if any steps fail
-
- We don't expect any steps to fail in travis. Exit the script if they do.
-
- Closes #1966
-
-Version 7.56.1 (23 Oct 2017)
-
-Daniel Stenberg (23 Oct 2017)
-- RELEASE-NOTES: 7.56.1
-
-- THANKS: update at 7.56.1 release time
-
-- [Jon DeVree brought this change]
-
- mk-ca-bundle: Remove URL for aurora
-
- Aurora is no longer used by Mozilla
- https://hacks.mozilla.org/2017/04/simplifying-firefox-release-channels/
-
-- [Jon DeVree brought this change]
-
- mk-ca-bundle: Fix URL for NSS
-
- The 'tip' is the most recent branch committed to, this should be
- 'default' like the URLs for the browser are.
-
- Closes #1998
-
-- imap: if a FETCH response has no size, don't call write callback
-
- CVE-2017-1000257
-
- Reported-by: Brian Carpenter and 0xd34db347
- Also detected by OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3586
-
-- ftp: reject illegal IP/port in PASV 227 response
-
- ... by using range checks. Among other things, this avoids an undefined
- behavior for a left shift that could happen on negative or very large
- values.
-
- Closes #1997
-
- Detected by OSS-fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3694
-
-Patrick Monnerat (20 Oct 2017)
-- test653: check reuse of easy handle after mime data change
-
- See issue #1999
-
-- mime: do not reuse previously computed multipart size
-
- The contents might have changed: size must be recomputed.
-
- Reported-by: moteus on github
- Fixes #1999
-
-- test308: disable if MultiSSL feature enabled
-
- Even if OpenSSL is enabled, it might not be the default backend when
- multi-ssl is enabled, causing the test to fail.
-
-- runtests: support MultiSSL client feature
-
-- vtls: change struct Curl_ssl `close' field name to `close_one'.
-
- On OS/400, `close' is an ASCII system macro that corrupts the code if
- not used in a context not targetting the close() system API.
-
-- os400: add missing symbols in config file.
-
- Also adjust makefile to renamed files and warn about installation dirs mix-up.
-
-- test652: curl_mime_data + base64 encoder with large contents
-
-- mime: limit bas64-encoded lines length to 76 characters
-
-Daniel Stenberg (16 Oct 2017)
-- RELEASE-NOTES: synced with f121575c0
-
-- setopt: range check most long options
-
- ... filter early instead of risking "funny values" having to be dealt
- with elsewhere.
-
-- setopt: avoid integer overflows when setting millsecond values
-
- ... that are multiplied by 1000 when stored.
-
- For 32 bit long systems, the max value accepted (2147483 seconds) is >
- 596 hours which is unlikely to ever be set by a legitimate application -
- and previously it didn't work either, it just caused undefined behavior.
-
- Also updated the man pages for these timeout options to mention the
- return code.
-
- Closes #1938
-
-Viktor Szakats (15 Oct 2017)
-- makefile.m32: allow to override gcc, ar and ranlib
-
- Allow to ovverride certain build tools, making it possible to
- use LLVM/Clang to build curl. The default behavior is unchanged.
- To build with clang (as offered by MSYS2), these settings can
- be used:
-
- CURL_CC=clang
- CURL_AR=llvm-ar
- CURL_RANLIB=llvm-ranlib
-
- Closes https://github.com/curl/curl/pull/1993
-
-- ldap: silence clang warning
-
- Use memset() to initialize a structure to avoid LLVM/Clang warning:
- ldap.c:193:39: warning: missing field 'UserLength' initializer [-Wmissing-field-initializers]
-
- Closes https://github.com/curl/curl/pull/1992
-
-Daniel Stenberg (14 Oct 2017)
-- runtests: use valgrind for torture as well
-
- NOTE: it makes them terribly slow. I recommend only using valgrind for
- specific torture tests or using lots of patience.
-
-- memdebug: trace send, recv and socket
-
- ... to allow them to be included in torture tests too.
-
- closes #1980
-
-- configure: remove the C++ compiler check
-
- ... we used it only for the fuzzer, which we now have in a separate git
- repo.
-
- Closes #1990
-
-Patrick Monnerat (13 Oct 2017)
-- mime: do not call failf() if easy handle is NULL.
-
-Daniel Stenberg (13 Oct 2017)
-- test651: curl_formadd with huge COPYCONTENTS
-
-- mime: fix the content reader to handle >16K data properly
-
- Reported-by: Jeroen Ooms
- Closes #1988
-
-Patrick Monnerat (12 Oct 2017)
-- mime: keep "text/plain" content type if user-specified.
-
- Include test cases in 554, 587, 650.
-
- Fixes https://github.com/curl/curl/issues/1986
-
-- cli tool: use file2memory() to buffer stdin in -F option.
-
- Closes PR https://github.com/curl/curl/pull/1985
-
-- cli tool: reimplement stdin buffering in -F option.
-
- If stdin is not a regular file, its content is memory-buffered to enable
- a possible data "rewind".
- In all cases, stdin data size is determined before real use to avoid
- having an unknown part's size.
-
- --libcurl generated code is left as an unbuffered stdin fread/fseek callback
- part with unknown data size.
-
- Buffering is not supported in deprecated curl_formadd() API.
-
-Daniel Stenberg (12 Oct 2017)
-- winbuild/BUILD.WINDOWS.txt: mention WITH_NGHTTP2
-
-- HELP-US: the label "PR-welcome" is now renamed to "help wanted"
-
- following the new github "standard"
-
-- RELEASE-NOTES: synced with 5505df7d2
-
-Jay Satiro (11 Oct 2017)
-- [Artak Galoyan brought this change]
-
- url: Update current connection SSL verify params in setopt
-
- Now VERIFYHOST, VERIFYPEER and VERIFYSTATUS options change during active
- connection updates the current connection's (i.e.'connectdata'
- structure) appropriate ssl_config (and ssl_proxy_config) structures
- variables, making these options effective for ongoing connection.
-
- This functionality was available before and was broken by the
- following change:
- "proxy: Support HTTPS proxy and SOCKS+HTTP(s)"
- CommitId: cb4e2be7c6d42ca0780f8e0a747cecf9ba45f151.
-
- Bug: https://github.com/curl/curl/issues/1941
-
- Closes https://github.com/curl/curl/pull/1951
-
-Daniel Stenberg (11 Oct 2017)
-- [David Benjamin brought this change]
-
- openssl: don't use old BORINGSSL_YYYYMM macros
-
- Those were temporary things we'd add and remove for our own convenience
- long ago. The last few stayed around for too long as an oversight but
- have since been removed. These days we have a running
- BORINGSSL_API_VERSION counter which is bumped when we find it
- convenient, but 2015-11-19 was quite some time ago, so just check
- OPENSSL_IS_BORINGSSL.
-
- Closes #1979
-
-- test950; verify SMTP with custom request
-
-- ftpserver: support case insensitive commands
-
-- smtp_done: free data before returning (on send failure)
-
- ... as otherwise it could leak that memory.
-
- Detected by OSS-fuzz:
- https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3600
-
- Assisted-by: Max Dymond
- Closes #1977
-
-- FTP: URL decode path for dir listing in nocwd mode
-
- Reported-by: Zenju on github
-
- Test 244 added to verify
- Fixes #1974
- Closes #1976
-
-- test298: verify --ftp-method nowcwd with URL encoded path
-
- Ref: #1974
-
-- CURLOPT_XFERINFODATA.3: fix duplicate see also
-
-- CURLOPT_NOPROGRESS.3: also refer to xferinfofunction
-
-- FAQ: s/CURLOPT_PROGRESSFUNCTION/CURLOPT_XFERINFOFUNCTION
-
-- openssl: enable PKCS12 support for !BoringSSL
-
- Enable PKCS12 for all non-boringssl builds without relying on configure
- or cmake checks.
-
- Bug: https://curl.haxx.se/mail/lib-2017-10/0007.html
- Reported-by: Christian Schmitz
- Closes #1948
-
-- [Kristiyan Tsaklev brought this change]
-
- curl: don't pass semicolons when parsing Content-Disposition
-
- Test 1422 updated to verify.
-
- Closes #1964
-
-Patrick Monnerat (9 Oct 2017)
-- mime: properly unbind mime structure in curl_mime_free().
-
- This allows freeing a mime structure bound to the easy handle before
- curl_easy_cleanup().
-
- Fixes #1970.
-
-Daniel Stenberg (9 Oct 2017)
-- RTSP: avoid integer overflow on funny RTSP response
-
- ... like a very large non-existing RTSP version number.
-
- Added test 577 to verify.
-
- Detected by OSS-fuzz.
- Closes #1969
-
-Patrick Monnerat (8 Oct 2017)
-- ftpserver: properly reset $ftptargetdir.
-
-- test643: verify curl_mime_subparts() rejects cyclic additions.
-
-- mime: refuse to add subparts to one of their own descendants.
-
- Reported-by: Alexey Melnichuk
- Fixes #1962
-
-- mime: avoid resetting a part's encoder when part's contents change.
-
-- mime: improve unbinding top multipart from easy handle.
-
- Also avoid dangling pointers in referencing parts.
-
-Daniel Stenberg (8 Oct 2017)
-- RELEASE-NOTES: synced with a4c1c75da30af1
-
-- curlver.h: next expected release is 7.57.0
-
-Patrick Monnerat (8 Oct 2017)
-- mime: be tolerant about setting twice the same header list in a part.
-
-- docs: clarify form/mime usage of non-regular data files.
-
-Daniel Stenberg (8 Oct 2017)
-- Revert "multi_done: wait for name resolve to finish if still ongoing"
-
- This reverts commit f3e03f6c0ac52a1bf396e03f7d7e9b5b3b7165fe.
-
- Caused memory leaks in the fuzzer, needs to be done differently.
-
- Disable test 1553 for now too, as it causes memory leaks without this
- commit!
-
-- remove_handle: call multi_done() first, then clear dns cache pointer
-
- Closes #1960
-
-- multi_done: wait for name resolve to finish if still ongoing
-
- ... as we must clean up memory.
-
-- pingpong: return error when trying to send without connection
-
- When imap_done() got called before a connection is setup, it would try
- to "finish up" and dereffed a NULL pointer.
-
- Test case 1553 managed to reproduce. I had to actually use a host name
- to try to resolve to slow it down, as using the normal local server IP
- will make libcurl get a connection in the first curl_multi_perform()
- loop and then the bug doesn't trigger.
-
- Fixes #1953
- Assisted-by: Max Dymond
-
-Dan Fandrich (6 Oct 2017)
-- tests: added flaky keyword to tests 587 and 644
-
- These are around 5% flaky in my Linux x86 autobuilds.
-
-Marcel Raad (6 Oct 2017)
-- vtls: fix warnings with --disable-crypto-auth
-
- When CURL_DISABLE_CRYPTO_AUTH is defined, Curl_none_md5sum's parameters
- are not used.
-
-Daniel Stenberg (6 Oct 2017)
-- multi_cleanup: call DONE on handles that never got that
-
- ... fixes a memory leak with at least IMAP when remove_handle is never
- called and the transfer is abruptly just abandoned early.
-
- Test 1552 added to verify
-
- Detected by OSS-fuzz
- Assisted-by: Max Dymond
- Closes #1954
-
-- [Benbuck Nason brought this change]
-
- strtoofft: Remove extraneous null check
-
- Fixes #1950: curlx_strtoofft() doesn't fully protect against null 'str'
- argument.
-
- Closes #1952
-
-- openssl: fix build without HAVE_OPAQUE_EVP_PKEY
-
- Reported-by: Javier Sixto
- Fixes #1955
- Closes #1956
-
-Viktor Szakats (6 Oct 2017)
-- lib/config-win32.h: let SMB/SMBS be enabled with OpenSSL/NSS
-
- The source code is now prepared to handle the case when both
- Win32 Crypto and OpenSSL/NSS crypto backends are enabled
- at the same time, making it now possible to enable `USE_WIN32_CRYPTO`
- whenever the targeted Windows version supports it. Since this
- matches the minimum Windows version supported by curl
- (Windows 2000), enable it unconditionally for the Win32 platform.
-
- This in turn enables SMB (and SMBS) protocol support whenever
- Win32 Crypto is available, regardless of what other crypto backends
- are enabled.
-
- Ref: https://github.com/curl/curl/pull/1840#issuecomment-325682052
-
- Closes https://github.com/curl/curl/pull/1943
-
-Daniel Stenberg (5 Oct 2017)
-- build: fix --disable-crypto-auth
-
- Reported-by: Wyatt O'Day
- Fixes #1945
- Closes #1947
-
-Jay Satiro (5 Oct 2017)
-- [Nick Zitzmann brought this change]
-
- darwinssl: add support for TLSv1.3
-
- Closes https://github.com/curl/curl/pull/1794
-
-Daniel Stenberg (4 Oct 2017)
-- [Felix Kaiser brought this change]
-
- docs: fix typo in curl_mime_data_cb man page
-
- Closes #1946
-
-Viktor Szakats (4 Oct 2017)
-- lib/Makefile.m32: allow customizing dll suffixes
-
- - New `CURL_DLL_SUFFIX` envvar will add a suffix to the generated
- libcurl dll name. Useful to add `-x64` to 64-bit builds so that
- it can live in the same directory as the 32-bit one. By default
- this is empty.
-
- - New `CURL_DLL_A_SUFFIX` envvar to customize the suffix of the
- generated import library (implib) for libcurl .dll. It defaults
- to `dll`, and it's useful to modify that to `.dll` to have the
- standard naming scheme for mingw-built .dlls, i.e. `libcurl.dll.a`.
-
- Closes https://github.com/curl/curl/pull/1942
-
-Daniel Stenberg (4 Oct 2017)
-- [Max Dymond brought this change]
-
- fuzzer: move to using external curl-fuzzer
-
- Use the external curl-fuzzer repository for fuzzing.
-
- Closes #1923
-
-- failf: skip the sprintf() if there are no consumers
-
- Closes #1936
-
-- ftp: UBsan fixup 'pointer index expression overflowed'
-
- Closes #1939
-
-- RELEASE-PROCEDURE: update the release schedule
-
-Version 7.56.0 (4 Oct 2017)
-
-Daniel Stenberg (4 Oct 2017)
-- RELEASE-NOTES: curl 7.56.0
-
-- THANKS: added new 7.56.0 contributors
-
-Jay Satiro (4 Oct 2017)
-- build-openssl.bat: Warn OpenSSL 1.1.0 not yet supported
-
- Ref: https://github.com/curl/curl/issues/1002
-
-Michael Kaufmann (3 Oct 2017)
-- idn: fix source code comment
-
-- vtls: compare and clone ssl configs properly
-
- Compare these settings in Curl_ssl_config_matches():
- - verifystatus (CURLOPT_SSL_VERIFYSTATUS)
- - random_file (CURLOPT_RANDOM_FILE)
- - egdsocket (CURLOPT_EGDSOCKET)
-
- Also copy the setting "verifystatus" in Curl_clone_primary_ssl_config(),
- and copy the setting "sessionid" unconditionally.
-
- This means that reusing connections that are secured with a client
- certificate is now possible, and the statement "TLS session resumption
- is disabled when a client certificate is used" in the old advisory at
- https://curl.haxx.se/docs/adv_20170419.html is obsolete.
-
- Reviewed-by: Daniel Stenberg
-
- Closes #1917
-
-- proxy: read the "no_proxy" variable only if necessary
-
- Reviewed-by: Daniel Stenberg
-
- Closes #1919
-
-Patrick Monnerat (3 Oct 2017)
-- libcurl-tutorial: add casts in example to avoid compilation warnings.
-
-Daniel Stenberg (3 Oct 2017)
-- examples: bring back curl_formadd-using examples
-
- ... now with a -formadd suffix. While the new mime API is introduced in
- 7.56.0 we must acknowledge that lots of users can't upgrade their curl
- versions immediately.
-
-- test1153: verify quoted double-qoutes in PWD response
-
-- FTP: zero terminate the entry path even on bad input
-
- ... a single double quote could leave the entry path buffer without a zero
- terminating byte. CVE-2017-1000254
-
- Test 1152 added to verify.
-
- Reported-by: Max Dymond
- Bug: https://curl.haxx.se/docs/adv_20171004.html
-
-Jay Satiro (2 Oct 2017)
-- [Sergei Nikulov brought this change]
-
- cmake: disable tests and man generation if perl/nroff not found
-
- Fixes https://github.com/curl/curl/issues/1500
- Reported-by: Jay Satiro
-
- Fixes https://github.com/curl/curl/pull/1662
- Assisted-by: Tom Seddon
- Assisted-by: dpull@users.noreply.github.com
- Assisted-by: elelel@users.noreply.github.com
-
- Closes https://github.com/curl/curl/pull/1924
-
-Patrick Monnerat (2 Oct 2017)
-- libcurl-tutorial: fix two typos.
-
-- TODO: remove deprecated form API items.
-
-- libcurl-tutorial: describe MIME API and deprecate form API.
-
- Include a guide to form/mime API conversion.
-
-Daniel Stenberg (30 Sep 2017)
-- cookie: fix memory leak if path was set twice in header
-
- ... this will let the second occurance override the first.
-
- Added test 1161 to verify.
-
- Reported-by: Max Dymond
- Fixes #1932
- Closes #1933
-
-Dan Fandrich (30 Sep 2017)
-- test650: Use variable replacement to set the host address and port
-
- Otherwise, the test fails when the -b test option is used to set a
- different test port range.
-
-- Set and use more necessary options when some protocols are disabled
-
- When curl and libcurl are built with some protocols disabled, they stop
- setting and receiving some options that don't make sense with those
- protocols. In particular, when HTTP is disabled many options aren't set
- that are used only by HTTP. However, some options that appear to be
- HTTP-only are actually used by other protocols as well (some despite
- having HTTP in the name) and should be set, but weren't. This change now
- causes some of these options to be set and used for more (or for all)
- protocols. In particular, this fixes tests 646 through 649 in an
- HTTP-disabled build, which use the MIME API in the mail protocols.
-
-Daniel Stenberg (29 Sep 2017)
-- test1160: verifies cookie leak for large cookies
-
- The fix done in 20ea22ff735
-
-- cookie: fix memory leak on oversized rejection
-
- Regression brought by 2bc230de63b
-
- Detected by OSS-fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3513
- Assisted-by: Max Dymond
-
- Closes #1930
-
-- [Anders Bakken brought this change]
-
- connect: fix race condition with happy eyeballs timeout
-
- The timer should be started after conn->connecttime is set. Otherwise
- the timer could expire without this condition being true:
-
- /* should we try another protocol family? */
- if(i == 0 && conn->tempaddr[1] == NULL &&
- curlx_tvdiff(now, conn->connecttime) >= HAPPY_EYEBALLS_TIMEOUT) {
-
- Ref: #1928
-
-Michael Kaufmann (28 Sep 2017)
-- docs: link CURLOPT_CONNECTTIMEOUT and CURLOPT_CONNECTTIMEOUT_MS
-
- Closes #1922
-
-- docs: clarify the use of environment variables for proxy
-
- Closes #1921
-
-- http: add custom empty headers to repeated requests
-
- Closes #1920
-
-- reuse_conn: don't copy flags that are known to be equal
-
- A connection can only be reused if the flags "conn_to_host" and
- "conn_to_port" match. Therefore it is not necessary to copy these flags
- in reuse_conn().
-
- Closes #1918
-
-Daniel Stenberg (27 Sep 2017)
-- curl.h: include <sys/select.h> on cygwin too
-
- When building with -std=c++14 on cygwin, this header won't be
- automatically included as it otherwise is.
-
- The <sys/select.h> include decision should ideally be reversed and be
- avoided where that header file doesn't exist.
-
- Reported-by: Ian Fette
- Fixes #1925
-
-- RELEASE-NOTES: synced with d8ab5dc50
-
-Michael Kaufmann (24 Sep 2017)
-- tests: adjust .gitignore for new tests
-
-Jay Satiro (23 Sep 2017)
-- ntlm: move NTLM_NEEDS_NSS_INIT define into core NTLM header
-
- .. and include the core NTLM header in all NTLM-related source files.
-
- Follow up to 6f86022. Since then http_ntlm checks NTLM_NEEDS_NSS_INIT
- but did not include vtls.h where it was defined.
-
- Closes https://github.com/curl/curl/pull/1911
-
-Daniel Stenberg (23 Sep 2017)
-- file_range: avoid integer overflow when figuring out byte range
-
- When trying to bump the value with one and the value is already at max,
- it causes an integer overflow.
-
- Closes #1908
- Detected by oss-fuzz:
- https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3465
-
- Assisted-by: Max Dymond
-
-Michael Kaufmann (23 Sep 2017)
-- tests: fix a compiler warning in test 643
-
-Jay Satiro (23 Sep 2017)
-- symbols-in-versions: fix CURLSSLSET_NO_BACKENDS entry
-
- - Use spaces instead of tabs as the delimiter.
-
- Follow up to 7c52b12 which added the entry. The entry had used tabs but
- the symbol-scan parser doesn't recognize tabs and would fail the symbol.
-
-Viktor Szakats (22 Sep 2017)
-- metalink: fix NSS issue in MultiSSL builds
-
- In MultiSSL mode (i.e. when more than one SSL backend is compiled
- in), we cannot use the compile time flag `USE_NSS` as indicator that
- the NSS backend is in use. As far as Metalink is concerned, the SSL
- backend is only used for MD5, SHA-1 and SHA-256 calculations,
- therefore one of the available SSL backends is selected at compile
- time, in a strict order of preference.
-
- Let's introduce a new `HAVE_NSS_CONTEXT` constant that can be used
- to determine whether the SSL backend used for Metalink is the NSS
- backend, and use that to guard the code that wants to de-initialize
- the NSS-specific data structure.
-
- Ref: https://github.com/curl/curl/pull/1848
-
-- ntlm: use strict order for SSL backend #if branches
-
- With the recently introduced MultiSSL support multiple SSL backends
- can be compiled into cURL That means that now the order of the SSL
-
- One option would be to use the same SSL backend as was configured
- via `curl_global_sslset()`, however, NTLMv2 support would appear
- to be available only with some SSL backends. For example, when
- eb88d778e (ntlm: Use Windows Crypt API, 2014-12-02) introduced
- support for NTLMv1 using Windows' Crypt API, it specifically did
- *not* introduce NTLMv2 support using Crypt API at the same time.
-
- So let's select one specific SSL backend for NTLM support when
- compiled with multiple SSL backends, using a priority order such
- that we support NTLMv2 even if only one compiled-in SSL backend can
- be used for that.
-
- Ref: https://github.com/curl/curl/pull/1848
-
-Daniel Stenberg (22 Sep 2017)
-- symbols-in-versions: add CURLSSLSET_NO_BACKENDS
-
- ...fixup from b8e0fe19ec
-
-- imap: quote atoms properly when escaping characters
-
- Updates test 800 to verify
-
- Fixes #1902
- Closes #1903
-
-- tests: make the imap server not verify user+password
-
- ... as the test cases themselves do that and it makes it easier to add
- crazy test cases.
-
- Test 800 updated to use user name + password that need quoting.
-
- Test 856 updated to trigger an auth fail differently.
-
- Ref: #1902
-
-- vtls: provide curl_global_sslset() even in non-SSL builds
-
- ... it just returns error:
-
- Bug: https://github.com/curl/curl/commit/1328f69d53f2f2e937696ea954c480412b018451#commitcomment-24470367
- Reported-by: Marcel Raad
-
- Closes #1906
-
-Patrick Monnerat (22 Sep 2017)
-- form/mime: field names are not allowed to contain zero-valued bytes.
-
- Also suppress length argument of curl_mime_name() (names are always
- zero-terminated).
-
-Daniel Stenberg (21 Sep 2017)
-- [Dirk Feytons brought this change]
-
- openssl: only verify RSA private key if supported
-
- In some cases the RSA key does not support verifying it because it's
- located on a smart card, an engine wants to hide it, ...
- Check the flags on the key before trying to verify it.
- OpenSSL does the same thing internally; see ssl/ssl_rsa.c
-
- Closes #1904
-
-Marcel Raad (21 Sep 2017)
-- examples/post-callback: use long for CURLOPT_POSTFIELDSIZE
-
- Otherwise, typecheck-gcc.h warns on MinGW-w64.
-
-Patrick Monnerat (20 Sep 2017)
-- mime: rephrase the multipart output state machine (#1898) ...
-
- ... in hope coverity will like it much.
-
-- mime: fix an explicit null dereference (#1899)
-
-Daniel Stenberg (20 Sep 2017)
-- curl: check fseek() return code and bail on error
-
- Detected by coverity. CID 1418137.
-
-- smtp: fix memory leak in OOM
-
- Regression since ce0881edee
-
- Coverity CID 1418139 and CID 1418136 found it, but it was also seen in
- torture testing.
-
-- RELEASE-NOTES: synced with 5fe85587c
-
-- [Pavel Pavlov brought this change]
-
- cookies: use lock when using CURLINFO_COOKIELIST
-
- Closes #1896
-
-- [Max Dymond brought this change]
-
- ossfuzz: changes before merging the generated corpora
-
- Before merging in the oss-fuzz corpora from Google, there are some changes
- to the fuzzer.
- - Add a read corpus script, to display corpus files nicely.
- - Change the behaviour of the fuzzer so that TLV parse failures all now
- go down the same execution paths, which should reduce the size of the
- corpora.
- - Make unknown TLVs a failure to parse, which should decrease the size
- of the corpora as well.
-
- Closes #1881
diff --git a/CMake/CMakeConfigurableFile.in b/CMake/CMakeConfigurableFile.in
index 4cf74a12..df2c382e 100644
--- a/CMake/CMakeConfigurableFile.in
+++ b/CMake/CMakeConfigurableFile.in
@@ -1,2 +1 @@
@CMAKE_CONFIGURABLE_FILE_CONTENT@
-
diff --git a/CMake/CurlTests.c b/CMake/CurlTests.c
index ab244ac3..9388c835 100644
--- a/CMake/CurlTests.c
+++ b/CMake/CurlTests.c
@@ -549,3 +549,19 @@ main() {
return 0;
}
#endif
+#ifdef HAVE_CLOCK_GETTIME_MONOTONIC
+#include <time.h>
+int
+main() {
+ struct timespec ts = {0, 0};
+ clock_gettime(CLOCK_MONOTONIC, &ts);
+ return 0;
+}
+#endif
+#ifdef HAVE_BUILTIN_AVAILABLE
+int
+main() {
+ if(__builtin_available(macOS 10.12, *)) {}
+ return 0;
+}
+#endif
diff --git a/CMake/curl-config.cmake.in b/CMake/curl-config.cmake.in
index 73e04c60..1294e173 100644
--- a/CMake/curl-config.cmake.in
+++ b/CMake/curl-config.cmake.in
@@ -1,64 +1,12 @@
-
-get_filename_component(_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
-
-if(NOT CURL_FIND_COMPONENTS)
- set(CURL_FIND_COMPONENTS curl libcurl)
- if(CURL_FIND_REQUIRED)
- set(CURL_FIND_REQUIRED_curl TRUE)
- set(CURL_FIND_REQUIRED_libcurl TRUE)
- endif()
-endif()
+@PACKAGE_INIT@
include(CMakeFindDependencyMacro)
-if(CURL_FIND_REQUIRED_libcurl)
- find_dependency(OpenSSL "@OPENSSL_VERSION_MAJOR@")
+if(@USE_OPENSSL@)
+ find_dependency(OpenSSL @OPENSSL_VERSION_MAJOR@)
endif()
-
-set(_curl_missing_components)
-foreach(_comp ${CURL_FIND_COMPONENTS})
- if(EXISTS "${_DIR}/${_comp}-target.cmake")
- include("${_DIR}/${_comp}-target.cmake")
- set(CURL_${_comp}_FOUND TRUE)
- else()
- set(CURL_${_comp}_FOUND FALSE)
- if(CURL_FIND_REQUIRED_${_comp})
- set(CURL_FOUND FALSE)
- list(APPEND _curl_missing_components ${_comp})
- endif()
- endif()
-endforeach()
-
-if(_curl_missing_components)
- set(CURL_NOT_FOUND_MESSAGE "Following required components not found: " ${_curl_missing_components})
-else()
- if(TARGET CURL::libcurl)
- string(TOUPPER "${CMAKE_BUILD_TYPE}" _curl_current_config)
- if(NOT _curl_current_config)
- set(_curl_current_config "NOCONFIG")
- endif()
- get_target_property(_curl_configurations CURL::libcurl IMPORTED_CONFIGURATIONS)
- list(FIND _curl_configurations "${_curl_current_config}" _i)
- if(_i LESS 0)
- set(_curl_config "RELEASE")
- list(FIND _curl_configurations "${_curl_current_config}" _i)
- if(_i LESS 0)
- set(_curl_config "NOCONFIG")
- list(FIND _curl_configurations "${_curl_current_config}" _i)
- endif()
- endif()
-
- if(_i LESS 0)
- set(_curl_current_config "") # let CMake pick config at random
- else()
- set(_curl_current_config "_${_curl_current_config}")
- endif()
-
- get_target_property(CURL_INCLUDE_DIRS CURL::libcurl INTERFACE_INCLUDE_DIRECTORIES)
- get_target_property(CURL_LIBRARIES CURL::libcurl "LOCATION${_curl_current_config}")
- set(_curl_current_config)
- set(_curl_configurations)
- set(_i)
- endif()
+if(@USE_ZLIB@)
+ find_dependency(ZLIB @ZLIB_VERSION_MAJOR@)
endif()
-unset(_curl_missing_components)
+include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake")
+check_required_components("@PROJECT_NAME@")
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e6dbb73f..a3c17c45 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -38,7 +38,7 @@
# To check:
# (From Daniel Stenberg) The cmake build selected to run gcc with -fPIC on my box while the plain configure script did not.
# (From Daniel Stenberg) The gcc command line use neither -g nor any -O options. As a developer, I also treasure our configure scripts's --enable-debug option that sets a long range of "picky" compiler options.
-cmake_minimum_required(VERSION 3.4 FATAL_ERROR)
+cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake;${CMAKE_MODULE_PATH}")
include(Utilities)
include(Macros)
@@ -92,7 +92,7 @@ option(ENABLE_CURLDEBUG "Set to ON to build with TrackMemory feature enabled" OF
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG)
if(PICKY_COMPILER)
- foreach(_CCOPT -pedantic -Wall -W -Wpointer-arith -Wwrite-strings -Wunused -Wshadow -Winline -Wnested-externs -Wmissing-declarations -Wmissing-prototypes -Wno-long-long -Wfloat-equal -Wno-multichar -Wsign-compare -Wundef -Wno-format-nonliteral -Wendif-labels -Wstrict-prototypes -Wdeclaration-after-statement -Wstrict-aliasing=3 -Wcast-align -Wtype-limits -Wold-style-declaration -Wmissing-parameter-type -Wempty-body -Wclobbered -Wignored-qualifiers -Wconversion -Wno-sign-conversion -Wvla -Wdouble-promotion -Wno-system-headers)
+ foreach(_CCOPT -pedantic -Wall -W -Wpointer-arith -Wwrite-strings -Wunused -Wshadow -Winline -Wnested-externs -Wmissing-declarations -Wmissing-prototypes -Wno-long-long -Wfloat-equal -Wno-multichar -Wsign-compare -Wundef -Wno-format-nonliteral -Wendif-labels -Wstrict-prototypes -Wdeclaration-after-statement -Wstrict-aliasing=3 -Wcast-align -Wtype-limits -Wold-style-declaration -Wmissing-parameter-type -Wempty-body -Wclobbered -Wignored-qualifiers -Wconversion -Wno-sign-conversion -Wvla -Wdouble-promotion -Wno-system-headers -Wno-pedantic-ms-format)
# surprisingly, CHECK_C_COMPILER_FLAG needs a new variable to store each new
# test result in.
check_c_compiler_flag(${_CCOPT} OPT${_CCOPT})
@@ -352,7 +352,16 @@ if(CMAKE_USE_OPENSSL)
set(USE_OPENSSL ON)
set(HAVE_LIBCRYPTO ON)
set(HAVE_LIBSSL ON)
- list(APPEND CURL_LIBS OpenSSL::SSL OpenSSL::Crypto)
+
+ # Depend on OpenSSL via imported targets if supported by the running
+ # version of CMake. This allows our dependents to get our dependencies
+ # transitively.
+ if(NOT CMAKE_VERSION VERSION_LESS 3.4)
+ list(APPEND CURL_LIBS OpenSSL::SSL OpenSSL::Crypto)
+ else()
+ list(APPEND CURL_LIBS ${OPENSSL_LIBRARIES})
+ include_directories(${OPENSSL_INCLUDE_DIR})
+ endif()
set(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR})
check_include_file("openssl/crypto.h" HAVE_OPENSSL_CRYPTO_H)
@@ -499,15 +508,23 @@ check_library_exists("${CURL_LIBS}" dlopen "" HAVE_DLOPEN)
option(CURL_ZLIB "Set to ON to enable building curl with zlib support." ON)
set(HAVE_LIBZ OFF)
set(HAVE_ZLIB_H OFF)
-set(HAVE_ZLIB OFF)
+set(USE_ZLIB OFF)
if(CURL_ZLIB)
find_package(ZLIB QUIET)
if(ZLIB_FOUND)
set(HAVE_ZLIB_H ON)
- set(HAVE_ZLIB ON)
set(HAVE_LIBZ ON)
- list(APPEND CURL_LIBS ${ZLIB_LIBRARIES})
- include_directories(${ZLIB_INCLUDE_DIRS})
+ set(USE_ZLIB ON)
+
+ # Depend on ZLIB via imported targets if supported by the running
+ # version of CMake. This allows our dependents to get our dependencies
+ # transitively.
+ if(NOT CMAKE_VERSION VERSION_LESS 3.4)
+ list(APPEND CURL_LIBS ZLIB::ZLIB)
+ else()
+ list(APPEND CURL_LIBS ${ZLIB_LIBRARIES})
+ include_directories(${ZLIB_INCLUDE_DIRS})
+ endif()
list(APPEND CMAKE_REQUIRED_INCLUDES ${ZLIB_INCLUDE_DIRS})
endif()
endif()
@@ -947,7 +964,6 @@ foreach(CURL_TEST
HAVE_GETHOSTBYNAME_R_3_REENTRANT
HAVE_GETHOSTBYNAME_R_5_REENTRANT
HAVE_GETHOSTBYNAME_R_6_REENTRANT
- HAVE_SOCKLEN_T
HAVE_IN_ADDR_T
HAVE_BOOL_T
STDC_HEADERS
@@ -1017,6 +1033,12 @@ if(HAVE_INET_NTOA_R_DECL_REENTRANT)
set(NEED_REENTRANT 1)
endif()
+# Check clock_gettime(CLOCK_MONOTONIC, x) support
+curl_internal_test(HAVE_CLOCK_GETTIME_MONOTONIC)
+
+# Check compiler support of __builtin_available()
+curl_internal_test(HAVE_BUILTIN_AVAILABLE)
+
# Some other minor tests
if(NOT HAVE_IN_ADDR_T)
@@ -1066,24 +1088,6 @@ if(CMAKE_COMPILER_IS_GNUCC AND APPLE)
endif()
endif()
-if(HAVE_SOCKLEN_T)
- set(CURL_TYPEOF_CURL_SOCKLEN_T "socklen_t")
- if(WIN32)
- set(CMAKE_EXTRA_INCLUDE_FILES "winsock2.h;ws2tcpip.h")
- elseif(HAVE_SYS_SOCKET_H)
- set(CMAKE_EXTRA_INCLUDE_FILES "sys/socket.h")
- endif()
- check_type_size("socklen_t" CURL_SIZEOF_CURL_SOCKLEN_T)
- set(CMAKE_EXTRA_INCLUDE_FILES)
- if(NOT HAVE_CURL_SIZEOF_CURL_SOCKLEN_T)
- message(FATAL_ERROR
- "Check for sizeof socklen_t failed, see CMakeFiles/CMakerror.log")
- endif()
-else()
- set(CURL_TYPEOF_CURL_SOCKLEN_T int)
- set(CURL_SIZEOF_CURL_SOCKLEN_T ${SIZEOF_INT})
-endif()
-
# TODO test which of these headers are required
if(WIN32)
set(CURL_PULL_WS2TCPIP_H ${HAVE_WS2TCPIP_H})
@@ -1144,11 +1148,13 @@ function(TRANSFORM_MAKEFILE_INC INPUT_FILE OUTPUT_FILE)
endfunction()
-if(WIN32 AND NOT CYGWIN)
- set(CURL_INSTALL_CMAKE_DIR CMake)
-else()
- set(CURL_INSTALL_CMAKE_DIR lib/cmake/curl)
-endif()
+include(GNUInstallDirs)
+
+set(CURL_INSTALL_CMAKE_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
+set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets")
+set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated")
+set(project_config "${generated_dir}/${PROJECT_NAME}Config.cmake")
+set(version_config "${generated_dir}/${PROJECT_NAME}ConfigVersion.cmake")
if(USE_MANUAL)
add_subdirectory(docs)
@@ -1282,7 +1288,7 @@ set(VERSIONNUM "${CURL_VERSION_NUM}")
configure_file("${CURL_SOURCE_DIR}/curl-config.in"
"${CURL_BINARY_DIR}/curl-config" @ONLY)
install(FILES "${CURL_BINARY_DIR}/curl-config"
- DESTINATION bin
+ DESTINATION ${CMAKE_INSTALL_BINDIR}
PERMISSIONS
OWNER_READ OWNER_WRITE OWNER_EXECUTE
GROUP_READ GROUP_EXECUTE
@@ -1292,34 +1298,36 @@ install(FILES "${CURL_BINARY_DIR}/curl-config"
configure_file("${CURL_SOURCE_DIR}/libcurl.pc.in"
"${CURL_BINARY_DIR}/libcurl.pc" @ONLY)
install(FILES "${CURL_BINARY_DIR}/libcurl.pc"
- DESTINATION lib/pkgconfig)
-
-# This needs to be run very last so other parts of the scripts can take advantage of this.
-if(NOT CURL_CONFIG_HAS_BEEN_RUN_BEFORE)
- set(CURL_CONFIG_HAS_BEEN_RUN_BEFORE 1 CACHE INTERNAL "Flag to track whether this is the first time running CMake or if CMake has been configured before")
-endif()
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
# install headers
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/curl"
- DESTINATION include
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
FILES_MATCHING PATTERN "*.h")
-
include(CMakePackageConfigHelpers)
write_basic_package_version_file(
- "${PROJECT_BINARY_DIR}/curl-config-version.cmake"
+ "${version_config}"
VERSION ${CURL_VERSION}
COMPATIBILITY SameMajorVersion
)
-configure_file(CMake/curl-config.cmake.in
- "${PROJECT_BINARY_DIR}/curl-config.cmake"
- @ONLY
+# Use:
+# * TARGETS_EXPORT_NAME
+# * PROJECT_NAME
+configure_package_config_file(CMake/curl-config.cmake.in
+ "${project_config}"
+ INSTALL_DESTINATION ${CURL_INSTALL_CMAKE_DIR}
+)
+
+install(
+ EXPORT "${TARGETS_EXPORT_NAME}"
+ NAMESPACE "${PROJECT_NAME}::"
+ DESTINATION ${CURL_INSTALL_CMAKE_DIR}
)
install(
- FILES ${PROJECT_BINARY_DIR}/curl-config.cmake
- ${PROJECT_BINARY_DIR}/curl-config-version.cmake
+ FILES ${version_config} ${project_config}
DESTINATION ${CURL_INSTALL_CMAKE_DIR}
)
diff --git a/METADATA b/METADATA
index 527eed55..9f342345 100644
--- a/METADATA
+++ b/METADATA
@@ -7,12 +7,12 @@ third_party {
}
url {
type: ARCHIVE
- value: "https://github.com/curl/curl/releases/download/curl-7_61_1/curl-7.61.1.tar.xz"
+ value: "https://github.com/curl/curl/releases/download/curl-7_62_0/curl-7.62.0.tar.xz"
}
- version: "curl-7_61_1"
+ version: "curl-7_62_0"
last_upgrade_date {
year: 2018
- month: 10
- day: 30
+ month: 12
+ day: 11
}
}
diff --git a/Makefile.am b/Makefile.am
index 959eeb53..debec9aa 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -5,7 +5,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2018, 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
@@ -151,18 +151,18 @@ VC_DIST = projects/README \
projects/wolfssl_options.h \
projects/wolfssl_override.props
-WINBUILD_DIST = winbuild/BUILD.WINDOWS.txt winbuild/gen_resp_file.bat \
+WINBUILD_DIST = winbuild/BUILD.WINDOWS.txt winbuild/gen_resp_file.bat \
winbuild/MakefileBuild.vc winbuild/Makefile.vc
-EXTRA_DIST = CHANGES COPYING maketgz Makefile.dist curl-config.in \
- RELEASE-NOTES buildconf libcurl.pc.in MacOSX-Framework scripts/zsh.pl \
- scripts/updatemanpages.pl $(CMAKE_DIST) $(VC_DIST) $(WINBUILD_DIST) \
+EXTRA_DIST = CHANGES COPYING maketgz Makefile.dist curl-config.in \
+ RELEASE-NOTES buildconf libcurl.pc.in MacOSX-Framework scripts/zsh.pl \
+ scripts/updatemanpages.pl $(CMAKE_DIST) $(VC_DIST) $(WINBUILD_DIST) \
lib/libcurl.vers.in buildconf.bat scripts/coverage.sh
-CLEANFILES = $(VC6_LIBDSP) $(VC6_SRCDSP) $(VC7_LIBVCPROJ) $(VC7_SRCVCPROJ) \
- $(VC71_LIBVCPROJ) $(VC71_SRCVCPROJ) $(VC8_LIBVCPROJ) $(VC8_SRCVCPROJ) \
- $(VC9_LIBVCPROJ) $(VC9_SRCVCPROJ) $(VC10_LIBVCXPROJ) $(VC10_SRCVCXPROJ) \
- $(VC11_LIBVCXPROJ) $(VC11_SRCVCXPROJ) $(VC12_LIBVCXPROJ) $(VC12_SRCVCXPROJ) \
+CLEANFILES = $(VC6_LIBDSP) $(VC6_SRCDSP) $(VC7_LIBVCPROJ) $(VC7_SRCVCPROJ) \
+ $(VC71_LIBVCPROJ) $(VC71_SRCVCPROJ) $(VC8_LIBVCPROJ) $(VC8_SRCVCPROJ) \
+ $(VC9_LIBVCPROJ) $(VC9_SRCVCPROJ) $(VC10_LIBVCXPROJ) $(VC10_SRCVCXPROJ) \
+ $(VC11_LIBVCXPROJ) $(VC11_SRCVCXPROJ) $(VC12_LIBVCXPROJ) $(VC12_SRCVCXPROJ) \
$(VC14_LIBVCXPROJ) $(VC14_SRCVCXPROJ) $(VC15_LIBVCXPROJ) $(VC15_SRCVCXPROJ)
bin_SCRIPTS = curl-config
@@ -305,12 +305,12 @@ checksrc:
.PHONY: vc-ide
-vc-ide: $(VC6_LIBDSP_DEPS) $(VC6_SRCDSP_DEPS) $(VC7_LIBVCPROJ_DEPS) \
- $(VC7_SRCVCPROJ_DEPS) $(VC71_LIBVCPROJ_DEPS) $(VC71_SRCVCPROJ_DEPS) \
- $(VC8_LIBVCPROJ_DEPS) $(VC8_SRCVCPROJ_DEPS) $(VC9_LIBVCPROJ_DEPS) \
- $(VC9_SRCVCPROJ_DEPS) $(VC10_LIBVCXPROJ_DEPS) $(VC10_SRCVCXPROJ_DEPS) \
- $(VC11_LIBVCXPROJ_DEPS) $(VC11_SRCVCXPROJ_DEPS) $(VC12_LIBVCXPROJ_DEPS) \
- $(VC12_SRCVCXPROJ_DEPS) $(VC14_LIBVCXPROJ_DEPS) $(VC14_SRCVCXPROJ_DEPS) \
+vc-ide: $(VC6_LIBDSP_DEPS) $(VC6_SRCDSP_DEPS) $(VC7_LIBVCPROJ_DEPS) \
+ $(VC7_SRCVCPROJ_DEPS) $(VC71_LIBVCPROJ_DEPS) $(VC71_SRCVCPROJ_DEPS) \
+ $(VC8_LIBVCPROJ_DEPS) $(VC8_SRCVCPROJ_DEPS) $(VC9_LIBVCPROJ_DEPS) \
+ $(VC9_SRCVCPROJ_DEPS) $(VC10_LIBVCXPROJ_DEPS) $(VC10_SRCVCXPROJ_DEPS) \
+ $(VC11_LIBVCXPROJ_DEPS) $(VC11_SRCVCXPROJ_DEPS) $(VC12_LIBVCXPROJ_DEPS) \
+ $(VC12_SRCVCXPROJ_DEPS) $(VC14_LIBVCXPROJ_DEPS) $(VC14_SRCVCXPROJ_DEPS) \
$(VC15_LIBVCXPROJ_DEPS) $(VC15_SRCVCXPROJ_DEPS)
@(win32_lib_srcs='$(LIB_CFILES)'; \
win32_lib_hdrs='$(LIB_HFILES) config-win32.h'; \
@@ -642,3 +642,7 @@ function gen_element(type, dir, file)\
-v src_x_srcs="$$sorted_src_x_srcs" \
-v src_x_hdrs="$$sorted_src_x_hdrs" \
"$$awk_code" $(srcdir)/$(VC15_SRCTMPL) > $(VC15_SRCVCXPROJ) || { exit 1; };)
+
+tidy:
+ (cd src && $(MAKE) tidy)
+ (cd lib && $(MAKE) tidy)
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index 0d8d2781..4cdab8d1 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -1,115 +1,144 @@
-Curl and libcurl 7.61.1
+Curl and libcurl 7.62.0
- Public curl releases: 176
- Command line options: 218
- curl_easy_setopt() options: 258
- Public functions in libcurl: 74
- Contributors: 1787
+ Public curl releases: 177
+ Command line options: 219
+ curl_easy_setopt() options: 261
+ Public functions in libcurl: 80
+ Contributors: 1808
+
+This release includes the following changes:
+
+ o multiplex: enable by default [4]
+ o url: default to CURL_HTTP_VERSION_2TLS if built h2-enabled [4]
+ o setopt: add CURLOPT_DOH_URL [7]
+ o curl: --doh-url added [7]
+ o setopt: add CURLOPT_UPLOAD_BUFFERSIZE: set upload buffer size [8]
+ o imap: change from "FETCH" to "UID FETCH" [9]
+ o configure: add option to disable automatic OpenSSL config loading [10]
+ o upkeep: add a connection upkeep API: curl_easy_upkeep() [11]
+ o URL-API: added five new functions [12]
+ o vtls: MesaLink is a new TLS backend [23]
This release includes the following bugfixes:
- o security advisory (CVE-2018-14618): NTLM password overflow via integer overflow [73]
- o CURLINFO_SIZE_UPLOAD: fix missing counter update [46]
- o CURLOPT_ACCEPT_ENCODING.3: list them comma-separated
- o CURLOPT_SSL_CTX_FUNCTION.3: might cause accidental connection reuse [72]
- o Curl_getoff_all_pipelines: improved for multiplexed [3]
- o DEPRECATE: remove release date from 7.62.0
- o HTTP: Don't attempt to needlessly decompress redirect body [30]
- o INTERNALS: require GnuTLS >= 2.11.3 [62]
- o README.md: add LGTM.com code quality grade for C/C++ [42]
- o SSLCERTS: improve the openssl command line
- o Silence GCC 8 cast-function-type warnings [47]
- o ares: check for NULL in completed-callback [3]
- o asyn-thread: Remove unused macro [40]
- o auth: only pick CURLAUTH_BEARER if we *have* a Bearer token [15]
- o auth: pick Bearer authentication whenever a token is available [15]
- o cmake: CMake config files are defining CURL_STATICLIB for static builds [54]
- o cmake: Respect BUILD_SHARED_LIBS [35]
- o cmake: Update scripts to use consistent style [9]
- o cmake: bumped minimum version to 3.4 [34]
- o cmake: link curl to the OpenSSL targets instead of lib absolute paths [34]
- o configure: conditionally enable pedantic-errors [64]
- o configure: fix for -lpthread detection with OpenSSL and pkg-config [38]
- o conn: remove the boolean 'inuse' field [3]
- o content_encoding: accept up to 4 unknown trailer bytes after raw deflate data [5]
- o cookie tests: treat files as text
- o cookies: support creation-time attribute for cookies [75]
- o curl: Fix segfault when -H @headerfile is empty [23]
- o curl: add http code 408 to transient list for --retry [78]
- o curl: fix time-of-check, time-of-use race in dir creation [71]
- o curl: use Content-Disposition before the "URL end" for -OJ [29]
- o curl: warn the user if a given file name looks like an option [56]
- o curl_threads: silence bad-function-cast warning [69]
- o darwinssl: add support for ALPN negotiation [7]
- o docs/CURLOPT_URL: fix indentation [20]
- o docs/CURLOPT_WRITEFUNCTION: size is always 1 [19]
- o docs/SECURITY-PROCESS: mention bounty, drop pre-notify
- o docs/examples: add hiperfifo example using linux epoll/timerfd [21]
- o docs: add disallow-username-in-url.d and haproxy-protocol.d to dist [50]
- o docs: clarify NO_PROXY env variable functionality [70]
- o docs: improved the manual pages of some callbacks [48]
- o docs: mention NULL is fine input to several functions [43]
- o formdata: Remove unused macro HTTPPOST_CONTENTTYPE_DEFAULT [40]
- o gopher: Do not translate `?' to `%09' [67]
- o header output: switch off all styles, not just unbold [8]
- o hostip: fix unused variable warning
- o http2: Use correct format identifier for stream_id [77]
- o http2: abort the send_callback if not setup yet [63]
- o http2: avoid set_stream_user_data() before stream is assigned [61]
- o http2: check nghttp2_session_set_stream_user_data return code [55]
- o http2: clear the drain counter in Curl_http2_done [27]
- o http2: make sure to send after RST_STREAM [58]
- o http2: separate easy handle from connections better [12]
- o http: fix for tiny "HTTP/0.9" response [51]
- o http_proxy: Remove unused macro SELECT_TIMEOUT [40]
- o lib/Makefile: only do symbol hiding if told to [32]
- o lib1502: fix memory leak in torture test [44]
- o lib1522: fix curl_easy_setopt argument type
- o libcurl-thread.3: expand somewhat on the NO_SIGNAL motivation [66]
- o mime: check Curl_rand_hex's return code [22]
- o multi: always do the COMPLETED procedure/state [3]
- o openssl: assume engine support in 1.0.0 or later [2]
- o openssl: fix debug messages [39]
- o projects: Improve Windows perl detection in batch scripts [49]
- o retry: return error if rewind was necessary but didn't happen [28]
- o reuse_conn(): memory leak - free old_conn->options [17]
- o schannel: client certificate store opening fix [68]
- o schannel: enable CALG_TLS1PRF for w32api >= 5.1
- o schannel: fix MinGW compile break [1]
- o sftp: don't send post-qoute sequence when retrying a connection [79]
- o smb: fix memory leak on early failure [26]
- o smb: fix memory-leak in URL parse error path [4]
- o smb_getsock: always wait for write socket too [11]
- o ssh-libssh: fix infinite connect loop on invalid private key [53]
- o ssh-libssh: reduce excessive verbose output about pubkey auth [53]
- o ssh-libssh: use FALLTHROUGH to silence gcc8 [76]
- o ssl: set engine implicitly when a PKCS#11 URI is provided [36]
- o sws: handle EINTR when calling select() [24]
- o system_win32: fix version checking [16]
- o telnet: Remove unused macros TELOPTS and TELCMDS [40]
- o test1143: disable MSYS2's POSIX path conversion [10]
- o test1148: disable if decimal separator is not point [65]
- o test1307: (fnmatch testing) disabled [31]
- o test1422: add required file feature [6]
- o test1531: Add timeout [41]
- o test1540: Remove unused macro TEST_HANG_TIMEOUT [40]
- o test214: disable MSYS2's POSIX path conversion for URL
- o test320: treat curl320.out file as binary [14]
- o tests/http_pipe.py: Use /usr/bin/env to find python
- o tests: Don't use Windows path %PWD for SSH tests [74]
- o tests: fixes for Windows line endlings [13]
- o tool_operate: Fix setting proxy TLS 1.3 ciphers
- o travis: build darwinssl on macos 10.12 to fix linker errors [33]
- o travis: execute "set -eo pipefail" for coverage build [45]
- o travis: run a 'make checksrc' too [25]
- o travis: update to GCC-8 [52]
- o travis: verify that man pages can be regenerated [50]
- o upload: allocate upload buffer on-demand [60]
- o upload: change default UPLOAD_BUFSIZE to 64KB [60]
- o urldata: remove unused pipe_broke struct field [57]
- o vtls: reinstantiate engine on duplicated handles [59]
- o windows: implement send buffer tuning [37]
- o wolfSSL/CyaSSL: Fix memory leak in Curl_cyassl_random [18]
+ o CVE-2018-16839: SASL password overflow via integer overflow [107]
+ o CVE-2018-16840: use-after-free in handle close [108]
+ o CVE-2018-16842: warning message out-of-buffer read [114]
+ o CURLOPT_DNS_USE_GLOBAL_CACHE: deprecated [5]
+ o Curl_dedotdotify(): always nul terminate returned string [46]
+ o Curl_follow: Always free the passed new URL [87]
+ o Curl_http2_done: fix memleak in error path [51]
+ o Curl_retry_request: fix memory leak [49]
+ o Curl_saferealloc: Fixed typo in docblock [40]
+ o FILE: fix CURLOPT_NOBODY and CURLOPT_HEADER output [78]
+ o GnutTLS: TLS 1.3 support [39]
+ o SECURITY-PROCESS: mention the bountygraph program [42]
+ o VS projects: add USE_IPV6: [91]
+ o Windows: fixes for MinGW targeting Windows Vista [82]
+ o anyauthput: fix compiler warning on 64-bit Windows [21]
+ o appveyor: add WinSSL builds [81]
+ o appveyor: run test suite (on Windows!) [65]
+ o certs: generate tests certs with sha256 digest algorithm [37]
+ o checksrc: enable strict mode and warnings [63]
+ o checksrc: handle zero scoped ignore commands [62]
+ o cmake: Backport to work with CMake 3.0 again [55]
+ o cmake: Improve config installation [60]
+ o cmake: add support for transitive ZLIB target [113]
+ o cmake: disable -Wpedantic-ms-format [84]
+ o cmake: don't require OpenSSL if USE_OPENSSL=OFF [35]
+ o cmake: fixed path used in generation of docs/tests [56]
+ o cmake: remove unused *SOCKLEN_T variables [102]
+ o cmake: suppress MSVC warning C4127 for libtest
+ o cmake: test and set missed defines during configuration [64]
+ o comment: Fix multiple typos in function parameters [69]
+ o config: Remove unused SIZEOF_VOIDP [104]
+ o config_win32: enable LDAPS [92]
+ o configure: force-use -lpthreads on HPUX [41]
+ o configure: remove CURL_CONFIGURE_CURL_SOCKLEN_T [101]
+ o configure: s/AC_RUN_IFELSE/CURL_RUN_IFELSE [53]
+ o cookies: Remove redundant expired check [14]
+ o cookies: fix leak when writing cookies to file [15]
+ o curl-config.in: remove dependency on bc [99]
+ o curl.1: --ipv6 mutexes ipv4 (fixed typo) [98]
+ o curl: enabled Windows VT Support and UTF-8 output [57]
+ o curl: update the documentation of --tlsv1.0 [17]
+ o curl_multi_wait: call getsock before figuring out timeout [34]
+ o curl_ntlm_wb: check aprintf() return codes [75]
+ o curl_threads: fix classic MinGW compile break [54]
+ o darwinssl: Fix realloc memleak [32]
+ o darwinssl: more specific and unified error codes [6]
+ o data-binary.d: clarify default content-type is x-www-form-urlencoded [71]
+ o docs/BUG-BOUNTY: explain the bounty program [76]
+ o docs/CIPHERS: Mention the options used to set TLS 1.3 ciphers [89]
+ o docs/CIPHERS: fix the TLS 1.3 cipher names [95]
+ o docs/CIPHERS: mention the colon separation for OpenSSL [73]
+ o docs/examples: URL updates [45]
+ o docs: add "see also" links for SSL options [85]
+ o example/asiohiper: insert warning comment about its status [18]
+ o example/htmltidy: fix include paths of tidy libraries [52]
+ o examples/Makefile.m32: sync with core [44]
+ o examples/http2-pushinmemory: receive HTTP/2 pushed files in memory [33]
+ o examples/parseurl.c: show off the URL API [43]
+ o examples: Fix memory leaks from realloc errors [31]
+ o examples: do not wait when no transfers are running [16]
+ o ftp: include command in Curl_ftpsend sendbuffer [25]
+ o gskit: make sure to terminate version string [79]
+ o gtls: Values stored to but never read [97]
+ o hostip: fix check on Curl_shuffle_addr return value [77]
+ o http2: fix memory leaks on error-path [29]
+ o http: fix memleak in rewind error path [50]
+ o krb5: fix memory leak in krb_auth [25]
+ o ldap: show precise LDAP call in error message on Windows [83]
+ o lib: fix gcc8 warning on Windows [20]
+ o memory: add missing curl_printf header [30]
+ o memory: ensure to check allocation results [68]
+ o multi: Fix error handling in the SENDPROTOCONNECT state [112]
+ o multi: fix memory leak in content encoding related error path [59]
+ o multi: make the closure handle "inherit" CURLOPT_NOSIGNAL [90]
+ o netrc: free temporary strings if memory allocation fails [103]
+ o nss: fix nssckbi module loading on Windows [70]
+ o nss: try to connect even if libnssckbi.so fails to load [36]
+ o ntlm_wb: Fix memory leaks in ntlm_wb_response [24]
+ o ntlm_wb: bail out if the response gets overly large [13]
+ o openssl: assume engine support in 0.9.8 or later [27]
+ o openssl: enable TLS 1.3 post-handshake auth [47]
+ o openssl: fix gcc8 warning [19]
+ o openssl: load built-in engines too [48]
+ o openssl: make 'done' a proper boolean [97]
+ o openssl: output the correct cipher list on TLS 1.3 error [95]
+ o openssl: return CURLE_PEER_FAILED_VERIFICATION on failure to parse issuer [6]
+ o openssl: show "proper" version number for libressl builds [28]
+ o pipelining: deprecated [1]
+ o rand: add comment to skip a clang-tidy false positive
+ o rtmp: fix for compiling with lwIP [100]
+ o runtests: ignore disabled even when ranges are given [74]
+ o runtests: skip ld_preload tests on macOS [80]
+ o runtests: use Windows paths for Windows curl
+ o schannel: unified error code handling [6]
+ o sendf: Fix whitespace in infof/failf concatenation [26]
+ o ssh: free the session on init failures [96]
+ o ssl: deprecate CURLE_SSL_CACERT in favour of a unified error code [6]
+ o system.h: use proper setting with Sun C++ as well [109]
+ o test1299: use single quotes around asterisk [72]
+ o test1452: mark as flaky [2]
+ o test1651: unit test Curl_extract_certinfo() [110]
+ o test320: strip out more HTML when comparing [66]
+ o tests/negtelnetserver.py: fix Python2-ism in neg TELNET server [67]
+ o tests: add unit tests for url.c [3]
+ o timeval: fix use of weak symbol clock_gettime() on Apple platforms [61]
+ o tool_cb_hdr: handle failure of rename() [94]
+ o travis: add a "make tidy" build that runs clang-tidy [105]
+ o travis: add build for "configure --disable-verbose" [93]
+ o travis: bump the Secure Transport build to use xcode [58]
+ o travis: make distcheck scan for BOM markers [86]
+ o unit1300: fix stack-use-after-scope AddressSanitizer warning [106]
+ o urldata: Fix "connecting" comment
+ o urlglob: improve error message on bad globs [22]
+ o vtls: fix ssl version "or later" behavior change for many backends [38]
+ o x509asn1: Fix SAN IP address verification [88]
+ o x509asn1: always check return code from getASN1Element() [110]
+ o x509asn1: return CURLE_PEER_FAILED_VERIFICATION on failure to parse cert [6]
+ o x509asn1: suppress left shift on signed value [111]
This release includes the following known bugs:
@@ -118,99 +147,134 @@ This release includes the following known bugs:
This release would not have looked like this without help, code, reports and
advice from friends like these:
- adnn on github, Anderson Toshiyuki Sasaki, Andrei Virtosu, Anton Gerasimov,
- Bas van Schaik, Carie Pointer, Christopher Head, clbr on github,
- Dan Fandrich, Daniel Gustafsson, Daniel Jeliński, Daniel Stenberg,
- Darío Hereñú, Even Rouault, Harry Sintonen, Ihor Karpenko, Jakub Zakrzewski,
- Jeffrey Walton, Jeroen Ooms, Johannes Schindelin, John Butterfield,
- Josh Bialkowski, Kamil Dudka, Kirill Marchuk, Laurent Bonnans,
- Leonardo Taccari, Marcel Raad, Markus Elfring, Michael Kaufmann,
- Nick Zitzmann, Nikos Mavrogiannopoulos, Patrick Monnerat, Paul Howarth,
- Przemysław Tomaszewski, pszemus on github, Ran Mozes, Ray Satiro,
- Rikard Falkeborn, Rodger Combs, Ruslan Baratov, Sergei Nikulov,
- Thomas Klausner, Tobias Blomberg, Viktor Szakats, Zero King, Zhaoyang Wu,
- (46 contributors)
+ Alexey Eremikhin, Brad King, Brian Carpenter, Christian Heimes, Colin Hogben,
+ Daniel Gustafsson, Daniel Shahaf, Daniel Stenberg, Dario Weißer,
+ Dave Reisner, Dima Pasechnik, Dmitry Kostjuchenko, Doron Behar,
+ Eason-Yu on github, Erik Minekus, Even Rouault, Gisle Vanem, Han Han,
+ Harry Sintonen, jakirkham on github, Jean Fabrice, Jim Fuller, Kamil Dudka,
+ Loganaden Velvindron, Marcel Raad, Marc Hörsken, Martin Ankerl,
+ Matthew Whitehead, Max Dymond, Maxime Legros, Michael Kaufmann, Nate Prewitt,
+ Nicklas Avén, Nick Zitzmann, Patrick Monnerat, Philipp Waehnert, Rainer Jung,
+ Ray Satiro, Rich Turner, Rick Deist, Ricky-Tigg on github, Rikard Falkeborn,
+ Ruslan Baratov, Sergei Nikulov, Shaun Jackman, Thomas Glanzmann, Tuomo Rinne,
+ Viktor Szakats, Yiming Jing,
+ (49 contributors)
Thanks! (and sorry if I forgot to mention someone)
References to bug reports and discussions on issues:
- [1] = https://github.com/curl/curl/pull/2721#issuecomment-403636043
- [2] = https://curl.haxx.se/bug/?i=2732
- [3] = https://curl.haxx.se/bug/?i=2733
- [4] = https://curl.haxx.se/bug/?i=2740
- [5] = https://curl.haxx.se/bug/?i=2719
- [6] = https://curl.haxx.se/bug/?i=2741
- [7] = https://curl.haxx.se/bug/?i=2731
- [8] = https://curl.haxx.se/bug/?i=2736
- [9] = https://curl.haxx.se/bug/?i=2727
- [10] = https://curl.haxx.se/bug/?i=2765
- [11] = https://curl.haxx.se/bug/?i=2768
- [12] = https://curl.haxx.se/bug/?i=2751
- [13] = https://curl.haxx.se/bug/?i=2772
- [14] = https://curl.haxx.se/bug/?i=2776
- [15] = https://curl.haxx.se/bug/?i=2754
- [16] = https://curl.haxx.se/bug/?i=2792
- [17] = https://curl.haxx.se/bug/?i=2790
- [18] = https://curl.haxx.se/bug/?i=2784
- [19] = https://curl.haxx.se/bug/?i=2787
- [20] = https://curl.haxx.se/bug/?i=2788
- [21] = https://curl.haxx.se/bug/?i=2804
- [22] = https://curl.haxx.se/bug/?i=2795
- [23] = https://curl.haxx.se/bug/?i=2797
- [24] = https://curl.haxx.se/bug/?i=2808
- [25] = https://curl.haxx.se/bug/?i=2811
- [26] = https://curl.haxx.se/bug/?i=2769
- [27] = https://curl.haxx.se/bug/?i=2800
- [28] = https://curl.haxx.se/bug/?i=2801
- [29] = https://curl.haxx.se/bug/?i=2783
- [30] = https://curl.haxx.se/bug/?i=2798
- [31] = https://curl.haxx.se/bug/?i=2825
- [32] = https://curl.haxx.se/bug/?i=2830
- [33] = https://curl.haxx.se/bug/?i=2835
- [34] = https://curl.haxx.se/bug/?i=2753
- [35] = https://curl.haxx.se/bug/?i=2755
- [36] = https://curl.haxx.se/bug/?i=2333
- [37] = https://curl.haxx.se/mail/lib-2018-07/0080.html
- [38] = https://curl.haxx.se/bug/?i=2848
- [39] = https://curl.haxx.se/bug/?i=2806
- [40] = https://curl.haxx.se/bug/?i=2852
- [41] = https://curl.haxx.se/bug/?i=2853
- [42] = https://curl.haxx.se/bug/?i=2857
- [43] = https://curl.haxx.se/bug/?i=2837
- [44] = https://curl.haxx.se/bug/?i=2861
- [45] = https://curl.haxx.se/bug/?i=2862
- [46] = https://curl.haxx.se/bug/?i=2847
- [47] = https://curl.haxx.se/bug/?i=2860
- [48] = https://curl.haxx.se/bug/?i=2868
- [49] = https://curl.haxx.se/bug/?i=2865
- [50] = https://curl.haxx.se/bug/?i=2856
- [51] = https://curl.haxx.se/bug/?i=2420
- [52] = https://curl.haxx.se/bug/?i=2869
- [53] = https://curl.haxx.se/bug/?i=2879
- [54] = https://curl.haxx.se/bug/?i=2817
- [55] = https://curl.haxx.se/bug/?i=2880
- [56] = https://curl.haxx.se/bug/?i=2885
- [57] = https://curl.haxx.se/bug/?i=2871
- [58] = https://curl.haxx.se/bug/?i=2882
- [59] = https://curl.haxx.se/bug/?i=2829
- [60] = https://curl.haxx.se/bug/?i=2892
- [61] = https://curl.haxx.se/bug/?i=2894
- [62] = https://curl.haxx.se/bug/?i=2890
- [63] = https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10012
- [64] = https://curl.haxx.se/bug/?i=2747
- [65] = https://curl.haxx.se/bug/?i=2786
- [66] = https://curl.haxx.se/bug/?i=2904
- [67] = https://curl.haxx.se/bug/?i=2910
- [68] = https://curl.haxx.se/mail/lib-2018-08/0198.html
- [69] = https://curl.haxx.se/bug/?i=2908
- [70] = https://curl.haxx.se/bug/?i=2773
- [71] = https://curl.haxx.se/bug/?i=2739
- [72] = https://curl.haxx.se/bug/?i=2915
- [73] = https://curl.haxx.se/docs/CVE-2018-14618.html
- [74] = https://curl.haxx.se/bug/?i=2920
- [75] = https://curl.haxx.se/bug/?i=2524
- [76] = https://curl.haxx.se/bug/?i=2922
- [77] = https://curl.haxx.se/bug/?i=2928
- [78] = https://curl.haxx.se/bug/?i=2925
- [79] = https://curl.haxx.se/bug/?i=2939
+ [1] = https://curl.haxx.se/bug/?i=2705
+ [2] = https://curl.haxx.se/bug/?i=2941
+ [3] = https://curl.haxx.se/bug/?i=2937
+ [4] = https://curl.haxx.se/bug/?i=2709
+ [5] = https://curl.haxx.se/bug/?i=2942
+ [6] = https://curl.haxx.se/bug/?i=2901
+ [7] = https://curl.haxx.se/bug/?i=2668
+ [8] = https://curl.haxx.se/bug/?i=2896
+ [9] = https://curl.haxx.se/bug/?i=2789
+ [10] = https://curl.haxx.se/bug/?i=2724
+ [11] = https://curl.haxx.se/bug/?i=1641
+ [12] = https://curl.haxx.se/bug/?i=2842
+ [13] = https://curl.haxx.se/bug/?i=2959
+ [14] = https://curl.haxx.se/bug/?i=2962
+ [15] = https://curl.haxx.se/bug/?i=2957
+ [16] = https://curl.haxx.se/bug/?i=2948
+ [17] = https://curl.haxx.se/bug/?i=2955
+ [18] = https://curl.haxx.se/bug/?i=2407
+ [19] = https://curl.haxx.se/bug/?i=2980
+ [20] = https://curl.haxx.se/bug/?i=2979
+ [21] = https://curl.haxx.se/bug/?i=2972
+ [22] = https://curl.haxx.se/bug/?i=2763
+ [23] = https://curl.haxx.se/bug/?i=2984
+ [24] = https://curl.haxx.se/bug/?i=2966
+ [25] = https://curl.haxx.se/bug/?i=2985
+ [26] = https://curl.haxx.se/bug/?i=2986
+ [27] = https://curl.haxx.se/bug/?i=2983
+ [28] = https://curl.haxx.se/bug/?i=2989
+ [29] = https://curl.haxx.se/bug/?i=2992
+ [30] = https://curl.haxx.se/bug/?i=2999
+ [31] = https://curl.haxx.se/bug/?i=2991
+ [32] = https://curl.haxx.se/bug/?i=3005
+ [33] = https://curl.haxx.se/bug/?i=3004
+ [34] = https://curl.haxx.se/bug/?i=2996
+ [35] = https://curl.haxx.se/bug/?i=3001
+ [36] = https://curl.haxx.se/bug/?i=3016
+ [37] = https://curl.haxx.se/bug/?i=3014
+ [38] = https://curl.haxx.se/bug/?i=2969
+ [39] = https://curl.haxx.se/bug/?i=2971
+ [40] = https://curl.haxx.se/bug/?i=3029
+ [41] = https://curl.haxx.se/bug/?i=2697
+ [42] = https://curl.haxx.se/bug/?i=3032
+ [43] = https://curl.haxx.se/bug/?i=3030
+ [44] = https://curl.haxx.se/bug/?i=3033
+ [45] = https://curl.haxx.se/bug/?i=3036
+ [46] = https://curl.haxx.se/bug/?i=3039
+ [47] = https://curl.haxx.se/bug/?i=3026
+ [48] = https://curl.haxx.se/bug/?i=3023
+ [49] = https://curl.haxx.se/bug/?i=3042
+ [50] = https://curl.haxx.se/bug/?i=3044
+ [51] = https://curl.haxx.se/bug/?i=3046
+ [52] = https://curl.haxx.se/bug/?i=3050
+ [53] = https://curl.haxx.se/bug/?i=3006
+ [54] = https://github.com/curl/curl/issues/2924#issuecomment-424334807
+ [55] = https://curl.haxx.se/bug/?i=3055
+ [56] = https://curl.haxx.se/bug/?i=3056
+ [57] = https://curl.haxx.se/bug/?i=3008
+ [58] = https://curl.haxx.se/bug/?i=3062
+ [59] = https://curl.haxx.se/bug/?i=3063
+ [60] = https://curl.haxx.se/bug/?i=2849
+ [61] = https://curl.haxx.se/bug/?i=3048
+ [62] = https://curl.haxx.se/bug/?i=3096
+ [63] = https://curl.haxx.se/bug/?i=3090
+ [64] = https://curl.haxx.se/bug/?i=3097
+ [65] = https://curl.haxx.se/bug/?i=3100
+ [66] = https://curl.haxx.se/bug/?i=3093
+ [67] = https://curl.haxx.se/bug/?i=2929
+ [68] = https://curl.haxx.se/bug/?i=3084
+ [69] = https://curl.haxx.se/bug/?i=3079
+ [70] = https://curl.haxx.se/bug/?i=3086
+ [71] = https://curl.haxx.se/bug/?i=3085
+ [72] = https://github.com/curl/curl/issues/1751#issuecomment-321522580
+ [73] = https://curl.haxx.se/bug/?i=3077
+ [74] = https://curl.haxx.se/bug/?i=3075
+ [75] = https://curl.haxx.se/bug/?i=3111
+ [76] = https://curl.haxx.se/bug/?i=3067
+ [77] = https://curl.haxx.se/bug/?i=3110
+ [78] = https://curl.haxx.se/bug/?i=3083
+ [79] = https://curl.haxx.se/bug/?i=3105
+ [80] = https://curl.haxx.se/bug/?i=2394
+ [81] = https://curl.haxx.se/bug/?i=3104
+ [82] = https://curl.haxx.se/bug/?i=3113
+ [83] = https://curl.haxx.se/bug/?i=3118
+ [84] = https://curl.haxx.se/bug/?i=3120
+ [85] = https://curl.haxx.se/bug/?i=3121
+ [86] = https://curl.haxx.se/bug/?i=3126
+ [87] = https://curl.haxx.se/bug/?i=3124
+ [88] = https://curl.haxx.se/bug/?i=3102
+ [89] = https://curl.haxx.se/bug/?i=3159
+ [90] = https://curl.haxx.se/bug/?i=3138
+ [91] = https://curl.haxx.se/bug/?i=3137
+ [92] = https://curl.haxx.se/bug/?i=3137
+ [93] = https://curl.haxx.se/bug/?i=3144
+ [94] = https://curl.haxx.se/bug/?i=3140
+ [95] = https://curl.haxx.se/bug/?i=3178
+ [96] = https://curl.haxx.se/bug/?i=3179
+ [97] = https://curl.haxx.se/bug/?i=3176
+ [98] = https://curl.haxx.se/bug/?i=3171
+ [99] = https://curl.haxx.se/bug/?i=3143
+ [100] = https://curl.haxx.se/bug/?i=3155
+ [101] = https://curl.haxx.se/bug/?i=3168
+ [102] = https://curl.haxx.se/bug/?i=3166
+ [103] = https://curl.haxx.se/bug/?i=3122
+ [104] = https://curl.haxx.se/bug/?i=3162
+ [105] = https://curl.haxx.se/bug/?i=3182
+ [106] = https://curl.haxx.se/bug/?i=3182
+ [107] = https://curl.haxx.se/docs/CVE-2018-16839.html
+ [108] = https://curl.haxx.se/docs/CVE-2018-16840.html
+ [109] = https://curl.haxx.se/bug/?i=3181
+ [110] = https://curl.haxx.se/bug/?i=3163
+ [111] = https://curl.haxx.se/bug/?i=3163
+ [112] = https://curl.haxx.se/bug/?i=3170
+ [113] = https://curl.haxx.se/bug/?i=3123
+ [114] = https://curl.haxx.se/docs/CVE-2018-16842.html
diff --git a/acinclude.m4 b/acinclude.m4
index 355ee3a6..c4c75f3b 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -1664,7 +1664,7 @@ AC_DEFUN([CURL_CHECK_LIBS_CLOCK_GETTIME_MONOTONIC], [
if test "x$cross_compiling" != "xyes" &&
test "$curl_func_clock_gettime" = "yes"; then
AC_MSG_CHECKING([if monotonic clock_gettime works])
- AC_RUN_IFELSE([
+ CURL_RUN_IFELSE([
AC_LANG_PROGRAM([[
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
@@ -1776,130 +1776,6 @@ cat >>confdefs.h <<_EOF
_EOF
])
-
-dnl CURL_CONFIGURE_CURL_SOCKLEN_T
-dnl -------------------------------------------------
-dnl The need for the curl_socklen_t definition arises mainly to properly
-dnl interface HP-UX systems which on one hand have a typedef'ed socklen_t
-dnl data type which is 32 or 64-Bit wide depending on the data model being
-dnl used, and that on the other hand is only actually used when interfacing
-dnl the X/Open sockets provided in the xnet library.
-
-AC_DEFUN([CURL_CONFIGURE_CURL_SOCKLEN_T], [
- AC_REQUIRE([CURL_INCLUDES_WS2TCPIP])dnl
- AC_REQUIRE([CURL_INCLUDES_SYS_SOCKET])dnl
- AC_REQUIRE([CURL_PREPROCESS_CALLCONV])dnl
- #
- AC_BEFORE([$0], [CURL_CONFIGURE_PULL_SYS_POLL])dnl
- #
- AC_MSG_CHECKING([for curl_socklen_t data type])
- curl_typeof_curl_socklen_t="unknown"
- for arg1 in int SOCKET; do
- for arg2 in 'struct sockaddr' void; do
- for t in socklen_t int size_t 'unsigned int' long 'unsigned long' void; do
- if test "$curl_typeof_curl_socklen_t" = "unknown"; then
- AC_COMPILE_IFELSE([
- AC_LANG_PROGRAM([[
- $curl_includes_ws2tcpip
- $curl_includes_sys_socket
- $curl_preprocess_callconv
- extern int FUNCALLCONV getpeername($arg1, $arg2 *, $t *);
- ]],[[
- $t *lenptr = 0;
- if(0 != getpeername(0, 0, lenptr))
- return 1;
- ]])
- ],[
- curl_typeof_curl_socklen_t="$t"
- ])
- fi
- done
- done
- done
- for t in socklen_t int; do
- if test "$curl_typeof_curl_socklen_t" = "void"; then
- AC_COMPILE_IFELSE([
- AC_LANG_PROGRAM([[
- $curl_includes_sys_socket
- typedef $t curl_socklen_t;
- ]],[[
- curl_socklen_t dummy;
- ]])
- ],[
- curl_typeof_curl_socklen_t="$t"
- ])
- fi
- done
- AC_MSG_RESULT([$curl_typeof_curl_socklen_t])
- if test "$curl_typeof_curl_socklen_t" = "void" ||
- test "$curl_typeof_curl_socklen_t" = "unknown"; then
- AC_MSG_ERROR([cannot find data type for curl_socklen_t.])
- fi
- #
- AC_MSG_CHECKING([size of curl_socklen_t])
- curl_sizeof_curl_socklen_t="unknown"
- curl_pull_headers_socklen_t="unknown"
- if test "$curl_cv_header_ws2tcpip_h" = "yes"; then
- tst_pull_header_checks='none ws2tcpip'
- tst_size_checks='4'
- else
- tst_pull_header_checks='none systypes syssocket'
- tst_size_checks='4 8 2'
- fi
- for tst_size in $tst_size_checks; do
- for tst_pull_headers in $tst_pull_header_checks; do
- if test "$curl_sizeof_curl_socklen_t" = "unknown"; then
- case $tst_pull_headers in
- ws2tcpip)
- tmp_includes="$curl_includes_ws2tcpip"
- ;;
- systypes)
- tmp_includes="$curl_includes_sys_types"
- ;;
- syssocket)
- tmp_includes="$curl_includes_sys_socket"
- ;;
- *)
- tmp_includes=""
- ;;
- esac
- AC_COMPILE_IFELSE([
- AC_LANG_PROGRAM([[
- $tmp_includes
- typedef $curl_typeof_curl_socklen_t curl_socklen_t;
- typedef char dummy_arr[sizeof(curl_socklen_t) == $tst_size ? 1 : -1];
- ]],[[
- curl_socklen_t dummy;
- ]])
- ],[
- curl_sizeof_curl_socklen_t="$tst_size"
- curl_pull_headers_socklen_t="$tst_pull_headers"
- ])
- fi
- done
- done
- AC_MSG_RESULT([$curl_sizeof_curl_socklen_t])
- if test "$curl_sizeof_curl_socklen_t" = "unknown"; then
- AC_MSG_ERROR([cannot find out size of curl_socklen_t.])
- fi
- #
- case $curl_pull_headers_socklen_t in
- ws2tcpip)
- CURL_DEFINE_UNQUOTED([CURL_PULL_WS2TCPIP_H])
- ;;
- systypes)
- CURL_DEFINE_UNQUOTED([CURL_PULL_SYS_TYPES_H])
- ;;
- syssocket)
- CURL_DEFINE_UNQUOTED([CURL_PULL_SYS_TYPES_H])
- CURL_DEFINE_UNQUOTED([CURL_PULL_SYS_SOCKET_H])
- ;;
- esac
- CURL_DEFINE_UNQUOTED([CURL_TYPEOF_CURL_SOCKLEN_T], [$curl_typeof_curl_socklen_t])
- CURL_DEFINE_UNQUOTED([CURL_SIZEOF_CURL_SOCKLEN_T], [$curl_sizeof_curl_socklen_t])
-])
-
-
dnl CURL_CONFIGURE_PULL_SYS_POLL
dnl -------------------------------------------------
dnl The need for the sys/poll.h inclusion arises mainly to properly
diff --git a/buildconf.bat b/buildconf.bat
index da5c0391..a6bded34 100644
--- a/buildconf.bat
+++ b/buildconf.bat
@@ -93,7 +93,7 @@ rem
rem Returns:
rem
rem 0 - success
-rem 1 - success with simplified tool_hugehelp.c
+rem 1 - success with simplified tool_hugehelp.c
rem 2 - failed to generate Makefile
rem 3 - failed to generate tool_hugehelp.c
rem
@@ -193,7 +193,7 @@ rem
if defined ROFFCMD (
echo #include "tool_setup.h"> src\tool_hugehelp.c
- echo #include "tool_hugehelp.h">> src\tool_hugehelp.c
+ echo #include "tool_hugehelp.h">> src\tool_hugehelp.c
if defined HAVE_GZIP (
echo #ifndef HAVE_LIBZ>> src\tool_hugehelp.c
diff --git a/configure b/configure
index 3d811efd..f1b9812e 100755
--- a/configure
+++ b/configure
@@ -923,6 +923,7 @@ SSL_ENABLED
USE_AXTLS
NSS_LIBS
USE_NSS
+USE_MESALINK
USE_CYASSL
USE_MBEDTLS
USE_POLARSSL
@@ -1176,11 +1177,13 @@ with_darwinssl
with_ssl
with_egd_socket
with_random
+enable_openssl_auto_load_config
with_gnutls
with_polarssl
with_mbedtls
with_cyassl
with_wolfssl
+with_mesalink
with_nss
with_axtls
with_ca_bundle
@@ -1917,6 +1920,10 @@ Optional Features:
--enable-libgcc use libgcc when linking
--enable-ipv6 Enable IPv6 (with IPv4) support
--disable-ipv6 Disable IPv6 support
+ --enable-openssl-auto-load-config
+ Enable automatic loading of OpenSSL configuration
+ --disable-openssl-auto-load-config
+ Disable automatic loading of OpenSSL configuration
--enable-versioned-symbols
Enable versioned symbols in shared library
--disable-versioned-symbols
@@ -1999,6 +2006,9 @@ Optional Packages:
--with-wolfssl=PATH where to look for WolfSSL, PATH points to the
installation root (default: system lib default)
--without-wolfssl disable WolfSSL detection
+ --with-mesalink=PATH where to look for MesaLink, PATH points to the
+ installation root
+ --without-mesalink disable MesaLink detection
--with-nss=PATH where to look for NSS, PATH points to the
installation root
--without-nss disable NSS detection
@@ -5997,7 +6007,7 @@ PKGADD_VENDOR="curl.haxx.se"
- curl_ssl_msg="no (--with-{ssl,gnutls,nss,polarssl,mbedtls,cyassl,axtls,winssl,darwinssl} )"
+ curl_ssl_msg="no (--with-{ssl,gnutls,nss,polarssl,mbedtls,cyassl,axtls,winssl,darwinssl,mesalink} )"
curl_ssh_msg="no (--with-libssh2)"
curl_zlib_msg="no (--with-zlib)"
curl_brotli_msg="no (--with-brotli)"
@@ -17277,7 +17287,12 @@ rm -f core conftest.err conftest.$ac_objext \
fi
if test "x$cross_compiling" != "xyes" &&
test "$tmp_compiler_works" = "yes"; then
- if test "$cross_compiling" = yes; then :
+
+
+ old=$LD_LIBRARY_PATH
+ LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
+ export LD_LIBRARY_PATH
+ if test "$cross_compiling" = yes; then :
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
@@ -17303,12 +17318,10 @@ int main (void)
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
-
- tmp_compiler_works="yes"
+ tmp_compiler_works="yes"
else
-
- tmp_compiler_works="no"
+ tmp_compiler_works="no"
echo " " >&6
echo "run-fail: test program exited with status $ac_status" >&6
echo " " >&6
@@ -17318,6 +17331,8 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+ LD_LIBRARY_PATH=$old # restore
+
fi
if test "$tmp_compiler_works" = "yes"; then
@@ -17469,7 +17484,12 @@ rm -f core conftest.err conftest.$ac_objext \
fi
if test "x$cross_compiling" != "xyes" &&
test "$tmp_compiler_works" = "yes"; then
- if test "$cross_compiling" = yes; then :
+
+
+ old=$LD_LIBRARY_PATH
+ LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
+ export LD_LIBRARY_PATH
+ if test "$cross_compiling" = yes; then :
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
@@ -17495,12 +17515,10 @@ int main (void)
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
-
- tmp_compiler_works="yes"
+ tmp_compiler_works="yes"
else
-
- tmp_compiler_works="no"
+ tmp_compiler_works="no"
echo " " >&6
echo "run-fail: test program exited with status $ac_status" >&6
echo " " >&6
@@ -17510,6 +17528,8 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+ LD_LIBRARY_PATH=$old # restore
+
fi
if test "$tmp_compiler_works" = "yes"; then
@@ -17714,7 +17734,12 @@ rm -f core conftest.err conftest.$ac_objext \
fi
if test "x$cross_compiling" != "xyes" &&
test "$tmp_compiler_works" = "yes"; then
- if test "$cross_compiling" = yes; then :
+
+
+ old=$LD_LIBRARY_PATH
+ LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
+ export LD_LIBRARY_PATH
+ if test "$cross_compiling" = yes; then :
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
@@ -17740,12 +17765,10 @@ int main (void)
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
-
- tmp_compiler_works="yes"
+ tmp_compiler_works="yes"
else
-
- tmp_compiler_works="no"
+ tmp_compiler_works="no"
echo " " >&6
echo "run-fail: test program exited with status $ac_status" >&6
echo " " >&6
@@ -17755,6 +17778,8 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+ LD_LIBRARY_PATH=$old # restore
+
fi
if test "$tmp_compiler_works" = "yes"; then
@@ -18147,7 +18172,12 @@ rm -f core conftest.err conftest.$ac_objext \
fi
if test "x$cross_compiling" != "xyes" &&
test "$tmp_compiler_works" = "yes"; then
- if test "$cross_compiling" = yes; then :
+
+
+ old=$LD_LIBRARY_PATH
+ LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
+ export LD_LIBRARY_PATH
+ if test "$cross_compiling" = yes; then :
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
@@ -18173,12 +18203,10 @@ int main (void)
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
-
- tmp_compiler_works="yes"
+ tmp_compiler_works="yes"
else
-
- tmp_compiler_works="no"
+ tmp_compiler_works="no"
echo " " >&6
echo "run-fail: test program exited with status $ac_status" >&6
echo " " >&6
@@ -18188,6 +18216,8 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+ LD_LIBRARY_PATH=$old # restore
+
fi
if test "$tmp_compiler_works" = "yes"; then
@@ -20504,7 +20534,12 @@ $as_echo "$curl_cv_gclk_LIBS" >&6; }
test "$curl_func_clock_gettime" = "yes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if monotonic clock_gettime works" >&5
$as_echo_n "checking if monotonic clock_gettime works... " >&6; }
- if test "$cross_compiling" = yes; then :
+
+
+ old=$LD_LIBRARY_PATH
+ LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
+ export LD_LIBRARY_PATH
+ if test "$cross_compiling" = yes; then :
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
@@ -20546,13 +20581,11 @@ int main (void)
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: HAVE_CLOCK_GETTIME_MONOTONIC will not be defined" >&5
$as_echo "$as_me: WARNING: HAVE_CLOCK_GETTIME_MONOTONIC will not be defined" >&2;}
@@ -20564,6 +20597,8 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+ LD_LIBRARY_PATH=$old # restore
+
fi
#
case "$curl_func_clock_gettime" in
@@ -23724,6 +23759,21 @@ fi
fi
+if test X"$OPENSSL_ENABLED" = X"1"; then
+# Check whether --enable-openssl-auto-load-config was given.
+if test "${enable_openssl_auto_load_config+set}" = set; then :
+ enableval=$enable_openssl_auto_load_config; if test X"$enableval" = X"no"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: automatic loading of OpenSSL configuration disabled" >&5
+$as_echo "$as_me: automatic loading of OpenSSL configuration disabled" >&6;}
+
+$as_echo "#define CURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG 1" >>confdefs.h
+
+ fi
+
+fi
+
+fi
+
OPT_GNUTLS=no
@@ -24890,6 +24940,167 @@ $as_echo "$as_me: Added $cyassllib to CURL_LIBRARY_PATH" >&6;}
fi
+OPT_MESALINK=no
+
+_cppflags=$CPPFLAGS
+_ldflags=$LDFLAGS
+
+# Check whether --with-mesalink was given.
+if test "${with_mesalink+set}" = set; then :
+ withval=$with_mesalink; OPT_MESALINK=$withval
+fi
+
+
+if test -z "$ssl_backends" -o "x$OPT_MESALINK" != xno; then
+ ssl_msg=
+
+ if test X"$OPT_MESALINK" != Xno; then
+
+ if test "$OPT_MESALINK" = "yes"; then
+ OPT_MESALINK=""
+ fi
+
+ if test -z "$OPT_MESALINK" ; then
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mesalink_library_init in -lmesalink" >&5
+$as_echo_n "checking for mesalink_library_init in -lmesalink... " >&6; }
+if ${ac_cv_lib_mesalink_mesalink_library_init+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lmesalink $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+
+#ifdef __cplusplus
+extern "C"
+#endif
+char mesalink_library_init ();
+int main (void)
+{
+return mesalink_library_init ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_mesalink_mesalink_library_init=yes
+else
+ ac_cv_lib_mesalink_mesalink_library_init=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mesalink_mesalink_library_init" >&5
+$as_echo "$ac_cv_lib_mesalink_mesalink_library_init" >&6; }
+if test "x$ac_cv_lib_mesalink_mesalink_library_init" = xyes; then :
+
+
+$as_echo "#define USE_MESALINK 1" >>confdefs.h
+
+ USE_MESALINK=1
+
+ MESALINK_ENABLED=1
+ USE_MESALINK="yes"
+ ssl_msg="MesaLink"
+ test mesalink != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
+
+fi
+
+ fi
+
+ addld=""
+ addlib=""
+ addcflags=""
+ mesalinklib=""
+
+ if test "x$USE_MESALINK" != "xyes"; then
+ addld=-L$OPT_MESALINK/lib$libsuff
+ addcflags=-I$OPT_MESALINK/include
+ mesalinklib=$OPT_MESALINK/lib$libsuff
+
+ LDFLAGS="$LDFLAGS $addld"
+ if test "$addcflags" != "-I/usr/include"; then
+ CPPFLAGS="$CPPFLAGS $addcflags"
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mesalink_library_init in -lmesalink" >&5
+$as_echo_n "checking for mesalink_library_init in -lmesalink... " >&6; }
+if ${ac_cv_lib_mesalink_mesalink_library_init+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lmesalink $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+
+#ifdef __cplusplus
+extern "C"
+#endif
+char mesalink_library_init ();
+int main (void)
+{
+return mesalink_library_init ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_mesalink_mesalink_library_init=yes
+else
+ ac_cv_lib_mesalink_mesalink_library_init=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mesalink_mesalink_library_init" >&5
+$as_echo "$ac_cv_lib_mesalink_mesalink_library_init" >&6; }
+if test "x$ac_cv_lib_mesalink_mesalink_library_init" = xyes; then :
+
+
+$as_echo "#define USE_MESALINK 1" >>confdefs.h
+
+ USE_MESALINK=1
+
+ MESALINK_ENABLED=1
+ USE_MESALINK="yes"
+ ssl_msg="MesaLink"
+ test mesalink != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
+
+else
+
+ CPPFLAGS=$_cppflags
+ LDFLAGS=$_ldflags
+
+fi
+
+ fi
+
+ if test "x$USE_MESALINK" = "xyes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: detected MesaLink" >&5
+$as_echo "$as_me: detected MesaLink" >&6;}
+
+ LIBS="-lmesalink $LIBS"
+
+ if test -n "$mesalinklib"; then
+ if test "x$cross_compiling" != "xyes"; then
+ LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$mesalinklib"
+ export LD_LIBRARY_PATH
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Added $mesalinklib to LD_LIBRARY_PATH" >&5
+$as_echo "$as_me: Added $mesalinklib to LD_LIBRARY_PATH" >&6;}
+ fi
+ fi
+ fi
+
+ fi
+ test -z "$ssl_msg" || ssl_backends="${ssl_backends:+$ssl_backends, }$ssl_msg"
+fi
+
+
OPT_NSS=no
@@ -25426,12 +25637,12 @@ fi
test -z "$ssl_msg" || ssl_backends="${ssl_backends:+$ssl_backends, }$ssl_msg"
fi
-case "x$OPENSSL_ENABLED$GNUTLS_ENABLED$NSS_ENABLED$POLARSSL_ENABLED$MBEDTLS_ENABLED$AXTLS_ENABLED$CYASSL_ENABLED$WINSSL_ENABLED$DARWINSSL_ENABLED" in
+case "x$OPENSSL_ENABLED$GNUTLS_ENABLED$NSS_ENABLED$POLARSSL_ENABLED$MBEDTLS_ENABLED$AXTLS_ENABLED$CYASSL_ENABLED$WINSSL_ENABLED$DARWINSSL_ENABLED$MESALINK_ENABLED" in
x)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more." >&5
$as_echo "$as_me: WARNING: SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more." >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Use --with-ssl, --with-gnutls, --with-polarssl, --with-cyassl, --with-nss, --with-axtls, --with-winssl, or --with-darwinssl to address this." >&5
-$as_echo "$as_me: WARNING: Use --with-ssl, --with-gnutls, --with-polarssl, --with-cyassl, --with-nss, --with-axtls, --with-winssl, or --with-darwinssl to address this." >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Use --with-ssl, --with-gnutls, --with-polarssl, --with-cyassl, --with-nss, --with-axtls, --with-winssl, --with-darwinssl, or --with-mesalink to address this." >&5
+$as_echo "$as_me: WARNING: Use --with-ssl, --with-gnutls, --with-polarssl, --with-cyassl, --with-nss, --with-axtls, --with-winssl, --with-darwinssl, or --with-mesalink to address this." >&2;}
;;
x1)
# one SSL backend is enabled
@@ -28919,403 +29130,6 @@ fi
-curl_includes_ws2tcpip="\
-/* includes start */
-#ifdef HAVE_WINDOWS_H
-# ifndef WIN32_LEAN_AND_MEAN
-# define WIN32_LEAN_AND_MEAN
-# endif
-# include <windows.h>
-# ifdef HAVE_WINSOCK2_H
-# include <winsock2.h>
-# ifdef HAVE_WS2TCPIP_H
-# include <ws2tcpip.h>
-# endif
-# endif
-#endif
-/* includes end */"
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for windows.h" >&5
-$as_echo_n "checking for windows.h... " >&6; }
-if ${curl_cv_header_windows_h+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-
-#undef inline
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#include <windows.h>
-
-int main (void)
-{
-
-#if defined(__CYGWIN__) || defined(__CEGCC__)
- HAVE_WINDOWS_H shall not be defined.
-#else
- int dummy=2*WINVER;
-#endif
-
- ;
- return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
- curl_cv_header_windows_h="yes"
-
-else
-
- curl_cv_header_windows_h="no"
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_windows_h" >&5
-$as_echo "$curl_cv_header_windows_h" >&6; }
- case "$curl_cv_header_windows_h" in
- yes)
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_WINDOWS_H 1
-_ACEOF
-
- ;;
- esac
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for winsock2.h" >&5
-$as_echo_n "checking for winsock2.h... " >&6; }
-if ${curl_cv_header_winsock2_h+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-
-#undef inline
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#include <windows.h>
-#include <winsock2.h>
-
-int main (void)
-{
-
-#if defined(__CYGWIN__) || defined(__CEGCC__) || defined(__MINGW32CE__)
- HAVE_WINSOCK2_H shall not be defined.
-#else
- int dummy=2*IPPROTO_ESP;
-#endif
-
- ;
- return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
- curl_cv_header_winsock2_h="yes"
-
-else
-
- curl_cv_header_winsock2_h="no"
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_winsock2_h" >&5
-$as_echo "$curl_cv_header_winsock2_h" >&6; }
- case "$curl_cv_header_winsock2_h" in
- yes)
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_WINSOCK2_H 1
-_ACEOF
-
- ;;
- esac
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ws2tcpip.h" >&5
-$as_echo_n "checking for ws2tcpip.h... " >&6; }
-if ${curl_cv_header_ws2tcpip_h+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-
-#undef inline
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#include <windows.h>
-#include <winsock2.h>
-#include <ws2tcpip.h>
-
-int main (void)
-{
-
-#if defined(__CYGWIN__) || defined(__CEGCC__) || defined(__MINGW32CE__)
- HAVE_WS2TCPIP_H shall not be defined.
-#else
- int dummy=2*IP_PKTINFO;
-#endif
-
- ;
- return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
- curl_cv_header_ws2tcpip_h="yes"
-
-else
-
- curl_cv_header_ws2tcpip_h="no"
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_ws2tcpip_h" >&5
-$as_echo "$curl_cv_header_ws2tcpip_h" >&6; }
- case "$curl_cv_header_ws2tcpip_h" in
- yes)
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_WS2TCPIP_H 1
-_ACEOF
-
- ;;
- esac
-
-
-
-curl_includes_sys_socket="\
-/* includes start */
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-# include <sys/socket.h>
-#endif
-/* includes end */"
- for ac_header in sys/types.h sys/socket.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_sys_socket
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-curl_preprocess_callconv="\
-/* preprocess start */
-#ifdef HAVE_WINDOWS_H
-# define FUNCALLCONV __stdcall
-#else
-# define FUNCALLCONV
-#endif
-/* preprocess end */"
-
-
- #
- #
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for curl_socklen_t data type" >&5
-$as_echo_n "checking for curl_socklen_t data type... " >&6; }
- curl_typeof_curl_socklen_t="unknown"
- for arg1 in int SOCKET; do
- for arg2 in 'struct sockaddr' void; do
- for t in socklen_t int size_t 'unsigned int' long 'unsigned long' void; do
- if test "$curl_typeof_curl_socklen_t" = "unknown"; then
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-
- $curl_includes_ws2tcpip
- $curl_includes_sys_socket
- $curl_preprocess_callconv
- extern int FUNCALLCONV getpeername($arg1, $arg2 *, $t *);
-
-int main (void)
-{
-
- $t *lenptr = 0;
- if(0 != getpeername(0, 0, lenptr))
- return 1;
-
- ;
- return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
- curl_typeof_curl_socklen_t="$t"
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
- done
- done
- done
- for t in socklen_t int; do
- if test "$curl_typeof_curl_socklen_t" = "void"; then
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-
- $curl_includes_sys_socket
- typedef $t curl_socklen_t;
-
-int main (void)
-{
-
- curl_socklen_t dummy;
-
- ;
- return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
- curl_typeof_curl_socklen_t="$t"
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
- done
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_typeof_curl_socklen_t" >&5
-$as_echo "$curl_typeof_curl_socklen_t" >&6; }
- if test "$curl_typeof_curl_socklen_t" = "void" ||
- test "$curl_typeof_curl_socklen_t" = "unknown"; then
- as_fn_error $? "cannot find data type for curl_socklen_t." "$LINENO" 5
- fi
- #
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of curl_socklen_t" >&5
-$as_echo_n "checking size of curl_socklen_t... " >&6; }
- curl_sizeof_curl_socklen_t="unknown"
- curl_pull_headers_socklen_t="unknown"
- if test "$curl_cv_header_ws2tcpip_h" = "yes"; then
- tst_pull_header_checks='none ws2tcpip'
- tst_size_checks='4'
- else
- tst_pull_header_checks='none systypes syssocket'
- tst_size_checks='4 8 2'
- fi
- for tst_size in $tst_size_checks; do
- for tst_pull_headers in $tst_pull_header_checks; do
- if test "$curl_sizeof_curl_socklen_t" = "unknown"; then
- case $tst_pull_headers in
- ws2tcpip)
- tmp_includes="$curl_includes_ws2tcpip"
- ;;
- systypes)
- tmp_includes="$curl_includes_sys_types"
- ;;
- syssocket)
- tmp_includes="$curl_includes_sys_socket"
- ;;
- *)
- tmp_includes=""
- ;;
- esac
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-
- $tmp_includes
- typedef $curl_typeof_curl_socklen_t curl_socklen_t;
- typedef char dummy_arr[sizeof(curl_socklen_t) == $tst_size ? 1 : -1];
-
-int main (void)
-{
-
- curl_socklen_t dummy;
-
- ;
- return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
- curl_sizeof_curl_socklen_t="$tst_size"
- curl_pull_headers_socklen_t="$tst_pull_headers"
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
- done
- done
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_sizeof_curl_socklen_t" >&5
-$as_echo "$curl_sizeof_curl_socklen_t" >&6; }
- if test "$curl_sizeof_curl_socklen_t" = "unknown"; then
- as_fn_error $? "cannot find out size of curl_socklen_t." "$LINENO" 5
- fi
- #
- case $curl_pull_headers_socklen_t in
- ws2tcpip)
-
-cat >>confdefs.h <<_EOF
-#define CURL_PULL_WS2TCPIP_H 1
-_EOF
-
- ;;
- systypes)
-
-cat >>confdefs.h <<_EOF
-#define CURL_PULL_SYS_TYPES_H 1
-_EOF
-
- ;;
- syssocket)
-
-cat >>confdefs.h <<_EOF
-#define CURL_PULL_SYS_TYPES_H 1
-_EOF
-
-
-cat >>confdefs.h <<_EOF
-#define CURL_PULL_SYS_SOCKET_H 1
-_EOF
-
- ;;
- esac
-
-cat >>confdefs.h <<_EOF
-#define CURL_TYPEOF_CURL_SOCKLEN_T $curl_typeof_curl_socklen_t
-_EOF
-
-
-cat >>confdefs.h <<_EOF
-#define CURL_SIZEOF_CURL_SOCKLEN_T $curl_sizeof_curl_socklen_t
-_EOF
-
-
-
-
curl_includes_poll="\
/* includes start */
#ifdef HAVE_SYS_TYPES_H
@@ -30957,6 +30771,31 @@ $as_echo "no" >&6; }
fi
+curl_includes_sys_socket="\
+/* includes start */
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+# include <sys/socket.h>
+#endif
+/* includes end */"
+ for ac_header in sys/types.h sys/socket.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$curl_includes_sys_socket
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
#
tst_links_closesocket_camel="unknown"
tst_proto_closesocket_camel="unknown"
@@ -31672,6 +31511,191 @@ $as_echo "no" >&6; }
fi
+curl_includes_ws2tcpip="\
+/* includes start */
+#ifdef HAVE_WINDOWS_H
+# ifndef WIN32_LEAN_AND_MEAN
+# define WIN32_LEAN_AND_MEAN
+# endif
+# include <windows.h>
+# ifdef HAVE_WINSOCK2_H
+# include <winsock2.h>
+# ifdef HAVE_WS2TCPIP_H
+# include <ws2tcpip.h>
+# endif
+# endif
+#endif
+/* includes end */"
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for windows.h" >&5
+$as_echo_n "checking for windows.h... " >&6; }
+if ${curl_cv_header_windows_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+
+#undef inline
+#ifndef WIN32_LEAN_AND_MEAN
+#define WIN32_LEAN_AND_MEAN
+#endif
+#include <windows.h>
+
+int main (void)
+{
+
+#if defined(__CYGWIN__) || defined(__CEGCC__)
+ HAVE_WINDOWS_H shall not be defined.
+#else
+ int dummy=2*WINVER;
+#endif
+
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+ curl_cv_header_windows_h="yes"
+
+else
+
+ curl_cv_header_windows_h="no"
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_windows_h" >&5
+$as_echo "$curl_cv_header_windows_h" >&6; }
+ case "$curl_cv_header_windows_h" in
+ yes)
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_WINDOWS_H 1
+_ACEOF
+
+ ;;
+ esac
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for winsock2.h" >&5
+$as_echo_n "checking for winsock2.h... " >&6; }
+if ${curl_cv_header_winsock2_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+
+#undef inline
+#ifndef WIN32_LEAN_AND_MEAN
+#define WIN32_LEAN_AND_MEAN
+#endif
+#include <windows.h>
+#include <winsock2.h>
+
+int main (void)
+{
+
+#if defined(__CYGWIN__) || defined(__CEGCC__) || defined(__MINGW32CE__)
+ HAVE_WINSOCK2_H shall not be defined.
+#else
+ int dummy=2*IPPROTO_ESP;
+#endif
+
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+ curl_cv_header_winsock2_h="yes"
+
+else
+
+ curl_cv_header_winsock2_h="no"
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_winsock2_h" >&5
+$as_echo "$curl_cv_header_winsock2_h" >&6; }
+ case "$curl_cv_header_winsock2_h" in
+ yes)
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_WINSOCK2_H 1
+_ACEOF
+
+ ;;
+ esac
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ws2tcpip.h" >&5
+$as_echo_n "checking for ws2tcpip.h... " >&6; }
+if ${curl_cv_header_ws2tcpip_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+
+#undef inline
+#ifndef WIN32_LEAN_AND_MEAN
+#define WIN32_LEAN_AND_MEAN
+#endif
+#include <windows.h>
+#include <winsock2.h>
+#include <ws2tcpip.h>
+
+int main (void)
+{
+
+#if defined(__CYGWIN__) || defined(__CEGCC__) || defined(__MINGW32CE__)
+ HAVE_WS2TCPIP_H shall not be defined.
+#else
+ int dummy=2*IP_PKTINFO;
+#endif
+
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+ curl_cv_header_ws2tcpip_h="yes"
+
+else
+
+ curl_cv_header_ws2tcpip_h="no"
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_header_ws2tcpip_h" >&5
+$as_echo "$curl_cv_header_ws2tcpip_h" >&6; }
+ case "$curl_cv_header_ws2tcpip_h" in
+ yes)
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_WS2TCPIP_H 1
+_ACEOF
+
+ ;;
+ esac
+
+
+
curl_includes_netdb="\
/* includes start */
#ifdef HAVE_SYS_TYPES_H
@@ -32543,7 +32567,12 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
test "$tst_compi_getaddrinfo" = "yes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo seems to work" >&5
$as_echo_n "checking if getaddrinfo seems to work... " >&6; }
- if test "$cross_compiling" = yes; then :
+
+
+ old=$LD_LIBRARY_PATH
+ LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
+ export LD_LIBRARY_PATH
+ if test "$cross_compiling" = yes; then :
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
@@ -32588,14 +32617,12 @@ int main (void)
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
tst_works_getaddrinfo="yes"
else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
tst_works_getaddrinfo="no"
@@ -32604,6 +32631,8 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+ LD_LIBRARY_PATH=$old # restore
+
fi
#
if test "$tst_compi_getaddrinfo" = "yes" &&
@@ -33739,6 +33768,16 @@ $as_echo "no" >&6; }
fi
+curl_preprocess_callconv="\
+/* preprocess start */
+#ifdef HAVE_WINDOWS_H
+# define FUNCALLCONV __stdcall
+#else
+# define FUNCALLCONV
+#endif
+/* preprocess end */"
+
+
#
tst_links_gethostname="unknown"
tst_proto_gethostname="unknown"
@@ -34047,7 +34086,12 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
test "$tst_compi_getifaddrs" = "yes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if getifaddrs seems to work" >&5
$as_echo_n "checking if getifaddrs seems to work... " >&6; }
- if test "$cross_compiling" = yes; then :
+
+
+ old=$LD_LIBRARY_PATH
+ LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
+ export LD_LIBRARY_PATH
+ if test "$cross_compiling" = yes; then :
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
@@ -34078,14 +34122,12 @@ int main (void)
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
tst_works_getifaddrs="yes"
else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
tst_works_getifaddrs="no"
@@ -34094,6 +34136,8 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+ LD_LIBRARY_PATH=$old # restore
+
fi
#
if test "$tst_compi_getifaddrs" = "yes" &&
@@ -34532,7 +34576,12 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
test "$tst_compi_gmtime_r" = "yes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if gmtime_r seems to work" >&5
$as_echo_n "checking if gmtime_r seems to work... " >&6; }
- if test "$cross_compiling" = yes; then :
+
+
+ old=$LD_LIBRARY_PATH
+ LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
+ export LD_LIBRARY_PATH
+ if test "$cross_compiling" = yes; then :
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
@@ -34563,14 +34612,12 @@ int main (void)
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
tst_works_gmtime_r="yes"
else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
tst_works_gmtime_r="no"
@@ -34579,6 +34626,8 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+ LD_LIBRARY_PATH=$old # restore
+
fi
#
if test "$tst_compi_gmtime_r" = "yes" &&
@@ -34983,7 +35032,12 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
test "$tst_compi_inet_ntop" = "yes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_ntop seems to work" >&5
$as_echo_n "checking if inet_ntop seems to work... " >&6; }
- if test "$cross_compiling" = yes; then :
+
+
+ old=$LD_LIBRARY_PATH
+ LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
+ export LD_LIBRARY_PATH
+ if test "$cross_compiling" = yes; then :
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
@@ -35056,14 +35110,12 @@ int main (void)
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
tst_works_inet_ntop="yes"
else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
tst_works_inet_ntop="no"
@@ -35072,6 +35124,8 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+ LD_LIBRARY_PATH=$old # restore
+
fi
#
if test "$tst_compi_inet_ntop" = "yes" &&
@@ -35230,7 +35284,12 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
test "$tst_compi_inet_pton" = "yes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if inet_pton seems to work" >&5
$as_echo_n "checking if inet_pton seems to work... " >&6; }
- if test "$cross_compiling" = yes; then :
+
+
+ old=$LD_LIBRARY_PATH
+ LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
+ export LD_LIBRARY_PATH
+ if test "$cross_compiling" = yes; then :
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
@@ -35296,14 +35355,12 @@ int main (void)
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
tst_works_inet_pton="yes"
else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
tst_works_inet_pton="no"
@@ -35312,6 +35369,8 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+ LD_LIBRARY_PATH=$old # restore
+
fi
#
if test "$tst_compi_inet_pton" = "yes" &&
@@ -36238,7 +36297,12 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
test "$tst_compi_localtime_r" = "yes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if localtime_r seems to work" >&5
$as_echo_n "checking if localtime_r seems to work... " >&6; }
- if test "$cross_compiling" = yes; then :
+
+
+ old=$LD_LIBRARY_PATH
+ LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
+ export LD_LIBRARY_PATH
+ if test "$cross_compiling" = yes; then :
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
@@ -36269,14 +36333,12 @@ int main (void)
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
tst_works_localtime_r="yes"
else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
tst_works_localtime_r="no"
@@ -36285,6 +36347,8 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+ LD_LIBRARY_PATH=$old # restore
+
fi
#
if test "$tst_compi_localtime_r" = "yes" &&
@@ -36628,7 +36692,12 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
test "$tst_compi_poll" = "yes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if poll seems to work" >&5
$as_echo_n "checking if poll seems to work... " >&6; }
- if test "$cross_compiling" = yes; then :
+
+
+ old=$LD_LIBRARY_PATH
+ LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
+ export LD_LIBRARY_PATH
+ if test "$cross_compiling" = yes; then :
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
@@ -36671,14 +36740,12 @@ int main (void)
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
tst_works_poll="yes"
else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
tst_works_poll="no"
@@ -36687,6 +36754,8 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+ LD_LIBRARY_PATH=$old # restore
+
fi
#
if test "$tst_compi_poll" = "yes" &&
@@ -38548,7 +38617,12 @@ $as_echo "yes" >&6; }
test "$tst_glibc_strerror_r" = "yes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if strerror_r seems to work" >&5
$as_echo_n "checking if strerror_r seems to work... " >&6; }
- if test "$cross_compiling" = yes; then :
+
+
+ old=$LD_LIBRARY_PATH
+ LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
+ export LD_LIBRARY_PATH
+ if test "$cross_compiling" = yes; then :
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
@@ -38582,14 +38656,12 @@ int main (void)
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
tst_works_glibc_strerror_r="yes"
else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
tst_works_glibc_strerror_r="no"
@@ -38598,6 +38670,8 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+ LD_LIBRARY_PATH=$old # restore
+
fi
#
if test "$tst_compi_strerror_r" = "yes" &&
@@ -38651,7 +38725,12 @@ $as_echo "yes" >&6; }
test "$tst_posix_strerror_r" = "yes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if strerror_r seems to work" >&5
$as_echo_n "checking if strerror_r seems to work... " >&6; }
- if test "$cross_compiling" = yes; then :
+
+
+ old=$LD_LIBRARY_PATH
+ LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
+ export LD_LIBRARY_PATH
+ if test "$cross_compiling" = yes; then :
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
@@ -38685,14 +38764,12 @@ int main (void)
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
tst_works_posix_strerror_r="yes"
else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
tst_works_posix_strerror_r="no"
@@ -38701,6 +38778,8 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+ LD_LIBRARY_PATH=$old # restore
+
fi
#
if test "$tst_works_glibc_strerror_r" = "yes"; then
@@ -40777,6 +40856,14 @@ if test "x$ac_cv_func_pthread_create" = xyes; then :
fi
+ case $host in
+ *-hp-hpux*)
+ USE_THREADS_POSIX=""
+ ;;
+ *)
+ ;;
+ esac
+
if test "$USE_THREADS_POSIX" != "1"
then
CFLAGS="$CFLAGS -pthread"
@@ -41503,7 +41590,7 @@ if test "x$want_curldebug_assumed" = "xyes" &&
ac_configure_args="$ac_configure_args --enable-curldebug"
fi
-ac_config_files="$ac_config_files Makefile docs/Makefile docs/examples/Makefile docs/libcurl/Makefile docs/libcurl/opts/Makefile docs/cmdline-opts/Makefile include/Makefile include/curl/Makefile src/Makefile lib/Makefile scripts/Makefile lib/libcurl.vers tests/Makefile tests/certs/Makefile tests/certs/scripts/Makefile tests/data/Makefile tests/server/Makefile tests/libtest/Makefile tests/unit/Makefile packages/Makefile packages/Win32/Makefile packages/Win32/cygwin/Makefile packages/Linux/Makefile packages/Linux/RPM/Makefile packages/Linux/RPM/curl.spec packages/Linux/RPM/curl-ssl.spec packages/Solaris/Makefile packages/EPM/curl.list packages/EPM/Makefile packages/vms/Makefile packages/AIX/Makefile packages/AIX/RPM/Makefile packages/AIX/RPM/curl.spec curl-config libcurl.pc"
+ac_config_files="$ac_config_files Makefile docs/Makefile docs/examples/Makefile docs/libcurl/Makefile docs/libcurl/opts/Makefile docs/cmdline-opts/Makefile include/Makefile include/curl/Makefile src/Makefile lib/Makefile scripts/Makefile lib/libcurl.vers tests/Makefile tests/certs/Makefile tests/certs/scripts/Makefile tests/data/Makefile tests/server/Makefile tests/libtest/Makefile tests/unit/Makefile packages/Makefile packages/Win32/Makefile packages/Win32/cygwin/Makefile packages/Linux/Makefile packages/Linux/RPM/Makefile packages/Linux/RPM/curl.spec packages/Linux/RPM/curl-ssl.spec packages/Solaris/Makefile packages/vms/Makefile packages/AIX/Makefile packages/AIX/RPM/Makefile packages/AIX/RPM/curl.spec curl-config libcurl.pc"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
@@ -42613,8 +42700,6 @@ do
"packages/Linux/RPM/curl.spec") CONFIG_FILES="$CONFIG_FILES packages/Linux/RPM/curl.spec" ;;
"packages/Linux/RPM/curl-ssl.spec") CONFIG_FILES="$CONFIG_FILES packages/Linux/RPM/curl-ssl.spec" ;;
"packages/Solaris/Makefile") CONFIG_FILES="$CONFIG_FILES packages/Solaris/Makefile" ;;
- "packages/EPM/curl.list") CONFIG_FILES="$CONFIG_FILES packages/EPM/curl.list" ;;
- "packages/EPM/Makefile") CONFIG_FILES="$CONFIG_FILES packages/EPM/Makefile" ;;
"packages/vms/Makefile") CONFIG_FILES="$CONFIG_FILES packages/vms/Makefile" ;;
"packages/AIX/Makefile") CONFIG_FILES="$CONFIG_FILES packages/AIX/Makefile" ;;
"packages/AIX/RPM/Makefile") CONFIG_FILES="$CONFIG_FILES packages/AIX/RPM/Makefile" ;;
diff --git a/configure.ac b/configure.ac
index ff8f5df9..8a7dd6a1 100755
--- a/configure.ac
+++ b/configure.ac
@@ -158,7 +158,7 @@ AC_SUBST(PKGADD_VENDOR)
dnl
dnl initialize all the info variables
- curl_ssl_msg="no (--with-{ssl,gnutls,nss,polarssl,mbedtls,cyassl,axtls,winssl,darwinssl} )"
+ curl_ssl_msg="no (--with-{ssl,gnutls,nss,polarssl,mbedtls,cyassl,axtls,winssl,darwinssl,mesalink} )"
curl_ssh_msg="no (--with-libssh2)"
curl_zlib_msg="no (--with-zlib)"
curl_brotli_msg="no (--with-brotli)"
@@ -1876,6 +1876,20 @@ if test "$OPENSSL_ENABLED" = "1"; then
])
fi
+dnl ---
+dnl Whether the OpenSSL configuration will be loaded automatically
+dnl ---
+if test X"$OPENSSL_ENABLED" = X"1"; then
+AC_ARG_ENABLE(openssl-auto-load-config,
+AC_HELP_STRING([--enable-openssl-auto-load-config],[Enable automatic loading of OpenSSL configuration])
+AC_HELP_STRING([--disable-openssl-auto-load-config],[Disable automatic loading of OpenSSL configuration]),
+[ if test X"$enableval" = X"no"; then
+ AC_MSG_NOTICE([automatic loading of OpenSSL configuration disabled])
+ AC_DEFINE(CURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG, 1, [if the OpenSSL configuration won't be loaded automatically])
+ fi
+])
+fi
+
dnl ----------------------------------------------------
dnl check for GnuTLS
dnl ----------------------------------------------------
@@ -2396,6 +2410,98 @@ if test -z "$ssl_backends" -o "x$OPT_CYASSL" != xno; then
fi
dnl ----------------------------------------------------
+dnl check for MesaLink
+dnl ----------------------------------------------------
+
+dnl Default to compiler & linker defaults for MesaLink files & libraries.
+OPT_MESALINK=no
+
+_cppflags=$CPPFLAGS
+_ldflags=$LDFLAGS
+AC_ARG_WITH(mesalink,dnl
+AC_HELP_STRING([--with-mesalink=PATH],[where to look for MesaLink, PATH points to the installation root])
+AC_HELP_STRING([--without-mesalink], [disable MesaLink detection]),
+ OPT_MESALINK=$withval)
+
+if test -z "$ssl_backends" -o "x$OPT_MESALINK" != xno; then
+ ssl_msg=
+
+ if test X"$OPT_MESALINK" != Xno; then
+
+ if test "$OPT_MESALINK" = "yes"; then
+ OPT_MESALINK=""
+ fi
+
+ if test -z "$OPT_MESALINK" ; then
+ dnl check for lib first without setting any new path
+
+ AC_CHECK_LIB(mesalink, mesalink_library_init,
+ dnl libmesalink found, set the variable
+ [
+ AC_DEFINE(USE_MESALINK, 1, [if MesaLink is enabled])
+ AC_SUBST(USE_MESALINK, [1])
+ MESALINK_ENABLED=1
+ USE_MESALINK="yes"
+ ssl_msg="MesaLink"
+ test mesalink != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
+ ])
+ fi
+
+ addld=""
+ addlib=""
+ addcflags=""
+ mesalinklib=""
+
+ if test "x$USE_MESALINK" != "xyes"; then
+ dnl add the path and test again
+ addld=-L$OPT_MESALINK/lib$libsuff
+ addcflags=-I$OPT_MESALINK/include
+ mesalinklib=$OPT_MESALINK/lib$libsuff
+
+ LDFLAGS="$LDFLAGS $addld"
+ if test "$addcflags" != "-I/usr/include"; then
+ CPPFLAGS="$CPPFLAGS $addcflags"
+ fi
+
+ AC_CHECK_LIB(mesalink, mesalink_library_init,
+ [
+ AC_DEFINE(USE_MESALINK, 1, [if MesaLink is enabled])
+ AC_SUBST(USE_MESALINK, [1])
+ MESALINK_ENABLED=1
+ USE_MESALINK="yes"
+ ssl_msg="MesaLink"
+ test mesalink != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
+ ],
+ [
+ CPPFLAGS=$_cppflags
+ LDFLAGS=$_ldflags
+ ])
+ fi
+
+ if test "x$USE_MESALINK" = "xyes"; then
+ AC_MSG_NOTICE([detected MesaLink])
+
+ LIBS="-lmesalink $LIBS"
+
+ if test -n "$mesalinklib"; then
+ dnl when shared libs were found in a path that the run-time
+ dnl linker doesn't search through, we need to add it to
+ dnl LD_LIBRARY_PATH to prevent further configure tests to fail
+ dnl due to this
+ if test "x$cross_compiling" != "xyes"; then
+ LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$mesalinklib"
+ export LD_LIBRARY_PATH
+ AC_MSG_NOTICE([Added $mesalinklib to LD_LIBRARY_PATH])
+ fi
+ fi
+ fi
+
+ fi dnl MesaLink not disabled
+
+ test -z "$ssl_msg" || ssl_backends="${ssl_backends:+$ssl_backends, }$ssl_msg"
+fi
+
+dnl ----------------------------------------------------
dnl NSS. Only check if GnuTLS and OpenSSL are not enabled
dnl ----------------------------------------------------
@@ -2585,10 +2691,10 @@ if test -z "$ssl_backends" -o "x$OPT_AXTLS" != xno; then
test -z "$ssl_msg" || ssl_backends="${ssl_backends:+$ssl_backends, }$ssl_msg"
fi
-case "x$OPENSSL_ENABLED$GNUTLS_ENABLED$NSS_ENABLED$POLARSSL_ENABLED$MBEDTLS_ENABLED$AXTLS_ENABLED$CYASSL_ENABLED$WINSSL_ENABLED$DARWINSSL_ENABLED" in
+case "x$OPENSSL_ENABLED$GNUTLS_ENABLED$NSS_ENABLED$POLARSSL_ENABLED$MBEDTLS_ENABLED$AXTLS_ENABLED$CYASSL_ENABLED$WINSSL_ENABLED$DARWINSSL_ENABLED$MESALINK_ENABLED" in
x)
AC_MSG_WARN([SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more.])
- AC_MSG_WARN([Use --with-ssl, --with-gnutls, --with-polarssl, --with-cyassl, --with-nss, --with-axtls, --with-winssl, or --with-darwinssl to address this.])
+ AC_MSG_WARN([Use --with-ssl, --with-gnutls, --with-polarssl, --with-cyassl, --with-nss, --with-axtls, --with-winssl, --with-darwinssl, or --with-mesalink to address this.])
;;
x1)
# one SSL backend is enabled
@@ -3246,7 +3352,7 @@ fi
dnl Let's hope this split URL remains working:
-dnl http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/ \
+dnl https://www15.software.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/ \
dnl genprogc/thread_quick_ref.htm
@@ -3544,8 +3650,6 @@ CURL_RUN_IFELSE(
AC_MSG_RESULT([no])
])
-CURL_CONFIGURE_CURL_SOCKLEN_T
-
CURL_CONFIGURE_PULL_SYS_POLL
TYPE_IN_ADDR_T
@@ -3791,6 +3895,16 @@ if test "$want_pthreads" != "no"; then
dnl first check for function without lib
AC_CHECK_FUNC(pthread_create, [USE_THREADS_POSIX=1] )
+ dnl on HPUX, life is more complicated...
+ case $host in
+ *-hp-hpux*)
+ dnl it doesn't actually work without -lpthread
+ USE_THREADS_POSIX=""
+ ;;
+ *)
+ ;;
+ esac
+
dnl if it wasn't found without lib, search for it in pthread lib
if test "$USE_THREADS_POSIX" != "1"
then
@@ -4233,8 +4347,6 @@ AC_CONFIG_FILES([Makefile \
packages/Linux/RPM/curl.spec \
packages/Linux/RPM/curl-ssl.spec \
packages/Solaris/Makefile \
- packages/EPM/curl.list \
- packages/EPM/Makefile \
packages/vms/Makefile \
packages/AIX/Makefile \
packages/AIX/RPM/Makefile \
diff --git a/curl-config.in b/curl-config.in
index 2f958ca9..0a7e0353 100644
--- a/curl-config.in
+++ b/curl-config.in
@@ -6,7 +6,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 2001 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 2001 - 2018, 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
@@ -107,17 +107,29 @@ while test $# -gt 0; do
# when extracting the patch part we strip off everything after a
# dash as that's used for things like version 1.2.3-CVS
cpatch=`echo $checkfor | cut -d. -f3 | cut -d- -f1`
- checknum=`echo "$cmajor*256*256 + $cminor*256 + ${cpatch:-0}" | bc`
- numuppercase=`echo @VERSIONNUM@ | tr 'a-f' 'A-F'`
- nownum=`echo "obase=10; ibase=16; $numuppercase" | bc`
- if test "$nownum" -ge "$checknum"; then
- # silent success
- exit 0
- else
- echo "requested version $checkfor is newer than existing @CURLVERSION@"
- exit 1
+ vmajor=`echo @CURLVERSION@ | cut -d. -f1`
+ vminor=`echo @CURLVERSION@ | cut -d. -f2`
+ # when extracting the patch part we strip off everything after a
+ # dash as that's used for things like version 1.2.3-CVS
+ vpatch=`echo @CURLVERSION@ | cut -d. -f3 | cut -d- -f1`
+
+ if test "$vmajor" -gt "$cmajor"; then
+ exit 0;
+ fi
+ if test "$vmajor" -eq "$cmajor"; then
+ if test "$vminor" -gt "$cminor"; then
+ exit 0
+ fi
+ if test "$vminor" -eq "$cminor"; then
+ if test "$cpatch" -le "$vpatch"; then
+ exit 0
+ fi
+ fi
fi
+
+ echo "requested version $checkfor is newer than existing @CURLVERSION@"
+ exit 1
;;
--vernum)
diff --git a/docs/BINDINGS.md b/docs/BINDINGS.md
index 024f169e..b3624b1c 100644
--- a/docs/BINDINGS.md
+++ b/docs/BINDINGS.md
@@ -10,7 +10,7 @@ libcurl bindings
The bindings listed below are not part of the curl/libcurl distribution
archives, but must be downloaded and installed separately.
-[Ada95](http://www.almroth.com/adacurl/index.html) Written by Andreas Almroth
+[Ada95](https://web.archive.org/web/20070403105909/www.almroth.com/adacurl/index.html) Written by Andreas Almroth
[Basic](http://scriptbasic.com/) ScriptBasic bindings written by Peter Verhas
@@ -31,15 +31,15 @@ Cocoa: [BBHTTP](https://github.com/brunodecarvalho/BBHTTP) written by Bruno de C
[Eiffel](https://room.eiffel.com/library/curl) Written by Eiffel Software
-[Euphoria](http://rays-web.com/eulibcurl.htm) Written by Ray Smith
+[Euphoria](https://web.archive.org/web/20050204080544/rays-web.com/eulibcurl.htm) Written by Ray Smith
[Falcon](http://www.falconpl.org/index.ftd?page_id=prjs&prj_id=curl)
-[Ferite](http://www.ferite.org/) Written by Paul Querna
+[Ferite](https://web.archive.org/web/20150102192018/ferite.org/) Written by Paul Querna
[Gambas](https://gambas.sourceforge.io/)
-[glib/GTK+](http://atterer.net/glibcurl/) Written by Richard Atterer
+[glib/GTK+](https://web.archive.org/web/20100526203452/atterer.net/glibcurl) Written by Richard Atterer
Go: [go-curl](https://github.com/andelf/go-curl) by ShuYu Wang
@@ -63,11 +63,11 @@ Lua: [luacurl](http://luacurl.luaforge.net/) by Alexander Marinov, [Lua-cURL](ht
[node.js](https://github.com/JCMais/node-libcurl) node-libcurl by Jonathan Cardoso Machado
-[Object-Pascal](http://www.tekool.com/opcurl) Free Pascal, Delphi and Kylix binding written by Christophe Espern.
+[Object-Pascal](https://web.archive.org/web/20020610214926/www.tekool.com/opcurl) Free Pascal, Delphi and Kylix binding written by Christophe Espern.
[OCaml](https://opam.ocaml.org/packages/ocurl/) Written by Lars Nilsson and ygrek
-[Pascal](http://houston.quik.com/jkp/curlpas/) Free Pascal, Delphi and Kylix binding written by Jeffrey Pohlmeyer.
+[Pascal](https://web.archive.org/web/20030804091414/houston.quik.com/jkp/curlpas/) Free Pascal, Delphi and Kylix binding written by Jeffrey Pohlmeyer.
Perl: [WWW--Curl](https://github.com/szbalint/WWW--Curl) Maintained by Cris
Bailiff and Bálint Szilakszi,
@@ -103,16 +103,16 @@ Ruby: [curb](https://github.com/taf2/curb) written by Ross Bamford
[SPL](http://www.clifford.at/spl/) Written by Clifford Wolf
-[Tcl](http://mirror.yellow5.com/tclcurl/) Tclcurl by Andrés García
+[Tcl](https://web.archive.org/web/20160826011806/mirror.yellow5.com/tclcurl/) Tclcurl by Andrés García
[Visual Basic](https://sourceforge.net/projects/libcurl-vb/) libcurl-vb by Jeffrey Phillips
-[Visual Foxpro](http://www.ctl32.com.ar/libcurl.asp) by Carlos Alloatti
+[Visual Foxpro](https://web.archive.org/web/20130730181523/www.ctl32.com.ar/libcurl.asp) by Carlos Alloatti
[Q](https://q-lang.sourceforge.io/) The libcurl module is part of the default install
[wxWidgets](https://wxcode.sourceforge.io/components/wxcurl/) Written by Casey O'Donnell
-[XBLite](http://perso.wanadoo.fr/xblite/libraries.html) Written by David Szafranski
+[XBLite](https://web.archive.org/web/20060426150418/perso.wanadoo.fr/xblite/libraries.html) Written by David Szafranski
[Xojo](https://github.com/charonn0/RB-libcURL) Written by Andrew Lambert
diff --git a/docs/CIPHERS.md b/docs/CIPHERS.md
index 2a1d8ca7..0d3be3b5 100644
--- a/docs/CIPHERS.md
+++ b/docs/CIPHERS.md
@@ -1,7 +1,16 @@
# Ciphers
-With curl's options `CURLOPT_SSL_CIPHER_LIST` and `--ciphers` users can
-control which ciphers to consider when negotiating TLS connections.
+With curl's options
+[`CURLOPT_SSL_CIPHER_LIST`](https://curl.haxx.se/libcurl/c/CURLOPT_SSL_CIPHER_LIST.html)
+and
+[`--ciphers`](https://curl.haxx.se/docs/manpage.html#--ciphers)
+users can control which ciphers to consider when negotiating TLS connections.
+
+TLS 1.3 ciphers are supported since curl 7.61 with options
+[`CURLOPT_TLS13_CIPHERS`](https://curl.haxx.se/libcurl/c/CURLOPT_TLS13_CIPHERS.html)
+and
+[`--tls13-ciphers`](https://curl.haxx.se/docs/manpage.html#--tls13-ciphers)
+.
The names of the known ciphers differ depending on which TLS backend that
libcurl was built to use. This is an attempt to list known cipher names.
@@ -10,6 +19,8 @@ libcurl was built to use. This is an attempt to list known cipher names.
(based on [OpenSSL docs](https://www.openssl.org/docs/man1.1.0/apps/ciphers.html))
+When specifying multiple cipher names, separate them with colon (`:`).
+
### SSL3 cipher suites
`NULL-MD5`
@@ -144,13 +155,13 @@ libcurl was built to use. This is an attempt to list known cipher names.
### TLS 1.3 cipher suites
-(Note: the TLS 1.3 cipher suites are set with a separate option.)
+(Note these ciphers are set with `CURLOPT_TLS13_CIPHERS` and `--tls13-ciphers`)
-`TLS13-AES-256-GCM-SHA384`
-`TLS13-CHACHA20-POLY1305-SHA256`
-`TLS13-AES-128-GCM-SHA256`
-`TLS13-AES-128-CCM-8-SHA256`
-`TLS13-AES-128-CCM-SHA256`
+`TLS_AES_256_GCM_SHA384`
+`TLS_CHACHA20_POLY1305_SHA256`
+`TLS_AES_128_GCM_SHA256`
+`TLS_AES_128_CCM_8_SHA256`
+`TLS_AES_128_CCM_SHA256`
## NSS
diff --git a/docs/CONTRIBUTE.md b/docs/CONTRIBUTE.md
index 536a9ceb..caec3f4d 100644
--- a/docs/CONTRIBUTE.md
+++ b/docs/CONTRIBUTE.md
@@ -168,7 +168,7 @@ ways. Every pull request is verfied that:
- ... code coverage doesn't shrink drastically
If the pull-request fails one of these tests, it will show up as a red X and
-you are expected to fix the problem. If you don't understand whan the issue is
+you are expected to fix the problem. If you don't understand when the issue is
or have other problems to fix the complaint, just ask and other project
members will likely be able to help out.
diff --git a/docs/DEPRECATE.md b/docs/DEPRECATE.md
index eefcf839..3ca7ee99 100644
--- a/docs/DEPRECATE.md
+++ b/docs/DEPRECATE.md
@@ -70,3 +70,23 @@ libcurl code.
Left to answer: should the *setopt() function start to return error when these
options are set to be able to tell when they're trying to use options that are
no longer around or should we maintain behavior as much as possible?
+
+## `CURLOPT_DNS_USE_GLOBAL_CACHE`
+
+This option makes libcurl use a global non-thread-safe cache for DNS if
+enabled. The option has been marked as "obsolete" in the header file and in
+documentation for several years already.
+
+There's proper and safe method alternative provided since many years: the
+share API.
+
+### State
+
+In curl 7.62.0 setting this option to TRUE will not have any effect. The
+global cache will not be enabled. The code still remains so it is easy to
+revert if need be.
+
+### Removal
+
+Remove all global-cache related code from curl around April 2019 (might be
+7.66.0).
diff --git a/docs/FAQ b/docs/FAQ
index cb28c2a5..98de7b6a 100644
--- a/docs/FAQ
+++ b/docs/FAQ
@@ -370,7 +370,7 @@ FAQ
https://www.bis.doc.gov/licensing/do_i_needaneccn.html
An incomprehensible description of the two numbers above is here
- http://www.access.gpo.gov/bis/ear/pdf/ccl5-pt2.pdf
+ https://www.bis.doc.gov/index.php/documents/new-encryption/1653-ccl5-pt2-3
1.14 How do I submit my patch?
@@ -874,7 +874,7 @@ FAQ
4.5.3 "403 Forbidden"
- The server understood the request, but is refusing to fulfil it.
+ The server understood the request, but is refusing to fulfill it.
Authorization will not help and the request SHOULD NOT be repeated.
4.5.4 "404 Not Found"
diff --git a/docs/INSTALL.cmake b/docs/INSTALL.cmake
index 0a8e4397..03328cbc 100644
--- a/docs/INSTALL.cmake
+++ b/docs/INSTALL.cmake
@@ -88,4 +88,3 @@ cmake-gui
GUI. Once you have selected all the options you want, click the
"Generate" button.
6. Run the native build tool that you used CMake to generate.
-
diff --git a/docs/INSTALL.md b/docs/INSTALL.md
index 91b268f6..7d365576 100644
--- a/docs/INSTALL.md
+++ b/docs/INSTALL.md
@@ -108,6 +108,7 @@ libressl.
- axTLS: `--without-ssl --with-axtls`
- schannel: `--without-ssl --with-winssl`
- secure transport: `--without-ssl --with-darwinssl`
+ - MesaLink: `--without-ssl --with-mesalink`
# Windows
diff --git a/docs/INTERNALS.md b/docs/INTERNALS.md
index ab04fec7..d1c4c62b 100644
--- a/docs/INTERNALS.md
+++ b/docs/INTERNALS.md
@@ -301,7 +301,9 @@ HTTP(S)
An interesting detail with the HTTP(S) request, is the `Curl_add_buffer()`
series of functions we use. They append data to one single buffer, and when
- the building is finished the entire request is sent off in one single write. This is done this way to overcome problems with flawed firewalls and lame servers.
+ the building is finished the entire request is sent off in one single write.
+ This is done this way to overcome problems with flawed firewalls and lame
+ servers.
<a name="ftp"></a>
FTP
@@ -680,8 +682,8 @@ Content Encoding
that will work (besides "identity," which does nothing) are "deflate",
"gzip" and "br". If a response is encoded using the "compress" or methods,
libcurl will return an error indicating that the response could
- not be decoded. If <string> is NULL no Accept-Encoding header is generated.
- If <string> is a zero-length string, then an Accept-Encoding header
+ not be decoded. If `<string>` is NULL no Accept-Encoding header is generated.
+ If `<string>` is a zero-length string, then an Accept-Encoding header
containing all supported encodings will be generated.
The [`CURLOPT_ACCEPT_ENCODING`][5] must be set to any non-NULL value for
@@ -959,7 +961,8 @@ for older and later versions as things don't change drastically that often.
to work with.
`->scheme` is the URL scheme name, usually spelled out in uppercase. That's
- "HTTP" or "FTP" etc. SSL versions of the protocol need their own `Curl_handler` setup so HTTPS separate from HTTP.
+ "HTTP" or "FTP" etc. SSL versions of the protocol need their own
+ `Curl_handler` setup so HTTPS separate from HTTP.
`->setup_connection` is called to allow the protocol code to allocate
protocol specific data that then gets associated with that `Curl_easy` for
diff --git a/docs/KNOWN_BUGS b/docs/KNOWN_BUGS
index c8d8722e..1dcb79fa 100644
--- a/docs/KNOWN_BUGS
+++ b/docs/KNOWN_BUGS
@@ -55,7 +55,7 @@ problems may have been fixed or changed somewhat since this was written!
6.2 MIT Kerberos for Windows build
6.3 NTLM in system context uses wrong name
6.4 Negotiate and Kerberos V5 need a fake user name
- 6.5 NTLM doen't support password with § character
+ 6.5 NTLM doesn't support password with § character
7. FTP
7.1 FTP without or slow 220 response
@@ -70,7 +70,7 @@ problems may have been fixed or changed somewhat since this was written!
7.10 Stick to same family over SOCKS proxy
8. TELNET
- 8.1 TELNET and time limtiations don't work
+ 8.1 TELNET and time limitations don't work
8.2 Microsoft telnet server
9. SFTP and SCP
@@ -443,7 +443,7 @@ problems may have been fixed or changed somewhat since this was written!
new conn->bits.want_authentication which is set when any of the authentication
options are set.
-6.5 NTLM doen't support password with § character
+6.5 NTLM doesn't support password with § character
https://github.com/curl/curl/issues/2120
@@ -528,7 +528,7 @@ problems may have been fixed or changed somewhat since this was written!
7.9 Passive transfer tries only one IP address
When doing FTP operations through a proxy at localhost, the reported spotted
- that curl only tried to connect once to the proxy, while it had mulitiple
+ that curl only tried to connect once to the proxy, while it had multiple
addresses and a failed connect on one address should make it try the next.
After switching to passive mode (EPSV), curl should try all IP addresses for
@@ -548,7 +548,7 @@ problems may have been fixed or changed somewhat since this was written!
8. TELNET
-8.1 TELNET and time limtiations don't work
+8.1 TELNET and time limitations don't work
When using telnet, the time limitation options don't work.
https://curl.haxx.se/bug/view.cgi?id=846
@@ -644,7 +644,7 @@ problems may have been fixed or changed somewhat since this was written!
When connecting to "localhost" on Windows, curl will resolve the name for
both ipv4 and ipv6 and try to connect to both happy eyeballs-style. Something
- in there does however make it take 200 millseconds to succeed - which is the
+ in there does however make it take 200 milliseconds to succeed - which is the
HAPPY_EYEBALLS_TIMEOUT define exactly. Lowering that define speeds up the
connection, suggesting a problem in the HE handling.
diff --git a/docs/MANUAL b/docs/MANUAL
index 5df37e44..59b97427 100644
--- a/docs/MANUAL
+++ b/docs/MANUAL
@@ -178,8 +178,8 @@ PROXY
options:
curl -u "Remote-FTP-Username@remote.ftp.server Proxy-Username:Remote-Pass" \
- --ftp-account Proxy-Password --upload-file local-file \
- ftp://my-ftp.proxy.server:21/remote/upload/path/
+ --ftp-account Proxy-Password --upload-file local-file \
+ ftp://my-ftp.proxy.server:21/remote/upload/path/
See the manual for your FTP proxy to determine the form it expects to set up
transfers, and curl's -v option to see exactly what curl is sending.
@@ -234,8 +234,8 @@ UPLOADING
SMB / SMBS
- curl -T file.txt -u "domain\username:passwd"
- smb://server.example.com/share/
+ curl -T file.txt -u "domain\username:passwd" \
+ smb://server.example.com/share/
HTTP
@@ -294,7 +294,7 @@ POST (HTTP)
Post a simple "name" and "phone" guestbook.
curl -d "name=Rafael%20Sagula&phone=3320780" \
- http://www.where.com/guest.cgi
+ http://www.where.com/guest.cgi
How to post a form with curl, lesson #1:
@@ -326,8 +326,8 @@ POST (HTTP)
To post to this, you enter a curl command line like:
- curl -d "user=foobar&pass=12345&id=blablabla&ding=submit" (continues)
- http://www.formpost.com/getthis/post.cgi
+ curl -d "user=foobar&pass=12345&id=blablabla&ding=submit" \
+ http://www.formpost.com/getthis/post.cgi
While -d uses the application/x-www-form-urlencoded mime-type, generally
@@ -342,7 +342,7 @@ POST (HTTP)
with different content types using the following syntax:
curl -F "coolfiles=@fil1.gif;type=image/gif,fil2.txt,fil3.html" \
- http://www.post.com/postit.cgi
+ http://www.post.com/postit.cgi
If the content-type is not specified, curl will try to guess from the file
extension (it only knows a few), or use the previously specified type (from
@@ -694,7 +694,7 @@ HTTPS
included in recent versions of OpenSSL, and for older versions Dr Stephen
N. Henson has written a patch for SSLeay that adds this functionality. You
can get his patch (that requires an SSLeay installation) from his site at:
- http://www.drh-consultancy.demon.co.uk/
+ https://web.archive.org/web/20170715155512/www.drh-consultancy.demon.co.uk/
Example on how to automatically retrieve a document using a certificate with
a personal password:
@@ -839,7 +839,7 @@ LDAP
curl "ldap://user:passwd@ldap.frontec.se/o=frontec??sub?mail=*"
By default, if user and password provided, OpenLDAP/WinLDAP will use basic
- authentication. On Windows you can control this behavior by providing
+ authentication. On Windows you can control this behavior by providing
one of --basic, --ntlm or --digest option in curl command line
curl --ntlm "ldap://user:passwd@ldap.frontec.se/o=frontec??sub?mail=*"
@@ -866,7 +866,7 @@ ENVIRONMENT VARIABLES
If the host name matches one of these strings, or the host is within the
domain of one of these strings, transactions with that node will not be
proxied. When a domain is used, it needs to start with a period. A user can
- specify that both www.example.com and foo.example.com should not uses a
+ specify that both www.example.com and foo.example.com should not use a
proxy by setting NO_PROXY to ".example.com". By including the full name you
can exclude specific host names, so to make www.example.com not use a proxy
but still have foo.example.com do it, set NO_PROXY to "www.example.com"
diff --git a/docs/Makefile.am b/docs/Makefile.am
index 3c029678..0183f1af 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -116,4 +116,3 @@ pdf: $(PDFPAGES)
distclean:
rm -f $(CLEANFILES)
-
diff --git a/docs/README.md b/docs/README.md
index 56691fc4..6ee42aad 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,4 +1,4 @@
-![curl logo](https://cdn.rawgit.com/curl/curl-www/master/logo/curl-logo.svg)
+![curl logo](https://curl.haxx.se/logo/curl-logo.svg)
# Documentation
diff --git a/docs/README.netware b/docs/README.netware
index 9028963f..e6e1e000 100644
--- a/docs/README.netware
+++ b/docs/README.netware
@@ -22,5 +22,3 @@ README.netware
curl -M >manual.txt
Read the INSTALL file for instructions on how to compile curl self.
-
-
diff --git a/docs/README.win32 b/docs/README.win32
index 00ca197f..ca34dd16 100644
--- a/docs/README.win32
+++ b/docs/README.win32
@@ -21,5 +21,3 @@ README.win32
curl -M >manual.txt
Read the INSTALL file for instructions on how to compile curl self.
-
-
diff --git a/docs/RELEASE-PROCEDURE.md b/docs/RELEASE-PROCEDURE.md
index 637d0a70..635ed8f9 100644
--- a/docs/RELEASE-PROCEDURE.md
+++ b/docs/RELEASE-PROCEDURE.md
@@ -84,13 +84,9 @@ Coming dates
Based on the description above, here are some planned release dates (at the
time of this writing):
-- July 11, 2018
-- September 5, 2018
- October 31, 2018
-- December 26, 2018
-- February 20, 2019
-- April 17, 2019
-- June 12, 2019
-- August 7, 2019
-- October 2, 2019
-- December 27, 2019
+- December 12, 2018
+- February 6, 2019
+- April 3, 2019
+- May 29, 2019
+- July 24, 2019
diff --git a/docs/SECURITY-PROCESS.md b/docs/SECURITY-PROCESS.md
index 6ef7757c..9dd4cb77 100644
--- a/docs/SECURITY-PROCESS.md
+++ b/docs/SECURITY-PROCESS.md
@@ -61,7 +61,7 @@ announcement.
Figure out the CWE (Common Weakness Enumeration) number for the flaw.
- Request a CVE number from
- [distros@openwall](http://oss-security.openwall.org/wiki/mailing-lists/distros)
+ [distros@openwall](https://oss-security.openwall.org/wiki/mailing-lists/distros)
when also informing and preparing them for the upcoming public security
vulnerability announcement - attach the advisory draft for information. Note
that 'distros' won't accept an embargo longer than 14 days and they do not
@@ -121,15 +121,19 @@ Publishing Security Advisories
6. On security advisory release day, push the changes on the curl-www
repository's remote master branch.
-Hackerone Internet Bug Bounty
------------------------------
+Bountygraph Bug Bounty
+----------------------
+
+The curl project runs a bug bounty program in association with
+bountygraph.com.
+
+After you have reported a security issue to the curl project, it has been
+deemed credible and a patch and advisory has been made public you can be
+eligible for a bounty from this program.
-The curl project does not run any bounty program on its own, but there are
-outside organizations that do. First report your issue the normal way and
-proceed as described in this document.
+See all details at [BountyGraph](https://bountygraph.com/programs/curl).
-Then, if the issue is [critical](https://hackerone.com/ibb-data), you are
-eligible to apply for a bounty from Hackerone for your find.
+This bounty is relying on funds from
+[sponsors](https://bountygraph.com/programs/curl#publicpledges). If you use
+curl professionally, consider help funding this!
-Once your reported vulnerability has been publicly disclosed by the curl
-project, you can submit a [report to them](https://hackerone.com/ibb-data). \ No newline at end of file
diff --git a/docs/THANKS b/docs/THANKS
index 77abcac4..926cd190 100644
--- a/docs/THANKS
+++ b/docs/THANKS
@@ -67,6 +67,7 @@ Alexander Sinditskiy
Alexander Traud
Alexander Zhuravlev
Alexey Borzov
+Alexey Eremikhin
Alexey Melnichuk
Alexey Pesternikov
Alexey Simak
@@ -356,7 +357,7 @@ Daniel Theron
Daniel at touchtunes
Daphne Luong
Dario Nieuwenhuis
-Dario Weisser
+Dario Weißer
Darryl House
Darshan Mody
Darío Hereñú
@@ -415,6 +416,7 @@ Diego Bes
Diego Casorran
Dilyan Palauzov
Dima Barsky
+Dima Pasechnik
Dima Tisnek
Dimitar Boevski
Dimitre Dimitrov
@@ -444,6 +446,7 @@ Dominik Hölzl
Dominique Leuenberger
Don J Olmstead
Dongliang Mu
+Doron Behar
Doug Kaufman
Doug Porter
Douglas Creager
@@ -465,6 +468,7 @@ Dylan Salisbury
Dániel Bakai
Early Ehlinger
Earnestly on github
+Eason-Yu on github
Ebenezer Ikonne
Ed Morley
Edin Kadribasic
@@ -507,6 +511,7 @@ Eric Young
Erick Nuwendam
Erik Janssen
Erik Johansson
+Erik Minekus
Ernest Beinrohr
Ernst Sjöstrand
Erwan Legrand
@@ -619,6 +624,7 @@ Gwenole Beauchesne
Gökhan Şengün
Götz Babin-Ebell
Hamish Mackenzie
+Han Han
Han Qiao
Hang Kin Lau
Hang Su
@@ -725,6 +731,7 @@ Javier Sixto
Jay Austin
Jayesh A Shah
Jaz Fresh
+Jean Fabrice
Jean Gressmann
Jean Jacques Drouin
Jean-Claude Chauve
@@ -764,6 +771,7 @@ Jesse Tan
Jie He
Jim Drash
Jim Freeman
+Jim Fuller
Jim Hollinger
Jim Meyering
Jiri Dvorak
@@ -962,6 +970,7 @@ Liviu Chircu
Liza Alenchery
Lloyd Fournier
Lluís Batlle i Rossell
+Loganaden Velvindron
Loic Dachary
Loren Kirkby
Luan Cestari
@@ -1039,6 +1048,7 @@ Markus Oberhumer
Markus Westerlind
Marquis de Muesli
Martijn Koster
+Martin Ankerl
Martin C. Martin
Martin Drasar
Martin Dreher
@@ -1072,6 +1082,7 @@ Matthew Blain
Matthew Clarke
Matthew Hall
Matthew Kerwin
+Matthew Whitehead
Matthias Bolte
Mattias Fornander
Maurice Barnum
@@ -1085,6 +1096,7 @@ Maxim Ivanov
Maxim Perenesenko
Maxim Prohorov
Maxime Larocque
+Maxime Legros
Mehmet Bozkurt
Mekonikum
Melissa Mears
@@ -1153,6 +1165,7 @@ Muz Dima
Myk Taylor
Nach M. S.
Nagai H
+Nate Prewitt
Nathan Coulter
Nathan O'Sullivan
Nathanael Nerode
@@ -1172,6 +1185,7 @@ Nick Gimbrone
Nick Humfrey
Nick Miyake
Nick Zitzmann
+Nicklas Avén
Nico Baggus
Nicolas Berloquin
Nicolas Croiset
@@ -1298,6 +1312,7 @@ Philip Craig
Philip Gladstone
Philip Langdale
Philip Prindeville
+Philipp Waehnert
Philippe Hameau
Philippe Raoult
Philippe Vaucher
@@ -1361,6 +1376,7 @@ Ricardo Cadime
Rich Burridge
Rich Gray
Rich Rauenzahn
+Rich Turner
Richard Alcock
Richard Archer
Richard Atterer
@@ -1381,6 +1397,7 @@ Rick Deist
Rick Jones
Rick Richardson
Ricki Hirner
+Ricky-Tigg on github
Rider Linden
Rikard Falkeborn
Rob Cotrone
@@ -1488,6 +1505,7 @@ Shachaf Ben-Kiki
Shao Shuchao
Sharad Gupta
Shard
+Shaun Jackman
Shawn Landden
Shawn Poulson
Shine Fan
@@ -1646,6 +1664,7 @@ Travis Burtrum
Travis Obenhaus
Troels Walsted Hansen
Troy Engel
+Tuomo Rinne
Tupone Alfredo
Tyler Hall
Török Edwin
@@ -1711,6 +1730,7 @@ Yasuharu Yamada
Yehezkel Horowitz
Yehoshua Hershberg
Yi Huang
+Yiming Jing
Yingwei Liu
Yonggang Luo
Yousuke Kimoto
@@ -1750,6 +1770,7 @@ guitared on github
hsiao yi
imilli on github
iz8mbw on github
+jakirkham on github
jonrumsey on github
joshhe on github
jungle-boogie on github
diff --git a/docs/TODO b/docs/TODO
index 0ca6f0d5..d7fe127f 100644
--- a/docs/TODO
+++ b/docs/TODO
@@ -28,7 +28,7 @@
1.10 auto-detect proxy
1.11 minimize dependencies with dynamically loaded modules
1.12 updated DNS server while running
- 1.13 DNS-over-HTTPS
+ 1.13 c-ares and CURLOPT_OPENSOCKETFUNCTION
1.14 Typesafe curl_easy_setopt()
1.15 Monitor connections in the connection pool
1.16 Try to URL encode given URL
@@ -36,7 +36,6 @@
1.18 try next proxy if one doesn't work
1.19 Timeout idle connections from the pool
1.20 SRV and URI DNS records
- 1.21 API for URL parsing/splitting
1.22 CURLINFO_PAUSE_STATE
1.23 Offer API to flush the connection pool
1.24 TCP Fast Open for windows
@@ -171,6 +170,7 @@
20.4 more platforms supported
20.5 Add support for concurrent connections
20.6 Use the RFC6265 test suite
+ 20.7 Support LD_PRELOAD on macOS
21. Next SONAME bump
21.1 http-style HEAD output for FTP
@@ -291,14 +291,15 @@
https://github.com/curl/curl/issues/2251
-1.13 DNS-over-HTTPS
+1.13 c-ares and CURLOPT_OPENSOCKETFUNCTION
- By adding support for DNS-over-HTTPS curl could resolve host names using a
- totally separate name server than the standard system resolver, while at the
- same time doing so over a communication channel that enhances privacy and
- security.
+ curl will create most sockets via the CURLOPT_OPENSOCKETFUNCTION callback and
+ close them with the CURLOPT_CLOSESOCKETFUNCTION callback. However, c-ares
+ does not use those functions and instead opens and closes the sockets
+ itself. This means that when curl passes the c-ares socket to the
+ CURLMOPT_SOCKETFUNCTION it isn't owned by the application like other sockets.
- https://github.com/curl/curl/wiki/DNS-over-HTTPS
+ See https://github.com/curl/curl/issues/2734
1.14 Typesafe curl_easy_setopt()
@@ -373,13 +374,6 @@
Offer support for resolving SRV and URI DNS records for libcurl to know which
server to connect to for various protocols (including HTTP!).
-1.21 API for URL parsing/splitting
-
- libcurl has always parsed URLs internally and never exposed any API or
- features to allow applications to do it. Still most or many applications
- using libcurl need that ability. In polls to users, we've learned that many
- libcurl users would like to see and use such an API.
-
1.22 CURLINFO_PAUSE_STATE
Return information about the transfer's current pause state, in both
@@ -416,7 +410,8 @@
used to also allow for example users to refuse libcurl to do transfers with
HTTPS certificate checks disabled.
- It could also offer to refuse usernames in URLs (see TODO 1.1)
+ It could also automatically refuse usernames in URLs when set
+ (see CURLOPT_DISALLOW_USERNAME_IN_URL)
1.27 hardcode the "localhost" addresses
@@ -531,7 +526,7 @@
Some FTP servers allow STAT for listing directories instead of using LIST,
and the response is then sent over the control connection instead of as the
- otherwise usedw data connection: http://www.nsftools.com/tips/RawFTP.htm#STAT
+ otherwise usedw data connection: https://www.nsftools.com/tips/RawFTP.htm#STAT
This is not detailed in any FTP specification.
@@ -785,7 +780,7 @@ that doesn't exist on the server, just like --ftp-create-dirs.
AIA can provide various things like CRLs but more importantly information
about intermediate CA certificates that can allow validation path to be
- fullfilled when the HTTPS server doesn't itself provide them.
+ fulfilled when the HTTPS server doesn't itself provide them.
Since AIA is about downloading certs on demand to complete a TLS handshake,
it is probably a bit tricky to get done right.
@@ -916,7 +911,7 @@ that doesn't exist on the server, just like --ftp-create-dirs.
server's key. MD5 is generally being deprecated so we should implement
support for stronger hashing algorithms. libssh2 itself is what provides this
underlying functionality and it supports at least SHA-1 as an alternative.
- SHA-1 is also being deprecated these days so we should consider workign with
+ SHA-1 is also being deprecated these days so we should consider working with
libssh2 to instead offer support for SHA-256 or similar.
17.4 Support CURLOPT_PREQUOTE
@@ -1171,6 +1166,11 @@ that doesn't exist on the server, just like --ftp-create-dirs.
curl with that test suite and detect deviances. Ideally, that would even be
incorporated into our regular test suite.
+20.7 Support LD_PRELOAD on macOS
+
+ LD_RELOAD doesn't work on macOS, but there are tests which require it to run
+ properly. Look into making the preload support in runtests.pl portable such
+ that it uses DYLD_INSERT_LIBRARIES on macOS.
21. Next SONAME bump
diff --git a/docs/TheArtOfHttpScripting b/docs/TheArtOfHttpScripting
index b2bd9db7..c5b67ca1 100644
--- a/docs/TheArtOfHttpScripting
+++ b/docs/TheArtOfHttpScripting
@@ -150,7 +150,7 @@ The Art Of Scripting HTTP Requests Using Curl
--resolve option:
curl --resolve www.example.org:80:127.0.0.1 http://www.example.org/
-
+
2.3 Port number
Each protocol curl supports operates on a default port number, be it over TCP
diff --git a/docs/cmdline-opts/CMakeLists.txt b/docs/cmdline-opts/CMakeLists.txt
index 5aa20dfd..3c020d41 100644
--- a/docs/cmdline-opts/CMakeLists.txt
+++ b/docs/cmdline-opts/CMakeLists.txt
@@ -1,4 +1,4 @@
-set(MANPAGE "${CMAKE_BINARY_DIR}/docs/curl.1")
+set(MANPAGE "${CURL_BINARY_DIR}/docs/curl.1")
# Load DPAGES and OTHERPAGES from shared file
transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
diff --git a/docs/cmdline-opts/Makefile.inc b/docs/cmdline-opts/Makefile.inc
index fe5fb5ba..76fa5d45 100644
--- a/docs/cmdline-opts/Makefile.inc
+++ b/docs/cmdline-opts/Makefile.inc
@@ -2,7 +2,7 @@
DPAGES = abstract-unix-socket.d anyauth.d append.d basic.d cacert.d capath.d cert.d \
cert-status.d cert-type.d ciphers.d compressed.d compressed-ssh.d \
- config.d \
+ config.d doh-url.d \
connect-timeout.d connect-to.d continue-at.d cookie.d cookie-jar.d \
create-dirs.d crlf.d crlfile.d data-ascii.d data-binary.d data.d \
data-raw.d data-urlencode.d delegation.d digest.d disable.d \
diff --git a/docs/cmdline-opts/data-binary.d b/docs/cmdline-opts/data-binary.d
index c6721c64..3f6ff2db 100644
--- a/docs/cmdline-opts/data-binary.d
+++ b/docs/cmdline-opts/data-binary.d
@@ -9,5 +9,10 @@ If you start the data with the letter @, the rest should be a filename. Data
is posted in a similar manner as --data does, except that newlines and
carriage returns are preserved and conversions are never done.
+Like --data the default content-type sent to the server is
+application/x-www-form-urlencoded. If you want the data to be treated as
+arbitrary binary data by the server then set the content-type to octet-stream:
+-H "Content-Type: application/octet-stream".
+
If this option is used several times, the ones following the first will append
data as described in --data.
diff --git a/docs/cmdline-opts/doh-url.d b/docs/cmdline-opts/doh-url.d
new file mode 100644
index 00000000..8fa42c1b
--- /dev/null
+++ b/docs/cmdline-opts/doh-url.d
@@ -0,0 +1,9 @@
+Long: doh-url
+Arg: <URL>
+Help: Resolve host names over DOH
+Protocols: all
+---
+Specifies which DNS-over-HTTPS (DOH) server to use to resolve hostnames,
+instead of using the default name resolver mechanism. The URL must be HTTPS.
+
+If this option is used several times, the last one will be used.
diff --git a/docs/cmdline-opts/gen.pl b/docs/cmdline-opts/gen.pl
index dd990caf..439b7658 100755
--- a/docs/cmdline-opts/gen.pl
+++ b/docs/cmdline-opts/gen.pl
@@ -388,4 +388,3 @@ sub getargs {
indexoptions();
getargs();
-
diff --git a/docs/cmdline-opts/ipv6.d b/docs/cmdline-opts/ipv6.d
index c2392e77..6eef6dd0 100644
--- a/docs/cmdline-opts/ipv6.d
+++ b/docs/cmdline-opts/ipv6.d
@@ -3,7 +3,7 @@ Long: ipv6
Tags: Versions
Protocols:
Added:
-Mutexed: ipv6
+Mutexed: ipv4
Requires:
See-also: http1.1 http2
Help: Resolve names to IPv6 addresses
diff --git a/docs/cmdline-opts/metalink.d b/docs/cmdline-opts/metalink.d
index 8047e9f5..81fc8bc7 100644
--- a/docs/cmdline-opts/metalink.d
+++ b/docs/cmdline-opts/metalink.d
@@ -24,4 +24,3 @@ Metalink file at the time of this writing. Also note that if --metalink and
including headers in the response will break Metalink parser and if the
headers are included in the file described in Metalink file, hash check will
fail.
-
diff --git a/docs/cmdline-opts/tlsv1.0.d b/docs/cmdline-opts/tlsv1.0.d
index 8789025e..312b67b3 100644
--- a/docs/cmdline-opts/tlsv1.0.d
+++ b/docs/cmdline-opts/tlsv1.0.d
@@ -1,6 +1,6 @@
Long: tlsv1.0
-Help: Use TLSv1.0
+Help: Use TLSv1.0 or greater
Protocols: TLS
Added: 7.34.0
---
-Forces curl to use TLS version 1.0 when connecting to a remote TLS server.
+Forces curl to use TLS version 1.0 or later when connecting to a remote TLS server.
diff --git a/docs/cmdline-opts/tlsv1.1.d b/docs/cmdline-opts/tlsv1.1.d
index a3c10edb..8182ac6d 100644
--- a/docs/cmdline-opts/tlsv1.1.d
+++ b/docs/cmdline-opts/tlsv1.1.d
@@ -1,5 +1,5 @@
Long: tlsv1.1
-Help: Use TLSv1.1
+Help: Use TLSv1.1 or greater
Protocols: TLS
Added: 7.34.0
---
diff --git a/docs/cmdline-opts/tlsv1.2.d b/docs/cmdline-opts/tlsv1.2.d
index 8879546b..7ba44022 100644
--- a/docs/cmdline-opts/tlsv1.2.d
+++ b/docs/cmdline-opts/tlsv1.2.d
@@ -1,5 +1,5 @@
Long: tlsv1.2
-Help: Use TLSv1.2
+Help: Use TLSv1.2 or greater
Protocols: TLS
Added: 7.34.0
---
diff --git a/docs/cmdline-opts/tlsv1.3.d b/docs/cmdline-opts/tlsv1.3.d
index cf32e392..7061a61b 100644
--- a/docs/cmdline-opts/tlsv1.3.d
+++ b/docs/cmdline-opts/tlsv1.3.d
@@ -1,5 +1,5 @@
Long: tlsv1.3
-Help: Use TLSv1.3
+Help: Use TLSv1.3 or greater
Protocols: TLS
Added: 7.52.0
---
diff --git a/docs/curl-config.1 b/docs/curl-config.1
index 31ddc871..4f317696 100644
--- a/docs/curl-config.1
+++ b/docs/curl-config.1
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH curl-config 1 "November 30, 2017" "Curl 7.61.1" "curl-config manual"
+.TH curl-config 1 "November 30, 2017" "Curl 7.62.0" "curl-config manual"
.SH NAME
curl-config \- Get information about a libcurl installation
diff --git a/docs/curl.1 b/docs/curl.1
index 12725db4..1cd598d0 100644
--- a/docs/curl.1
+++ b/docs/curl.1
@@ -22,7 +22,7 @@
.\"
.\" DO NOT EDIT. Generated by the curl project gen.pl man page generator.
.\"
-.TH curl 1 "November 16, 2016" "Curl 7.61.1" "Curl Manual"
+.TH curl 1 "November 16, 2016" "Curl 7.62.0" "Curl Manual"
.SH NAME
curl \- transfer a URL
@@ -468,6 +468,11 @@ If you start the data with the letter @, the rest should be a filename. Data
is posted in a similar manner as \fI-d, --data\fP does, except that newlines and
carriage returns are preserved and conversions are never done.
+Like \fI-d, --data\fP the default content-type sent to the server is
+application/x-www-form-urlencoded. If you want the data to be treated as
+arbitrary binary data by the server then set the content-type to octet-stream:
+-H "Content-Type: application/octet-stream".
+
If this option is used several times, the ones following the first will append
data as described in \fI-d, --data\fP.
.IP "--data-raw <data>"
@@ -611,6 +616,11 @@ may also optionally be given as \fI:<port-number>\fP after each IP
address.
\fI--dns-servers\fP requires that the underlying libcurl was built to support c-ares. Added in 7.33.0.
+.IP "--doh-url <URL>"
+(all) Specifies which DNS-over-HTTPS (DOH) server to use to resolve hostnames,
+instead of using the default name resolver mechanism. The URL must be HTTPS.
+
+If this option is used several times, the last one will be used.
.IP "-D, --dump-header <filename>"
(HTTP FTP) Write the received protocol headers to the specified file.
@@ -1098,7 +1108,7 @@ See also \fI--http1.1\fP and \fI--http2\fP. This option overrides \fI-6, --ipv6\
This option tells curl to resolve names to IPv6 addresses only, and not for
example try IPv4.
-See also \fI--http1.1\fP and \fI--http2\fP. This option overrides \fI-6, --ipv6\fP.
+See also \fI--http1.1\fP and \fI--http2\fP. This option overrides \fI-4, --ipv4\fP.
.IP "-j, --junk-session-cookies"
(HTTP) When curl is told to read cookies from a given file, this option will make it
discard all "session cookies". This will basically have the same effect as if
@@ -1314,7 +1324,6 @@ including headers in the response will break Metalink parser and if the
headers are included in the file described in Metalink file, hash check will
fail.
-
\fI--metalink\fP requires that the underlying libcurl was built to support metalink. Added in 7.27.0.
.IP "--negotiate"
(HTTP) Enables Negotiate (SPNEGO) authentication.
@@ -2383,7 +2392,7 @@ Set username for use with the TLS authentication method specified with
Added in 7.21.4.
.IP "--tlsv1.0"
-(TLS) Forces curl to use TLS version 1.0 when connecting to a remote TLS server.
+(TLS) Forces curl to use TLS version 1.0 or later when connecting to a remote TLS server.
Added in 7.34.0.
.IP "--tlsv1.1"
diff --git a/docs/examples/10-at-a-time.c b/docs/examples/10-at-a-time.c
index 1da0ee21..638f425f 100644
--- a/docs/examples/10-at-a-time.c
+++ b/docs/examples/10-at-a-time.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -35,54 +35,53 @@
#include <curl/multi.h>
static const char *urls[] = {
- "http://www.microsoft.com",
- "http://www.opensource.org",
- "http://www.google.com",
- "http://www.yahoo.com",
- "http://www.ibm.com",
- "http://www.mysql.com",
- "http://www.oracle.com",
- "http://www.ripe.net",
- "http://www.iana.org",
- "http://www.amazon.com",
- "http://www.netcraft.com",
- "http://www.heise.de",
- "http://www.chip.de",
- "http://www.ca.com",
- "http://www.cnet.com",
- "http://www.news.com",
- "http://www.cnn.com",
- "http://www.wikipedia.org",
- "http://www.dell.com",
- "http://www.hp.com",
- "http://www.cert.org",
- "http://www.mit.edu",
- "http://www.nist.gov",
- "http://www.ebay.com",
- "http://www.playstation.com",
- "http://www.uefa.com",
- "http://www.ieee.org",
- "http://www.apple.com",
- "http://www.symantec.com",
- "http://www.zdnet.com",
- "http://www.fujitsu.com",
- "http://www.supermicro.com",
- "http://www.hotmail.com",
- "http://www.ecma.com",
- "http://www.bbc.co.uk",
- "http://news.google.com",
- "http://www.foxnews.com",
- "http://www.msn.com",
- "http://www.wired.com",
- "http://www.sky.com",
- "http://www.usatoday.com",
- "http://www.cbs.com",
- "http://www.nbc.com",
- "http://slashdot.org",
- "http://www.bloglines.com",
- "http://www.techweb.com",
- "http://www.newslink.org",
- "http://www.un.org",
+ "https://www.microsoft.com",
+ "https://opensource.org",
+ "https://www.google.com",
+ "https://www.yahoo.com",
+ "https://www.ibm.com",
+ "https://www.mysql.com",
+ "https://www.oracle.com",
+ "https://www.ripe.net",
+ "https://www.iana.org",
+ "https://www.amazon.com",
+ "https://www.netcraft.com",
+ "https://www.heise.de",
+ "https://www.chip.de",
+ "https://www.ca.com",
+ "https://www.cnet.com",
+ "https://www.mozilla.org",
+ "https://www.cnn.com",
+ "https://www.wikipedia.org",
+ "https://www.dell.com",
+ "https://www.hp.com",
+ "https://www.cert.org",
+ "https://www.mit.edu",
+ "https://www.nist.gov",
+ "https://www.ebay.com",
+ "https://www.playstation.com",
+ "https://www.uefa.com",
+ "https://www.ieee.org",
+ "https://www.apple.com",
+ "https://www.symantec.com",
+ "https://www.zdnet.com",
+ "https://www.fujitsu.com/global/",
+ "https://www.supermicro.com",
+ "https://www.hotmail.com",
+ "https://www.ietf.org",
+ "https://www.bbc.co.uk",
+ "https://news.google.com",
+ "https://www.foxnews.com",
+ "https://www.msn.com",
+ "https://www.wired.com",
+ "https://www.sky.com",
+ "https://www.usatoday.com",
+ "https://www.cbs.com",
+ "https://www.nbc.com/",
+ "https://slashdot.org",
+ "https://www.informationweek.com",
+ "https://apache.org",
+ "https://www.un.org",
};
#define MAX 10 /* number of simultaneous transfers */
diff --git a/docs/examples/Makefile.am b/docs/examples/Makefile.am
index e5ed222e..ce2e924d 100644
--- a/docs/examples/Makefile.am
+++ b/docs/examples/Makefile.am
@@ -23,7 +23,7 @@
AUTOMAKE_OPTIONS = foreign nostdinc
EXTRA_DIST = README Makefile.example Makefile.inc Makefile.m32 \
- Makefile.netware makefile.dj $(COMPLICATED_EXAMPLES)
+ Makefile.netware makefile.dj $(COMPLICATED_EXAMPLES)
# 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
diff --git a/docs/examples/Makefile.inc b/docs/examples/Makefile.inc
index 72eb0d4b..f51871f0 100644
--- a/docs/examples/Makefile.inc
+++ b/docs/examples/Makefile.inc
@@ -24,7 +24,7 @@
check_PROGRAMS = 10-at-a-time anyauthput cookie_interface debug fileupload \
fopen ftpget ftpgetresp ftpupload getinfo getinmemory http-post httpput \
https multi-app multi-debugcallback multi-double multi-post multi-single \
- persistant post-callback postit2 sepheaders simple simplepost simplessl \
+ persistent post-callback postit2 sepheaders simple simplepost simplessl \
sendrecv httpcustomheader certinfo chkspeed ftpgetinfo ftp-wildcard \
smtp-mail smtp-mime smtp-multi smtp-ssl smtp-tls smtp-vrfy smtp-expn \
rtsp externalsocket resolve progressfunc pop3-retr pop3-list pop3-uidl \
@@ -34,13 +34,13 @@ check_PROGRAMS = 10-at-a-time anyauthput cookie_interface debug fileupload \
imap-tls imap-multi url2file sftpget ftpsget postinmemory http2-download \
http2-upload http2-serverpush getredirect ftpuploadfrommem \
ftpuploadresume sslbackend postit2-formadd multi-formadd \
- shared-connection-cache sftpuploadresume
+ shared-connection-cache sftpuploadresume http2-pushinmemory parseurl
# These examples require external dependencies that may not be commonly
# available on POSIX systems, so don't bother attempting to compile them here.
-COMPLICATED_EXAMPLES = curlgtk.c curlx.c htmltitle.cpp cacertinmem.c \
- ghiper.c hiperfifo.c htmltidy.c multithread.c opensslthreadlock.c \
- sampleconv.c synctime.c threaded-ssl.c evhiperfifo.c \
- smooth-gtk-thread.c version-check.pl href_extractor.c asiohiper.cpp \
- multi-uv.c xmlstream.c usercertinmem.c sessioninfo.c \
+COMPLICATED_EXAMPLES = curlgtk.c curlx.c htmltitle.cpp cacertinmem.c \
+ ghiper.c hiperfifo.c htmltidy.c multithread.c opensslthreadlock.c \
+ sampleconv.c synctime.c threaded-ssl.c evhiperfifo.c \
+ smooth-gtk-thread.c version-check.pl href_extractor.c asiohiper.cpp \
+ multi-uv.c xmlstream.c usercertinmem.c sessioninfo.c \
threaded-shared-conn.c crawler.c ephiperfifo.c
diff --git a/docs/examples/Makefile.m32 b/docs/examples/Makefile.m32
index 5fbc5d66..160afb62 100644
--- a/docs/examples/Makefile.m32
+++ b/docs/examples/Makefile.m32
@@ -5,7 +5,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2018, 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
@@ -18,13 +18,16 @@
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
# KIND, either express or implied.
#
+#***************************************************************************
+
###########################################################################
#
## Makefile for building curl examples with MingW (GCC-3.2 or later)
-## and optionally OpenSSL (1.0.2a), libssh2 (1.5), zlib (1.2.8), librtmp (2.4)
+## and optionally OpenSSL (1.0.2a), libssh2 (1.5), zlib (1.2.8), librtmp (2.4),
+## brotli (1.0.1)
##
## Usage: mingw32-make -f Makefile.m32 CFG=-feature1[-feature2][-feature3][...]
-## Example: mingw32-make -f Makefile.m32 CFG=-zlib-ssl-spi-winidn
+## Example: mingw32-make -f Makefile.m32 CFG=-zlib-ssl-sspi-winidn
##
## Hint: you can also set environment vars to control the build, f.e.:
## set ZLIB_PATH=c:/zlib-1.2.8
@@ -36,6 +39,10 @@
ifndef ZLIB_PATH
ZLIB_PATH = ../../../zlib-1.2.8
endif
+# Edit the path below to point to the base of your Brotli sources.
+ifndef BROTLI_PATH
+BROTLI_PATH = ../../../brotli-1.0.1
+endif
# Edit the path below to point to the base of your OpenSSL package.
ifndef OPENSSL_PATH
OPENSSL_PATH = ../../../openssl-1.0.2a
@@ -48,9 +55,21 @@ endif
ifndef LIBRTMP_PATH
LIBRTMP_PATH = ../../../librtmp-2.4
endif
-# Edit the path below to point to the base of your libidn package.
-ifndef LIBIDN_PATH
-LIBIDN_PATH = ../../../libidn-1.32
+# Edit the path below to point to the base of your libmetalink package.
+ifndef LIBMETALINK_PATH
+LIBMETALINK_PATH = ../../../libmetalink-0.1.3
+endif
+# Edit the path below to point to the base of your libexpat package.
+ifndef LIBEXPAT_PATH
+LIBEXPAT_PATH = ../../../expat-2.1.0
+endif
+# Edit the path below to point to the base of your libxml2 package.
+ifndef LIBXML2_PATH
+LIBXML2_PATH = ../../../libxml2-2.9.2
+endif
+# Edit the path below to point to the base of your libidn2 package.
+ifndef LIBIDN2_PATH
+LIBIDN2_PATH = ../../../libidn2-2.0.3
endif
# Edit the path below to point to the base of your MS IDN package.
# Microsoft Internationalized Domain Names (IDN) Mitigation APIs 1.1
@@ -74,58 +93,66 @@ ifndef LIBCARES_PATH
LIBCARES_PATH = $(PROOT)/ares
endif
-# Edit the var below to set to your architecture or set environment var.
+ifeq ($(CURL_CC),)
+CURL_CC := $(CROSSPREFIX)gcc
+endif
+ifeq ($(CURL_AR),)
+CURL_AR := $(CROSSPREFIX)ar
+endif
+
+CC = $(CURL_CC)
+CFLAGS = $(CURL_CFLAG_EXTRAS) -g -O2 -Wall -W
+CFLAGS += -fno-strict-aliasing
+# comment LDFLAGS below to keep debug info
+LDFLAGS = $(CURL_LDFLAG_EXTRAS) $(CURL_LDFLAG_EXTRAS_EXE) -s
+RC = $(CROSSPREFIX)windres
+RCFLAGS = --include-dir=$(PROOT)/include -O COFF
+
+# Set environment var ARCH to your architecture to override autodetection.
ifndef ARCH
ifeq ($(findstring x86_64,$(shell $(CC) -dumpmachine)),x86_64)
-ARCH = w64
+ARCH = w64
else
-ARCH = w32
+ARCH = w32
endif
endif
-CC = $(CROSSPREFIX)gcc
-CFLAGS = -g -O2 -Wall -W
-CFLAGS += -fno-strict-aliasing
ifeq ($(ARCH),w64)
-CFLAGS += -m64 -D_AMD64_
+CFLAGS += -m64 -D_AMD64_
LDFLAGS += -m64
RCFLAGS += -F pe-x86-64
else
-CFLAGS += -m32
+CFLAGS += -m32
LDFLAGS += -m32
RCFLAGS += -F pe-i386
endif
-# comment LDFLAGS below to keep debug info
-LDFLAGS = -s
-RC = $(CROSSPREFIX)windres
-RCFLAGS = --include-dir=$(PROOT)/include -O COFF -i
# Platform-dependent helper tool macros
ifeq ($(findstring /sh,$(SHELL)),/sh)
-DEL = rm -f $1
-RMDIR = rm -fr $1
-MKDIR = mkdir -p $1
-COPY = -cp -afv $1 $2
-#COPYR = -cp -afr $1/* $2
-COPYR = -rsync -aC $1/* $2
-TOUCH = touch $1
-CAT = cat
-ECHONL = echo ""
-DL = '
+DEL = rm -f $1
+RMDIR = rm -fr $1
+MKDIR = mkdir -p $1
+COPY = -cp -afv $1 $2
+#COPYR = -cp -afr $1/* $2
+COPYR = -rsync -aC $1/* $2
+TOUCH = touch $1
+CAT = cat
+ECHONL = echo ""
+DL = '
else
ifeq "$(OS)" "Windows_NT"
-DEL = -del 2>NUL /q /f $(subst /,\,$1)
-RMDIR = -rd 2>NUL /q /s $(subst /,\,$1)
+DEL = -del 2>NUL /q /f $(subst /,\,$1)
+RMDIR = -rd 2>NUL /q /s $(subst /,\,$1)
else
-DEL = -del 2>NUL $(subst /,\,$1)
-RMDIR = -deltree 2>NUL /y $(subst /,\,$1)
+DEL = -del 2>NUL $(subst /,\,$1)
+RMDIR = -deltree 2>NUL /y $(subst /,\,$1)
endif
-MKDIR = -md 2>NUL $(subst /,\,$1)
-COPY = -copy 2>NUL /y $(subst /,\,$1) $(subst /,\,$2)
-COPYR = -xcopy 2>NUL /q /y /e $(subst /,\,$1) $(subst /,\,$2)
-TOUCH = copy 2>&1>NUL /b $(subst /,\,$1) +,,
-CAT = type
-ECHONL = $(ComSpec) /c echo.
+MKDIR = -md 2>NUL $(subst /,\,$1)
+COPY = -copy 2>NUL /y $(subst /,\,$1) $(subst /,\,$2)
+COPYR = -xcopy 2>NUL /q /y /e $(subst /,\,$1) $(subst /,\,$2)
+TOUCH = copy 2>&1>NUL /b $(subst /,\,$1) +,,
+CAT = type
+ECHONL = $(ComSpec) /c echo.
endif
########################################################
@@ -153,8 +180,11 @@ endif
ifeq ($(findstring -zlib,$(CFG)),-zlib)
ZLIB = 1
endif
-ifeq ($(findstring -idn,$(CFG)),-idn)
-IDN = 1
+ifeq ($(findstring -brotli,$(CFG)),-brotli)
+BROTLI = 1
+endif
+ifeq ($(findstring -idn2,$(CFG)),-idn2)
+IDN2 = 1
endif
ifeq ($(findstring -winidn,$(CFG)),-winidn)
WINIDN = 1
@@ -208,8 +238,24 @@ endif
ifdef SSH2
CFLAGS += -DUSE_LIBSSH2 -DHAVE_LIBSSH2_H
curl_LDADD += -L"$(LIBSSH2_PATH)/win32" -lssh2
+ ifdef WINSSL
+ ifndef DYN
+ curl_LDADD += -lbcrypt -lcrypt32
+ endif
+ endif
endif
ifdef SSL
+ ifndef OPENSSL_INCLUDE
+ ifeq "$(wildcard $(OPENSSL_PATH)/outinc)" "$(OPENSSL_PATH)/outinc"
+ OPENSSL_INCLUDE = $(OPENSSL_PATH)/outinc
+ endif
+ ifeq "$(wildcard $(OPENSSL_PATH)/include)" "$(OPENSSL_PATH)/include"
+ OPENSSL_INCLUDE = $(OPENSSL_PATH)/include
+ endif
+ endif
+ ifneq "$(wildcard $(OPENSSL_INCLUDE)/openssl/opensslv.h)" "$(OPENSSL_INCLUDE)/openssl/opensslv.h"
+ $(error Invalid path to OpenSSL package: $(OPENSSL_PATH))
+ endif
ifndef OPENSSL_LIBPATH
OPENSSL_LIBS = -lssl -lcrypto
ifeq "$(wildcard $(OPENSSL_PATH)/out)" "$(OPENSSL_PATH)/out"
@@ -225,28 +271,52 @@ ifdef SSL
ifndef DYN
OPENSSL_LIBS += -lgdi32 -lcrypt32
endif
+ INCLUDES += -I"$(OPENSSL_INCLUDE)"
CFLAGS += -DUSE_OPENSSL
curl_LDADD += -L"$(OPENSSL_LIBPATH)" $(OPENSSL_LIBS)
endif
+ifdef WINSSL
+ CFLAGS += -DUSE_SCHANNEL
+ curl_LDADD += -lcrypt32
+endif
ifdef ZLIB
INCLUDES += -I"$(ZLIB_PATH)"
CFLAGS += -DHAVE_LIBZ -DHAVE_ZLIB_H
curl_LDADD += -L"$(ZLIB_PATH)" -lz
endif
-ifdef IDN
- CFLAGS += -DUSE_LIBIDN
- curl_LDADD += -L"$(LIBIDN_PATH)/lib" -lidn
+ifdef BROTLI
+ INCLUDES += -I"$(BROTLI_PATH)/include"
+ CFLAGS += -DHAVE_BROTLI
+ curl_LDADD += -L"$(BROTLI_PATH)/lib"
+ ifdef BROTLI_LIBS
+ curl_LDADD += $(BROTLI_LIBS)
+ else
+ curl_LDADD += -lbrotlidec
+ endif
+endif
+ifdef IDN2
+ CFLAGS += -DUSE_LIBIDN2
+ curl_LDADD += -L"$(LIBIDN2_PATH)/lib" -lidn2
else
ifdef WINIDN
CFLAGS += -DUSE_WIN32_IDN
curl_LDADD += -L"$(WINIDN_PATH)" -lnormaliz
endif
endif
+ifdef METALINK
+ INCLUDES += -I"$(LIBMETALINK_PATH)/include"
+ CFLAGS += -DUSE_METALINK
+ curl_LDADD += -L"$(LIBMETALINK_PATH)/lib" -lmetalink
+ ifndef DYN
+ ifeq ($(findstring libexpat_metalink_parser.o,$(shell $(AR) t "$(LIBMETALINK_PATH)/lib/libmetalink.a")),libexpat_metalink_parser.o)
+ curl_LDADD += -L"$(LIBEXPAT_PATH)/lib" -lexpat
+ else
+ curl_LDADD += -L"$(LIBXML2_PATH)/lib" -lxml2
+ endif
+ endif
+endif
ifdef SSPI
CFLAGS += -DUSE_WINDOWS_SSPI
- ifdef WINSSL
- CFLAGS += -DUSE_SCHANNEL
- endif
endif
ifdef IPV6
CFLAGS += -DENABLE_IPV6 -D_WIN32_WINNT=0x0501
@@ -287,11 +357,10 @@ all: $(check_PROGRAMS)
$(CC) $(INCLUDES) $(CFLAGS) -c $<
%.res: %.rc
- $(RC) $(RCFLAGS) $< -o $@
+ $(RC) $(RCFLAGS) -i $< -o $@
clean:
@$(call DEL, $(check_PROGRAMS:.exe=.o))
distclean vclean: clean
@$(call DEL, $(check_PROGRAMS))
-
diff --git a/docs/examples/Makefile.netware b/docs/examples/Makefile.netware
index 9ff6d949..9b6c69b8 100644
--- a/docs/examples/Makefile.netware
+++ b/docs/examples/Makefile.netware
@@ -3,13 +3,13 @@
## Makefile for building curl.nlm (NetWare version - gnu make)
## Use: make -f Makefile.netware
##
-## Comments to: Guenter Knauf http://www.gknw.net/phpbb
+## Comments to: Guenter Knauf
#
#################################################################
# Edit the path below to point to the base of your Novell NDK.
ifndef NDKBASE
-NDKBASE = c:/novell
+NDKBASE = c:/novell
endif
# Edit the path below to point to the base of your Zlib sources.
@@ -53,17 +53,17 @@ LIBCARES_PATH = ../../ares
endif
ifndef INSTDIR
-INSTDIR = ..$(DS)..$(DS)curl-$(LIBCURL_VERSION_STR)-bin-nw
+INSTDIR = ..$(DS)..$(DS)curl-$(LIBCURL_VERSION_STR)-bin-nw
endif
# Edit the vars below to change NLM target settings.
TARGET = examples
-VERSION = $(LIBCURL_VERSION)
-COPYR = Copyright (C) $(LIBCURL_COPYRIGHT_STR)
-DESCR = curl ($(LIBARCH))
-MTSAFE = YES
-STACK = 8192
-SCREEN = Example Program
+VERSION = $(LIBCURL_VERSION)
+COPYR = Copyright (C) $(LIBCURL_COPYRIGHT_STR)
+DESCR = curl ($(LIBARCH))
+MTSAFE = YES
+STACK = 8192
+SCREEN = Example Program
# Comment the line below if you don't want to load protected automatically.
# LDRING = 3
@@ -77,39 +77,39 @@ endif
# must be equal to NDEBUG or DEBUG, CURLDEBUG
ifndef DB
-DB = NDEBUG
+DB = NDEBUG
endif
# Optimization: -O<n> or debugging: -g
ifeq ($(DB),NDEBUG)
- OPT = -O2
- OBJDIR = release
+ OPT = -O2
+ OBJDIR = release
else
- OPT = -g
- OBJDIR = debug
+ OPT = -g
+ OBJDIR = debug
endif
# The following lines defines your compiler.
ifdef CWFolder
- METROWERKS = $(CWFolder)
+ METROWERKS = $(CWFolder)
endif
ifdef METROWERKS
- # MWCW_PATH = $(subst \,/,$(METROWERKS))/Novell Support
- MWCW_PATH = $(subst \,/,$(METROWERKS))/Novell Support/Metrowerks Support
- CC = mwccnlm
+ # MWCW_PATH = $(subst \,/,$(METROWERKS))/Novell Support
+ MWCW_PATH = $(subst \,/,$(METROWERKS))/Novell Support/Metrowerks Support
+ CC = mwccnlm
else
- CC = gcc
+ CC = gcc
endif
-PERL = perl
+PERL = perl
# Here you can find a native Win32 binary of the original awk:
# http://www.gknw.net/development/prgtools/awk-20100523.zip
-AWK = awk
-CP = cp -afv
-MKDIR = mkdir
-# RM = rm -f
+AWK = awk
+CP = cp -afv
+MKDIR = mkdir
+# RM = rm -f
# If you want to mark the target as MTSAFE you will need a tool for
# generating the xdc data for the linker; here's a minimal tool:
# http://www.gknw.net/development/prgtools/mkxdc.zip
-MPKXDC = mkxdc
+MPKXDC = mkxdc
# LIBARCH_U = $(shell $(AWK) 'BEGIN {print toupper(ARGV[1])}' $(LIBARCH))
LIBARCH_L = $(shell $(AWK) 'BEGIN {print tolower(ARGV[1])}' $(LIBARCH))
@@ -118,52 +118,52 @@ LIBARCH_L = $(shell $(AWK) 'BEGIN {print tolower(ARGV[1])}' $(LIBARCH))
-include $(OBJDIR)/version.inc
# Global flags for all compilers
-CFLAGS += $(OPT) -D$(DB) -DNETWARE -DHAVE_CONFIG_H -nostdinc
+CFLAGS += $(OPT) -D$(DB) -DNETWARE -DHAVE_CONFIG_H -nostdinc
ifeq ($(CC),mwccnlm)
-LD = mwldnlm
-LDFLAGS = -nostdlib $< $(PRELUDE) $(LDLIBS) -o $@ -commandfile
-LIBEXT = lib
-CFLAGS += -gccinc -inline off -opt nointrinsics -proc 586
-CFLAGS += -relax_pointers
-#CFLAGS += -w on
-ifeq ($(LIBARCH),LIBC)
-ifeq ($(POSIXFL),1)
- PRELUDE = $(NDK_LIBC)/imports/posixpre.o
-else
- PRELUDE = $(NDK_LIBC)/imports/libcpre.o
-endif
- CFLAGS += -align 4
+ LD = mwldnlm
+ LDFLAGS = -nostdlib $< $(PRELUDE) $(LDLIBS) -o $@ -commandfile
+ LIBEXT = lib
+ CFLAGS += -gccinc -inline off -opt nointrinsics -proc 586
+ CFLAGS += -relax_pointers
+ #CFLAGS += -w on
+ ifeq ($(LIBARCH),LIBC)
+ ifeq ($(POSIXFL),1)
+ PRELUDE = $(NDK_LIBC)/imports/posixpre.o
+ else
+ PRELUDE = $(NDK_LIBC)/imports/libcpre.o
+ endif
+ CFLAGS += -align 4
+ else
+ # PRELUDE = $(NDK_CLIB)/imports/clibpre.o
+ # to avoid the __init_* / __deinit_* woes don't use prelude from NDK
+ PRELUDE = "$(MWCW_PATH)/libraries/runtime/prelude.obj"
+ # CFLAGS += -include "$(MWCW_PATH)/headers/nlm_clib_prefix.h"
+ CFLAGS += -align 1
+ endif
else
- # PRELUDE = $(NDK_CLIB)/imports/clibpre.o
- # to avoid the __init_* / __deinit_* woes don't use prelude from NDK
- PRELUDE = "$(MWCW_PATH)/libraries/runtime/prelude.obj"
- # CFLAGS += -include "$(MWCW_PATH)/headers/nlm_clib_prefix.h"
- CFLAGS += -align 1
-endif
-else
-LD = nlmconv
-LDFLAGS = -T
-LIBEXT = a
-CFLAGS += -m32
-CFLAGS += -fno-builtin -fno-strict-aliasing
-ifeq ($(findstring gcc,$(CC)),gcc)
-CFLAGS += -fpcc-struct-return
-endif
-CFLAGS += -Wall # -pedantic
-ifeq ($(LIBARCH),LIBC)
-ifeq ($(POSIXFL),1)
- PRELUDE = $(NDK_LIBC)/imports/posixpre.gcc.o
-else
- PRELUDE = $(NDK_LIBC)/imports/libcpre.gcc.o
-endif
-else
- # PRELUDE = $(NDK_CLIB)/imports/clibpre.gcc.o
- # to avoid the __init_* / __deinit_* woes don't use prelude from NDK
- # http://www.gknw.net/development/mk_nlm/gcc_pre.zip
- PRELUDE = $(NDK_ROOT)/pre/prelude.o
- CFLAGS += -include $(NDKBASE)/nlmconv/genlm.h
-endif
+ LD = nlmconv
+ LDFLAGS = -T
+ LIBEXT = a
+ CFLAGS += -m32
+ CFLAGS += -fno-builtin -fno-strict-aliasing
+ ifeq ($(findstring gcc,$(CC)),gcc)
+ CFLAGS += -fpcc-struct-return
+ endif
+ CFLAGS += -Wall # -pedantic
+ ifeq ($(LIBARCH),LIBC)
+ ifeq ($(POSIXFL),1)
+ PRELUDE = $(NDK_LIBC)/imports/posixpre.gcc.o
+ else
+ PRELUDE = $(NDK_LIBC)/imports/libcpre.gcc.o
+ endif
+ else
+ # PRELUDE = $(NDK_CLIB)/imports/clibpre.gcc.o
+ # to avoid the __init_* / __deinit_* woes don't use prelude from NDK
+ # http://www.gknw.net/development/mk_nlm/gcc_pre.zip
+ PRELUDE = $(NDK_ROOT)/pre/prelude.o
+ CFLAGS += -include $(NDKBASE)/nlmconv/genlm.h
+ endif
endif
NDK_ROOT = $(NDKBASE)/ndk
@@ -216,91 +216,91 @@ ENABLE_IPV6 = 1
endif
ifdef LINK_STATIC
- LDLIBS = $(CURL_LIB)/libcurl.$(LIBEXT)
+ LDLIBS = $(CURL_LIB)/libcurl.$(LIBEXT)
ifdef WITH_ARES
- LDLIBS += $(LIBCARES_PATH)/libcares.$(LIBEXT)
+ LDLIBS += $(LIBCARES_PATH)/libcares.$(LIBEXT)
endif
else
- MODULES = libcurl.nlm
- IMPORTS = @$(CURL_LIB)/libcurl.imp
+ MODULES = libcurl.nlm
+ IMPORTS = @$(CURL_LIB)/libcurl.imp
endif
ifdef WITH_SSH2
- # INCLUDES += -I$(LIBSSH2_PATH)/include
-ifdef LINK_STATIC
- LDLIBS += $(LIBSSH2_PATH)/nw/libssh2.$(LIBEXT)
-else
- MODULES += libssh2.nlm
- IMPORTS += @$(LIBSSH2_PATH)/nw/libssh2.imp
-endif
+ # INCLUDES += -I$(LIBSSH2_PATH)/include
+ ifdef LINK_STATIC
+ LDLIBS += $(LIBSSH2_PATH)/nw/libssh2.$(LIBEXT)
+ else
+ MODULES += libssh2.nlm
+ IMPORTS += @$(LIBSSH2_PATH)/nw/libssh2.imp
+ endif
endif
ifdef WITH_RTMP
- # INCLUDES += -I$(LIBRTMP_PATH)
+ # INCLUDES += -I$(LIBRTMP_PATH)
ifdef LINK_STATIC
- LDLIBS += $(LIBRTMP_PATH)/librtmp/librtmp.$(LIBEXT)
+ LDLIBS += $(LIBRTMP_PATH)/librtmp/librtmp.$(LIBEXT)
endif
endif
ifdef WITH_SSL
- INCLUDES += -I$(OPENSSL_PATH)/outinc_nw_$(LIBARCH_L)
- LDLIBS += $(OPENSSL_PATH)/out_nw_$(LIBARCH_L)/ssl.$(LIBEXT)
- LDLIBS += $(OPENSSL_PATH)/out_nw_$(LIBARCH_L)/crypto.$(LIBEXT)
- IMPORTS += GetProcessSwitchCount RunningProcess
+ INCLUDES += -I$(OPENSSL_PATH)/outinc_nw_$(LIBARCH_L)
+ LDLIBS += $(OPENSSL_PATH)/out_nw_$(LIBARCH_L)/ssl.$(LIBEXT)
+ LDLIBS += $(OPENSSL_PATH)/out_nw_$(LIBARCH_L)/crypto.$(LIBEXT)
+ IMPORTS += GetProcessSwitchCount RunningProcess
else
ifdef WITH_AXTLS
- INCLUDES += -I$(AXTLS_PATH)/inc
+ INCLUDES += -I$(AXTLS_PATH)/inc
ifdef LINK_STATIC
- LDLIBS += $(AXTLS_PATH)/lib/libaxtls.$(LIBEXT)
+ LDLIBS += $(AXTLS_PATH)/lib/libaxtls.$(LIBEXT)
else
- MODULES += libaxtls.nlm
- IMPORTS += $(AXTLS_PATH)/lib/libaxtls.imp
+ MODULES += libaxtls.nlm
+ IMPORTS += $(AXTLS_PATH)/lib/libaxtls.imp
endif
endif
endif
ifdef WITH_ZLIB
- # INCLUDES += -I$(ZLIB_PATH)
+ # INCLUDES += -I$(ZLIB_PATH)
ifdef LINK_STATIC
- LDLIBS += $(ZLIB_PATH)/nw/$(LIBARCH)/libz.$(LIBEXT)
+ LDLIBS += $(ZLIB_PATH)/nw/$(LIBARCH)/libz.$(LIBEXT)
else
- MODULES += libz.nlm
- IMPORTS += @$(ZLIB_PATH)/nw/$(LIBARCH)/libz.imp
+ MODULES += libz.nlm
+ IMPORTS += @$(ZLIB_PATH)/nw/$(LIBARCH)/libz.imp
endif
endif
ifdef WITH_IDN
- # INCLUDES += -I$(LIBIDN_PATH)/include
- LDLIBS += $(LIBIDN_PATH)/lib/libidn.$(LIBEXT)
+ # INCLUDES += -I$(LIBIDN_PATH)/include
+ LDLIBS += $(LIBIDN_PATH)/lib/libidn.$(LIBEXT)
endif
ifeq ($(LIBARCH),LIBC)
- INCLUDES += -I$(NDK_LIBC)/include
- # INCLUDES += -I$(NDK_LIBC)/include/nks
- # INCLUDES += -I$(NDK_LIBC)/include/winsock
- CFLAGS += -D_POSIX_SOURCE
+ INCLUDES += -I$(NDK_LIBC)/include
+ # INCLUDES += -I$(NDK_LIBC)/include/nks
+ # INCLUDES += -I$(NDK_LIBC)/include/winsock
+ CFLAGS += -D_POSIX_SOURCE
else
- INCLUDES += -I$(NDK_CLIB)/include/nlm
- # INCLUDES += -I$(NDK_CLIB)/include
+ INCLUDES += -I$(NDK_CLIB)/include/nlm
+ # INCLUDES += -I$(NDK_CLIB)/include
endif
ifndef DISABLE_LDAP
- # INCLUDES += -I$(NDK_LDAP)/$(LIBARCH_L)/inc
+ # INCLUDES += -I$(NDK_LDAP)/$(LIBARCH_L)/inc
endif
-CFLAGS += $(INCLUDES)
+CFLAGS += $(INCLUDES)
ifeq ($(MTSAFE),YES)
- XDCOPT = -n
+ XDCOPT = -n
endif
ifeq ($(MTSAFE),NO)
- XDCOPT = -u
+ XDCOPT = -u
endif
ifdef XDCOPT
- XDCDATA = $(OBJDIR)/$(TARGET).xdc
+ XDCDATA = $(OBJDIR)/$(TARGET).xdc
endif
ifeq ($(findstring /sh,$(SHELL)),/sh)
-DL = '
-DS = /
-PCT = %
+DL = '
+DS = /
+PCT = %
#-include $(NDKBASE)/nlmconv/ncpfs.inc
else
-DS = \\
-PCT = %%
+DS = \\
+PCT = %%
endif
# Makefile.inc provides the CSOURCES and HHEADERS defines
diff --git a/docs/examples/anyauthput.c b/docs/examples/anyauthput.c
index eb91d991..14da10c3 100644
--- a/docs/examples/anyauthput.c
+++ b/docs/examples/anyauthput.c
@@ -26,15 +26,18 @@
*/
#include <stdio.h>
#include <fcntl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#include <curl/curl.h>
+
#ifdef WIN32
# include <io.h>
+# define READ_3RD_ARG unsigned int
#else
# include <unistd.h>
+# define READ_3RD_ARG size_t
#endif
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#include <curl/curl.h>
#if LIBCURL_VERSION_NUM < 0x070c03
#error "upgrade your libcurl to no less than 7.12.3"
@@ -83,7 +86,7 @@ static size_t read_callback(void *ptr, size_t size, size_t nmemb, void *stream)
int *fdp = (int *)stream;
int fd = *fdp;
- retcode = read(fd, ptr, size * nmemb);
+ retcode = read(fd, ptr, (READ_3RD_ARG)(size * nmemb));
nread = (curl_off_t)retcode;
diff --git a/docs/examples/asiohiper.cpp b/docs/examples/asiohiper.cpp
index 9e0554f5..de148050 100644
--- a/docs/examples/asiohiper.cpp
+++ b/docs/examples/asiohiper.cpp
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 2012 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 2012 - 2018, 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
@@ -42,6 +42,16 @@
*
* This is purely a demo app, all retrieved data is simply discarded by the
* write callback.
+ *
+ * ===========================================================================
+ * WARNING: This example program is known to have flaws:
+ * https://github.com/curl/curl/issues/2407
+ *
+ * It still kept in the example repository with the hope that it might be
+ * useful, and maybe some day someone who knows enough about boost::asio will
+ * read this text, accept the challenge and make the example code work
+ * correctly. Until then: expect this example program to fail occasionally.
+ * ===========================================================================
*/
diff --git a/docs/examples/cookie_interface.c b/docs/examples/cookie_interface.c
index 2af0619b..32e9a1d1 100644
--- a/docs/examples/cookie_interface.c
+++ b/docs/examples/cookie_interface.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -71,7 +71,7 @@ main(void)
if(curl) {
char nline[256];
- curl_easy_setopt(curl, CURLOPT_URL, "http://www.example.com/");
+ curl_easy_setopt(curl, CURLOPT_URL, "https://www.example.com/");
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
curl_easy_setopt(curl, CURLOPT_COOKIEFILE, ""); /* start cookie engine */
res = curl_easy_perform(curl);
diff --git a/docs/examples/crawler.c b/docs/examples/crawler.c
index 0aeb8654..d8fa5a45 100644
--- a/docs/examples/crawler.c
+++ b/docs/examples/crawler.c
@@ -52,7 +52,13 @@ size_t grow_buffer(void *contents, size_t sz, size_t nmemb, void *ctx)
{
size_t realsize = sz * nmemb;
memory *mem = (memory*) ctx;
- mem->buf = realloc(mem->buf, mem->size + realsize);
+ char *ptr = realloc(mem->buf, mem->size + realsize);
+ if(!ptr) {
+ /* out of memory */
+ printf("not enough memory (realloc returned NULL)\n");
+ return 0;
+ }
+ mem->buf = ptr;
memcpy(&(mem->buf[mem->size]), contents, realsize);
mem->size += realsize;
return realsize;
diff --git a/docs/examples/curlgtk.c b/docs/examples/curlgtk.c
index c3129c19..79e89acc 100644
--- a/docs/examples/curlgtk.c
+++ b/docs/examples/curlgtk.c
@@ -106,4 +106,3 @@ int main(int argc, char **argv)
gdk_threads_leave();
return 0;
}
-
diff --git a/docs/examples/curlx.c b/docs/examples/curlx.c
index 141f5a88..49f52e61 100644
--- a/docs/examples/curlx.c
+++ b/docs/examples/curlx.c
@@ -515,12 +515,20 @@ int main(int argc, char **argv)
curl_easy_setopt(p.curl, CURLOPT_SSL_CTX_DATA, &p);
{
+ char *ptr;
int lu; int i = 0;
while((lu = BIO_read(in, &binaryptr[i], tabLength-i)) >0) {
i += lu;
if(i == tabLength) {
tabLength += 100;
- binaryptr = realloc(binaryptr, tabLength); /* should be more careful */
+ ptr = realloc(binaryptr, tabLength); /* should be more careful */
+ if(!ptr) {
+ /* out of memory */
+ BIO_printf(p.errorbio, "out of memory (realloc returned NULL)\n");
+ goto fail;
+ }
+ binaryptr = ptr;
+ ptr = NULL;
}
}
tabLength = i;
@@ -551,7 +559,7 @@ int main(int argc, char **argv)
/*** code d'erreur si accept mime ***, egalement code return HTTP != 200 ***/
/* free the header list*/
-
+fail:
curl_slist_free_all(headers);
/* always cleanup */
diff --git a/docs/examples/debug.c b/docs/examples/debug.c
index 79250146..884184a5 100644
--- a/docs/examples/debug.c
+++ b/docs/examples/debug.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -140,7 +140,7 @@ int main(void)
/* example.com is redirected, so we tell libcurl to follow redirection */
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
- curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/");
+ curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/");
res = curl_easy_perform(curl);
/* Check for errors */
if(res != CURLE_OK)
diff --git a/docs/examples/getinfo.c b/docs/examples/getinfo.c
index 5585564c..d5a820d1 100644
--- a/docs/examples/getinfo.c
+++ b/docs/examples/getinfo.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -33,7 +33,7 @@ int main(void)
curl = curl_easy_init();
if(curl) {
- curl_easy_setopt(curl, CURLOPT_URL, "http://www.example.com/");
+ curl_easy_setopt(curl, CURLOPT_URL, "https://www.example.com/");
res = curl_easy_perform(curl);
if(CURLE_OK == res) {
diff --git a/docs/examples/getinmemory.c b/docs/examples/getinmemory.c
index f5e8942f..130d821d 100644
--- a/docs/examples/getinmemory.c
+++ b/docs/examples/getinmemory.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -42,13 +42,14 @@ WriteMemoryCallback(void *contents, size_t size, size_t nmemb, void *userp)
size_t realsize = size * nmemb;
struct MemoryStruct *mem = (struct MemoryStruct *)userp;
- mem->memory = realloc(mem->memory, mem->size + realsize + 1);
- if(mem->memory == NULL) {
+ char *ptr = realloc(mem->memory, mem->size + realsize + 1);
+ if(ptr == NULL) {
/* out of memory! */
printf("not enough memory (realloc returned NULL)\n");
return 0;
}
+ mem->memory = ptr;
memcpy(&(mem->memory[mem->size]), contents, realsize);
mem->size += realsize;
mem->memory[mem->size] = 0;
@@ -72,7 +73,7 @@ int main(void)
curl_handle = curl_easy_init();
/* specify URL to get */
- curl_easy_setopt(curl_handle, CURLOPT_URL, "http://www.example.com/");
+ curl_easy_setopt(curl_handle, CURLOPT_URL, "https://www.example.com/");
/* send all data to this function */
curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, WriteMemoryCallback);
diff --git a/docs/examples/getredirect.c b/docs/examples/getredirect.c
index 347b1e9b..64157f9c 100644
--- a/docs/examples/getredirect.c
+++ b/docs/examples/getredirect.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -35,7 +35,7 @@ int main(void)
curl = curl_easy_init();
if(curl) {
- curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
+ curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
/* example.com is redirected, figure out the redirection! */
diff --git a/docs/examples/href_extractor.c b/docs/examples/href_extractor.c
index 16f50c0e..aa2b4381 100644
--- a/docs/examples/href_extractor.c
+++ b/docs/examples/href_extractor.c
@@ -26,7 +26,7 @@
* </DESC>
*/
/*
- * The HTML parser is found at http://code.google.com/p/htmlstreamparser/
+ * The HTML parser is found at https://github.com/arjunc77/htmlstreamparser
*/
#include <stdio.h>
diff --git a/docs/examples/htmltidy.c b/docs/examples/htmltidy.c
index 44af0c51..2f4500f5 100644
--- a/docs/examples/htmltidy.c
+++ b/docs/examples/htmltidy.c
@@ -24,12 +24,12 @@
* </DESC>
*/
/*
- * LibTidy => http://tidy.sourceforge.net
+ * LibTidy => https://www.html-tidy.org/
*/
#include <stdio.h>
-#include <tidy/tidy.h>
-#include <tidy/buffio.h>
+#include <tidy.h>
+#include <tidybuffio.h>
#include <curl/curl.h>
/* curl write callback, to fill tidy's input buffer... */
diff --git a/docs/examples/http2-download.c b/docs/examples/http2-download.c
index 3425d302..b4ac7c93 100644
--- a/docs/examples/http2-download.c
+++ b/docs/examples/http2-download.c
@@ -189,7 +189,7 @@ int main(int argc, char **argv)
CURL *easy[NUM_HANDLES];
CURLM *multi_handle;
int i;
- int still_running; /* keep number of running handles */
+ int still_running = 0; /* keep number of running handles */
if(argc > 1)
/* if given a number, do that many transfers */
@@ -215,7 +215,7 @@ int main(int argc, char **argv)
/* we start some action by calling perform right away */
curl_multi_perform(multi_handle, &still_running);
- do {
+ while(still_running) {
struct timeval timeout;
int rc; /* select() return code */
CURLMcode mc; /* curl_multi_fdset() return code */
@@ -284,7 +284,7 @@ int main(int argc, char **argv)
curl_multi_perform(multi_handle, &still_running);
break;
}
- } while(still_running);
+ }
curl_multi_cleanup(multi_handle);
diff --git a/docs/examples/http2-pushinmemory.c b/docs/examples/http2-pushinmemory.c
new file mode 100644
index 00000000..00406a8a
--- /dev/null
+++ b/docs/examples/http2-pushinmemory.c
@@ -0,0 +1,188 @@
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2018, 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 https://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.
+ *
+ ***************************************************************************/
+/* <DESC>
+ * HTTP/2 server push. Receive all data in memory.
+ * </DESC>
+ */
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* somewhat unix-specific */
+#include <sys/time.h>
+#include <unistd.h>
+
+/* curl stuff */
+#include <curl/curl.h>
+
+struct Memory {
+ char *memory;
+ size_t size;
+};
+
+static size_t
+write_cb(void *contents, size_t size, size_t nmemb, void *userp)
+{
+ size_t realsize = size * nmemb;
+ struct Memory *mem = (struct Memory *)userp;
+ char *ptr = realloc(mem->memory, mem->size + realsize + 1);
+ if(!ptr) {
+ /* out of memory! */
+ printf("not enough memory (realloc returned NULL)\n");
+ return 0;
+ }
+
+ mem->memory = ptr;
+ memcpy(&(mem->memory[mem->size]), contents, realsize);
+ mem->size += realsize;
+ mem->memory[mem->size] = 0;
+
+ return realsize;
+}
+
+#define MAX_FILES 10
+static struct Memory files[MAX_FILES];
+static int pushindex = 1;
+
+static void init_memory(struct Memory *chunk)
+{
+ chunk->memory = malloc(1); /* grown as needed with realloc */
+ chunk->size = 0; /* no data at this point */
+}
+
+static void setup(CURL *hnd)
+{
+ /* set the same URL */
+ curl_easy_setopt(hnd, CURLOPT_URL, "https://localhost:8443/index.html");
+
+ /* HTTP/2 please */
+ curl_easy_setopt(hnd, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0);
+
+ /* we use a self-signed test server, skip verification during debugging */
+ curl_easy_setopt(hnd, CURLOPT_SSL_VERIFYPEER, 0L);
+ curl_easy_setopt(hnd, CURLOPT_SSL_VERIFYHOST, 0L);
+
+ /* write data to a struct */
+ curl_easy_setopt(hnd, CURLOPT_WRITEFUNCTION, write_cb);
+ init_memory(&files[0]);
+ curl_easy_setopt(hnd, CURLOPT_WRITEDATA, &files[0]);
+
+ /* wait for pipe connection to confirm */
+ curl_easy_setopt(hnd, CURLOPT_PIPEWAIT, 1L);
+}
+
+/* called when there's an incoming push */
+static int server_push_callback(CURL *parent,
+ CURL *easy,
+ size_t num_headers,
+ struct curl_pushheaders *headers,
+ void *userp)
+{
+ char *headp;
+ int *transfers = (int *)userp;
+ (void)parent; /* we have no use for this */
+ (void)num_headers; /* unused */
+
+ if(pushindex == MAX_FILES)
+ /* can't fit anymore */
+ return CURL_PUSH_DENY;
+
+ /* write to this buffer */
+ init_memory(&files[pushindex]);
+ curl_easy_setopt(easy, CURLOPT_WRITEDATA, &files[pushindex]);
+ pushindex++;
+
+ headp = curl_pushheader_byname(headers, ":path");
+ if(headp)
+ fprintf(stderr, "* Pushed :path '%s'\n", headp /* skip :path + colon */);
+
+ (*transfers)++; /* one more */
+ return CURL_PUSH_OK;
+}
+
+
+/*
+ * Download a file over HTTP/2, take care of server push.
+ */
+int main(void)
+{
+ CURL *easy;
+ CURLM *multi;
+ int still_running; /* keep number of running handles */
+ int transfers = 1; /* we start with one */
+ int i;
+ struct CURLMsg *m;
+
+ /* init a multi stack */
+ multi = curl_multi_init();
+
+ easy = curl_easy_init();
+
+ /* set options */
+ setup(easy);
+
+ /* add the easy transfer */
+ curl_multi_add_handle(multi, easy);
+
+ curl_multi_setopt(multi, CURLMOPT_PIPELINING, CURLPIPE_MULTIPLEX);
+ curl_multi_setopt(multi, CURLMOPT_PUSHFUNCTION, server_push_callback);
+ curl_multi_setopt(multi, CURLMOPT_PUSHDATA, &transfers);
+
+ while(transfers) {
+ int rc;
+ CURLMcode mcode = curl_multi_perform(multi, &still_running);
+ if(mcode)
+ break;
+
+ mcode = curl_multi_wait(multi, NULL, 0, 1000, &rc);
+ if(mcode)
+ break;
+
+
+ /*
+ * When doing server push, libcurl itself created and added one or more
+ * easy handles but *we* need to clean them up when they are done.
+ */
+ do {
+ int msgq = 0;;
+ m = curl_multi_info_read(multi, &msgq);
+ if(m && (m->msg == CURLMSG_DONE)) {
+ CURL *e = m->easy_handle;
+ transfers--;
+ curl_multi_remove_handle(multi, e);
+ curl_easy_cleanup(e);
+ }
+ } while(m);
+
+ }
+
+
+ curl_multi_cleanup(multi);
+
+ /* 'pushindex' is now the number of received transfers */
+ for(i = 0; i < pushindex; i++) {
+ /* do something fun with the data, and then free it when done */
+ free(files[i].memory);
+ }
+
+ return 0;
+}
diff --git a/docs/examples/http2-upload.c b/docs/examples/http2-upload.c
index 06ff0409..2717998c 100644
--- a/docs/examples/http2-upload.c
+++ b/docs/examples/http2-upload.c
@@ -245,7 +245,7 @@ int main(int argc, char **argv)
CURL *easy[NUM_HANDLES];
CURLM *multi_handle;
int i;
- int still_running; /* keep number of running handles */
+ int still_running = 0; /* keep number of running handles */
const char *filename = "index.html";
if(argc > 1)
@@ -279,7 +279,7 @@ int main(int argc, char **argv)
/* we start some action by calling perform right away */
curl_multi_perform(multi_handle, &still_running);
- do {
+ while(still_running) {
struct timeval timeout;
int rc; /* select() return code */
CURLMcode mc; /* curl_multi_fdset() return code */
@@ -348,7 +348,7 @@ int main(int argc, char **argv)
curl_multi_perform(multi_handle, &still_running);
break;
}
- } while(still_running);
+ }
curl_multi_cleanup(multi_handle);
diff --git a/docs/examples/makefile.dj b/docs/examples/makefile.dj
index af761130..17d93ab8 100644
--- a/docs/examples/makefile.dj
+++ b/docs/examples/makefile.dj
@@ -53,4 +53,3 @@ clean vclean realclean:
- rm -f $(PROGRAMS) depend.dj
-include depend.dj
-
diff --git a/docs/examples/multi-app.c b/docs/examples/multi-app.c
index 74b2a942..78867d83 100644
--- a/docs/examples/multi-app.c
+++ b/docs/examples/multi-app.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -48,7 +48,7 @@ int main(void)
CURL *handles[HANDLECOUNT];
CURLM *multi_handle;
- int still_running; /* keep number of running handles */
+ int still_running = 0; /* keep number of running handles */
int i;
CURLMsg *msg; /* for picking up messages with the transfer status */
@@ -59,7 +59,7 @@ int main(void)
handles[i] = curl_easy_init();
/* set the options (I left out a few, you'll get the point anyway) */
- curl_easy_setopt(handles[HTTP_HANDLE], CURLOPT_URL, "http://example.com");
+ curl_easy_setopt(handles[HTTP_HANDLE], CURLOPT_URL, "https://example.com");
curl_easy_setopt(handles[FTP_HANDLE], CURLOPT_URL, "ftp://example.com");
curl_easy_setopt(handles[FTP_HANDLE], CURLOPT_UPLOAD, 1L);
@@ -74,7 +74,7 @@ int main(void)
/* we start some action by calling perform right away */
curl_multi_perform(multi_handle, &still_running);
- do {
+ while(still_running) {
struct timeval timeout;
int rc; /* select() return code */
CURLMcode mc; /* curl_multi_fdset() return code */
@@ -142,7 +142,7 @@ int main(void)
curl_multi_perform(multi_handle, &still_running);
break;
}
- } while(still_running);
+ }
/* See how the transfers went */
while((msg = curl_multi_info_read(multi_handle, &msgs_left))) {
diff --git a/docs/examples/multi-debugcallback.c b/docs/examples/multi-debugcallback.c
index 11ab74b7..59f72442 100644
--- a/docs/examples/multi-debugcallback.c
+++ b/docs/examples/multi-debugcallback.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -131,12 +131,12 @@ int main(void)
CURL *http_handle;
CURLM *multi_handle;
- int still_running; /* keep number of running handles */
+ int still_running = 0; /* keep number of running handles */
http_handle = curl_easy_init();
/* set the options (I left out a few, you'll get the point anyway) */
- curl_easy_setopt(http_handle, CURLOPT_URL, "http://www.example.com/");
+ curl_easy_setopt(http_handle, CURLOPT_URL, "https://www.example.com/");
curl_easy_setopt(http_handle, CURLOPT_DEBUGFUNCTION, my_trace);
curl_easy_setopt(http_handle, CURLOPT_VERBOSE, 1L);
@@ -150,7 +150,7 @@ int main(void)
/* we start some action by calling perform right away */
curl_multi_perform(multi_handle, &still_running);
- do {
+ while(still_running) {
struct timeval timeout;
int rc; /* select() return code */
CURLMcode mc; /* curl_multi_fdset() return code */
@@ -221,7 +221,7 @@ int main(void)
curl_multi_perform(multi_handle, &still_running);
break;
}
- } while(still_running);
+ }
curl_multi_cleanup(multi_handle);
diff --git a/docs/examples/multi-double.c b/docs/examples/multi-double.c
index 34345393..644e64b1 100644
--- a/docs/examples/multi-double.c
+++ b/docs/examples/multi-double.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -42,13 +42,13 @@ int main(void)
CURL *http_handle2;
CURLM *multi_handle;
- int still_running; /* keep number of running handles */
+ int still_running = 0; /* keep number of running handles */
http_handle = curl_easy_init();
http_handle2 = curl_easy_init();
/* set options */
- curl_easy_setopt(http_handle, CURLOPT_URL, "http://www.example.com/");
+ curl_easy_setopt(http_handle, CURLOPT_URL, "https://www.example.com/");
/* set options */
curl_easy_setopt(http_handle2, CURLOPT_URL, "http://localhost/");
@@ -63,7 +63,7 @@ int main(void)
/* we start some action by calling perform right away */
curl_multi_perform(multi_handle, &still_running);
- do {
+ while(still_running) {
struct timeval timeout;
int rc; /* select() return code */
CURLMcode mc; /* curl_multi_fdset() return code */
@@ -132,7 +132,7 @@ int main(void)
curl_multi_perform(multi_handle, &still_running);
break;
}
- } while(still_running);
+ }
curl_multi_cleanup(multi_handle);
diff --git a/docs/examples/multi-formadd.c b/docs/examples/multi-formadd.c
index bd85cc64..c1bb1355 100644
--- a/docs/examples/multi-formadd.c
+++ b/docs/examples/multi-formadd.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -35,7 +35,7 @@ int main(void)
CURL *curl;
CURLM *multi_handle;
- int still_running;
+ int still_running = 0;
struct curl_httppost *formpost = NULL;
struct curl_httppost *lastptr = NULL;
@@ -73,7 +73,7 @@ int main(void)
if(curl && multi_handle) {
/* what URL that receives this POST */
- curl_easy_setopt(curl, CURLOPT_URL, "http://www.example.com/upload.cgi");
+ curl_easy_setopt(curl, CURLOPT_URL, "https://www.example.com/upload.cgi");
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist);
@@ -83,7 +83,7 @@ int main(void)
curl_multi_perform(multi_handle, &still_running);
- do {
+ while(still_running) {
struct timeval timeout;
int rc; /* select() return code */
CURLMcode mc; /* curl_multi_fdset() return code */
@@ -154,7 +154,7 @@ int main(void)
printf("running: %d!\n", still_running);
break;
}
- } while(still_running);
+ }
curl_multi_cleanup(multi_handle);
diff --git a/docs/examples/multi-post.c b/docs/examples/multi-post.c
index 95d71bea..fe66ca90 100644
--- a/docs/examples/multi-post.c
+++ b/docs/examples/multi-post.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -35,7 +35,7 @@ int main(void)
CURL *curl;
CURLM *multi_handle;
- int still_running;
+ int still_running = 0;
curl_mime *form = NULL;
curl_mimepart *field = NULL;
@@ -69,7 +69,7 @@ int main(void)
headerlist = curl_slist_append(headerlist, buf);
/* what URL that receives this POST */
- curl_easy_setopt(curl, CURLOPT_URL, "http://www.example.com/upload.cgi");
+ curl_easy_setopt(curl, CURLOPT_URL, "https://www.example.com/upload.cgi");
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist);
@@ -79,7 +79,7 @@ int main(void)
curl_multi_perform(multi_handle, &still_running);
- do {
+ while(still_running) {
struct timeval timeout;
int rc; /* select() return code */
CURLMcode mc; /* curl_multi_fdset() return code */
@@ -150,7 +150,7 @@ int main(void)
printf("running: %d!\n", still_running);
break;
}
- } while(still_running);
+ }
curl_multi_cleanup(multi_handle);
diff --git a/docs/examples/multi-single.c b/docs/examples/multi-single.c
index 70b6d24b..530a5f50 100644
--- a/docs/examples/multi-single.c
+++ b/docs/examples/multi-single.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -51,7 +51,7 @@ int main(void)
CURL *http_handle;
CURLM *multi_handle;
- int still_running; /* keep number of running handles */
+ int still_running = 0; /* keep number of running handles */
int repeats = 0;
curl_global_init(CURL_GLOBAL_DEFAULT);
@@ -59,7 +59,7 @@ int main(void)
http_handle = curl_easy_init();
/* set the options (I left out a few, you'll get the point anyway) */
- curl_easy_setopt(http_handle, CURLOPT_URL, "http://www.example.com/");
+ curl_easy_setopt(http_handle, CURLOPT_URL, "https://www.example.com/");
/* init a multi stack */
multi_handle = curl_multi_init();
@@ -70,7 +70,7 @@ int main(void)
/* we start some action by calling perform right away */
curl_multi_perform(multi_handle, &still_running);
- do {
+ while(still_running) {
CURLMcode mc; /* curl_multi_wait() return code */
int numfds;
@@ -97,7 +97,7 @@ int main(void)
repeats = 0;
curl_multi_perform(multi_handle, &still_running);
- } while(still_running);
+ }
curl_multi_remove_handle(multi_handle, http_handle);
diff --git a/docs/examples/multi-uv.c b/docs/examples/multi-uv.c
index 1d8c96f5..8ca4b909 100644
--- a/docs/examples/multi-uv.c
+++ b/docs/examples/multi-uv.c
@@ -29,7 +29,7 @@
Requires libuv and (of course) libcurl.
- See https://nikhilm.github.com/uvbook/ for more information on libuv.
+ See https://nikhilm.github.io/uvbook/ for more information on libuv.
*/
#include <stdio.h>
diff --git a/docs/examples/multithread.c b/docs/examples/multithread.c
index e3ae8e67..83ed3f58 100644
--- a/docs/examples/multithread.c
+++ b/docs/examples/multithread.c
@@ -42,7 +42,7 @@
const char * const urls[NUMT]= {
"https://curl.haxx.se/",
"ftp://cool.haxx.se/",
- "http://www.contactor.se/",
+ "https://www.cag.se/",
"www.haxx.se"
};
diff --git a/docs/examples/parseurl.c b/docs/examples/parseurl.c
new file mode 100644
index 00000000..ee427768
--- /dev/null
+++ b/docs/examples/parseurl.c
@@ -0,0 +1,78 @@
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2018, 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 https://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.
+ *
+ ***************************************************************************/
+/* <DESC>
+ * Basic URL API use.
+ * </DESC>
+ */
+#include <stdio.h>
+#include <curl/curl.h>
+
+#if !CURL_AT_LEAST_VERSION(7, 62, 0)
+#error "this example requires curl 7.62.0 or later"
+#endif
+
+int main(void)
+{
+ CURLU *h;
+ CURLUcode uc;
+ char *host;
+ char *path;
+
+ h = curl_url(); /* get a handle to work with */
+ if(!h)
+ return 1;
+
+ /* parse a full URL */
+ uc = curl_url_set(h, CURLUPART_URL, "http://example.com/path/index.html", 0);
+ if(uc)
+ goto fail;
+
+ /* extract host name from the parsed URL */
+ uc = curl_url_get(h, CURLUPART_HOST, &host, 0);
+ if(!uc) {
+ printf("Host name: %s\n", host);
+ curl_free(host);
+ }
+
+ /* extract the path from the parsed URL */
+ uc = curl_url_get(h, CURLUPART_PATH, &path, 0);
+ if(!uc) {
+ printf("Path: %s\n", path);
+ curl_free(path);
+ }
+
+ /* redirect with a relative URL */
+ uc = curl_url_set(h, CURLUPART_URL, "../another/second.html", 0);
+ if(uc)
+ goto fail;
+
+ /* extract the new, updated path */
+ uc = curl_url_get(h, CURLUPART_PATH, &path, 0);
+ if(!uc) {
+ printf("Path: %s\n", path);
+ curl_free(path);
+ }
+
+ fail:
+ curl_url_cleanup(h); /* free url handle */
+ return 0;
+}
diff --git a/docs/examples/persistant.c b/docs/examples/persistent.c
index a1e614bd..723b68b8 100644
--- a/docs/examples/persistant.c
+++ b/docs/examples/persistent.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -40,7 +40,7 @@ int main(void)
curl_easy_setopt(curl, CURLOPT_HEADER, 1L);
/* get the first document */
- curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/");
+ curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/");
/* Perform the request, res will get the return code */
res = curl_easy_perform(curl);
@@ -51,7 +51,7 @@ int main(void)
/* get another document from the same server using the same
connection */
- curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/docs/");
+ curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/docs/");
/* Perform the request, res will get the return code */
res = curl_easy_perform(curl);
diff --git a/docs/examples/postinmemory.c b/docs/examples/postinmemory.c
index 488d227b..25a1e8ea 100644
--- a/docs/examples/postinmemory.c
+++ b/docs/examples/postinmemory.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -39,13 +39,14 @@ WriteMemoryCallback(void *contents, size_t size, size_t nmemb, void *userp)
size_t realsize = size * nmemb;
struct MemoryStruct *mem = (struct MemoryStruct *)userp;
- mem->memory = realloc(mem->memory, mem->size + realsize + 1);
- if(mem->memory == NULL) {
+ char *ptr = realloc(mem->memory, mem->size + realsize + 1);
+ if(!ptr) {
/* out of memory! */
printf("not enough memory (realloc returned NULL)\n");
return 0;
}
+ mem->memory = ptr;
memcpy(&(mem->memory[mem->size]), contents, realsize);
mem->size += realsize;
mem->memory[mem->size] = 0;
@@ -67,7 +68,7 @@ int main(void)
curl = curl_easy_init();
if(curl) {
- curl_easy_setopt(curl, CURLOPT_URL, "http://www.example.org/");
+ curl_easy_setopt(curl, CURLOPT_URL, "https://www.example.org/");
/* send all data to this function */
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteMemoryCallback);
diff --git a/docs/examples/postit2-formadd.c b/docs/examples/postit2-formadd.c
index 0ac09f25..a501ce96 100644
--- a/docs/examples/postit2-formadd.c
+++ b/docs/examples/postit2-formadd.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -82,7 +82,7 @@ int main(int argc, char *argv[])
headerlist = curl_slist_append(headerlist, buf);
if(curl) {
/* what URL that receives this POST */
- curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/examplepost.cgi");
+ curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/examplepost.cgi");
if((argc == 2) && (!strcmp(argv[1], "noexpectheader")))
/* only disable 100-continue header if explicitly requested */
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist);
diff --git a/docs/examples/postit2.c b/docs/examples/postit2.c
index 49391e1c..2808f7a4 100644
--- a/docs/examples/postit2.c
+++ b/docs/examples/postit2.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -78,7 +78,7 @@ int main(int argc, char *argv[])
wanted */
headerlist = curl_slist_append(headerlist, buf);
/* what URL that receives this POST */
- curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/examplepost.cgi");
+ curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/examplepost.cgi");
if((argc == 2) && (!strcmp(argv[1], "noexpectheader")))
/* only disable 100-continue header if explicitly requested */
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist);
diff --git a/docs/examples/progressfunc.c b/docs/examples/progressfunc.c
index 51d75366..86ad0d9c 100644
--- a/docs/examples/progressfunc.c
+++ b/docs/examples/progressfunc.c
@@ -108,7 +108,7 @@ int main(void)
prog.lastruntime = 0;
prog.curl = curl;
- curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/");
+ curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/");
#if LIBCURL_VERSION_NUM >= 0x072000
/* xferinfo was introduced in 7.32.0, no earlier libcurl versions will
diff --git a/docs/examples/resolve.c b/docs/examples/resolve.c
index 15e343f9..c3b52d6f 100644
--- a/docs/examples/resolve.c
+++ b/docs/examples/resolve.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -38,12 +38,12 @@ int main(void)
PORT is the port number of the service where libcurl wants to connect to
the HOST and ADDRESS is the numerical IP address
*/
- host = curl_slist_append(NULL, "example.com:80:127.0.0.1");
+ host = curl_slist_append(NULL, "example.com:443:127.0.0.1");
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_RESOLVE, host);
- curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
+ curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
res = curl_easy_perform(curl);
/* always cleanup */
diff --git a/docs/examples/rtsp.c b/docs/examples/rtsp.c
index 32084e9e..75b5d396 100644
--- a/docs/examples/rtsp.c
+++ b/docs/examples/rtsp.c
@@ -192,7 +192,8 @@ int main(int argc, char * const argv[])
char *base_name = NULL;
printf("\nRTSP request %s\n", VERSION_STR);
- printf(" Project web site: http://code.google.com/p/rtsprequest/\n");
+ printf(" Project web site: "
+ "https://github.com/BackupGGCode/rtsprequest\n");
printf(" Requires curl V7.20 or greater\n\n");
/* check command line */
diff --git a/docs/examples/sampleconv.c b/docs/examples/sampleconv.c
index 96eff466..7bfaa51c 100644
--- a/docs/examples/sampleconv.c
+++ b/docs/examples/sampleconv.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -94,7 +94,7 @@ int main(void)
curl = curl_easy_init();
if(curl) {
- curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
+ curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
/* use platform-specific functions for codeset conversions */
curl_easy_setopt(curl, CURLOPT_CONV_FROM_NETWORK_FUNCTION,
diff --git a/docs/examples/sendrecv.c b/docs/examples/sendrecv.c
index eedaf4cd..cf764be4 100644
--- a/docs/examples/sendrecv.c
+++ b/docs/examples/sendrecv.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -76,7 +76,7 @@ int main(void)
curl = curl_easy_init();
if(curl) {
- curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
+ curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
/* Do not do the transfer - only connect to host */
curl_easy_setopt(curl, CURLOPT_CONNECT_ONLY, 1L);
res = curl_easy_perform(curl);
diff --git a/docs/examples/sepheaders.c b/docs/examples/sepheaders.c
index a865d579..8f3a5ff0 100644
--- a/docs/examples/sepheaders.c
+++ b/docs/examples/sepheaders.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -49,7 +49,7 @@ int main(void)
curl_handle = curl_easy_init();
/* set URL to get */
- curl_easy_setopt(curl_handle, CURLOPT_URL, "http://example.com");
+ curl_easy_setopt(curl_handle, CURLOPT_URL, "https://example.com");
/* no progress meter please */
curl_easy_setopt(curl_handle, CURLOPT_NOPROGRESS, 1L);
diff --git a/docs/examples/simple.c b/docs/examples/simple.c
index 7226f4b9..c6122705 100644
--- a/docs/examples/simple.c
+++ b/docs/examples/simple.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -33,7 +33,7 @@ int main(void)
curl = curl_easy_init();
if(curl) {
- curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
+ curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
/* example.com is redirected, so we tell libcurl to follow redirection */
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
diff --git a/docs/examples/simplepost.c b/docs/examples/simplepost.c
index e366f001..8ec537b5 100644
--- a/docs/examples/simplepost.c
+++ b/docs/examples/simplepost.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -36,7 +36,7 @@ int main(void)
curl = curl_easy_init();
if(curl) {
- curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
+ curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postthis);
/* if we don't provide POSTFIELDSIZE, libcurl will strlen() by
diff --git a/docs/examples/smooth-gtk-thread.c b/docs/examples/smooth-gtk-thread.c
index 8451743a..5a4f18fd 100644
--- a/docs/examples/smooth-gtk-thread.c
+++ b/docs/examples/smooth-gtk-thread.c
@@ -64,7 +64,7 @@ size_t write_file(void *ptr, size_t size, size_t nmemb, FILE *stream)
return fwrite(ptr, size, nmemb, stream);
}
-/* http://xoap.weather.com/weather/local/46214?cc=*&dayf=5&unit=i */
+/* https://weather.com/weather/today/l/46214?cc=*&dayf=5&unit=i */
void *pull_one_url(void *NaN)
{
CURL *curl;
diff --git a/docs/examples/synctime.c b/docs/examples/synctime.c
index e5cdfed3..d84cea91 100644
--- a/docs/examples/synctime.c
+++ b/docs/examples/synctime.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -30,11 +30,11 @@
* Set proxy as according to your network, but beware of proxy Cache-Control.
*
* To set your system clock, root access is required.
- * # date -s "`curl -sI http://nist.time.gov/timezone.cgi?UTC/s/0 \
+ * # date -s "`curl -sI https://nist.time.gov/timezone.cgi?UTC/s/0 \
* | awk -F': ' '/Date: / {print $2}'`"
*
* To view remote webserver date and time.
- * $ curl -sI http://nist.time.gov/timezone.cgi?UTC/s/0 \
+ * $ curl -sI https://nist.time.gov/timezone.cgi?UTC/s/0 \
* | awk -F': ' '/Date: / {print $2}'
*
* Synchronising your computer clock via Internet time server usually relies
@@ -63,8 +63,10 @@
* webserver provide Cache-Control to prevent caching.
*
* References:
- * http://tf.nist.gov/timefreq/service/its.htm
- * http://tf.nist.gov/timefreq/service/firewall.htm
+ * https://web.archive.org/web/20100228012139/ \
+ * tf.nist.gov/timefreq/service/its.htm
+ * https://web.archive.org/web/20100409024302/ \
+ * tf.nist.gov/timefreq/service/firewall.htm
*
* Usage:
* This software will synchronise your computer clock only when you issue
@@ -88,6 +90,7 @@
#include <stdio.h>
#include <time.h>
#ifndef __CYGWIN__
+#include <winsock2.h>
#include <windows.h>
#endif
#include <curl/curl.h>
@@ -107,9 +110,8 @@ typedef struct
const char DefaultTimeServer[3][MAX_STRING1] =
{
- "http://pool.ntp.org/",
- "http://nist.time.gov/",
- "http://www.google.com/"
+ "https://nist.time.gov/",
+ "https://www.google.com/"
};
const char *DayStr[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
@@ -138,6 +140,8 @@ size_t SyncTime_CURL_WriteHeader(void *ptr, size_t size, size_t nmemb,
int i, RetVal;
char TmpStr1[26], TmpStr2[26];
+ (void)stream;
+
if(ShowAllHeader == 1)
fprintf(stderr, "%s", (char *)(ptr));
diff --git a/docs/examples/version-check.pl b/docs/examples/version-check.pl
index 074e50d8..8f734fc7 100755
--- a/docs/examples/version-check.pl
+++ b/docs/examples/version-check.pl
@@ -101,5 +101,3 @@ for my $w (@recent) {
}
last;
}
-
-
diff --git a/docs/examples/xmlstream.c b/docs/examples/xmlstream.c
index 9ee4a2e8..8036e480 100644
--- a/docs/examples/xmlstream.c
+++ b/docs/examples/xmlstream.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -25,7 +25,7 @@
*/
/* Written by David Strauss
*
- * Expat => http://www.libexpat.org/
+ * Expat => https://libexpat.github.io/
*
* gcc -Wall -I/usr/local/include xmlstream.c -lcurl -lexpat -o xmlstream
*
@@ -69,14 +69,15 @@ static void characterDataHandler(void *userData, const XML_Char *s, int len)
struct ParserStruct *state = (struct ParserStruct *) userData;
struct MemoryStruct *mem = &state->characters;
- mem->memory = realloc(mem->memory, mem->size + len + 1);
- if(mem->memory == NULL) {
+ char *ptr = realloc(mem->memory, mem->size + len + 1);
+ if(!ptr) {
/* Out of memory. */
fprintf(stderr, "Not enough memory (realloc returned NULL).\n");
state->ok = 0;
return;
}
+ mem->memory = ptr;
memcpy(&(mem->memory[mem->size]), s, len);
mem->size += len;
mem->memory[mem->size] = 0;
@@ -130,7 +131,7 @@ int main(void)
curl_global_init(CURL_GLOBAL_DEFAULT);
curl_handle = curl_easy_init();
curl_easy_setopt(curl_handle, CURLOPT_URL,
- "http://www.w3schools.com/xml/simple.xml");
+ "https://www.w3schools.com/xml/simple.xml");
curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, parseStreamCallback);
curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, (void *)parser);
diff --git a/docs/libcurl/Makefile.inc b/docs/libcurl/Makefile.inc
index eea48c41..b4ff45dd 100644
--- a/docs/libcurl/Makefile.inc
+++ b/docs/libcurl/Makefile.inc
@@ -1,25 +1,83 @@
# Shared between Makefile.am and CMakeLists.txt
-man_MANS = curl_easy_cleanup.3 curl_easy_getinfo.3 curl_easy_init.3 \
- curl_easy_perform.3 curl_easy_setopt.3 curl_easy_duphandle.3 \
- curl_formadd.3 curl_formfree.3 curl_getdate.3 curl_getenv.3 \
- curl_slist_append.3 curl_slist_free_all.3 curl_version.3 \
- curl_version_info.3 curl_escape.3 curl_unescape.3 curl_free.3 \
- curl_strequal.3 curl_strnequal.3 curl_mprintf.3 curl_global_init.3 \
- curl_global_cleanup.3 curl_multi_add_handle.3 curl_multi_cleanup.3 \
- curl_multi_fdset.3 curl_multi_info_read.3 curl_multi_init.3 \
- curl_multi_perform.3 curl_multi_remove_handle.3 curl_share_cleanup.3 \
- curl_share_init.3 curl_share_setopt.3 libcurl.3 libcurl-easy.3 \
- libcurl-multi.3 libcurl-share.3 libcurl-errors.3 curl_easy_strerror.3 \
- curl_multi_strerror.3 curl_share_strerror.3 curl_global_init_mem.3 \
- libcurl-tutorial.3 curl_easy_reset.3 curl_easy_escape.3 \
- curl_easy_unescape.3 curl_multi_setopt.3 curl_multi_socket.3 \
- curl_multi_timeout.3 curl_formget.3 curl_multi_assign.3 \
- curl_easy_pause.3 curl_easy_recv.3 curl_easy_send.3 \
- curl_multi_socket_action.3 curl_multi_wait.3 libcurl-symbols.3 \
- libcurl-thread.3 curl_multi_socket_all.3 curl_global_sslset.3 \
- curl_mime_init.3 curl_mime_free.3 curl_mime_addpart.3 curl_mime_name.3 \
- curl_mime_data.3 curl_mime_data_cb.3 curl_mime_filedata.3 \
- curl_mime_filename.3 curl_mime_subparts.3 \
- curl_mime_type.3 curl_mime_headers.3 curl_mime_encoder.3 libcurl-env.3 \
- libcurl-security.3
+man_MANS = \
+ curl_easy_cleanup.3 \
+ curl_easy_duphandle.3 \
+ curl_easy_escape.3 \
+ curl_easy_getinfo.3 \
+ curl_easy_init.3 \
+ curl_easy_pause.3 \
+ curl_easy_perform.3 \
+ curl_easy_recv.3 \
+ curl_easy_reset.3 \
+ curl_easy_send.3 \
+ curl_easy_setopt.3 \
+ curl_easy_strerror.3 \
+ curl_easy_unescape.3 \
+ curl_easy_upkeep.3 \
+ curl_escape.3 \
+ curl_formadd.3 \
+ curl_formfree.3 \
+ curl_formget.3 \
+ curl_free.3 \
+ curl_getdate.3 \
+ curl_getenv.3 \
+ curl_global_cleanup.3 \
+ curl_global_init.3 \
+ curl_global_init_mem.3 \
+ curl_global_sslset.3 \
+ curl_mime_addpart.3 \
+ curl_mime_data.3 \
+ curl_mime_data_cb.3 \
+ curl_mime_encoder.3 \
+ curl_mime_filedata.3 \
+ curl_mime_filename.3 \
+ curl_mime_free.3 \
+ curl_mime_headers.3 \
+ curl_mime_init.3 \
+ curl_mime_name.3 \
+ curl_mime_subparts.3 \
+ curl_mime_type.3 \
+ curl_mprintf.3 \
+ curl_multi_add_handle.3 \
+ curl_multi_assign.3 \
+ curl_multi_cleanup.3 \
+ curl_multi_fdset.3 \
+ curl_multi_info_read.3 \
+ curl_multi_init.3 \
+ curl_multi_perform.3 \
+ curl_multi_remove_handle.3 \
+ curl_multi_setopt.3 \
+ curl_multi_socket.3 \
+ curl_multi_socket_action.3 \
+ curl_multi_socket_all.3 \
+ curl_multi_strerror.3 \
+ curl_multi_timeout.3 \
+ curl_multi_wait.3 \
+ curl_share_cleanup.3 \
+ curl_share_init.3 \
+ curl_share_setopt.3 \
+ curl_share_strerror.3 \
+ curl_slist_append.3 \
+ curl_slist_free_all.3 \
+ curl_strequal.3 \
+ curl_strnequal.3 \
+ curl_unescape.3 \
+ curl_url.3 \
+ curl_url_cleanup.3 \
+ curl_url_dup.3 \
+ curl_url_get.3 \
+ curl_url_set.3 \
+ curl_version.3 \
+ curl_version_info.3 \
+ libcurl-easy.3 \
+ libcurl-env.3 \
+ libcurl-errors.3 \
+ libcurl-multi.3 \
+ libcurl-security.3 \
+ libcurl-share.3 \
+ libcurl-symbols.3 \
+ libcurl-thread.3 \
+ libcurl-tutorial.3 \
+ libcurl-url.3 \
+ libcurl.3
diff --git a/docs/libcurl/curl_easy_cleanup.3 b/docs/libcurl/curl_easy_cleanup.3
index e2580c5c..c73b6d8d 100644
--- a/docs/libcurl/curl_easy_cleanup.3
+++ b/docs/libcurl/curl_easy_cleanup.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH curl_easy_cleanup 3 "August 09, 2018" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_easy_cleanup 3 "August 09, 2018" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_easy_cleanup - End a libcurl easy handle
diff --git a/docs/libcurl/curl_easy_duphandle.3 b/docs/libcurl/curl_easy_duphandle.3
index e78c9130..b0b9dbb2 100644
--- a/docs/libcurl/curl_easy_duphandle.3
+++ b/docs/libcurl/curl_easy_duphandle.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_easy_duphandle 3 "February 03, 2016" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_easy_duphandle 3 "September 23, 2018" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_easy_duphandle - Clone a libcurl session handle
@@ -50,4 +50,3 @@ returned.
.SH "SEE ALSO"
.BR curl_easy_init "(3)," curl_easy_cleanup "(3)," curl_easy_reset "(3),"
.BR curl_global_init "(3)"
-
diff --git a/docs/libcurl/curl_easy_escape.3 b/docs/libcurl/curl_easy_escape.3
index 8c557204..76594ee7 100644
--- a/docs/libcurl/curl_easy_escape.3
+++ b/docs/libcurl/curl_easy_escape.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH curl_easy_escape 3 "August 12, 2017" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_easy_escape 3 "August 12, 2017" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_easy_escape - URL encodes the given string
diff --git a/docs/libcurl/curl_easy_getinfo.3 b/docs/libcurl/curl_easy_getinfo.3
index bb960668..36a0186f 100644
--- a/docs/libcurl/curl_easy_getinfo.3
+++ b/docs/libcurl/curl_easy_getinfo.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH curl_easy_getinfo 3 "May 17, 2018" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_easy_getinfo 3 "May 17, 2018" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_easy_getinfo - extract information from a curl handle
diff --git a/docs/libcurl/curl_easy_init.3 b/docs/libcurl/curl_easy_init.3
index 9fc215ac..2ac700dd 100644
--- a/docs/libcurl/curl_easy_init.3
+++ b/docs/libcurl/curl_easy_init.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_easy_init 3 "February 03, 2016" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_easy_init 3 "February 03, 2016" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_easy_init - Start a libcurl easy session
diff --git a/docs/libcurl/curl_easy_pause.3 b/docs/libcurl/curl_easy_pause.3
index 5f03161b..6fe00a2b 100644
--- a/docs/libcurl/curl_easy_pause.3
+++ b/docs/libcurl/curl_easy_pause.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_easy_pause 3 "May 01, 2016" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_easy_pause 3 "May 01, 2016" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_easy_pause - pause and unpause a connection
diff --git a/docs/libcurl/curl_easy_perform.3 b/docs/libcurl/curl_easy_perform.3
index 206df816..7cc9355b 100644
--- a/docs/libcurl/curl_easy_perform.3
+++ b/docs/libcurl/curl_easy_perform.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_easy_perform 3 "May 02, 2016" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_easy_perform 3 "September 23, 2018" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_easy_perform - perform a blocking file transfer
@@ -73,4 +73,3 @@ if(curl) {
.BR curl_easy_init "(3), " curl_easy_setopt "(3), "
.BR curl_multi_add_handle "(3), " curl_multi_perform "(3), "
.BR libcurl-errors "(3), "
-
diff --git a/docs/libcurl/curl_easy_recv.3 b/docs/libcurl/curl_easy_recv.3
index 7318d4a0..b5216baf 100644
--- a/docs/libcurl/curl_easy_recv.3
+++ b/docs/libcurl/curl_easy_recv.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH curl_easy_recv 3 "December 18, 2016" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_easy_recv 3 "December 18, 2016" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_easy_recv - receives raw data on an "easy" connection
diff --git a/docs/libcurl/curl_easy_reset.3 b/docs/libcurl/curl_easy_reset.3
index aa9b2acf..832a4b8f 100644
--- a/docs/libcurl/curl_easy_reset.3
+++ b/docs/libcurl/curl_easy_reset.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_easy_reset 3 "February 03, 2016" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_easy_reset 3 "September 23, 2018" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_easy_reset - reset all options of a libcurl session handle
@@ -42,4 +42,3 @@ Nothing
.SH "SEE ALSO"
.BR curl_easy_init "(3)," curl_easy_cleanup "(3)," curl_easy_setopt "(3),"
.BR curl_easy_duphandle "(3)"
-
diff --git a/docs/libcurl/curl_easy_send.3 b/docs/libcurl/curl_easy_send.3
index 057e4362..36be65b7 100644
--- a/docs/libcurl/curl_easy_send.3
+++ b/docs/libcurl/curl_easy_send.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH curl_easy_send 3 "December 18, 2016" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_easy_send 3 "December 18, 2016" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_easy_send - sends raw data over an "easy" connection
diff --git a/docs/libcurl/curl_easy_setopt.3 b/docs/libcurl/curl_easy_setopt.3
index a97fad72..1787646f 100644
--- a/docs/libcurl/curl_easy_setopt.3
+++ b/docs/libcurl/curl_easy_setopt.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH curl_easy_setopt 3 "February 25, 2018" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_easy_setopt 3 "September 07, 2018" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_easy_setopt \- set options for a curl easy handle
@@ -200,6 +200,8 @@ Bind connection locally to port range. See \fICURLOPT_LOCALPORTRANGE(3)\fP
Timeout for DNS cache. See \fICURLOPT_DNS_CACHE_TIMEOUT(3)\fP
.IP CURLOPT_DNS_USE_GLOBAL_CACHE
OBSOLETE Enable global DNS cache. See \fICURLOPT_DNS_USE_GLOBAL_CACHE(3)\fP
+.IP CURLOPT_DOH_URL
+Use this DOH server for name resolves. See \fICURLOPT_DOH_URL(3)\fP
.IP CURLOPT_BUFFERSIZE
Ask for alternate buffer size. See \fICURLOPT_BUFFERSIZE(3)\fP
.IP CURLOPT_PORT
@@ -420,6 +422,8 @@ Size of file to send. \fICURLOPT_INFILESIZE(3)\fP
Size of file to send. \fICURLOPT_INFILESIZE_LARGE(3)\fP
.IP CURLOPT_UPLOAD
Upload data. See \fICURLOPT_UPLOAD(3)\fP
+.IP CURLOPT_UPLOAD_BUFFERSIZE
+Set upload buffer size. See \fICURLOPT_UPLOAD_BUFFERSIZE(3)\fP
.IP CURLOPT_MIMEPOST
Post/send MIME data. See \fICURLOPT_MIMEPOST(3)\fP
.IP CURLOPT_MAXFILESIZE
@@ -477,6 +481,9 @@ Shuffle addresses before use. See \fICURLOPT_DNS_SHUFFLE_ADDRESSES(3)\fP
Timeout for waiting for the server's connect back to be accepted. See \fICURLOPT_ACCEPTTIMEOUT_MS(3)\fP
.IP CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS
Timeout for happy eyeballs. See \fICURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS(3)\fP
+.IP CURLOPT_UPKEEP_INTERVAL_MS
+Sets the interval at which connection upkeep are performed. See
+\fICURLOPT_UPKEEP_INTERVAL_MS(3)\fP
.SH SSL and SECURITY OPTIONS
.IP CURLOPT_SSLCERT
Client cert. See \fICURLOPT_SSLCERT(3)\fP
diff --git a/docs/libcurl/curl_easy_strerror.3 b/docs/libcurl/curl_easy_strerror.3
index 164d42dd..3c1a1ac8 100644
--- a/docs/libcurl/curl_easy_strerror.3
+++ b/docs/libcurl/curl_easy_strerror.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_easy_strerror 3 "February 03, 2016" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_easy_strerror 3 "February 03, 2016" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_easy_strerror - return string describing error code
diff --git a/docs/libcurl/curl_easy_unescape.3 b/docs/libcurl/curl_easy_unescape.3
index 3bd696a8..86fa1552 100644
--- a/docs/libcurl/curl_easy_unescape.3
+++ b/docs/libcurl/curl_easy_unescape.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH curl_easy_unescape 3 "October 04, 2016" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_easy_unescape 3 "October 04, 2016" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_easy_unescape - URL decodes the given string
diff --git a/docs/libcurl/curl_easy_upkeep.3 b/docs/libcurl/curl_easy_upkeep.3
new file mode 100644
index 00000000..f705b61f
--- /dev/null
+++ b/docs/libcurl/curl_easy_upkeep.3
@@ -0,0 +1,77 @@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 1998 - 2018, 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 https://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.
+.\" *
+.\" **************************************************************************
+.\"
+.TH curl_easy_upkeep 3 "31 Oct 2018" "libcurl 7.62.0" "libcurl Manual"
+.SH NAME
+curl_easy_upkeep - Perform any connection upkeep checks.
+.SH SYNOPSIS
+.B #include <curl/curl.h>
+
+.BI "CURLcode curl_easy_upkeep(CURL *" handle ");"
+.SH DESCRIPTION
+
+Some protocols have "connection upkeep" mechanisms. These mechanisms usually
+send some traffic on existing connections in order to keep them alive; this
+can prevent connections from being closed due to overzealous firewalls, for
+example.
+
+Currently the only protocol with a connection upkeep mechanism is HTTP/2: when
+the connection upkeep interval is exceeded and \fIcurl_easy_upkeep(3)\fP
+is called, an HTTP/2 PING frame is sent on the connection.
+
+This function must be explicitly called in order to perform the upkeep work.
+The connection upkeep interval is set with
+\fICURLOPT_UPKEEP_INTERVAL_MS(3)\fP.
+
+.SH AVAILABILITY
+Added in 7.62.0.
+.SH RETURN VALUE
+On success, returns \fBCURLE_OK\fP.
+
+On failure, returns the appropriate error code.
+
+.SH EXAMPLE
+.nf
+CURL *curl = curl_easy_init();
+if(curl) {
+ /* Make a connection to an HTTP/2 server. */
+ curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
+
+ /* Set the interval to 30000ms / 30s */
+ curl_easy_setopt(curl, CURLOPT_UPKEEP_INTERVAL_MS, 30000L);
+
+ curl_easy_perform(curl);
+
+ /* Perform more work here. */
+
+ /* While the connection is being held open, curl_easy_upkeep() can be
+ called. If curl_easy_upkeep() is called and the time since the last
+ upkeep exceeds the interval, then an HTTP/2 PING is sent. */
+ curl_easy_upkeep(curl);
+
+ /* Perform more work here. */
+
+ /* always cleanup */
+ curl_easy_cleanup(curl);
+}
+
+.fi
diff --git a/docs/libcurl/curl_escape.3 b/docs/libcurl/curl_escape.3
index 59002266..9487b155 100644
--- a/docs/libcurl/curl_escape.3
+++ b/docs/libcurl/curl_escape.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_escape 3 "February 03, 2016" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_escape 3 "February 03, 2016" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_escape - URL encodes the given string
diff --git a/docs/libcurl/curl_formadd.3 b/docs/libcurl/curl_formadd.3
index 2fd41369..17e27018 100644
--- a/docs/libcurl/curl_formadd.3
+++ b/docs/libcurl/curl_formadd.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_formadd 3 "October 08, 2017" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_formadd 3 "October 08, 2017" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_formadd - add a section to a multipart/formdata HTTP POST
diff --git a/docs/libcurl/curl_formfree.3 b/docs/libcurl/curl_formfree.3
index 698ba2ef..195678ae 100644
--- a/docs/libcurl/curl_formfree.3
+++ b/docs/libcurl/curl_formfree.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_formfree 3 "August 09, 2018" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_formfree 3 "August 09, 2018" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_formfree - free a previously build multipart/formdata HTTP POST chain
diff --git a/docs/libcurl/curl_formget.3 b/docs/libcurl/curl_formget.3
index 507c64cc..71308791 100644
--- a/docs/libcurl/curl_formget.3
+++ b/docs/libcurl/curl_formget.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_formget 3 "September 02, 2017" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_formget 3 "September 02, 2017" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_formget - serialize a previously built multipart/formdata HTTP POST chain
diff --git a/docs/libcurl/curl_free.3 b/docs/libcurl/curl_free.3
index 97296e94..4fcf6ba7 100644
--- a/docs/libcurl/curl_free.3
+++ b/docs/libcurl/curl_free.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_free 3 "August 09, 2018" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_free 3 "August 09, 2018" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_free - reclaim memory that has been obtained through a libcurl call
diff --git a/docs/libcurl/curl_getdate.3 b/docs/libcurl/curl_getdate.3
index 0541a622..47309e1d 100644
--- a/docs/libcurl/curl_getdate.3
+++ b/docs/libcurl/curl_getdate.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_getdate 3 "January 18, 2018" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_getdate 3 "January 18, 2018" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_getdate - Convert a date string to number of seconds
diff --git a/docs/libcurl/curl_getenv.3 b/docs/libcurl/curl_getenv.3
index 7333fd59..db0cb0e8 100644
--- a/docs/libcurl/curl_getenv.3
+++ b/docs/libcurl/curl_getenv.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_getenv 3 "February 03, 2016" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_getenv 3 "February 03, 2016" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_getenv - return value for environment name
diff --git a/docs/libcurl/curl_global_cleanup.3 b/docs/libcurl/curl_global_cleanup.3
index f60f9a74..7e59db68 100644
--- a/docs/libcurl/curl_global_cleanup.3
+++ b/docs/libcurl/curl_global_cleanup.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_global_cleanup 3 "September 20, 2016" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_global_cleanup 3 "September 20, 2016" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_global_cleanup - global libcurl cleanup
diff --git a/docs/libcurl/curl_global_init.3 b/docs/libcurl/curl_global_init.3
index c842c0b5..c3108768 100644
--- a/docs/libcurl/curl_global_init.3
+++ b/docs/libcurl/curl_global_init.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_global_init 3 "April 17, 2018" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_global_init 3 "April 17, 2018" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_global_init - Global libcurl initialisation
diff --git a/docs/libcurl/curl_global_init_mem.3 b/docs/libcurl/curl_global_init_mem.3
index 336e22f6..d14d791e 100644
--- a/docs/libcurl/curl_global_init_mem.3
+++ b/docs/libcurl/curl_global_init_mem.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_global_init_mem 3 "February 03, 2016" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_global_init_mem 3 "September 23, 2018" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_global_init_mem - Global libcurl initialisation with memory callbacks
@@ -63,4 +63,3 @@ screw things up for libcurl. Take care!
.SH "SEE ALSO"
.BR curl_global_init "(3), "
.BR curl_global_cleanup "(3), "
-
diff --git a/docs/libcurl/curl_global_sslset.3 b/docs/libcurl/curl_global_sslset.3
index 0020f527..961f664e 100644
--- a/docs/libcurl/curl_global_sslset.3
+++ b/docs/libcurl/curl_global_sslset.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_global_sslset 3 "April 15, 2018" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_global_sslset 3 "October 30, 2018" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_global_sslset - Select SSL backend to use with libcurl
@@ -43,7 +43,8 @@ typedef enum {
CURLSSLBACKEND_SCHANNEL = 8,
CURLSSLBACKEND_DARWINSSL = 9,
CURLSSLBACKEND_AXTLS = 10,
- CURLSSLBACKEND_MBEDTLS = 11
+ CURLSSLBACKEND_MBEDTLS = 11,
+ CURLSSLBACKEND_MESALINK = 12
} curl_sslbackend;
.B "CURLsslset curl_global_sslset(curl_sslbackend " id,
diff --git a/docs/libcurl/curl_mime_addpart.3 b/docs/libcurl/curl_mime_addpart.3
index 900e977a..a97484c0 100644
--- a/docs/libcurl/curl_mime_addpart.3
+++ b/docs/libcurl/curl_mime_addpart.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_addpart 3 "September 22, 2017" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_mime_addpart 3 "September 22, 2017" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_mime_addpart - append a new empty part to a mime structure
diff --git a/docs/libcurl/curl_mime_data.3 b/docs/libcurl/curl_mime_data.3
index d36e3f36..2c45a481 100644
--- a/docs/libcurl/curl_mime_data.3
+++ b/docs/libcurl/curl_mime_data.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_data 3 "September 22, 2017" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_mime_data 3 "September 22, 2017" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_mime_data - set a mime part's body data from memory
diff --git a/docs/libcurl/curl_mime_data_cb.3 b/docs/libcurl/curl_mime_data_cb.3
index f93f33f9..6f48d355 100644
--- a/docs/libcurl/curl_mime_data_cb.3
+++ b/docs/libcurl/curl_mime_data_cb.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_data_cb 3 "April 17, 2018" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_mime_data_cb 3 "April 17, 2018" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_mime_data_cb - set a callback-based data source for a mime part's body
diff --git a/docs/libcurl/curl_mime_encoder.3 b/docs/libcurl/curl_mime_encoder.3
index 9a819e3d..f3e93e92 100644
--- a/docs/libcurl/curl_mime_encoder.3
+++ b/docs/libcurl/curl_mime_encoder.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_encoder 3 "September 05, 2017" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_mime_encoder 3 "September 05, 2017" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_mime_encoder - set a mime part's encoder and content transfer encoding
diff --git a/docs/libcurl/curl_mime_filedata.3 b/docs/libcurl/curl_mime_filedata.3
index 778a8e21..970805b7 100644
--- a/docs/libcurl/curl_mime_filedata.3
+++ b/docs/libcurl/curl_mime_filedata.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_filedata 3 "April 17, 2018" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_mime_filedata 3 "April 17, 2018" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_mime_filedata - set a mime part's body data from a file contents
diff --git a/docs/libcurl/curl_mime_filename.3 b/docs/libcurl/curl_mime_filename.3
index 94290c1e..1190abf2 100644
--- a/docs/libcurl/curl_mime_filename.3
+++ b/docs/libcurl/curl_mime_filename.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_filename 3 "September 22, 2017" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_mime_filename 3 "September 22, 2017" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_mime_filename - set a mime part's remote file name
diff --git a/docs/libcurl/curl_mime_free.3 b/docs/libcurl/curl_mime_free.3
index e38895b7..3f3fc066 100644
--- a/docs/libcurl/curl_mime_free.3
+++ b/docs/libcurl/curl_mime_free.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_free 3 "August 09, 2018" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_mime_free 3 "August 09, 2018" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_mime_free - free a previously built mime structure
diff --git a/docs/libcurl/curl_mime_headers.3 b/docs/libcurl/curl_mime_headers.3
index cc6ec2e6..8ea6d947 100644
--- a/docs/libcurl/curl_mime_headers.3
+++ b/docs/libcurl/curl_mime_headers.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_headers 3 "September 22, 2017" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_mime_headers 3 "September 22, 2017" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_mime_headers - set a mime part's custom headers
diff --git a/docs/libcurl/curl_mime_init.3 b/docs/libcurl/curl_mime_init.3
index 176be48e..f7c7da47 100644
--- a/docs/libcurl/curl_mime_init.3
+++ b/docs/libcurl/curl_mime_init.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_init 3 "September 22, 2017" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_mime_init 3 "September 22, 2017" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_mime_init - create a mime handle
diff --git a/docs/libcurl/curl_mime_name.3 b/docs/libcurl/curl_mime_name.3
index afee6c14..f68c79e1 100644
--- a/docs/libcurl/curl_mime_name.3
+++ b/docs/libcurl/curl_mime_name.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_name 3 "September 22, 2017" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_mime_name 3 "September 22, 2017" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_mime_name - set a mime part's name
diff --git a/docs/libcurl/curl_mime_subparts.3 b/docs/libcurl/curl_mime_subparts.3
index 70283ee4..a442a576 100644
--- a/docs/libcurl/curl_mime_subparts.3
+++ b/docs/libcurl/curl_mime_subparts.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_subparts 3 "September 05, 2017" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_mime_subparts 3 "September 05, 2017" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_mime_subparts - set subparts of a multipart mime part
diff --git a/docs/libcurl/curl_mime_type.3 b/docs/libcurl/curl_mime_type.3
index 71c2a329..3f89dd3c 100644
--- a/docs/libcurl/curl_mime_type.3
+++ b/docs/libcurl/curl_mime_type.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_mime_type 3 "April 17, 2018" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_mime_type 3 "April 17, 2018" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_mime_type - set a mime part's content type
diff --git a/docs/libcurl/curl_mprintf.3 b/docs/libcurl/curl_mprintf.3
index 2b939835..386c8528 100644
--- a/docs/libcurl/curl_mprintf.3
+++ b/docs/libcurl/curl_mprintf.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_printf 3 "April 01, 2016" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_printf 3 "April 01, 2016" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_maprintf, curl_mfprintf, curl_mprintf, curl_msnprintf, curl_msprintf
diff --git a/docs/libcurl/curl_multi_add_handle.3 b/docs/libcurl/curl_multi_add_handle.3
index 0a7176a4..e8fdaa57 100644
--- a/docs/libcurl/curl_multi_add_handle.3
+++ b/docs/libcurl/curl_multi_add_handle.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_add_handle 3 "June 30, 2018" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_multi_add_handle 3 "June 30, 2018" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_multi_add_handle - add an easy handle to a multi session
diff --git a/docs/libcurl/curl_multi_assign.3 b/docs/libcurl/curl_multi_assign.3
index a140d04d..888c59a6 100644
--- a/docs/libcurl/curl_multi_assign.3
+++ b/docs/libcurl/curl_multi_assign.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_assign 3 "February 03, 2016" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_multi_assign 3 "February 03, 2016" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_multi_assign \- set data to associate with an internal socket
diff --git a/docs/libcurl/curl_multi_cleanup.3 b/docs/libcurl/curl_multi_cleanup.3
index 49573ad1..7c6c208b 100644
--- a/docs/libcurl/curl_multi_cleanup.3
+++ b/docs/libcurl/curl_multi_cleanup.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_cleanup 3 "August 09, 2018" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_multi_cleanup 3 "August 09, 2018" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_multi_cleanup - close down a multi session
diff --git a/docs/libcurl/curl_multi_fdset.3 b/docs/libcurl/curl_multi_fdset.3
index 72b15ded..1a6dbd75 100644
--- a/docs/libcurl/curl_multi_fdset.3
+++ b/docs/libcurl/curl_multi_fdset.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_fdset 3 "November 09, 2017" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_multi_fdset 3 "November 09, 2017" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_multi_fdset - extracts file descriptor information from a multi handle
diff --git a/docs/libcurl/curl_multi_info_read.3 b/docs/libcurl/curl_multi_info_read.3
index a7404487..98d53009 100644
--- a/docs/libcurl/curl_multi_info_read.3
+++ b/docs/libcurl/curl_multi_info_read.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_info_read 3 "February 03, 2016" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_multi_info_read 3 "February 03, 2016" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_multi_info_read - read multi stack informationals
diff --git a/docs/libcurl/curl_multi_init.3 b/docs/libcurl/curl_multi_init.3
index 521a72ea..234c8971 100644
--- a/docs/libcurl/curl_multi_init.3
+++ b/docs/libcurl/curl_multi_init.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_init 3 "February 03, 2016" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_multi_init 3 "September 23, 2018" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_multi_init - create a multi handle
@@ -38,4 +38,3 @@ If this function returns NULL, something went wrong and you cannot use the
other curl functions.
.SH "SEE ALSO"
.BR curl_multi_cleanup "(3)," curl_global_init "(3)," curl_easy_init "(3)"
-
diff --git a/docs/libcurl/curl_multi_perform.3 b/docs/libcurl/curl_multi_perform.3
index 6046a732..da54e2f5 100644
--- a/docs/libcurl/curl_multi_perform.3
+++ b/docs/libcurl/curl_multi_perform.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_perform 3 "February 03, 2016" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_multi_perform 3 "February 03, 2016" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_multi_perform - reads/writes available data from each easy handle
diff --git a/docs/libcurl/curl_multi_remove_handle.3 b/docs/libcurl/curl_multi_remove_handle.3
index 097d47c0..d6cbf5b2 100644
--- a/docs/libcurl/curl_multi_remove_handle.3
+++ b/docs/libcurl/curl_multi_remove_handle.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_remove_handle 3 "February 03, 2016" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_multi_remove_handle 3 "February 03, 2016" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_multi_remove_handle - remove an easy handle from a multi session
diff --git a/docs/libcurl/curl_multi_setopt.3 b/docs/libcurl/curl_multi_setopt.3
index 185afeca..63bb0592 100644
--- a/docs/libcurl/curl_multi_setopt.3
+++ b/docs/libcurl/curl_multi_setopt.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_setopt 3 "February 03, 2016" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_multi_setopt 3 "February 03, 2016" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_multi_setopt \- set options for a curl multi handle
diff --git a/docs/libcurl/curl_multi_socket.3 b/docs/libcurl/curl_multi_socket.3
index 4f77c13e..a486c976 100644
--- a/docs/libcurl/curl_multi_socket.3
+++ b/docs/libcurl/curl_multi_socket.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_socket 3 "June 30, 2018" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_multi_socket 3 "June 30, 2018" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_multi_socket \- reads/writes available data
diff --git a/docs/libcurl/curl_multi_socket_action.3 b/docs/libcurl/curl_multi_socket_action.3
index ac53c062..3887c8fd 100644
--- a/docs/libcurl/curl_multi_socket_action.3
+++ b/docs/libcurl/curl_multi_socket_action.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_socket_action 3 "June 30, 2018" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_multi_socket_action 3 "June 30, 2018" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_multi_socket_action \- reads/writes available data given an action
diff --git a/docs/libcurl/curl_multi_strerror.3 b/docs/libcurl/curl_multi_strerror.3
index b825f40a..3893f993 100644
--- a/docs/libcurl/curl_multi_strerror.3
+++ b/docs/libcurl/curl_multi_strerror.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_strerror 3 "February 03, 2016" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_multi_strerror 3 "February 03, 2016" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_multi_strerror - return string describing error code
diff --git a/docs/libcurl/curl_multi_timeout.3 b/docs/libcurl/curl_multi_timeout.3
index 9f4f4455..97664a20 100644
--- a/docs/libcurl/curl_multi_timeout.3
+++ b/docs/libcurl/curl_multi_timeout.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_timeout 3 "May 02, 2016" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_multi_timeout 3 "September 23, 2018" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_multi_timeout \- how long to wait for action before proceeding
@@ -77,4 +77,3 @@ This function was added in libcurl 7.15.4.
.SH "SEE ALSO"
.BR curl_multi_fdset "(3), " curl_multi_info_read "(3), "
.BR curl_multi_socket "(3), " curl_multi_setopt "(3) "
-
diff --git a/docs/libcurl/curl_multi_wait.3 b/docs/libcurl/curl_multi_wait.3
index 484bec34..d6451b41 100644
--- a/docs/libcurl/curl_multi_wait.3
+++ b/docs/libcurl/curl_multi_wait.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_multi_wait 3 "March 09, 2016" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_multi_wait 3 "March 09, 2016" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_multi_wait - polls on all easy handles in a multi handle
diff --git a/docs/libcurl/curl_share_cleanup.3 b/docs/libcurl/curl_share_cleanup.3
index ec563981..7217a458 100644
--- a/docs/libcurl/curl_share_cleanup.3
+++ b/docs/libcurl/curl_share_cleanup.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_share_cleanup 3 "August 09, 2018" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_share_cleanup 3 "August 09, 2018" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_share_cleanup - Clean up a shared object
diff --git a/docs/libcurl/curl_share_init.3 b/docs/libcurl/curl_share_init.3
index 90a45c22..9bc3f59e 100644
--- a/docs/libcurl/curl_share_init.3
+++ b/docs/libcurl/curl_share_init.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_share_init 3 "February 03, 2016" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_share_init 3 "September 23, 2018" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_share_init - Create a shared object
@@ -42,4 +42,3 @@ If this function returns NULL, something went wrong (out of memory, etc.)
and therefore the share object was not created.
.SH "SEE ALSO"
.BR curl_share_cleanup "(3), " curl_share_setopt "(3)"
-
diff --git a/docs/libcurl/curl_share_setopt.3 b/docs/libcurl/curl_share_setopt.3
index fe34f2d2..d33d7642 100644
--- a/docs/libcurl/curl_share_setopt.3
+++ b/docs/libcurl/curl_share_setopt.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_share_setopt 3 "May 28, 2018" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_share_setopt 3 "May 28, 2018" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_share_setopt - Set options for a shared object
diff --git a/docs/libcurl/curl_share_strerror.3 b/docs/libcurl/curl_share_strerror.3
index fcc85e3e..5e2fcf68 100644
--- a/docs/libcurl/curl_share_strerror.3
+++ b/docs/libcurl/curl_share_strerror.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_share_strerror 3 "February 03, 2016" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_share_strerror 3 "February 03, 2016" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_share_strerror - return string describing error code
diff --git a/docs/libcurl/curl_slist_append.3 b/docs/libcurl/curl_slist_append.3
index 70973021..cc0c527a 100644
--- a/docs/libcurl/curl_slist_append.3
+++ b/docs/libcurl/curl_slist_append.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_slist_append 3 "May 05, 2017" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_slist_append 3 "May 05, 2017" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_slist_append - add a string to an slist
diff --git a/docs/libcurl/curl_slist_free_all.3 b/docs/libcurl/curl_slist_free_all.3
index d30be299..891da80b 100644
--- a/docs/libcurl/curl_slist_free_all.3
+++ b/docs/libcurl/curl_slist_free_all.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_slist_free_all 3 "August 09, 2018" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_slist_free_all 3 "September 23, 2018" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_slist_free_all - free an entire curl_slist list
@@ -54,4 +54,3 @@ curl_slist_free_all(slist); /* free the list again */
.fi
.SH "SEE ALSO"
.BR curl_slist_append "(3), "
-
diff --git a/docs/libcurl/curl_strequal.3 b/docs/libcurl/curl_strequal.3
index 85b53683..f81c6182 100644
--- a/docs/libcurl/curl_strequal.3
+++ b/docs/libcurl/curl_strequal.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_strequal 3 "June 29, 2017" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_strequal 3 "June 29, 2017" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_strequal, curl_strnequal - case insensitive string comparisons
diff --git a/docs/libcurl/curl_unescape.3 b/docs/libcurl/curl_unescape.3
index 1b0549d5..09dad330 100644
--- a/docs/libcurl/curl_unescape.3
+++ b/docs/libcurl/curl_unescape.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_unescape 3 "February 03, 2016" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_unescape 3 "February 03, 2016" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_unescape - URL decodes the given string
diff --git a/docs/libcurl/curl_url.3 b/docs/libcurl/curl_url.3
new file mode 100644
index 00000000..6320892c
--- /dev/null
+++ b/docs/libcurl/curl_url.3
@@ -0,0 +1,62 @@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 1998 - 2018, 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 https://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.
+.\" *
+.\" **************************************************************************
+.TH curl_url 3 "September 08, 2018" "libcurl 7.62.0" "libcurl Manual"
+
+.SH NAME
+curl_url - returns a new CURLU handle
+.SH SYNOPSIS
+.B #include <curl/curl.h>
+
+CURLU *curl_url();
+.SH EXPERIMENTAL
+The URL API is considered \fBEXPERIMENTAL\fP until further notice. Please test
+it, report bugs and help us perfect it. Once proven to be reliable, the
+experimental label will be removed.
+
+While this API is marked experimental, we reserve the right to modify the API
+slightly if we deem it necessary and it makes it notably better or easier to
+use.
+.SH DESCRIPTION
+This function will allocates and returns a pointer to a fresh CURLU handle, to
+be used for further use of the URL API.
+.SH RETURN VALUE
+Returns a \fBCURLU *\fP if successful, or NULL if out of memory.
+.SH EXAMPLE
+.nf
+ CURLUcode rc;
+ CURLU *url = curl_url();
+ rc = curl_url_set(url, CURLUPART_URL, "https://example.com", 0);
+ if(!rc) {
+ char *scheme;
+ rc = curl_url_get(url, CURLUPART_SCHEME, &scheme, 0);
+ if(!rc) {
+ printf("the scheme is %s\n", scheme);
+ curl_free(scheme);
+ }
+ curl_url_cleanup(url);
+ }
+.fi
+.SH AVAILABILITY
+Added in curl 7.62.0
+.SH "SEE ALSO"
+.BR curl_url_cleanup "(3), " curl_url_get "(3), " curl_url_set "(3), "
+.BR curl_url_dup "(3), "
diff --git a/docs/libcurl/curl_url_cleanup.3 b/docs/libcurl/curl_url_cleanup.3
new file mode 100644
index 00000000..d031896a
--- /dev/null
+++ b/docs/libcurl/curl_url_cleanup.3
@@ -0,0 +1,45 @@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 1998 - 2018, 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 https://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.
+.\" *
+.\" **************************************************************************
+.TH curl_url_cleanup 3 "September 08, 2018" "libcurl 7.62.0" "libcurl Manual"
+
+.SH NAME
+curl_url_cleanup - free a CURLU handle
+.SH SYNOPSIS
+.B #include <curl/curl.h>
+
+void curl_url_cleanup(CURLU *handle);
+.fi
+.SH DESCRIPTION
+Frees all the resources associated with the given CURLU handle!
+.SH RETURN VALUE
+none
+.SH EXAMPLE
+.nf
+ CURLU *url = curl_url();
+ curl_url_set(url, CURLUPART_URL, "https://example.com", 0);
+ curl_url_cleanup(url);
+.fi
+.SH AVAILABILITY
+Added in curl 7.62.0
+.SH "SEE ALSO"
+.BR curl_url_dup "(3), " curl_url "(3), " curl_url_set "(3), "
+.BR curl_url_get "(3), "
diff --git a/docs/libcurl/curl_url_dup.3 b/docs/libcurl/curl_url_dup.3
new file mode 100644
index 00000000..c8dbe10d
--- /dev/null
+++ b/docs/libcurl/curl_url_dup.3
@@ -0,0 +1,53 @@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 1998 - 2018, 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 https://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.
+.\" *
+.\" **************************************************************************
+.TH curl_url_dup 3 "September 08, 2018" "libcurl 7.62.0" "libcurl Manual"
+
+.SH NAME
+curl_url_dup - duplicate a CURLU handle
+.SH SYNOPSIS
+.B #include <curl/curl.h>
+
+CURLU *curl_url_dup(CURLU *inhandle);
+.fi
+.SH DESCRIPTION
+Duplicates a given CURLU \fIinhandle\fP and all its contents and returns a
+pointer to a new CURLU handle. The new handle also needs to be freed with
+\fIcurl_url_cleanup(3)\fP.
+.SH RETURN VALUE
+Returns a new handle or NULL if out of memory.
+.SH EXAMPLE
+.nf
+ CURLUcode rc;
+ CURLU *url = curl_url();
+ CURLU *url2;
+ rc = curl_url_set(url, CURLUPART_URL, "https://example.com", 0);
+ if(!rc) {
+ url2 = curl_url_dup(url); /* clone it! */
+ curl_url_cleanup(url2);
+ }
+ curl_url_cleanup(url);
+.fi
+.SH AVAILABILITY
+Added in curl 7.62.0
+.SH "SEE ALSO"
+.BR curl_url_cleanup "(3), " curl_url "(3), " curl_url_set "(3), "
+.BR curl_url_get "(3), "
diff --git a/docs/libcurl/curl_url_get.3 b/docs/libcurl/curl_url_get.3
new file mode 100644
index 00000000..233e7395
--- /dev/null
+++ b/docs/libcurl/curl_url_get.3
@@ -0,0 +1,111 @@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 1998 - 2018, 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 https://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.
+.\" *
+.\" **************************************************************************
+.TH curl_url_get 3 "October 08, 2018" "libcurl 7.62.0" "libcurl Manual"
+
+.SH NAME
+curl_url_get - extract a part from a URL
+.SH SYNOPSIS
+.B #include <curl/curl.h>
+
+.nf
+CURLUcode curl_url_get(CURLU *url,
+ CURLUPart what,
+ char **part,
+ unsigned int flags)
+.fi
+.SH DESCRIPTION
+Given the \fIurl\fP handle of an already parsed URL, this function lets the
+user extract individual pieces from it.
+
+The \fIwhat\fP argument should be the particular part to extract (see list
+below) and \fIpart\fP points to a 'char *' to get updated to point to a newly
+allocated string with the contents.
+
+The \fIflags\fP argument is a bitmask with individual features.
+
+The returned part pointer must be freed with \fIcurl_free(3)\fP after use.
+.SH FLAGS
+The flags argument is zero, one or more bits set in a bitmask.
+.IP CURLU_DEFAULT_PORT
+If the handle has no port stored, this option will make \fIcurl_url_get(3)\fP
+return the default port for the used scheme.
+.IP CURLU_DEFAULT_SCHEME
+If the handle has no scheme stored, this option will make
+\fIcurl_url_get(3)\fP return the default scheme instead of error.
+.IP CURLU_NO_DEFAULT_PORT
+Instructs \fIcurl_url_get(3)\fP to not return a port number if it matches the
+default port for the scheme.
+.IP CURLU_URLDECODE
+Asks \fIcurl_url_get(3)\fP to URL decode the contents before returning it. It
+will not attempt to decode the scheme, the port number or the full URL.
+
+The query component will also get plus-to-space conversion as a bonus when
+this bit is set.
+
+Note that this URL decoding is charset unaware and you will get a zero
+terminated string back with data that could be intended for a particular
+encoding.
+
+If there's any byte values lower than 32 in the decoded string, the get
+operation will return an error instead.
+.SH PARTS
+.IP CURLUPART_URL
+When asked to return the full URL, \fIcurl_url_get(3)\fP will return a
+normalized and possibly cleaned up version of what was previously parsed.
+.IP CURLUPART_SCHEME
+Scheme cannot be URL decoded on get.
+.IP CURLUPART_USER
+.IP CURLUPART_PASSWORD
+.IP CURLUPART_OPTIONS
+.IP CURLUPART_HOST
+.IP CURLUPART_PORT
+Port cannot be URL decoded on get.
+.IP CURLUPART_PATH
+.IP CURLUPART_QUERY
+The query part will also get pluses converted to space when asked to URL
+decode on get with the CURLU_URLDECODE bit.
+.IP CURLUPART_FRAGMENT
+.SH RETURN VALUE
+Returns a CURLUcode error value, which is CURLUE_OK (0) if everything went
+fine.
+
+If this function returns an error, no URL part is returned.
+.SH EXAMPLE
+.nf
+ CURLUcode rc;
+ CURLU *url = curl_url();
+ rc = curl_url_set(url, CURLUPART_URL, "https://example.com", 0);
+ if(!rc) {
+ char *scheme;
+ rc = curl_url_get(url, CURLUPART_SCHEME, &scheme, 0);
+ if(!rc) {
+ printf("the scheme is %s\\n", scheme);
+ curl_free(scheme);
+ }
+ curl_url_cleanup(url);
+ }
+.fi
+.SH AVAILABILITY
+Added in curl 7.62.0
+.SH "SEE ALSO"
+.BR curl_url_cleanup "(3), " curl_url "(3), " curl_url_set "(3), "
+.BR curl_url_dup "(3), "
diff --git a/docs/libcurl/curl_url_set.3 b/docs/libcurl/curl_url_set.3
new file mode 100644
index 00000000..36addaa4
--- /dev/null
+++ b/docs/libcurl/curl_url_set.3
@@ -0,0 +1,131 @@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 1998 - 2018, 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 https://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.
+.\" *
+.\" **************************************************************************
+.TH curl_url_set 3 "October 08, 2018" "libcurl 7.62.0" "libcurl Manual"
+
+.SH NAME
+curl_url_set - set a URL part
+.SH SYNOPSIS
+.B #include <curl/curl.h>
+
+CURLUcode curl_url_set(CURLU *url,
+ CURLUPart part,
+ const char *content,
+ unsigned int flags)
+.fi
+.SH DESCRIPTION
+Given the \fIurl\fP handle of an already parsed URL, this function lets the
+user set/update individual pieces of it.
+
+The \fIpart\fP argument should identify the particular URL part (see list
+below) to set or change, with \fIcontent\fP pointing to a zero terminated
+string with the new contents for that URL part. The contents should be in the
+form and encoding they'd use in a URL: URL encoded.
+
+Setting a part to a NULL pointer will effectively remove that part's contents
+from the CURLU handle.
+
+The \fIflags\fP argument is a bitmask with independent features.
+.SH PARTS
+.IP CURLUPART_URL
+Allows the full URL of the handle to be replaced. If the handle already is
+populated with a URL, the new URL can be relative to the previous.
+
+When successfully setting a new URL, relative or absolute, the handle contents
+will be replaced with the information of the newly set URL.
+
+Pass a pointer to a zero terminated string to the \fIurl\fP parameter. The
+string must point to a correctly formatted "RFC 3986+" URL or be a NULL
+pointer.
+.IP CURLUPART_SCHEME
+Scheme cannot be URL decoded on set.
+.IP CURLUPART_USER
+.IP CURLUPART_PASSWORD
+.IP CURLUPART_OPTIONS
+.IP CURLUPART_HOST
+The host name can use IDNA. The string must then be encoded as your locale
+says or UTF-8 (when winidn is used).
+.IP CURLUPART_PORT
+Port cannot be URL encoded on set.
+.IP CURLUPART_PATH
+If a path is set in the URL without a leading slash, a slash will be inserted
+automatically when this URL is read from the handle.
+.IP CURLUPART_QUERY
+The query part will also get spaces converted to pluses when asked to URL
+encode on set with the CURLU_URLENCODE bit.
+
+If used in with \fICURLU_APPENDQUERY\fP, the provided part will be appended on
+the end of the existing query - and if the previous part didn't end with an
+ampersand (&), an ampersand will be inserted before the new appended part.
+
+When \fICURLU_APPENDQUERY\fP is used together with \fICURLU_URLENCODE\fP,
+the '=' symbols will not be URL encoded.
+
+The question mark in the URL is not part of the actual query contents.
+.IP CURLUPART_FRAGMENT
+The hash sign in the URL is not part of the actual fragment contents.
+.SH FLAGS
+The flags argument is zero, one or more bits set in a bitmask.
+.IP CURLU_NON_SUPPORT_SCHEME
+If set, allows \fIcurl_url_set(3)\fP to set a non-supported scheme.
+.IP CURLU_URLENCODE
+When set, \fIcurl_url_set(3)\fP URL encodes the part on entry, except for
+scheme, port and URL.
+
+When setting the path component with URL encoding enabled, the slash character
+will be skipped.
+
+The query part gets space-to-plus conversion before the URL conversion.
+
+This URL encoding is charset unaware and will convert the input on a
+byte-by-byte manner.
+.IP CURLU_DEFAULT_SCHEME
+If set, will make libcurl allow the URL to be set without a scheme and then
+sets that to the default scheme: HTTPS. Overrides the \fICURLU_GUESS_SCHEME\fP
+option if both are set.
+.IP CURLU_GUESS_SCHEME
+If set, will make libcurl allow the URL to be set without a scheme and it
+instead "guesses" which scheme that was intended based on the host name. If
+the outermost sub-domain name matches DICT, FTP, IMAP, LDAP, POP3 or SMTP then
+that scheme will be used, otherwise it picks HTTP. Conflicts with the
+\fICURLU_DEFAULT_SCHEME\fP option which takes precedence if both are set.
+.SH RETURN VALUE
+Returns a CURLUcode error value, which is CURLUE_OK (0) if everything went
+fine.
+
+If this function returns an error, no URL part is returned.
+.SH EXAMPLE
+.nf
+ CURLUcode rc;
+ CURLU *url = curl_url();
+ rc = curl_url_set(url, CURLUPART_URL, "https://example.com", 0);
+ if(!rc) {
+ char *scheme;
+ /* change it to an FTP URL */
+ rc = curl_url_set(url, CURLUPART_SCHEME, "ftp", 0);
+ }
+ curl_url_cleanup(url);
+.fi
+.SH AVAILABILITY
+Added in curl 7.62.0
+.SH "SEE ALSO"
+.BR curl_url_cleanup "(3), " curl_url "(3), " curl_url_get "(3), "
+.BR curl_url_dup "(3), "
diff --git a/docs/libcurl/curl_version.3 b/docs/libcurl/curl_version.3
index 09f772e6..946addf9 100644
--- a/docs/libcurl/curl_version.3
+++ b/docs/libcurl/curl_version.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH curl_version 3 "February 03, 2016" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_version 3 "February 03, 2016" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_version - returns the libcurl version string
diff --git a/docs/libcurl/curl_version_info.3 b/docs/libcurl/curl_version_info.3
index 3ce2e7e2..61e4a278 100644
--- a/docs/libcurl/curl_version_info.3
+++ b/docs/libcurl/curl_version_info.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH curl_version_info 3 "March 17, 2018" "libcurl 7.61.1" "libcurl Manual"
+.TH curl_version_info 3 "September 23, 2018" "libcurl 7.62.0" "libcurl Manual"
.SH NAME
curl_version_info - returns run-time libcurl version info
@@ -187,4 +187,3 @@ entry.
A pointer to a curl_version_info_data struct.
.SH "SEE ALSO"
\fIcurl_version(3)\fP
-
diff --git a/docs/libcurl/libcurl-easy.3 b/docs/libcurl/libcurl-easy.3
index 7c43e7fb..d544d46e 100644
--- a/docs/libcurl/libcurl-easy.3
+++ b/docs/libcurl/libcurl-easy.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH libcurl 3 "February 03, 2016" "libcurl 7.61.1" "libcurl easy interface"
+.TH libcurl 3 "February 03, 2016" "libcurl 7.62.0" "libcurl easy interface"
.SH NAME
libcurl-easy \- easy interface overview
diff --git a/docs/libcurl/libcurl-env.3 b/docs/libcurl/libcurl-env.3
index 1cadaf3d..d888d0a6 100644
--- a/docs/libcurl/libcurl-env.3
+++ b/docs/libcurl/libcurl-env.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH libcurl-env 3 "April 17, 2018" "libcurl 7.61.1" "libcurl environment variables"
+.TH libcurl-env 3 "April 17, 2018" "libcurl 7.62.0" "libcurl environment variables"
.SH NAME
libcurl-env \- environment variables libcurl understands
diff --git a/docs/libcurl/libcurl-errors.3 b/docs/libcurl/libcurl-errors.3
index 30c57b3c..c3c37bd3 100644
--- a/docs/libcurl/libcurl-errors.3
+++ b/docs/libcurl/libcurl-errors.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2018, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH libcurl-errors 3 "February 10, 2018" "libcurl 7.61.1" "libcurl errors"
+.TH libcurl-errors 3 "September 19, 2018" "libcurl 7.62.0" "libcurl errors"
.SH NAME
libcurl-errors \- error codes in libcurl
@@ -307,6 +307,41 @@ Not enough memory was available.
.IP "CURLSHE_NOT_BUILT_IN (5)"
The requested sharing could not be done because the library you use don't have
that particular feature enabled. (Added in 7.23.0)
+.SH "CURLUcode"
+.IP "CURLUE_BAD_HANDLE (1)"
+An argument that should be a CURLU pointer was passed in as a NULL.
+.IP "CURLUE_BAD_PARTPOINTER (2)"
+A NULL pointer was passed to the 'part' argument of \fIcurl_url_get(3)\fP.
+.IP "CURLUE_MALFORMED_INPUT (3)"
+A malformed input was passed to a URL API function.
+.IP "CURLUE_BAD_PORT_NUMBER (4)"
+The port number was not a decimal number between 0 and 65535.
+.IP "CURLUE_UNSUPPORTED_SCHEME (5)"
+This libcurl build doesn't support the given URL scheme.
+.IP "CURLUE_URLDECODE (6)"
+URL decode error, most likely because of rubbish in the input.
+.IP "CURLUE_OUT_OF_MEMORY (7)"
+A memory function failed.
+.IP "CURLUE_USER_NOT_ALLOWED (8)"
+Credentials was passed in the URL when prohibited.
+.IP "CURLUE_UNKNOWN_PART (9)"
+An unknown part ID was passed to a URL API function.
+.IP "CURLUE_NO_SCHEME (10)"
+There is no scheme part in the URL.
+.IP "CURLUE_NO_USER (11)"
+There is no user part in the URL.
+.IP "CURLUE_NO_PASSWORD (12)"
+There is no password part in the URL.
+.IP "CURLUE_NO_OPTIONS (13)"
+There is no options part in the URL.
+.IP "CURLUE_NO_HOST (14)"
+There is no host part in the URL.
+.IP "CURLUE_NO_PORT (15)"
+There is no port part in the URL.
+.IP "CURLUE_NO_QUERY (16)"
+There is no query part in the URL.
+.IP "CURLUE_NO_FRAGMENT (17)"
+There is no fragment part in the URL.
.SH "SEE ALSO"
.BR curl_easy_strerror "(3), " curl_multi_strerror "(3), "
.BR curl_share_strerror "(3), " CURLOPT_ERRORBUFFER "(3), "
diff --git a/docs/libcurl/libcurl-multi.3 b/docs/libcurl/libcurl-multi.3
index 7d08b4a6..fa699ded 100644
--- a/docs/libcurl/libcurl-multi.3
+++ b/docs/libcurl/libcurl-multi.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH libcurl-multi 3 "June 30, 2018" "libcurl 7.61.1" "libcurl multi interface"
+.TH libcurl-multi 3 "June 30, 2018" "libcurl 7.62.0" "libcurl multi interface"
.SH NAME
libcurl-multi \- how to use the multi interface
diff --git a/docs/libcurl/libcurl-security.3 b/docs/libcurl/libcurl-security.3
index 33d5c6c6..0e3c7360 100644
--- a/docs/libcurl/libcurl-security.3
+++ b/docs/libcurl/libcurl-security.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH libcurl-security 3 "May 31, 2018" "libcurl 7.61.1" "libcurl security"
+.TH libcurl-security 3 "September 23, 2018" "libcurl 7.62.0" "libcurl security"
.SH NAME
libcurl-security \- security considerations when using libcurl
@@ -340,4 +340,3 @@ sensitive data.
To avoid this problem, you must of course use your common sense. Often, you
can just edit out the sensitive data or just search/replace your true
information with faked data.
-
diff --git a/docs/libcurl/libcurl-share.3 b/docs/libcurl/libcurl-share.3
index def6470b..cafd9549 100644
--- a/docs/libcurl/libcurl-share.3
+++ b/docs/libcurl/libcurl-share.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH libcurl-share 3 "November 27, 2017" "libcurl 7.61.1" "libcurl share interface"
+.TH libcurl-share 3 "November 27, 2017" "libcurl 7.62.0" "libcurl share interface"
.SH NAME
libcurl-share \- how to use the share interface
diff --git a/docs/libcurl/libcurl-symbols.3 b/docs/libcurl/libcurl-symbols.3
index d2d6e525..8d7b2a7e 100644
--- a/docs/libcurl/libcurl-symbols.3
+++ b/docs/libcurl/libcurl-symbols.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH libcurl-symbols 3 "sep 5, 2018" "libcurl 7.41.0" "libcurl symbols"
+.TH libcurl-symbols 3 "okt 31, 2018" "libcurl 7.41.0" "libcurl symbols"
.SH NAME
libcurl-symbols \- libcurl symbol version information
.SH "libcurl symbols"
@@ -259,6 +259,7 @@ Deprecated since 7.17.0
Introduced in 7.16.1
.IP CURLE_SSL_CACERT
Introduced in 7.10
+Deprecated since 7.62.0
.IP CURLE_SSL_CACERT_BADFILE
Introduced in 7.16.0
.IP CURLE_SSL_CERTPROBLEM
@@ -779,6 +780,8 @@ Deprecated since 7.16.1
Introduced in 7.21.7
.IP CURLOPT_CLOSESOCKETFUNCTION
Introduced in 7.21.7
+.IP CURLOPT_UPKEEP_INTERVAL_MS
+Introduced in 7.62.0
.IP CURLOPT_CONNECTTIMEOUT
Introduced in 7.7
.IP CURLOPT_CONNECTTIMEOUT_MS
@@ -836,6 +839,8 @@ Introduced in 7.60.0
.IP CURLOPT_DNS_USE_GLOBAL_CACHE
Introduced in 7.9.3
Deprecated since 7.11.1
+.IP CURLOPT_DOH_URL
+Introduced in 7.62.0
.IP CURLOPT_EGDSOCKET
Introduced in 7.7
.IP CURLOPT_ENCODING
@@ -1322,6 +1327,8 @@ Introduced in 7.40.0
Introduced in 7.10.4
.IP CURLOPT_UPLOAD
Introduced in 7.1
+.IP CURLOPT_UPLOAD_BUFFERSIZE
+Introduced in 7.62.0
.IP CURLOPT_URL
Introduced in 7.1
.IP CURLOPT_USERAGENT
@@ -1502,6 +1509,8 @@ Introduced in 7.34.0
Introduced in 7.49.0
.IP CURLSSLBACKEND_MBEDTLS
Introduced in 7.46.0
+.IP CURLSSLBACKEND_MESALINK
+Introduced in 7.62.0
.IP CURLSSLBACKEND_NONE
Introduced in 7.34.0
.IP CURLSSLBACKEND_NSS
@@ -1528,6 +1537,62 @@ Introduced in 7.56.0
Introduced in 7.56.0
.IP CURLSSLSET_UNKNOWN_BACKEND
Introduced in 7.56.0
+.IP CURLUPART_FRAGMENT
+Introduced in 7.62.0
+.IP CURLUPART_HOST
+Introduced in 7.62.0
+.IP CURLUPART_OPTIONS
+Introduced in 7.62.0
+.IP CURLUPART_PASSWORD
+Introduced in 7.62.0
+.IP CURLUPART_PATH
+Introduced in 7.62.0
+.IP CURLUPART_PORT
+Introduced in 7.62.0
+.IP CURLUPART_QUERY
+Introduced in 7.62.0
+.IP CURLUPART_SCHEME
+Introduced in 7.62.0
+.IP CURLUPART_URL
+Introduced in 7.62.0
+.IP CURLUPART_USER
+Introduced in 7.62.0
+.IP CURLUE_BAD_HANDLE
+Introduced in 7.62.0
+.IP CURLUE_BAD_PARTPOINTER
+Introduced in 7.62.0
+.IP CURLUE_BAD_PORT_NUMBER
+Introduced in 7.62.0
+.IP CURLUE_MALFORMED_INPUT
+Introduced in 7.62.0
+.IP CURLUE_NO_FRAGMENT
+Introduced in 7.62.0
+.IP CURLUE_NO_HOST
+Introduced in 7.62.0
+.IP CURLUE_NO_OPTIONS
+Introduced in 7.62.0
+.IP CURLUE_NO_PASSWORD
+Introduced in 7.62.0
+.IP CURLUE_NO_PORT
+Introduced in 7.62.0
+.IP CURLUE_NO_QUERY
+Introduced in 7.62.0
+.IP CURLUE_NO_SCHEME
+Introduced in 7.62.0
+.IP CURLUE_NO_USER
+Introduced in 7.62.0
+.IP CURLUE_OK
+Introduced in 7.62.0
+.IP CURLUE_OUT_OF_MEMORY
+Introduced in 7.62.0
+.IP CURLUE_UNKNOWN_PART
+Introduced in 7.62.0
+.IP CURLUE_UNSUPPORTED_SCHEME
+Introduced in 7.62.0
+.IP CURLUE_URLDECODE
+Introduced in 7.62.0
+.IP CURLUE_USER_NOT_ALLOWED
+Introduced in 7.62.0
.IP CURLUSESSL_ALL
Introduced in 7.17.0
.IP CURLUSESSL_CONTROL
@@ -1808,6 +1873,8 @@ Introduced in 7.9.7
Introduced in 7.21.4
.IP CURL_TLSAUTH_SRP
Introduced in 7.21.4
+.IP CURL_UPKEEP_INTERVAL_DEFAULT
+Introduced in 7.62.0
.IP CURL_VERSION_ASYNCHDNS
Introduced in 7.10.7
.IP CURL_VERSION_BROTLI
diff --git a/docs/libcurl/libcurl-thread.3 b/docs/libcurl/libcurl-thread.3
index 9f667f9d..191e5c2f 100644
--- a/docs/libcurl/libcurl-thread.3
+++ b/docs/libcurl/libcurl-thread.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH libcurl-thread 3 "August 21, 2018" "libcurl 7.61.1" "libcurl thread safety"
+.TH libcurl-thread 3 "August 21, 2018" "libcurl 7.62.0" "libcurl thread safety"
.SH NAME
libcurl-thread \- libcurl thread safety
diff --git a/docs/libcurl/libcurl-tutorial.3 b/docs/libcurl/libcurl-tutorial.3
index 41a6eb88..d54ca110 100644
--- a/docs/libcurl/libcurl-tutorial.3
+++ b/docs/libcurl/libcurl-tutorial.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH libcurl-tutorial 3 "April 17, 2018" "libcurl 7.61.1" "libcurl programming"
+.TH libcurl-tutorial 3 "September 23, 2018" "libcurl 7.62.0" "libcurl programming"
.SH NAME
libcurl-tutorial \- libcurl programming tutorial
@@ -506,7 +506,7 @@ and then a file with binary contents and uploads the whole thing.
part = curl_mime_addpart(mutipart);
curl_mime_name(part, "logotype-image");
curl_mime_filedata(part, "curl.png");
-
+
/* Set the form info */
curl_easy_setopt(easyhandle, CURLOPT_MIMEPOST, multipart);
diff --git a/docs/libcurl/libcurl-url.3 b/docs/libcurl/libcurl-url.3
new file mode 100644
index 00000000..cbb2b4c7
--- /dev/null
+++ b/docs/libcurl/libcurl-url.3
@@ -0,0 +1,138 @@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 1998 - 2018, 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 https://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.
+.\" *
+.\" **************************************************************************
+.TH libcurl 3 "September 10, 2018" "libcurl 7.62.0" "libcurl url interface"
+
+.SH NAME
+libcurl-url \- URL interface overview
+.SH DESCRIPTION
+The URL interface provides a set of functions for parsing and generating URLs.
+.SH INCLUDE
+You still only include <curl/curl.h> in your code. Note that the URL API was
+introduced in 7.62.0.
+.SH CREATE
+Create a handle that holds URL info and resources with \fIcurl_url(3)\fP:
+
+ CURLU *h = curl_url();
+.SH CLEANUP
+When done with it, clean it up with \fIcurl_url_cleanup(3)\fP:
+
+ curl_url_cleanup(h);
+.SH DUPLICATE
+When you need a copy of a handle, just duplicate it with \fIcurl_url_dup(3)\fP:
+
+ CURLU *nh = curl_url_dup(h);
+.SH PARSING
+By "setting" a URL to the handle with \fIcurl_url_set(3)\fP, the URL is parsed
+and stored in the handle. If the URL is not syntactically correct it will
+return an error instead.
+
+.nf
+ rc = curl_url_set(h, CURLUPART_URL,
+ "https://example.com:449/foo/bar?name=moo", 0);
+.fi
+
+The zero in the fourth argument is a bitmask for changing specific features.
+
+If successful, this stores the URL in its individual parts within the handle.
+.SH REDIRECT
+When a handle already contains info about a URL, setting a relative URL will
+make it "redirect" to adapt to it.
+
+ rc = curl_url_set(h, CURLUPART_URL, "../test?another", 0);
+.SH "GET URL"
+The `CURLU` handle represents a URL and you can easily extract that with
+\fIcurl_url_get(3)\fP:
+
+ char *url;
+ rc = curl_url_get(h, CURLUPART_URL, &url, 0);
+ curl_free(url);
+
+The zero in the fourth argument is a bitmask for changing specific features.
+.SH "GET PARTS"
+When a URL has been parsed or parts have been set, you can extract those
+pieces from the handle at any time.
+
+.nf
+ rc = curl_url_get(h, CURLUPART_HOST, &host, 0);
+ rc = curl_url_get(h, CURLUPART_SCHEME, &scheme, 0);
+ rc = curl_url_get(h, CURLUPART_USER, &user, 0);
+ rc = curl_url_get(h, CURLUPART_PASSWORD, &password, 0);
+ rc = curl_url_get(h, CURLUPART_PORT, &port, 0);
+ rc = curl_url_get(h, CURLUPART_PATH, &path, 0);
+ rc = curl_url_get(h, CURLUPART_QUERY, &query, 0);
+ rc = curl_url_get(h, CURLUPART_FRAGMENT, &fragment, 0);
+.fi
+
+Extracted parts are not URL decoded unless the user also asks for it with the
+CURLU_URLDECODE flag set in the fourth bitmask argument.
+
+Remember to free the returned string with \fIcurl_free(3)\fP when you're done
+with it!
+.SH "SET PARTS"
+A user set individual URL parts, either after having parsed a full URL or
+instead of parsing such.
+
+.nf
+ rc = curl_url_set(urlp, CURLUPART_HOST, "www.example.com", 0);
+ rc = curl_url_set(urlp, CURLUPART_SCHEME, "https", 0);
+ rc = curl_url_set(urlp, CURLUPART_USER, "john", 0);
+ rc = curl_url_set(urlp, CURLUPART_PASSWORD, "doe", 0);
+ rc = curl_url_set(urlp, CURLUPART_PORT, "443", 0);
+ rc = curl_url_set(urlp, CURLUPART_PATH, "/index.html", 0);
+ rc = curl_url_set(urlp, CURLUPART_QUERY, "name=john", 0);
+ rc = curl_url_set(urlp, CURLUPART_FRAGMENT, "anchor", 0);
+.fi
+
+Set parts are not URL encoded unless the user asks for it with the
+`CURLU_URLENCODE` flag.
+.SH "APPENDQUERY"
+An application can append a string to the right end of the query part with the
+`CURLU_APPENDQUERY` flag to \fIcurl_url_set(3)\fP.
+
+Imagine a handle that holds the URL `https://example.com/?shoes=2`. An
+application can then add the string `hat=1` to the query part like this:
+
+.nf
+ rc = curl_url_set(urlp, CURLUPART_QUERY, "hat=1", CURLU_APPENDQUERY);
+.fi
+
+It will even notice the lack of an ampersand (`&`) separator so it will inject
+one too, and the handle's full URL will then equal
+`https://example.com/?shoes=2&hat=1`.
+
+The appended string can of course also get URL encoded on add, and if asked to
+URL encode, the encoding process will skip the '=' character. For example,
+append `candy=N&N` to what we already have, and URL encode it to deal with the
+ampersand in the data:
+
+.nf
+ rc = curl_url_set(urlp, CURLUPART_QUERY, "candy=N&N",
+ CURLU_APPENDQUERY | CURLU_URLENCODE);
+.fi
+
+Now the URL looks like
+.nf
+ https://example.com/?shoes=2&hat=1&candy=N%26N`
+.fi
+.SH "SEE ALSO"
+.BR curl_url "(3), " curl_url_cleanup "(3), " curl_url_get "(3), "
+.BR curl_url_dup "(3), " curl_url_set "(3), " CURLOPT_URL "(3), "
diff --git a/docs/libcurl/libcurl.3 b/docs/libcurl/libcurl.3
index d44675b4..b3369124 100644
--- a/docs/libcurl/libcurl.3
+++ b/docs/libcurl/libcurl.3
@@ -19,7 +19,7 @@
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
-.TH libcurl 3 "July 15, 2017" "libcurl 7.61.1" "libcurl overview"
+.TH libcurl 3 "July 15, 2017" "libcurl 7.62.0" "libcurl overview"
.SH NAME
libcurl \- client-side URL transfers
diff --git a/docs/libcurl/opts/CURLINFO_ACTIVESOCKET.3 b/docs/libcurl/opts/CURLINFO_ACTIVESOCKET.3
index 614cf14d..776b1242 100644
--- a/docs/libcurl/opts/CURLINFO_ACTIVESOCKET.3
+++ b/docs/libcurl/opts/CURLINFO_ACTIVESOCKET.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_ACTIVESOCKET 3 "May 06, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_ACTIVESOCKET 3 "May 06, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_ACTIVESOCKET \- get the active socket
diff --git a/docs/libcurl/opts/CURLINFO_APPCONNECT_TIME.3 b/docs/libcurl/opts/CURLINFO_APPCONNECT_TIME.3
index e8341f91..0344c752 100644
--- a/docs/libcurl/opts/CURLINFO_APPCONNECT_TIME.3
+++ b/docs/libcurl/opts/CURLINFO_APPCONNECT_TIME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_APPCONNECT_TIME 3 "May 17, 2018" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_APPCONNECT_TIME 3 "May 17, 2018" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_APPCONNECT_TIME \- get the time until the SSL/SSH handshake is completed
diff --git a/docs/libcurl/opts/CURLINFO_APPCONNECT_TIME_T.3 b/docs/libcurl/opts/CURLINFO_APPCONNECT_TIME_T.3
index 4844cc12..bd169219 100644
--- a/docs/libcurl/opts/CURLINFO_APPCONNECT_TIME_T.3
+++ b/docs/libcurl/opts/CURLINFO_APPCONNECT_TIME_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_APPCONNECT_TIME_T 3 "May 17, 2018" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_APPCONNECT_TIME_T 3 "May 17, 2018" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_APPCONNECT_TIME_T \- get the time until the SSL/SSH handshake is completed
diff --git a/docs/libcurl/opts/CURLINFO_CERTINFO.3 b/docs/libcurl/opts/CURLINFO_CERTINFO.3
index 98fb3507..9295420b 100644
--- a/docs/libcurl/opts/CURLINFO_CERTINFO.3
+++ b/docs/libcurl/opts/CURLINFO_CERTINFO.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_CERTINFO 3 "May 06, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_CERTINFO 3 "May 06, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_CERTINFO \- get the TLS certificate chain
diff --git a/docs/libcurl/opts/CURLINFO_CONDITION_UNMET.3 b/docs/libcurl/opts/CURLINFO_CONDITION_UNMET.3
index 1e195d99..1c97fc67 100644
--- a/docs/libcurl/opts/CURLINFO_CONDITION_UNMET.3
+++ b/docs/libcurl/opts/CURLINFO_CONDITION_UNMET.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_CONDITION_UNMET 3 "February 23, 2018" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_CONDITION_UNMET 3 "February 23, 2018" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_CONDITION_UNMET \- get info on unmet time conditional
diff --git a/docs/libcurl/opts/CURLINFO_CONNECT_TIME.3 b/docs/libcurl/opts/CURLINFO_CONNECT_TIME.3
index 226b47e4..3c645460 100644
--- a/docs/libcurl/opts/CURLINFO_CONNECT_TIME.3
+++ b/docs/libcurl/opts/CURLINFO_CONNECT_TIME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_CONNECT_TIME 3 "May 17, 2018" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_CONNECT_TIME 3 "May 17, 2018" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_CONNECT_TIME \- get the time until connect
diff --git a/docs/libcurl/opts/CURLINFO_CONNECT_TIME_T.3 b/docs/libcurl/opts/CURLINFO_CONNECT_TIME_T.3
index f7d732f1..7cac104f 100644
--- a/docs/libcurl/opts/CURLINFO_CONNECT_TIME_T.3
+++ b/docs/libcurl/opts/CURLINFO_CONNECT_TIME_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_CONNECT_TIME_T 3 "May 17, 2018" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_CONNECT_TIME_T 3 "May 17, 2018" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_CONNECT_TIME_T \- get the time until connect
diff --git a/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD.3 b/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD.3
index 828e1154..494b6da1 100644
--- a/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD.3
+++ b/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_CONTENT_LENGTH_DOWNLOAD 3 "June 15, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_CONTENT_LENGTH_DOWNLOAD 3 "June 15, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_CONTENT_LENGTH_DOWNLOAD \- get content-length of download
diff --git a/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.3 b/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.3
index 3851b174..c2381753 100644
--- a/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.3
+++ b/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_CONTENT_LENGTH_DOWNLOAD_T 3 "March 31, 2018" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_CONTENT_LENGTH_DOWNLOAD_T 3 "March 31, 2018" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_CONTENT_LENGTH_DOWNLOAD_T \- get content-length of download
diff --git a/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD.3 b/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD.3
index 97f24e65..c45cc6b4 100644
--- a/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD.3
+++ b/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_CONTENT_LENGTH_UPLOAD 3 "June 15, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_CONTENT_LENGTH_UPLOAD 3 "June 15, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_CONTENT_LENGTH_UPLOAD \- get the specified size of the upload
diff --git a/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD_T.3 b/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD_T.3
index 2fc8dd84..1598254c 100644
--- a/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD_T.3
+++ b/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_CONTENT_LENGTH_UPLOAD_T 3 "March 31, 2018" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_CONTENT_LENGTH_UPLOAD_T 3 "March 31, 2018" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_CONTENT_LENGTH_UPLOAD_T \- get the specified size of the upload
diff --git a/docs/libcurl/opts/CURLINFO_CONTENT_TYPE.3 b/docs/libcurl/opts/CURLINFO_CONTENT_TYPE.3
index ee35127b..3ecf5bfd 100644
--- a/docs/libcurl/opts/CURLINFO_CONTENT_TYPE.3
+++ b/docs/libcurl/opts/CURLINFO_CONTENT_TYPE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_CONTENT_TYPE 3 "May 06, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_CONTENT_TYPE 3 "May 06, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_CONTENT_TYPE \- get Content-Type
diff --git a/docs/libcurl/opts/CURLINFO_COOKIELIST.3 b/docs/libcurl/opts/CURLINFO_COOKIELIST.3
index b09bc434..403c0514 100644
--- a/docs/libcurl/opts/CURLINFO_COOKIELIST.3
+++ b/docs/libcurl/opts/CURLINFO_COOKIELIST.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_COOKIELIST 3 "March 20, 2018" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_COOKIELIST 3 "March 20, 2018" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_COOKIELIST \- get all known cookies
diff --git a/docs/libcurl/opts/CURLINFO_EFFECTIVE_URL.3 b/docs/libcurl/opts/CURLINFO_EFFECTIVE_URL.3
index f4dbb647..8661ca21 100644
--- a/docs/libcurl/opts/CURLINFO_EFFECTIVE_URL.3
+++ b/docs/libcurl/opts/CURLINFO_EFFECTIVE_URL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_EFFECTIVE_URL 3 "May 04, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_EFFECTIVE_URL 3 "May 04, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_EFFECTIVE_URL \- get the last used URL
diff --git a/docs/libcurl/opts/CURLINFO_FILETIME.3 b/docs/libcurl/opts/CURLINFO_FILETIME.3
index 8e145286..97f6c6ef 100644
--- a/docs/libcurl/opts/CURLINFO_FILETIME.3
+++ b/docs/libcurl/opts/CURLINFO_FILETIME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_FILETIME 3 "January 25, 2018" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_FILETIME 3 "January 25, 2018" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_FILETIME \- get the remote time of the retrieved document
diff --git a/docs/libcurl/opts/CURLINFO_FILETIME_T.3 b/docs/libcurl/opts/CURLINFO_FILETIME_T.3
index cfefd1b5..7f17319b 100644
--- a/docs/libcurl/opts/CURLINFO_FILETIME_T.3
+++ b/docs/libcurl/opts/CURLINFO_FILETIME_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_FILETIME 3 "January 25, 2018" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_FILETIME 3 "January 25, 2018" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_FILETIME_T \- get the remote time of the retrieved document
diff --git a/docs/libcurl/opts/CURLINFO_FTP_ENTRY_PATH.3 b/docs/libcurl/opts/CURLINFO_FTP_ENTRY_PATH.3
index 15fec8db..e61fa4e8 100644
--- a/docs/libcurl/opts/CURLINFO_FTP_ENTRY_PATH.3
+++ b/docs/libcurl/opts/CURLINFO_FTP_ENTRY_PATH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_FTP_ENTRY_PATH 3 "May 06, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_FTP_ENTRY_PATH 3 "May 06, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_FTP_ENTRY_PATH \- get entry path in FTP server
diff --git a/docs/libcurl/opts/CURLINFO_HEADER_SIZE.3 b/docs/libcurl/opts/CURLINFO_HEADER_SIZE.3
index 65f51d1c..7d8f3204 100644
--- a/docs/libcurl/opts/CURLINFO_HEADER_SIZE.3
+++ b/docs/libcurl/opts/CURLINFO_HEADER_SIZE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_HEADER_SIZE 3 "May 06, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_HEADER_SIZE 3 "May 06, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_HEADER_SIZE \- get size of retrieved headers
diff --git a/docs/libcurl/opts/CURLINFO_HTTPAUTH_AVAIL.3 b/docs/libcurl/opts/CURLINFO_HTTPAUTH_AVAIL.3
index 34dd68a0..98bd6aa3 100644
--- a/docs/libcurl/opts/CURLINFO_HTTPAUTH_AVAIL.3
+++ b/docs/libcurl/opts/CURLINFO_HTTPAUTH_AVAIL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_HTTPAUTH_AVAIL 3 "October 07, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_HTTPAUTH_AVAIL 3 "October 07, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_HTTPAUTH_AVAIL \- get available HTTP authentication methods
diff --git a/docs/libcurl/opts/CURLINFO_HTTP_CONNECTCODE.3 b/docs/libcurl/opts/CURLINFO_HTTP_CONNECTCODE.3
index dd6058c5..074e94c8 100644
--- a/docs/libcurl/opts/CURLINFO_HTTP_CONNECTCODE.3
+++ b/docs/libcurl/opts/CURLINFO_HTTP_CONNECTCODE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_HTTP_CONNECTCODE 3 "May 06, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_HTTP_CONNECTCODE 3 "May 06, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_HTTP_CONNECTCODE \- get the CONNECT response code
diff --git a/docs/libcurl/opts/CURLINFO_HTTP_VERSION.3 b/docs/libcurl/opts/CURLINFO_HTTP_VERSION.3
index 5eed3d7e..623fc667 100644
--- a/docs/libcurl/opts/CURLINFO_HTTP_VERSION.3
+++ b/docs/libcurl/opts/CURLINFO_HTTP_VERSION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_HTTP_VERSION 3 "May 11, 2016" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_HTTP_VERSION 3 "May 11, 2016" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_HTTP_VERSION \- get the http version used in the connection
diff --git a/docs/libcurl/opts/CURLINFO_LASTSOCKET.3 b/docs/libcurl/opts/CURLINFO_LASTSOCKET.3
index ac2e8998..ebfa7a85 100644
--- a/docs/libcurl/opts/CURLINFO_LASTSOCKET.3
+++ b/docs/libcurl/opts/CURLINFO_LASTSOCKET.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_LASTSOCKET 3 "May 06, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_LASTSOCKET 3 "May 06, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_LASTSOCKET \- get the last socket used
diff --git a/docs/libcurl/opts/CURLINFO_LOCAL_IP.3 b/docs/libcurl/opts/CURLINFO_LOCAL_IP.3
index ccae5b8e..fcd12da9 100644
--- a/docs/libcurl/opts/CURLINFO_LOCAL_IP.3
+++ b/docs/libcurl/opts/CURLINFO_LOCAL_IP.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_LOCAL_IP 3 "May 05, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_LOCAL_IP 3 "May 05, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_LOCAL_IP \- get local IP address of last connection
diff --git a/docs/libcurl/opts/CURLINFO_LOCAL_PORT.3 b/docs/libcurl/opts/CURLINFO_LOCAL_PORT.3
index 10dc7ca6..c7460608 100644
--- a/docs/libcurl/opts/CURLINFO_LOCAL_PORT.3
+++ b/docs/libcurl/opts/CURLINFO_LOCAL_PORT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_LOCAL_PORT 3 "March 16, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_LOCAL_PORT 3 "March 16, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_LOCAL_PORT \- get the latest local port number
diff --git a/docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME.3 b/docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME.3
index 385fc355..160cf660 100644
--- a/docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME.3
+++ b/docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_NAMELOOKUP_TIME 3 "May 17, 2018" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_NAMELOOKUP_TIME 3 "May 17, 2018" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_NAMELOOKUP_TIME \- get the name lookup time
diff --git a/docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME_T.3 b/docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME_T.3
index 256cc128..15589c25 100644
--- a/docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME_T.3
+++ b/docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_NAMELOOKUP_TIME_T 3 "May 17, 2018" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_NAMELOOKUP_TIME_T 3 "May 17, 2018" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_NAMELOOKUP_TIME_T \- get the name lookup time in microseconds
diff --git a/docs/libcurl/opts/CURLINFO_NUM_CONNECTS.3 b/docs/libcurl/opts/CURLINFO_NUM_CONNECTS.3
index 1fef1064..f2678616 100644
--- a/docs/libcurl/opts/CURLINFO_NUM_CONNECTS.3
+++ b/docs/libcurl/opts/CURLINFO_NUM_CONNECTS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_NUM_CONNECTS 3 "May 06, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_NUM_CONNECTS 3 "May 06, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_NUM_CONNECTS \- get number of created connections
diff --git a/docs/libcurl/opts/CURLINFO_OS_ERRNO.3 b/docs/libcurl/opts/CURLINFO_OS_ERRNO.3
index d075ba74..47770a81 100644
--- a/docs/libcurl/opts/CURLINFO_OS_ERRNO.3
+++ b/docs/libcurl/opts/CURLINFO_OS_ERRNO.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_OS_ERRNO 3 "May 15, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_OS_ERRNO 3 "May 15, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_OS_ERRNO \- get errno number from last connect failure
diff --git a/docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME.3 b/docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME.3
index 32ccd5c3..e937d33a 100644
--- a/docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME.3
+++ b/docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_PRETRANSFER_TIME 3 "May 17, 2018" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_PRETRANSFER_TIME 3 "May 17, 2018" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_PRETRANSFER_TIME \- get the time until the file transfer start
diff --git a/docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME_T.3 b/docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME_T.3
index 7e625384..3af50517 100644
--- a/docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME_T.3
+++ b/docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_PRETRANSFER_TIME_T 3 "May 17, 2018" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_PRETRANSFER_TIME_T 3 "May 17, 2018" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_PRETRANSFER_TIME_T \- get the time until the file transfer start
diff --git a/docs/libcurl/opts/CURLINFO_PRIMARY_IP.3 b/docs/libcurl/opts/CURLINFO_PRIMARY_IP.3
index 4d711a0a..9f271921 100644
--- a/docs/libcurl/opts/CURLINFO_PRIMARY_IP.3
+++ b/docs/libcurl/opts/CURLINFO_PRIMARY_IP.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_PRIMARY_IP 3 "March 22, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_PRIMARY_IP 3 "March 22, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_PRIMARY_IP \- get IP address of last connection
diff --git a/docs/libcurl/opts/CURLINFO_PRIMARY_PORT.3 b/docs/libcurl/opts/CURLINFO_PRIMARY_PORT.3
index 7ed32fad..9d289630 100644
--- a/docs/libcurl/opts/CURLINFO_PRIMARY_PORT.3
+++ b/docs/libcurl/opts/CURLINFO_PRIMARY_PORT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_PRIMARY_PORT 3 "May 06, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_PRIMARY_PORT 3 "May 06, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_PRIMARY_PORT \- get the latest destination port number
diff --git a/docs/libcurl/opts/CURLINFO_PRIVATE.3 b/docs/libcurl/opts/CURLINFO_PRIVATE.3
index 8eca96f4..5308ccf3 100644
--- a/docs/libcurl/opts/CURLINFO_PRIVATE.3
+++ b/docs/libcurl/opts/CURLINFO_PRIVATE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_PRIVATE 3 "May 05, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_PRIVATE 3 "May 05, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_PRIVATE \- get the private pointer
diff --git a/docs/libcurl/opts/CURLINFO_PROTOCOL.3 b/docs/libcurl/opts/CURLINFO_PROTOCOL.3
index 623c9e67..ec5bfd40 100644
--- a/docs/libcurl/opts/CURLINFO_PROTOCOL.3
+++ b/docs/libcurl/opts/CURLINFO_PROTOCOL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_PROTOCOL 3 "April 27, 2018" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_PROTOCOL 3 "April 27, 2018" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_PROTOCOL \- get the protocol used in the connection
diff --git a/docs/libcurl/opts/CURLINFO_PROXYAUTH_AVAIL.3 b/docs/libcurl/opts/CURLINFO_PROXYAUTH_AVAIL.3
index 5785cda7..9eafd336 100644
--- a/docs/libcurl/opts/CURLINFO_PROXYAUTH_AVAIL.3
+++ b/docs/libcurl/opts/CURLINFO_PROXYAUTH_AVAIL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_PROXYAUTH_AVAIL 3 "October 07, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_PROXYAUTH_AVAIL 3 "October 07, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_PROXYAUTH_AVAIL \- get available HTTP proxy authentication methods
diff --git a/docs/libcurl/opts/CURLINFO_PROXY_SSL_VERIFYRESULT.3 b/docs/libcurl/opts/CURLINFO_PROXY_SSL_VERIFYRESULT.3
index 2d225bd5..8f287b4f 100644
--- a/docs/libcurl/opts/CURLINFO_PROXY_SSL_VERIFYRESULT.3
+++ b/docs/libcurl/opts/CURLINFO_PROXY_SSL_VERIFYRESULT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_PROXY_SSL_VERIFYRESULT 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_PROXY_SSL_VERIFYRESULT 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_PROXY_SSL_VERIFYRESULT \- get the result of the proxy certificate verification
diff --git a/docs/libcurl/opts/CURLINFO_REDIRECT_COUNT.3 b/docs/libcurl/opts/CURLINFO_REDIRECT_COUNT.3
index 3b5ffd6e..507e1a2a 100644
--- a/docs/libcurl/opts/CURLINFO_REDIRECT_COUNT.3
+++ b/docs/libcurl/opts/CURLINFO_REDIRECT_COUNT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_REDIRECT_COUNT 3 "May 05, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_REDIRECT_COUNT 3 "May 05, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_REDIRECT_COUNT \- get the number of redirects
diff --git a/docs/libcurl/opts/CURLINFO_REDIRECT_TIME.3 b/docs/libcurl/opts/CURLINFO_REDIRECT_TIME.3
index b0816478..6197b254 100644
--- a/docs/libcurl/opts/CURLINFO_REDIRECT_TIME.3
+++ b/docs/libcurl/opts/CURLINFO_REDIRECT_TIME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_REDIRECT_TIME 3 "May 17, 2018" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_REDIRECT_TIME 3 "May 17, 2018" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_REDIRECT_TIME \- get the time for all redirection steps
diff --git a/docs/libcurl/opts/CURLINFO_REDIRECT_TIME_T.3 b/docs/libcurl/opts/CURLINFO_REDIRECT_TIME_T.3
index 2388df20..44c483a9 100644
--- a/docs/libcurl/opts/CURLINFO_REDIRECT_TIME_T.3
+++ b/docs/libcurl/opts/CURLINFO_REDIRECT_TIME_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_REDIRECT_TIME_T 3 "May 17, 2018" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_REDIRECT_TIME_T 3 "May 17, 2018" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_REDIRECT_TIME_T \- get the time for all redirection steps
diff --git a/docs/libcurl/opts/CURLINFO_REDIRECT_URL.3 b/docs/libcurl/opts/CURLINFO_REDIRECT_URL.3
index 8754ff32..619dc63b 100644
--- a/docs/libcurl/opts/CURLINFO_REDIRECT_URL.3
+++ b/docs/libcurl/opts/CURLINFO_REDIRECT_URL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_REDIRECT_URL 3 "June 24, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_REDIRECT_URL 3 "June 24, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_REDIRECT_URL \- get the URL a redirect would go to
diff --git a/docs/libcurl/opts/CURLINFO_REQUEST_SIZE.3 b/docs/libcurl/opts/CURLINFO_REQUEST_SIZE.3
index c431a811..ac15b56c 100644
--- a/docs/libcurl/opts/CURLINFO_REQUEST_SIZE.3
+++ b/docs/libcurl/opts/CURLINFO_REQUEST_SIZE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_REQUEST_SIZE 3 "May 06, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_REQUEST_SIZE 3 "May 06, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_REQUEST_SIZE \- get size of sent request
diff --git a/docs/libcurl/opts/CURLINFO_RESPONSE_CODE.3 b/docs/libcurl/opts/CURLINFO_RESPONSE_CODE.3
index ce63b7d0..0c630a98 100644
--- a/docs/libcurl/opts/CURLINFO_RESPONSE_CODE.3
+++ b/docs/libcurl/opts/CURLINFO_RESPONSE_CODE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_RESPONSE_CODE 3 "February 03, 2016" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_RESPONSE_CODE 3 "February 03, 2016" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_RESPONSE_CODE \- get the last response code
diff --git a/docs/libcurl/opts/CURLINFO_RTSP_CLIENT_CSEQ.3 b/docs/libcurl/opts/CURLINFO_RTSP_CLIENT_CSEQ.3
index 25641757..f95ba82d 100644
--- a/docs/libcurl/opts/CURLINFO_RTSP_CLIENT_CSEQ.3
+++ b/docs/libcurl/opts/CURLINFO_RTSP_CLIENT_CSEQ.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_RTSP_CLIENT_CSEQ 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_RTSP_CLIENT_CSEQ 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_RTSP_CLIENT_CSEQ \- get the next RTSP client CSeq
diff --git a/docs/libcurl/opts/CURLINFO_RTSP_CSEQ_RECV.3 b/docs/libcurl/opts/CURLINFO_RTSP_CSEQ_RECV.3
index 1bfdcc5c..3bb38df4 100644
--- a/docs/libcurl/opts/CURLINFO_RTSP_CSEQ_RECV.3
+++ b/docs/libcurl/opts/CURLINFO_RTSP_CSEQ_RECV.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_RTSP_CSEQ_RECV 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_RTSP_CSEQ_RECV 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_RTSP_CSEQ_RECV \- get the recently received CSeq
diff --git a/docs/libcurl/opts/CURLINFO_RTSP_SERVER_CSEQ.3 b/docs/libcurl/opts/CURLINFO_RTSP_SERVER_CSEQ.3
index 7b062385..6155454f 100644
--- a/docs/libcurl/opts/CURLINFO_RTSP_SERVER_CSEQ.3
+++ b/docs/libcurl/opts/CURLINFO_RTSP_SERVER_CSEQ.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_RTSP_SERVER_CSEQ 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_RTSP_SERVER_CSEQ 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_RTSP_SERVER_CSEQ \- get the next RTSP server CSeq
diff --git a/docs/libcurl/opts/CURLINFO_RTSP_SESSION_ID.3 b/docs/libcurl/opts/CURLINFO_RTSP_SESSION_ID.3
index 72050370..df2c0f7a 100644
--- a/docs/libcurl/opts/CURLINFO_RTSP_SESSION_ID.3
+++ b/docs/libcurl/opts/CURLINFO_RTSP_SESSION_ID.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_RTSP_SESSION_ID 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_RTSP_SESSION_ID 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_RTSP_SESSION_ID \- get RTSP session ID
diff --git a/docs/libcurl/opts/CURLINFO_SCHEME.3 b/docs/libcurl/opts/CURLINFO_SCHEME.3
index edb042be..af65e1ee 100644
--- a/docs/libcurl/opts/CURLINFO_SCHEME.3
+++ b/docs/libcurl/opts/CURLINFO_SCHEME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SCHEME 3 "April 08, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_SCHEME 3 "April 08, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SCHEME \- get the URL scheme (sometimes called protocol) used in the connection
diff --git a/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD.3 b/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD.3
index 9ed3a2b3..5a9a1620 100644
--- a/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD.3
+++ b/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SIZE_DOWNLOAD 3 "June 15, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_SIZE_DOWNLOAD 3 "June 15, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SIZE_DOWNLOAD \- get the number of downloaded bytes
diff --git a/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD_T.3 b/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD_T.3
index 704e0c86..b3b818cc 100644
--- a/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD_T.3
+++ b/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SIZE_DOWNLOAD_T 3 "March 31, 2018" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_SIZE_DOWNLOAD_T 3 "March 31, 2018" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SIZE_DOWNLOAD_T \- get the number of downloaded bytes
diff --git a/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD.3 b/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD.3
index 70f67c1d..3e768a87 100644
--- a/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD.3
+++ b/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SIZE_UPLOAD 3 "June 15, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_SIZE_UPLOAD 3 "June 15, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SIZE_UPLOAD \- get the number of uploaded bytes
diff --git a/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD_T.3 b/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD_T.3
index dd05e9e9..da96530d 100644
--- a/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD_T.3
+++ b/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SIZE_UPLOAD_T 3 "March 31, 2018" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_SIZE_UPLOAD_T 3 "March 31, 2018" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SIZE_UPLOAD_T \- get the number of uploaded bytes
diff --git a/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD.3 b/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD.3
index c9d710dd..e5a8f1e2 100644
--- a/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD.3
+++ b/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SPEED_DOWNLOAD 3 "June 15, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_SPEED_DOWNLOAD 3 "June 15, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SPEED_DOWNLOAD \- get download speed
diff --git a/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD_T.3 b/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD_T.3
index 609f4e12..574674d0 100644
--- a/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD_T.3
+++ b/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SPEED_DOWNLOAD_T 3 "March 31, 2018" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_SPEED_DOWNLOAD_T 3 "March 31, 2018" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SPEED_DOWNLOAD_T \- get download speed
diff --git a/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD.3 b/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD.3
index 4e4ae4c3..9588d916 100644
--- a/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD.3
+++ b/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SPEED_UPLOAD 3 "June 15, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_SPEED_UPLOAD 3 "June 15, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SPEED_UPLOAD \- get upload speed
diff --git a/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD_T.3 b/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD_T.3
index ed5e9b05..9efe81e4 100644
--- a/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD_T.3
+++ b/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SPEED_UPLOAD_T 3 "March 31, 2018" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_SPEED_UPLOAD_T 3 "March 31, 2018" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SPEED_UPLOAD_T \- get upload speed
diff --git a/docs/libcurl/opts/CURLINFO_SSL_ENGINES.3 b/docs/libcurl/opts/CURLINFO_SSL_ENGINES.3
index bacce923..ea0ce546 100644
--- a/docs/libcurl/opts/CURLINFO_SSL_ENGINES.3
+++ b/docs/libcurl/opts/CURLINFO_SSL_ENGINES.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SSL_ENGINES 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_SSL_ENGINES 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SSL_ENGINES \- get an slist of OpenSSL crypto-engines
diff --git a/docs/libcurl/opts/CURLINFO_SSL_VERIFYRESULT.3 b/docs/libcurl/opts/CURLINFO_SSL_VERIFYRESULT.3
index bdfd449b..af7b9e62 100644
--- a/docs/libcurl/opts/CURLINFO_SSL_VERIFYRESULT.3
+++ b/docs/libcurl/opts/CURLINFO_SSL_VERIFYRESULT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_SSL_VERIFYRESULT 3 "March 21, 2018" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_SSL_VERIFYRESULT 3 "March 21, 2018" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_SSL_VERIFYRESULT \- get the result of the certificate verification
diff --git a/docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME.3 b/docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME.3
index 872005fa..b84c0855 100644
--- a/docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME.3
+++ b/docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_STARTTRANSFER_TIME 3 "May 17, 2018" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_STARTTRANSFER_TIME 3 "May 17, 2018" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_STARTTRANSFER_TIME \- get the time until the first byte is received
diff --git a/docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME_T.3 b/docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME_T.3
index c8648330..dc7a9319 100644
--- a/docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME_T.3
+++ b/docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_STARTTRANSFER_TIME_T 3 "May 17, 2018" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_STARTTRANSFER_TIME_T 3 "May 17, 2018" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_STARTTRANSFER_TIME_T \- get the time until the first byte is received
diff --git a/docs/libcurl/opts/CURLINFO_TLS_SESSION.3 b/docs/libcurl/opts/CURLINFO_TLS_SESSION.3
index c4dedc3d..4cc9a238 100644
--- a/docs/libcurl/opts/CURLINFO_TLS_SESSION.3
+++ b/docs/libcurl/opts/CURLINFO_TLS_SESSION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_TLS_SESSION 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_TLS_SESSION 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_TLS_SESSION \- get TLS session info
diff --git a/docs/libcurl/opts/CURLINFO_TLS_SSL_PTR.3 b/docs/libcurl/opts/CURLINFO_TLS_SSL_PTR.3
index 2fdf52e0..b8993a38 100644
--- a/docs/libcurl/opts/CURLINFO_TLS_SSL_PTR.3
+++ b/docs/libcurl/opts/CURLINFO_TLS_SSL_PTR.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_TLS_SSL_PTR 3 "June 28, 2018" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_TLS_SSL_PTR 3 "October 30, 2018" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_TLS_SESSION, CURLINFO_TLS_SSL_PTR \- get TLS session info
@@ -57,9 +57,9 @@ The \fIbackend\fP struct member is one of the defines in the CURLSSLBACKEND_*
series: CURLSSLBACKEND_NONE (when built without TLS support),
CURLSSLBACKEND_AXTLS, CURLSSLBACKEND_CYASSL, CURLSSLBACKEND_DARWINSSL,
CURLSSLBACKEND_GNUTLS, CURLSSLBACKEND_GSKIT, CURLSSLBACKEND_MBEDTLS,
-CURLSSLBACKEND_NSS, CURLSSLBACKEND_OPENSSL, CURLSSLBACKEND_POLARSSL or
-CURLSSLBACKEND_SCHANNEL. (Note that the OpenSSL forks are all reported as just
-OpenSSL here.)
+CURLSSLBACKEND_NSS, CURLSSLBACKEND_OPENSSL, CURLSSLBACKEND_POLARSSL,
+CURLSSLBACKEND_SCHANNEL or CURLSSLBACKEND_MESALINK. (Note that the OpenSSL
+forks are all reported as just OpenSSL here.)
The \fIinternals\fP struct member will point to a TLS library specific pointer
for the active ("in use") SSL connection, with the following underlying types:
@@ -90,6 +90,8 @@ CtxtHandle *
SSLContext *
.IP "WolfSSL (formerly CyaSSL)"
SSL *
+.IP "MesaLink"
+SSL *
.RE
If the \fIinternals\fP pointer is NULL then either the SSL backend is not
diff --git a/docs/libcurl/opts/CURLINFO_TOTAL_TIME.3 b/docs/libcurl/opts/CURLINFO_TOTAL_TIME.3
index 75192bad..2dfd2aeb 100644
--- a/docs/libcurl/opts/CURLINFO_TOTAL_TIME.3
+++ b/docs/libcurl/opts/CURLINFO_TOTAL_TIME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_TOTAL_TIME 3 "May 17, 2018" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_TOTAL_TIME 3 "May 17, 2018" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_TOTAL_TIME \- get total time of previous transfer
diff --git a/docs/libcurl/opts/CURLINFO_TOTAL_TIME_T.3 b/docs/libcurl/opts/CURLINFO_TOTAL_TIME_T.3
index 1e357fa8..fa7ce047 100644
--- a/docs/libcurl/opts/CURLINFO_TOTAL_TIME_T.3
+++ b/docs/libcurl/opts/CURLINFO_TOTAL_TIME_T.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLINFO_TOTAL_TIME_T 3 "May 17, 2018" "libcurl 7.61.1" "curl_easy_getinfo options"
+.TH CURLINFO_TOTAL_TIME_T 3 "May 17, 2018" "libcurl 7.62.0" "curl_easy_getinfo options"
.SH NAME
CURLINFO_TOTAL_TIME_T \- get total time of previous transfer in microseconds
diff --git a/docs/libcurl/opts/CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.3 b/docs/libcurl/opts/CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.3
index 77354837..0f00d41a 100644
--- a/docs/libcurl/opts/CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.3
+++ b/docs/libcurl/opts/CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE 3 "May 27, 2017" "libcurl 7.61.1" "curl_multi_setopt options"
+.TH CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE 3 "May 27, 2017" "libcurl 7.62.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE \- chunk length threshold for pipelining
diff --git a/docs/libcurl/opts/CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.3 b/docs/libcurl/opts/CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.3
index 8f761f50..1ba57490 100644
--- a/docs/libcurl/opts/CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.3
+++ b/docs/libcurl/opts/CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE 3 "May 27, 2017" "libcurl 7.61.1" "curl_multi_setopt options"
+.TH CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE 3 "May 27, 2017" "libcurl 7.62.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE \- size threshold for pipelining penalty
diff --git a/docs/libcurl/opts/CURLMOPT_MAXCONNECTS.3 b/docs/libcurl/opts/CURLMOPT_MAXCONNECTS.3
index c159d7ab..6b737ece 100644
--- a/docs/libcurl/opts/CURLMOPT_MAXCONNECTS.3
+++ b/docs/libcurl/opts/CURLMOPT_MAXCONNECTS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_MAXCONNECTS 3 "May 27, 2017" "libcurl 7.61.1" "curl_multi_setopt options"
+.TH CURLMOPT_MAXCONNECTS 3 "September 23, 2018" "libcurl 7.62.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_MAXCONNECTS \- set size of connection cache
@@ -64,4 +64,3 @@ Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
.SH "SEE ALSO"
.BR CURLMOPT_MAX_HOST_CONNECTIONS "(3), "
.BR CURLOPT_MAXCONNECTS "(3), "
-
diff --git a/docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.3 b/docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.3
index 09d631f9..b6e32316 100644
--- a/docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.3
+++ b/docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_MAX_HOST_CONNECTIONS 3 "May 27, 2017" "libcurl 7.61.1" "curl_multi_setopt options"
+.TH CURLMOPT_MAX_HOST_CONNECTIONS 3 "May 27, 2017" "libcurl 7.62.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_MAX_HOST_CONNECTIONS \- set max number of connections to a single host
diff --git a/docs/libcurl/opts/CURLMOPT_MAX_PIPELINE_LENGTH.3 b/docs/libcurl/opts/CURLMOPT_MAX_PIPELINE_LENGTH.3
index e160fc77..94e5d2e5 100644
--- a/docs/libcurl/opts/CURLMOPT_MAX_PIPELINE_LENGTH.3
+++ b/docs/libcurl/opts/CURLMOPT_MAX_PIPELINE_LENGTH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_MAX_PIPELINE_LENGTH 3 "May 27, 2017" "libcurl 7.61.1" "curl_multi_setopt options"
+.TH CURLMOPT_MAX_PIPELINE_LENGTH 3 "May 27, 2017" "libcurl 7.62.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_MAX_PIPELINE_LENGTH \- maximum number of requests in a pipeline
diff --git a/docs/libcurl/opts/CURLMOPT_MAX_TOTAL_CONNECTIONS.3 b/docs/libcurl/opts/CURLMOPT_MAX_TOTAL_CONNECTIONS.3
index aa1b72d1..302fa8af 100644
--- a/docs/libcurl/opts/CURLMOPT_MAX_TOTAL_CONNECTIONS.3
+++ b/docs/libcurl/opts/CURLMOPT_MAX_TOTAL_CONNECTIONS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_MAX_TOTAL_CONNECTIONS 3 "May 27, 2017" "libcurl 7.61.1" "curl_multi_setopt options"
+.TH CURLMOPT_MAX_TOTAL_CONNECTIONS 3 "May 27, 2017" "libcurl 7.62.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_MAX_TOTAL_CONNECTIONS \- max simultaneously open connections
diff --git a/docs/libcurl/opts/CURLMOPT_PIPELINING.3 b/docs/libcurl/opts/CURLMOPT_PIPELINING.3
index 30aaf224..619b331d 100644
--- a/docs/libcurl/opts/CURLMOPT_PIPELINING.3
+++ b/docs/libcurl/opts/CURLMOPT_PIPELINING.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2018, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_PIPELINING 3 "May 27, 2017" "libcurl 7.61.1" "curl_multi_setopt options"
+.TH CURLMOPT_PIPELINING 3 "September 05, 2018" "libcurl 7.62.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_PIPELINING \- enable HTTP pipelining and multiplexing
@@ -58,11 +58,15 @@ Default, which means doing no attempts at pipelining or multiplexing.
.IP CURLPIPE_HTTP1 (1)
If this bit is set, libcurl will try to pipeline HTTP/1.1 requests on
connections that are already established and in use to hosts.
+
+This bit is deprecated and has no effect since version 7.62.0.
.IP CURLPIPE_MULTIPLEX (2)
If this bit is set, libcurl will try to multiplex the new transfer over an
existing connection if possible. This requires HTTP/2.
.SH DEFAULT
-0 (both pipeline and multiplexing are off)
+Since 7.62.0, \fBCURLPIPE_MULTIPLEX\bP is enabled by default.
+
+Before that, default was \fBCURLPIPE_NOTHING\fP.
.SH PROTOCOLS
HTTP(S)
.SH EXAMPLE
diff --git a/docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.3 b/docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.3
index 3f40ca70..bc030482 100644
--- a/docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.3
+++ b/docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_PIPELINING_SERVER_BL 3 "February 03, 2016" "libcurl 7.61.1" "curl_multi_setopt options"
+.TH CURLMOPT_PIPELINING_SERVER_BL 3 "September 23, 2018" "libcurl 7.62.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_PIPELINING_SERVER_BL \- pipelining server blacklist
@@ -35,7 +35,7 @@ from pipelining, i.e server types that are known to not support HTTP
pipelining. The array is copied by libcurl.
Note that the comparison matches if the Server: header begins with the string
-in the blacklist, i.e "Server: Ninja 1.2.3" and "Server: Ninja 1.4.0" can
+in the blacklist, i.e "Server: Ninja 1.2.3" and "Server: Ninja 1.4.0" can
both be blacklisted by having "Ninja" in the backlist.
Pass a NULL pointer to clear the blacklist.
diff --git a/docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.3 b/docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.3
index fe5c1b6b..53666621 100644
--- a/docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.3
+++ b/docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_PIPELINING_SITE_BL 3 "February 03, 2016" "libcurl 7.61.1" "curl_multi_setopt options"
+.TH CURLMOPT_PIPELINING_SITE_BL 3 "February 03, 2016" "libcurl 7.62.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_PIPELINING_SITE_BL \- pipelining host blacklist
diff --git a/docs/libcurl/opts/CURLMOPT_PUSHDATA.3 b/docs/libcurl/opts/CURLMOPT_PUSHDATA.3
index ef850016..4e4cf517 100644
--- a/docs/libcurl/opts/CURLMOPT_PUSHDATA.3
+++ b/docs/libcurl/opts/CURLMOPT_PUSHDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_PUSHDATA 3 "May 27, 2017" "libcurl 7.61.1" "curl_multi_setopt options"
+.TH CURLMOPT_PUSHDATA 3 "May 27, 2017" "libcurl 7.62.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_PUSHDATA \- pointer to pass to push callback
diff --git a/docs/libcurl/opts/CURLMOPT_PUSHFUNCTION.3 b/docs/libcurl/opts/CURLMOPT_PUSHFUNCTION.3
index f132976f..8324c92c 100644
--- a/docs/libcurl/opts/CURLMOPT_PUSHFUNCTION.3
+++ b/docs/libcurl/opts/CURLMOPT_PUSHFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_PUSHFUNCTION 3 "February 03, 2016" "libcurl 7.61.1" "curl_multi_setopt options"
+.TH CURLMOPT_PUSHFUNCTION 3 "February 03, 2016" "libcurl 7.62.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_PUSHFUNCTION \- callback that approves or denies server pushes
diff --git a/docs/libcurl/opts/CURLMOPT_SOCKETDATA.3 b/docs/libcurl/opts/CURLMOPT_SOCKETDATA.3
index 8278d126..74adda22 100644
--- a/docs/libcurl/opts/CURLMOPT_SOCKETDATA.3
+++ b/docs/libcurl/opts/CURLMOPT_SOCKETDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_SOCKETDATA 3 "May 31, 2017" "libcurl 7.61.1" "curl_multi_setopt options"
+.TH CURLMOPT_SOCKETDATA 3 "May 31, 2017" "libcurl 7.62.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_SOCKETDATA \- custom pointer passed to the socket callback
diff --git a/docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.3 b/docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.3
index dd2fe2d5..f519eb48 100644
--- a/docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.3
+++ b/docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_SOCKETFUNCTION 3 "May 31, 2017" "libcurl 7.61.1" "curl_multi_setopt options"
+.TH CURLMOPT_SOCKETFUNCTION 3 "September 23, 2018" "libcurl 7.62.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_SOCKETFUNCTION \- callback informed about what to wait for
@@ -99,4 +99,3 @@ Returns CURLM_OK.
.SH "SEE ALSO"
.BR CURLMOPT_SOCKETDATA "(3), " curl_multi_socket_action "(3), "
.BR CURLMOPT_TIMERFUNCTION "(3) "
-
diff --git a/docs/libcurl/opts/CURLMOPT_TIMERDATA.3 b/docs/libcurl/opts/CURLMOPT_TIMERDATA.3
index 98141bca..b5556764 100644
--- a/docs/libcurl/opts/CURLMOPT_TIMERDATA.3
+++ b/docs/libcurl/opts/CURLMOPT_TIMERDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_TIMERDATA 3 "May 27, 2017" "libcurl 7.61.1" "curl_multi_setopt options"
+.TH CURLMOPT_TIMERDATA 3 "May 27, 2017" "libcurl 7.62.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_TIMERDATA \- custom pointer to pass to timer callback
diff --git a/docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.3 b/docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.3
index cdbf9731..e86e0737 100644
--- a/docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.3
+++ b/docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLMOPT_TIMERFUNCTION 3 "May 27, 2017" "libcurl 7.61.1" "curl_multi_setopt options"
+.TH CURLMOPT_TIMERFUNCTION 3 "May 27, 2017" "libcurl 7.62.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_TIMERFUNCTION \- set callback to receive timeout values
diff --git a/docs/libcurl/opts/CURLOPT_ABSTRACT_UNIX_SOCKET.3 b/docs/libcurl/opts/CURLOPT_ABSTRACT_UNIX_SOCKET.3
index fd5e6703..1ffffaf5 100644
--- a/docs/libcurl/opts/CURLOPT_ABSTRACT_UNIX_SOCKET.3
+++ b/docs/libcurl/opts/CURLOPT_ABSTRACT_UNIX_SOCKET.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_ABSTRACT_UNIX_SOCKET 3 "January 09, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_ABSTRACT_UNIX_SOCKET 3 "January 09, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_ABSTRACT_UNIX_SOCKET \- set an abstract Unix domain socket
diff --git a/docs/libcurl/opts/CURLOPT_ACCEPTTIMEOUT_MS.3 b/docs/libcurl/opts/CURLOPT_ACCEPTTIMEOUT_MS.3
index 5b05d21b..3a758e0a 100644
--- a/docs/libcurl/opts/CURLOPT_ACCEPTTIMEOUT_MS.3
+++ b/docs/libcurl/opts/CURLOPT_ACCEPTTIMEOUT_MS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_ACCEPTTIMEOUT_MS 3 "March 06, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_ACCEPTTIMEOUT_MS 3 "March 06, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_ACCEPTTIMEOUT_MS \- timeout waiting for FTP server to connect back
diff --git a/docs/libcurl/opts/CURLOPT_ACCEPT_ENCODING.3 b/docs/libcurl/opts/CURLOPT_ACCEPT_ENCODING.3
index 9b7044f5..e16b334f 100644
--- a/docs/libcurl/opts/CURLOPT_ACCEPT_ENCODING.3
+++ b/docs/libcurl/opts/CURLOPT_ACCEPT_ENCODING.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_ACCEPT_ENCODING 3 "August 27, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_ACCEPT_ENCODING 3 "August 27, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_ACCEPT_ENCODING \- enables automatic decompression of HTTP downloads
diff --git a/docs/libcurl/opts/CURLOPT_ADDRESS_SCOPE.3 b/docs/libcurl/opts/CURLOPT_ADDRESS_SCOPE.3
index 1e29302a..a30f3e7a 100644
--- a/docs/libcurl/opts/CURLOPT_ADDRESS_SCOPE.3
+++ b/docs/libcurl/opts/CURLOPT_ADDRESS_SCOPE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_ADDRESS_SCOPE 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_ADDRESS_SCOPE 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_ADDRESS_SCOPE \- set scope for local IPv6 addresses
diff --git a/docs/libcurl/opts/CURLOPT_APPEND.3 b/docs/libcurl/opts/CURLOPT_APPEND.3
index 7168fd72..e8a47af1 100644
--- a/docs/libcurl/opts/CURLOPT_APPEND.3
+++ b/docs/libcurl/opts/CURLOPT_APPEND.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_APPEND 3 "March 06, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_APPEND 3 "March 06, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_APPEND \- enable appending to the remote file
diff --git a/docs/libcurl/opts/CURLOPT_AUTOREFERER.3 b/docs/libcurl/opts/CURLOPT_AUTOREFERER.3
index 8a95a3bf..e6c90b5d 100644
--- a/docs/libcurl/opts/CURLOPT_AUTOREFERER.3
+++ b/docs/libcurl/opts/CURLOPT_AUTOREFERER.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_AUTOREFERER 3 "May 05, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_AUTOREFERER 3 "May 05, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_AUTOREFERER \- automatically update the referer header
diff --git a/docs/libcurl/opts/CURLOPT_BUFFERSIZE.3 b/docs/libcurl/opts/CURLOPT_BUFFERSIZE.3
index d1902963..db49da11 100644
--- a/docs/libcurl/opts/CURLOPT_BUFFERSIZE.3
+++ b/docs/libcurl/opts/CURLOPT_BUFFERSIZE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_BUFFERSIZE 3 "May 13, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_BUFFERSIZE 3 "May 13, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_BUFFERSIZE \- set preferred receive buffer size
diff --git a/docs/libcurl/opts/CURLOPT_CAINFO.3 b/docs/libcurl/opts/CURLOPT_CAINFO.3
index 987eba8a..974aec35 100644
--- a/docs/libcurl/opts/CURLOPT_CAINFO.3
+++ b/docs/libcurl/opts/CURLOPT_CAINFO.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CAINFO 3 "March 10, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_CAINFO 3 "March 10, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CAINFO \- path to Certificate Authority (CA) bundle
diff --git a/docs/libcurl/opts/CURLOPT_CAPATH.3 b/docs/libcurl/opts/CURLOPT_CAPATH.3
index 6f1faa14..8ea70b1c 100644
--- a/docs/libcurl/opts/CURLOPT_CAPATH.3
+++ b/docs/libcurl/opts/CURLOPT_CAPATH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CAPATH 3 "September 10, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_CAPATH 3 "September 10, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CAPATH \- specify directory holding CA certificates
diff --git a/docs/libcurl/opts/CURLOPT_CERTINFO.3 b/docs/libcurl/opts/CURLOPT_CERTINFO.3
index c9c0bc83..e800bf5d 100644
--- a/docs/libcurl/opts/CURLOPT_CERTINFO.3
+++ b/docs/libcurl/opts/CURLOPT_CERTINFO.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CERTINFO 3 "May 27, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_CERTINFO 3 "May 27, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CERTINFO \- request SSL certificate information
diff --git a/docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.3 b/docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.3
index 8318a8b3..fa4cc026 100644
--- a/docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CHUNK_BGN_FUNCTION 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_CHUNK_BGN_FUNCTION 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CHUNK_BGN_FUNCTION \- callback before a transfer with FTP wildcardmatch
diff --git a/docs/libcurl/opts/CURLOPT_CHUNK_DATA.3 b/docs/libcurl/opts/CURLOPT_CHUNK_DATA.3
index 5ea1fc5c..d006d3a7 100644
--- a/docs/libcurl/opts/CURLOPT_CHUNK_DATA.3
+++ b/docs/libcurl/opts/CURLOPT_CHUNK_DATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CHUNK_DATA 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_CHUNK_DATA 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CHUNK_DATA \- custom pointer to the FTP chunk callbacks
diff --git a/docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.3 b/docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.3
index 34f52d33..31bd7645 100644
--- a/docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CHUNK_END_FUNCTION 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_CHUNK_END_FUNCTION 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CHUNK_END_FUNCTION \- callback after a transfer with FTP wildcardmatch
diff --git a/docs/libcurl/opts/CURLOPT_CLOSESOCKETDATA.3 b/docs/libcurl/opts/CURLOPT_CLOSESOCKETDATA.3
index bc32ea88..5e43cf68 100644
--- a/docs/libcurl/opts/CURLOPT_CLOSESOCKETDATA.3
+++ b/docs/libcurl/opts/CURLOPT_CLOSESOCKETDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CLOSESOCKETDATA 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_CLOSESOCKETDATA 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CLOSESOCKETDATA \- pointer passed to the socket close callback
diff --git a/docs/libcurl/opts/CURLOPT_CLOSESOCKETFUNCTION.3 b/docs/libcurl/opts/CURLOPT_CLOSESOCKETFUNCTION.3
index df0637ff..facb4313 100644
--- a/docs/libcurl/opts/CURLOPT_CLOSESOCKETFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_CLOSESOCKETFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CLOSESOCKETFUNCTION 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_CLOSESOCKETFUNCTION 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CLOSESOCKETFUNCTION \- callback to socket close replacement function
diff --git a/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.3 b/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.3
index 980bbeb1..d93b247a 100644
--- a/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.3
+++ b/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CONNECTTIMEOUT 3 "October 03, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_CONNECTTIMEOUT 3 "October 03, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CONNECTTIMEOUT \- timeout for the connect phase
diff --git a/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.3 b/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.3
index b746679f..8764662a 100644
--- a/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.3
+++ b/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CONNECTTIMEOUT_MS 3 "September 24, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_CONNECTTIMEOUT_MS 3 "September 23, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CONNECTTIMEOUT_MS \- timeout for the connect phase
@@ -61,5 +61,5 @@ Always
.SH RETURN VALUE
Returns CURLE_OK
.SH "SEE ALSO"
-.BR CURLOPT_CONNECTTIMEOUT "(3), "
+.BR CURLOPT_CONNECTTIMEOUT "(3), "
.BR CURLOPT_TIMEOUT "(3), " CURLOPT_LOW_SPEED_LIMIT "(3), "
diff --git a/docs/libcurl/opts/CURLOPT_CONNECT_ONLY.3 b/docs/libcurl/opts/CURLOPT_CONNECT_ONLY.3
index a730762e..aefe1c3c 100644
--- a/docs/libcurl/opts/CURLOPT_CONNECT_ONLY.3
+++ b/docs/libcurl/opts/CURLOPT_CONNECT_ONLY.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CONNECT_ONLY 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_CONNECT_ONLY 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CONNECT_ONLY \- stop when connected to target server
diff --git a/docs/libcurl/opts/CURLOPT_CONNECT_TO.3 b/docs/libcurl/opts/CURLOPT_CONNECT_TO.3
index ab29ae85..a9de7d59 100644
--- a/docs/libcurl/opts/CURLOPT_CONNECT_TO.3
+++ b/docs/libcurl/opts/CURLOPT_CONNECT_TO.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CONNECT_TO 3 "May 05, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_CONNECT_TO 3 "May 05, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CONNECT_TO \- Connect to a specific host and port instead of the URL's host and port
diff --git a/docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.3 b/docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.3
index 1537e61b..5165c60f 100644
--- a/docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CONV_FROM_NETWORK_FUNCTION 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_CONV_FROM_NETWORK_FUNCTION 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CONV_FROM_NETWORK_FUNCTION \- convert data from network to host encoding
diff --git a/docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.3 b/docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.3
index 9fad2461..bd3505b7 100644
--- a/docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CONV_FROM_UTF8_FUNCTION 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_CONV_FROM_UTF8_FUNCTION 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CONV_FROM_UTF8_FUNCTION \- convert data from UTF8 to host encoding
diff --git a/docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.3 b/docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.3
index 207d9cc0..0fd638fb 100644
--- a/docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CONV_TO_NETWORK_FUNCTION 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_CONV_TO_NETWORK_FUNCTION 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CONV_TO_NETWORK_FUNCTION \- convert data to network from host encoding
diff --git a/docs/libcurl/opts/CURLOPT_COOKIE.3 b/docs/libcurl/opts/CURLOPT_COOKIE.3
index 9baee4d2..fc3392c3 100644
--- a/docs/libcurl/opts/CURLOPT_COOKIE.3
+++ b/docs/libcurl/opts/CURLOPT_COOKIE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_COOKIE 3 "December 21, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_COOKIE 3 "December 21, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_COOKIE \- set contents of HTTP Cookie header
diff --git a/docs/libcurl/opts/CURLOPT_COOKIEFILE.3 b/docs/libcurl/opts/CURLOPT_COOKIEFILE.3
index 85a7e1ef..1d1d7f05 100644
--- a/docs/libcurl/opts/CURLOPT_COOKIEFILE.3
+++ b/docs/libcurl/opts/CURLOPT_COOKIEFILE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_COOKIEFILE 3 "March 13, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_COOKIEFILE 3 "March 13, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_COOKIEFILE \- file name to read cookies from
diff --git a/docs/libcurl/opts/CURLOPT_COOKIEJAR.3 b/docs/libcurl/opts/CURLOPT_COOKIEJAR.3
index ca885d9a..691ca524 100644
--- a/docs/libcurl/opts/CURLOPT_COOKIEJAR.3
+++ b/docs/libcurl/opts/CURLOPT_COOKIEJAR.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_COOKIEJAR 3 "May 05, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_COOKIEJAR 3 "May 05, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_COOKIEJAR \- file name to store cookies to
diff --git a/docs/libcurl/opts/CURLOPT_COOKIELIST.3 b/docs/libcurl/opts/CURLOPT_COOKIELIST.3
index ea2ae6f4..18494f9f 100644
--- a/docs/libcurl/opts/CURLOPT_COOKIELIST.3
+++ b/docs/libcurl/opts/CURLOPT_COOKIELIST.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_COOKIELIST 3 "April 26, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_COOKIELIST 3 "April 26, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_COOKIELIST \- add to or manipulate cookies held in memory
diff --git a/docs/libcurl/opts/CURLOPT_COOKIESESSION.3 b/docs/libcurl/opts/CURLOPT_COOKIESESSION.3
index d41bcb6b..5e087b61 100644
--- a/docs/libcurl/opts/CURLOPT_COOKIESESSION.3
+++ b/docs/libcurl/opts/CURLOPT_COOKIESESSION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_COOKIESESSION 3 "May 05, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_COOKIESESSION 3 "May 05, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_COOKIESESSION \- start a new cookie session
diff --git a/docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.3 b/docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.3
index 51e038b1..0dbf53fd 100644
--- a/docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.3
+++ b/docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_COPYPOSTFIELDS 3 "February 03, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_COPYPOSTFIELDS 3 "February 03, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_COPYPOSTFIELDS \- have libcurl copy data to POST
diff --git a/docs/libcurl/opts/CURLOPT_CRLF.3 b/docs/libcurl/opts/CURLOPT_CRLF.3
index 7f7f3550..68ac0a5f 100644
--- a/docs/libcurl/opts/CURLOPT_CRLF.3
+++ b/docs/libcurl/opts/CURLOPT_CRLF.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CRLF 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_CRLF 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CRLF \- enable/disable CRLF conversion
diff --git a/docs/libcurl/opts/CURLOPT_CRLFILE.3 b/docs/libcurl/opts/CURLOPT_CRLFILE.3
index 080caa7c..a74a1a59 100644
--- a/docs/libcurl/opts/CURLOPT_CRLFILE.3
+++ b/docs/libcurl/opts/CURLOPT_CRLFILE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CRLFILE 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_CRLFILE 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CRLFILE \- specify a Certificate Revocation List file
diff --git a/docs/libcurl/opts/CURLOPT_CUSTOMREQUEST.3 b/docs/libcurl/opts/CURLOPT_CUSTOMREQUEST.3
index d13deccf..48cfa9f7 100644
--- a/docs/libcurl/opts/CURLOPT_CUSTOMREQUEST.3
+++ b/docs/libcurl/opts/CURLOPT_CUSTOMREQUEST.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_CUSTOMREQUEST 3 "April 17, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_CUSTOMREQUEST 3 "April 17, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_CUSTOMREQUEST \- custom string for request
diff --git a/docs/libcurl/opts/CURLOPT_DEBUGDATA.3 b/docs/libcurl/opts/CURLOPT_DEBUGDATA.3
index a9e609f1..c38d5eba 100644
--- a/docs/libcurl/opts/CURLOPT_DEBUGDATA.3
+++ b/docs/libcurl/opts/CURLOPT_DEBUGDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DEBUGDATA 3 "February 03, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_DEBUGDATA 3 "February 03, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DEBUGDATA \- custom pointer for debug callback
diff --git a/docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.3 b/docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.3
index 9f54fc11..4b20dc8e 100644
--- a/docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DEBUGFUNCTION 3 "October 06, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_DEBUGFUNCTION 3 "October 06, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DEBUGFUNCTION \- debug callback
diff --git a/docs/libcurl/opts/CURLOPT_DEFAULT_PROTOCOL.3 b/docs/libcurl/opts/CURLOPT_DEFAULT_PROTOCOL.3
index e4b4afaf..a6522d28 100644
--- a/docs/libcurl/opts/CURLOPT_DEFAULT_PROTOCOL.3
+++ b/docs/libcurl/opts/CURLOPT_DEFAULT_PROTOCOL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DEFAULT_PROTOCOL 3 "December 21, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_DEFAULT_PROTOCOL 3 "December 21, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DEFAULT_PROTOCOL \- default protocol to use if the URL is missing a
diff --git a/docs/libcurl/opts/CURLOPT_DIRLISTONLY.3 b/docs/libcurl/opts/CURLOPT_DIRLISTONLY.3
index a54d67fd..3b767978 100644
--- a/docs/libcurl/opts/CURLOPT_DIRLISTONLY.3
+++ b/docs/libcurl/opts/CURLOPT_DIRLISTONLY.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DIRLISTONLY 3 "May 05, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_DIRLISTONLY 3 "May 05, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DIRLISTONLY \- ask for names only in a directory listing
diff --git a/docs/libcurl/opts/CURLOPT_DISALLOW_USERNAME_IN_URL.3 b/docs/libcurl/opts/CURLOPT_DISALLOW_USERNAME_IN_URL.3
index c3d51053..9637f987 100644
--- a/docs/libcurl/opts/CURLOPT_DISALLOW_USERNAME_IN_URL.3
+++ b/docs/libcurl/opts/CURLOPT_DISALLOW_USERNAME_IN_URL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DISALLOW_USERNAME_IN_URL 3 "February 25, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_DISALLOW_USERNAME_IN_URL 3 "February 25, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DISALLOW_USERNAME_IN_URL \- disallow specifying username in the url
diff --git a/docs/libcurl/opts/CURLOPT_DNS_CACHE_TIMEOUT.3 b/docs/libcurl/opts/CURLOPT_DNS_CACHE_TIMEOUT.3
index 8f4984f3..a5a04d95 100644
--- a/docs/libcurl/opts/CURLOPT_DNS_CACHE_TIMEOUT.3
+++ b/docs/libcurl/opts/CURLOPT_DNS_CACHE_TIMEOUT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DNS_CACHE_TIMEOUT 3 "December 09, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_DNS_CACHE_TIMEOUT 3 "December 09, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DNS_CACHE_TIMEOUT \- set life-time for DNS cache entries
diff --git a/docs/libcurl/opts/CURLOPT_DNS_INTERFACE.3 b/docs/libcurl/opts/CURLOPT_DNS_INTERFACE.3
index 0af79941..6d3d0668 100644
--- a/docs/libcurl/opts/CURLOPT_DNS_INTERFACE.3
+++ b/docs/libcurl/opts/CURLOPT_DNS_INTERFACE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DNS_INTERFACE 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_DNS_INTERFACE 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DNS_INTERFACE \- set interface to speak DNS over
diff --git a/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP4.3 b/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP4.3
index 29e9c229..c54fb8b7 100644
--- a/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP4.3
+++ b/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP4.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DNS_LOCAL_IP4 3 "December 10, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_DNS_LOCAL_IP4 3 "December 10, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DNS_LOCAL_IP4 \- IPv4 address to bind DNS resolves to
diff --git a/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP6.3 b/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP6.3
index 2f238bad..334f845a 100644
--- a/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP6.3
+++ b/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP6.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DNS_LOCAL_IP6 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_DNS_LOCAL_IP6 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DNS_LOCAL_IP6 \- IPv6 address to bind DNS resolves to
diff --git a/docs/libcurl/opts/CURLOPT_DNS_SERVERS.3 b/docs/libcurl/opts/CURLOPT_DNS_SERVERS.3
index b9217383..2d3df902 100644
--- a/docs/libcurl/opts/CURLOPT_DNS_SERVERS.3
+++ b/docs/libcurl/opts/CURLOPT_DNS_SERVERS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DNS_SERVERS 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_DNS_SERVERS 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DNS_SERVERS \- set preferred DNS servers
diff --git a/docs/libcurl/opts/CURLOPT_DNS_SHUFFLE_ADDRESSES.3 b/docs/libcurl/opts/CURLOPT_DNS_SHUFFLE_ADDRESSES.3
index c12df8a0..1060b348 100644
--- a/docs/libcurl/opts/CURLOPT_DNS_SHUFFLE_ADDRESSES.3
+++ b/docs/libcurl/opts/CURLOPT_DNS_SHUFFLE_ADDRESSES.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DNS_SHUFFLE_ADDRESSES 3 "March 17, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_DNS_SHUFFLE_ADDRESSES 3 "March 17, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DNS_SHUFFLE_ADDRESSES \- Shuffle addresses when a hostname returns more than one
diff --git a/docs/libcurl/opts/CURLOPT_DNS_USE_GLOBAL_CACHE.3 b/docs/libcurl/opts/CURLOPT_DNS_USE_GLOBAL_CACHE.3
index 5952697b..7874ea25 100644
--- a/docs/libcurl/opts/CURLOPT_DNS_USE_GLOBAL_CACHE.3
+++ b/docs/libcurl/opts/CURLOPT_DNS_USE_GLOBAL_CACHE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_DNS_USE_GLOBAL_CACHE 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_DNS_USE_GLOBAL_CACHE 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_DNS_USE_GLOBAL_CACHE \- enable/disable global DNS cache
diff --git a/docs/libcurl/opts/CURLOPT_DOH_URL.3 b/docs/libcurl/opts/CURLOPT_DOH_URL.3
new file mode 100644
index 00000000..ad7f2b6b
--- /dev/null
+++ b/docs/libcurl/opts/CURLOPT_DOH_URL.3
@@ -0,0 +1,72 @@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 2018, 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 https://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.
+.\" *
+.\" **************************************************************************
+.\"
+.TH CURLOPT_DOH_URL 3 "September 06, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
+
+.SH NAME
+CURLOPT_DOH_URL \- provide the DNS-over-HTTPS URL
+.SH SYNOPSIS
+#include <curl/curl.h>
+
+CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DOH_URL, char *URL);
+.SH DESCRIPTION
+Pass in a pointer to a \fIURL\fP for the DOH server to use for name
+resolving. The parameter should be a char * to a zero terminated string which
+must be URL-encoded in the following format: "https://host:port/path". It MUST
+specify a HTTPS URL.
+
+libcurl doesn't validate the syntax or use this variable until the transfer is
+issued. Even if you set a crazy value here, \fIcurl_easy_setopt(3)\fP will
+still return \fICURLE_OK\fP.
+
+curl sends POST requests to the given DNS-over-HTTPS URL.
+
+To find the DOH server itself, which might be specified using a name, libcurl
+will use the default name lookup function. You can bootstrap that by providing
+the address for the DOH server with \fICURLOPT_RESOLVE(3)\fP.
+
+Disable DOH use again by setting this option to NULL.
+.SH DEFAULT
+NULL - there is no default DOH URL. If this option isn't set, libcurl will use
+the default name resolver.
+.SH PROTOCOLS
+All
+.SH EXAMPLE
+.nf
+CURL *curl = curl_easy_init();
+if(curl) {
+ curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
+ curl_easy_setopt(curl, CURLOPT_DOH_URL, "https://dns.example.com");
+ curl_easy_perform(curl);
+}
+.fi
+.SH AVAILABILITY
+Added in 7.62.0
+.SH RETURN VALUE
+Returns CURLE_OK on success or CURLE_OUT_OF_MEMORY if there was insufficient
+heap space.
+
+Note that \fIcurl_easy_setopt(3)\fP won't actually parse the given string so
+given a bad DOH URL, curl will not detect a problem until it tries to resolve
+a name with it.
+.SH "SEE ALSO"
+.BR CURLOPT_VERBOSE "(3), " CURLOPT_RESOLVE "(3), "
diff --git a/docs/libcurl/opts/CURLOPT_EGDSOCKET.3 b/docs/libcurl/opts/CURLOPT_EGDSOCKET.3
index 14eae783..4a5018f4 100644
--- a/docs/libcurl/opts/CURLOPT_EGDSOCKET.3
+++ b/docs/libcurl/opts/CURLOPT_EGDSOCKET.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_EGDSOCKET 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_EGDSOCKET 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_EGDSOCKET \- set EGD socket path
diff --git a/docs/libcurl/opts/CURLOPT_ERRORBUFFER.3 b/docs/libcurl/opts/CURLOPT_ERRORBUFFER.3
index 648824eb..d7d20d25 100644
--- a/docs/libcurl/opts/CURLOPT_ERRORBUFFER.3
+++ b/docs/libcurl/opts/CURLOPT_ERRORBUFFER.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_ERRORBUFFER 3 "March 13, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_ERRORBUFFER 3 "March 13, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_ERRORBUFFER \- set error buffer for error messages
diff --git a/docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.3 b/docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.3
index 063a7962..fdbf1a7c 100644
--- a/docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.3
+++ b/docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_EXPECT_100_TIMEOUT_MS 3 "April 17, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_EXPECT_100_TIMEOUT_MS 3 "April 17, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_EXPECT_100_TIMEOUT_MS \- timeout for Expect: 100-continue response
diff --git a/docs/libcurl/opts/CURLOPT_FAILONERROR.3 b/docs/libcurl/opts/CURLOPT_FAILONERROR.3
index 6e787235..98e3c303 100644
--- a/docs/libcurl/opts/CURLOPT_FAILONERROR.3
+++ b/docs/libcurl/opts/CURLOPT_FAILONERROR.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FAILONERROR 3 "April 17, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_FAILONERROR 3 "April 17, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FAILONERROR \- request failure on HTTP response >= 400
diff --git a/docs/libcurl/opts/CURLOPT_FILETIME.3 b/docs/libcurl/opts/CURLOPT_FILETIME.3
index 882028e5..09e13807 100644
--- a/docs/libcurl/opts/CURLOPT_FILETIME.3
+++ b/docs/libcurl/opts/CURLOPT_FILETIME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FILETIME 3 "April 03, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_FILETIME 3 "April 03, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FILETIME \- get the modification time of the remote resource
diff --git a/docs/libcurl/opts/CURLOPT_FNMATCH_DATA.3 b/docs/libcurl/opts/CURLOPT_FNMATCH_DATA.3
index 8b3fee16..7b9188cc 100644
--- a/docs/libcurl/opts/CURLOPT_FNMATCH_DATA.3
+++ b/docs/libcurl/opts/CURLOPT_FNMATCH_DATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FNMATCH_DATA 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_FNMATCH_DATA 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FNMATCH_DATA \- custom pointer to fnmatch callback
diff --git a/docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.3 b/docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.3
index 7034cb36..a3d207c0 100644
--- a/docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_FNMATCH_FUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FNMATCH_FUNCTION 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_FNMATCH_FUNCTION 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FNMATCH_FUNCTION \- wildcard matching function callback
diff --git a/docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.3 b/docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.3
index df039fe6..104540ce 100644
--- a/docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.3
+++ b/docs/libcurl/opts/CURLOPT_FOLLOWLOCATION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FOLLOWLOCATION 3 "May 02, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_FOLLOWLOCATION 3 "May 02, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FOLLOWLOCATION \- follow HTTP 3xx redirects
diff --git a/docs/libcurl/opts/CURLOPT_FORBID_REUSE.3 b/docs/libcurl/opts/CURLOPT_FORBID_REUSE.3
index 09947391..3d5b5c7a 100644
--- a/docs/libcurl/opts/CURLOPT_FORBID_REUSE.3
+++ b/docs/libcurl/opts/CURLOPT_FORBID_REUSE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FORBID_REUSE 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_FORBID_REUSE 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FORBID_REUSE \- make connection get closed at once after use
diff --git a/docs/libcurl/opts/CURLOPT_FRESH_CONNECT.3 b/docs/libcurl/opts/CURLOPT_FRESH_CONNECT.3
index 591ae461..d661369e 100644
--- a/docs/libcurl/opts/CURLOPT_FRESH_CONNECT.3
+++ b/docs/libcurl/opts/CURLOPT_FRESH_CONNECT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FRESH_CONNECT 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_FRESH_CONNECT 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FRESH_CONNECT \- force a new connection to be used
diff --git a/docs/libcurl/opts/CURLOPT_FTPPORT.3 b/docs/libcurl/opts/CURLOPT_FTPPORT.3
index 9c810047..2e27d090 100644
--- a/docs/libcurl/opts/CURLOPT_FTPPORT.3
+++ b/docs/libcurl/opts/CURLOPT_FTPPORT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTPPORT 3 "May 30, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_FTPPORT 3 "May 30, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTPPORT \- make FTP transfer active
diff --git a/docs/libcurl/opts/CURLOPT_FTPSSLAUTH.3 b/docs/libcurl/opts/CURLOPT_FTPSSLAUTH.3
index ac87a8a5..30a91b17 100644
--- a/docs/libcurl/opts/CURLOPT_FTPSSLAUTH.3
+++ b/docs/libcurl/opts/CURLOPT_FTPSSLAUTH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTPSSLAUTH 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_FTPSSLAUTH 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTPSSLAUTH \- set order in which to attempt TLS vs SSL when using FTP
diff --git a/docs/libcurl/opts/CURLOPT_FTP_ACCOUNT.3 b/docs/libcurl/opts/CURLOPT_FTP_ACCOUNT.3
index 3285a3d3..9c1c9f4d 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_ACCOUNT.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_ACCOUNT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_ACCOUNT 3 "May 05, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_FTP_ACCOUNT 3 "May 05, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTP_ACCOUNT \- set account info for FTP
diff --git a/docs/libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.3 b/docs/libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.3
index 3b62ccb3..64f94ec3 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_ALTERNATIVE_TO_USER.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_ALTERNATIVE_TO_USER 3 "May 05, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_FTP_ALTERNATIVE_TO_USER 3 "May 05, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTP_ALTERNATIVE_TO_USER \- command to use instead of USER with FTP
diff --git a/docs/libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.3 b/docs/libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.3
index eb1bed56..e71d0a52 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_CREATE_MISSING_DIRS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_CREATE_MISSING_DIRS 3 "May 05, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_FTP_CREATE_MISSING_DIRS 3 "May 05, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTP_CREATE_MISSING_DIRS \- create missing dirs for FTP and SFTP
diff --git a/docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.3 b/docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.3
index 8b1eef87..47b6df19 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_FILEMETHOD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_FILEMETHOD 3 "May 05, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_FTP_FILEMETHOD 3 "May 05, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTP_FILEMETHOD \- select directory traversing method for FTP
diff --git a/docs/libcurl/opts/CURLOPT_FTP_RESPONSE_TIMEOUT.3 b/docs/libcurl/opts/CURLOPT_FTP_RESPONSE_TIMEOUT.3
index 7d173fcb..5b8ad044 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_RESPONSE_TIMEOUT.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_RESPONSE_TIMEOUT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_RESPONSE_TIMEOUT 3 "October 03, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_FTP_RESPONSE_TIMEOUT 3 "October 03, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTP_RESPONSE_TIMEOUT \- time allowed to wait for FTP response
diff --git a/docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.3 b/docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.3
index 4d3026a6..5f8f1716 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_SKIP_PASV_IP 3 "May 05, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_FTP_SKIP_PASV_IP 3 "May 05, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTP_SKIP_PASV_IP \- ignore the IP address in the PASV response
diff --git a/docs/libcurl/opts/CURLOPT_FTP_SSL_CCC.3 b/docs/libcurl/opts/CURLOPT_FTP_SSL_CCC.3
index a7d2c0cd..97ad3c56 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_SSL_CCC.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_SSL_CCC.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_SSL_CCC 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_FTP_SSL_CCC 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTP_SSL_CCC \- switch off SSL again with FTP after auth
diff --git a/docs/libcurl/opts/CURLOPT_FTP_USE_EPRT.3 b/docs/libcurl/opts/CURLOPT_FTP_USE_EPRT.3
index 29e7b2d1..1a7e0ac1 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_USE_EPRT.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_USE_EPRT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_USE_EPRT 3 "February 03, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_FTP_USE_EPRT 3 "February 03, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTP_USE_EPRT \- enable/disable use of EPRT with FTP
diff --git a/docs/libcurl/opts/CURLOPT_FTP_USE_EPSV.3 b/docs/libcurl/opts/CURLOPT_FTP_USE_EPSV.3
index 7fcc3a7b..f66b393a 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_USE_EPSV.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_USE_EPSV.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_USE_EPSV 3 "May 05, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_FTP_USE_EPSV 3 "May 05, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTP_USE_EPSV \- enable/disable use of EPSV
diff --git a/docs/libcurl/opts/CURLOPT_FTP_USE_PRET.3 b/docs/libcurl/opts/CURLOPT_FTP_USE_PRET.3
index 244d86a7..386b2a81 100644
--- a/docs/libcurl/opts/CURLOPT_FTP_USE_PRET.3
+++ b/docs/libcurl/opts/CURLOPT_FTP_USE_PRET.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_FTP_USE_PRET 3 "May 05, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_FTP_USE_PRET 3 "May 05, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_FTP_USE_PRET \- enable the PRET command
diff --git a/docs/libcurl/opts/CURLOPT_GSSAPI_DELEGATION.3 b/docs/libcurl/opts/CURLOPT_GSSAPI_DELEGATION.3
index 7ab2c5b6..29bd6bf4 100644
--- a/docs/libcurl/opts/CURLOPT_GSSAPI_DELEGATION.3
+++ b/docs/libcurl/opts/CURLOPT_GSSAPI_DELEGATION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_GSSAPI_DELEGATION 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_GSSAPI_DELEGATION 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_GSSAPI_DELEGATION \- set allowed GSS-API delegation
diff --git a/docs/libcurl/opts/CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.3 b/docs/libcurl/opts/CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.3
index 717d93f7..454ab350 100644
--- a/docs/libcurl/opts/CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.3
+++ b/docs/libcurl/opts/CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS 3 "February 21, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS 3 "February 21, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS \- head start for ipv6 for happy eyeballs
diff --git a/docs/libcurl/opts/CURLOPT_HAPROXYPROTOCOL.3 b/docs/libcurl/opts/CURLOPT_HAPROXYPROTOCOL.3
index e76e807b..98586b28 100644
--- a/docs/libcurl/opts/CURLOPT_HAPROXYPROTOCOL.3
+++ b/docs/libcurl/opts/CURLOPT_HAPROXYPROTOCOL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HAPROXYPROTOCOL 3 "May 18, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_HAPROXYPROTOCOL 3 "May 18, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HAPROXYPROTOCOL \- send HAProxy PROXY protocol v1 header
diff --git a/docs/libcurl/opts/CURLOPT_HEADER.3 b/docs/libcurl/opts/CURLOPT_HEADER.3
index 58e5ee39..e2df3b34 100644
--- a/docs/libcurl/opts/CURLOPT_HEADER.3
+++ b/docs/libcurl/opts/CURLOPT_HEADER.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HEADER 3 "February 16, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_HEADER 3 "October 03, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HEADER \- pass headers to the data stream
@@ -38,7 +38,7 @@ When asking to get the headers passed to the same callback as the body, it is
not possible to accurately separate them again without detailed knowledge
about the protocol in use.
-Further: the \fCURLOPT_WRITEFUNCTION(3)\fP callback is limited to only ever
+Further: the \fICURLOPT_WRITEFUNCTION(3)\fP callback is limited to only ever
get a maximum of \fICURL_MAX_WRITE_SIZE\fP bytes passed to it (16KB), while a
header can be longer and the \fICURLOPT_HEADERFUNCTION(3)\fP supports getting
called with headers up to \fICURL_MAX_HTTP_HEADER\fP bytes big (100KB).
diff --git a/docs/libcurl/opts/CURLOPT_HEADERDATA.3 b/docs/libcurl/opts/CURLOPT_HEADERDATA.3
index 025bd7b4..e9240ef8 100644
--- a/docs/libcurl/opts/CURLOPT_HEADERDATA.3
+++ b/docs/libcurl/opts/CURLOPT_HEADERDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HEADERDATA 3 "May 05, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_HEADERDATA 3 "May 05, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HEADERDATA \- pointer to pass to header callback
diff --git a/docs/libcurl/opts/CURLOPT_HEADERFUNCTION.3 b/docs/libcurl/opts/CURLOPT_HEADERFUNCTION.3
index 433f99fc..74bb7256 100644
--- a/docs/libcurl/opts/CURLOPT_HEADERFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_HEADERFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HEADERFUNCTION 3 "August 11, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_HEADERFUNCTION 3 "August 11, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HEADERFUNCTION \- callback that receives header data
diff --git a/docs/libcurl/opts/CURLOPT_HEADEROPT.3 b/docs/libcurl/opts/CURLOPT_HEADEROPT.3
index 0d56db72..3976d064 100644
--- a/docs/libcurl/opts/CURLOPT_HEADEROPT.3
+++ b/docs/libcurl/opts/CURLOPT_HEADEROPT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HEADEROPT 3 "April 17, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_HEADEROPT 3 "April 17, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HEADEROPT \- set how to send HTTP headers
diff --git a/docs/libcurl/opts/CURLOPT_HTTP200ALIASES.3 b/docs/libcurl/opts/CURLOPT_HTTP200ALIASES.3
index 034145f9..deaa102b 100644
--- a/docs/libcurl/opts/CURLOPT_HTTP200ALIASES.3
+++ b/docs/libcurl/opts/CURLOPT_HTTP200ALIASES.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HTTP200ALIASES 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_HTTP200ALIASES 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HTTP200ALIASES \- specify alternative matches for HTTP 200 OK
diff --git a/docs/libcurl/opts/CURLOPT_HTTPAUTH.3 b/docs/libcurl/opts/CURLOPT_HTTPAUTH.3
index 65550143..ad70f08a 100644
--- a/docs/libcurl/opts/CURLOPT_HTTPAUTH.3
+++ b/docs/libcurl/opts/CURLOPT_HTTPAUTH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HTTPAUTH 3 "June 15, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_HTTPAUTH 3 "June 15, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HTTPAUTH \- set HTTP server authentication methods to try
diff --git a/docs/libcurl/opts/CURLOPT_HTTPGET.3 b/docs/libcurl/opts/CURLOPT_HTTPGET.3
index 2bb4b457..c24394cf 100644
--- a/docs/libcurl/opts/CURLOPT_HTTPGET.3
+++ b/docs/libcurl/opts/CURLOPT_HTTPGET.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HTTPGET 3 "May 21, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_HTTPGET 3 "May 21, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HTTPGET \- ask for an HTTP GET request
diff --git a/docs/libcurl/opts/CURLOPT_HTTPHEADER.3 b/docs/libcurl/opts/CURLOPT_HTTPHEADER.3
index f5826e1f..0b24fe09 100644
--- a/docs/libcurl/opts/CURLOPT_HTTPHEADER.3
+++ b/docs/libcurl/opts/CURLOPT_HTTPHEADER.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HTTPHEADER 3 "January 23, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_HTTPHEADER 3 "January 23, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HTTPHEADER \- set custom HTTP headers
diff --git a/docs/libcurl/opts/CURLOPT_HTTPPOST.3 b/docs/libcurl/opts/CURLOPT_HTTPPOST.3
index a21033dc..e98dd602 100644
--- a/docs/libcurl/opts/CURLOPT_HTTPPOST.3
+++ b/docs/libcurl/opts/CURLOPT_HTTPPOST.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HTTPPOST 3 "September 02, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_HTTPPOST 3 "September 02, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HTTPPOST \- specify the multipart formpost content
diff --git a/docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.3 b/docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.3
index fa232d51..ad1b6e48 100644
--- a/docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.3
+++ b/docs/libcurl/opts/CURLOPT_HTTPPROXYTUNNEL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HTTPPROXYTUNNEL 3 "April 17, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_HTTPPROXYTUNNEL 3 "April 17, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HTTPPROXYTUNNEL \- tunnel through HTTP proxy
diff --git a/docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.3 b/docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.3
index 3072bbf6..3fda352e 100644
--- a/docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.3
+++ b/docs/libcurl/opts/CURLOPT_HTTP_CONTENT_DECODING.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HTTP_CONTENT_DECODING 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_HTTP_CONTENT_DECODING 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HTTP_CONTENT_DECODING \- enable/disable HTTP content decoding
diff --git a/docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.3 b/docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.3
index bce42c3e..249eb96d 100644
--- a/docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.3
+++ b/docs/libcurl/opts/CURLOPT_HTTP_TRANSFER_DECODING.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HTTP_TRANSFER_DECODING 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_HTTP_TRANSFER_DECODING 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HTTP_TRANSFER_DECODING \- enable/disable HTTP transfer decoding
diff --git a/docs/libcurl/opts/CURLOPT_HTTP_VERSION.3 b/docs/libcurl/opts/CURLOPT_HTTP_VERSION.3
index b6262602..a0535679 100644
--- a/docs/libcurl/opts/CURLOPT_HTTP_VERSION.3
+++ b/docs/libcurl/opts/CURLOPT_HTTP_VERSION.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2018, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_HTTP_VERSION 3 "April 17, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_HTTP_VERSION 3 "September 05, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_HTTP_VERSION \- specify HTTP protocol version to use
@@ -61,7 +61,9 @@ prior knowledge that the server supports HTTP/2 straight away. HTTPS requests
will still do HTTP/2 the standard way with negotiated protocol version in the
TLS handshake. (Added in 7.49.0)
.SH DEFAULT
-CURL_HTTP_VERSION_NONE
+Since curl 7.62.0: CURL_HTTP_VERSION_2TLS
+
+Before that: CURL_HTTP_VERSION_1_1
.SH PROTOCOLS
HTTP
.SH EXAMPLE
diff --git a/docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.3 b/docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.3
index a1cfc105..30bf50a5 100644
--- a/docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.3
+++ b/docs/libcurl/opts/CURLOPT_IGNORE_CONTENT_LENGTH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_IGNORE_CONTENT_LENGTH 3 "February 03, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_IGNORE_CONTENT_LENGTH 3 "February 03, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_IGNORE_CONTENT_LENGTH \- ignore content length
diff --git a/docs/libcurl/opts/CURLOPT_INFILESIZE.3 b/docs/libcurl/opts/CURLOPT_INFILESIZE.3
index 949c4e18..f2b61312 100644
--- a/docs/libcurl/opts/CURLOPT_INFILESIZE.3
+++ b/docs/libcurl/opts/CURLOPT_INFILESIZE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_INFILESIZE 3 "February 03, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_INFILESIZE 3 "February 03, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_INFILESIZE \- set size of the input file to send off
diff --git a/docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.3 b/docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.3
index 30d7aa0d..27739a6b 100644
--- a/docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.3
+++ b/docs/libcurl/opts/CURLOPT_INFILESIZE_LARGE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_INFILESIZE_LARGE 3 "February 03, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_INFILESIZE_LARGE 3 "September 23, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_INFILESIZE_LARGE \- set size of the input file to send off
@@ -33,7 +33,7 @@ CURLcode curl_easy_setopt(CURL *handle, CURLOPT_INFILESIZE_LARGE,
.SH DESCRIPTION
When uploading a file to a remote site, \fIfilesize\fP should be used to tell
libcurl what the expected size of the input file is. This value must be passed
-as a \fBcurl_off_t\fP.
+as a \fBcurl_off_t\fP.
For uploading using SCP, this option or \fICURLOPT_INFILESIZE(3)\fP is
mandatory.
diff --git a/docs/libcurl/opts/CURLOPT_INTERFACE.3 b/docs/libcurl/opts/CURLOPT_INTERFACE.3
index 28226aa6..5a826c51 100644
--- a/docs/libcurl/opts/CURLOPT_INTERFACE.3
+++ b/docs/libcurl/opts/CURLOPT_INTERFACE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_INTERFACE 3 "June 18, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_INTERFACE 3 "June 18, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_INTERFACE \- source interface for outgoing traffic
diff --git a/docs/libcurl/opts/CURLOPT_INTERLEAVEDATA.3 b/docs/libcurl/opts/CURLOPT_INTERLEAVEDATA.3
index 0eee6ffd..0479fe8b 100644
--- a/docs/libcurl/opts/CURLOPT_INTERLEAVEDATA.3
+++ b/docs/libcurl/opts/CURLOPT_INTERLEAVEDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_INTERLEAVEDATA 3 "September 15, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_INTERLEAVEDATA 3 "September 15, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_INTERLEAVEDATA \- custom pointer passed to RTSP interleave callback
diff --git a/docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.3 b/docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.3
index 7318b138..0b4efec9 100644
--- a/docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_INTERLEAVEFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_INTERLEAVEFUNCTION 3 "August 11, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_INTERLEAVEFUNCTION 3 "August 11, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_INTERLEAVEFUNCTION \- callback function for RTSP interleaved data
diff --git a/docs/libcurl/opts/CURLOPT_IOCTLDATA.3 b/docs/libcurl/opts/CURLOPT_IOCTLDATA.3
index 0231fb52..b8ca6ed2 100644
--- a/docs/libcurl/opts/CURLOPT_IOCTLDATA.3
+++ b/docs/libcurl/opts/CURLOPT_IOCTLDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_IOCTLDATA 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_IOCTLDATA 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_IOCTLDATA \- custom pointer passed to I/O callback
diff --git a/docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.3 b/docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.3
index 08a5a5c5..22f1f7ba 100644
--- a/docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_IOCTLFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_IOCTLFUNCTION 3 "April 17, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_IOCTLFUNCTION 3 "April 17, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_IOCTLFUNCTION \- callback for I/O operations
diff --git a/docs/libcurl/opts/CURLOPT_IPRESOLVE.3 b/docs/libcurl/opts/CURLOPT_IPRESOLVE.3
index 382f921a..8e3c8011 100644
--- a/docs/libcurl/opts/CURLOPT_IPRESOLVE.3
+++ b/docs/libcurl/opts/CURLOPT_IPRESOLVE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_IPRESOLVE 3 "May 05, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_IPRESOLVE 3 "May 05, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_IPRESOLVE \- specify which IP protocol version to use
diff --git a/docs/libcurl/opts/CURLOPT_ISSUERCERT.3 b/docs/libcurl/opts/CURLOPT_ISSUERCERT.3
index 5ca6c33a..1e27366e 100644
--- a/docs/libcurl/opts/CURLOPT_ISSUERCERT.3
+++ b/docs/libcurl/opts/CURLOPT_ISSUERCERT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_ISSUERCERT 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_ISSUERCERT 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_ISSUERCERT \- issuer SSL certificate filename
diff --git a/docs/libcurl/opts/CURLOPT_KEEP_SENDING_ON_ERROR.3 b/docs/libcurl/opts/CURLOPT_KEEP_SENDING_ON_ERROR.3
index b5256c1e..5d686e56 100644
--- a/docs/libcurl/opts/CURLOPT_KEEP_SENDING_ON_ERROR.3
+++ b/docs/libcurl/opts/CURLOPT_KEEP_SENDING_ON_ERROR.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_KEEP_SENDING_ON_ERROR 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_KEEP_SENDING_ON_ERROR 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_KEEP_SENDING_ON_ERROR \- keep sending on early HTTP response >= 300
diff --git a/docs/libcurl/opts/CURLOPT_KEYPASSWD.3 b/docs/libcurl/opts/CURLOPT_KEYPASSWD.3
index ce30f12a..107c43c7 100644
--- a/docs/libcurl/opts/CURLOPT_KEYPASSWD.3
+++ b/docs/libcurl/opts/CURLOPT_KEYPASSWD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_KEYPASSWD 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_KEYPASSWD 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_KEYPASSWD \- set passphrase to private key
diff --git a/docs/libcurl/opts/CURLOPT_KRBLEVEL.3 b/docs/libcurl/opts/CURLOPT_KRBLEVEL.3
index 4021a8e9..10b900ac 100644
--- a/docs/libcurl/opts/CURLOPT_KRBLEVEL.3
+++ b/docs/libcurl/opts/CURLOPT_KRBLEVEL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_KRBLEVEL 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_KRBLEVEL 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_KRBLEVEL \- set FTP kerberos security level
diff --git a/docs/libcurl/opts/CURLOPT_LOCALPORT.3 b/docs/libcurl/opts/CURLOPT_LOCALPORT.3
index 861d1ddc..cdd75d4f 100644
--- a/docs/libcurl/opts/CURLOPT_LOCALPORT.3
+++ b/docs/libcurl/opts/CURLOPT_LOCALPORT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_LOCALPORT 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_LOCALPORT 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_LOCALPORT \- set local port number to use for socket
diff --git a/docs/libcurl/opts/CURLOPT_LOCALPORTRANGE.3 b/docs/libcurl/opts/CURLOPT_LOCALPORTRANGE.3
index aeba5888..2886ae02 100644
--- a/docs/libcurl/opts/CURLOPT_LOCALPORTRANGE.3
+++ b/docs/libcurl/opts/CURLOPT_LOCALPORTRANGE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_LOCALPORTRANGE 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_LOCALPORTRANGE 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_LOCALPORTRANGE \- number of additional local ports to try
diff --git a/docs/libcurl/opts/CURLOPT_LOGIN_OPTIONS.3 b/docs/libcurl/opts/CURLOPT_LOGIN_OPTIONS.3
index ae52c8b9..51c5286e 100644
--- a/docs/libcurl/opts/CURLOPT_LOGIN_OPTIONS.3
+++ b/docs/libcurl/opts/CURLOPT_LOGIN_OPTIONS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_LOGIN_OPTIONS 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_LOGIN_OPTIONS 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_LOGIN_OPTIONS \- set login options
diff --git a/docs/libcurl/opts/CURLOPT_LOW_SPEED_LIMIT.3 b/docs/libcurl/opts/CURLOPT_LOW_SPEED_LIMIT.3
index 8fc23945..528243d0 100644
--- a/docs/libcurl/opts/CURLOPT_LOW_SPEED_LIMIT.3
+++ b/docs/libcurl/opts/CURLOPT_LOW_SPEED_LIMIT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_LOW_SPEED_LIMIT 3 "May 06, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_LOW_SPEED_LIMIT 3 "May 06, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_LOW_SPEED_LIMIT \- set low speed limit in bytes per second
diff --git a/docs/libcurl/opts/CURLOPT_LOW_SPEED_TIME.3 b/docs/libcurl/opts/CURLOPT_LOW_SPEED_TIME.3
index 1078a71e..20ed11b0 100644
--- a/docs/libcurl/opts/CURLOPT_LOW_SPEED_TIME.3
+++ b/docs/libcurl/opts/CURLOPT_LOW_SPEED_TIME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_LOW_SPEED_TIME 3 "May 06, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_LOW_SPEED_TIME 3 "May 06, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_LOW_SPEED_TIME \- set low speed limit time period
diff --git a/docs/libcurl/opts/CURLOPT_MAIL_AUTH.3 b/docs/libcurl/opts/CURLOPT_MAIL_AUTH.3
index a11766e1..c54d754e 100644
--- a/docs/libcurl/opts/CURLOPT_MAIL_AUTH.3
+++ b/docs/libcurl/opts/CURLOPT_MAIL_AUTH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MAIL_AUTH 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_MAIL_AUTH 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MAIL_AUTH \- SMTP authentication address
diff --git a/docs/libcurl/opts/CURLOPT_MAIL_FROM.3 b/docs/libcurl/opts/CURLOPT_MAIL_FROM.3
index ca249b14..9c615057 100644
--- a/docs/libcurl/opts/CURLOPT_MAIL_FROM.3
+++ b/docs/libcurl/opts/CURLOPT_MAIL_FROM.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MAIL_FROM 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_MAIL_FROM 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MAIL_FROM \- SMTP sender address
diff --git a/docs/libcurl/opts/CURLOPT_MAIL_RCPT.3 b/docs/libcurl/opts/CURLOPT_MAIL_RCPT.3
index 21287c22..e07110d2 100644
--- a/docs/libcurl/opts/CURLOPT_MAIL_RCPT.3
+++ b/docs/libcurl/opts/CURLOPT_MAIL_RCPT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MAIL_RCPT 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_MAIL_RCPT 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MAIL_RCPT \- list of SMTP mail recipients
diff --git a/docs/libcurl/opts/CURLOPT_MAXCONNECTS.3 b/docs/libcurl/opts/CURLOPT_MAXCONNECTS.3
index 3b3a29a5..abb8669f 100644
--- a/docs/libcurl/opts/CURLOPT_MAXCONNECTS.3
+++ b/docs/libcurl/opts/CURLOPT_MAXCONNECTS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MAXCONNECTS 3 "May 30, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_MAXCONNECTS 3 "May 30, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MAXCONNECTS \- maximum connection cache size
diff --git a/docs/libcurl/opts/CURLOPT_MAXFILESIZE.3 b/docs/libcurl/opts/CURLOPT_MAXFILESIZE.3
index 5b207018..1af9e54a 100644
--- a/docs/libcurl/opts/CURLOPT_MAXFILESIZE.3
+++ b/docs/libcurl/opts/CURLOPT_MAXFILESIZE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MAXFILESIZE 3 "May 30, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_MAXFILESIZE 3 "May 30, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MAXFILESIZE \- maximum file size allowed to download
diff --git a/docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.3 b/docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.3
index 16ae602d..f5e4c296 100644
--- a/docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.3
+++ b/docs/libcurl/opts/CURLOPT_MAXFILESIZE_LARGE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MAXFILESIZE_LARGE 3 "May 30, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_MAXFILESIZE_LARGE 3 "May 30, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MAXFILESIZE_LARGE \- maximum file size allowed to download
diff --git a/docs/libcurl/opts/CURLOPT_MAXREDIRS.3 b/docs/libcurl/opts/CURLOPT_MAXREDIRS.3
index 07c43269..7b54508b 100644
--- a/docs/libcurl/opts/CURLOPT_MAXREDIRS.3
+++ b/docs/libcurl/opts/CURLOPT_MAXREDIRS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MAXREDIRS 3 "February 03, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_MAXREDIRS 3 "February 03, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MAXREDIRS \- maximum number of redirects allowed
diff --git a/docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.3 b/docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.3
index 7014d87f..1b89eadc 100644
--- a/docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.3
+++ b/docs/libcurl/opts/CURLOPT_MAX_RECV_SPEED_LARGE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MAX_RECV_SPEED_LARGE 3 "May 30, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_MAX_RECV_SPEED_LARGE 3 "May 30, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MAX_RECV_SPEED_LARGE \- rate limit data download speed
diff --git a/docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.3 b/docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.3
index 40ffd124..87e4f667 100644
--- a/docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.3
+++ b/docs/libcurl/opts/CURLOPT_MAX_SEND_SPEED_LARGE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MAX_SEND_SPEED_LARGE 3 "May 30, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_MAX_SEND_SPEED_LARGE 3 "May 30, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MAX_SEND_SPEED_LARGE \- rate limit data upload speed
diff --git a/docs/libcurl/opts/CURLOPT_MIMEPOST.3 b/docs/libcurl/opts/CURLOPT_MIMEPOST.3
index 158ca018..363e2e6b 100644
--- a/docs/libcurl/opts/CURLOPT_MIMEPOST.3
+++ b/docs/libcurl/opts/CURLOPT_MIMEPOST.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_MIMEPOST 3 "September 04, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_MIMEPOST 3 "September 04, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_MIMEPOST \- set post/send data from mime structure
diff --git a/docs/libcurl/opts/CURLOPT_NETRC.3 b/docs/libcurl/opts/CURLOPT_NETRC.3
index c48a2543..516a4ad1 100644
--- a/docs/libcurl/opts/CURLOPT_NETRC.3
+++ b/docs/libcurl/opts/CURLOPT_NETRC.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_NETRC 3 "May 02, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_NETRC 3 "May 02, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_NETRC \- request that .netrc is used
diff --git a/docs/libcurl/opts/CURLOPT_NETRC_FILE.3 b/docs/libcurl/opts/CURLOPT_NETRC_FILE.3
index 15f7a7c0..7387f501 100644
--- a/docs/libcurl/opts/CURLOPT_NETRC_FILE.3
+++ b/docs/libcurl/opts/CURLOPT_NETRC_FILE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_NETRC_FILE 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_NETRC_FILE 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_NETRC_FILE \- file name to read .netrc info from
diff --git a/docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.3 b/docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.3
index 9481617c..82936616 100644
--- a/docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.3
+++ b/docs/libcurl/opts/CURLOPT_NEW_DIRECTORY_PERMS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_NEW_DIRECTORY_PERMS 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_NEW_DIRECTORY_PERMS 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_NEW_DIRECTORY_PERMS \- permissions for remotely created directories
diff --git a/docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.3 b/docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.3
index 9f2854e5..bdbcae03 100644
--- a/docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.3
+++ b/docs/libcurl/opts/CURLOPT_NEW_FILE_PERMS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_NEW_FILE_PERMS 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_NEW_FILE_PERMS 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_NEW_FILE_PERMS \- permissions for remotely created files
diff --git a/docs/libcurl/opts/CURLOPT_NOBODY.3 b/docs/libcurl/opts/CURLOPT_NOBODY.3
index dee2c124..8a822a66 100644
--- a/docs/libcurl/opts/CURLOPT_NOBODY.3
+++ b/docs/libcurl/opts/CURLOPT_NOBODY.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_NOBODY 3 "June 21, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_NOBODY 3 "June 21, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_NOBODY \- do the download request without getting the body
diff --git a/docs/libcurl/opts/CURLOPT_NOPROGRESS.3 b/docs/libcurl/opts/CURLOPT_NOPROGRESS.3
index dcda6005..92b6b546 100644
--- a/docs/libcurl/opts/CURLOPT_NOPROGRESS.3
+++ b/docs/libcurl/opts/CURLOPT_NOPROGRESS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_NOPROGRESS 3 "October 09, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_NOPROGRESS 3 "October 09, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_NOPROGRESS \- switch off the progress meter
diff --git a/docs/libcurl/opts/CURLOPT_NOPROXY.3 b/docs/libcurl/opts/CURLOPT_NOPROXY.3
index 39ac49b6..8fa692f0 100644
--- a/docs/libcurl/opts/CURLOPT_NOPROXY.3
+++ b/docs/libcurl/opts/CURLOPT_NOPROXY.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_NOPROXY 3 "August 24, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_NOPROXY 3 "August 24, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_NOPROXY \- disable proxy use for specific hosts
diff --git a/docs/libcurl/opts/CURLOPT_NOSIGNAL.3 b/docs/libcurl/opts/CURLOPT_NOSIGNAL.3
index b1dc11b2..6b580378 100644
--- a/docs/libcurl/opts/CURLOPT_NOSIGNAL.3
+++ b/docs/libcurl/opts/CURLOPT_NOSIGNAL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_NOSIGNAL 3 "February 03, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_NOSIGNAL 3 "February 03, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_NOSIGNAL \- skip all signal handling
diff --git a/docs/libcurl/opts/CURLOPT_OPENSOCKETDATA.3 b/docs/libcurl/opts/CURLOPT_OPENSOCKETDATA.3
index 5654d6b6..6e75a3d4 100644
--- a/docs/libcurl/opts/CURLOPT_OPENSOCKETDATA.3
+++ b/docs/libcurl/opts/CURLOPT_OPENSOCKETDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_OPENSOCKETDATA 3 "May 15, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_OPENSOCKETDATA 3 "May 15, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_OPENSOCKETDATA \- custom pointer passed to open socket callback
diff --git a/docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.3 b/docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.3
index 7b6ec3f5..2405f989 100644
--- a/docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_OPENSOCKETFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_OPENSOCKETFUNCTION 3 "May 15, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_OPENSOCKETFUNCTION 3 "May 15, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_OPENSOCKETFUNCTION \- set callback for opening sockets
diff --git a/docs/libcurl/opts/CURLOPT_PASSWORD.3 b/docs/libcurl/opts/CURLOPT_PASSWORD.3
index 967e6947..afe2193f 100644
--- a/docs/libcurl/opts/CURLOPT_PASSWORD.3
+++ b/docs/libcurl/opts/CURLOPT_PASSWORD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PASSWORD 3 "May 05, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PASSWORD 3 "September 23, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PASSWORD \- password to use in authentication
@@ -62,4 +62,3 @@ CURLE_OUT_OF_MEMORY if there was insufficient heap space.
.SH "SEE ALSO"
.BR CURLOPT_USERPWD "(3), " CURLOPT_USERNAME "(3), "
.BR CURLOPT_HTTPAUTH "(3), " CURLOPT_PROXYAUTH "(3)"
-
diff --git a/docs/libcurl/opts/CURLOPT_PATH_AS_IS.3 b/docs/libcurl/opts/CURLOPT_PATH_AS_IS.3
index 1c0c5821..2d4c5a5f 100644
--- a/docs/libcurl/opts/CURLOPT_PATH_AS_IS.3
+++ b/docs/libcurl/opts/CURLOPT_PATH_AS_IS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PATH_AS_IS 3 "April 17, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PATH_AS_IS 3 "September 23, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PATH_AS_IS \- do not handle dot dot sequences
@@ -63,4 +63,3 @@ Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
.SH "SEE ALSO"
.BR CURLOPT_STDERR "(3), " CURLOPT_DEBUGFUNCTION "(3), "
.BR CURLOPT_URL "(3), "
-
diff --git a/docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.3 b/docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.3
index b1da1319..be1caeae 100644
--- a/docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.3
+++ b/docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PINNEDPUBLICKEY 3 "January 25, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PINNEDPUBLICKEY 3 "January 25, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PINNEDPUBLICKEY \- set pinned public key
diff --git a/docs/libcurl/opts/CURLOPT_PIPEWAIT.3 b/docs/libcurl/opts/CURLOPT_PIPEWAIT.3
index 908e3333..bc1685ae 100644
--- a/docs/libcurl/opts/CURLOPT_PIPEWAIT.3
+++ b/docs/libcurl/opts/CURLOPT_PIPEWAIT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PIPEWAIT 3 "May 01, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PIPEWAIT 3 "May 01, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PIPEWAIT \- wait for pipelining/multiplexing
diff --git a/docs/libcurl/opts/CURLOPT_PORT.3 b/docs/libcurl/opts/CURLOPT_PORT.3
index 8c8abe8e..1f5a657a 100644
--- a/docs/libcurl/opts/CURLOPT_PORT.3
+++ b/docs/libcurl/opts/CURLOPT_PORT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PORT 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PORT 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PORT \- set remote port number to work with
diff --git a/docs/libcurl/opts/CURLOPT_POST.3 b/docs/libcurl/opts/CURLOPT_POST.3
index a321c34f..6161b7b8 100644
--- a/docs/libcurl/opts/CURLOPT_POST.3
+++ b/docs/libcurl/opts/CURLOPT_POST.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_POST 3 "May 21, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_POST 3 "May 21, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_POST \- request an HTTP POST
diff --git a/docs/libcurl/opts/CURLOPT_POSTFIELDS.3 b/docs/libcurl/opts/CURLOPT_POSTFIELDS.3
index ce430a15..67d9094b 100644
--- a/docs/libcurl/opts/CURLOPT_POSTFIELDS.3
+++ b/docs/libcurl/opts/CURLOPT_POSTFIELDS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_POSTFIELDS 3 "May 21, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_POSTFIELDS 3 "May 21, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_POSTFIELDS \- specify data to POST to server
diff --git a/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.3 b/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.3
index cb1aa4e8..10d6bb89 100644
--- a/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.3
+++ b/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_POSTFIELDSIZE 3 "February 03, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_POSTFIELDSIZE 3 "February 03, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_POSTFIELDSIZE \- size of POST data pointed to
diff --git a/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.3 b/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.3
index feac446c..9bf7ef24 100644
--- a/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.3
+++ b/docs/libcurl/opts/CURLOPT_POSTFIELDSIZE_LARGE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_POSTFIELDSIZE_LARGE 3 "February 03, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_POSTFIELDSIZE_LARGE 3 "February 03, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_POSTFIELDSIZE_LARGE \- size of POST data pointed to
diff --git a/docs/libcurl/opts/CURLOPT_POSTQUOTE.3 b/docs/libcurl/opts/CURLOPT_POSTQUOTE.3
index 7c52591f..d5ab60f7 100644
--- a/docs/libcurl/opts/CURLOPT_POSTQUOTE.3
+++ b/docs/libcurl/opts/CURLOPT_POSTQUOTE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_POSTQUOTE 3 "May 05, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_POSTQUOTE 3 "May 05, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_POSTQUOTE \- (S)FTP commands to run after the transfer
diff --git a/docs/libcurl/opts/CURLOPT_POSTREDIR.3 b/docs/libcurl/opts/CURLOPT_POSTREDIR.3
index f71130dd..19117c81 100644
--- a/docs/libcurl/opts/CURLOPT_POSTREDIR.3
+++ b/docs/libcurl/opts/CURLOPT_POSTREDIR.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_POSTREDIR 3 "April 17, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_POSTREDIR 3 "April 17, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_POSTREDIR \- how to act on an HTTP POST redirect
diff --git a/docs/libcurl/opts/CURLOPT_PREQUOTE.3 b/docs/libcurl/opts/CURLOPT_PREQUOTE.3
index 3845cab5..37cea3ac 100644
--- a/docs/libcurl/opts/CURLOPT_PREQUOTE.3
+++ b/docs/libcurl/opts/CURLOPT_PREQUOTE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PREQUOTE 3 "June 18, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PREQUOTE 3 "June 18, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PREQUOTE \- commands to run before an FTP transfer
diff --git a/docs/libcurl/opts/CURLOPT_PRE_PROXY.3 b/docs/libcurl/opts/CURLOPT_PRE_PROXY.3
index 35157a51..db08464b 100644
--- a/docs/libcurl/opts/CURLOPT_PRE_PROXY.3
+++ b/docs/libcurl/opts/CURLOPT_PRE_PROXY.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PRE_PROXY 3 "May 15, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PRE_PROXY 3 "September 23, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PRE_PROXY \- set pre-proxy to use
@@ -78,4 +78,3 @@ Returns CURLE_OK if proxies are supported, CURLE_UNKNOWN_OPTION if not, or
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
.SH "SEE ALSO"
.BR CURLOPT_PROXY "(3), " CURLOPT_HTTPPROXYTUNNEL "(3), "
-
diff --git a/docs/libcurl/opts/CURLOPT_PRIVATE.3 b/docs/libcurl/opts/CURLOPT_PRIVATE.3
index 4b109fb2..a919dc36 100644
--- a/docs/libcurl/opts/CURLOPT_PRIVATE.3
+++ b/docs/libcurl/opts/CURLOPT_PRIVATE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PRIVATE 3 "December 08, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PRIVATE 3 "December 08, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PRIVATE \- store a private pointer
diff --git a/docs/libcurl/opts/CURLOPT_PROGRESSDATA.3 b/docs/libcurl/opts/CURLOPT_PROGRESSDATA.3
index bda5f18b..82f67576 100644
--- a/docs/libcurl/opts/CURLOPT_PROGRESSDATA.3
+++ b/docs/libcurl/opts/CURLOPT_PROGRESSDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROGRESSDATA 3 "February 03, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROGRESSDATA 3 "February 03, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROGRESSDATA \- custom pointer passed to the progress callback
diff --git a/docs/libcurl/opts/CURLOPT_PROGRESSFUNCTION.3 b/docs/libcurl/opts/CURLOPT_PROGRESSFUNCTION.3
index 5e639bf7..fc73d7dd 100644
--- a/docs/libcurl/opts/CURLOPT_PROGRESSFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_PROGRESSFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROGRESSFUNCTION 3 "February 03, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROGRESSFUNCTION 3 "February 03, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROGRESSFUNCTION \- callback to progress meter function
diff --git a/docs/libcurl/opts/CURLOPT_PROTOCOLS.3 b/docs/libcurl/opts/CURLOPT_PROTOCOLS.3
index 220b6ca4..df559814 100644
--- a/docs/libcurl/opts/CURLOPT_PROTOCOLS.3
+++ b/docs/libcurl/opts/CURLOPT_PROTOCOLS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROTOCOLS 3 "February 03, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROTOCOLS 3 "February 03, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROTOCOLS \- set allowed protocols
diff --git a/docs/libcurl/opts/CURLOPT_PROXY.3 b/docs/libcurl/opts/CURLOPT_PROXY.3
index 525e653b..dda6accb 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY 3 "August 24, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROXY 3 "August 24, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY \- set proxy to use
diff --git a/docs/libcurl/opts/CURLOPT_PROXYAUTH.3 b/docs/libcurl/opts/CURLOPT_PROXYAUTH.3
index 9a92b153..5660ea5f 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYAUTH.3
+++ b/docs/libcurl/opts/CURLOPT_PROXYAUTH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXYAUTH 3 "May 30, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROXYAUTH 3 "May 30, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXYAUTH \- set HTTP proxy authentication methods to try
diff --git a/docs/libcurl/opts/CURLOPT_PROXYHEADER.3 b/docs/libcurl/opts/CURLOPT_PROXYHEADER.3
index b63ca47c..18f2b357 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYHEADER.3
+++ b/docs/libcurl/opts/CURLOPT_PROXYHEADER.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXYHEADER 3 "May 30, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROXYHEADER 3 "May 30, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXYHEADER \- custom HTTP headers to pass to proxy
diff --git a/docs/libcurl/opts/CURLOPT_PROXYPASSWORD.3 b/docs/libcurl/opts/CURLOPT_PROXYPASSWORD.3
index 5b12a4a7..d6335ba7 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYPASSWORD.3
+++ b/docs/libcurl/opts/CURLOPT_PROXYPASSWORD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXYPASSWORD 3 "May 30, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROXYPASSWORD 3 "May 30, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXYPASSWORD \- password to use with proxy authentication
diff --git a/docs/libcurl/opts/CURLOPT_PROXYPORT.3 b/docs/libcurl/opts/CURLOPT_PROXYPORT.3
index 01376d5a..4a28d9df 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYPORT.3
+++ b/docs/libcurl/opts/CURLOPT_PROXYPORT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXYPORT 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROXYPORT 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXYPORT \- port number the proxy listens on
diff --git a/docs/libcurl/opts/CURLOPT_PROXYTYPE.3 b/docs/libcurl/opts/CURLOPT_PROXYTYPE.3
index 05178b31..193179d5 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYTYPE.3
+++ b/docs/libcurl/opts/CURLOPT_PROXYTYPE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXYTYPE 3 "May 30, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROXYTYPE 3 "May 30, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXYTYPE \- proxy protocol type
diff --git a/docs/libcurl/opts/CURLOPT_PROXYUSERNAME.3 b/docs/libcurl/opts/CURLOPT_PROXYUSERNAME.3
index 1ed5f1bb..ed41c550 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYUSERNAME.3
+++ b/docs/libcurl/opts/CURLOPT_PROXYUSERNAME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXYUSERNAME 3 "May 30, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROXYUSERNAME 3 "May 30, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXYUSERNAME \- user name to use for proxy authentication
diff --git a/docs/libcurl/opts/CURLOPT_PROXYUSERPWD.3 b/docs/libcurl/opts/CURLOPT_PROXYUSERPWD.3
index 79b971fb..1ac3cf3d 100644
--- a/docs/libcurl/opts/CURLOPT_PROXYUSERPWD.3
+++ b/docs/libcurl/opts/CURLOPT_PROXYUSERPWD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXYUSERPWD 3 "May 30, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROXYUSERPWD 3 "May 30, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXYUSERPWD \- user name and password to use for proxy authentication
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_CAINFO.3 b/docs/libcurl/opts/CURLOPT_PROXY_CAINFO.3
index 2333b968..66dd195a 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_CAINFO.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_CAINFO.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_CAINFO 3 "April 17, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_CAINFO 3 "April 17, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_CAINFO \- path to proxy Certificate Authority (CA) bundle
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_CAPATH.3 b/docs/libcurl/opts/CURLOPT_PROXY_CAPATH.3
index f09320b1..701f7a67 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_CAPATH.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_CAPATH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_CAPATH 3 "April 17, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_CAPATH 3 "April 17, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_CAPATH \- specify directory holding proxy CA certificates
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_CRLFILE.3 b/docs/libcurl/opts/CURLOPT_PROXY_CRLFILE.3
index f64b353e..e3128433 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_CRLFILE.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_CRLFILE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_CRLFILE 3 "April 17, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_CRLFILE 3 "April 17, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_CRLFILE \- specify a proxy Certificate Revocation List file
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_KEYPASSWD.3 b/docs/libcurl/opts/CURLOPT_PROXY_KEYPASSWD.3
index fe025547..b3fe8d73 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_KEYPASSWD.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_KEYPASSWD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_KEYPASSWD 3 "April 17, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_KEYPASSWD 3 "April 17, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_KEYPASSWD \- set passphrase to proxy private key
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_PINNEDPUBLICKEY.3 b/docs/libcurl/opts/CURLOPT_PROXY_PINNEDPUBLICKEY.3
index 4f042079..440894a1 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_PINNEDPUBLICKEY.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_PINNEDPUBLICKEY.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_PINNEDPUBLICKEY 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_PINNEDPUBLICKEY 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_PINNEDPUBLICKEY \- set pinned public key for https proxy
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.3 b/docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.3
index a611668e..871dea33 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SERVICE_NAME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SERVICE_NAME 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SERVICE_NAME 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_SERVICE_NAME \- proxy authentication service name
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SSLCERT.3 b/docs/libcurl/opts/CURLOPT_PROXY_SSLCERT.3
index 6a4d6821..21fc124f 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SSLCERT.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SSLCERT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SSLCERT 3 "April 17, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SSLCERT 3 "April 17, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_SSLCERT \- set SSL proxy client certificate
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SSLCERTTYPE.3 b/docs/libcurl/opts/CURLOPT_PROXY_SSLCERTTYPE.3
index 42e2c23c..afb3d735 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SSLCERTTYPE.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SSLCERTTYPE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SSLCERTTYPE 3 "April 17, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SSLCERTTYPE 3 "April 17, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_SSLCERTTYPE \- specify type of the proxy client SSL certificate
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SSLKEY.3 b/docs/libcurl/opts/CURLOPT_PROXY_SSLKEY.3
index 488b5965..a9e4d2e5 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SSLKEY.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SSLKEY.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SSLKEY 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SSLKEY 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_SSLKEY \- specify private keyfile for TLS and SSL proxy client cert
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SSLKEYTYPE.3 b/docs/libcurl/opts/CURLOPT_PROXY_SSLKEYTYPE.3
index fa573f42..85861454 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SSLKEYTYPE.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SSLKEYTYPE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SSLKEYTYPE 3 "April 17, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SSLKEYTYPE 3 "April 17, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_SSLKEYTYPE \- set type of the proxy private key file
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SSLVERSION.3 b/docs/libcurl/opts/CURLOPT_PROXY_SSLVERSION.3
index 57ef2f85..df478f37 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SSLVERSION.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SSLVERSION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SSLVERSION 3 "January 10, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SSLVERSION 3 "September 23, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_SSLVERSION \- set preferred proxy TLS/SSL version
@@ -94,4 +94,3 @@ Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
.SH "SEE ALSO"
.BR CURLOPT_USE_SSL "(3), " CURLOPT_HTTP_VERSION "(3), "
.BR CURLOPT_IPRESOLVE "(3) " CURLOPT_SSLVERSION "(3), "
-
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SSL_CIPHER_LIST.3 b/docs/libcurl/opts/CURLOPT_PROXY_SSL_CIPHER_LIST.3
index d8fbdd42..5ad69b9e 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SSL_CIPHER_LIST.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SSL_CIPHER_LIST.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SSL_CIPHER_LIST 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SSL_CIPHER_LIST 3 "October 10, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_SSL_CIPHER_LIST \- specify ciphers to use for proxy TLS
@@ -77,5 +77,6 @@ If built TLS enabled.
Returns CURLE_OK if TLS is supported, CURLE_UNKNOWN_OPTION if not, or
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
.SH "SEE ALSO"
-.BR CURLOPT_PROXY_SSLVERSION "(3), " CURLOPT_USE_SSL "(3), "
+.BR CURLOPT_PROXY_TLS13_CIPHERS "(3), " CURLOPT_PROXY_SSLVERSION "(3), "
+.BR CURLOPT_SSL_CIPHER_LIST "(3), " CURLOPT_TLS13_CIPHERS "(3), "
.BR CURLOPT_SSLVERSION "(3), "
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SSL_OPTIONS.3 b/docs/libcurl/opts/CURLOPT_PROXY_SSL_OPTIONS.3
index 54c04c7f..8fa3410a 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SSL_OPTIONS.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SSL_OPTIONS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SSL_OPTIONS 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SSL_OPTIONS 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_SSL_OPTIONS \- set proxy SSL behavior options
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYHOST.3 b/docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYHOST.3
index d6438110..ad111f3b 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYHOST.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYHOST.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SSL_VERIFYHOST 3 "May 02, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SSL_VERIFYHOST 3 "May 02, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_SSL_VERIFYHOST \- verify the proxy certificate's name against host
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYPEER.3 b/docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYPEER.3
index 0b65d5ae..a657daa4 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYPEER.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_SSL_VERIFYPEER.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_SSL_VERIFYPEER 3 "December 16, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_SSL_VERIFYPEER 3 "December 16, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_SSL_VERIFYPEER \- verify the proxy's SSL certificate
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_TLS13_CIPHERS.3 b/docs/libcurl/opts/CURLOPT_PROXY_TLS13_CIPHERS.3
index 3fc28785..eeb90e22 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_TLS13_CIPHERS.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_TLS13_CIPHERS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_TLS13_CIPHERS 3 "May 29, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_TLS13_CIPHERS 3 "October 10, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_TLS13_CIPHERS \- ciphers suites for proxy TLS 1.3
@@ -61,4 +61,6 @@ Available when built with OpenSSL >= 1.1.1.
.SH RETURN VALUE
Returns CURLE_OK if supported, CURLE_NOT_BUILT_IN otherwise.
.SH "SEE ALSO"
-.BR CURLOPT_SSLVERSION "(3), " CURLOPT_TLS13_CIPHERS "(3), "
+.BR CURLOPT_PROXY_SSL_CIPHER_LIST "(3), " CURLOPT_PROXY_SSLVERSION "(3), "
+.BR CURLOPT_SSL_CIPHER_LIST "(3), " CURLOPT_TLS13_CIPHERS "(3), "
+.BR CURLOPT_SSLVERSION "(3), "
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_PASSWORD.3 b/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_PASSWORD.3
index cd0ed2fd..34c02db7 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_PASSWORD.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_PASSWORD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_TLSAUTH_PASSWORD 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_TLSAUTH_PASSWORD 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_TLSAUTH_PASSWORD \- password to use for proxy TLS authentication
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_TYPE.3 b/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_TYPE.3
index a06f5c26..33f91d77 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_TYPE.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_TYPE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_TLSAUTH_TYPE 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_TLSAUTH_TYPE 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_TLSAUTH_TYPE \- set proxy TLS authentication methods
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_USERNAME.3 b/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_USERNAME.3
index d1087097..cc80cb97 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_USERNAME.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_TLSAUTH_USERNAME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_TLSAUTH_USERNAME 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_TLSAUTH_USERNAME 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_TLSAUTH_USERNAME \- user name to use for proxy TLS authentication
diff --git a/docs/libcurl/opts/CURLOPT_PROXY_TRANSFER_MODE.3 b/docs/libcurl/opts/CURLOPT_PROXY_TRANSFER_MODE.3
index e8b9fd3d..35dfb086 100644
--- a/docs/libcurl/opts/CURLOPT_PROXY_TRANSFER_MODE.3
+++ b/docs/libcurl/opts/CURLOPT_PROXY_TRANSFER_MODE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PROXY_TRANSFER_MODE 3 "April 17, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PROXY_TRANSFER_MODE 3 "April 17, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PROXY_TRANSFER_MODE \- append FTP transfer mode to URL for proxy
diff --git a/docs/libcurl/opts/CURLOPT_PUT.3 b/docs/libcurl/opts/CURLOPT_PUT.3
index 08d20a0b..216c393f 100644
--- a/docs/libcurl/opts/CURLOPT_PUT.3
+++ b/docs/libcurl/opts/CURLOPT_PUT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_PUT 3 "April 17, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_PUT 3 "April 17, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_PUT \- make an HTTP PUT request
diff --git a/docs/libcurl/opts/CURLOPT_QUOTE.3 b/docs/libcurl/opts/CURLOPT_QUOTE.3
index 586610fa..be8537a5 100644
--- a/docs/libcurl/opts/CURLOPT_QUOTE.3
+++ b/docs/libcurl/opts/CURLOPT_QUOTE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_QUOTE 3 "April 17, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_QUOTE 3 "April 17, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_QUOTE \- (S)FTP commands to run before transfer
diff --git a/docs/libcurl/opts/CURLOPT_RANDOM_FILE.3 b/docs/libcurl/opts/CURLOPT_RANDOM_FILE.3
index 31b0a9fe..a9972e29 100644
--- a/docs/libcurl/opts/CURLOPT_RANDOM_FILE.3
+++ b/docs/libcurl/opts/CURLOPT_RANDOM_FILE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RANDOM_FILE 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_RANDOM_FILE 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_RANDOM_FILE \- specify a source for random data
diff --git a/docs/libcurl/opts/CURLOPT_RANGE.3 b/docs/libcurl/opts/CURLOPT_RANGE.3
index fefefc94..eb5c414e 100644
--- a/docs/libcurl/opts/CURLOPT_RANGE.3
+++ b/docs/libcurl/opts/CURLOPT_RANGE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RANGE 3 "December 21, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_RANGE 3 "December 21, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_RANGE \- set byte range to request
diff --git a/docs/libcurl/opts/CURLOPT_READDATA.3 b/docs/libcurl/opts/CURLOPT_READDATA.3
index f4ff4e67..97c4bddb 100644
--- a/docs/libcurl/opts/CURLOPT_READDATA.3
+++ b/docs/libcurl/opts/CURLOPT_READDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_READDATA 3 "August 11, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_READDATA 3 "August 11, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_READDATA \- custom pointer passed to the read callback
diff --git a/docs/libcurl/opts/CURLOPT_READFUNCTION.3 b/docs/libcurl/opts/CURLOPT_READFUNCTION.3
index 8e44d138..dca61c4b 100644
--- a/docs/libcurl/opts/CURLOPT_READFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_READFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_READFUNCTION 3 "August 11, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_READFUNCTION 3 "August 11, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_READFUNCTION \- read callback for data uploads
diff --git a/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.3 b/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.3
index 6399ba79..90742c1c 100644
--- a/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.3
+++ b/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_REDIR_PROTOCOLS 3 "September 21, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_REDIR_PROTOCOLS 3 "September 21, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_REDIR_PROTOCOLS \- set protocols allowed to redirect to
diff --git a/docs/libcurl/opts/CURLOPT_REFERER.3 b/docs/libcurl/opts/CURLOPT_REFERER.3
index ca685128..00cc4971 100644
--- a/docs/libcurl/opts/CURLOPT_REFERER.3
+++ b/docs/libcurl/opts/CURLOPT_REFERER.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_REFERER 3 "December 21, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_REFERER 3 "December 21, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_REFERER \- set the HTTP referer header
diff --git a/docs/libcurl/opts/CURLOPT_REQUEST_TARGET.3 b/docs/libcurl/opts/CURLOPT_REQUEST_TARGET.3
index 0323685b..b11d20f9 100644
--- a/docs/libcurl/opts/CURLOPT_REQUEST_TARGET.3
+++ b/docs/libcurl/opts/CURLOPT_REQUEST_TARGET.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_REQUEST_TARGET 3 "June 21, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_REQUEST_TARGET 3 "June 21, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_REQUEST_TARGET \- specify an alternative target for this request
diff --git a/docs/libcurl/opts/CURLOPT_RESOLVE.3 b/docs/libcurl/opts/CURLOPT_RESOLVE.3
index e776697c..83363c4a 100644
--- a/docs/libcurl/opts/CURLOPT_RESOLVE.3
+++ b/docs/libcurl/opts/CURLOPT_RESOLVE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RESOLVE 3 "May 30, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_RESOLVE 3 "May 30, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_RESOLVE \- provide custom host name to IP address resolves
diff --git a/docs/libcurl/opts/CURLOPT_RESOLVER_START_DATA.3 b/docs/libcurl/opts/CURLOPT_RESOLVER_START_DATA.3
index 40c7c760..a59b206d 100644
--- a/docs/libcurl/opts/CURLOPT_RESOLVER_START_DATA.3
+++ b/docs/libcurl/opts/CURLOPT_RESOLVER_START_DATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RESOLVER_START_DATA 3 "February 14, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_RESOLVER_START_DATA 3 "February 14, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_RESOLVER_START_DATA \- custom pointer passed to the resolver start callback
diff --git a/docs/libcurl/opts/CURLOPT_RESOLVER_START_FUNCTION.3 b/docs/libcurl/opts/CURLOPT_RESOLVER_START_FUNCTION.3
index 66cda9a2..94027bb1 100644
--- a/docs/libcurl/opts/CURLOPT_RESOLVER_START_FUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_RESOLVER_START_FUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RESOLVER_START_FUNCTION 3 "February 14, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_RESOLVER_START_FUNCTION 3 "February 14, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_RESOLVER_START_FUNCTION \- set callback to be called before a new resolve request is started
diff --git a/docs/libcurl/opts/CURLOPT_RESUME_FROM.3 b/docs/libcurl/opts/CURLOPT_RESUME_FROM.3
index c4a30d34..ffb3766b 100644
--- a/docs/libcurl/opts/CURLOPT_RESUME_FROM.3
+++ b/docs/libcurl/opts/CURLOPT_RESUME_FROM.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RESUME_FROM 3 "February 03, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_RESUME_FROM 3 "February 03, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_RESUME_FROM \- set a point to resume transfer from
diff --git a/docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.3 b/docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.3
index 79758a4e..7b46abfa 100644
--- a/docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.3
+++ b/docs/libcurl/opts/CURLOPT_RESUME_FROM_LARGE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RESUME_FROM_LARGE 3 "February 03, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_RESUME_FROM_LARGE 3 "February 03, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_RESUME_FROM_LARGE \- set a point to resume transfer from
diff --git a/docs/libcurl/opts/CURLOPT_RTSP_CLIENT_CSEQ.3 b/docs/libcurl/opts/CURLOPT_RTSP_CLIENT_CSEQ.3
index d50ec755..640cc285 100644
--- a/docs/libcurl/opts/CURLOPT_RTSP_CLIENT_CSEQ.3
+++ b/docs/libcurl/opts/CURLOPT_RTSP_CLIENT_CSEQ.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RTSP_CLIENT_CSEQ 3 "April 17, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_RTSP_CLIENT_CSEQ 3 "April 17, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_RTSP_CLIENT_CSEQ \- set the RTSP client CSEQ number
diff --git a/docs/libcurl/opts/CURLOPT_RTSP_REQUEST.3 b/docs/libcurl/opts/CURLOPT_RTSP_REQUEST.3
index 69378971..715e8dd8 100644
--- a/docs/libcurl/opts/CURLOPT_RTSP_REQUEST.3
+++ b/docs/libcurl/opts/CURLOPT_RTSP_REQUEST.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RTSP_REQUEST 3 "April 17, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_RTSP_REQUEST 3 "April 17, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_RTSP_REQUEST \- specify RTSP request
diff --git a/docs/libcurl/opts/CURLOPT_RTSP_SERVER_CSEQ.3 b/docs/libcurl/opts/CURLOPT_RTSP_SERVER_CSEQ.3
index b132b9ff..f9d85175 100644
--- a/docs/libcurl/opts/CURLOPT_RTSP_SERVER_CSEQ.3
+++ b/docs/libcurl/opts/CURLOPT_RTSP_SERVER_CSEQ.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RTSP_SERVER_CSEQ 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_RTSP_SERVER_CSEQ 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_RTSP_SERVER_CSEQ \- set the RTSP server CSEQ number
diff --git a/docs/libcurl/opts/CURLOPT_RTSP_SESSION_ID.3 b/docs/libcurl/opts/CURLOPT_RTSP_SESSION_ID.3
index 4bf34aa3..b53daa50 100644
--- a/docs/libcurl/opts/CURLOPT_RTSP_SESSION_ID.3
+++ b/docs/libcurl/opts/CURLOPT_RTSP_SESSION_ID.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RTSP_SESSION_ID 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_RTSP_SESSION_ID 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_RTSP_SESSION_ID \- set RTSP session ID
diff --git a/docs/libcurl/opts/CURLOPT_RTSP_STREAM_URI.3 b/docs/libcurl/opts/CURLOPT_RTSP_STREAM_URI.3
index c1ad9b56..0c04029c 100644
--- a/docs/libcurl/opts/CURLOPT_RTSP_STREAM_URI.3
+++ b/docs/libcurl/opts/CURLOPT_RTSP_STREAM_URI.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RTSP_STREAM_URI 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_RTSP_STREAM_URI 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_RTSP_STREAM_URI \- set RTSP stream URI
diff --git a/docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.3 b/docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.3
index 83185bf9..2123c359 100644
--- a/docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.3
+++ b/docs/libcurl/opts/CURLOPT_RTSP_TRANSPORT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_RTSP_TRANSPORT 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_RTSP_TRANSPORT 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_RTSP_TRANSPORT \- set RTSP Transport: header
diff --git a/docs/libcurl/opts/CURLOPT_SASL_IR.3 b/docs/libcurl/opts/CURLOPT_SASL_IR.3
index 9baa2add..7da14432 100644
--- a/docs/libcurl/opts/CURLOPT_SASL_IR.3
+++ b/docs/libcurl/opts/CURLOPT_SASL_IR.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SASL_IR 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SASL_IR 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SASL_IR \- enable sending initial response in first packet
diff --git a/docs/libcurl/opts/CURLOPT_SEEKDATA.3 b/docs/libcurl/opts/CURLOPT_SEEKDATA.3
index f39e57ff..c3d998c9 100644
--- a/docs/libcurl/opts/CURLOPT_SEEKDATA.3
+++ b/docs/libcurl/opts/CURLOPT_SEEKDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SEEKDATA 3 "August 12, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SEEKDATA 3 "August 12, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SEEKDATA \- custom pointer passed to the seek callback
diff --git a/docs/libcurl/opts/CURLOPT_SEEKFUNCTION.3 b/docs/libcurl/opts/CURLOPT_SEEKFUNCTION.3
index 446cc7f9..68197997 100644
--- a/docs/libcurl/opts/CURLOPT_SEEKFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_SEEKFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SEEKFUNCTION 3 "April 17, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SEEKFUNCTION 3 "April 17, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SEEKFUNCTION \- user callback for seeking in input stream
diff --git a/docs/libcurl/opts/CURLOPT_SERVICE_NAME.3 b/docs/libcurl/opts/CURLOPT_SERVICE_NAME.3
index e25c586d..60c4ba7c 100644
--- a/docs/libcurl/opts/CURLOPT_SERVICE_NAME.3
+++ b/docs/libcurl/opts/CURLOPT_SERVICE_NAME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SERVICE_NAME 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SERVICE_NAME 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SERVICE_NAME \- authentication service name
diff --git a/docs/libcurl/opts/CURLOPT_SHARE.3 b/docs/libcurl/opts/CURLOPT_SHARE.3
index f10a159d..8b7338c9 100644
--- a/docs/libcurl/opts/CURLOPT_SHARE.3
+++ b/docs/libcurl/opts/CURLOPT_SHARE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SHARE 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SHARE 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SHARE \- specify share handle to use
diff --git a/docs/libcurl/opts/CURLOPT_SOCKOPTDATA.3 b/docs/libcurl/opts/CURLOPT_SOCKOPTDATA.3
index bfab0eaf..9cb475e3 100644
--- a/docs/libcurl/opts/CURLOPT_SOCKOPTDATA.3
+++ b/docs/libcurl/opts/CURLOPT_SOCKOPTDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SOCKOPTDATA 3 "May 15, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SOCKOPTDATA 3 "May 15, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SOCKOPTDATA \- custom pointer to pass to sockopt callback
diff --git a/docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.3 b/docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.3
index db3f03b5..faf8b140 100644
--- a/docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SOCKOPTFUNCTION 3 "May 15, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SOCKOPTFUNCTION 3 "May 15, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SOCKOPTFUNCTION \- set callback for setting socket options
diff --git a/docs/libcurl/opts/CURLOPT_SOCKS5_AUTH.3 b/docs/libcurl/opts/CURLOPT_SOCKS5_AUTH.3
index 6ca8f635..90650c09 100644
--- a/docs/libcurl/opts/CURLOPT_SOCKS5_AUTH.3
+++ b/docs/libcurl/opts/CURLOPT_SOCKS5_AUTH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SOCKS5_AUTH 3 "April 27, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SOCKS5_AUTH 3 "April 27, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SOCKS5_AUTH \- set allowed methods for SOCKS5 proxy authentication
diff --git a/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_NEC.3 b/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_NEC.3
index 7d585a4d..5a777002 100644
--- a/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_NEC.3
+++ b/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_NEC.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SOCKS5_GSSAPI_NEC 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SOCKS5_GSSAPI_NEC 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SOCKS5_GSSAPI_NEC \- set socks proxy gssapi negotiation protection
diff --git a/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.3 b/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.3
index 255ff08e..9e4c0f87 100644
--- a/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.3
+++ b/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SOCKS5_GSSAPI_SERVICE 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SOCKS5_GSSAPI_SERVICE 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SOCKS5_GSSAPI_SERVICE \- SOCKS5 proxy authentication service name
diff --git a/docs/libcurl/opts/CURLOPT_SSH_AUTH_TYPES.3 b/docs/libcurl/opts/CURLOPT_SSH_AUTH_TYPES.3
index e33d0b1f..ad498d8a 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_AUTH_TYPES.3
+++ b/docs/libcurl/opts/CURLOPT_SSH_AUTH_TYPES.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSH_AUTH_TYPES 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SSH_AUTH_TYPES 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSH_AUTH_TYPES \- set desired auth types for SFTP and SCP
diff --git a/docs/libcurl/opts/CURLOPT_SSH_COMPRESSION.3 b/docs/libcurl/opts/CURLOPT_SSH_COMPRESSION.3
index 816908ca..480853b8 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_COMPRESSION.3
+++ b/docs/libcurl/opts/CURLOPT_SSH_COMPRESSION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSH_COMPRESSION 3 "August 10, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SSH_COMPRESSION 3 "August 10, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSH_COMPRESSION \- enables compression / decompression of SSH traffic
diff --git a/docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.3 b/docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.3
index 2bd98cd4..9439542c 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.3
+++ b/docs/libcurl/opts/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 \- checksum of SSH server public key
diff --git a/docs/libcurl/opts/CURLOPT_SSH_KEYDATA.3 b/docs/libcurl/opts/CURLOPT_SSH_KEYDATA.3
index 8ab46cea..7f742b94 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_KEYDATA.3
+++ b/docs/libcurl/opts/CURLOPT_SSH_KEYDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSH_KEYDATA 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SSH_KEYDATA 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSH_KEYDATA \- pointer to pass to the SSH key callback
diff --git a/docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.3 b/docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.3
index 2763bdaa..721d047d 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_SSH_KEYFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSH_KEYFUNCTION 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SSH_KEYFUNCTION 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSH_KEYFUNCTION \- callback for known host matching logic
diff --git a/docs/libcurl/opts/CURLOPT_SSH_KNOWNHOSTS.3 b/docs/libcurl/opts/CURLOPT_SSH_KNOWNHOSTS.3
index 022c8a5f..12b29a8c 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_KNOWNHOSTS.3
+++ b/docs/libcurl/opts/CURLOPT_SSH_KNOWNHOSTS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSH_KNOWNHOSTS 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SSH_KNOWNHOSTS 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSH_KNOWNHOSTS \- file name holding the SSH known hosts
diff --git a/docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.3 b/docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.3
index 3ecdd8db..ef0728da 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.3
+++ b/docs/libcurl/opts/CURLOPT_SSH_PRIVATE_KEYFILE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSH_PRIVATE_KEYFILE 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SSH_PRIVATE_KEYFILE 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSH_PRIVATE_KEYFILE \- set private key file for SSH auth
diff --git a/docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.3 b/docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.3
index 1496f299..6f1e7f10 100644
--- a/docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.3
+++ b/docs/libcurl/opts/CURLOPT_SSH_PUBLIC_KEYFILE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSH_PUBLIC_KEYFILE 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SSH_PUBLIC_KEYFILE 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSH_PUBLIC_KEYFILE \- set public key file for SSH auth
diff --git a/docs/libcurl/opts/CURLOPT_SSLCERT.3 b/docs/libcurl/opts/CURLOPT_SSLCERT.3
index 158a64e1..1f624580 100644
--- a/docs/libcurl/opts/CURLOPT_SSLCERT.3
+++ b/docs/libcurl/opts/CURLOPT_SSLCERT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSLCERT 3 "April 18, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SSLCERT 3 "April 18, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSLCERT \- set SSL client certificate
diff --git a/docs/libcurl/opts/CURLOPT_SSLCERTTYPE.3 b/docs/libcurl/opts/CURLOPT_SSLCERTTYPE.3
index 26631cbf..dbf6d62f 100644
--- a/docs/libcurl/opts/CURLOPT_SSLCERTTYPE.3
+++ b/docs/libcurl/opts/CURLOPT_SSLCERTTYPE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSLCERTTYPE 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SSLCERTTYPE 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSLCERTTYPE \- specify type of the client SSL certificate
diff --git a/docs/libcurl/opts/CURLOPT_SSLENGINE.3 b/docs/libcurl/opts/CURLOPT_SSLENGINE.3
index 1573aab8..4cf91c72 100644
--- a/docs/libcurl/opts/CURLOPT_SSLENGINE.3
+++ b/docs/libcurl/opts/CURLOPT_SSLENGINE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSLENGINE 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SSLENGINE 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSLENGINE \- set SSL engine identifier
diff --git a/docs/libcurl/opts/CURLOPT_SSLENGINE_DEFAULT.3 b/docs/libcurl/opts/CURLOPT_SSLENGINE_DEFAULT.3
index 2088d278..52058d68 100644
--- a/docs/libcurl/opts/CURLOPT_SSLENGINE_DEFAULT.3
+++ b/docs/libcurl/opts/CURLOPT_SSLENGINE_DEFAULT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSLENGINE_DEFAULT 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SSLENGINE_DEFAULT 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSLENGINE_DEFAULT \- make SSL engine default
diff --git a/docs/libcurl/opts/CURLOPT_SSLKEY.3 b/docs/libcurl/opts/CURLOPT_SSLKEY.3
index 77e8230e..f22cc2d9 100644
--- a/docs/libcurl/opts/CURLOPT_SSLKEY.3
+++ b/docs/libcurl/opts/CURLOPT_SSLKEY.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSLKEY 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SSLKEY 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSLKEY \- specify private keyfile for TLS and SSL client cert
diff --git a/docs/libcurl/opts/CURLOPT_SSLKEYTYPE.3 b/docs/libcurl/opts/CURLOPT_SSLKEYTYPE.3
index 822f7485..a100cdd7 100644
--- a/docs/libcurl/opts/CURLOPT_SSLKEYTYPE.3
+++ b/docs/libcurl/opts/CURLOPT_SSLKEYTYPE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSLKEYTYPE 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SSLKEYTYPE 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSLKEYTYPE \- set type of the private key file
diff --git a/docs/libcurl/opts/CURLOPT_SSLVERSION.3 b/docs/libcurl/opts/CURLOPT_SSLVERSION.3
index 64e85b40..eaaac03b 100644
--- a/docs/libcurl/opts/CURLOPT_SSLVERSION.3
+++ b/docs/libcurl/opts/CURLOPT_SSLVERSION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSLVERSION 3 "June 28, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SSLVERSION 3 "October 10, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSLVERSION \- set preferred TLS/SSL version
@@ -34,13 +34,13 @@ use.
The SSL and TLS versions have typically developed from the most insecure
version to be more and more secure in this order through history: SSL v2,
-SSLv3, TLS v1.0, TSL v1.1, TSL v1.2 and the most recent TLS v1.3.
+SSLv3, TLS v1.0, TLS v1.1, TLS v1.2 and the most recent TLS v1.3.
Use one of the available defines for this purpose. The available options are:
.RS
.IP CURL_SSLVERSION_DEFAULT
-The default acceptable version range. The mimimum acceptable version is by
-default TLS 1.0 since 7.39.0 (unless the TLS library has a stricter rule).
+The default acceptable version range. The minimum acceptable version is by
+default TLS v1.0 since 7.39.0 (unless the TLS library has a stricter rule).
.IP CURL_SSLVERSION_TLSv1
TLS v1.0 or later
.IP CURL_SSLVERSION_SSLv2
@@ -65,7 +65,7 @@ The MAX macros are not supported for SSL backends axTLS or wolfSSL.
.IP CURL_SSLVERSION_MAX_DEFAULT
The flag defines the maximum supported TLS version by libcurl, or the default
value from the SSL library is used. libcurl will use a sensible default
-maximum, which was TLS 1.2 up to before 7.61.0 and is TLS 1.3 since then -
+maximum, which was TLS v1.2 up to before 7.61.0 and is TLS v1.3 since then -
assuming the TLS library support it. (Added in 7.54.0)
.IP CURL_SSLVERSION_MAX_TLSv1_0
The flag defines maximum supported TLS version as TLS v1.0.
@@ -106,4 +106,4 @@ SSLv3 is disabled by default since 7.39.0.
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
.SH "SEE ALSO"
.BR CURLOPT_USE_SSL "(3), " CURLOPT_HTTP_VERSION "(3), "
-.BR CURLOPT_IPRESOLVE "(3) "
+.BR CURLOPT_PROXY_SSLVERSION "(3), " CURLOPT_IPRESOLVE "(3) "
diff --git a/docs/libcurl/opts/CURLOPT_SSL_CIPHER_LIST.3 b/docs/libcurl/opts/CURLOPT_SSL_CIPHER_LIST.3
index a6ef4c3d..cd0e1348 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_CIPHER_LIST.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_CIPHER_LIST.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_CIPHER_LIST 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SSL_CIPHER_LIST 3 "October 10, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSL_CIPHER_LIST \- specify ciphers to use for TLS
@@ -73,4 +73,6 @@ If built TLS enabled.
Returns CURLE_OK if TLS is supported, CURLE_UNKNOWN_OPTION if not, or
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
.SH "SEE ALSO"
-.BR CURLOPT_SSLVERSION "(3), " CURLOPT_USE_SSL "(3), "
+.BR CURLOPT_TLS13_CIPHERS "(3), " CURLOPT_SSLVERSION "(3), "
+.BR CURLOPT_PROXY_SSL_CIPHER_LIST "(3), " CURLOPT_PROXY_TLS13_CIPHERS "(3), "
+.BR CURLOPT_USE_SSL "(3), "
diff --git a/docs/libcurl/opts/CURLOPT_SSL_CTX_DATA.3 b/docs/libcurl/opts/CURLOPT_SSL_CTX_DATA.3
index 29c2c4c5..56348aba 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_CTX_DATA.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_CTX_DATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_CTX_DATA 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SSL_CTX_DATA 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSL_CTX_DATA \- custom pointer passed to ssl_ctx callback
diff --git a/docs/libcurl/opts/CURLOPT_SSL_CTX_FUNCTION.3 b/docs/libcurl/opts/CURLOPT_SSL_CTX_FUNCTION.3
index bb9d8922..40a02827 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_CTX_FUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_CTX_FUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_CTX_FUNCTION 3 "August 29, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SSL_CTX_FUNCTION 3 "August 29, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSL_CTX_FUNCTION \- SSL context callback for OpenSSL, wolfSSL/CyaSSL or mbedTLS
diff --git a/docs/libcurl/opts/CURLOPT_SSL_ENABLE_ALPN.3 b/docs/libcurl/opts/CURLOPT_SSL_ENABLE_ALPN.3
index 23471ae5..a645fee5 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_ENABLE_ALPN.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_ENABLE_ALPN.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_ENABLE_ALPN 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SSL_ENABLE_ALPN 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSL_ENABLE_ALPN \- enable ALPN
diff --git a/docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.3 b/docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.3
index ba3e1a40..bf10ebec 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_ENABLE_NPN 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SSL_ENABLE_NPN 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSL_ENABLE_NPN \- enable NPN
diff --git a/docs/libcurl/opts/CURLOPT_SSL_FALSESTART.3 b/docs/libcurl/opts/CURLOPT_SSL_FALSESTART.3
index 8576c7a5..5d6df3ca 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_FALSESTART.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_FALSESTART.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_FALSESTART 3 "May 15, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SSL_FALSESTART 3 "May 15, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSL_FALSESTART \- enable TLS false start
diff --git a/docs/libcurl/opts/CURLOPT_SSL_OPTIONS.3 b/docs/libcurl/opts/CURLOPT_SSL_OPTIONS.3
index d781434e..ee9ebf7d 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_OPTIONS.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_OPTIONS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_OPTIONS 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SSL_OPTIONS 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSL_OPTIONS \- set SSL behavior options
diff --git a/docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.3 b/docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.3
index 790e0597..0456478d 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_SESSIONID_CACHE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_SESSIONID_CACHE 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SSL_SESSIONID_CACHE 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSL_SESSIONID_CACHE \- enable/disable use of the SSL session-ID cache
diff --git a/docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.3 b/docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.3
index 3077023e..b39daafc 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_VERIFYHOST.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_VERIFYHOST 3 "February 02, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SSL_VERIFYHOST 3 "February 02, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSL_VERIFYHOST \- verify the certificate's name against host
diff --git a/docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.3 b/docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.3
index b9d0fa00..81e27807 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_VERIFYPEER.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_VERIFYPEER 3 "June 24, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SSL_VERIFYPEER 3 "June 24, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSL_VERIFYPEER \- verify the peer's SSL certificate
diff --git a/docs/libcurl/opts/CURLOPT_SSL_VERIFYSTATUS.3 b/docs/libcurl/opts/CURLOPT_SSL_VERIFYSTATUS.3
index 125fbc70..7822cb90 100644
--- a/docs/libcurl/opts/CURLOPT_SSL_VERIFYSTATUS.3
+++ b/docs/libcurl/opts/CURLOPT_SSL_VERIFYSTATUS.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2018, 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
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SSL_VERIFYSTATUS 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SSL_VERIFYSTATUS 3 "October 09, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SSL_VERIFYSTATUS \- verify the certificate's status
@@ -45,7 +45,7 @@ All TLS based protocols: HTTPS, FTPS, IMAPS, POP3S, SMTPS etc.
CURL *curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/");
- /* ask for OSCP stapling! */
+ /* ask for OCSP stapling! */
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYSTATUS, 1L);
ret = curl_easy_perform(curl);
curl_easy_cleanup(curl);
diff --git a/docs/libcurl/opts/CURLOPT_STDERR.3 b/docs/libcurl/opts/CURLOPT_STDERR.3
index d120b670..16efa5d0 100644
--- a/docs/libcurl/opts/CURLOPT_STDERR.3
+++ b/docs/libcurl/opts/CURLOPT_STDERR.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_STDERR 3 "February 03, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_STDERR 3 "February 03, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_STDERR \- redirect stderr to another stream
diff --git a/docs/libcurl/opts/CURLOPT_STREAM_DEPENDS.3 b/docs/libcurl/opts/CURLOPT_STREAM_DEPENDS.3
index 6997456d..8bc9f2a4 100644
--- a/docs/libcurl/opts/CURLOPT_STREAM_DEPENDS.3
+++ b/docs/libcurl/opts/CURLOPT_STREAM_DEPENDS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_STREAM_DEPENDS 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_STREAM_DEPENDS 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_STREAM_DEPENDS \- set stream this transfer depends on
diff --git a/docs/libcurl/opts/CURLOPT_STREAM_DEPENDS_E.3 b/docs/libcurl/opts/CURLOPT_STREAM_DEPENDS_E.3
index b14be3af..c5c11d95 100644
--- a/docs/libcurl/opts/CURLOPT_STREAM_DEPENDS_E.3
+++ b/docs/libcurl/opts/CURLOPT_STREAM_DEPENDS_E.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_STREAM_DEPENDS_E 3 "April 17, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_STREAM_DEPENDS_E 3 "April 17, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_STREAM_DEPENDS_E \- set stream this transfer depends on exclusively
diff --git a/docs/libcurl/opts/CURLOPT_STREAM_WEIGHT.3 b/docs/libcurl/opts/CURLOPT_STREAM_WEIGHT.3
index 90b6708c..f124e0a0 100644
--- a/docs/libcurl/opts/CURLOPT_STREAM_WEIGHT.3
+++ b/docs/libcurl/opts/CURLOPT_STREAM_WEIGHT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_STREAM_WEIGHT 3 "April 17, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_STREAM_WEIGHT 3 "April 17, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_STREAM_WEIGHT \- set numerical stream weight
diff --git a/docs/libcurl/opts/CURLOPT_SUPPRESS_CONNECT_HEADERS.3 b/docs/libcurl/opts/CURLOPT_SUPPRESS_CONNECT_HEADERS.3
index 15a31c3a..1e79b517 100644
--- a/docs/libcurl/opts/CURLOPT_SUPPRESS_CONNECT_HEADERS.3
+++ b/docs/libcurl/opts/CURLOPT_SUPPRESS_CONNECT_HEADERS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_SUPPRESS_CONNECT_HEADERS 3 "April 28, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_SUPPRESS_CONNECT_HEADERS 3 "April 28, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_SUPPRESS_CONNECT_HEADERS \- Suppress proxy CONNECT response headers from user callbacks
diff --git a/docs/libcurl/opts/CURLOPT_TCP_FASTOPEN.3 b/docs/libcurl/opts/CURLOPT_TCP_FASTOPEN.3
index d30a98a5..3fe32413 100644
--- a/docs/libcurl/opts/CURLOPT_TCP_FASTOPEN.3
+++ b/docs/libcurl/opts/CURLOPT_TCP_FASTOPEN.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TCP_FASTOPEN 3 "May 15, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_TCP_FASTOPEN 3 "May 15, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TCP_FASTOPEN \- enable TCP Fast Open
diff --git a/docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.3 b/docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.3
index 78875840..406758d8 100644
--- a/docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.3
+++ b/docs/libcurl/opts/CURLOPT_TCP_KEEPALIVE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TCP_KEEPALIVE 3 "February 03, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_TCP_KEEPALIVE 3 "February 03, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TCP_KEEPALIVE \- enable TCP keep-alive probing
diff --git a/docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.3 b/docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.3
index 9a621806..b74ae12b 100644
--- a/docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.3
+++ b/docs/libcurl/opts/CURLOPT_TCP_KEEPIDLE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TCP_KEEPIDLE 3 "January 02, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_TCP_KEEPIDLE 3 "January 02, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TCP_KEEPIDLE \- set TCP keep-alive idle time wait
diff --git a/docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.3 b/docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.3
index ea646b40..0ac88488 100644
--- a/docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.3
+++ b/docs/libcurl/opts/CURLOPT_TCP_KEEPINTVL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TCP_KEEPINTVL 3 "January 02, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_TCP_KEEPINTVL 3 "January 02, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TCP_KEEPINTVL \- set TCP keep-alive interval
diff --git a/docs/libcurl/opts/CURLOPT_TCP_NODELAY.3 b/docs/libcurl/opts/CURLOPT_TCP_NODELAY.3
index ba610a38..204109ce 100644
--- a/docs/libcurl/opts/CURLOPT_TCP_NODELAY.3
+++ b/docs/libcurl/opts/CURLOPT_TCP_NODELAY.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TCP_NODELAY 3 "January 15, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_TCP_NODELAY 3 "January 15, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TCP_NODELAY \- set the TCP_NODELAY option
diff --git a/docs/libcurl/opts/CURLOPT_TELNETOPTIONS.3 b/docs/libcurl/opts/CURLOPT_TELNETOPTIONS.3
index c18036d3..f9ad6d19 100644
--- a/docs/libcurl/opts/CURLOPT_TELNETOPTIONS.3
+++ b/docs/libcurl/opts/CURLOPT_TELNETOPTIONS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TELNETOPTIONS 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_TELNETOPTIONS 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TELNETOPTIONS \- custom telnet options
diff --git a/docs/libcurl/opts/CURLOPT_TFTP_BLKSIZE.3 b/docs/libcurl/opts/CURLOPT_TFTP_BLKSIZE.3
index 308d12f4..bf2a6adf 100644
--- a/docs/libcurl/opts/CURLOPT_TFTP_BLKSIZE.3
+++ b/docs/libcurl/opts/CURLOPT_TFTP_BLKSIZE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TFTP_BLKSIZE 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_TFTP_BLKSIZE 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TFTP_BLKSIZE \- TFTP block size
diff --git a/docs/libcurl/opts/CURLOPT_TFTP_NO_OPTIONS.3 b/docs/libcurl/opts/CURLOPT_TFTP_NO_OPTIONS.3
index 755b5c46..95819035 100644
--- a/docs/libcurl/opts/CURLOPT_TFTP_NO_OPTIONS.3
+++ b/docs/libcurl/opts/CURLOPT_TFTP_NO_OPTIONS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TFTP_NO_OPTIONS 3 "April 06, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_TFTP_NO_OPTIONS 3 "April 06, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TFTP_NO_OPTIONS \- Do not send TFTP options requests.
diff --git a/docs/libcurl/opts/CURLOPT_TIMECONDITION.3 b/docs/libcurl/opts/CURLOPT_TIMECONDITION.3
index cf6bcd27..bc5b278f 100644
--- a/docs/libcurl/opts/CURLOPT_TIMECONDITION.3
+++ b/docs/libcurl/opts/CURLOPT_TIMECONDITION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TIMECONDITION 3 "April 03, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_TIMECONDITION 3 "April 03, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TIMECONDITION \- select condition for a time request
diff --git a/docs/libcurl/opts/CURLOPT_TIMEOUT.3 b/docs/libcurl/opts/CURLOPT_TIMEOUT.3
index 846312f8..ab31ac90 100644
--- a/docs/libcurl/opts/CURLOPT_TIMEOUT.3
+++ b/docs/libcurl/opts/CURLOPT_TIMEOUT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TIMEOUT 3 "October 03, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_TIMEOUT 3 "October 03, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TIMEOUT \- set maximum time the request is allowed to take
diff --git a/docs/libcurl/opts/CURLOPT_TIMEOUT_MS.3 b/docs/libcurl/opts/CURLOPT_TIMEOUT_MS.3
index f909ad50..4d4499a7 100644
--- a/docs/libcurl/opts/CURLOPT_TIMEOUT_MS.3
+++ b/docs/libcurl/opts/CURLOPT_TIMEOUT_MS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TIMEOUT_MS 3 "February 03, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_TIMEOUT_MS 3 "September 23, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TIMEOUT_MS \- set maximum time the request is allowed to take
@@ -71,5 +71,5 @@ Always
.SH RETURN VALUE
Returns CURLE_OK
.SH "SEE ALSO"
-.BR CURLOPT_TIMEOUT "(3), "
+.BR CURLOPT_TIMEOUT "(3), "
.BR CURLOPT_CONNECTTIMEOUT "(3), " CURLOPT_LOW_SPEED_LIMIT "(3), "
diff --git a/docs/libcurl/opts/CURLOPT_TIMEVALUE.3 b/docs/libcurl/opts/CURLOPT_TIMEVALUE.3
index b31e9c03..39e0c761 100644
--- a/docs/libcurl/opts/CURLOPT_TIMEVALUE.3
+++ b/docs/libcurl/opts/CURLOPT_TIMEVALUE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TIMEVALUE 3 "January 25, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_TIMEVALUE 3 "January 25, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TIMEVALUE \- set time value for conditional
diff --git a/docs/libcurl/opts/CURLOPT_TIMEVALUE_LARGE.3 b/docs/libcurl/opts/CURLOPT_TIMEVALUE_LARGE.3
index 9645d1fa..ff3a2b87 100644
--- a/docs/libcurl/opts/CURLOPT_TIMEVALUE_LARGE.3
+++ b/docs/libcurl/opts/CURLOPT_TIMEVALUE_LARGE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TIMEVALUE_LARGE 3 "January 25, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_TIMEVALUE_LARGE 3 "January 25, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TIMEVALUE_LARGE \- set time value for conditional
diff --git a/docs/libcurl/opts/CURLOPT_TLS13_CIPHERS.3 b/docs/libcurl/opts/CURLOPT_TLS13_CIPHERS.3
index 2aaf1a0a..00cc2835 100644
--- a/docs/libcurl/opts/CURLOPT_TLS13_CIPHERS.3
+++ b/docs/libcurl/opts/CURLOPT_TLS13_CIPHERS.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TLS13_CIPHERS 3 "May 29, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_TLS13_CIPHERS 3 "October 10, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TLS13_CIPHERS \- specify ciphers suites to use for TLS 1.3
@@ -60,4 +60,6 @@ Available when built with OpenSSL >= 1.1.1.
.SH RETURN VALUE
Returns CURLE_OK if supported, CURLE_NOT_BUILT_IN otherwise.
.SH "SEE ALSO"
-.BR CURLOPT_SSLVERSION "(3), " CURLOPT_PROXY_TLS13_CIPHERS "(3), "
+.BR CURLOPT_SSL_CIPHER_LIST "(3), " CURLOPT_SSLVERSION "(3), "
+.BR CURLOPT_PROXY_SSL_CIPHER_LIST "(3), " CURLOPT_PROXY_TLS13_CIPHERS "(3), "
+.BR CURLOPT_PROXY_SSLVERSION "(3), " CURLOPT_USE_SSL "(3), "
diff --git a/docs/libcurl/opts/CURLOPT_TLSAUTH_PASSWORD.3 b/docs/libcurl/opts/CURLOPT_TLSAUTH_PASSWORD.3
index 2058b7b1..3d8df3f4 100644
--- a/docs/libcurl/opts/CURLOPT_TLSAUTH_PASSWORD.3
+++ b/docs/libcurl/opts/CURLOPT_TLSAUTH_PASSWORD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TLSAUTH_PASSWORD 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_TLSAUTH_PASSWORD 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TLSAUTH_PASSWORD \- password to use for TLS authentication
diff --git a/docs/libcurl/opts/CURLOPT_TLSAUTH_TYPE.3 b/docs/libcurl/opts/CURLOPT_TLSAUTH_TYPE.3
index 05756279..aadcacd3 100644
--- a/docs/libcurl/opts/CURLOPT_TLSAUTH_TYPE.3
+++ b/docs/libcurl/opts/CURLOPT_TLSAUTH_TYPE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TLSAUTH_TYPE 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_TLSAUTH_TYPE 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TLSAUTH_TYPE \- set TLS authentication methods
diff --git a/docs/libcurl/opts/CURLOPT_TLSAUTH_USERNAME.3 b/docs/libcurl/opts/CURLOPT_TLSAUTH_USERNAME.3
index 2bad0de1..9f6e89ae 100644
--- a/docs/libcurl/opts/CURLOPT_TLSAUTH_USERNAME.3
+++ b/docs/libcurl/opts/CURLOPT_TLSAUTH_USERNAME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TLSAUTH_USERNAME 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_TLSAUTH_USERNAME 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TLSAUTH_USERNAME \- user name to use for TLS authentication
diff --git a/docs/libcurl/opts/CURLOPT_TRANSFERTEXT.3 b/docs/libcurl/opts/CURLOPT_TRANSFERTEXT.3
index f18f0184..e3aeef8f 100644
--- a/docs/libcurl/opts/CURLOPT_TRANSFERTEXT.3
+++ b/docs/libcurl/opts/CURLOPT_TRANSFERTEXT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TRANSFERTEXT 3 "May 31, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_TRANSFERTEXT 3 "May 31, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TRANSFERTEXT \- request a text based transfer for FTP
diff --git a/docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING.3 b/docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING.3
index e3bf10de..5abc972b 100644
--- a/docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING.3
+++ b/docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_TRANSFER_ENCODING 3 "May 15, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_TRANSFER_ENCODING 3 "May 15, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_TRANSFER_ENCODING \- ask for HTTP Transfer Encoding
diff --git a/docs/libcurl/opts/CURLOPT_UNIX_SOCKET_PATH.3 b/docs/libcurl/opts/CURLOPT_UNIX_SOCKET_PATH.3
index 5d232072..a581c0f7 100644
--- a/docs/libcurl/opts/CURLOPT_UNIX_SOCKET_PATH.3
+++ b/docs/libcurl/opts/CURLOPT_UNIX_SOCKET_PATH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_UNIX_SOCKET_PATH 3 "April 17, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_UNIX_SOCKET_PATH 3 "April 17, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_UNIX_SOCKET_PATH \- set Unix domain socket
diff --git a/docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.3 b/docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.3
index 234e324c..d5b4da39 100644
--- a/docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.3
+++ b/docs/libcurl/opts/CURLOPT_UNRESTRICTED_AUTH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_UNRESTRICTED_AUTH 3 "May 15, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_UNRESTRICTED_AUTH 3 "May 15, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_UNRESTRICTED_AUTH \- send credentials to other hosts too
diff --git a/docs/libcurl/opts/CURLOPT_UPKEEP_INTERVAL_MS.3 b/docs/libcurl/opts/CURLOPT_UPKEEP_INTERVAL_MS.3
new file mode 100644
index 00000000..91eea1ba
--- /dev/null
+++ b/docs/libcurl/opts/CURLOPT_UPKEEP_INTERVAL_MS.3
@@ -0,0 +1,73 @@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 1998 - 2018, 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 https://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.
+.\" *
+.\" **************************************************************************
+.\"
+.TH CURLOPT_UPKEEP_INTERVAL_MS 3 "31 Oct 2018" "libcurl 7.62.0" "curl_easy_setopt options"
+.SH NAME
+CURLOPT_UPKEEP_INTERVAL_MS \- connection upkeep interval
+.SH SYNOPSIS
+#include <curl/curl.h>
+
+CURLcode curl_easy_setopt(CURL *handle, CURLOPT_UPKEEP_INTERVAL_MS, long upkeep_interval_ms);
+.SH DESCRIPTION
+Some protocols have "connection upkeep" mechanisms. These mechanisms usually
+send some traffic on existing connections in order to keep them alive; this
+can prevent connections from being closed due to overzealous firewalls, for
+example.
+
+The user needs to explicitly call \fIcurl_easy_upkeep(3)\fP in order to
+perform the upkeep work.
+
+Currently the only protocol with a connection upkeep mechanism is HTTP/2: when
+the connection upkeep interval is exceeded and \fIcurl_easy_upkeep(3)\fP
+is called, an HTTP/2 PING frame is sent on the connection.
+
+.SH DEFAULT
+CURL_UPKEEP_INTERVAL_DEFAULT (currently defined as 60000L, which is 60 seconds)
+.SH EXAMPLE
+.nf
+CURL *curl = curl_easy_init();
+if(curl) {
+ /* Make a connection to an HTTP/2 server. */
+ curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
+
+ /* Set the interval to 30000ms / 30s */
+ curl_easy_setopt(curl, CURLOPT_UPKEEP_INTERVAL_MS, 30000L);
+
+ curl_easy_perform(curl);
+
+ /* Perform more work here. */
+
+ /* While the connection is being held open, curl_easy_upkeep() can be
+ called. If curl_easy_upkeep() is called and the time since the last
+ upkeep exceeds the interval, then an HTTP/2 PING is sent. */
+ curl_easy_upkeep(curl);
+
+ /* Perform more work here. */
+
+ /* always cleanup */
+ curl_easy_cleanup(curl);
+}
+.fi
+.SH AVAILABILITY
+Added in 7.62.0
+.SH RETURN VALUE
+Returns CURLE_OK
diff --git a/docs/libcurl/opts/CURLOPT_UPLOAD.3 b/docs/libcurl/opts/CURLOPT_UPLOAD.3
index ec8afa62..1a76ec13 100644
--- a/docs/libcurl/opts/CURLOPT_UPLOAD.3
+++ b/docs/libcurl/opts/CURLOPT_UPLOAD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_UPLOAD 3 "April 17, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_UPLOAD 3 "April 17, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_UPLOAD \- enable data upload
diff --git a/docs/libcurl/opts/CURLOPT_UPLOAD_BUFFERSIZE.3 b/docs/libcurl/opts/CURLOPT_UPLOAD_BUFFERSIZE.3
new file mode 100644
index 00000000..55ba0373
--- /dev/null
+++ b/docs/libcurl/opts/CURLOPT_UPLOAD_BUFFERSIZE.3
@@ -0,0 +1,70 @@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 1998 - 2018, 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 https://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.
+.\" *
+.\" **************************************************************************
+.\"
+.TH CURLOPT_UPLOAD_BUFFERSIZE 3 "August 18, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
+
+.SH NAME
+CURLOPT_UPLOAD_BUFFERSIZE \- set preferred upload buffer size
+.SH SYNOPSIS
+#include <curl/curl.h>
+
+CURLcode curl_easy_setopt(CURL *handle, CURLOPT_UPLOAD_BUFFERSIZE, long size);
+.SH DESCRIPTION
+Pass a long specifying your preferred \fIsize\fP (in bytes) for the upload
+buffer in libcurl. It makes libcurl uses a larger buffer that gets passed to
+the next layer in the stack to get sent off. In some setups and for some
+protocols, there's a huge performance benefit of having a larger upload
+buffer.
+
+This is just treated as a request, not an order. You cannot be guaranteed to
+actually get the given size.
+
+The upload buffer size is by default 64 kilobytes. The maximum buffer size
+allowed to be set is 2 megabytes. The minimum buffer size allowed to be set is
+16 kilobytes.
+
+Since curl 7.61.1 the upload buffer is allocated on-demand - so if the handle
+isn't used for upload, this buffer will not be allocated at all.
+.SH DEFAULT
+64 kB
+.SH PROTOCOLS
+All
+.SH EXAMPLE
+.nf
+CURL *curl = curl_easy_init();
+if(curl) {
+ curl_easy_setopt(curl, CURLOPT_URL, "sftp://example.com/foo.bin");
+
+ /* ask libcurl to allocate a larger upload buffer */
+ curl_easy_setopt(curl, CURLOPT_UPLOAD_BUFFERSIZE, 120000L);
+
+ ret = curl_easy_perform(curl);
+
+ curl_easy_cleanup(curl);
+}
+.fi
+.SH AVAILABILITY
+Added in 7.62.0.
+.SH RETURN VALUE
+Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
+.SH "SEE ALSO"
+.BR CURLOPT_BUFFERSIZE "(3), " CURLOPT_READFUNCTION "(3), "
diff --git a/docs/libcurl/opts/CURLOPT_URL.3 b/docs/libcurl/opts/CURLOPT_URL.3
index 26e916a2..3fd21a85 100644
--- a/docs/libcurl/opts/CURLOPT_URL.3
+++ b/docs/libcurl/opts/CURLOPT_URL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_URL 3 "July 24, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_URL 3 "July 31, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_URL \- provide the URL to use in the request
@@ -188,7 +188,10 @@ imap://user:password@mail.example.com/INBOX - Performs a folder list on the
user's inbox
imap://user:password@mail.example.com/INBOX/;UID=1 - Selects the user's inbox
-and fetches message 1
+and fetches message with uid = 1
+
+imap://user:password@mail.example.com/INBOX/;MAILINDEX=1 - Selects the user's inbox
+and fetches the first message in the mail box
imap://user:password@mail.example.com/INBOX;UIDVALIDITY=50/;UID=2 - Selects
the user's inbox, checks the UIDVALIDITY of the mailbox is 50 and fetches
diff --git a/docs/libcurl/opts/CURLOPT_USERAGENT.3 b/docs/libcurl/opts/CURLOPT_USERAGENT.3
index f2146e38..5d4662c2 100644
--- a/docs/libcurl/opts/CURLOPT_USERAGENT.3
+++ b/docs/libcurl/opts/CURLOPT_USERAGENT.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_USERAGENT 3 "December 21, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_USERAGENT 3 "December 21, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_USERAGENT \- set HTTP user-agent header
diff --git a/docs/libcurl/opts/CURLOPT_USERNAME.3 b/docs/libcurl/opts/CURLOPT_USERNAME.3
index cd63e863..2cfb5e48 100644
--- a/docs/libcurl/opts/CURLOPT_USERNAME.3
+++ b/docs/libcurl/opts/CURLOPT_USERNAME.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_USERNAME 3 "May 05, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_USERNAME 3 "May 05, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_USERNAME \- user name to use in authentication
diff --git a/docs/libcurl/opts/CURLOPT_USERPWD.3 b/docs/libcurl/opts/CURLOPT_USERPWD.3
index 1b28b7b0..c12d4d73 100644
--- a/docs/libcurl/opts/CURLOPT_USERPWD.3
+++ b/docs/libcurl/opts/CURLOPT_USERPWD.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_USERPWD 3 "August 24, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_USERPWD 3 "August 24, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_USERPWD \- user name and password to use in authentication
diff --git a/docs/libcurl/opts/CURLOPT_USE_SSL.3 b/docs/libcurl/opts/CURLOPT_USE_SSL.3
index e3808f7f..070410f3 100644
--- a/docs/libcurl/opts/CURLOPT_USE_SSL.3
+++ b/docs/libcurl/opts/CURLOPT_USE_SSL.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_USE_SSL 3 "February 03, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_USE_SSL 3 "October 10, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_USE_SSL \- request using SSL / TLS for the transfer
@@ -67,4 +67,5 @@ the constants were known as CURLFTPSSL_*
.SH RETURN VALUE
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
.SH "SEE ALSO"
-.BR CURLOPT_SSLVERSION "(3), " CURLOPT_SSL_OPTIONS "(3), "
+.BR CURLOPT_SSLVERSION "(3), " CURLOPT_PROXY_SSLVERSION "(3), "
+.BR CURLOPT_SSL_OPTIONS "(3), "
diff --git a/docs/libcurl/opts/CURLOPT_VERBOSE.3 b/docs/libcurl/opts/CURLOPT_VERBOSE.3
index 559394b4..0d3c4180 100644
--- a/docs/libcurl/opts/CURLOPT_VERBOSE.3
+++ b/docs/libcurl/opts/CURLOPT_VERBOSE.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_VERBOSE 3 "February 03, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_VERBOSE 3 "February 03, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_VERBOSE \- set verbose mode on/off
diff --git a/docs/libcurl/opts/CURLOPT_WILDCARDMATCH.3 b/docs/libcurl/opts/CURLOPT_WILDCARDMATCH.3
index 9b583155..8691676a 100644
--- a/docs/libcurl/opts/CURLOPT_WILDCARDMATCH.3
+++ b/docs/libcurl/opts/CURLOPT_WILDCARDMATCH.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_WILDCARDMATCH 3 "May 18, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_WILDCARDMATCH 3 "May 18, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_WILDCARDMATCH \- enable directory wildcard transfers
diff --git a/docs/libcurl/opts/CURLOPT_WRITEDATA.3 b/docs/libcurl/opts/CURLOPT_WRITEDATA.3
index d8122529..312a3271 100644
--- a/docs/libcurl/opts/CURLOPT_WRITEDATA.3
+++ b/docs/libcurl/opts/CURLOPT_WRITEDATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_WRITEDATA 3 "August 11, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_WRITEDATA 3 "August 11, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_WRITEDATA \- custom pointer passed to the write callback
diff --git a/docs/libcurl/opts/CURLOPT_WRITEFUNCTION.3 b/docs/libcurl/opts/CURLOPT_WRITEFUNCTION.3
index bc7891d1..73ee554b 100644
--- a/docs/libcurl/opts/CURLOPT_WRITEFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_WRITEFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_WRITEFUNCTION 3 "July 24, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_WRITEFUNCTION 3 "July 24, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_WRITEFUNCTION \- set callback for writing received data
diff --git a/docs/libcurl/opts/CURLOPT_XFERINFODATA.3 b/docs/libcurl/opts/CURLOPT_XFERINFODATA.3
index 20e75702..0e03d5a9 100644
--- a/docs/libcurl/opts/CURLOPT_XFERINFODATA.3
+++ b/docs/libcurl/opts/CURLOPT_XFERINFODATA.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_XFERINFODATA 3 "October 09, 2017" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_XFERINFODATA 3 "October 09, 2017" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_XFERINFODATA \- custom pointer passed to the progress callback
diff --git a/docs/libcurl/opts/CURLOPT_XFERINFOFUNCTION.3 b/docs/libcurl/opts/CURLOPT_XFERINFOFUNCTION.3
index 22eb9904..49856fde 100644
--- a/docs/libcurl/opts/CURLOPT_XFERINFOFUNCTION.3
+++ b/docs/libcurl/opts/CURLOPT_XFERINFOFUNCTION.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_XFERINFOFUNCTION 3 "February 03, 2016" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_XFERINFOFUNCTION 3 "February 03, 2016" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_XFERINFOFUNCTION \- callback to progress meter function
diff --git a/docs/libcurl/opts/CURLOPT_XOAUTH2_BEARER.3 b/docs/libcurl/opts/CURLOPT_XOAUTH2_BEARER.3
index db8ae290..b12ef2f4 100644
--- a/docs/libcurl/opts/CURLOPT_XOAUTH2_BEARER.3
+++ b/docs/libcurl/opts/CURLOPT_XOAUTH2_BEARER.3
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH CURLOPT_XOAUTH2_BEARER 3 "May 22, 2018" "libcurl 7.61.1" "curl_easy_setopt options"
+.TH CURLOPT_XOAUTH2_BEARER 3 "May 22, 2018" "libcurl 7.62.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_XOAUTH2_BEARER \- specify OAuth 2.0 access token
diff --git a/docs/libcurl/opts/Makefile.inc b/docs/libcurl/opts/Makefile.inc
index 32485e29..117842dc 100644
--- a/docs/libcurl/opts/Makefile.inc
+++ b/docs/libcurl/opts/Makefile.inc
@@ -94,6 +94,7 @@ man_MANS = \
CURLOPT_CHUNK_END_FUNCTION.3 \
CURLOPT_CLOSESOCKETDATA.3 \
CURLOPT_CLOSESOCKETFUNCTION.3 \
+ CURLOPT_UPKEEP_INTERVAL_MS.3 \
CURLOPT_CONNECTTIMEOUT.3 \
CURLOPT_CONNECTTIMEOUT_MS.3 \
CURLOPT_CONNECT_ONLY.3 \
@@ -122,6 +123,7 @@ man_MANS = \
CURLOPT_DNS_SERVERS.3 \
CURLOPT_DNS_SHUFFLE_ADDRESSES.3 \
CURLOPT_DNS_USE_GLOBAL_CACHE.3 \
+ CURLOPT_DOH_URL.3 \
CURLOPT_EGDSOCKET.3 \
CURLOPT_ERRORBUFFER.3 \
CURLOPT_EXPECT_100_TIMEOUT_MS.3 \
@@ -326,6 +328,7 @@ man_MANS = \
CURLOPT_UNIX_SOCKET_PATH.3 \
CURLOPT_UNRESTRICTED_AUTH.3 \
CURLOPT_UPLOAD.3 \
+ CURLOPT_UPLOAD_BUFFERSIZE.3 \
CURLOPT_URL.3 \
CURLOPT_USERAGENT.3 \
CURLOPT_USERNAME.3 \
diff --git a/docs/libcurl/symbols-in-versions b/docs/libcurl/symbols-in-versions
index 7448b4f4..fa0d6f71 100644
--- a/docs/libcurl/symbols-in-versions
+++ b/docs/libcurl/symbols-in-versions
@@ -113,7 +113,7 @@ CURLE_SEND_ERROR 7.10
CURLE_SEND_FAIL_REWIND 7.12.3
CURLE_SHARE_IN_USE 7.9.6 7.17.0
CURLE_SSH 7.16.1
-CURLE_SSL_CACERT 7.10
+CURLE_SSL_CACERT 7.10 7.62.0
CURLE_SSL_CACERT_BADFILE 7.16.0
CURLE_SSL_CERTPROBLEM 7.10
CURLE_SSL_CIPHER 7.10
@@ -356,6 +356,7 @@ CURLOPT_CLOSEFUNCTION 7.7 7.11.1 7.15.5
CURLOPT_CLOSEPOLICY 7.7 7.16.1
CURLOPT_CLOSESOCKETDATA 7.21.7
CURLOPT_CLOSESOCKETFUNCTION 7.21.7
+CURLOPT_UPKEEP_INTERVAL_MS 7.62.0
CURLOPT_CONNECTTIMEOUT 7.7
CURLOPT_CONNECTTIMEOUT_MS 7.16.2
CURLOPT_CONNECT_ONLY 7.15.2
@@ -384,6 +385,7 @@ CURLOPT_DNS_LOCAL_IP6 7.33.0
CURLOPT_DNS_SERVERS 7.24.0
CURLOPT_DNS_SHUFFLE_ADDRESSES 7.60.0
CURLOPT_DNS_USE_GLOBAL_CACHE 7.9.3 7.11.1
+CURLOPT_DOH_URL 7.62.0
CURLOPT_EGDSOCKET 7.7
CURLOPT_ENCODING 7.10
CURLOPT_ERRORBUFFER 7.1
@@ -615,6 +617,7 @@ CURLOPT_TRANSFER_ENCODING 7.21.6
CURLOPT_UNIX_SOCKET_PATH 7.40.0
CURLOPT_UNRESTRICTED_AUTH 7.10.4
CURLOPT_UPLOAD 7.1
+CURLOPT_UPLOAD_BUFFERSIZE 7.62.0
CURLOPT_URL 7.1
CURLOPT_USERAGENT 7.1
CURLOPT_USERNAME 7.19.1
@@ -705,6 +708,7 @@ CURLSSLBACKEND_GNUTLS 7.34.0
CURLSSLBACKEND_GSKIT 7.34.0
CURLSSLBACKEND_LIBRESSL 7.49.0
CURLSSLBACKEND_MBEDTLS 7.46.0
+CURLSSLBACKEND_MESALINK 7.62.0
CURLSSLBACKEND_NONE 7.34.0
CURLSSLBACKEND_NSS 7.34.0
CURLSSLBACKEND_OPENSSL 7.34.0
@@ -718,6 +722,34 @@ CURLSSLSET_NO_BACKENDS 7.56.0
CURLSSLSET_OK 7.56.0
CURLSSLSET_TOO_LATE 7.56.0
CURLSSLSET_UNKNOWN_BACKEND 7.56.0
+CURLUPART_FRAGMENT 7.62.0
+CURLUPART_HOST 7.62.0
+CURLUPART_OPTIONS 7.62.0
+CURLUPART_PASSWORD 7.62.0
+CURLUPART_PATH 7.62.0
+CURLUPART_PORT 7.62.0
+CURLUPART_QUERY 7.62.0
+CURLUPART_SCHEME 7.62.0
+CURLUPART_URL 7.62.0
+CURLUPART_USER 7.62.0
+CURLUE_BAD_HANDLE 7.62.0
+CURLUE_BAD_PARTPOINTER 7.62.0
+CURLUE_BAD_PORT_NUMBER 7.62.0
+CURLUE_MALFORMED_INPUT 7.62.0
+CURLUE_NO_FRAGMENT 7.62.0
+CURLUE_NO_HOST 7.62.0
+CURLUE_NO_OPTIONS 7.62.0
+CURLUE_NO_PASSWORD 7.62.0
+CURLUE_NO_PORT 7.62.0
+CURLUE_NO_QUERY 7.62.0
+CURLUE_NO_SCHEME 7.62.0
+CURLUE_NO_USER 7.62.0
+CURLUE_OK 7.62.0
+CURLUE_OUT_OF_MEMORY 7.62.0
+CURLUE_UNKNOWN_PART 7.62.0
+CURLUE_UNSUPPORTED_SCHEME 7.62.0
+CURLUE_URLDECODE 7.62.0
+CURLUE_USER_NOT_ALLOWED 7.62.0
CURLUSESSL_ALL 7.17.0
CURLUSESSL_CONTROL 7.17.0
CURLUSESSL_NONE 7.17.0
@@ -854,6 +886,7 @@ CURL_TIMECOND_LASTMOD 7.9.7
CURL_TIMECOND_NONE 7.9.7
CURL_TLSAUTH_NONE 7.21.4
CURL_TLSAUTH_SRP 7.21.4
+CURL_UPKEEP_INTERVAL_DEFAULT 7.62.0
CURL_VERSION_ASYNCHDNS 7.10.7
CURL_VERSION_BROTLI 7.57.0
CURL_VERSION_CONV 7.15.4
diff --git a/include/curl/Makefile.am b/include/curl/Makefile.am
index 989d4a21..16d97e1c 100644
--- a/include/curl/Makefile.am
+++ b/include/curl/Makefile.am
@@ -5,7 +5,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2018, 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
@@ -20,8 +20,8 @@
#
###########################################################################
pkginclude_HEADERS = \
- curl.h curlver.h easy.h mprintf.h stdcheaders.h multi.h \
- typecheck-gcc.h system.h
+ curl.h curlver.h easy.h mprintf.h stdcheaders.h multi.h \
+ typecheck-gcc.h system.h urlapi.h
pkgincludedir= $(includedir)/curl
diff --git a/include/curl/curl.h b/include/curl/curl.h
index 067b34de..cf6f01de 100644
--- a/include/curl/curl.h
+++ b/include/curl/curl.h
@@ -146,7 +146,8 @@ typedef enum {
CURLSSLBACKEND_SCHANNEL = 8,
CURLSSLBACKEND_DARWINSSL = 9,
CURLSSLBACKEND_AXTLS = 10,
- CURLSSLBACKEND_MBEDTLS = 11
+ CURLSSLBACKEND_MBEDTLS = 11,
+ CURLSSLBACKEND_MESALINK = 12
} curl_sslbackend;
/* aliases for library clones and renames */
@@ -517,8 +518,7 @@ typedef enum {
CURLE_UNKNOWN_OPTION, /* 48 - User specified an unknown option */
CURLE_TELNET_OPTION_SYNTAX, /* 49 - Malformed telnet option */
CURLE_OBSOLETE50, /* 50 - NOT USED */
- CURLE_PEER_FAILED_VERIFICATION, /* 51 - peer's certificate or fingerprint
- wasn't verified fine */
+ CURLE_OBSOLETE51, /* 51 - NOT USED */
CURLE_GOT_NOTHING, /* 52 - when this is a specific error */
CURLE_SSL_ENGINE_NOTFOUND, /* 53 - SSL crypto engine not found */
CURLE_SSL_ENGINE_SETFAILED, /* 54 - can not set SSL crypto engine as
@@ -528,7 +528,8 @@ typedef enum {
CURLE_OBSOLETE57, /* 57 - NOT IN USE */
CURLE_SSL_CERTPROBLEM, /* 58 - problem with the local certificate */
CURLE_SSL_CIPHER, /* 59 - couldn't use specified cipher */
- CURLE_SSL_CACERT, /* 60 - problem with the CA cert (path?) */
+ CURLE_PEER_FAILED_VERIFICATION, /* 60 - peer's certificate or fingerprint
+ wasn't verified fine */
CURLE_BAD_CONTENT_ENCODING, /* 61 - Unrecognized/bad encoding */
CURLE_LDAP_INVALID_URL, /* 62 - Invalid LDAP URL */
CURLE_FILESIZE_EXCEEDED, /* 63 - Maximum file size exceeded */
@@ -584,6 +585,9 @@ typedef enum {
CURL_LAST /* never use! */
} CURLcode;
+/* added in 7.62.0 */
+#define CURLE_SSL_CACERT CURLE_PEER_FAILED_VERIFICATION
+
#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all
the obsolete stuff removed! */
@@ -800,6 +804,9 @@ typedef enum {
this value, keep them in sync. */
#define CURL_HET_DEFAULT 200L
+/* The default connection upkeep interval in milliseconds. */
+#define CURL_UPKEEP_INTERVAL_DEFAULT 60000L
+
#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all
the obsolete stuff removed! */
@@ -1856,6 +1863,15 @@ typedef enum {
/* Disallow specifying username/login in URL. */
CINIT(DISALLOW_USERNAME_IN_URL, LONG, 278),
+ /* DNS-over-HTTPS URL */
+ CINIT(DOH_URL, STRINGPOINT, 279),
+
+ /* Preferred buffer size to use for uploads */
+ CINIT(UPLOAD_BUFFERSIZE, LONG, 280),
+
+ /* Time in ms between connection upkeep calls for long-lived connections. */
+ CINIT(UPKEEP_INTERVAL_MS, LONG, 281),
+
CURLOPT_LASTENTRY /* the last unused */
} CURLoption;
@@ -2779,6 +2795,7 @@ CURL_EXTERN CURLcode curl_easy_pause(CURL *handle, int bitmask);
stuff before they can be included! */
#include "easy.h" /* nothing in curl is fun without the easy stuff */
#include "multi.h"
+#include "urlapi.h"
/* the typechecker doesn't work in C++ (yet) */
#if defined(__GNUC__) && defined(__GNUC_MINOR__) && \
diff --git a/include/curl/curlver.h b/include/curl/curlver.h
index 1aa30ab4..2e53f0c8 100644
--- a/include/curl/curlver.h
+++ b/include/curl/curlver.h
@@ -30,13 +30,13 @@
/* This is the version number of the libcurl package from which this header
file origins: */
-#define LIBCURL_VERSION "7.61.1"
+#define LIBCURL_VERSION "7.62.0"
/* The numeric version number is also available "in parts" by using these
defines: */
#define LIBCURL_VERSION_MAJOR 7
-#define LIBCURL_VERSION_MINOR 61
-#define LIBCURL_VERSION_PATCH 1
+#define LIBCURL_VERSION_MINOR 62
+#define LIBCURL_VERSION_PATCH 0
/* This is the numeric version of the libcurl version number, meant for easier
parsing and comparions by programs. The LIBCURL_VERSION_NUM define will
@@ -57,7 +57,7 @@
CURL_VERSION_BITS() macro since curl's own configure script greps for it
and needs it to contain the full number.
*/
-#define LIBCURL_VERSION_NUM 0x073d01
+#define LIBCURL_VERSION_NUM 0x073e00
/*
* This is the date and time when the full source package was created. The
@@ -68,7 +68,7 @@
*
* "2007-11-23"
*/
-#define LIBCURL_TIMESTAMP "2018-09-05"
+#define LIBCURL_TIMESTAMP "2018-10-31"
#define CURL_VERSION_BITS(x,y,z) ((x)<<16|(y)<<8|z)
#define CURL_AT_LEAST_VERSION(x,y,z) \
diff --git a/include/curl/easy.h b/include/curl/easy.h
index 752c5049..f42a8a96 100644
--- a/include/curl/easy.h
+++ b/include/curl/easy.h
@@ -95,6 +95,16 @@ CURL_EXTERN CURLcode curl_easy_recv(CURL *curl, void *buffer, size_t buflen,
CURL_EXTERN CURLcode curl_easy_send(CURL *curl, const void *buffer,
size_t buflen, size_t *n);
+
+/*
+ * NAME curl_easy_upkeep()
+ *
+ * DESCRIPTION
+ *
+ * Performs connection upkeep for the given session handle.
+ */
+CURL_EXTERN CURLcode curl_easy_upkeep(CURL *curl);
+
#ifdef __cplusplus
}
#endif
diff --git a/include/curl/system.h b/include/curl/system.h
index a54fd584..1e555ec1 100644
--- a/include/curl/system.h
+++ b/include/curl/system.h
@@ -298,7 +298,7 @@
# define CURL_PULL_SYS_TYPES_H 1
# define CURL_PULL_SYS_SOCKET_H 1
-#elif defined(__SUNPRO_C) /* Oracle Solaris Studio */
+#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) /* Oracle Solaris Studio */
# if !defined(__LP64) && (defined(__ILP32) || \
defined(__i386) || \
defined(__sparcv8) || \
diff --git a/include/curl/typecheck-gcc.h b/include/curl/typecheck-gcc.h
index a6f63861..24433620 100644
--- a/include/curl/typecheck-gcc.h
+++ b/include/curl/typecheck-gcc.h
@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -269,6 +269,7 @@ _CURL_WARNING(_curl_easy_getinfo_err_curl_off_t,
(option) == CURLOPT_DNS_LOCAL_IP4 || \
(option) == CURLOPT_DNS_LOCAL_IP6 || \
(option) == CURLOPT_DNS_SERVERS || \
+ (option) == CURLOPT_DOH_URL || \
(option) == CURLOPT_EGDSOCKET || \
(option) == CURLOPT_FTPPORT || \
(option) == CURLOPT_FTP_ACCOUNT || \
@@ -500,7 +501,8 @@ _CURL_WARNING(_curl_easy_getinfo_err_curl_off_t,
/* evaluates to true if expr can be passed as POST data (void* or char*) */
#define _curl_is_postfields(expr) \
(_curl_is_ptr((expr), void) || \
- _curl_is_arr((expr), char))
+ _curl_is_arr((expr), char) || \
+ _curl_is_arr((expr), unsigned char))
/* FIXME: the whole callback checking is messy...
* The idea is to tolerate char vs. void and const vs. not const
diff --git a/include/curl/urlapi.h b/include/curl/urlapi.h
new file mode 100644
index 00000000..90dd56c0
--- /dev/null
+++ b/include/curl/urlapi.h
@@ -0,0 +1,120 @@
+#ifndef __CURL_URLAPI_H
+#define __CURL_URLAPI_H
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 2018, 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 https://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.
+ *
+ ***************************************************************************/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* the error codes for the URL API */
+typedef enum {
+ CURLUE_OK,
+ CURLUE_BAD_HANDLE, /* 1 */
+ CURLUE_BAD_PARTPOINTER, /* 2 */
+ CURLUE_MALFORMED_INPUT, /* 3 */
+ CURLUE_BAD_PORT_NUMBER, /* 4 */
+ CURLUE_UNSUPPORTED_SCHEME, /* 5 */
+ CURLUE_URLDECODE, /* 6 */
+ CURLUE_OUT_OF_MEMORY, /* 7 */
+ CURLUE_USER_NOT_ALLOWED, /* 8 */
+ CURLUE_UNKNOWN_PART, /* 9 */
+ CURLUE_NO_SCHEME, /* 10 */
+ CURLUE_NO_USER, /* 11 */
+ CURLUE_NO_PASSWORD, /* 12 */
+ CURLUE_NO_OPTIONS, /* 13 */
+ CURLUE_NO_HOST, /* 14 */
+ CURLUE_NO_PORT, /* 15 */
+ CURLUE_NO_QUERY, /* 16 */
+ CURLUE_NO_FRAGMENT /* 17 */
+} CURLUcode;
+
+typedef enum {
+ CURLUPART_URL,
+ CURLUPART_SCHEME,
+ CURLUPART_USER,
+ CURLUPART_PASSWORD,
+ CURLUPART_OPTIONS,
+ CURLUPART_HOST,
+ CURLUPART_PORT,
+ CURLUPART_PATH,
+ CURLUPART_QUERY,
+ CURLUPART_FRAGMENT
+} CURLUPart;
+
+#define CURLU_DEFAULT_PORT (1<<0) /* return default port number */
+#define CURLU_NO_DEFAULT_PORT (1<<1) /* act as if no port number was set,
+ if the port number matches the
+ default for the scheme */
+#define CURLU_DEFAULT_SCHEME (1<<2) /* return default scheme if
+ missing */
+#define CURLU_NON_SUPPORT_SCHEME (1<<3) /* allow non-supported scheme */
+#define CURLU_PATH_AS_IS (1<<4) /* leave dot sequences */
+#define CURLU_DISALLOW_USER (1<<5) /* no user+password allowed */
+#define CURLU_URLDECODE (1<<6) /* URL decode on get */
+#define CURLU_URLENCODE (1<<7) /* URL encode on set */
+#define CURLU_APPENDQUERY (1<<8) /* append a form style part */
+#define CURLU_GUESS_SCHEME (1<<9) /* legacy curl-style guessing */
+
+typedef struct Curl_URL CURLU;
+
+/*
+ * curl_url() creates a new CURLU handle and returns a pointer to it.
+ * Must be freed with curl_url_cleanup().
+ */
+CURL_EXTERN CURLU *curl_url(void);
+
+/*
+ * curl_url_cleanup() frees the CURLU handle and related resources used for
+ * the URL parsing. It will not free strings previously returned with the URL
+ * API.
+ */
+CURL_EXTERN void curl_url_cleanup(CURLU *handle);
+
+/*
+ * curl_url_dup() duplicates a CURLU handle and returns a new copy. The new
+ * handle must also be freed with curl_url_cleanup().
+ */
+CURL_EXTERN CURLU *curl_url_dup(CURLU *in);
+
+/*
+ * curl_url_get() extracts a specific part of the URL from a CURLU
+ * handle. Returns error code. The returned pointer MUST be freed with
+ * curl_free() afterwards.
+ */
+CURL_EXTERN CURLUcode curl_url_get(CURLU *handle, CURLUPart what,
+ char **part, unsigned int flags);
+
+/*
+ * curl_url_set() sets a specific part of the URL in a CURLU handle. Returns
+ * error code. The passed in string will be copied. Passing a NULL instead of
+ * a part string, clears that part.
+ */
+CURL_EXTERN CURLUcode curl_url_set(CURLU *handle, CURLUPart what,
+ const char *part, unsigned int flags);
+
+
+#ifdef __cplusplus
+} /* end of extern "C" */
+#endif
+
+#endif
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index 87cbe817..eca9a8af 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -105,23 +105,17 @@ if(WIN32)
endif()
target_include_directories(${LIB_NAME} INTERFACE
- $<INSTALL_INTERFACE:include>)
+ $<INSTALL_INTERFACE:include>
+ $<BUILD_INTERFACE:${CURL_SOURCE_DIR}/include>)
install(TARGETS ${LIB_NAME}
- EXPORT libcurl-target
- ARCHIVE DESTINATION lib
- LIBRARY DESTINATION lib
- RUNTIME DESTINATION bin
+ EXPORT ${TARGETS_EXPORT_NAME}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
export(TARGETS ${LIB_NAME}
APPEND FILE ${PROJECT_BINARY_DIR}/libcurl-target.cmake
NAMESPACE CURL::
)
-
-install(EXPORT libcurl-target
- FILE libcurl-target.cmake
- NAMESPACE CURL::
- DESTINATION ${CURL_INSTALL_CMAKE_DIR}
-)
-
diff --git a/lib/Makefile.Watcom b/lib/Makefile.Watcom
index 77e5a6e0..5f335ced 100644
--- a/lib/Makefile.Watcom
+++ b/lib/Makefile.Watcom
@@ -272,4 +272,3 @@ $(RESOURCE): libcurl.rc
.c{$(OBJ_STAT)}.obj:
$(CC) $(CFLAGS) -DCURL_STATICLIB $[@ -fo=$^@
-
diff --git a/lib/Makefile.am b/lib/Makefile.am
index 7e82d467..a7b5262b 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -23,13 +23,13 @@ AUTOMAKE_OPTIONS = foreign nostdinc
CMAKE_DIST = CMakeLists.txt curl_config.h.cmake
-EXTRA_DIST = Makefile.m32 config-win32.h \
- config-win32ce.h config-riscos.h config-mac.h curl_config.h.in \
- makefile.dj config-dos.h libcurl.plist libcurl.rc config-amigaos.h \
- makefile.amiga Makefile.netware nwlib.c nwos.c config-win32ce.h \
- config-os400.h setup-os400.h config-symbian.h Makefile.Watcom \
- config-tpf.h mk-ca-bundle.pl mk-ca-bundle.vbs $(CMAKE_DIST) \
- firefox-db2pem.sh config-vxworks.h Makefile.vxworks checksrc.pl \
+EXTRA_DIST = Makefile.m32 config-win32.h \
+ config-win32ce.h config-riscos.h config-mac.h curl_config.h.in \
+ makefile.dj config-dos.h libcurl.plist libcurl.rc config-amigaos.h \
+ makefile.amiga Makefile.netware nwlib.c nwos.c config-win32ce.h \
+ config-os400.h setup-os400.h config-symbian.h Makefile.Watcom \
+ config-tpf.h mk-ca-bundle.pl mk-ca-bundle.vbs $(CMAKE_DIST) \
+ firefox-db2pem.sh config-vxworks.h Makefile.vxworks checksrc.pl \
objnames-test08.sh objnames-test10.sh objnames.inc
lib_LTLIBRARIES = libcurl.la
@@ -144,3 +144,11 @@ if CURLDEBUG
# for debug builds, we scan the sources on all regular make invokes
all-local: checksrc
endif
+
+# disable the tests that are mostly causing false positives
+TIDYFLAGS=-checks=-clang-analyzer-security.insecureAPI.strcpy,-clang-analyzer-optin.performance.Padding,-clang-analyzer-valist.Uninitialized,-clang-analyzer-core.NonNullParamChecker,-clang-analyzer-core.NullDereference -quiet
+
+TIDY:=clang-tidy
+
+tidy:
+ $(TIDY) $(CSOURCES) $(TIDYFLAGS) -- $(AM_CPPFLAGS) $(CPPFLAGS) -DHAVE_CONFIG_H
diff --git a/lib/Makefile.inc b/lib/Makefile.inc
index 76ca6d04..4aa04225 100644
--- a/lib/Makefile.inc
+++ b/lib/Makefile.inc
@@ -30,12 +30,12 @@ LIB_VAUTH_HFILES = vauth/vauth.h vauth/digest.h vauth/ntlm.h
LIB_VTLS_CFILES = vtls/openssl.c vtls/gtls.c vtls/vtls.c vtls/nss.c \
vtls/polarssl.c vtls/polarssl_threadlock.c vtls/axtls.c \
vtls/cyassl.c vtls/schannel.c vtls/schannel_verify.c \
- vtls/darwinssl.c vtls/gskit.c vtls/mbedtls.c
+ vtls/darwinssl.c vtls/gskit.c vtls/mbedtls.c vtls/mesalink.c
LIB_VTLS_HFILES = vtls/openssl.h vtls/vtls.h vtls/gtls.h \
vtls/nssg.h vtls/polarssl.h vtls/polarssl_threadlock.h vtls/axtls.h \
vtls/cyassl.h vtls/schannel.h vtls/darwinssl.h vtls/gskit.h \
- vtls/mbedtls.h
+ vtls/mbedtls.h vtls/mesalink.h
LIB_CFILES = file.c timeval.c base64.c hostip.c progress.c formdata.c \
cookie.c http.c sendf.c ftp.c url.c dict.c if2ip.c speedcheck.c \
@@ -54,7 +54,8 @@ LIB_CFILES = file.c timeval.c base64.c hostip.c progress.c formdata.c \
http_ntlm.c curl_ntlm_wb.c curl_ntlm_core.c curl_sasl.c rand.c \
curl_multibyte.c hostcheck.c conncache.c pipeline.c dotdot.c \
x509asn1.c http2.c smb.c curl_endian.c curl_des.c system_win32.c \
- mime.c sha256.c setopt.c curl_path.c curl_ctype.c curl_range.c psl.c
+ mime.c sha256.c setopt.c curl_path.c curl_ctype.c curl_range.c psl.c \
+ doh.c urlapi.c
LIB_HFILES = arpa_telnet.h netrc.h file.h timeval.h hostip.h progress.h \
formdata.h cookie.h http.h sendf.h ftp.h url.h dict.h if2ip.h \
@@ -74,7 +75,7 @@ LIB_HFILES = arpa_telnet.h netrc.h file.h timeval.h hostip.h progress.h \
curl_setup_once.h multihandle.h setup-vms.h pipeline.h dotdot.h \
x509asn1.h http2.h sigpipe.h smb.h curl_endian.h curl_des.h \
curl_printf.h system_win32.h rand.h mime.h curl_sha256.h setopt.h \
- curl_path.h curl_ctype.h curl_range.h psl.h
+ curl_path.h curl_ctype.h curl_range.h psl.h doh.h urlapi-int.h
LIB_RCFILES = libcurl.rc
diff --git a/lib/Makefile.m32 b/lib/Makefile.m32
index 773187ad..ae88f4dc 100644
--- a/lib/Makefile.m32
+++ b/lib/Makefile.m32
@@ -91,23 +91,23 @@ ifeq ($(CURL_RANLIB),)
CURL_RANLIB := $(CROSSPREFIX)ranlib
endif
-CC = $(CURL_CC)
-CFLAGS = $(CURL_CFLAG_EXTRAS) -g -O2 -Wall -W
-CFLAGS += -fno-strict-aliasing
+CC = $(CURL_CC)
+CFLAGS = $(CURL_CFLAG_EXTRAS) -g -O2 -Wall -W
+CFLAGS += -fno-strict-aliasing
# comment LDFLAGS below to keep debug info
-LDFLAGS = $(CURL_LDFLAG_EXTRAS) $(CURL_LDFLAG_EXTRAS_DLL) -s
-AR = $(CURL_AR)
-RANLIB = $(CURL_RANLIB)
-RC = $(CROSSPREFIX)windres
-RCFLAGS = --include-dir=$(PROOT)/include -DDEBUGBUILD=0 -O COFF
-STRIP = $(CROSSPREFIX)strip -g
+LDFLAGS = $(CURL_LDFLAG_EXTRAS) $(CURL_LDFLAG_EXTRAS_DLL) -s
+AR = $(CURL_AR)
+RANLIB = $(CURL_RANLIB)
+RC = $(CROSSPREFIX)windres
+RCFLAGS = --include-dir=$(PROOT)/include -DDEBUGBUILD=0 -O COFF
+STRIP = $(CROSSPREFIX)strip -g
# Set environment var ARCH to your architecture to override autodetection.
ifndef ARCH
ifeq ($(findstring x86_64,$(shell $(CC) -dumpmachine)),x86_64)
-ARCH = w64
+ARCH = w64
else
-ARCH = w32
+ARCH = w32
endif
endif
@@ -123,30 +123,30 @@ endif
# Platform-dependent helper tool macros
ifeq ($(findstring /sh,$(SHELL)),/sh)
-DEL = rm -f $1
-RMDIR = rm -fr $1
-MKDIR = mkdir -p $1
-COPY = -cp -afv $1 $2
-#COPYR = -cp -afr $1/* $2
-COPYR = -rsync -aC $1/* $2
-TOUCH = touch $1
-CAT = cat
-ECHONL = echo ""
-DL = '
+DEL = rm -f $1
+RMDIR = rm -fr $1
+MKDIR = mkdir -p $1
+COPY = -cp -afv $1 $2
+#COPYR = -cp -afr $1/* $2
+COPYR = -rsync -aC $1/* $2
+TOUCH = touch $1
+CAT = cat
+ECHONL = echo ""
+DL = '
else
ifeq "$(OS)" "Windows_NT"
-DEL = -del 2>NUL /q /f $(subst /,\,$1)
-RMDIR = -rd 2>NUL /q /s $(subst /,\,$1)
+DEL = -del 2>NUL /q /f $(subst /,\,$1)
+RMDIR = -rd 2>NUL /q /s $(subst /,\,$1)
else
-DEL = -del 2>NUL $(subst /,\,$1)
-RMDIR = -deltree 2>NUL /y $(subst /,\,$1)
-endif
-MKDIR = -md 2>NUL $(subst /,\,$1)
-COPY = -copy 2>NUL /y $(subst /,\,$1) $(subst /,\,$2)
-COPYR = -xcopy 2>NUL /q /y /e $(subst /,\,$1) $(subst /,\,$2)
-TOUCH = copy 2>&1>NUL /b $(subst /,\,$1) +,,
-CAT = type
-ECHONL = $(ComSpec) /c echo.
+DEL = -del 2>NUL $(subst /,\,$1)
+RMDIR = -deltree 2>NUL /y $(subst /,\,$1)
+endif
+MKDIR = -md 2>NUL $(subst /,\,$1)
+COPY = -copy 2>NUL /y $(subst /,\,$1) $(subst /,\,$2)
+COPYR = -xcopy 2>NUL /q /y /e $(subst /,\,$1) $(subst /,\,$2)
+TOUCH = copy 2>&1>NUL /b $(subst /,\,$1) +,,
+CAT = type
+ECHONL = $(ComSpec) /c echo.
endif
########################################################
diff --git a/lib/Makefile.netware b/lib/Makefile.netware
index 2b392f3f..fa6beec0 100644
--- a/lib/Makefile.netware
+++ b/lib/Makefile.netware
@@ -5,7 +5,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 2004 - 2015, Guenter Knauf, <http://www.gknw.net/phpbb>.
+# Copyright (C) 2004 - 2015, Guenter Knauf
# Copyright (C) 2001 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
@@ -31,7 +31,7 @@
# Edit the path below to point to the base of your Novell NDK.
ifndef NDKBASE
-NDKBASE = c:/novell
+NDKBASE = c:/novell
endif
# Edit the path below to point to the base of your Zlib sources.
@@ -80,19 +80,19 @@ LIBCARES_PATH = ../ares
endif
ifndef INSTDIR
-INSTDIR = ..$(DS)curl-$(LIBCURL_VERSION_STR)-bin-nw
+INSTDIR = ..$(DS)curl-$(LIBCURL_VERSION_STR)-bin-nw
endif
# Edit the vars below to change NLM target settings.
TARGET = libcurl
-VERSION = $(LIBCURL_VERSION)
-COPYR = Copyright (C) $(LIBCURL_COPYRIGHT_STR)
-DESCR = curl libcurl $(LIBCURL_VERSION_STR) ($(LIBARCH)) - https://curl.haxx.se
-MTSAFE = YES
-STACK = 64000
-SCREEN = none
-EXPORTF = $(TARGET).imp
-EXPORTS = @$(EXPORTF)
+VERSION = $(LIBCURL_VERSION)
+COPYR = Copyright (C) $(LIBCURL_COPYRIGHT_STR)
+DESCR = curl libcurl $(LIBCURL_VERSION_STR) ($(LIBARCH)) - https://curl.haxx.se
+MTSAFE = YES
+STACK = 64000
+SCREEN = none
+EXPORTF = $(TARGET).imp
+EXPORTS = @$(EXPORTF)
# Uncomment the next line to enable linking with POSIX semantics.
# POSIXFL = 1
@@ -104,39 +104,39 @@ endif
# must be equal to NDEBUG or DEBUG, CURLDEBUG
ifndef DB
-DB = NDEBUG
+DB = NDEBUG
endif
# Optimization: -O<n> or debugging: -g
ifeq ($(DB),NDEBUG)
- OPT = -O2
- OBJDIR = release
+ OPT = -O2
+ OBJDIR = release
else
- OPT = -g
- OBJDIR = debug
+ OPT = -g
+ OBJDIR = debug
endif
# The following lines defines your compiler.
ifdef CWFolder
- METROWERKS = $(CWFolder)
+ METROWERKS = $(CWFolder)
endif
ifdef METROWERKS
- # MWCW_PATH = $(subst \,/,$(METROWERKS))/Novell Support
- MWCW_PATH = $(subst \,/,$(METROWERKS))/Novell Support/Metrowerks Support
- CC = mwccnlm
+ # MWCW_PATH = $(subst \,/,$(METROWERKS))/Novell Support
+ MWCW_PATH = $(subst \,/,$(METROWERKS))/Novell Support/Metrowerks Support
+ CC = mwccnlm
else
- CC = gcc
+ CC = gcc
endif
-PERL = perl
+PERL = perl
# Here you can find a native Win32 binary of the original awk:
# http://www.gknw.net/development/prgtools/awk-20100523.zip
-AWK = awk
-CP = cp -afv
-MKDIR = mkdir
-# RM = rm -f
+AWK = awk
+CP = cp -afv
+MKDIR = mkdir
+# RM = rm -f
# If you want to mark the target as MTSAFE you will need a tool for
# generating the xdc data for the linker; here's a minimal tool:
# http://www.gknw.net/development/prgtools/mkxdc.zip
-MPKXDC = mkxdc
+MPKXDC = mkxdc
# LIBARCH_U = $(shell $(AWK) 'BEGIN {print toupper(ARGV[1])}' $(LIBARCH))
LIBARCH_L = $(shell $(AWK) 'BEGIN {print tolower(ARGV[1])}' $(LIBARCH))
@@ -145,58 +145,58 @@ LIBARCH_L = $(shell $(AWK) 'BEGIN {print tolower(ARGV[1])}' $(LIBARCH))
-include $(OBJDIR)/version.inc
# Global flags for all compilers
-CFLAGS += $(OPT) -D$(DB) -DNETWARE -DHAVE_CONFIG_H -nostdinc
+CFLAGS += $(OPT) -D$(DB) -DNETWARE -DHAVE_CONFIG_H -nostdinc
ifeq ($(CC),mwccnlm)
-LD = mwldnlm
-LDFLAGS = -nostdlib $(PRELUDE) $(OBJL) -o $@ -commandfile
-AR = mwldnlm
-ARFLAGS = -nostdlib -type library -o
-LIBEXT = lib
-#RANLIB =
-CFLAGS += -msgstyle gcc -gccinc -inline off -opt nointrinsics -proc 586
-CFLAGS += -relax_pointers
-#CFLAGS += -w on
-ifeq ($(LIBARCH),LIBC)
-ifeq ($(POSIXFL),1)
- PRELUDE = $(NDK_LIBC)/imports/posixpre.o
-else
- PRELUDE = $(NDK_LIBC)/imports/libcpre.o
-endif
- CFLAGS += -align 4
-else
- # PRELUDE = $(NDK_CLIB)/imports/clibpre.o
- # to avoid the __init_* / __deinit_* woes don't use prelude from NDK
- PRELUDE = "$(MWCW_PATH)/libraries/runtime/prelude.obj"
- # CFLAGS += -include "$(MWCW_PATH)/headers/nlm_clib_prefix.h"
- CFLAGS += -align 1
-endif
+ LD = mwldnlm
+ LDFLAGS = -nostdlib $(PRELUDE) $(OBJL) -o $@ -commandfile
+ AR = mwldnlm
+ ARFLAGS = -nostdlib -type library -o
+ LIBEXT = lib
+ #RANLIB =
+ CFLAGS += -msgstyle gcc -gccinc -inline off -opt nointrinsics -proc 586
+ CFLAGS += -relax_pointers
+ #CFLAGS += -w on
+ ifeq ($(LIBARCH),LIBC)
+ ifeq ($(POSIXFL),1)
+ PRELUDE = $(NDK_LIBC)/imports/posixpre.o
+ else
+ PRELUDE = $(NDK_LIBC)/imports/libcpre.o
+ endif
+ CFLAGS += -align 4
+ else
+ # PRELUDE = $(NDK_CLIB)/imports/clibpre.o
+ # to avoid the __init_* / __deinit_* woes don't use prelude from NDK
+ PRELUDE = "$(MWCW_PATH)/libraries/runtime/prelude.obj"
+ # CFLAGS += -include "$(MWCW_PATH)/headers/nlm_clib_prefix.h"
+ CFLAGS += -align 1
+ endif
else
-LD = nlmconv
-LDFLAGS = -T
-AR = ar
-ARFLAGS = -cq
-LIBEXT = a
-RANLIB = ranlib
-CFLAGS += -m32
-CFLAGS += -fno-builtin -fno-strict-aliasing
-ifeq ($(findstring gcc,$(CC)),gcc)
-CFLAGS += -fpcc-struct-return
-endif
-CFLAGS += -Wall # -pedantic
-ifeq ($(LIBARCH),LIBC)
-ifeq ($(POSIXFL),1)
- PRELUDE = $(NDK_LIBC)/imports/posixpre.gcc.o
-else
- PRELUDE = $(NDK_LIBC)/imports/libcpre.gcc.o
-endif
-else
- PRELUDE = $(NDK_CLIB)/imports/clibpre.gcc.o
- # to avoid the __init_* / __deinit_* woes don't use prelude from NDK
- # http://www.gknw.net/development/mk_nlm/gcc_pre.zip
- # PRELUDE = $(NDK_ROOT)/pre/prelude.o
- CFLAGS += -include $(NDKBASE)/nlmconv/genlm.h
-endif
+ LD = nlmconv
+ LDFLAGS = -T
+ AR = ar
+ ARFLAGS = -cq
+ LIBEXT = a
+ RANLIB = ranlib
+ CFLAGS += -m32
+ CFLAGS += -fno-builtin -fno-strict-aliasing
+ ifeq ($(findstring gcc,$(CC)),gcc)
+ CFLAGS += -fpcc-struct-return
+ endif
+ CFLAGS += -Wall # -pedantic
+ ifeq ($(LIBARCH),LIBC)
+ ifeq ($(POSIXFL),1)
+ PRELUDE = $(NDK_LIBC)/imports/posixpre.gcc.o
+ else
+ PRELUDE = $(NDK_LIBC)/imports/libcpre.gcc.o
+ endif
+ else
+ PRELUDE = $(NDK_CLIB)/imports/clibpre.gcc.o
+ # to avoid the __init_* / __deinit_* woes don't use prelude from NDK
+ # http://www.gknw.net/development/mk_nlm/gcc_pre.zip
+ # PRELUDE = $(NDK_ROOT)/pre/prelude.o
+ CFLAGS += -include $(NDKBASE)/nlmconv/genlm.h
+ endif
endif
NDK_ROOT = $(NDKBASE)/ndk
@@ -257,99 +257,99 @@ ENABLE_IPV6 = 1
endif
ifdef WITH_ARES
- INCLUDES += -I$(LIBCARES_PATH)
- LDLIBS += $(LIBCARES_PATH)/libcares.$(LIBEXT)
+ INCLUDES += -I$(LIBCARES_PATH)
+ LDLIBS += $(LIBCARES_PATH)/libcares.$(LIBEXT)
endif
ifdef WITH_SSH2
- INCLUDES += -I$(LIBSSH2_PATH)/include
+ INCLUDES += -I$(LIBSSH2_PATH)/include
ifdef LINK_STATIC
- LDLIBS += $(LIBSSH2_PATH)/nw/libssh2.$(LIBEXT)
+ LDLIBS += $(LIBSSH2_PATH)/nw/libssh2.$(LIBEXT)
else
- MODULES += libssh2.nlm
- IMPORTS += @$(LIBSSH2_PATH)/nw/libssh2.imp
+ MODULES += libssh2.nlm
+ IMPORTS += @$(LIBSSH2_PATH)/nw/libssh2.imp
endif
endif
ifdef WITH_RTMP
- INCLUDES += -I$(LIBRTMP_PATH)
- LDLIBS += $(LIBRTMP_PATH)/librtmp/librtmp.$(LIBEXT)
+ INCLUDES += -I$(LIBRTMP_PATH)
+ LDLIBS += $(LIBRTMP_PATH)/librtmp/librtmp.$(LIBEXT)
endif
ifdef WITH_SSL
- INCLUDES += -I$(OPENSSL_PATH)/outinc_nw_$(LIBARCH_L)
- LDLIBS += $(OPENSSL_PATH)/out_nw_$(LIBARCH_L)/ssl.$(LIBEXT)
- LDLIBS += $(OPENSSL_PATH)/out_nw_$(LIBARCH_L)/crypto.$(LIBEXT)
- IMPORTS += GetProcessSwitchCount RunningProcess
- INSTDEP += ca-bundle.crt
+ INCLUDES += -I$(OPENSSL_PATH)/outinc_nw_$(LIBARCH_L)
+ LDLIBS += $(OPENSSL_PATH)/out_nw_$(LIBARCH_L)/ssl.$(LIBEXT)
+ LDLIBS += $(OPENSSL_PATH)/out_nw_$(LIBARCH_L)/crypto.$(LIBEXT)
+ IMPORTS += GetProcessSwitchCount RunningProcess
+ INSTDEP += ca-bundle.crt
else
ifdef WITH_AXTLS
- INCLUDES += -I$(AXTLS_PATH)/inc
-ifdef LINK_STATIC
- LDLIBS += $(AXTLS_PATH)/lib/libaxtls.$(LIBEXT)
-else
- MODULES += libaxtls.nlm
- IMPORTS += $(AXTLS_PATH)/lib/libaxtls.imp
-endif
- INSTDEP += ca-bundle.crt
+ INCLUDES += -I$(AXTLS_PATH)/inc
+ ifdef LINK_STATIC
+ LDLIBS += $(AXTLS_PATH)/lib/libaxtls.$(LIBEXT)
+ else
+ MODULES += libaxtls.nlm
+ IMPORTS += $(AXTLS_PATH)/lib/libaxtls.imp
+ endif
+ INSTDEP += ca-bundle.crt
endif
endif
ifdef WITH_ZLIB
- INCLUDES += -I$(ZLIB_PATH)
-ifdef LINK_STATIC
- LDLIBS += $(ZLIB_PATH)/nw/$(LIBARCH)/libz.$(LIBEXT)
-else
- MODULES += libz.nlm
- IMPORTS += @$(ZLIB_PATH)/nw/$(LIBARCH)/libz.imp
-endif
+ INCLUDES += -I$(ZLIB_PATH)
+ ifdef LINK_STATIC
+ LDLIBS += $(ZLIB_PATH)/nw/$(LIBARCH)/libz.$(LIBEXT)
+ else
+ MODULES += libz.nlm
+ IMPORTS += @$(ZLIB_PATH)/nw/$(LIBARCH)/libz.imp
+ endif
endif
ifdef WITH_IDN
- INCLUDES += -I$(LIBIDN_PATH)/include
- LDLIBS += $(LIBIDN_PATH)/lib/libidn.$(LIBEXT)
+ INCLUDES += -I$(LIBIDN_PATH)/include
+ LDLIBS += $(LIBIDN_PATH)/lib/libidn.$(LIBEXT)
endif
ifdef WITH_NGHTTP2
- INCLUDES += -I$(NGHTTP2_PATH)/include
- LDLIBS += $(NGHTTP2_PATH)/lib/libnghttp2.$(LIBEXT)
+ INCLUDES += -I$(NGHTTP2_PATH)/include
+ LDLIBS += $(NGHTTP2_PATH)/lib/libnghttp2.$(LIBEXT)
endif
ifeq ($(LIBARCH),LIBC)
- INCLUDES += -I$(NDK_LIBC)/include
- # INCLUDES += -I$(NDK_LIBC)/include/nks
- # INCLUDES += -I$(NDK_LIBC)/include/winsock
- CFLAGS += -D_POSIX_SOURCE
+ INCLUDES += -I$(NDK_LIBC)/include
+ # INCLUDES += -I$(NDK_LIBC)/include/nks
+ # INCLUDES += -I$(NDK_LIBC)/include/winsock
+ CFLAGS += -D_POSIX_SOURCE
else
- INCLUDES += -I$(NDK_CLIB)/include/nlm
- # INCLUDES += -I$(NDK_CLIB)/include/nlm/obsolete
- # INCLUDES += -I$(NDK_CLIB)/include
+ INCLUDES += -I$(NDK_CLIB)/include/nlm
+ # INCLUDES += -I$(NDK_CLIB)/include/nlm/obsolete
+ # INCLUDES += -I$(NDK_CLIB)/include
endif
ifndef DISABLE_LDAP
- INCLUDES += -I$(NDK_LDAP)/$(LIBARCH_L)/inc
+ INCLUDES += -I$(NDK_LDAP)/$(LIBARCH_L)/inc
endif
-CFLAGS += $(INCLUDES)
+CFLAGS += $(INCLUDES)
ifeq ($(MTSAFE),YES)
- XDCOPT = -n
+ XDCOPT = -n
endif
ifeq ($(MTSAFE),NO)
- XDCOPT = -u
+ XDCOPT = -u
endif
ifdef XDCOPT
- XDCDATA = $(OBJDIR)/$(TARGET).xdc
+ XDCDATA = $(OBJDIR)/$(TARGET).xdc
endif
ifeq ($(findstring /sh,$(SHELL)),/sh)
-DL = '
-DS = /
-PCT = %
+DL = '
+DS = /
+PCT = %
#-include $(NDKBASE)/nlmconv/ncpfs.inc
else
-DS = \\
-PCT = %%
+DS = \\
+PCT = %%
endif
# Makefile.inc provides the CSOURCES and HHEADERS defines
include Makefile.inc
-OBJS := $(patsubst %.c,$(OBJDIR)/%.o,$(strip $(notdir $(CSOURCES)))) $(OBJDIR)/nwos.o
+OBJS := $(patsubst %.c,$(OBJDIR)/%.o,$(strip $(notdir $(CSOURCES)))) $(OBJDIR)/nwos.o
-OBJL = $(OBJS) $(OBJDIR)/nwlib.o $(LDLIBS)
+OBJL = $(OBJS) $(OBJDIR)/nwlib.o $(LDLIBS)
vpath %.c . vauth vtls
@@ -757,4 +757,3 @@ $(LIBCARES_PATH)/libcares.$(LIBEXT):
ca-bundle.crt: mk-ca-bundle.pl
@echo Creating $@
@-$(PERL) $< -b -n $@
-
diff --git a/lib/amigaos.h b/lib/amigaos.h
index 02bee161..7c0926cc 100644
--- a/lib/amigaos.h
+++ b/lib/amigaos.h
@@ -36,4 +36,3 @@ void Curl_amiga_cleanup();
#endif
#endif /* HEADER_CURL_AMIGAOS_H */
-
diff --git a/lib/arpa_telnet.h b/lib/arpa_telnet.h
index ec238729..232680e7 100644
--- a/lib/arpa_telnet.h
+++ b/lib/arpa_telnet.h
@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -37,6 +37,7 @@
#define CURL_NEW_ENV_VAR 0
#define CURL_NEW_ENV_VALUE 1
+#ifndef CURL_DISABLE_VERBOSE_STRINGS
/*
* The telnet options represented as strings
*/
@@ -53,6 +54,7 @@ static const char * const telnetoptions[]=
"TERM SPEED", "LFLOW", "LINEMODE", "XDISPLOC",
"OLD-ENVIRON", "AUTHENTICATION", "ENCRYPT", "NEW-ENVIRON"
};
+#endif
#define CURL_TELOPT_MAXIMUM CURL_TELOPT_NEW_ENVIRON
@@ -76,6 +78,7 @@ static const char * const telnetoptions[]=
#define CURL_DONT 254 /* DON'T use this option! */
#define CURL_IAC 255 /* Interpret As Command */
+#ifndef CURL_DISABLE_VERBOSE_STRINGS
/*
* Then those numbers represented as strings:
*/
@@ -86,6 +89,7 @@ static const char * const telnetcmds[]=
"AYT", "EC", "EL", "GA", "SB",
"WILL", "WONT", "DO", "DONT", "IAC"
};
+#endif
#define CURL_TELCMD_MINIMUM CURL_xEOF /* the first one */
#define CURL_TELCMD_MAXIMUM CURL_IAC /* surprise, 255 is the last one! ;-) */
diff --git a/lib/checksrc.pl b/lib/checksrc.pl
index daff07bf..15e9aff8 100755
--- a/lib/checksrc.pl
+++ b/lib/checksrc.pl
@@ -21,19 +21,29 @@
#
###########################################################################
+use strict;
+use warnings;
+
my $max_column = 79;
my $indent = 2;
-my $warnings;
-my $errors;
+my $warnings = 0;
+my $swarnings = 0;
+my $errors = 0;
+my $serrors = 0;
my $suppressed; # whitelisted problems
my $file;
my $dir=".";
-my $wlist;
+my $wlist="";
my $windows_os = $^O eq 'MSWin32' || $^O eq 'msys' || $^O eq 'cygwin';
my $verbose;
my %whitelist;
+my %ignore;
+my %ignore_set;
+my %ignore_used;
+my @ignore_line;
+
my %warnings = (
'LONGLINE' => "Line longer than $max_column",
'TABS' => 'TAB characters not allowed',
@@ -67,7 +77,7 @@ my %warnings = (
);
sub readwhitelist {
- open(W, "<$dir/checksrc.whitelist");
+ open(W, "<$dir/checksrc.whitelist") or return;
my @all=<W>;
for(@all) {
$windows_os ? $_ =~ s/\r?\n$// : chomp;
@@ -97,7 +107,7 @@ sub checkwarn {
$nowarn = 1;
if(!$ignore{$name}) {
# reached zero, enable again
- enable_warn($name, $line, $file, $l);
+ enable_warn($name, $num, $file, $line);
}
}
@@ -239,7 +249,16 @@ sub checksrc {
$scope=999999;
}
- if($ignore_set{$warn}) {
+ # Comparing for a literal zero rather than the scalar value zero
+ # covers the case where $scope contains the ending '*' from the
+ # comment. If we use a scalar comparison (==) we induce warnings
+ # on non-scalar contents.
+ if($scope eq "0") {
+ checkwarn("BADCOMMAND",
+ $line, 0, $file, $l,
+ "Disable zero not supported, did you mean to enable?");
+ }
+ elsif($ignore_set{$warn}) {
checkwarn("BADCOMMAND",
$line, 0, $file, $l,
"$warn already disabled from line $ignore_set{$warn}");
@@ -271,7 +290,7 @@ sub scanfile {
my ($file) = @_;
my $line = 1;
- my $prevl;
+ my $prevl="";
my $l;
open(R, "<$file") || die "failed to open $file";
@@ -359,10 +378,10 @@ sub scanfile {
if($1 =~ / *\#/) {
# this is a #if, treat it differently
}
- elsif($3 eq "return") {
+ elsif(defined $3 && $3 eq "return") {
# return must have a space
}
- elsif($3 eq "case") {
+ elsif(defined $3 && $3 eq "case") {
# case must have a space
}
elsif($4 eq "*") {
diff --git a/lib/config-dos.h b/lib/config-dos.h
index ff1ea155..3e973de0 100644
--- a/lib/config-dos.h
+++ b/lib/config-dos.h
@@ -181,4 +181,3 @@
#undef byte
#endif /* HEADER_CURL_CONFIG_DOS_H */
-
diff --git a/lib/config-vxworks.h b/lib/config-vxworks.h
index 19f2d235..a03e341e 100644
--- a/lib/config-vxworks.h
+++ b/lib/config-vxworks.h
@@ -847,9 +847,6 @@
/* The size of `time_t', as computed by sizeof. */
#define SIZEOF_TIME_T 4
-/* The size of `void*', as computed by sizeof. */
-#define SIZEOF_VOIDP 4
-
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
diff --git a/lib/config-win32.h b/lib/config-win32.h
index fdac6f9a..76b00b9b 100644
--- a/lib/config-win32.h
+++ b/lib/config-win32.h
@@ -691,6 +691,7 @@ Vista
#define HAVE_LDAP_URL_PARSE 1
#else
#undef HAVE_LDAP_URL_PARSE
+#define HAVE_LDAP_SSL 1
#define USE_WIN32_LDAP 1
#endif
diff --git a/lib/cookie.c b/lib/cookie.c
index fd7341f0..5b7ab663 100644
--- a/lib/cookie.c
+++ b/lib/cookie.c
@@ -1218,7 +1218,6 @@ struct Cookie *Curl_cookie_getlist(struct CookieInfo *c,
{
struct Cookie *newco;
struct Cookie *co;
- time_t now = time(NULL);
struct Cookie *mainco = NULL;
size_t matches = 0;
bool is_ip;
@@ -1236,11 +1235,8 @@ struct Cookie *Curl_cookie_getlist(struct CookieInfo *c,
co = c->cookies[myhash];
while(co) {
- /* only process this cookie if it is not expired or had no expire
- date AND that if the cookie requires we're secure we must only
- continue if we are! */
- if((!co->expires || (co->expires > now)) &&
- (co->secure?secure:TRUE)) {
+ /* if the cookie requires we're secure we must only continue if we are! */
+ if(co->secure?secure:TRUE) {
/* now check if the domain is correct */
if(!co->domain ||
@@ -1266,12 +1262,8 @@ struct Cookie *Curl_cookie_getlist(struct CookieInfo *c,
matches++;
}
- else {
- fail:
- /* failure, clear up the allocated chain and return NULL */
- Curl_cookie_freelist(mainco);
- return NULL;
- }
+ else
+ goto fail;
}
}
}
@@ -1309,6 +1301,11 @@ struct Cookie *Curl_cookie_getlist(struct CookieInfo *c,
}
return mainco; /* return the new list */
+
+fail:
+ /* failure, clear up the allocated chain and return NULL */
+ Curl_cookie_freelist(mainco);
+ return NULL;
}
/*****************************************************************************
@@ -1508,10 +1505,9 @@ static int cookie_output(struct CookieInfo *c, const char *dumphere)
format_ptr = get_netscape_format(array[i]);
if(format_ptr == NULL) {
fprintf(out, "#\n# Fatal libcurl error\n");
- if(!use_stdout) {
- free(array);
+ free(array);
+ if(!use_stdout)
fclose(out);
- }
return 1;
}
fprintf(out, "%s\n", format_ptr);
diff --git a/lib/curl_config.h b/lib/curl_config.h
index da99a74c..853c6728 100644
--- a/lib/curl_config.h
+++ b/lib/curl_config.h
@@ -49,6 +49,9 @@
/* to disable --libcurl C code generation option */
/* #undef CURL_DISABLE_LIBCURL_OPTION */
+/* if the OpenSSL configuration won't be loaded automatically */
+/* #undef CURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG */
+
/* to disable POP3 */
#define CURL_DISABLE_POP3 1
@@ -95,7 +98,7 @@
#define ENABLE_IPV6 1
/* Define to the type of arg 2 for gethostname. */
-#define GETHOSTNAME_TYPE_ARG2 unsigned int
+#define GETHOSTNAME_TYPE_ARG2 size_t
/* Specifies the number of arguments to getservbyport_r */
/* #undef GETSERVBYPORT_R_ARGS */
@@ -134,7 +137,7 @@
/* #undef HAVE_BROTLI_DECODE_H */
/* Define to 1 if you have the __builtin_available function. */
-/* #undef HAVE_BUILTIN_AVAILABLE */
+#define HAVE_BUILTIN_AVAILABLE 1
/* Define to 1 if you have the clock_gettime function and monotonic timer. */
#define HAVE_CLOCK_GETTIME_MONOTONIC 1
@@ -513,13 +516,13 @@
/* #undef HAVE_PK11_CREATEMANAGEDGENERICOBJECT */
/* Define to 1 if you have a working poll function. */
-/* #undef HAVE_POLL */
+#define HAVE_POLL 1
/* If you have a fine poll */
-/* #undef HAVE_POLL_FINE */
+#define HAVE_POLL_FINE 1
/* Define to 1 if you have the <poll.h> header file. */
-/* #undef HAVE_POLL_H */
+#define HAVE_POLL_H 1
/* Define to 1 if you have a working POSIX-style strerror_r function. */
#define HAVE_POSIX_STRERROR_R 1
@@ -531,7 +534,7 @@
#define HAVE_PWD_H 1
/* Define to 1 if you have the `RAND_egd' function. */
-#define HAVE_RAND_EGD 1
+/* #undef HAVE_RAND_EGD */
/* Define to 1 if you have the recv function. */
#define HAVE_RECV 1
@@ -579,7 +582,7 @@
#define HAVE_SIGNAL_H 1
/* Define to 1 if you have the sigsetjmp function or macro. */
-#define HAVE_SIGSETJMP 1
+/* #undef HAVE_SIGSETJMP */
/* Define to 1 if sig_atomic_t is an available typedef. */
#define HAVE_SIG_ATOMIC_T 1
@@ -678,7 +681,7 @@
#define HAVE_SYS_PARAM_H 1
/* Define to 1 if you have the <sys/poll.h> header file. */
-/* #undef HAVE_SYS_POLL_H */
+#define HAVE_SYS_POLL_H 1
/* Define to 1 if you have the <sys/resource.h> header file. */
#define HAVE_SYS_RESOURCE_H 1
@@ -738,7 +741,7 @@
#define HAVE_UTIMES 1
/* Define to 1 if you have the <utime.h> header file. */
-/* #undef HAVE_UTIME_H */
+#define HAVE_UTIME_H 1
/* Define to 1 if compiler supports C99 variadic macro style. */
#define HAVE_VARIADIC_MACROS_C99 1
@@ -941,6 +944,9 @@
/* if mbedTLS is enabled */
/* #undef USE_MBEDTLS */
+/* if MesaLink is enabled */
+/* #undef USE_MESALINK */
+
/* Define to enable metalink support */
/* #undef USE_METALINK */
diff --git a/lib/curl_config.h.cmake b/lib/curl_config.h.cmake
index ab0094be..5308eb57 100644
--- a/lib/curl_config.h.cmake
+++ b/lib/curl_config.h.cmake
@@ -127,6 +127,9 @@
/* Define to 1 if bool is an available type. */
#cmakedefine HAVE_BOOL_T 1
+/* Define to 1 if you have the __builtin_available function. */
+#cmakedefine HAVE_BUILTIN_AVAILABLE 1
+
/* Define to 1 if you have the clock_gettime function and monotonic timer. */
#cmakedefine HAVE_CLOCK_GETTIME_MONOTONIC 1
@@ -900,9 +903,6 @@
/* The size of `time_t', as computed by sizeof. */
#cmakedefine SIZEOF_TIME_T ${SIZEOF_TIME_T}
-/* The size of `void*', as computed by sizeof. */
-#cmakedefine SIZEOF_VOIDP ${SIZEOF_VOIDP}
-
/* Define to 1 if you have the ANSI C header files. */
#cmakedefine STDC_HEADERS 1
diff --git a/lib/curl_config.h.in b/lib/curl_config.h.in
index 9c9e2d9a..477d61eb 100644
--- a/lib/curl_config.h.in
+++ b/lib/curl_config.h.in
@@ -48,6 +48,9 @@
/* to disable --libcurl C code generation option */
#undef CURL_DISABLE_LIBCURL_OPTION
+/* if the OpenSSL configuration won't be loaded automatically */
+#undef CURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG
+
/* to disable POP3 */
#undef CURL_DISABLE_POP3
@@ -958,6 +961,9 @@
/* if mbedTLS is enabled */
#undef USE_MBEDTLS
+/* if MesaLink is enabled */
+#undef USE_MESALINK
+
/* Define to enable metalink support */
#undef USE_METALINK
diff --git a/lib/curl_ldap.h b/lib/curl_ldap.h
index 27d03810..94c00294 100644
--- a/lib/curl_ldap.h
+++ b/lib/curl_ldap.h
@@ -32,4 +32,3 @@ extern const struct Curl_handler Curl_handler_ldaps;
#endif
#endif /* HEADER_CURL_LDAP_H */
-
diff --git a/lib/curl_ntlm_wb.c b/lib/curl_ntlm_wb.c
index 353a6564..a4791eb4 100644
--- a/lib/curl_ntlm_wb.c
+++ b/lib/curl_ntlm_wb.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -249,6 +249,9 @@ done:
return CURLE_REMOTE_ACCESS_DENIED;
}
+/* if larger than this, something is seriously wrong */
+#define MAX_NTLM_WB_RESPONSE 100000
+
static CURLcode ntlm_wb_response(struct connectdata *conn,
const char *input, curlntlm state)
{
@@ -289,6 +292,13 @@ static CURLcode ntlm_wb_response(struct connectdata *conn,
buf[len_out - 1] = '\0';
break;
}
+
+ if(len_out > MAX_NTLM_WB_RESPONSE) {
+ failf(conn->data, "too large ntlm_wb response!");
+ free(buf);
+ return CURLE_OUT_OF_MEMORY;
+ }
+
newbuf = Curl_saferealloc(buf, len_out + NTLM_BUFSIZE);
if(!newbuf)
return CURLE_OUT_OF_MEMORY;
@@ -314,6 +324,8 @@ static CURLcode ntlm_wb_response(struct connectdata *conn,
conn->response_header = aprintf("NTLM %.*s", len_out - 4, buf + 3);
free(buf);
+ if(!conn->response_header)
+ return CURLE_OUT_OF_MEMORY;
return CURLE_OK;
done:
free(buf);
@@ -389,6 +401,8 @@ CURLcode Curl_output_ntlm_wb(struct connectdata *conn,
conn->response_header);
DEBUG_OUT(fprintf(stderr, "**** Header %s\n ", *allocuserpwd));
free(conn->response_header);
+ if(!*allocuserpwd)
+ return CURLE_OUT_OF_MEMORY;
conn->response_header = NULL;
break;
case NTLMSTATE_TYPE2:
@@ -409,6 +423,8 @@ CURLcode Curl_output_ntlm_wb(struct connectdata *conn,
ntlm->state = NTLMSTATE_TYPE3; /* we sent a type-3 */
authp->done = TRUE;
Curl_ntlm_wb_cleanup(conn);
+ if(!*allocuserpwd)
+ return CURLE_OUT_OF_MEMORY;
break;
case NTLMSTATE_TYPE3:
/* connection is already authenticated,
diff --git a/lib/curl_path.c b/lib/curl_path.c
index e843deac..68f3e44b 100644
--- a/lib/curl_path.c
+++ b/lib/curl_path.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -39,7 +39,7 @@ CURLcode Curl_getworkingpath(struct connectdata *conn,
char *working_path;
size_t working_path_len;
CURLcode result =
- Curl_urldecode(data, data->state.path, 0, &working_path,
+ Curl_urldecode(data, data->state.up.path, 0, &working_path,
&working_path_len, FALSE);
if(result)
return result;
diff --git a/lib/curl_path.h b/lib/curl_path.h
index 5ee4ff36..636c37f2 100644
--- a/lib/curl_path.h
+++ b/lib/curl_path.h
@@ -44,4 +44,4 @@ CURLcode Curl_getworkingpath(struct connectdata *conn,
char **path);
CURLcode Curl_get_pathname(const char **cpp, char **path, char *homedir);
-#endif
+#endif /* HEADER_CURL_PATH_H */
diff --git a/lib/curl_rtmp.c b/lib/curl_rtmp.c
index 97430647..f09f2f33 100644
--- a/lib/curl_rtmp.c
+++ b/lib/curl_rtmp.c
@@ -37,9 +37,11 @@
/* The last #include file should be: */
#include "memdebug.h"
-#ifdef _WIN32
+#if defined(WIN32) && !defined(USE_LWIPSOCK)
#define setsockopt(a,b,c,d,e) (setsockopt)(a,b,c,(const char *)d,(int)e)
#define SET_RCVTIMEO(tv,s) int tv = s*1000
+#elif defined(LWIP_SO_SNDRCVTIMEO_NONSTANDARD)
+#define SET_RCVTIMEO(tv,s) int tv = s*1000
#else
#define SET_RCVTIMEO(tv,s) struct timeval tv = {s,0}
#endif
diff --git a/lib/curl_setup.h b/lib/curl_setup.h
index 24989874..b8450155 100644
--- a/lib/curl_setup.h
+++ b/lib/curl_setup.h
@@ -44,6 +44,9 @@
# ifndef WIN32_LEAN_AND_MEAN
# define WIN32_LEAN_AND_MEAN
# endif
+# ifndef NOGDI
+# define NOGDI
+# endif
#endif
/*
@@ -645,7 +648,7 @@ int netware_init(void);
#if defined(USE_GNUTLS) || defined(USE_OPENSSL) || defined(USE_NSS) || \
defined(USE_POLARSSL) || defined(USE_AXTLS) || defined(USE_MBEDTLS) || \
defined(USE_CYASSL) || defined(USE_SCHANNEL) || \
- defined(USE_DARWINSSL) || defined(USE_GSKIT)
+ defined(USE_DARWINSSL) || defined(USE_GSKIT) || defined(USE_MESALINK)
#define USE_SSL /* SSL support has been enabled */
#endif
diff --git a/lib/curl_setup_once.h b/lib/curl_setup_once.h
index 6d01ea15..413ccea9 100644
--- a/lib/curl_setup_once.h
+++ b/lib/curl_setup_once.h
@@ -515,4 +515,3 @@ typedef int sig_atomic_t;
#endif /* HEADER_CURL_SETUP_ONCE_H */
-
diff --git a/lib/curl_sspi.c b/lib/curl_sspi.c
index 11a7120a..1d0de4ed 100644
--- a/lib/curl_sspi.c
+++ b/lib/curl_sspi.c
@@ -90,8 +90,9 @@ CURLcode Curl_sspi_global_init(void)
return CURLE_FAILED_INIT;
/* Get address of the InitSecurityInterfaceA function from the SSPI dll */
- pInitSecurityInterface = (INITSECURITYINTERFACE_FN)
- GetProcAddress(s_hSecDll, SECURITYENTRYPOINT);
+ pInitSecurityInterface =
+ CURLX_FUNCTION_CAST(INITSECURITYINTERFACE_FN,
+ (GetProcAddress(s_hSecDll, SECURITYENTRYPOINT)));
if(!pInitSecurityInterface)
return CURLE_FAILED_INIT;
@@ -131,7 +132,7 @@ void Curl_sspi_global_cleanup(void)
* Parameters:
*
* userp [in] - The user name in the format User or Domain\User.
- * passdwp [in] - The user's password.
+ * passwdp [in] - The user's password.
* identity [in/out] - The identity structure.
*
* Returns CURLE_OK on success.
diff --git a/lib/curl_threads.c b/lib/curl_threads.c
index b8f0cd35..8e5937aa 100644
--- a/lib/curl_threads.c
+++ b/lib/curl_threads.c
@@ -104,13 +104,21 @@ int Curl_thread_join(curl_thread_t *hnd)
curl_thread_t Curl_thread_create(unsigned int (CURL_STDCALL *func) (void *),
void *arg)
{
+#ifdef _WIN32_WCE
+ typedef HANDLE curl_win_thread_handle_t;
+#elif defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR)
+ typedef unsigned long curl_win_thread_handle_t;
+#else
+ typedef uintptr_t curl_win_thread_handle_t;
+#endif
curl_thread_t t;
+ curl_win_thread_handle_t thread_handle;
#ifdef _WIN32_WCE
- t = CreateThread(NULL, 0, func, arg, 0, NULL);
+ thread_handle = CreateThread(NULL, 0, func, arg, 0, NULL);
#else
- uintptr_t thread_handle = _beginthreadex(NULL, 0, func, arg, 0, NULL);
- t = (curl_thread_t)thread_handle;
+ thread_handle = _beginthreadex(NULL, 0, func, arg, 0, NULL);
#endif
+ t = (curl_thread_t)thread_handle;
if((t == 0) || (t == LongToHandle(-1L))) {
#ifdef _WIN32_WCE
DWORD gle = GetLastError();
diff --git a/lib/curl_threads.h b/lib/curl_threads.h
index 9e0d14a3..2a93644c 100644
--- a/lib/curl_threads.h
+++ b/lib/curl_threads.h
@@ -38,7 +38,8 @@
# define curl_thread_t HANDLE
# define curl_thread_t_null (HANDLE)0
# if !defined(_WIN32_WINNT) || !defined(_WIN32_WINNT_VISTA) || \
- (_WIN32_WINNT < _WIN32_WINNT_VISTA)
+ (_WIN32_WINNT < _WIN32_WINNT_VISTA) || \
+ (defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR))
# define Curl_mutex_init(m) InitializeCriticalSection(m)
# else
# define Curl_mutex_init(m) InitializeCriticalSectionEx(m, 0, 1)
diff --git a/lib/curlx.h b/lib/curlx.h
index 6e418266..4c77d4f2 100644
--- a/lib/curlx.h
+++ b/lib/curlx.h
@@ -102,4 +102,3 @@
#endif /* ENABLE_CURLX_PRINTF */
#endif /* HEADER_CURL_CURLX_H */
-
diff --git a/lib/dict.c b/lib/dict.c
index 408d57b9..78ef046d 100644
--- a/lib/dict.c
+++ b/lib/dict.c
@@ -136,7 +136,7 @@ static CURLcode dict_do(struct connectdata *conn, bool *done)
struct Curl_easy *data = conn->data;
curl_socket_t sockfd = conn->sock[FIRSTSOCKET];
- char *path = data->state.path;
+ char *path = data->state.up.path;
curl_off_t *bytecount = &data->req.bytecount;
*done = TRUE; /* unconditionally */
diff --git a/lib/doh.c b/lib/doh.c
new file mode 100644
index 00000000..ef6013db
--- /dev/null
+++ b/lib/doh.c
@@ -0,0 +1,920 @@
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 2018, 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 https://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.
+ *
+ ***************************************************************************/
+
+#include "curl_setup.h"
+
+#include "urldata.h"
+#include "curl_addrinfo.h"
+#include "doh.h"
+
+#ifdef USE_NGHTTP2
+#include "sendf.h"
+#include "multiif.h"
+#include "url.h"
+#include "share.h"
+#include "curl_base64.h"
+#include "connect.h"
+/* The last 3 #include files should be in this order */
+#include "curl_printf.h"
+#include "curl_memory.h"
+#include "memdebug.h"
+
+#define DNS_CLASS_IN 0x01
+#define DOH_MAX_RESPONSE_SIZE 3000 /* bytes */
+
+#ifndef CURL_DISABLE_VERBOSE_STRINGS
+static const char * const errors[]={
+ "",
+ "Bad label",
+ "Out of range",
+ "Label loop",
+ "Too small",
+ "Out of memory",
+ "RDATA length",
+ "Malformat",
+ "Bad RCODE",
+ "Unexpected TYPE",
+ "Unexpected CLASS",
+ "No content",
+ "Bad ID"
+};
+
+static const char *doh_strerror(DOHcode code)
+{
+ if((code >= DOH_OK) && (code <= DOH_DNS_BAD_ID))
+ return errors[code];
+ return "bad error code";
+}
+#endif
+
+#ifdef DEBUGBUILD
+#define UNITTEST
+#else
+#define UNITTEST static
+#endif
+
+UNITTEST DOHcode doh_encode(const char *host,
+ DNStype dnstype,
+ unsigned char *dnsp, /* buffer */
+ size_t len, /* buffer size */
+ size_t *olen) /* output length */
+{
+ size_t hostlen = strlen(host);
+ unsigned char *orig = dnsp;
+ const char *hostp = host;
+
+ if(len < (12 + hostlen + 4))
+ return DOH_TOO_SMALL_BUFFER;
+
+ *dnsp++ = 0; /* 16 bit id */
+ *dnsp++ = 0;
+ *dnsp++ = 0x01; /* |QR| Opcode |AA|TC|RD| Set the RD bit */
+ *dnsp++ = '\0'; /* |RA| Z | RCODE | */
+ *dnsp++ = '\0';
+ *dnsp++ = 1; /* QDCOUNT (number of entries in the question section) */
+ *dnsp++ = '\0';
+ *dnsp++ = '\0'; /* ANCOUNT */
+ *dnsp++ = '\0';
+ *dnsp++ = '\0'; /* NSCOUNT */
+ *dnsp++ = '\0';
+ *dnsp++ = '\0'; /* ARCOUNT */
+
+ /* store a QNAME */
+ do {
+ char *dot = strchr(hostp, '.');
+ size_t labellen;
+ bool found = false;
+ if(dot) {
+ found = true;
+ labellen = dot - hostp;
+ }
+ else
+ labellen = strlen(hostp);
+ if(labellen > 63) {
+ /* too long label, error out */
+ *olen = 0;
+ return DOH_DNS_BAD_LABEL;
+ }
+ *dnsp++ = (unsigned char)labellen;
+ memcpy(dnsp, hostp, labellen);
+ dnsp += labellen;
+ hostp += labellen + 1;
+ if(!found) {
+ *dnsp++ = 0; /* terminating zero */
+ break;
+ }
+ } while(1);
+
+ *dnsp++ = '\0'; /* upper 8 bit TYPE */
+ *dnsp++ = (unsigned char)dnstype;
+ *dnsp++ = '\0'; /* upper 8 bit CLASS */
+ *dnsp++ = DNS_CLASS_IN; /* IN - "the Internet" */
+
+ *olen = dnsp - orig;
+ return DOH_OK;
+}
+
+static size_t
+doh_write_cb(void *contents, size_t size, size_t nmemb, void *userp)
+{
+ size_t realsize = size * nmemb;
+ struct dohresponse *mem = (struct dohresponse *)userp;
+
+ if((mem->size + realsize) > DOH_MAX_RESPONSE_SIZE)
+ /* suspiciously much for us */
+ return 0;
+
+ mem->memory = realloc(mem->memory, mem->size + realsize);
+ if(mem->memory == NULL)
+ /* out of memory! */
+ return 0;
+
+ memcpy(&(mem->memory[mem->size]), contents, realsize);
+ mem->size += realsize;
+
+ return realsize;
+}
+
+/* called from multi.c when this DOH transfer is complete */
+static int Curl_doh_done(struct Curl_easy *doh, CURLcode result)
+{
+ struct Curl_easy *data = doh->set.dohfor;
+ /* so one of the DOH request done for the 'data' transfer is now complete! */
+ data->req.doh.pending--;
+ infof(data, "a DOH request is completed, %d to go\n", data->req.doh.pending);
+ if(result)
+ infof(data, "DOH request %s\n", curl_easy_strerror(result));
+
+ if(!data->req.doh.pending) {
+ /* DOH completed */
+ curl_slist_free_all(data->req.doh.headers);
+ data->req.doh.headers = NULL;
+ Curl_expire(data, 0, EXPIRE_RUN_NOW);
+ }
+ return 0;
+}
+
+#define ERROR_CHECK_SETOPT(x,y) result = curl_easy_setopt(doh, x, y); \
+ if(result) goto error
+
+static CURLcode dohprobe(struct Curl_easy *data,
+ struct dnsprobe *p, DNStype dnstype,
+ const char *host,
+ const char *url, CURLM *multi,
+ struct curl_slist *headers)
+{
+ struct Curl_easy *doh = NULL;
+ char *nurl = NULL;
+ CURLcode result = CURLE_OK;
+ timediff_t timeout_ms;
+ DOHcode d = doh_encode(host, dnstype, p->dohbuffer, sizeof(p->dohbuffer),
+ &p->dohlen);
+ if(d) {
+ failf(data, "Failed to encode DOH packet [%d]\n", d);
+ return CURLE_OUT_OF_MEMORY;
+ }
+
+ p->dnstype = dnstype;
+ p->serverdoh.memory = NULL;
+ /* the memory will be grown as needed by realloc in the doh_write_cb
+ function */
+ p->serverdoh.size = 0;
+
+ /* Note: this is code for sending the DoH request with GET but there's still
+ no logic that actually enables this. We should either add that ability or
+ yank out the GET code. Discuss! */
+ if(data->set.doh_get) {
+ char *b64;
+ size_t b64len;
+ result = Curl_base64url_encode(data, (char *)p->dohbuffer, p->dohlen,
+ &b64, &b64len);
+ if(result)
+ goto error;
+ nurl = aprintf("%s?dns=%s", url, b64);
+ free(b64);
+ if(!nurl) {
+ result = CURLE_OUT_OF_MEMORY;
+ goto error;
+ }
+ url = nurl;
+ }
+
+ timeout_ms = Curl_timeleft(data, NULL, TRUE);
+
+ /* Curl_open() is the internal version of curl_easy_init() */
+ result = Curl_open(&doh);
+ if(!result) {
+ /* pass in the struct pointer via a local variable to please coverity and
+ the gcc typecheck helpers */
+ struct dohresponse *resp = &p->serverdoh;
+ ERROR_CHECK_SETOPT(CURLOPT_URL, url);
+ ERROR_CHECK_SETOPT(CURLOPT_WRITEFUNCTION, doh_write_cb);
+ ERROR_CHECK_SETOPT(CURLOPT_WRITEDATA, resp);
+ if(!data->set.doh_get) {
+ ERROR_CHECK_SETOPT(CURLOPT_POSTFIELDS, p->dohbuffer);
+ ERROR_CHECK_SETOPT(CURLOPT_POSTFIELDSIZE, (long)p->dohlen);
+ }
+ ERROR_CHECK_SETOPT(CURLOPT_HTTPHEADER, headers);
+ ERROR_CHECK_SETOPT(CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2TLS);
+#ifndef CURLDEBUG
+ /* enforce HTTPS if not debug */
+ ERROR_CHECK_SETOPT(CURLOPT_PROTOCOLS, CURLPROTO_HTTPS);
+#endif
+ ERROR_CHECK_SETOPT(CURLOPT_TIMEOUT_MS, (long)timeout_ms);
+ ERROR_CHECK_SETOPT(CURLOPT_VERBOSE, 1L);
+ doh->set.fmultidone = Curl_doh_done;
+ doh->set.dohfor = data; /* identify for which transfer this is done */
+ p->easy = doh;
+
+ /* add this transfer to the multi handle */
+ if(curl_multi_add_handle(multi, doh))
+ goto error;
+ }
+ else
+ goto error;
+ free(nurl);
+ return CURLE_OK;
+
+ error:
+ free(nurl);
+ Curl_close(doh);
+ return result;
+}
+
+/*
+ * Curl_doh() resolves a name using DOH. It resolves a name and returns a
+ * 'Curl_addrinfo *' with the address information.
+ */
+
+Curl_addrinfo *Curl_doh(struct connectdata *conn,
+ const char *hostname,
+ int port,
+ int *waitp)
+{
+ struct Curl_easy *data = conn->data;
+ CURLcode result = CURLE_OK;
+ *waitp = TRUE; /* this never returns synchronously */
+ (void)conn;
+ (void)hostname;
+ (void)port;
+
+ /* start clean, consider allocating this struct on demand */
+ memset(&data->req.doh, 0, sizeof(struct dohdata));
+
+ data->req.doh.host = hostname;
+ data->req.doh.port = port;
+ data->req.doh.headers =
+ curl_slist_append(NULL,
+ "Content-Type: application/dns-message");
+ if(!data->req.doh.headers)
+ goto error;
+
+ if(conn->ip_version != CURL_IPRESOLVE_V6) {
+ /* create IPv4 DOH request */
+ result = dohprobe(data, &data->req.doh.probe[0], DNS_TYPE_A,
+ hostname, data->set.str[STRING_DOH],
+ data->multi, data->req.doh.headers);
+ if(result)
+ goto error;
+ data->req.doh.pending++;
+ }
+
+ if(conn->ip_version != CURL_IPRESOLVE_V4) {
+ /* create IPv6 DOH request */
+ result = dohprobe(data, &data->req.doh.probe[1], DNS_TYPE_AAAA,
+ hostname, data->set.str[STRING_DOH],
+ data->multi, data->req.doh.headers);
+ if(result)
+ goto error;
+ data->req.doh.pending++;
+ }
+ return NULL;
+
+ error:
+ curl_slist_free_all(data->req.doh.headers);
+ data->req.doh.headers = NULL;
+ curl_easy_cleanup(data->req.doh.probe[0].easy);
+ data->req.doh.probe[0].easy = NULL;
+ curl_easy_cleanup(data->req.doh.probe[1].easy);
+ data->req.doh.probe[1].easy = NULL;
+ return NULL;
+}
+
+static DOHcode skipqname(unsigned char *doh, size_t dohlen,
+ unsigned int *indexp)
+{
+ unsigned char length;
+ do {
+ if(dohlen < (*indexp + 1))
+ return DOH_DNS_OUT_OF_RANGE;
+ length = doh[*indexp];
+ if((length & 0xc0) == 0xc0) {
+ /* name pointer, advance over it and be done */
+ if(dohlen < (*indexp + 2))
+ return DOH_DNS_OUT_OF_RANGE;
+ *indexp += 2;
+ break;
+ }
+ if(length & 0xc0)
+ return DOH_DNS_BAD_LABEL;
+ if(dohlen < (*indexp + 1 + length))
+ return DOH_DNS_OUT_OF_RANGE;
+ *indexp += 1 + length;
+ } while(length);
+ return DOH_OK;
+}
+
+static unsigned short get16bit(unsigned char *doh, int index)
+{
+ return (unsigned short)((doh[index] << 8) | doh[index + 1]);
+}
+
+static unsigned int get32bit(unsigned char *doh, int index)
+{
+ return (doh[index] << 24) | (doh[index + 1] << 16) |
+ (doh[index + 2] << 8) | doh[index + 3];
+}
+
+static DOHcode store_a(unsigned char *doh, int index, struct dohentry *d)
+{
+ /* silently ignore addresses over the limit */
+ if(d->numaddr < DOH_MAX_ADDR) {
+ struct dohaddr *a = &d->addr[d->numaddr];
+ a->type = DNS_TYPE_A;
+ memcpy(&a->ip.v4, &doh[index], 4);
+ d->numaddr++;
+ }
+ return DOH_OK;
+}
+
+static DOHcode store_aaaa(unsigned char *doh, int index, struct dohentry *d)
+{
+ /* silently ignore addresses over the limit */
+ if(d->numaddr < DOH_MAX_ADDR) {
+ struct dohaddr *a = &d->addr[d->numaddr];
+ a->type = DNS_TYPE_AAAA;
+ memcpy(&a->ip.v6, &doh[index], 16);
+ d->numaddr++;
+ }
+ return DOH_OK;
+}
+
+static DOHcode cnameappend(struct cnamestore *c,
+ unsigned char *src,
+ size_t len)
+{
+ if(!c->alloc) {
+ c->allocsize = len + 1;
+ c->alloc = malloc(c->allocsize);
+ if(!c->alloc)
+ return DOH_OUT_OF_MEM;
+ }
+ else if(c->allocsize < (c->allocsize + len + 1)) {
+ char *ptr;
+ c->allocsize += len + 1;
+ ptr = realloc(c->alloc, c->allocsize);
+ if(!ptr) {
+ free(c->alloc);
+ return DOH_OUT_OF_MEM;
+ }
+ c->alloc = ptr;
+ }
+ memcpy(&c->alloc[c->len], src, len);
+ c->len += len;
+ c->alloc[c->len] = 0; /* keep it zero terminated */
+ return DOH_OK;
+}
+
+static DOHcode store_cname(unsigned char *doh,
+ size_t dohlen,
+ unsigned int index,
+ struct dohentry *d)
+{
+ struct cnamestore *c;
+ unsigned int loop = 128; /* a valid DNS name can never loop this much */
+ unsigned char length;
+
+ if(d->numcname == DOH_MAX_CNAME)
+ return DOH_OK; /* skip! */
+
+ c = &d->cname[d->numcname++];
+ do {
+ if(index >= dohlen)
+ return DOH_DNS_OUT_OF_RANGE;
+ length = doh[index];
+ if((length & 0xc0) == 0xc0) {
+ int newpos;
+ /* name pointer, get the new offset (14 bits) */
+ if((index + 1) >= dohlen)
+ return DOH_DNS_OUT_OF_RANGE;
+
+ /* move to the the new index */
+ newpos = (length & 0x3f) << 8 | doh[index + 1];
+ index = newpos;
+ continue;
+ }
+ else if(length & 0xc0)
+ return DOH_DNS_BAD_LABEL; /* bad input */
+ else
+ index++;
+
+ if(length) {
+ DOHcode rc;
+ if(c->len) {
+ rc = cnameappend(c, (unsigned char *)".", 1);
+ if(rc)
+ return rc;
+ }
+ if((index + length) > dohlen)
+ return DOH_DNS_BAD_LABEL;
+
+ rc = cnameappend(c, &doh[index], length);
+ if(rc)
+ return rc;
+ index += length;
+ }
+ } while(length && --loop);
+
+ if(!loop)
+ return DOH_DNS_LABEL_LOOP;
+ return DOH_OK;
+}
+
+static DOHcode rdata(unsigned char *doh,
+ size_t dohlen,
+ unsigned short rdlength,
+ unsigned short type,
+ int index,
+ struct dohentry *d)
+{
+ /* RDATA
+ - A (TYPE 1): 4 bytes
+ - AAAA (TYPE 28): 16 bytes
+ - NS (TYPE 2): N bytes */
+ DOHcode rc;
+
+ switch(type) {
+ case DNS_TYPE_A:
+ if(rdlength != 4)
+ return DOH_DNS_RDATA_LEN;
+ rc = store_a(doh, index, d);
+ if(rc)
+ return rc;
+ break;
+ case DNS_TYPE_AAAA:
+ if(rdlength != 16)
+ return DOH_DNS_RDATA_LEN;
+ rc = store_aaaa(doh, index, d);
+ if(rc)
+ return rc;
+ break;
+ case DNS_TYPE_CNAME:
+ rc = store_cname(doh, dohlen, index, d);
+ if(rc)
+ return rc;
+ break;
+ default:
+ /* unsupported type, just skip it */
+ break;
+ }
+ return DOH_OK;
+}
+
+static void init_dohentry(struct dohentry *de)
+{
+ memset(de, 0, sizeof(*de));
+ de->ttl = INT_MAX;
+}
+
+
+UNITTEST DOHcode doh_decode(unsigned char *doh,
+ size_t dohlen,
+ DNStype dnstype,
+ struct dohentry *d)
+{
+ unsigned char rcode;
+ unsigned short qdcount;
+ unsigned short ancount;
+ unsigned short type = 0;
+ unsigned short class;
+ unsigned short rdlength;
+ unsigned short nscount;
+ unsigned short arcount;
+ unsigned int index = 12;
+ DOHcode rc;
+
+ if(dohlen < 12)
+ return DOH_TOO_SMALL_BUFFER; /* too small */
+ if(doh[0] || doh[1])
+ return DOH_DNS_BAD_ID; /* bad ID */
+ rcode = doh[3] & 0x0f;
+ if(rcode)
+ return DOH_DNS_BAD_RCODE; /* bad rcode */
+
+ qdcount = get16bit(doh, 4);
+ while(qdcount) {
+ rc = skipqname(doh, dohlen, &index);
+ if(rc)
+ return rc; /* bad qname */
+ if(dohlen < (index + 4))
+ return DOH_DNS_OUT_OF_RANGE;
+ index += 4; /* skip question's type and class */
+ qdcount--;
+ }
+
+ ancount = get16bit(doh, 6);
+ while(ancount) {
+ unsigned int ttl;
+
+ rc = skipqname(doh, dohlen, &index);
+ if(rc)
+ return rc; /* bad qname */
+
+ if(dohlen < (index + 2))
+ return DOH_DNS_OUT_OF_RANGE;
+
+ type = get16bit(doh, index);
+ if((type != DNS_TYPE_CNAME) && (type != dnstype))
+ /* Not the same type as was asked for nor CNAME */
+ return DOH_DNS_UNEXPECTED_TYPE;
+ index += 2;
+
+ if(dohlen < (index + 2))
+ return DOH_DNS_OUT_OF_RANGE;
+ class = get16bit(doh, index);
+ if(DNS_CLASS_IN != class)
+ return DOH_DNS_UNEXPECTED_CLASS; /* unsupported */
+ index += 2;
+
+ if(dohlen < (index + 4))
+ return DOH_DNS_OUT_OF_RANGE;
+
+ ttl = get32bit(doh, index);
+ if(ttl < d->ttl)
+ d->ttl = ttl;
+ index += 4;
+
+ if(dohlen < (index + 2))
+ return DOH_DNS_OUT_OF_RANGE;
+
+ rdlength = get16bit(doh, index);
+ index += 2;
+ if(dohlen < (index + rdlength))
+ return DOH_DNS_OUT_OF_RANGE;
+
+ rc = rdata(doh, dohlen, rdlength, type, index, d);
+ if(rc)
+ return rc; /* bad rdata */
+ index += rdlength;
+ ancount--;
+ }
+
+ nscount = get16bit(doh, 8);
+ while(nscount) {
+ rc = skipqname(doh, dohlen, &index);
+ if(rc)
+ return rc; /* bad qname */
+
+ if(dohlen < (index + 8))
+ return DOH_DNS_OUT_OF_RANGE;
+
+ index += 2 + 2 + 4; /* type, class and ttl */
+
+ if(dohlen < (index + 2))
+ return DOH_DNS_OUT_OF_RANGE;
+
+ rdlength = get16bit(doh, index);
+ index += 2;
+ if(dohlen < (index + rdlength))
+ return DOH_DNS_OUT_OF_RANGE;
+ index += rdlength;
+ nscount--;
+ }
+
+ arcount = get16bit(doh, 10);
+ while(arcount) {
+ rc = skipqname(doh, dohlen, &index);
+ if(rc)
+ return rc; /* bad qname */
+
+ if(dohlen < (index + 8))
+ return DOH_DNS_OUT_OF_RANGE;
+
+ index += 2 + 2 + 4; /* type, class and ttl */
+
+ if(dohlen < (index + 2))
+ return DOH_DNS_OUT_OF_RANGE;
+
+ rdlength = get16bit(doh, index);
+ index += 2;
+ if(dohlen < (index + rdlength))
+ return DOH_DNS_OUT_OF_RANGE;
+ index += rdlength;
+ arcount--;
+ }
+
+ if(index != dohlen)
+ return DOH_DNS_MALFORMAT; /* something is wrong */
+
+ if((type != DNS_TYPE_NS) && !d->numcname && !d->numaddr)
+ /* nothing stored! */
+ return DOH_NO_CONTENT;
+
+ return DOH_OK; /* ok */
+}
+
+#ifndef CURL_DISABLE_VERBOSE_STRINGS
+static void showdoh(struct Curl_easy *data,
+ struct dohentry *d)
+{
+ int i;
+ infof(data, "TTL: %u seconds\n", d->ttl);
+ for(i = 0; i < d->numaddr; i++) {
+ struct dohaddr *a = &d->addr[i];
+ if(a->type == DNS_TYPE_A) {
+ infof(data, "DOH A: %u.%u.%u.%u\n",
+ a->ip.v4[0], a->ip.v4[1],
+ a->ip.v4[2], a->ip.v4[3]);
+ }
+ else if(a->type == DNS_TYPE_AAAA) {
+ int j;
+ char buffer[128];
+ char *ptr;
+ size_t len;
+ snprintf(buffer, 128, "DOH AAAA: ");
+ ptr = &buffer[10];
+ len = 118;
+ for(j = 0; j < 16; j += 2) {
+ size_t l;
+ snprintf(ptr, len, "%s%02x%02x", j?":":"", d->addr[i].ip.v6[j],
+ d->addr[i].ip.v6[j + 1]);
+ l = strlen(ptr);
+ len -= l;
+ ptr += l;
+ }
+ infof(data, "%s\n", buffer);
+ }
+ }
+ for(i = 0; i < d->numcname; i++) {
+ infof(data, "CNAME: %s\n", d->cname[i].alloc);
+ }
+}
+#else
+#define showdoh(x,y)
+#endif
+
+/*
+ * doh2ai()
+ *
+ * This function returns a pointer to the first element of a newly allocated
+ * Curl_addrinfo struct linked list filled with the data from a set of DOH
+ * lookups. Curl_addrinfo is meant to work like the addrinfo struct does for
+ * a IPv6 stack, but usable also for IPv4, all hosts and environments.
+ *
+ * The memory allocated by this function *MUST* be free'd later on calling
+ * Curl_freeaddrinfo(). For each successful call to this function there
+ * must be an associated call later to Curl_freeaddrinfo().
+ */
+
+static Curl_addrinfo *
+doh2ai(const struct dohentry *de, const char *hostname, int port)
+{
+ Curl_addrinfo *ai;
+ Curl_addrinfo *prevai = NULL;
+ Curl_addrinfo *firstai = NULL;
+ struct sockaddr_in *addr;
+#ifdef ENABLE_IPV6
+ struct sockaddr_in6 *addr6;
+#endif
+ CURLcode result = CURLE_OK;
+ int i;
+
+ if(!de)
+ /* no input == no output! */
+ return NULL;
+
+ for(i = 0; i < de->numaddr; i++) {
+ size_t ss_size;
+ CURL_SA_FAMILY_T addrtype;
+ if(de->addr[i].type == DNS_TYPE_AAAA) {
+#ifndef ENABLE_IPV6
+ /* we can't handle IPv6 addresses */
+ continue;
+#else
+ ss_size = sizeof(struct sockaddr_in6);
+ addrtype = AF_INET6;
+#endif
+ }
+ else {
+ ss_size = sizeof(struct sockaddr_in);
+ addrtype = AF_INET;
+ }
+
+ ai = calloc(1, sizeof(Curl_addrinfo));
+ if(!ai) {
+ result = CURLE_OUT_OF_MEMORY;
+ break;
+ }
+ ai->ai_canonname = strdup(hostname);
+ if(!ai->ai_canonname) {
+ result = CURLE_OUT_OF_MEMORY;
+ free(ai);
+ break;
+ }
+ ai->ai_addr = calloc(1, ss_size);
+ if(!ai->ai_addr) {
+ result = CURLE_OUT_OF_MEMORY;
+ free(ai->ai_canonname);
+ free(ai);
+ break;
+ }
+
+ if(!firstai)
+ /* store the pointer we want to return from this function */
+ firstai = ai;
+
+ if(prevai)
+ /* make the previous entry point to this */
+ prevai->ai_next = ai;
+
+ ai->ai_family = addrtype;
+
+ /* we return all names as STREAM, so when using this address for TFTP
+ the type must be ignored and conn->socktype be used instead! */
+ ai->ai_socktype = SOCK_STREAM;
+
+ ai->ai_addrlen = (curl_socklen_t)ss_size;
+
+ /* leave the rest of the struct filled with zero */
+
+ switch(ai->ai_family) {
+ case AF_INET:
+ addr = (void *)ai->ai_addr; /* storage area for this info */
+ DEBUGASSERT(sizeof(struct in_addr) == sizeof(de->addr[i].ip.v4));
+ memcpy(&addr->sin_addr, &de->addr[i].ip.v4, sizeof(struct in_addr));
+ addr->sin_family = (CURL_SA_FAMILY_T)addrtype;
+ addr->sin_port = htons((unsigned short)port);
+ break;
+
+#ifdef ENABLE_IPV6
+ case AF_INET6:
+ addr6 = (void *)ai->ai_addr; /* storage area for this info */
+ DEBUGASSERT(sizeof(struct in6_addr) == sizeof(de->addr[i].ip.v6));
+ memcpy(&addr6->sin6_addr, &de->addr[i].ip.v6, sizeof(struct in6_addr));
+ addr6->sin6_family = (CURL_SA_FAMILY_T)addrtype;
+ addr6->sin6_port = htons((unsigned short)port);
+ break;
+#endif
+ }
+
+ prevai = ai;
+ }
+
+ if(result) {
+ Curl_freeaddrinfo(firstai);
+ firstai = NULL;
+ }
+
+ return firstai;
+}
+
+#ifndef CURL_DISABLE_VERBOSE_STRINGS
+static const char *type2name(DNStype dnstype)
+{
+ return (dnstype == DNS_TYPE_A)?"A":"AAAA";
+}
+#endif
+
+UNITTEST void de_cleanup(struct dohentry *d)
+{
+ int i = 0;
+ for(i = 0; i < d->numcname; i++) {
+ free(d->cname[i].alloc);
+ }
+}
+
+CURLcode Curl_doh_is_resolved(struct connectdata *conn,
+ struct Curl_dns_entry **dnsp)
+{
+ struct Curl_easy *data = conn->data;
+ *dnsp = NULL; /* defaults to no response */
+
+ if(!data->req.doh.probe[0].easy && !data->req.doh.probe[1].easy) {
+ failf(data, "Could not DOH-resolve: %s", conn->async.hostname);
+ return conn->bits.proxy?CURLE_COULDNT_RESOLVE_PROXY:
+ CURLE_COULDNT_RESOLVE_HOST;
+ }
+ else if(!data->req.doh.pending) {
+ DOHcode rc;
+ DOHcode rc2;
+ struct dohentry de;
+ struct Curl_dns_entry *dns;
+ struct Curl_addrinfo *ai;
+ /* remove DOH handles from multi handle and close them */
+ curl_multi_remove_handle(data->multi, data->req.doh.probe[0].easy);
+ Curl_close(data->req.doh.probe[0].easy);
+ curl_multi_remove_handle(data->multi, data->req.doh.probe[1].easy);
+ Curl_close(data->req.doh.probe[1].easy);
+
+ /* parse the responses, create the struct and return it! */
+ init_dohentry(&de);
+ rc = doh_decode(data->req.doh.probe[0].serverdoh.memory,
+ data->req.doh.probe[0].serverdoh.size,
+ data->req.doh.probe[0].dnstype,
+ &de);
+ free(data->req.doh.probe[0].serverdoh.memory);
+ if(rc) {
+ infof(data, "DOH: %s type %s for %s\n", doh_strerror(rc),
+ type2name(data->req.doh.probe[0].dnstype),
+ data->req.doh.host);
+ }
+ rc2 = doh_decode(data->req.doh.probe[1].serverdoh.memory,
+ data->req.doh.probe[1].serverdoh.size,
+ data->req.doh.probe[1].dnstype,
+ &de);
+ free(data->req.doh.probe[1].serverdoh.memory);
+ if(rc2) {
+ infof(data, "DOG: %s type %s for %s\n", doh_strerror(rc2),
+ type2name(data->req.doh.probe[1].dnstype),
+ data->req.doh.host);
+ }
+ if(!rc || !rc2) {
+ infof(data, "DOH Host name: %s\n", data->req.doh.host);
+ showdoh(data, &de);
+
+ ai = doh2ai(&de, data->req.doh.host, data->req.doh.port);
+ if(!ai) {
+ de_cleanup(&de);
+ return CURLE_OUT_OF_MEMORY;
+ }
+
+ if(data->share)
+ Curl_share_lock(data, CURL_LOCK_DATA_DNS, CURL_LOCK_ACCESS_SINGLE);
+
+ /* we got a response, store it in the cache */
+ dns = Curl_cache_addr(data, ai, data->req.doh.host, data->req.doh.port);
+
+ if(data->share)
+ Curl_share_unlock(data, CURL_LOCK_DATA_DNS);
+
+ de_cleanup(&de);
+ if(!dns)
+ /* returned failure, bail out nicely */
+ Curl_freeaddrinfo(ai);
+ else {
+ conn->async.dns = dns;
+ *dnsp = dns;
+ return CURLE_OK;
+ }
+ }
+ de_cleanup(&de);
+
+ return CURLE_COULDNT_RESOLVE_HOST;
+ }
+
+ return CURLE_OK;
+}
+
+#else /* !USE_NGHTTP2 */
+/*
+ */
+Curl_addrinfo *Curl_doh(struct connectdata *conn,
+ const char *hostname,
+ int port,
+ int *waitp)
+{
+ (void)conn;
+ (void)hostname;
+ (void)port;
+ (void)waitp;
+ return NULL;
+}
+
+CURLcode Curl_doh_is_resolved(struct connectdata *conn,
+ struct Curl_dns_entry **dnsp)
+{
+ (void)conn;
+ (void)dnsp;
+ return CURLE_NOT_BUILT_IN;
+}
+
+#endif /* USE_NGHTTP2 */
diff --git a/lib/doh.h b/lib/doh.h
new file mode 100644
index 00000000..83c79bc5
--- /dev/null
+++ b/lib/doh.h
@@ -0,0 +1,105 @@
+#ifndef HEADER_CURL_DOH_H
+#define HEADER_CURL_DOH_H
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 2018, 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 https://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.
+ *
+ ***************************************************************************/
+
+#include "urldata.h"
+#include "curl_addrinfo.h"
+
+/*
+ * Curl_doh() resolve a name using DoH (DNS-over-HTTPS). It resolves a name
+ * and returns a 'Curl_addrinfo *' with the address information.
+ */
+
+Curl_addrinfo *Curl_doh(struct connectdata *conn,
+ const char *hostname,
+ int port,
+ int *waitp);
+
+CURLcode Curl_doh_is_resolved(struct connectdata *conn,
+ struct Curl_dns_entry **dns);
+
+int Curl_doh_getsock(struct connectdata *conn, curl_socket_t *socks,
+ int numsocks);
+
+typedef enum {
+ DOH_OK,
+ DOH_DNS_BAD_LABEL, /* 1 */
+ DOH_DNS_OUT_OF_RANGE, /* 2 */
+ DOH_DNS_LABEL_LOOP, /* 3 */
+ DOH_TOO_SMALL_BUFFER, /* 4 */
+ DOH_OUT_OF_MEM, /* 5 */
+ DOH_DNS_RDATA_LEN, /* 6 */
+ DOH_DNS_MALFORMAT, /* 7 */
+ DOH_DNS_BAD_RCODE, /* 8 - no such name */
+ DOH_DNS_UNEXPECTED_TYPE, /* 9 */
+ DOH_DNS_UNEXPECTED_CLASS, /* 10 */
+ DOH_NO_CONTENT, /* 11 */
+ DOH_DNS_BAD_ID /* 12 */
+} DOHcode;
+
+typedef enum {
+ DNS_TYPE_A = 1,
+ DNS_TYPE_NS = 2,
+ DNS_TYPE_CNAME = 5,
+ DNS_TYPE_AAAA = 28
+} DNStype;
+
+#define DOH_MAX_ADDR 24
+#define DOH_MAX_CNAME 4
+
+struct cnamestore {
+ size_t len; /* length of cname */
+ char *alloc; /* allocated pointer */
+ size_t allocsize; /* allocated size */
+};
+
+struct dohaddr {
+ int type;
+ union {
+ unsigned char v4[4]; /* network byte order */
+ unsigned char v6[16];
+ } ip;
+};
+
+struct dohentry {
+ unsigned int ttl;
+ int numaddr;
+ struct dohaddr addr[DOH_MAX_ADDR];
+ int numcname;
+ struct cnamestore cname[DOH_MAX_CNAME];
+};
+
+
+#ifdef DEBUGBUILD
+DOHcode doh_encode(const char *host,
+ DNStype dnstype,
+ unsigned char *dnsp, /* buffer */
+ size_t len, /* buffer size */
+ size_t *olen); /* output length */
+DOHcode doh_decode(unsigned char *doh,
+ size_t dohlen,
+ DNStype dnstype,
+ struct dohentry *d);
+void de_cleanup(struct dohentry *d);
+#endif
+#endif /* HEADER_CURL_DOH_H */
diff --git a/lib/dotdot.c b/lib/dotdot.c
index cbb308d7..2c6177ae 100644
--- a/lib/dotdot.c
+++ b/lib/dotdot.c
@@ -62,6 +62,8 @@ char *Curl_dedotdotify(const char *input)
if(!out)
return NULL; /* out of memory */
+ *out = 0; /* zero terminates, for inputs like "./" */
+
/* get a cloned copy of the input */
clone = strdup(input);
if(!clone) {
diff --git a/lib/dotdot.h b/lib/dotdot.h
index fac8e6f2..125af436 100644
--- a/lib/dotdot.h
+++ b/lib/dotdot.h
@@ -22,4 +22,4 @@
*
***************************************************************************/
char *Curl_dedotdotify(const char *input);
-#endif
+#endif /* HEADER_CURL_DOTDOT_H */
diff --git a/lib/easy.c b/lib/easy.c
index 027d0bef..4de4e652 100644
--- a/lib/easy.c
+++ b/lib/easy.c
@@ -1002,10 +1002,6 @@ struct Curl_easy *curl_easy_duphandle(struct Curl_easy *data)
*/
void curl_easy_reset(struct Curl_easy *data)
{
- Curl_safefree(data->state.pathbuffer);
-
- data->state.path = NULL;
-
Curl_free_request_state(data);
/* zero out UserDefined data: */
@@ -1197,3 +1193,22 @@ CURLcode curl_easy_send(struct Curl_easy *data, const void *buffer,
return result;
}
+
+/*
+ * Performs connection upkeep for the given session handle.
+ */
+CURLcode curl_easy_upkeep(struct Curl_easy *data)
+{
+ /* Verify that we got an easy handle we can work with. */
+ if(!GOOD_EASY_HANDLE(data))
+ return CURLE_BAD_FUNCTION_ARGUMENT;
+
+ if(data->multi_easy) {
+ /* Use the common function to keep connections alive. */
+ return Curl_upkeep(&data->multi_easy->conn_cache, data);
+ }
+ else {
+ /* No connections, so just return success */
+ return CURLE_OK;
+ }
+}
diff --git a/lib/easyif.h b/lib/easyif.h
index f6132cc7..6ba7e549 100644
--- a/lib/easyif.h
+++ b/lib/easyif.h
@@ -30,4 +30,3 @@ CURL_EXTERN CURLcode curl_easy_perform_ev(struct Curl_easy *easy);
#endif
#endif /* HEADER_CURL_EASYIF_H */
-
diff --git a/lib/escape.c b/lib/escape.c
index 10774f05..afd3899f 100644
--- a/lib/escape.c
+++ b/lib/escape.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -41,7 +41,7 @@
its behavior is altered by the current locale.
See https://tools.ietf.org/html/rfc3986#section-2.3
*/
-static bool Curl_isunreserved(unsigned char in)
+bool Curl_isunreserved(unsigned char in)
{
switch(in) {
case '0': case '1': case '2': case '3': case '4':
@@ -141,6 +141,8 @@ char *curl_easy_escape(struct Curl_easy *data, const char *string,
* Returns a pointer to a malloced string in *ostring with length given in
* *olen. If length == 0, the length is assumed to be strlen(string).
*
+ * 'data' can be set to NULL but then this function can't convert network
+ * data to host for non-ascii.
*/
CURLcode Curl_urldecode(struct Curl_easy *data,
const char *string, size_t length,
@@ -151,7 +153,7 @@ CURLcode Curl_urldecode(struct Curl_easy *data,
char *ns = malloc(alloc);
size_t strindex = 0;
unsigned long hex;
- CURLcode result;
+ CURLcode result = CURLE_OK;
if(!ns)
return CURLE_OUT_OF_MEMORY;
@@ -171,11 +173,13 @@ CURLcode Curl_urldecode(struct Curl_easy *data,
in = curlx_ultouc(hex); /* this long is never bigger than 255 anyway */
- result = Curl_convert_from_network(data, (char *)&in, 1);
- if(result) {
- /* Curl_convert_from_network calls failf if unsuccessful */
- free(ns);
- return result;
+ if(data) {
+ result = Curl_convert_from_network(data, (char *)&in, 1);
+ if(result) {
+ /* Curl_convert_from_network calls failf if unsuccessful */
+ free(ns);
+ return result;
+ }
}
string += 2;
diff --git a/lib/escape.h b/lib/escape.h
index 638666f0..d8bbe5cb 100644
--- a/lib/escape.h
+++ b/lib/escape.h
@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -24,10 +24,10 @@
/* Escape and unescape URL encoding in strings. The functions return a new
* allocated string or NULL if an error occurred. */
+bool Curl_isunreserved(unsigned char in);
CURLcode Curl_urldecode(struct Curl_easy *data,
const char *string, size_t length,
char **ostring, size_t *olen,
bool reject_crlf);
#endif /* HEADER_CURL_ESCAPE_H */
-
diff --git a/lib/file.c b/lib/file.c
index e50e9887..722b55e9 100644
--- a/lib/file.c
+++ b/lib/file.c
@@ -143,7 +143,7 @@ static CURLcode file_connect(struct connectdata *conn, bool *done)
#endif
size_t real_path_len;
- CURLcode result = Curl_urldecode(data, data->state.path, 0, &real_path,
+ CURLcode result = Curl_urldecode(data, data->state.up.path, 0, &real_path,
&real_path_len, FALSE);
if(result)
return result;
@@ -197,7 +197,7 @@ static CURLcode file_connect(struct connectdata *conn, bool *done)
file->fd = fd;
if(!data->set.upload && (fd == -1)) {
- failf(data, "Couldn't open file %s", data->state.path);
+ failf(data, "Couldn't open file %s", data->state.up.path);
file_done(conn, CURLE_FILE_COULDNT_READ_FILE, FALSE);
return CURLE_FILE_COULDNT_READ_FILE;
}
@@ -307,7 +307,7 @@ static CURLcode file_upload(struct connectdata *conn)
size_t nread;
size_t nwrite;
size_t readcount;
- result = Curl_fillreadbuffer(conn, (int)data->set.buffer_size, &readcount);
+ result = Curl_fillreadbuffer(conn, data->set.buffer_size, &readcount);
if(result)
break;
@@ -386,7 +386,6 @@ static CURLcode file_do(struct connectdata *conn, bool *done)
*done = TRUE; /* unconditionally */
- Curl_initinfo(data);
Curl_pgrsStartNow(data);
if(data->set.upload)
@@ -413,21 +412,18 @@ static CURLcode file_do(struct connectdata *conn, bool *done)
}
}
- /* If we have selected NOBODY and HEADER, it means that we only want file
- information. Which for FILE can't be much more than the file size and
- date. */
- if(data->set.opt_no_body && data->set.include_header && fstated) {
+ if(fstated) {
time_t filetime;
struct tm buffer;
const struct tm *tm = &buffer;
char header[80];
snprintf(header, sizeof(header),
"Content-Length: %" CURL_FORMAT_CURL_OFF_T "\r\n", expected_size);
- result = Curl_client_write(conn, CLIENTWRITE_BOTH, header, 0);
+ result = Curl_client_write(conn, CLIENTWRITE_HEADER, header, 0);
if(result)
return result;
- result = Curl_client_write(conn, CLIENTWRITE_BOTH,
+ result = Curl_client_write(conn, CLIENTWRITE_HEADER,
(char *)"Accept-ranges: bytes\r\n", 0);
if(result)
return result;
@@ -439,19 +435,22 @@ static CURLcode file_do(struct connectdata *conn, bool *done)
/* format: "Tue, 15 Nov 1994 12:45:26 GMT" */
snprintf(header, sizeof(header),
- "Last-Modified: %s, %02d %s %4d %02d:%02d:%02d GMT\r\n",
+ "Last-Modified: %s, %02d %s %4d %02d:%02d:%02d GMT\r\n%s",
Curl_wkday[tm->tm_wday?tm->tm_wday-1:6],
tm->tm_mday,
Curl_month[tm->tm_mon],
tm->tm_year + 1900,
tm->tm_hour,
tm->tm_min,
- tm->tm_sec);
- result = Curl_client_write(conn, CLIENTWRITE_BOTH, header, 0);
- if(!result)
- /* set the file size to make it available post transfer */
- Curl_pgrsSetDownloadSize(data, expected_size);
- return result;
+ tm->tm_sec,
+ data->set.opt_no_body ? "": "\r\n");
+ result = Curl_client_write(conn, CLIENTWRITE_HEADER, header, 0);
+ if(result)
+ return result;
+ /* set the file size to make it available post transfer */
+ Curl_pgrsSetDownloadSize(data, expected_size);
+ if(data->set.opt_no_body)
+ return result;
}
/* Check whether file range has been specified */
diff --git a/lib/file.h b/lib/file.h
index c12ae0e0..20828ad4 100644
--- a/lib/file.h
+++ b/lib/file.h
@@ -38,4 +38,3 @@ extern const struct Curl_handler Curl_handler_file;
#endif
#endif /* HEADER_CURL_FILE_H */
-
diff --git a/lib/firefox-db2pem.sh b/lib/firefox-db2pem.sh
index 7d691ff6..45489324 100644
--- a/lib/firefox-db2pem.sh
+++ b/lib/firefox-db2pem.sh
@@ -51,4 +51,3 @@ while read nickname; \
do echo $nickname | sed -e "s/Builtin Object Token://g"; \
eval certutil -d $db -L -n "$nickname" -a ; \
done >> $out
-
diff --git a/lib/ftp.c b/lib/ftp.c
index 7dbf0800..793d991c 100644
--- a/lib/ftp.c
+++ b/lib/ftp.c
@@ -1444,6 +1444,7 @@ static CURLcode ftp_state_list(struct connectdata *conn)
{
CURLcode result = CURLE_OK;
struct Curl_easy *data = conn->data;
+ struct FTP *ftp = data->req.protop;
/* If this output is to be machine-parsed, the NLST command might be better
to use, since the LIST command output is not specified or standard in any
@@ -1460,7 +1461,7 @@ static CURLcode ftp_state_list(struct connectdata *conn)
then just do LIST (in that case: nothing to do here)
*/
char *cmd, *lstArg, *slashPos;
- const char *inpath = data->state.path;
+ const char *inpath = ftp->path;
lstArg = NULL;
if((data->set.ftp_filemethod == FTPFILE_NOCWD) &&
@@ -3141,7 +3142,6 @@ static CURLcode ftp_done(struct connectdata *conn, CURLcode status,
int ftpcode;
CURLcode result = CURLE_OK;
char *path = NULL;
- const char *path_to_use = data->state.path;
if(!ftp)
return CURLE_OK;
@@ -3193,7 +3193,7 @@ static CURLcode ftp_done(struct connectdata *conn, CURLcode status,
if(!result)
/* get the "raw" path */
- result = Curl_urldecode(data, path_to_use, 0, &path, NULL, TRUE);
+ result = Curl_urldecode(data, ftp->path, 0, &path, NULL, TRUE);
if(result) {
/* We can limp along anyway (and should try to since we may already be in
* the error path) */
@@ -3213,9 +3213,11 @@ static CURLcode ftp_done(struct connectdata *conn, CURLcode status,
ftpc->prevpath[dlen] = 0; /* terminate */
}
else {
+ free(path);
/* we never changed dir */
ftpc->prevpath = strdup("");
- free(path);
+ if(!ftpc->prevpath)
+ return CURLE_OUT_OF_MEMORY;
}
if(ftpc->prevpath)
infof(data, "Remembering we are in dir \"%s\"\n", ftpc->prevpath);
@@ -3346,7 +3348,7 @@ static CURLcode ftp_done(struct connectdata *conn, CURLcode status,
/* Send any post-transfer QUOTE strings? */
if(!status && !result && !premature && data->set.postquote)
result = ftp_sendquote(conn, data->set.postquote);
-
+ Curl_safefree(ftp->pathalloc);
return result;
}
@@ -3695,12 +3697,13 @@ static void wc_data_dtor(void *ptr)
static CURLcode init_wc_data(struct connectdata *conn)
{
char *last_slash;
- char *path = conn->data->state.path;
+ struct FTP *ftp = conn->data->req.protop;
+ char *path = ftp->path;
struct WildcardData *wildcard = &(conn->data->wildcard);
CURLcode result = CURLE_OK;
struct ftp_wc *ftpwc = NULL;
- last_slash = strrchr(conn->data->state.path, '/');
+ last_slash = strrchr(ftp->path, '/');
if(last_slash) {
last_slash++;
if(last_slash[0] == '\0') {
@@ -3757,7 +3760,7 @@ static CURLcode init_wc_data(struct connectdata *conn)
goto fail;
}
- wildcard->path = strdup(conn->data->state.path);
+ wildcard->path = strdup(ftp->path);
if(!wildcard->path) {
result = CURLE_OUT_OF_MEMORY;
goto fail;
@@ -3828,16 +3831,15 @@ static CURLcode wc_statemach(struct connectdata *conn)
/* filelist has at least one file, lets get first one */
struct ftp_conn *ftpc = &conn->proto.ftpc;
struct curl_fileinfo *finfo = wildcard->filelist.head->ptr;
+ struct FTP *ftp = conn->data->req.protop;
char *tmp_path = aprintf("%s%s", wildcard->path, finfo->filename);
if(!tmp_path)
return CURLE_OUT_OF_MEMORY;
- /* switch default "state.pathbuffer" and tmp_path, good to see
- ftp_parse_url_path function to understand this trick */
- Curl_safefree(conn->data->state.pathbuffer);
- conn->data->state.pathbuffer = tmp_path;
- conn->data->state.path = tmp_path;
+ /* switch default ftp->path and tmp_path */
+ free(ftp->pathalloc);
+ ftp->pathalloc = ftp->path = tmp_path;
infof(conn->data, "Wildcard - START of \"%s\"\n", finfo->filename);
if(conn->data->set.chunk_bgn) {
@@ -3963,10 +3965,14 @@ CURLcode Curl_ftpsend(struct connectdata *conn, const char *cmd)
enum protection_level data_sec = conn->data_prot;
#endif
+ if(!cmd)
+ return CURLE_BAD_FUNCTION_ARGUMENT;
+
write_len = strlen(cmd);
- if(write_len > (sizeof(s) -3))
+ if(!write_len || write_len > (sizeof(s) -3))
return CURLE_BAD_FUNCTION_ARGUMENT;
+ memcpy(&s, cmd, write_len);
strcpy(&s[write_len], "\r\n"); /* append a trailing CRLF */
write_len += 2;
bytes_written = 0;
@@ -4101,7 +4107,7 @@ CURLcode ftp_parse_url_path(struct connectdata *conn)
struct FTP *ftp = data->req.protop;
struct ftp_conn *ftpc = &conn->proto.ftpc;
const char *slash_pos; /* position of the first '/' char in curpos */
- const char *path_to_use = data->state.path;
+ const char *path_to_use = ftp->path;
const char *cur_pos;
const char *filename = NULL;
@@ -4187,7 +4193,7 @@ CURLcode ftp_parse_url_path(struct connectdata *conn)
/* parse the URL path into separate path components */
while((slash_pos = strchr(cur_pos, '/')) != NULL) {
/* 1 or 0 pointer offset to indicate absolute directory */
- ssize_t absolute_dir = ((cur_pos - data->state.path > 0) &&
+ ssize_t absolute_dir = ((cur_pos - ftp->path > 0) &&
(ftpc->dirdepth == 0))?1:0;
/* seek out the next path component */
@@ -4264,7 +4270,7 @@ CURLcode ftp_parse_url_path(struct connectdata *conn)
size_t dlen;
char *path;
CURLcode result =
- Curl_urldecode(conn->data, data->state.path, 0, &path, &dlen, TRUE);
+ Curl_urldecode(conn->data, ftp->path, 0, &path, &dlen, TRUE);
if(result) {
freedirs(ftpc);
return result;
@@ -4384,16 +4390,16 @@ static CURLcode ftp_setup_connection(struct connectdata *conn)
char *type;
struct FTP *ftp;
- conn->data->req.protop = ftp = malloc(sizeof(struct FTP));
+ conn->data->req.protop = ftp = calloc(sizeof(struct FTP), 1);
if(NULL == ftp)
return CURLE_OUT_OF_MEMORY;
- data->state.path++; /* don't include the initial slash */
+ ftp->path = &data->state.up.path[1]; /* don't include the initial slash */
data->state.slash_removed = TRUE; /* we've skipped the slash */
/* FTP URLs support an extension like ";type=<typecode>" that
* we'll try to get now! */
- type = strstr(data->state.path, ";type=");
+ type = strstr(ftp->path, ";type=");
if(!type)
type = strstr(conn->host.rawalloc, ";type=");
diff --git a/lib/ftp.h b/lib/ftp.h
index 7ec33911..38d03223 100644
--- a/lib/ftp.h
+++ b/lib/ftp.h
@@ -105,6 +105,8 @@ struct FTP {
curl_off_t *bytecountp;
char *user; /* user name string */
char *passwd; /* password string */
+ char *path; /* points to the urlpieces struct field */
+ char *pathalloc; /* if non-NULL a pointer to an allocated path */
/* transfer a file/body or not, done as a typedefed enum just to make
debuggers display the full symbol and not just the numerical value */
diff --git a/lib/getinfo.c b/lib/getinfo.c
index 14b45627..54c2c2f1 100644
--- a/lib/getinfo.c
+++ b/lib/getinfo.c
@@ -85,7 +85,6 @@ CURLcode Curl_initinfo(struct Curl_easy *data)
#ifdef USE_SSL
Curl_ssl_free_certinfo(data);
#endif
-
return CURLE_OK;
}
diff --git a/lib/gopher.c b/lib/gopher.c
index 3ecee9bd..b441a641 100644
--- a/lib/gopher.c
+++ b/lib/gopher.c
@@ -78,7 +78,7 @@ static CURLcode gopher_do(struct connectdata *conn, bool *done)
curl_socket_t sockfd = conn->sock[FIRSTSOCKET];
curl_off_t *bytecount = &data->req.bytecount;
- char *path = data->state.path;
+ char *path = data->state.up.path;
char *sel = NULL;
char *sel_org = NULL;
ssize_t amount, k;
diff --git a/lib/hostasyn.c b/lib/hostasyn.c
index e7b399ed..6ff60ba6 100644
--- a/lib/hostasyn.c
+++ b/lib/hostasyn.c
@@ -111,31 +111,6 @@ CURLcode Curl_addrinfo_callback(struct connectdata *conn,
return result;
}
-/* Call this function after Curl_connect() has returned async=TRUE and
- then a successful name resolve has been received.
-
- Note: this function disconnects and frees the conn data in case of
- resolve failure */
-CURLcode Curl_async_resolved(struct connectdata *conn,
- bool *protocol_done)
-{
- CURLcode result;
-
- if(conn->async.dns) {
- conn->dns_entry = conn->async.dns;
- conn->async.dns = NULL;
- }
-
- result = Curl_setup_conn(conn, protocol_done);
-
- if(result)
- /* We're not allowed to return failure with memory left allocated
- in the connectdata struct, free those here */
- Curl_disconnect(conn->data, conn, TRUE); /* close the connection */
-
- return result;
-}
-
/*
* Curl_getaddrinfo() is the generic low-level name resolve API within this
* source file. There are several versions of this function - for different
diff --git a/lib/hostcheck.h b/lib/hostcheck.h
index 86e3b96a..f562df9a 100644
--- a/lib/hostcheck.h
+++ b/lib/hostcheck.h
@@ -29,4 +29,3 @@
int Curl_cert_hostcheck(const char *match_pattern, const char *hostname);
#endif /* HEADER_CURL_HOSTCHECK_H */
-
diff --git a/lib/hostip.c b/lib/hostip.c
index bc20f715..f589a0b2 100644
--- a/lib/hostip.c
+++ b/lib/hostip.c
@@ -60,6 +60,7 @@
#include "url.h"
#include "inet_ntop.h"
#include "multiif.h"
+#include "doh.h"
#include "warnless.h"
/* The last 3 #include files should be in this order */
#include "curl_printf.h"
@@ -454,7 +455,7 @@ Curl_cache_addr(struct Curl_easy *data,
/* shuffle addresses if requested */
if(data->set.dns_shuffle_addresses) {
CURLcode result = Curl_shuffle_addr(data, &addr);
- if(!result)
+ if(result)
return NULL;
}
@@ -565,23 +566,27 @@ int Curl_resolv(struct connectdata *conn,
return CURLRESOLV_ERROR;
}
- /* If Curl_getaddrinfo() returns NULL, 'respwait' might be set to a
- non-zero value indicating that we need to wait for the response to the
- resolve call */
- addr = Curl_getaddrinfo(conn,
+ if(data->set.doh) {
+ addr = Curl_doh(conn, hostname, port, &respwait);
+ }
+ else {
+ /* If Curl_getaddrinfo() returns NULL, 'respwait' might be set to a
+ non-zero value indicating that we need to wait for the response to the
+ resolve call */
+ addr = Curl_getaddrinfo(conn,
#ifdef DEBUGBUILD
- (data->set.str[STRING_DEVICE]
- && !strcmp(data->set.str[STRING_DEVICE],
- "LocalHost"))?"localhost":
+ (data->set.str[STRING_DEVICE]
+ && !strcmp(data->set.str[STRING_DEVICE],
+ "LocalHost"))?"localhost":
#endif
- hostname, port, &respwait);
-
+ hostname, port, &respwait);
+ }
if(!addr) {
if(respwait) {
/* the response to our resolve call will come asynchronously at
a later time, good or bad */
/* First, check that we haven't received the info by now */
- result = Curl_resolver_is_resolved(conn, &dns);
+ result = Curl_resolv_check(conn, &dns);
if(result) /* error detected */
return CURLRESOLV_ERROR;
if(dns)
@@ -1053,3 +1058,54 @@ CURLcode Curl_loadhostpairs(struct Curl_easy *data)
return CURLE_OK;
}
+
+CURLcode Curl_resolv_check(struct connectdata *conn,
+ struct Curl_dns_entry **dns)
+{
+ if(conn->data->set.doh)
+ return Curl_doh_is_resolved(conn, dns);
+ return Curl_resolver_is_resolved(conn, dns);
+}
+
+int Curl_resolv_getsock(struct connectdata *conn,
+ curl_socket_t *socks,
+ int numsocks)
+{
+#ifdef CURLRES_ASYNCH
+ if(conn->data->set.doh)
+ /* nothing to wait for during DOH resolve, those handles have their own
+ sockets */
+ return GETSOCK_BLANK;
+ return Curl_resolver_getsock(conn, socks, numsocks);
+#else
+ (void)conn;
+ (void)socks;
+ (void)numsocks;
+ return GETSOCK_BLANK;
+#endif
+}
+
+/* Call this function after Curl_connect() has returned async=TRUE and
+ then a successful name resolve has been received.
+
+ Note: this function disconnects and frees the conn data in case of
+ resolve failure */
+CURLcode Curl_once_resolved(struct connectdata *conn,
+ bool *protocol_done)
+{
+ CURLcode result;
+
+ if(conn->async.dns) {
+ conn->dns_entry = conn->async.dns;
+ conn->async.dns = NULL;
+ }
+
+ result = Curl_setup_conn(conn, protocol_done);
+
+ if(result)
+ /* We're not allowed to return failure with memory left allocated
+ in the connectdata struct, free those here */
+ Curl_disconnect(conn->data, conn, TRUE); /* close the connection */
+
+ return result;
+}
diff --git a/lib/hostip.h b/lib/hostip.h
index 1de4bee8..29fd1ef7 100644
--- a/lib/hostip.h
+++ b/lib/hostip.h
@@ -145,12 +145,7 @@ int curl_dogetnameinfo(GETNAMEINFO_QUAL_ARG1 GETNAMEINFO_TYPE_ARG1 sa,
/* IPv4 threadsafe resolve function used for synch and asynch builds */
Curl_addrinfo *Curl_ipv4_resolve_r(const char *hostname, int port);
-CURLcode Curl_async_resolved(struct connectdata *conn,
- bool *protocol_connect);
-
-#ifndef CURLRES_ASYNCH
-#define Curl_async_resolved(x,y) CURLE_OK
-#endif
+CURLcode Curl_once_resolved(struct connectdata *conn, bool *protocol_connect);
/*
* Curl_addrinfo_callback() is used when we build with any asynch specialty.
@@ -258,4 +253,10 @@ void Curl_hostcache_destroy(struct Curl_easy *data);
*/
CURLcode Curl_loadhostpairs(struct Curl_easy *data);
+CURLcode Curl_resolv_check(struct connectdata *conn,
+ struct Curl_dns_entry **dns);
+int Curl_resolv_getsock(struct connectdata *conn,
+ curl_socket_t *socks,
+ int numsocks);
+
#endif /* HEADER_CURL_HOSTIP_H */
diff --git a/lib/http.c b/lib/http.c
index e727ed82..46ac15a6 100644
--- a/lib/http.c
+++ b/lib/http.c
@@ -169,7 +169,7 @@ CURLcode Curl_http_setup_conn(struct connectdata *conn)
data->req.protop = http;
if(!CONN_INUSE(conn))
- /* if not alredy multi-using, setup connection details */
+ /* if not already multi-using, setup connection details */
Curl_http2_setup_conn(conn);
Curl_http2_setup_req(data);
return CURLE_OK;
@@ -537,14 +537,6 @@ CURLcode Curl_http_auth_act(struct connectdata *conn)
}
if(pickhost || pickproxy) {
- /* In case this is GSS auth, the newurl field is already allocated so
- we must make sure to free it before allocating a new one. As figured
- out in bug #2284386 */
- Curl_safefree(data->req.newurl);
- data->req.newurl = strdup(data->change.url); /* clone URL */
- if(!data->req.newurl)
- return CURLE_OUT_OF_MEMORY;
-
if((data->set.httpreq != HTTPREQ_GET) &&
(data->set.httpreq != HTTPREQ_HEAD) &&
!conn->bits.rewindaftersend) {
@@ -552,6 +544,13 @@ CURLcode Curl_http_auth_act(struct connectdata *conn)
if(result)
return result;
}
+ /* In case this is GSS auth, the newurl field is already allocated so
+ we must make sure to free it before allocating a new one. As figured
+ out in bug #2284386 */
+ Curl_safefree(data->req.newurl);
+ data->req.newurl = strdup(data->change.url); /* clone URL */
+ if(!data->req.newurl)
+ return CURLE_OUT_OF_MEMORY;
}
else if((data->req.httpcode < 300) &&
(!data->state.authhost.done) &&
@@ -1094,11 +1093,13 @@ Curl_send_buffer *Curl_add_buffer_init(void)
/*
* Curl_add_buffer_free() frees all associated resources.
*/
-void Curl_add_buffer_free(Curl_send_buffer *buff)
+void Curl_add_buffer_free(Curl_send_buffer **inp)
{
- if(buff) /* deal with NULL input */
- free(buff->buffer);
- free(buff);
+ Curl_send_buffer *in = *inp;
+ if(in) /* deal with NULL input */
+ free(in->buffer);
+ free(in);
+ *inp = NULL;
}
/*
@@ -1107,7 +1108,7 @@ void Curl_add_buffer_free(Curl_send_buffer *buff)
*
* Returns CURLcode
*/
-CURLcode Curl_add_buffer_send(Curl_send_buffer *in,
+CURLcode Curl_add_buffer_send(Curl_send_buffer **inp,
struct connectdata *conn,
/* add the number of sent bytes to this
@@ -1128,6 +1129,7 @@ CURLcode Curl_add_buffer_send(Curl_send_buffer *in,
size_t sendsize;
curl_socket_t sockfd;
size_t headersize;
+ Curl_send_buffer *in = *inp;
DEBUGASSERT(socketindex <= SECONDARYSOCKET);
@@ -1148,7 +1150,7 @@ CURLcode Curl_add_buffer_send(Curl_send_buffer *in,
/* Curl_convert_to_network calls failf if unsuccessful */
if(result) {
/* conversion failed, free memory and return to the caller */
- Curl_add_buffer_free(in);
+ Curl_add_buffer_free(inp);
return result;
}
@@ -1172,7 +1174,7 @@ CURLcode Curl_add_buffer_send(Curl_send_buffer *in,
result = Curl_get_upload_buffer(data);
if(result) {
/* malloc failed, free memory and return to the caller */
- Curl_add_buffer_free(in);
+ Curl_add_buffer_free(&in);
return result;
}
memcpy(data->state.ulbuf, ptr, sendsize);
@@ -1256,7 +1258,7 @@ CURLcode Curl_add_buffer_send(Curl_send_buffer *in,
Curl_pipeline_leave_write(conn);
}
}
- Curl_add_buffer_free(in);
+ Curl_add_buffer_free(&in);
return result;
}
@@ -1265,31 +1267,35 @@ CURLcode Curl_add_buffer_send(Curl_send_buffer *in,
/*
* add_bufferf() add the formatted input to the buffer.
*/
-CURLcode Curl_add_bufferf(Curl_send_buffer *in, const char *fmt, ...)
+CURLcode Curl_add_bufferf(Curl_send_buffer **inp, const char *fmt, ...)
{
char *s;
va_list ap;
+ Curl_send_buffer *in = *inp;
va_start(ap, fmt);
s = vaprintf(fmt, ap); /* this allocs a new string to append */
va_end(ap);
if(s) {
- CURLcode result = Curl_add_buffer(in, s, strlen(s));
+ CURLcode result = Curl_add_buffer(inp, s, strlen(s));
free(s);
return result;
}
/* If we failed, we cleanup the whole buffer and return error */
free(in->buffer);
free(in);
+ *inp = NULL;
return CURLE_OUT_OF_MEMORY;
}
/*
- * add_buffer() appends a memory chunk to the existing buffer
+ * Curl_add_buffer() appends a memory chunk to the existing buffer
*/
-CURLcode Curl_add_buffer(Curl_send_buffer *in, const void *inptr, size_t size)
+CURLcode Curl_add_buffer(Curl_send_buffer **inp, const void *inptr,
+ size_t size)
{
char *new_rb;
+ Curl_send_buffer *in = *inp;
if(~size < in->size_used) {
/* If resulting used size of send buffer would wrap size_t, cleanup
@@ -1297,6 +1303,7 @@ CURLcode Curl_add_buffer(Curl_send_buffer *in, const void *inptr, size_t size)
size will fit into a single allocatable memory chunk */
Curl_safefree(in->buffer);
free(in);
+ *inp = NULL;
return CURLE_OUT_OF_MEMORY;
}
@@ -1323,6 +1330,7 @@ CURLcode Curl_add_buffer(Curl_send_buffer *in, const void *inptr, size_t size)
if(!new_rb) {
/* If we failed, we cleanup the whole buffer and return error */
free(in);
+ *inp = NULL;
return CURLE_OUT_OF_MEMORY;
}
@@ -1484,11 +1492,11 @@ static CURLcode add_haproxy_protocol_header(struct connectdata *conn)
if(!req_buffer)
return CURLE_OUT_OF_MEMORY;
- result = Curl_add_bufferf(req_buffer, proxy_header);
+ result = Curl_add_bufferf(&req_buffer, proxy_header);
if(result)
return result;
- result = Curl_add_buffer_send(req_buffer,
+ result = Curl_add_buffer_send(&req_buffer,
conn,
&conn->data->info.request_size,
0,
@@ -1561,8 +1569,7 @@ CURLcode Curl_http_done(struct connectdata *conn,
return CURLE_OK;
if(http->send_buffer) {
- Curl_add_buffer_free(http->send_buffer);
- http->send_buffer = NULL; /* clear the pointer */
+ Curl_add_buffer_free(&http->send_buffer);
}
Curl_http2_done(conn, premature);
@@ -1653,8 +1660,8 @@ static CURLcode expect100(struct Curl_easy *data,
Curl_compareheader(ptr, "Expect:", "100-continue");
}
else {
- result = Curl_add_bufferf(req_buffer,
- "Expect: 100-continue\r\n");
+ result = Curl_add_bufferf(&req_buffer,
+ "Expect: 100-continue\r\n");
if(!result)
data->state.expect100header = TRUE;
}
@@ -1785,7 +1792,7 @@ CURLcode Curl_add_custom_headers(struct connectdata *conn,
!strcasecompare(data->state.first_host, conn->host.name)))
;
else {
- result = Curl_add_bufferf(req_buffer, "%s\r\n", headers->data);
+ result = Curl_add_bufferf(&req_buffer, "%s\r\n", headers->data);
}
if(semicolonp)
*semicolonp = ';'; /* put back the semicolon */
@@ -1854,7 +1861,7 @@ CURLcode Curl_add_timecondition(struct Curl_easy *data,
tm->tm_min,
tm->tm_sec);
- result = Curl_add_buffer(req_buffer, datestr, strlen(datestr));
+ result = Curl_add_buffer(&req_buffer, datestr, strlen(datestr));
return result;
}
@@ -1869,7 +1876,8 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
struct Curl_easy *data = conn->data;
CURLcode result = CURLE_OK;
struct HTTP *http;
- const char *ppath = data->state.path;
+ const char *path = data->state.up.path;
+ const char *query = data->state.up.query;
bool paste_ftp_userpwd = FALSE;
char ftp_typecode[sizeof("/;type=?")] = "";
const char *host = conn->host.name;
@@ -1987,7 +1995,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
}
/* setup the authentication headers */
- result = Curl_http_output_auth(conn, request, ppath, FALSE);
+ result = Curl_http_output_auth(conn, request, path, FALSE);
if(result)
return result;
@@ -2215,47 +2223,59 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
/* The path sent to the proxy is in fact the entire URL. But if the remote
host is a IDN-name, we must make sure that the request we produce only
uses the encoded host name! */
+
+ /* and no fragment part */
+ CURLUcode uc;
+ char *url;
+ CURLU *h = curl_url_dup(data->state.uh);
+ if(!h)
+ return CURLE_OUT_OF_MEMORY;
+
if(conn->host.dispname != conn->host.name) {
- char *url = data->change.url;
- ptr = strstr(url, conn->host.dispname);
- if(ptr) {
- /* This is where the display name starts in the URL, now replace this
- part with the encoded name. TODO: This method of replacing the host
- name is rather crude as I believe there's a slight risk that the
- user has entered a user name or password that contain the host name
- string. */
- size_t currlen = strlen(conn->host.dispname);
- size_t newlen = strlen(conn->host.name);
- size_t urllen = strlen(url);
-
- char *newurl;
-
- newurl = malloc(urllen + newlen - currlen + 1);
- if(newurl) {
- /* copy the part before the host name */
- memcpy(newurl, url, ptr - url);
- /* append the new host name instead of the old */
- memcpy(newurl + (ptr - url), conn->host.name, newlen);
- /* append the piece after the host name */
- memcpy(newurl + newlen + (ptr - url),
- ptr + currlen, /* copy the trailing zero byte too */
- urllen - (ptr-url) - currlen + 1);
- if(data->change.url_alloc) {
- Curl_safefree(data->change.url);
- data->change.url_alloc = FALSE;
- }
- data->change.url = newurl;
- data->change.url_alloc = TRUE;
- }
- else
- return CURLE_OUT_OF_MEMORY;
+ uc = curl_url_set(h, CURLUPART_HOST, conn->host.name, 0);
+ if(uc) {
+ curl_url_cleanup(h);
+ return CURLE_OUT_OF_MEMORY;
+ }
+ }
+ uc = curl_url_set(h, CURLUPART_FRAGMENT, NULL, 0);
+ if(uc) {
+ curl_url_cleanup(h);
+ return CURLE_OUT_OF_MEMORY;
+ }
+
+ if(strcasecompare("http", data->state.up.scheme)) {
+ /* when getting HTTP, we don't want the userinfo the URL */
+ uc = curl_url_set(h, CURLUPART_USER, NULL, 0);
+ if(uc) {
+ curl_url_cleanup(h);
+ return CURLE_OUT_OF_MEMORY;
+ }
+ uc = curl_url_set(h, CURLUPART_PASSWORD, NULL, 0);
+ if(uc) {
+ curl_url_cleanup(h);
+ return CURLE_OUT_OF_MEMORY;
}
}
- ppath = data->change.url;
- if(checkprefix("ftp://", ppath)) {
+ /* now extract the new version of the URL */
+ uc = curl_url_get(h, CURLUPART_URL, &url, 0);
+ if(uc) {
+ curl_url_cleanup(h);
+ return CURLE_OUT_OF_MEMORY;
+ }
+
+ if(data->change.url_alloc)
+ free(data->change.url);
+
+ data->change.url = url;
+ data->change.url_alloc = TRUE;
+
+ curl_url_cleanup(h);
+
+ if(strcasecompare("ftp", data->state.up.scheme)) {
if(data->set.proxy_transfer_mode) {
/* when doing ftp, append ;type=<a|i> if not present */
- char *type = strstr(ppath, ";type=");
+ char *type = strstr(path, ";type=");
if(type && type[6] && type[7] == 0) {
switch(Curl_raw_toupper(type[6])) {
case 'A':
@@ -2270,7 +2290,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
char *p = ftp_typecode;
/* avoid sending invalid URLs like ftp://example.com;type=i if the
* user specified ftp://example.com without the slash */
- if(!*data->state.path && ppath[strlen(ppath) - 1] != '/') {
+ if(!*data->state.up.path && path[strlen(path) - 1] != '/') {
*p++ = '/';
}
snprintf(p, sizeof(ftp_typecode) - 1, ";type=%c",
@@ -2419,25 +2439,36 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
/* add the main request stuff */
/* GET/HEAD/POST/PUT */
- result = Curl_add_bufferf(req_buffer, "%s ", request);
+ result = Curl_add_bufferf(&req_buffer, "%s ", request);
if(result)
return result;
- if(data->set.str[STRING_TARGET])
- ppath = data->set.str[STRING_TARGET];
+ if(data->set.str[STRING_TARGET]) {
+ path = data->set.str[STRING_TARGET];
+ query = NULL;
+ }
/* url */
- if(paste_ftp_userpwd)
- result = Curl_add_bufferf(req_buffer, "ftp://%s:%s@%s",
+ if(conn->bits.httpproxy && !conn->bits.tunnel_proxy) {
+ char *url = data->change.url;
+ result = Curl_add_buffer(&req_buffer, url, strlen(url));
+ }
+ else if(paste_ftp_userpwd)
+ result = Curl_add_bufferf(&req_buffer, "ftp://%s:%s@%s",
conn->user, conn->passwd,
- ppath + sizeof("ftp://") - 1);
- else
- result = Curl_add_buffer(req_buffer, ppath, strlen(ppath));
+ path + sizeof("ftp://") - 1);
+ else {
+ result = Curl_add_buffer(&req_buffer, path, strlen(path));
+ if(result)
+ return result;
+ if(query)
+ result = Curl_add_bufferf(&req_buffer, "?%s", query);
+ }
if(result)
return result;
result =
- Curl_add_bufferf(req_buffer,
+ Curl_add_bufferf(&req_buffer,
"%s" /* ftp typecode (;type=x) */
" HTTP/%s\r\n" /* HTTP version */
"%s" /* host */
@@ -2507,7 +2538,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
co = Curl_cookie_getlist(data->cookies,
conn->allocptr.cookiehost?
conn->allocptr.cookiehost:host,
- data->state.path,
+ data->state.up.path,
(conn->handler->protocol&CURLPROTO_HTTPS)?
TRUE:FALSE);
Curl_share_unlock(data, CURL_LOCK_DATA_COOKIE);
@@ -2518,11 +2549,11 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
while(co) {
if(co->value) {
if(0 == count) {
- result = Curl_add_bufferf(req_buffer, "Cookie: ");
+ result = Curl_add_bufferf(&req_buffer, "Cookie: ");
if(result)
break;
}
- result = Curl_add_bufferf(req_buffer,
+ result = Curl_add_bufferf(&req_buffer,
"%s%s=%s", count?"; ":"",
co->name, co->value);
if(result)
@@ -2535,15 +2566,15 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
}
if(addcookies && !result) {
if(!count)
- result = Curl_add_bufferf(req_buffer, "Cookie: ");
+ result = Curl_add_bufferf(&req_buffer, "Cookie: ");
if(!result) {
- result = Curl_add_bufferf(req_buffer, "%s%s", count?"; ":"",
+ result = Curl_add_bufferf(&req_buffer, "%s%s", count?"; ":"",
addcookies);
count++;
}
}
if(count && !result)
- result = Curl_add_buffer(req_buffer, "\r\n", 2);
+ result = Curl_add_buffer(&req_buffer, "\r\n", 2);
if(result)
return result;
@@ -2577,7 +2608,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
if((postsize != -1) && !data->req.upload_chunky &&
(conn->bits.authneg || !Curl_checkheaders(conn, "Content-Length"))) {
/* only add Content-Length if not uploading chunked */
- result = Curl_add_bufferf(req_buffer,
+ result = Curl_add_bufferf(&req_buffer,
"Content-Length: %" CURL_FORMAT_CURL_OFF_T
"\r\n", postsize);
if(result)
@@ -2590,7 +2621,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
return result;
}
- result = Curl_add_buffer(req_buffer, "\r\n", 2); /* end of headers */
+ result = Curl_add_buffer(&req_buffer, "\r\n", 2); /* end of headers */
if(result)
return result;
@@ -2598,7 +2629,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
Curl_pgrsSetUploadSize(data, postsize);
/* this sends the buffer and frees all the buffer resources */
- result = Curl_add_buffer_send(req_buffer, conn,
+ result = Curl_add_buffer_send(&req_buffer, conn,
&data->info.request_size, 0, FIRSTSOCKET);
if(result)
failf(data, "Failed sending PUT request");
@@ -2616,11 +2647,11 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
/* This is form posting using mime data. */
if(conn->bits.authneg) {
/* nothing to post! */
- result = Curl_add_bufferf(req_buffer, "Content-Length: 0\r\n\r\n");
+ result = Curl_add_bufferf(&req_buffer, "Content-Length: 0\r\n\r\n");
if(result)
return result;
- result = Curl_add_buffer_send(req_buffer, conn,
+ result = Curl_add_buffer_send(&req_buffer, conn,
&data->info.request_size, 0, FIRSTSOCKET);
if(result)
failf(data, "Failed sending POST request");
@@ -2640,7 +2671,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
(conn->bits.authneg || !Curl_checkheaders(conn, "Content-Length"))) {
/* we allow replacing this header if not during auth negotiation,
although it isn't very wise to actually set your own */
- result = Curl_add_bufferf(req_buffer,
+ result = Curl_add_bufferf(&req_buffer,
"Content-Length: %" CURL_FORMAT_CURL_OFF_T
"\r\n", postsize);
if(result)
@@ -2652,7 +2683,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
struct curl_slist *hdr;
for(hdr = http->sendit->curlheaders; hdr; hdr = hdr->next) {
- result = Curl_add_bufferf(req_buffer, "%s\r\n", hdr->data);
+ result = Curl_add_bufferf(&req_buffer, "%s\r\n", hdr->data);
if(result)
return result;
}
@@ -2676,7 +2707,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
data->state.expect100header = FALSE;
/* make the request end in a true CRLF */
- result = Curl_add_buffer(req_buffer, "\r\n", 2);
+ result = Curl_add_buffer(&req_buffer, "\r\n", 2);
if(result)
return result;
@@ -2689,7 +2720,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
http->sending = HTTPSEND_BODY;
/* this sends the buffer and frees all the buffer resources */
- result = Curl_add_buffer_send(req_buffer, conn,
+ result = Curl_add_buffer_send(&req_buffer, conn,
&data->info.request_size, 0, FIRSTSOCKET);
if(result)
failf(data, "Failed sending POST request");
@@ -2719,7 +2750,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
(conn->bits.authneg || !Curl_checkheaders(conn, "Content-Length"))) {
/* we allow replacing this header if not during auth negotiation,
although it isn't very wise to actually set your own */
- result = Curl_add_bufferf(req_buffer,
+ result = Curl_add_bufferf(&req_buffer,
"Content-Length: %" CURL_FORMAT_CURL_OFF_T
"\r\n", postsize);
if(result)
@@ -2727,7 +2758,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
}
if(!Curl_checkheaders(conn, "Content-Type")) {
- result = Curl_add_bufferf(req_buffer,
+ result = Curl_add_bufferf(&req_buffer,
"Content-Type: application/"
"x-www-form-urlencoded\r\n");
if(result)
@@ -2765,31 +2796,31 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
is no magic limit but only set to prevent really huge POSTs to
get the data duplicated with malloc() and family. */
- result = Curl_add_buffer(req_buffer, "\r\n", 2); /* end of headers! */
+ result = Curl_add_buffer(&req_buffer, "\r\n", 2); /* end of headers! */
if(result)
return result;
if(!data->req.upload_chunky) {
/* We're not sending it 'chunked', append it to the request
already now to reduce the number if send() calls */
- result = Curl_add_buffer(req_buffer, data->set.postfields,
+ result = Curl_add_buffer(&req_buffer, data->set.postfields,
(size_t)postsize);
included_body = postsize;
}
else {
if(postsize) {
/* Append the POST data chunky-style */
- result = Curl_add_bufferf(req_buffer, "%x\r\n", (int)postsize);
+ result = Curl_add_bufferf(&req_buffer, "%x\r\n", (int)postsize);
if(!result) {
- result = Curl_add_buffer(req_buffer, data->set.postfields,
+ result = Curl_add_buffer(&req_buffer, data->set.postfields,
(size_t)postsize);
if(!result)
- result = Curl_add_buffer(req_buffer, "\r\n", 2);
+ result = Curl_add_buffer(&req_buffer, "\r\n", 2);
included_body = postsize + 2;
}
}
if(!result)
- result = Curl_add_buffer(req_buffer, "\x30\x0d\x0a\x0d\x0a", 5);
+ result = Curl_add_buffer(&req_buffer, "\x30\x0d\x0a\x0d\x0a", 5);
/* 0 CR LF CR LF */
included_body += 5;
}
@@ -2811,20 +2842,20 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
/* set the upload size to the progress meter */
Curl_pgrsSetUploadSize(data, http->postsize);
- result = Curl_add_buffer(req_buffer, "\r\n", 2); /* end of headers! */
+ result = Curl_add_buffer(&req_buffer, "\r\n", 2); /* end of headers! */
if(result)
return result;
}
}
else {
- result = Curl_add_buffer(req_buffer, "\r\n", 2); /* end of headers! */
+ result = Curl_add_buffer(&req_buffer, "\r\n", 2); /* end of headers! */
if(result)
return result;
if(data->req.upload_chunky && conn->bits.authneg) {
/* Chunky upload is selected and we're negotiating auth still, send
end-of-data only */
- result = Curl_add_buffer(req_buffer,
+ result = Curl_add_buffer(&req_buffer,
"\x30\x0d\x0a\x0d\x0a", 5);
/* 0 CR LF CR LF */
if(result)
@@ -2845,7 +2876,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
}
}
/* issue the request */
- result = Curl_add_buffer_send(req_buffer, conn, &data->info.request_size,
+ result = Curl_add_buffer_send(&req_buffer, conn, &data->info.request_size,
(size_t)included_body, FIRSTSOCKET);
if(result)
@@ -2857,12 +2888,12 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
break;
default:
- result = Curl_add_buffer(req_buffer, "\r\n", 2);
+ result = Curl_add_buffer(&req_buffer, "\r\n", 2);
if(result)
return result;
/* issue the request */
- result = Curl_add_buffer_send(req_buffer, conn,
+ result = Curl_add_buffer_send(&req_buffer, conn,
&data->info.request_size, 0, FIRSTSOCKET);
if(result)
@@ -3828,7 +3859,7 @@ CURLcode Curl_http_readwrite_headers(struct Curl_easy *data,
here, or else use real peer host name. */
conn->allocptr.cookiehost?
conn->allocptr.cookiehost:conn->host.name,
- data->state.path);
+ data->state.up.path);
Curl_share_unlock(data, CURL_LOCK_DATA_COOKIE);
}
#endif
diff --git a/lib/http.h b/lib/http.h
index 1d373e8f..21fa701a 100644
--- a/lib/http.h
+++ b/lib/http.h
@@ -58,10 +58,12 @@ struct Curl_send_buffer {
typedef struct Curl_send_buffer Curl_send_buffer;
Curl_send_buffer *Curl_add_buffer_init(void);
-void Curl_add_buffer_free(Curl_send_buffer *buff);
-CURLcode Curl_add_bufferf(Curl_send_buffer *in, const char *fmt, ...);
-CURLcode Curl_add_buffer(Curl_send_buffer *in, const void *inptr, size_t size);
-CURLcode Curl_add_buffer_send(Curl_send_buffer *in,
+void Curl_add_buffer_free(Curl_send_buffer **inp);
+CURLcode Curl_add_bufferf(Curl_send_buffer **inp, const char *fmt, ...)
+ WARN_UNUSED_RESULT;
+CURLcode Curl_add_buffer(Curl_send_buffer **inp, const void *inptr,
+ size_t size) WARN_UNUSED_RESULT;
+CURLcode Curl_add_buffer_send(Curl_send_buffer **inp,
struct connectdata *conn,
long *bytes_written,
size_t included_body_bytes,
@@ -154,9 +156,11 @@ struct HTTP {
HTTPSEND_LAST /* never use this */
} sending;
- void *send_buffer; /* used if the request couldn't be sent in one chunk,
- points to an allocated send_buffer struct */
-
+#ifndef CURL_DISABLE_HTTP
+ Curl_send_buffer *send_buffer; /* used if the request couldn't be sent in
+ one chunk, points to an allocated
+ send_buffer struct */
+#endif
#ifdef USE_NGHTTP2
/*********** for HTTP/2 we store stream-local data here *************/
int32_t stream_id; /* stream we are interested in */
@@ -253,4 +257,3 @@ Curl_http_output_auth(struct connectdata *conn,
up the proxy tunnel */
#endif /* HEADER_CURL_HTTP_H */
-
diff --git a/lib/http2.c b/lib/http2.c
index d7691930..0c5f6db0 100644
--- a/lib/http2.c
+++ b/lib/http2.c
@@ -141,10 +141,8 @@ static int http2_getsock(struct connectdata *conn,
static void http2_stream_free(struct HTTP *http)
{
if(http) {
- Curl_add_buffer_free(http->header_recvbuf);
- http->header_recvbuf = NULL; /* clear the pointer */
- Curl_add_buffer_free(http->trailer_recvbuf);
- http->trailer_recvbuf = NULL; /* clear the pointer */
+ Curl_add_buffer_free(&http->header_recvbuf);
+ Curl_add_buffer_free(&http->trailer_recvbuf);
for(; http->push_headers_used > 0; --http->push_headers_used) {
free(http->push_headers[http->push_headers_used - 1]);
}
@@ -203,7 +201,7 @@ static bool http2_connisdead(struct connectdata *conn)
dead = !Curl_connalive(conn);
if(!dead) {
/* This happens before we've sent off a request and the connection is
- not in use by any other thransfer, there shouldn't be any data here,
+ not in use by any other transfer, there shouldn't be any data here,
only "protocol frames" */
CURLcode result;
struct http_conn *httpc = &conn->proto.httpc;
@@ -233,12 +231,43 @@ static unsigned int http2_conncheck(struct connectdata *check,
unsigned int checks_to_perform)
{
unsigned int ret_val = CONNRESULT_NONE;
+ struct http_conn *c = &check->proto.httpc;
+ int rc;
+ bool send_frames = false;
if(checks_to_perform & CONNCHECK_ISDEAD) {
if(http2_connisdead(check))
ret_val |= CONNRESULT_DEAD;
}
+ if(checks_to_perform & CONNCHECK_KEEPALIVE) {
+ struct curltime now = Curl_now();
+ time_t elapsed = Curl_timediff(now, check->keepalive);
+
+ if(elapsed > check->upkeep_interval_ms) {
+ /* Perform an HTTP/2 PING */
+ rc = nghttp2_submit_ping(c->h2, 0, ZERO_NULL);
+ if(!rc) {
+ /* Successfully added a PING frame to the session. Need to flag this
+ so the frame is sent. */
+ send_frames = true;
+ }
+ else {
+ failf(check->data, "nghttp2_submit_ping() failed: %s(%d)",
+ nghttp2_strerror(rc), rc);
+ }
+
+ check->keepalive = now;
+ }
+ }
+
+ if(send_frames) {
+ rc = nghttp2_session_send(c->h2);
+ if(rc)
+ failf(check->data, "nghttp2_session_send() failed: %s(%d)",
+ nghttp2_strerror(rc), rc);
+ }
+
return ret_val;
}
@@ -599,6 +628,7 @@ static int on_frame_recv(nghttp2_session *session, const nghttp2_frame *frame,
int rv;
size_t left, ncopy;
int32_t stream_id = frame->hd.stream_id;
+ CURLcode result;
if(!stream_id) {
/* stream ID zero is for connection-oriented stuff */
@@ -674,7 +704,9 @@ static int on_frame_recv(nghttp2_session *session, const nghttp2_frame *frame,
stream->status_code = -1;
}
- Curl_add_buffer(stream->header_recvbuf, "\r\n", 2);
+ result = Curl_add_buffer(&stream->header_recvbuf, "\r\n", 2);
+ if(result)
+ return NGHTTP2_ERR_CALLBACK_FAILURE;
left = stream->header_recvbuf->size_used - stream->nread_header_recvbuf;
ncopy = CURLMIN(stream->len, left);
@@ -898,6 +930,7 @@ static int on_header(nghttp2_session *session, const nghttp2_frame *frame,
struct Curl_easy *data_s;
int32_t stream_id = frame->hd.stream_id;
struct connectdata *conn = (struct connectdata *)userp;
+ CURLcode result;
(void)flags;
DEBUGASSERT(stream_id); /* should never be a zero stream ID here */
@@ -924,6 +957,8 @@ static int on_header(nghttp2_session *session, const nghttp2_frame *frame,
stream->push_headers_alloc = 10;
stream->push_headers = malloc(stream->push_headers_alloc *
sizeof(char *));
+ if(!stream->push_headers)
+ return NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE;
stream->push_headers_used = 0;
}
else if(stream->push_headers_used ==
@@ -952,11 +987,21 @@ static int on_header(nghttp2_session *session, const nghttp2_frame *frame,
H2BUGF(infof(data_s, "h2 trailer: %.*s: %.*s\n", namelen, name, valuelen,
value));
- Curl_add_buffer(stream->trailer_recvbuf, &n, sizeof(n));
- Curl_add_buffer(stream->trailer_recvbuf, name, namelen);
- Curl_add_buffer(stream->trailer_recvbuf, ": ", 2);
- Curl_add_buffer(stream->trailer_recvbuf, value, valuelen);
- Curl_add_buffer(stream->trailer_recvbuf, "\r\n\0", 3);
+ result = Curl_add_buffer(&stream->trailer_recvbuf, &n, sizeof(n));
+ if(result)
+ return NGHTTP2_ERR_CALLBACK_FAILURE;
+ result = Curl_add_buffer(&stream->trailer_recvbuf, name, namelen);
+ if(result)
+ return NGHTTP2_ERR_CALLBACK_FAILURE;
+ result = Curl_add_buffer(&stream->trailer_recvbuf, ": ", 2);
+ if(result)
+ return NGHTTP2_ERR_CALLBACK_FAILURE;
+ result = Curl_add_buffer(&stream->trailer_recvbuf, value, valuelen);
+ if(result)
+ return NGHTTP2_ERR_CALLBACK_FAILURE;
+ result = Curl_add_buffer(&stream->trailer_recvbuf, "\r\n\0", 3);
+ if(result)
+ return NGHTTP2_ERR_CALLBACK_FAILURE;
return 0;
}
@@ -969,10 +1014,16 @@ static int on_header(nghttp2_session *session, const nghttp2_frame *frame,
stream->status_code = decode_status_code(value, valuelen);
DEBUGASSERT(stream->status_code != -1);
- Curl_add_buffer(stream->header_recvbuf, "HTTP/2 ", 7);
- Curl_add_buffer(stream->header_recvbuf, value, valuelen);
+ result = Curl_add_buffer(&stream->header_recvbuf, "HTTP/2 ", 7);
+ if(result)
+ return NGHTTP2_ERR_CALLBACK_FAILURE;
+ result = Curl_add_buffer(&stream->header_recvbuf, value, valuelen);
+ if(result)
+ return NGHTTP2_ERR_CALLBACK_FAILURE;
/* the space character after the status code is mandatory */
- Curl_add_buffer(stream->header_recvbuf, " \r\n", 3);
+ result = Curl_add_buffer(&stream->header_recvbuf, " \r\n", 3);
+ if(result)
+ return NGHTTP2_ERR_CALLBACK_FAILURE;
/* if we receive data for another handle, wake that up */
if(conn->data != data_s)
Curl_expire(data_s, 0, EXPIRE_RUN_NOW);
@@ -985,10 +1036,18 @@ static int on_header(nghttp2_session *session, const nghttp2_frame *frame,
/* nghttp2 guarantees that namelen > 0, and :status was already
received, and this is not pseudo-header field . */
/* convert to a HTTP1-style header */
- Curl_add_buffer(stream->header_recvbuf, name, namelen);
- Curl_add_buffer(stream->header_recvbuf, ": ", 2);
- Curl_add_buffer(stream->header_recvbuf, value, valuelen);
- Curl_add_buffer(stream->header_recvbuf, "\r\n", 2);
+ result = Curl_add_buffer(&stream->header_recvbuf, name, namelen);
+ if(result)
+ return NGHTTP2_ERR_CALLBACK_FAILURE;
+ result = Curl_add_buffer(&stream->header_recvbuf, ": ", 2);
+ if(result)
+ return NGHTTP2_ERR_CALLBACK_FAILURE;
+ result = Curl_add_buffer(&stream->header_recvbuf, value, valuelen);
+ if(result)
+ return NGHTTP2_ERR_CALLBACK_FAILURE;
+ result = Curl_add_buffer(&stream->header_recvbuf, "\r\n", 2);
+ if(result)
+ return NGHTTP2_ERR_CALLBACK_FAILURE;
/* if we receive data for another handle, wake that up */
if(conn->data != data_s)
Curl_expire(data_s, 0, EXPIRE_RUN_NOW);
@@ -1049,7 +1108,8 @@ static ssize_t data_source_read_callback(nghttp2_session *session,
return nread;
}
-#ifdef NGHTTP2_HAS_ERROR_CALLBACK
+#if defined(NGHTTP2_HAS_ERROR_CALLBACK) && \
+ !defined(CURL_DISABLE_VERBOSE_STRINGS)
static int error_callback(nghttp2_session *session,
const char *msg,
size_t len,
@@ -1085,17 +1145,11 @@ void Curl_http2_done(struct connectdata *conn, bool premature)
struct HTTP *http = data->req.protop;
struct http_conn *httpc = &conn->proto.httpc;
- if(!httpc->h2) /* not HTTP/2 ? */
- return;
-
- if(data->state.drain)
- drained_transfer(data, httpc);
-
+ /* there might be allocated resources done before this got the 'h2' pointer
+ setup */
if(http->header_recvbuf) {
- Curl_add_buffer_free(http->header_recvbuf);
- http->header_recvbuf = NULL; /* clear the pointer */
- Curl_add_buffer_free(http->trailer_recvbuf);
- http->trailer_recvbuf = NULL; /* clear the pointer */
+ Curl_add_buffer_free(&http->header_recvbuf);
+ Curl_add_buffer_free(&http->trailer_recvbuf);
if(http->push_headers) {
/* if they weren't used and then freed before */
for(; http->push_headers_used > 0; --http->push_headers_used) {
@@ -1106,6 +1160,12 @@ void Curl_http2_done(struct connectdata *conn, bool premature)
}
}
+ if(!httpc->h2) /* not HTTP/2 ? */
+ return;
+
+ if(data->state.drain)
+ drained_transfer(data, httpc);
+
if(premature) {
/* RST_STREAM */
if(!nghttp2_submit_rst_stream(httpc->h2, NGHTTP2_FLAG_NONE,
@@ -1167,7 +1227,9 @@ CURLcode Curl_http2_init(struct connectdata *conn)
/* nghttp2_on_header_callback */
nghttp2_session_callbacks_set_on_header_callback(callbacks, on_header);
+#ifndef CURL_DISABLE_VERBOSE_STRINGS
nghttp2_session_callbacks_set_error_callback(callbacks, error_callback);
+#endif
/* The nghttp2 session is not yet setup, do it */
rc = nghttp2_session_client_new(&conn->proto.httpc.h2, callbacks, conn);
@@ -1204,7 +1266,7 @@ CURLcode Curl_http2_request_upgrade(Curl_send_buffer *req,
httpc->local_settings_num);
if(!binlen) {
failf(conn->data, "nghttp2 unexpectedly failed on pack_settings_payload");
- Curl_add_buffer_free(req);
+ Curl_add_buffer_free(&req);
return CURLE_FAILED_INIT;
}
conn->proto.httpc.binlen = binlen;
@@ -1212,11 +1274,11 @@ CURLcode Curl_http2_request_upgrade(Curl_send_buffer *req,
result = Curl_base64url_encode(conn->data, (const char *)binsettings, binlen,
&base64, &blen);
if(result) {
- Curl_add_buffer_free(req);
+ Curl_add_buffer_free(&req);
return result;
}
- result = Curl_add_bufferf(req,
+ result = Curl_add_bufferf(&req,
"Connection: Upgrade, HTTP2-Settings\r\n"
"Upgrade: %s\r\n"
"HTTP2-Settings: %s\r\n",
@@ -2060,8 +2122,11 @@ CURLcode Curl_http2_setup(struct connectdata *conn)
stream->stream_id = -1;
- if(!stream->header_recvbuf)
+ if(!stream->header_recvbuf) {
stream->header_recvbuf = Curl_add_buffer_init();
+ if(!stream->header_recvbuf)
+ return CURLE_OUT_OF_MEMORY;
+ }
if((conn->handler == &Curl_handler_http2_ssl) ||
(conn->handler == &Curl_handler_http2))
@@ -2073,8 +2138,10 @@ CURLcode Curl_http2_setup(struct connectdata *conn)
conn->handler = &Curl_handler_http2;
result = Curl_http2_init(conn);
- if(result)
+ if(result) {
+ Curl_add_buffer_free(&stream->header_recvbuf);
return result;
+ }
infof(conn->data, "Using HTTP2, server supports multi-use\n");
stream->upload_left = 0;
diff --git a/lib/http2.h b/lib/http2.h
index 21cd9b84..4492ec21 100644
--- a/lib/http2.h
+++ b/lib/http2.h
@@ -77,4 +77,3 @@ void Curl_http2_cleanup_dependencies(struct Curl_easy *data);
#endif
#endif /* HEADER_CURL_HTTP2_H */
-
diff --git a/lib/http_chunks.h b/lib/http_chunks.h
index 3a8b4ddf..b969c559 100644
--- a/lib/http_chunks.h
+++ b/lib/http_chunks.h
@@ -88,4 +88,3 @@ struct Curl_chunker {
};
#endif /* HEADER_CURL_HTTP_CHUNKS_H */
-
diff --git a/lib/http_proxy.c b/lib/http_proxy.c
index c8c445b8..2e0d92ed 100644
--- a/lib/http_proxy.c
+++ b/lib/http_proxy.c
@@ -222,7 +222,7 @@ static CURLcode CONNECT(struct connectdata *conn,
host_port = aprintf("%s:%d", hostname, remote_port);
if(!host_port) {
- Curl_add_buffer_free(req_buffer);
+ Curl_add_buffer_free(&req_buffer);
return CURLE_OUT_OF_MEMORY;
}
@@ -247,7 +247,7 @@ static CURLcode CONNECT(struct connectdata *conn,
aprintf("%s%s%s:%d", ipv6_ip?"[":"", hostname, ipv6_ip?"]":"",
remote_port);
if(!hostheader) {
- Curl_add_buffer_free(req_buffer);
+ Curl_add_buffer_free(&req_buffer);
return CURLE_OUT_OF_MEMORY;
}
@@ -255,7 +255,7 @@ static CURLcode CONNECT(struct connectdata *conn,
host = aprintf("Host: %s\r\n", hostheader);
if(!host) {
free(hostheader);
- Curl_add_buffer_free(req_buffer);
+ Curl_add_buffer_free(&req_buffer);
return CURLE_OUT_OF_MEMORY;
}
}
@@ -267,7 +267,7 @@ static CURLcode CONNECT(struct connectdata *conn,
useragent = conn->allocptr.uagent;
result =
- Curl_add_bufferf(req_buffer,
+ Curl_add_bufferf(&req_buffer,
"CONNECT %s HTTP/%s\r\n"
"%s" /* Host: */
"%s" /* Proxy-Authorization */
@@ -290,13 +290,13 @@ static CURLcode CONNECT(struct connectdata *conn,
if(!result)
/* CRLF terminate the request */
- result = Curl_add_bufferf(req_buffer, "\r\n");
+ result = Curl_add_bufferf(&req_buffer, "\r\n");
if(!result) {
/* Send the connect request to the proxy */
/* BLOCKING */
result =
- Curl_add_buffer_send(req_buffer, conn,
+ Curl_add_buffer_send(&req_buffer, conn,
&data->info.request_size, 0, sockindex);
}
req_buffer = NULL;
@@ -304,7 +304,7 @@ static CURLcode CONNECT(struct connectdata *conn,
failf(data, "Failed sending CONNECT to proxy");
}
- Curl_add_buffer_free(req_buffer);
+ Curl_add_buffer_free(&req_buffer);
if(result)
return result;
diff --git a/lib/imap.c b/lib/imap.c
index 942fe7d1..3ef89097 100644
--- a/lib/imap.c
+++ b/lib/imap.c
@@ -159,7 +159,8 @@ const struct Curl_handler Curl_handler_imaps = {
ZERO_NULL, /* connection_check */
PORT_IMAPS, /* defport */
CURLPROTO_IMAPS, /* protocol */
- PROTOPT_CLOSEACTION | PROTOPT_SSL /* flags */
+ PROTOPT_CLOSEACTION | PROTOPT_SSL | /* flags */
+ PROTOPT_URLOPTIONS
};
#endif
@@ -421,7 +422,6 @@ static CURLcode imap_perform_capability(struct connectdata *conn)
{
CURLcode result = CURLE_OK;
struct imap_conn *imapc = &conn->proto.imapc;
-
imapc->sasl.authmechs = SASL_AUTH_NONE; /* No known auth. mechanisms yet */
imapc->sasl.authused = SASL_AUTH_NONE; /* Clear the auth. mechanism used */
imapc->tls_supported = FALSE; /* Clear the TLS capability */
@@ -683,24 +683,37 @@ static CURLcode imap_perform_fetch(struct connectdata *conn)
{
CURLcode result = CURLE_OK;
struct IMAP *imap = conn->data->req.protop;
-
/* Check we have a UID */
- if(!imap->uid) {
- failf(conn->data, "Cannot FETCH without a UID.");
- return CURLE_URL_MALFORMAT;
+ if(imap->uid) {
+
+ /* Send the FETCH command */
+ if(imap->partial)
+ result = imap_sendf(conn, "UID FETCH %s BODY[%s]<%s>",
+ imap->uid,
+ imap->section ? imap->section : "",
+ imap->partial);
+ else
+ result = imap_sendf(conn, "UID FETCH %s BODY[%s]",
+ imap->uid,
+ imap->section ? imap->section : "");
+ }
+ else if(imap->mindex) {
+
+ /* Send the FETCH command */
+ if(imap->partial)
+ result = imap_sendf(conn, "FETCH %s BODY[%s]<%s>",
+ imap->mindex,
+ imap->section ? imap->section : "",
+ imap->partial);
+ else
+ result = imap_sendf(conn, "FETCH %s BODY[%s]",
+ imap->mindex,
+ imap->section ? imap->section : "");
+ }
+ else {
+ failf(conn->data, "Cannot FETCH without a UID.");
+ return CURLE_URL_MALFORMAT;
}
-
- /* Send the FETCH command */
- if(imap->partial)
- result = imap_sendf(conn, "FETCH %s BODY[%s]<%s>",
- imap->uid,
- imap->section ? imap->section : "",
- imap->partial);
- else
- result = imap_sendf(conn, "FETCH %s BODY[%s]",
- imap->uid,
- imap->section ? imap->section : "");
-
if(!result)
state(conn, IMAP_FETCH);
@@ -1464,9 +1477,10 @@ static CURLcode imap_done(struct connectdata *conn, CURLcode status,
result = status; /* use the already set error code */
}
else if(!data->set.connect_only && !imap->custom &&
- (imap->uid || data->set.upload ||
+ (imap->uid || imap->mindex || data->set.upload ||
data->set.mimepost.kind != MIMEKIND_NONE)) {
/* Handle responses after FETCH or APPEND transfer has finished */
+
if(!data->set.upload && data->set.mimepost.kind == MIMEKIND_NONE)
state(conn, IMAP_FETCH_FINAL);
else {
@@ -1490,6 +1504,7 @@ static CURLcode imap_done(struct connectdata *conn, CURLcode status,
Curl_safefree(imap->mailbox);
Curl_safefree(imap->uidvalidity);
Curl_safefree(imap->uid);
+ Curl_safefree(imap->mindex);
Curl_safefree(imap->section);
Curl_safefree(imap->partial);
Curl_safefree(imap->query);
@@ -1543,14 +1558,14 @@ static CURLcode imap_perform(struct connectdata *conn, bool *connected,
else if(imap->custom && (selected || !imap->mailbox))
/* Custom command using the same mailbox or no mailbox */
result = imap_perform_list(conn);
- else if(!imap->custom && selected && imap->uid)
+ else if(!imap->custom && selected && (imap->uid || imap->mindex))
/* FETCH from the same mailbox */
result = imap_perform_fetch(conn);
else if(!imap->custom && selected && imap->query)
/* SEARCH the current mailbox */
result = imap_perform_search(conn);
else if(imap->mailbox && !selected &&
- (imap->custom || imap->uid || imap->query))
+ (imap->custom || imap->uid || imap->mindex || imap->query))
/* SELECT the mailbox */
result = imap_perform_select(conn);
else
@@ -1702,8 +1717,6 @@ static CURLcode imap_regular_transfer(struct connectdata *conn,
static CURLcode imap_setup_connection(struct connectdata *conn)
{
- struct Curl_easy *data = conn->data;
-
/* Initialise the IMAP layer */
CURLcode result = imap_init(conn);
if(result)
@@ -1711,7 +1724,6 @@ static CURLcode imap_setup_connection(struct connectdata *conn)
/* Clear the TLS upgraded flag */
conn->tls_upgraded = FALSE;
- data->state.path++; /* don't include the initial slash */
return CURLE_OK;
}
@@ -1944,7 +1956,7 @@ static CURLcode imap_parse_url_path(struct connectdata *conn)
CURLcode result = CURLE_OK;
struct Curl_easy *data = conn->data;
struct IMAP *imap = data->req.protop;
- const char *begin = data->state.path;
+ const char *begin = &data->state.up.path[1]; /* skip leading slash */
const char *ptr = begin;
/* See how much of the URL is a valid path and decode it */
@@ -2016,6 +2028,13 @@ static CURLcode imap_parse_url_path(struct connectdata *conn)
imap->uid = value;
value = NULL;
}
+ else if(strcasecompare(name, "MAILINDEX") && !imap->mindex) {
+ if(valuelen > 0 && value[valuelen - 1] == '/')
+ value[valuelen - 1] = '\0';
+
+ imap->mindex = value;
+ value = NULL;
+ }
else if(strcasecompare(name, "SECTION") && !imap->section) {
if(valuelen > 0 && value[valuelen - 1] == '/')
value[valuelen - 1] = '\0';
@@ -2043,17 +2062,10 @@ static CURLcode imap_parse_url_path(struct connectdata *conn)
/* Does the URL contain a query parameter? Only valid when we have a mailbox
and no UID as per RFC-5092 */
- if(imap->mailbox && !imap->uid && *ptr == '?') {
- /* Find the length of the query parameter */
- begin = ++ptr;
- while(imap_is_bchar(*ptr))
- ptr++;
-
- /* Decode the query parameter */
- result = Curl_urldecode(data, begin, ptr - begin, &imap->query, NULL,
- TRUE);
- if(result)
- return result;
+ if(imap->mailbox && !imap->uid && !imap->mindex) {
+ /* Get the query parameter, URL decoded */
+ (void)curl_url_get(data->state.uh, CURLUPART_QUERY, &imap->query,
+ CURLU_URLDECODE);
}
/* Any extra stuff at the end of the URL is an error */
diff --git a/lib/imap.h b/lib/imap.h
index 9fc4ff5a..0efcfd29 100644
--- a/lib/imap.h
+++ b/lib/imap.h
@@ -58,6 +58,7 @@ struct IMAP {
char *mailbox; /* Mailbox to select */
char *uidvalidity; /* UIDVALIDITY to check in select */
char *uid; /* Message UID to fetch */
+ char *mindex; /* Index in mail box of mail to fetch */
char *section; /* Message SECTION to fetch */
char *partial; /* Message PARTIAL to fetch */
char *query; /* Query to search for */
diff --git a/lib/inet_ntop.h b/lib/inet_ntop.h
index 9f446127..d150bb69 100644
--- a/lib/inet_ntop.h
+++ b/lib/inet_ntop.h
@@ -35,4 +35,3 @@ char *Curl_inet_ntop(int af, const void *addr, char *buf, size_t size);
#endif
#endif /* HEADER_CURL_INET_NTOP_H */
-
diff --git a/lib/inet_pton.h b/lib/inet_pton.h
index e216f4ef..0209b9b7 100644
--- a/lib/inet_pton.h
+++ b/lib/inet_pton.h
@@ -37,4 +37,3 @@ int Curl_inet_pton(int, const char *, void *);
#endif
#endif /* HEADER_CURL_INET_PTON_H */
-
diff --git a/lib/krb5.c b/lib/krb5.c
index 8b5a2472..e51dcd1c 100644
--- a/lib/krb5.c
+++ b/lib/krb5.c
@@ -206,7 +206,7 @@ krb5_auth(void *app_data, struct connectdata *conn)
if(maj != GSS_S_COMPLETE) {
gss_release_name(&min, &gssname);
if(service == srv_host) {
- Curl_failf(data, "Error importing service name %s@%s", service, host);
+ failf(data, "Error importing service name %s@%s", service, host);
return AUTH_ERROR;
}
service = srv_host;
@@ -265,6 +265,7 @@ krb5_auth(void *app_data, struct connectdata *conn)
result = CURLE_OUT_OF_MEMORY;
free(p);
+ free(cmd);
if(result) {
ret = -2;
@@ -290,8 +291,7 @@ krb5_auth(void *app_data, struct connectdata *conn)
(unsigned char **)&_gssresp.value,
&_gssresp.length);
if(result) {
- Curl_failf(data, "base64-decoding: %s",
- curl_easy_strerror(result));
+ failf(data, "base64-decoding: %s", curl_easy_strerror(result));
ret = AUTH_CONTINUE;
break;
}
diff --git a/lib/ldap.c b/lib/ldap.c
index 4d8f4fa2..ceaa71d0 100644
--- a/lib/ldap.c
+++ b/lib/ldap.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -474,7 +474,13 @@ static CURLcode Curl_ldap(struct connectdata *conn, bool *done)
#endif
}
if(rc != 0) {
- failf(data, "LDAP local: ldap_simple_bind_s %s", ldap_err2string(rc));
+#ifdef USE_WIN32_LDAP
+ failf(data, "LDAP local: bind via ldap_win_bind %s",
+ ldap_err2string(rc));
+#else
+ failf(data, "LDAP local: bind via ldap_simple_bind_s %s",
+ ldap_err2string(rc));
+#endif
result = CURLE_LDAP_CANNOT_BIND;
goto quit;
}
@@ -838,9 +844,9 @@ static int _ldap_url_parse2(const struct connectdata *conn, LDAPURLDesc *ludp)
size_t i;
if(!conn->data ||
- !conn->data->state.path ||
- conn->data->state.path[0] != '/' ||
- !checkprefix("LDAP", conn->data->change.url))
+ !conn->data->state.up.path ||
+ conn->data->state.up.path[0] != '/' ||
+ !strcasecompare("LDAP", conn->data->state.up.scheme))
return LDAP_INVALID_SYNTAX;
ludp->lud_scope = LDAP_SCOPE_BASE;
@@ -848,7 +854,7 @@ static int _ldap_url_parse2(const struct connectdata *conn, LDAPURLDesc *ludp)
ludp->lud_host = conn->host.name;
/* Duplicate the path */
- p = path = strdup(conn->data->state.path + 1);
+ p = path = strdup(conn->data->state.up.path + 1);
if(!path)
return LDAP_NO_MEMORY;
diff --git a/lib/libcurl.plist b/lib/libcurl.plist
index dfe6921a..54d0480b 100644
--- a/lib/libcurl.plist
+++ b/lib/libcurl.plist
@@ -15,7 +15,7 @@
<string>se.haxx.curl.libcurl</string>
<key>CFBundleVersion</key>
- <string>7.61.1</string>
+ <string>7.62.0</string>
<key>CFBundleName</key>
<string>libcurl</string>
@@ -27,9 +27,9 @@
<string>????</string>
<key>CFBundleShortVersionString</key>
- <string>libcurl 7.61.1</string>
+ <string>libcurl 7.62.0</string>
<key>CFBundleGetInfoString</key>
- <string>libcurl.plist 7.61.1</string>
+ <string>libcurl.plist 7.62.0</string>
</dict>
</plist>
diff --git a/lib/llist.h b/lib/llist.h
index 6b644b99..b9d4c89a 100644
--- a/lib/llist.h
+++ b/lib/llist.h
@@ -51,4 +51,3 @@ void Curl_llist_move(struct curl_llist *, struct curl_llist_element *,
struct curl_llist *, struct curl_llist_element *);
#endif /* HEADER_CURL_LLIST_H */
-
diff --git a/lib/makefile.amiga b/lib/makefile.amiga
index c692e5eb..673b147c 100644
--- a/lib/makefile.amiga
+++ b/lib/makefile.amiga
@@ -4,16 +4,16 @@
# change the follow to where you have the AmiTCP SDK v4.3 includes:
-ATCPSDKI= /GG/netinclude
+ATCPSDKI= /GG/netinclude
-CC = m68k-amigaos-gcc
-CFLAGS = -I$(ATCPSDKI) -m68020-60 -O2 -msoft-float -noixemul -g -I. -I../include -W -Wall
+CC = m68k-amigaos-gcc
+CFLAGS = -I$(ATCPSDKI) -m68020-60 -O2 -msoft-float -noixemul -g -I. -I../include -W -Wall
include Makefile.inc
OBJS = $(CSOURCES:.c=.o)
-all: $(OBJS)
+all: $(OBJS)
ar cru libcurl.a $(OBJS)
ranlib libcurl.a
diff --git a/lib/makefile.dj b/lib/makefile.dj
index 8ab2d575..941f8ce6 100644
--- a/lib/makefile.dj
+++ b/lib/makefile.dj
@@ -69,4 +69,3 @@ realclean vclean: clean
- $(DELETE) $(CURL_LIB)
-include depend.dj
-
diff --git a/lib/md4.c b/lib/md4.c
index 2bb7dcc2..d3506021 100644
--- a/lib/md4.c
+++ b/lib/md4.c
@@ -3,7 +3,7 @@
* MD4 Message-Digest Algorithm (RFC 1320).
*
* Homepage:
- http://openwall.info/wiki/people/solar/software/public-domain-source-code/md4
+ https://openwall.info/wiki/people/solar/software/public-domain-source-code/md4
*
* Author:
* Alexander Peslyak, better known as Solar Designer <solar at openwall.com>
diff --git a/lib/md5.c b/lib/md5.c
index b819d392..45f45bbd 100644
--- a/lib/md5.c
+++ b/lib/md5.c
@@ -177,7 +177,7 @@ static void MD5_Final(unsigned char digest[16], MD5_CTX *ctx)
* MD5 Message-Digest Algorithm (RFC 1321).
*
* Homepage:
- http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5
+ https://openwall.info/wiki/people/solar/software/public-domain-source-code/md5
*
* Author:
* Alexander Peslyak, better known as Solar Designer <solar at openwall.com>
diff --git a/lib/multi.c b/lib/multi.c
index 0caf9432..0db2a973 100644
--- a/lib/multi.c
+++ b/lib/multi.c
@@ -347,6 +347,7 @@ struct Curl_multi *Curl_multi_handle(int hashsize, /* socket hash */
Curl_llist_init(&multi->pending, multi_freeamsg);
multi->max_pipeline_length = 5;
+ multi->pipelining = CURLPIPE_MULTIPLEX;
/* -1 means it not set by user, use the default value */
multi->maxconnects = -1;
@@ -491,6 +492,8 @@ CURLMcode curl_multi_add_handle(struct Curl_multi *multi,
data->state.conn_cache->closure_handle->set.timeout = data->set.timeout;
data->state.conn_cache->closure_handle->set.server_response_timeout =
data->set.server_response_timeout;
+ data->state.conn_cache->closure_handle->set.no_signal =
+ data->set.no_signal;
update_timer(multi);
return CURLM_OK;
@@ -541,10 +544,8 @@ static CURLcode multi_done(struct connectdata **connp,
Curl_getoff_all_pipelines(data, conn);
/* Cleanup possible redirect junk */
- free(data->req.newurl);
- data->req.newurl = NULL;
- free(data->req.location);
- data->req.location = NULL;
+ Curl_safefree(data->req.newurl);
+ Curl_safefree(data->req.location);
switch(status) {
case CURLE_ABORTED_BY_CALLBACK:
@@ -656,7 +657,6 @@ static CURLcode multi_done(struct connectdata **connp,
cache here, and therefore cannot be used from this point on
*/
Curl_free_request_state(data);
-
return result;
}
@@ -905,7 +905,7 @@ static int multi_getsock(struct Curl_easy *data,
return 0;
case CURLM_STATE_WAITRESOLVE:
- return Curl_resolver_getsock(data->easy_conn, socks, numsocks);
+ return Curl_resolv_getsock(data->easy_conn, socks, numsocks);
case CURLM_STATE_PROTOCONNECT:
case CURLM_STATE_SENDPROTOCONNECT:
@@ -1009,13 +1009,6 @@ CURLMcode curl_multi_wait(struct Curl_multi *multi,
if(multi->in_callback)
return CURLM_RECURSIVE_API_CALL;
- /* If the internally desired timeout is actually shorter than requested from
- the outside, then use the shorter time! But only if the internal timer
- is actually larger than -1! */
- (void)multi_timeout(multi, &timeout_internal);
- if((timeout_internal >= 0) && (timeout_internal < (long)timeout_ms))
- timeout_ms = (int)timeout_internal;
-
/* Count up how many fds we have from the multi handle */
data = multi->easyp;
while(data) {
@@ -1040,6 +1033,13 @@ CURLMcode curl_multi_wait(struct Curl_multi *multi,
data = data->next; /* check next handle */
}
+ /* If the internally desired timeout is actually shorter than requested from
+ the outside, then use the shorter time! But only if the internal timer
+ is actually larger than -1! */
+ (void)multi_timeout(multi, &timeout_internal);
+ if((timeout_internal >= 0) && (timeout_internal < (long)timeout_ms))
+ timeout_ms = (int)timeout_internal;
+
curlfds = nfds; /* number of internal file descriptors */
nfds += extra_nfds; /* add the externally provided ones */
@@ -1235,7 +1235,7 @@ static CURLcode multi_reconnect_request(struct connectdata **connp)
return result;
/* Resolved, continue with the connection */
- result = Curl_async_resolved(conn, &protocol_done);
+ result = Curl_once_resolved(conn, &protocol_done);
if(result)
return result;
}
@@ -1511,7 +1511,7 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
}
if(!dns)
- result = Curl_resolver_is_resolved(data->easy_conn, &dns);
+ result = Curl_resolv_check(data->easy_conn, &dns);
/* Update sockets here, because the socket(s) may have been
closed and the application thus needs to be told, even if it
@@ -1524,10 +1524,10 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
if(dns) {
/* Perform the next step in the connection phase, and then move on
to the WAITCONNECT state */
- result = Curl_async_resolved(data->easy_conn, &protocol_connect);
+ result = Curl_once_resolved(data->easy_conn, &protocol_connect);
if(result)
- /* if Curl_async_resolved() returns failure, the connection struct
+ /* if Curl_once_resolved() returns failure, the connection struct
is already freed and gone */
data->easy_conn = NULL; /* no more connection */
else {
@@ -1608,7 +1608,7 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
case CURLM_STATE_SENDPROTOCONNECT:
result = Curl_protocol_connect(data->easy_conn, &protocol_connect);
- if(!protocol_connect)
+ if(!result && !protocol_connect)
/* switch to waiting state */
multistate(data, CURLM_STATE_PROTOCONNECT);
else if(!result) {
@@ -1707,7 +1707,6 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
char *newurl = NULL;
followtype follow = FOLLOW_NONE;
CURLcode drc;
- bool retry = FALSE;
drc = Curl_retry_request(data->easy_conn, &newurl);
if(drc) {
@@ -1715,15 +1714,13 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
result = drc;
stream_error = TRUE;
}
- else
- retry = (newurl)?TRUE:FALSE;
Curl_posttransfer(data);
drc = multi_done(&data->easy_conn, result, FALSE);
/* When set to retry the connection, we must to go back to
* the CONNECT state */
- if(retry) {
+ if(newurl) {
if(!drc || (drc == CURLE_SEND_ERROR)) {
follow = FOLLOW_RETRY;
drc = Curl_follow(data, newurl, follow);
@@ -1993,6 +1990,7 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
rc = CURLM_CALL_MULTI_PERFORM;
}
}
+ free(newurl);
}
else {
/* after the transfer is done, go DONE */
@@ -2004,18 +2002,21 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
newurl = data->req.location;
data->req.location = NULL;
result = Curl_follow(data, newurl, FOLLOW_FAKE);
- if(result)
+ free(newurl);
+ if(result) {
stream_error = TRUE;
+ result = multi_done(&data->easy_conn, result, TRUE);
+ }
}
- multistate(data, CURLM_STATE_DONE);
- rc = CURLM_CALL_MULTI_PERFORM;
+ if(!result) {
+ multistate(data, CURLM_STATE_DONE);
+ rc = CURLM_CALL_MULTI_PERFORM;
+ }
}
}
else if(comeback)
rc = CURLM_CALL_MULTI_PERFORM;
-
- free(newurl);
break;
}
@@ -2131,15 +2132,21 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
}
if(CURLM_STATE_COMPLETED == data->mstate) {
- /* now fill in the Curl_message with this info */
- msg = &data->msg;
+ if(data->set.fmultidone) {
+ /* signal via callback instead */
+ data->set.fmultidone(data, result);
+ }
+ else {
+ /* now fill in the Curl_message with this info */
+ msg = &data->msg;
- msg->extmsg.msg = CURLMSG_DONE;
- msg->extmsg.easy_handle = data;
- msg->extmsg.data.result = result;
+ msg->extmsg.msg = CURLMSG_DONE;
+ msg->extmsg.easy_handle = data;
+ msg->extmsg.data.result = result;
- rc = multi_addmsg(multi, msg);
- DEBUGASSERT(!data->easy_conn);
+ rc = multi_addmsg(multi, msg);
+ DEBUGASSERT(!data->easy_conn);
+ }
multistate(data, CURLM_STATE_MSGSENT);
}
} while((rc == CURLM_CALL_MULTI_PERFORM) || multi_ischanged(multi, FALSE));
@@ -2705,7 +2712,7 @@ CURLMcode curl_multi_setopt(struct Curl_multi *multi,
multi->push_userp = va_arg(param, void *);
break;
case CURLMOPT_PIPELINING:
- multi->pipelining = va_arg(param, long);
+ multi->pipelining = va_arg(param, long) & CURLPIPE_MULTIPLEX;
break;
case CURLMOPT_TIMERFUNCTION:
multi->timer_cb = va_arg(param, curl_multi_timer_callback);
diff --git a/lib/netrc.c b/lib/netrc.c
index a407bdaa..1724b35b 100644
--- a/lib/netrc.c
+++ b/lib/netrc.c
@@ -57,7 +57,11 @@ int Curl_parsenetrc(const char *host,
{
FILE *file;
int retcode = 1;
- int specific_login = (*loginp && **loginp != 0);
+ char *login = *loginp;
+ char *password = *passwordp;
+ bool specific_login = (login && *login != 0);
+ bool login_alloc = FALSE;
+ bool password_alloc = FALSE;
bool netrc_alloc = FALSE;
enum host_lookup_state state = NOTHING;
@@ -125,7 +129,7 @@ int Curl_parsenetrc(const char *host,
continue;
while(!done && tok) {
- if((*loginp && **loginp) && (*passwordp && **passwordp)) {
+ if((login && *login) && (password && *password)) {
done = TRUE;
break;
}
@@ -158,26 +162,34 @@ int Curl_parsenetrc(const char *host,
/* we are now parsing sub-keywords concerning "our" host */
if(state_login) {
if(specific_login) {
- state_our_login = strcasecompare(*loginp, tok);
+ state_our_login = strcasecompare(login, tok);
}
else {
- free(*loginp);
- *loginp = strdup(tok);
- if(!*loginp) {
+ if(login_alloc) {
+ free(login);
+ login_alloc = FALSE;
+ }
+ login = strdup(tok);
+ if(!login) {
retcode = -1; /* allocation failed */
goto out;
}
+ login_alloc = TRUE;
}
state_login = 0;
}
else if(state_password) {
if(state_our_login || !specific_login) {
- free(*passwordp);
- *passwordp = strdup(tok);
- if(!*passwordp) {
+ if(password_alloc) {
+ free(password);
+ password_alloc = FALSE;
+ }
+ password = strdup(tok);
+ if(!password) {
retcode = -1; /* allocation failed */
goto out;
}
+ password_alloc = TRUE;
}
state_password = 0;
}
@@ -198,6 +210,24 @@ int Curl_parsenetrc(const char *host,
} /* while fgets() */
out:
+ if(!retcode) {
+ if(login_alloc) {
+ if(*loginp)
+ free(*loginp);
+ *loginp = login;
+ }
+ if(password_alloc) {
+ if(*passwordp)
+ free(*passwordp);
+ *passwordp = password;
+ }
+ }
+ else {
+ if(login_alloc)
+ free(login);
+ if(password_alloc)
+ free(password);
+ }
fclose(file);
}
diff --git a/lib/nonblock.c b/lib/nonblock.c
index 5959281e..4d105c1f 100644
--- a/lib/nonblock.c
+++ b/lib/nonblock.c
@@ -48,7 +48,8 @@ int curlx_nonblock(curl_socket_t sockfd, /* operate on this */
int nonblock /* TRUE or FALSE */)
{
#if defined(USE_BLOCKING_SOCKETS)
-
+ (void)sockfd;
+ (void)nonblock;
return 0; /* returns success */
#elif defined(HAVE_FCNTL_O_NONBLOCK)
diff --git a/lib/nonblock.h b/lib/nonblock.h
index 98cdc25a..eb18ea1c 100644
--- a/lib/nonblock.h
+++ b/lib/nonblock.h
@@ -28,4 +28,3 @@ int curlx_nonblock(curl_socket_t sockfd, /* operate on this */
int nonblock /* TRUE or FALSE */);
#endif /* HEADER_CURL_NONBLOCK_H */
-
diff --git a/lib/nwlib.c b/lib/nwlib.c
index 215d933a..7bf5f51c 100644
--- a/lib/nwlib.c
+++ b/lib/nwlib.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -195,7 +195,7 @@ int GetOrSetUpData(int id, libdata_t **appData,
if(!app_data->tenbytes || !app_data->lock) {
if(app_data->lock)
NXMutexFree(app_data->lock);
-
+ free(app_data->tenbytes);
free(app_data);
app_data = (libdata_t *) NULL;
err = ENOMEM;
@@ -213,6 +213,9 @@ int GetOrSetUpData(int id, libdata_t **appData,
err = set_app_data(gLibId, app_data);
if(err) {
+ if(app_data->lock)
+ NXMutexFree(app_data->lock);
+ free(app_data->tenbytes);
free(app_data);
app_data = (libdata_t *) NULL;
err = ENOMEM;
diff --git a/lib/parsedate.h b/lib/parsedate.h
index 2e59eb17..8dc3b90e 100644
--- a/lib/parsedate.h
+++ b/lib/parsedate.h
@@ -28,4 +28,3 @@ extern const char * const Curl_month[12];
CURLcode Curl_gmtime(time_t intime, struct tm *store);
#endif /* HEADER_CURL_PARSEDATE_H */
-
diff --git a/lib/pop3.c b/lib/pop3.c
index cd994f63..5e0fd229 100644
--- a/lib/pop3.c
+++ b/lib/pop3.c
@@ -1303,8 +1303,6 @@ static CURLcode pop3_regular_transfer(struct connectdata *conn,
static CURLcode pop3_setup_connection(struct connectdata *conn)
{
- struct Curl_easy *data = conn->data;
-
/* Initialise the POP3 layer */
CURLcode result = pop3_init(conn);
if(result)
@@ -1312,7 +1310,6 @@ static CURLcode pop3_setup_connection(struct connectdata *conn)
/* Clear the TLS upgraded flag */
conn->tls_upgraded = FALSE;
- data->state.path++; /* don't include the initial slash */
return CURLE_OK;
}
@@ -1387,7 +1384,7 @@ static CURLcode pop3_parse_url_path(struct connectdata *conn)
/* The POP3 struct is already initialised in pop3_connect() */
struct Curl_easy *data = conn->data;
struct POP3 *pop3 = data->req.protop;
- const char *path = data->state.path;
+ const char *path = &data->state.up.path[1]; /* skip leading path */
/* URL decode the path for the message ID */
return Curl_urldecode(data, path, 0, &pop3->id, NULL, TRUE);
diff --git a/lib/progress.h b/lib/progress.h
index 92dbcbd9..3515ac6d 100644
--- a/lib/progress.h
+++ b/lib/progress.h
@@ -62,4 +62,3 @@ timediff_t Curl_pgrsLimitWaitTime(curl_off_t cursize,
#define PGRS_HEADERS_OUT (1<<7) /* set when the headers have been written */
#endif /* HEADER_CURL_PROGRESS_H */
-
diff --git a/lib/rand.c b/lib/rand.c
index 1dc2504a..6ee45feb 100644
--- a/lib/rand.c
+++ b/lib/rand.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -174,6 +174,8 @@ CURLcode Curl_rand_hex(struct Curl_easy *data, unsigned char *rnd,
return result;
while(num) {
+ /* clang-tidy warns on this line without this comment: */
+ /* NOLINTNEXTLINE(clang-analyzer-core.UndefinedBinaryOperatorResult) */
*rnd++ = hex[(*bufp & 0xF0)>>4];
*rnd++ = hex[*bufp & 0x0F];
bufp++;
diff --git a/lib/rtsp.c b/lib/rtsp.c
index 182ee295..01dfce64 100644
--- a/lib/rtsp.c
+++ b/lib/rtsp.c
@@ -462,7 +462,7 @@ static CURLcode rtsp_do(struct connectdata *conn, bool *done)
return CURLE_OUT_OF_MEMORY;
result =
- Curl_add_bufferf(req_buffer,
+ Curl_add_bufferf(&req_buffer,
"%s %s RTSP/1.0\r\n" /* Request Stream-URI RTSP/1.0 */
"CSeq: %ld\r\n", /* CSeq */
p_request, p_stream_uri, rtsp->CSeq_sent);
@@ -474,7 +474,7 @@ static CURLcode rtsp_do(struct connectdata *conn, bool *done)
* to make comparison easier
*/
if(p_session_id) {
- result = Curl_add_bufferf(req_buffer, "Session: %s\r\n", p_session_id);
+ result = Curl_add_bufferf(&req_buffer, "Session: %s\r\n", p_session_id);
if(result)
return result;
}
@@ -482,7 +482,7 @@ static CURLcode rtsp_do(struct connectdata *conn, bool *done)
/*
* Shared HTTP-like options
*/
- result = Curl_add_bufferf(req_buffer,
+ result = Curl_add_bufferf(&req_buffer,
"%s" /* transport */
"%s" /* accept */
"%s" /* accept-encoding */
@@ -541,9 +541,10 @@ static CURLcode rtsp_do(struct connectdata *conn, bool *done)
/* As stated in the http comments, it is probably not wise to
* actually set a custom Content-Length in the headers */
if(!Curl_checkheaders(conn, "Content-Length")) {
- result = Curl_add_bufferf(req_buffer,
- "Content-Length: %" CURL_FORMAT_CURL_OFF_T"\r\n",
- (data->set.upload ? putsize : postsize));
+ result =
+ Curl_add_bufferf(&req_buffer,
+ "Content-Length: %" CURL_FORMAT_CURL_OFF_T"\r\n",
+ (data->set.upload ? putsize : postsize));
if(result)
return result;
}
@@ -551,8 +552,8 @@ static CURLcode rtsp_do(struct connectdata *conn, bool *done)
if(rtspreq == RTSPREQ_SET_PARAMETER ||
rtspreq == RTSPREQ_GET_PARAMETER) {
if(!Curl_checkheaders(conn, "Content-Type")) {
- result = Curl_add_bufferf(req_buffer,
- "Content-Type: text/parameters\r\n");
+ result = Curl_add_bufferf(&req_buffer,
+ "Content-Type: text/parameters\r\n");
if(result)
return result;
}
@@ -560,8 +561,8 @@ static CURLcode rtsp_do(struct connectdata *conn, bool *done)
if(rtspreq == RTSPREQ_ANNOUNCE) {
if(!Curl_checkheaders(conn, "Content-Type")) {
- result = Curl_add_bufferf(req_buffer,
- "Content-Type: application/sdp\r\n");
+ result = Curl_add_bufferf(&req_buffer,
+ "Content-Type: application/sdp\r\n");
if(result)
return result;
}
@@ -579,19 +580,19 @@ static CURLcode rtsp_do(struct connectdata *conn, bool *done)
/* RTSP never allows chunked transfer */
data->req.forbidchunk = TRUE;
/* Finish the request buffer */
- result = Curl_add_buffer(req_buffer, "\r\n", 2);
+ result = Curl_add_buffer(&req_buffer, "\r\n", 2);
if(result)
return result;
if(postsize > 0) {
- result = Curl_add_buffer(req_buffer, data->set.postfields,
+ result = Curl_add_buffer(&req_buffer, data->set.postfields,
(size_t)postsize);
if(result)
return result;
}
/* issue the request */
- result = Curl_add_buffer_send(req_buffer, conn,
+ result = Curl_add_buffer_send(&req_buffer, conn,
&data->info.request_size, 0, FIRSTSOCKET);
if(result) {
failf(data, "Failed sending RTSP request");
diff --git a/lib/rtsp.h b/lib/rtsp.h
index 8375a531..2f9cc32c 100644
--- a/lib/rtsp.h
+++ b/lib/rtsp.h
@@ -64,4 +64,3 @@ struct RTSP {
#endif /* HEADER_CURL_RTSP_H */
-
diff --git a/lib/security.c b/lib/security.c
index abf242c3..6165d0af 100644
--- a/lib/security.c
+++ b/lib/security.c
@@ -61,7 +61,9 @@
#include "strcase.h"
#include "warnless.h"
#include "strdup.h"
-/* The last #include file should be: */
+/* The last 3 #include files should be in this order */
+#include "curl_printf.h"
+#include "curl_memory.h"
#include "memdebug.h"
static const struct {
@@ -422,7 +424,7 @@ static int sec_set_protection_level(struct connectdata *conn)
if(!conn->sec_complete) {
infof(conn->data, "Trying to change the protection level after the"
- "completion of the data exchange.\n");
+ " completion of the data exchange.\n");
return -1;
}
diff --git a/lib/select.h b/lib/select.h
index 4351786c..9a1ba45a 100644
--- a/lib/select.h
+++ b/lib/select.h
@@ -113,4 +113,3 @@ int tpf_select_libcurl(int maxfds, fd_set* reads, fd_set* writes,
#endif
#endif /* HEADER_CURL_SELECT_H */
-
diff --git a/lib/sendf.h b/lib/sendf.h
index 7627fe6c..c68b017d 100644
--- a/lib/sendf.h
+++ b/lib/sendf.h
@@ -36,7 +36,7 @@ void Curl_failf(struct Curl_easy *, const char *fmt, ...);
#elif defined(HAVE_VARIADIC_MACROS_GCC)
#define infof(x...) Curl_nop_stmt
#else
-#define infof (void)
+#error "missing VARIADIC macro define, fix and rebuild!"
#endif
#else /* CURL_DISABLE_VERBOSE_STRINGS */
diff --git a/lib/setopt.c b/lib/setopt.c
index 5c5f4b38..22956a20 100644
--- a/lib/setopt.c
+++ b/lib/setopt.c
@@ -127,9 +127,11 @@ CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option,
data->set.dns_cache_timeout = arg;
break;
case CURLOPT_DNS_USE_GLOBAL_CACHE:
+#if 0 /* deprecated */
/* remember we want this enabled */
arg = va_arg(param, long);
data->set.global_dns_cache = (0 != arg) ? TRUE : FALSE;
+#endif
break;
case CURLOPT_SSL_CIPHER_LIST:
/* set a list of cipher we want to use in the SSL connection */
@@ -841,6 +843,8 @@ CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option,
#else
if(arg > CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE)
return CURLE_UNSUPPORTED_PROTOCOL;
+ if(arg == CURL_HTTP_VERSION_NONE)
+ arg = CURL_HTTP_VERSION_2TLS;
#endif
data->set.httpversion = arg;
break;
@@ -1936,6 +1940,22 @@ CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option,
break;
+ case CURLOPT_UPLOAD_BUFFERSIZE:
+ /*
+ * The application kindly asks for a differently sized upload buffer.
+ * Cap it to sensible.
+ */
+ arg = va_arg(param, long);
+
+ if(arg > UPLOADBUFFER_MAX)
+ arg = UPLOADBUFFER_MAX;
+ else if(arg < UPLOADBUFFER_MIN)
+ arg = UPLOADBUFFER_MIN;
+
+ data->set.upload_buffer_size = arg;
+ Curl_safefree(data->state.ulbuf); /* force a realloc next opportunity */
+ break;
+
case CURLOPT_NOSIGNAL:
/*
* The application asks not to set any signal() or alarm() handlers,
@@ -2599,6 +2619,17 @@ CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option,
data->set.disallow_username_in_url =
(0 != va_arg(param, long)) ? TRUE : FALSE;
break;
+ case CURLOPT_DOH_URL:
+ result = Curl_setstropt(&data->set.str[STRING_DOH],
+ va_arg(param, char *));
+ data->set.doh = data->set.str[STRING_DOH]?TRUE:FALSE;
+ break;
+ case CURLOPT_UPKEEP_INTERVAL_MS:
+ arg = va_arg(param, long);
+ if(arg < 0)
+ return CURLE_BAD_FUNCTION_ARGUMENT;
+ data->set.upkeep_interval_ms = arg;
+ break;
default:
/* unknown tag and its companion, just ignore: */
result = CURLE_UNKNOWN_OPTION;
diff --git a/lib/slist.c b/lib/slist.c
index e5adc0e7..392b84d1 100644
--- a/lib/slist.c
+++ b/lib/slist.c
@@ -142,4 +142,3 @@ void curl_slist_free_all(struct curl_slist *list)
item = next;
} while(next);
}
-
diff --git a/lib/slist.h b/lib/slist.h
index b3f498c3..d73dbf67 100644
--- a/lib/slist.h
+++ b/lib/slist.h
@@ -37,4 +37,3 @@ struct curl_slist *Curl_slist_append_nodup(struct curl_slist *list,
char *data);
#endif /* HEADER_CURL_SLIST_H */
-
diff --git a/lib/smb.c b/lib/smb.c
index e4b18fcf..e4f266e1 100644
--- a/lib/smb.c
+++ b/lib/smb.c
@@ -610,7 +610,8 @@ static CURLcode smb_send_and_recv(struct connectdata *conn, void **msg)
/* Check if there is data in the transfer buffer */
if(!smbc->send_size && smbc->upload_size) {
- size_t nread = smbc->upload_size > UPLOAD_BUFSIZE ? UPLOAD_BUFSIZE :
+ size_t nread = smbc->upload_size > conn->data->set.upload_buffer_size ?
+ conn->data->set.upload_buffer_size :
smbc->upload_size;
conn->data->req.upload_fromhere = conn->data->state.ulbuf;
result = Curl_fillreadbuffer(conn, nread, &nread);
@@ -968,7 +969,7 @@ static CURLcode smb_parse_url_path(struct connectdata *conn)
char *slash;
/* URL decode the path */
- result = Curl_urldecode(data, data->state.path, 0, &path, NULL, TRUE);
+ result = Curl_urldecode(data, data->state.up.path, 0, &path, NULL, TRUE);
if(result)
return result;
diff --git a/lib/smtp.c b/lib/smtp.c
index ecf10a41..58756230 100644
--- a/lib/smtp.c
+++ b/lib/smtp.c
@@ -1441,7 +1441,6 @@ static CURLcode smtp_regular_transfer(struct connectdata *conn,
static CURLcode smtp_setup_connection(struct connectdata *conn)
{
- struct Curl_easy *data = conn->data;
CURLcode result;
/* Clear the TLS upgraded flag */
@@ -1452,8 +1451,6 @@ static CURLcode smtp_setup_connection(struct connectdata *conn)
if(result)
return result;
- data->state.path++; /* don't include the initial slash */
-
return CURLE_OK;
}
@@ -1507,7 +1504,7 @@ static CURLcode smtp_parse_url_path(struct connectdata *conn)
/* The SMTP struct is already initialised in smtp_connect() */
struct Curl_easy *data = conn->data;
struct smtp_conn *smtpc = &conn->proto.smtpc;
- const char *path = data->state.path;
+ const char *path = &data->state.up.path[1]; /* skip leading path */
char localhost[HOSTNAME_MAX + 1];
/* Calculate the path if necessary */
@@ -1563,14 +1560,14 @@ CURLcode Curl_smtp_escape_eob(struct connectdata *conn, const ssize_t nread)
if(!scratch || data->set.crlf) {
oldscratch = scratch;
- scratch = newscratch = malloc(2 * UPLOAD_BUFSIZE);
+ scratch = newscratch = malloc(2 * data->set.upload_buffer_size);
if(!newscratch) {
failf(data, "Failed to alloc scratch buffer!");
return CURLE_OUT_OF_MEMORY;
}
}
- DEBUGASSERT(UPLOAD_BUFSIZE >= nread);
+ DEBUGASSERT(data->set.upload_buffer_size >= (size_t)nread);
/* Have we already sent part of the EOB? */
eob_sent = smtp->eob;
diff --git a/lib/sockaddr.h b/lib/sockaddr.h
index 95ba4c3c..db146803 100644
--- a/lib/sockaddr.h
+++ b/lib/sockaddr.h
@@ -40,4 +40,3 @@ struct Curl_sockaddr_storage {
};
#endif /* HEADER_CURL_SOCKADDR_H */
-
diff --git a/lib/socks.c b/lib/socks.c
index 81f3eda2..d2209ad8 100644
--- a/lib/socks.c
+++ b/lib/socks.c
@@ -98,7 +98,7 @@ int Curl_blockread_all(struct connectdata *conn, /* connection data */
* destination server.
*
* Reference :
-* http://socks.permeo.com/protocol/socks4.protocol
+* https://www.openssh.com/txt/socks4.protocol
*
* Note :
* Set protocol4a=true for "SOCKS 4A (Simple Extension to SOCKS 4 Protocol)"
@@ -789,4 +789,3 @@ CURLcode Curl_SOCKS5(const char *proxy_user,
}
#endif /* CURL_DISABLE_PROXY */
-
diff --git a/lib/socks.h b/lib/socks.h
index 348707e7..daa07c12 100644
--- a/lib/socks.h
+++ b/lib/socks.h
@@ -73,4 +73,3 @@ CURLcode Curl_SOCKS5_gssapi_negotiate(int sockindex,
#endif /* CURL_DISABLE_PROXY */
#endif /* HEADER_CURL_SOCKS_H */
-
diff --git a/lib/splay.c b/lib/splay.c
index c54a63bb..baf07e00 100644
--- a/lib/splay.c
+++ b/lib/splay.c
@@ -274,4 +274,3 @@ int Curl_splayremovebyaddr(struct Curl_tree *t,
return 0;
}
-
diff --git a/lib/ssh.c b/lib/ssh.c
index a4b2ca43..da896196 100644
--- a/lib/ssh.c
+++ b/lib/ssh.c
@@ -2926,7 +2926,7 @@ static CURLcode ssh_connect(struct connectdata *conn, bool *done)
int rc;
ssh->kh = libssh2_knownhost_init(ssh->ssh_session);
if(!ssh->kh) {
- /* eeek. TODO: free the ssh_session! */
+ libssh2_session_free(ssh->ssh_session);
return CURLE_FAILED_INIT;
}
diff --git a/lib/strdup.c b/lib/strdup.c
index 19cb0441..51e7978b 100644
--- a/lib/strdup.c
+++ b/lib/strdup.c
@@ -81,7 +81,7 @@ void *Curl_memdup(const void *src, size_t length)
* Curl_saferealloc(ptr, size)
*
* Does a normal realloc(), but will free the data pointer if the realloc
- * fails. If 'size' is zero, it will free the data and return a failure.
+ * fails. If 'size' is non-zero, it will free the data and return a failure.
*
* This convenience function is provided and used to help us avoid a common
* mistake pattern when we could pass in a zero, catch the NULL return and end
diff --git a/lib/strerror.c b/lib/strerror.c
index 0295d6c2..47ef44a6 100644
--- a/lib/strerror.c
+++ b/lib/strerror.c
@@ -191,9 +191,6 @@ curl_easy_strerror(CURLcode error)
case CURLE_TELNET_OPTION_SYNTAX :
return "Malformed telnet option";
- case CURLE_PEER_FAILED_VERIFICATION:
- return "SSL peer certificate or SSH remote key was not OK";
-
case CURLE_GOT_NOTHING:
return "Server returned nothing (no headers, no data)";
@@ -218,9 +215,8 @@ curl_easy_strerror(CURLcode error)
case CURLE_SSL_CIPHER:
return "Couldn't use specified SSL cipher";
- case CURLE_SSL_CACERT:
- return "Peer certificate cannot be authenticated with given CA "
- "certificates";
+ case CURLE_PEER_FAILED_VERIFICATION:
+ return "SSL peer certificate or SSH remote key was not OK";
case CURLE_SSL_CACERT_BADFILE:
return "Problem with the SSL CA cert (path? access rights?)";
@@ -324,6 +320,7 @@ curl_easy_strerror(CURLcode error)
case CURLE_OBSOLETE44:
case CURLE_OBSOLETE46:
case CURLE_OBSOLETE50:
+ case CURLE_OBSOLETE51:
case CURLE_OBSOLETE57:
case CURL_LAST:
break;
diff --git a/lib/telnet.h b/lib/telnet.h
index 419a399b..668a78a1 100644
--- a/lib/telnet.h
+++ b/lib/telnet.h
@@ -26,4 +26,3 @@ extern const struct Curl_handler Curl_handler_telnet;
#endif
#endif /* HEADER_CURL_TELNET_H */
-
diff --git a/lib/tftp.c b/lib/tftp.c
index e5bc80b0..5b74e8e0 100644
--- a/lib/tftp.c
+++ b/lib/tftp.c
@@ -485,7 +485,7 @@ static CURLcode tftp_send_first(tftp_state_data_t *state, tftp_event_t event)
/* As RFC3617 describes the separator slash is not actually part of the
file name so we skip the always-present first letter of the path
string. */
- result = Curl_urldecode(data, &state->conn->data->state.path[1], 0,
+ result = Curl_urldecode(data, &state->conn->data->state.up.path[1], 0,
&filename, NULL, FALSE);
if(result)
return result;
@@ -1374,7 +1374,7 @@ static CURLcode tftp_setup_connection(struct connectdata * conn)
/* TFTP URLs support an extension like ";mode=<typecode>" that
* we'll try to get now! */
- type = strstr(data->state.path, ";mode=");
+ type = strstr(data->state.up.path, ";mode=");
if(!type)
type = strstr(conn->host.rawalloc, ";mode=");
diff --git a/lib/tftp.h b/lib/tftp.h
index c2325b23..1335f64b 100644
--- a/lib/tftp.h
+++ b/lib/tftp.h
@@ -26,4 +26,3 @@ extern const struct Curl_handler Curl_handler_tftp;
#endif
#endif /* HEADER_CURL_TFTP_H */
-
diff --git a/lib/timeval.c b/lib/timeval.c
index f4bf8353..dce1a761 100644
--- a/lib/timeval.c
+++ b/lib/timeval.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -33,7 +33,8 @@ struct curltime Curl_now(void)
*/
struct curltime now;
#if !defined(_WIN32_WINNT) || !defined(_WIN32_WINNT_VISTA) || \
- (_WIN32_WINNT < _WIN32_WINNT_VISTA)
+ (_WIN32_WINNT < _WIN32_WINNT_VISTA) || \
+ (defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR))
DWORD milliseconds = GetTickCount();
now.tv_sec = milliseconds / 1000;
now.tv_usec = (milliseconds % 1000) * 1000;
@@ -60,7 +61,23 @@ struct curltime Curl_now(void)
struct timeval now;
struct curltime cnow;
struct timespec tsnow;
- if(0 == clock_gettime(CLOCK_MONOTONIC, &tsnow)) {
+
+ /*
+ ** clock_gettime() may be defined by Apple's SDK as weak symbol thus
+ ** code compiles but fails during run-time if clock_gettime() is
+ ** called on unsupported OS version.
+ */
+#if defined(__APPLE__) && (HAVE_BUILTIN_AVAILABLE == 1)
+ bool have_clock_gettime = FALSE;
+ if(__builtin_available(macOS 10.12, iOS 10, tvOS 10, watchOS 3, *))
+ have_clock_gettime = TRUE;
+#endif
+
+ if(
+#if defined(__APPLE__) && (HAVE_BUILTIN_AVAILABLE == 1)
+ have_clock_gettime &&
+#endif
+ (0 == clock_gettime(CLOCK_MONOTONIC, &tsnow))) {
cnow.tv_sec = tsnow.tv_sec;
cnow.tv_usec = (unsigned int)(tsnow.tv_nsec / 1000);
}
diff --git a/lib/transfer.c b/lib/transfer.c
index 7159d5c8..b73f94d9 100644
--- a/lib/transfer.c
+++ b/lib/transfer.c
@@ -75,6 +75,7 @@
#include "http2.h"
#include "mime.h"
#include "strcase.h"
+#include "urlapi-int.h"
/* The last 3 #include files should be in this order */
#include "curl_printf.h"
@@ -362,7 +363,7 @@ static int data_pending(const struct connectdata *conn)
return conn->handler->protocol&(CURLPROTO_SCP|CURLPROTO_SFTP) ||
#if defined(USE_NGHTTP2)
Curl_ssl_data_pending(conn, FIRSTSOCKET) ||
- /* For HTTP/2, we may read up everything including responde body
+ /* For HTTP/2, we may read up everything including response body
with header fields in Curl_http_readwrite_headers. If no
content-length is provided, curl waits for the connection
close, which we emulate it using conn->proto.httpc.closed =
@@ -566,7 +567,7 @@ static CURLcode readwrite_data(struct Curl_easy *data,
infof(data,
"Rewinding stream by : %zd"
" bytes on url %s (zero-length body)\n",
- nread, data->state.path);
+ nread, data->state.up.path);
read_rewind(conn, (size_t)nread);
}
else {
@@ -574,7 +575,7 @@ static CURLcode readwrite_data(struct Curl_easy *data,
"Excess found in a non pipelined read:"
" excess = %zd"
" url = %s (zero-length body)\n",
- nread, data->state.path);
+ nread, data->state.up.path);
}
}
@@ -743,7 +744,7 @@ static CURLcode readwrite_data(struct Curl_easy *data,
" bytes on url %s (size = %" CURL_FORMAT_CURL_OFF_T
", maxdownload = %" CURL_FORMAT_CURL_OFF_T
", bytecount = %" CURL_FORMAT_CURL_OFF_T ", nread = %zd)\n",
- excess, data->state.path,
+ excess, data->state.up.path,
k->size, k->maxdownload, k->bytecount, nread);
read_rewind(conn, excess);
}
@@ -878,7 +879,7 @@ static CURLcode done_sending(struct connectdata *conn,
return CURLE_OK;
}
-#ifdef WIN32
+#if defined(WIN32) && !defined(USE_LWIPSOCK)
#ifndef SIO_IDEAL_SEND_BACKLOG_QUERY
#define SIO_IDEAL_SEND_BACKLOG_QUERY 0x4004747B
#endif
@@ -959,7 +960,8 @@ static CURLcode readwrite_upload(struct Curl_easy *data,
sending_http_headers = FALSE;
}
- result = Curl_fillreadbuffer(conn, UPLOAD_BUFSIZE, &fillcount);
+ result = Curl_fillreadbuffer(conn, data->set.upload_buffer_size,
+ &fillcount);
if(result)
return result;
@@ -991,7 +993,7 @@ static CURLcode readwrite_upload(struct Curl_easy *data,
(data->set.crlf))) {
/* Do we need to allocate a scratch buffer? */
if(!data->state.scratch) {
- data->state.scratch = malloc(2 * UPLOAD_BUFSIZE);
+ data->state.scratch = malloc(2 * data->set.upload_buffer_size);
if(!data->state.scratch) {
failf(data, "Failed to alloc scratch buffer!");
@@ -1453,314 +1455,11 @@ CURLcode Curl_posttransfer(struct Curl_easy *data)
return CURLE_OK;
}
-#ifndef CURL_DISABLE_HTTP
-/*
- * Find the separator at the end of the host name, or the '?' in cases like
- * http://www.url.com?id=2380
- */
-static const char *find_host_sep(const char *url)
-{
- const char *sep;
- const char *query;
-
- /* Find the start of the hostname */
- sep = strstr(url, "//");
- if(!sep)
- sep = url;
- else
- sep += 2;
-
- query = strchr(sep, '?');
- sep = strchr(sep, '/');
-
- if(!sep)
- sep = url + strlen(url);
-
- if(!query)
- query = url + strlen(url);
-
- return sep < query ? sep : query;
-}
-
-/*
- * Decide in an encoding-independent manner whether a character in an
- * URL must be escaped. The same criterion must be used in strlen_url()
- * and strcpy_url().
- */
-static bool urlchar_needs_escaping(int c)
-{
- return !(ISCNTRL(c) || ISSPACE(c) || ISGRAPH(c));
-}
-
-/*
- * strlen_url() returns the length of the given URL if the spaces within the
- * URL were properly URL encoded.
- * URL encoding should be skipped for host names, otherwise IDN resolution
- * will fail.
- */
-static size_t strlen_url(const char *url, bool relative)
-{
- const unsigned char *ptr;
- size_t newlen = 0;
- bool left = TRUE; /* left side of the ? */
- const unsigned char *host_sep = (const unsigned char *) url;
-
- if(!relative)
- host_sep = (const unsigned char *) find_host_sep(url);
-
- for(ptr = (unsigned char *)url; *ptr; ptr++) {
-
- if(ptr < host_sep) {
- ++newlen;
- continue;
- }
-
- switch(*ptr) {
- case '?':
- left = FALSE;
- /* FALLTHROUGH */
- default:
- if(urlchar_needs_escaping(*ptr))
- newlen += 2;
- newlen++;
- break;
- case ' ':
- if(left)
- newlen += 3;
- else
- newlen++;
- break;
- }
- }
- return newlen;
-}
-
-/* strcpy_url() copies a url to a output buffer and URL-encodes the spaces in
- * the source URL accordingly.
- * URL encoding should be skipped for host names, otherwise IDN resolution
- * will fail.
- */
-static void strcpy_url(char *output, const char *url, bool relative)
-{
- /* we must add this with whitespace-replacing */
- bool left = TRUE;
- const unsigned char *iptr;
- char *optr = output;
- const unsigned char *host_sep = (const unsigned char *) url;
-
- if(!relative)
- host_sep = (const unsigned char *) find_host_sep(url);
-
- for(iptr = (unsigned char *)url; /* read from here */
- *iptr; /* until zero byte */
- iptr++) {
-
- if(iptr < host_sep) {
- *optr++ = *iptr;
- continue;
- }
-
- switch(*iptr) {
- case '?':
- left = FALSE;
- /* FALLTHROUGH */
- default:
- if(urlchar_needs_escaping(*iptr)) {
- snprintf(optr, 4, "%%%02x", *iptr);
- optr += 3;
- }
- else
- *optr++=*iptr;
- break;
- case ' ':
- if(left) {
- *optr++='%'; /* add a '%' */
- *optr++='2'; /* add a '2' */
- *optr++='0'; /* add a '0' */
- }
- else
- *optr++='+'; /* add a '+' here */
- break;
- }
- }
- *optr = 0; /* zero terminate output buffer */
-
-}
-
-/*
- * Returns true if the given URL is absolute (as opposed to relative)
- */
-static bool is_absolute_url(const char *url)
-{
- char prot[16]; /* URL protocol string storage */
- char letter; /* used for a silly sscanf */
-
- return (2 == sscanf(url, "%15[^?&/:]://%c", prot, &letter)) ? TRUE : FALSE;
-}
-
-/*
- * Concatenate a relative URL to a base URL making it absolute.
- * URL-encodes any spaces.
- * The returned pointer must be freed by the caller unless NULL
- * (returns NULL on out of memory).
- */
-static char *concat_url(const char *base, const char *relurl)
-{
- /***
- TRY to append this new path to the old URL
- to the right of the host part. Oh crap, this is doomed to cause
- problems in the future...
- */
- char *newest;
- char *protsep;
- char *pathsep;
- size_t newlen;
- bool host_changed = FALSE;
-
- const char *useurl = relurl;
- size_t urllen;
-
- /* we must make our own copy of the URL to play with, as it may
- point to read-only data */
- char *url_clone = strdup(base);
-
- if(!url_clone)
- return NULL; /* skip out of this NOW */
-
- /* protsep points to the start of the host name */
- protsep = strstr(url_clone, "//");
- if(!protsep)
- protsep = url_clone;
- else
- protsep += 2; /* pass the slashes */
-
- if('/' != relurl[0]) {
- int level = 0;
-
- /* First we need to find out if there's a ?-letter in the URL,
- and cut it and the right-side of that off */
- pathsep = strchr(protsep, '?');
- if(pathsep)
- *pathsep = 0;
-
- /* we have a relative path to append to the last slash if there's one
- available, or if the new URL is just a query string (starts with a
- '?') we append the new one at the end of the entire currently worked
- out URL */
- if(useurl[0] != '?') {
- pathsep = strrchr(protsep, '/');
- if(pathsep)
- *pathsep = 0;
- }
-
- /* Check if there's any slash after the host name, and if so, remember
- that position instead */
- pathsep = strchr(protsep, '/');
- if(pathsep)
- protsep = pathsep + 1;
- else
- protsep = NULL;
-
- /* now deal with one "./" or any amount of "../" in the newurl
- and act accordingly */
-
- if((useurl[0] == '.') && (useurl[1] == '/'))
- useurl += 2; /* just skip the "./" */
-
- while((useurl[0] == '.') &&
- (useurl[1] == '.') &&
- (useurl[2] == '/')) {
- level++;
- useurl += 3; /* pass the "../" */
- }
-
- if(protsep) {
- while(level--) {
- /* cut off one more level from the right of the original URL */
- pathsep = strrchr(protsep, '/');
- if(pathsep)
- *pathsep = 0;
- else {
- *protsep = 0;
- break;
- }
- }
- }
- }
- else {
- /* We got a new absolute path for this server */
-
- if((relurl[0] == '/') && (relurl[1] == '/')) {
- /* the new URL starts with //, just keep the protocol part from the
- original one */
- *protsep = 0;
- useurl = &relurl[2]; /* we keep the slashes from the original, so we
- skip the new ones */
- host_changed = TRUE;
- }
- else {
- /* cut off the original URL from the first slash, or deal with URLs
- without slash */
- pathsep = strchr(protsep, '/');
- if(pathsep) {
- /* When people use badly formatted URLs, such as
- "http://www.url.com?dir=/home/daniel" we must not use the first
- slash, if there's a ?-letter before it! */
- char *sep = strchr(protsep, '?');
- if(sep && (sep < pathsep))
- pathsep = sep;
- *pathsep = 0;
- }
- else {
- /* There was no slash. Now, since we might be operating on a badly
- formatted URL, such as "http://www.url.com?id=2380" which doesn't
- use a slash separator as it is supposed to, we need to check for a
- ?-letter as well! */
- pathsep = strchr(protsep, '?');
- if(pathsep)
- *pathsep = 0;
- }
- }
- }
-
- /* If the new part contains a space, this is a mighty stupid redirect
- but we still make an effort to do "right". To the left of a '?'
- letter we replace each space with %20 while it is replaced with '+'
- on the right side of the '?' letter.
- */
- newlen = strlen_url(useurl, !host_changed);
-
- urllen = strlen(url_clone);
-
- newest = malloc(urllen + 1 + /* possible slash */
- newlen + 1 /* zero byte */);
-
- if(!newest) {
- free(url_clone); /* don't leak this */
- return NULL;
- }
-
- /* copy over the root url part */
- memcpy(newest, url_clone, urllen);
-
- /* check if we need to append a slash */
- if(('/' == useurl[0]) || (protsep && !*protsep) || ('?' == useurl[0]))
- ;
- else
- newest[urllen++]='/';
-
- /* then append the new piece on the right side */
- strcpy_url(&newest[urllen], useurl, !host_changed);
-
- free(url_clone);
-
- return newest;
-}
-#endif /* CURL_DISABLE_HTTP */
-
/*
* Curl_follow() handles the URL redirect magic. Pass in the 'newurl' string
* as given by the remote server and set up the new URL to request.
+ *
+ * This function DOES NOT FREE the given url.
*/
CURLcode Curl_follow(struct Curl_easy *data,
char *newurl, /* the Location: string */
@@ -1777,6 +1476,7 @@ CURLcode Curl_follow(struct Curl_easy *data,
/* Location: redirect */
bool disallowport = FALSE;
bool reachedmax = FALSE;
+ CURLUcode uc;
if(type == FOLLOW_REDIR) {
if((data->set.maxredirs != -1) &&
@@ -1809,33 +1509,18 @@ CURLcode Curl_follow(struct Curl_easy *data,
}
}
- if(!is_absolute_url(newurl)) {
- /***
- *DANG* this is an RFC 2068 violation. The URL is supposed
- to be absolute and this doesn't seem to be that!
- */
- char *absolute = concat_url(data->change.url, newurl);
- if(!absolute)
- return CURLE_OUT_OF_MEMORY;
- newurl = absolute;
- }
- else {
- /* The new URL MAY contain space or high byte values, that means a mighty
- stupid redirect URL but we still make an effort to do "right". */
- char *newest;
- size_t newlen = strlen_url(newurl, FALSE);
-
+ if(Curl_is_absolute_url(newurl, NULL, MAX_SCHEME_LEN))
/* This is an absolute URL, don't allow the custom port number */
disallowport = TRUE;
- newest = malloc(newlen + 1); /* get memory for this */
- if(!newest)
- return CURLE_OUT_OF_MEMORY;
-
- strcpy_url(newest, newurl, FALSE); /* create a space-free URL */
- newurl = newest; /* use this instead now */
+ DEBUGASSERT(data->state.uh);
+ uc = curl_url_set(data->state.uh, CURLUPART_URL, newurl, 0);
+ if(uc)
+ return Curl_uc_to_curlcode(uc);
- }
+ uc = curl_url_get(data->state.uh, CURLUPART_URL, &newurl, 0);
+ if(uc)
+ return Curl_uc_to_curlcode(uc);
if(type == FOLLOW_FAKE) {
/* we're only figuring out the new url if we would've followed locations
@@ -1852,10 +1537,8 @@ CURLcode Curl_follow(struct Curl_easy *data,
if(disallowport)
data->state.allow_port = FALSE;
- if(data->change.url_alloc) {
+ if(data->change.url_alloc)
Curl_safefree(data->change.url);
- data->change.url_alloc = FALSE;
- }
data->change.url = newurl;
data->change.url_alloc = TRUE;
@@ -2021,8 +1704,13 @@ CURLcode Curl_retry_request(struct connectdata *conn,
if(conn->handler->protocol&PROTO_FAMILY_HTTP) {
struct HTTP *http = data->req.protop;
- if(http->writebytecount)
- return Curl_readrewind(conn);
+ if(http->writebytecount) {
+ CURLcode result = Curl_readrewind(conn);
+ if(result) {
+ Curl_safefree(*url);
+ return result;
+ }
+ }
}
}
return CURLE_OK;
diff --git a/lib/transfer.h b/lib/transfer.h
index 9263e5b6..9742455a 100644
--- a/lib/transfer.h
+++ b/lib/transfer.h
@@ -71,4 +71,3 @@ Curl_setup_transfer (struct connectdata *data,
);
#endif /* HEADER_CURL_TRANSFER_H */
-
diff --git a/lib/url.c b/lib/url.c
index f1590088..0d5a13f9 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -92,6 +92,7 @@ bool curl_win32_idn_to_ascii(const char *in, char **out);
#include "non-ascii.h"
#include "inet_pton.h"
#include "getinfo.h"
+#include "urlapi-int.h"
/* And now for the protocols */
#include "ftp.h"
@@ -127,10 +128,6 @@ bool curl_win32_idn_to_ascii(const char *in, char **out);
static void conn_free(struct connectdata *conn);
static void free_fixed_hostname(struct hostname *host);
-static CURLcode parse_url_login(struct Curl_easy *data,
- struct connectdata *conn,
- char **userptr, char **passwdptr,
- char **optionsptr);
static unsigned int get_protocol_family(unsigned int protocol);
/* Some parts of the code (e.g. chunked encoding) assume this buffer has at
@@ -294,6 +291,22 @@ void Curl_freeset(struct Curl_easy *data)
Curl_mime_cleanpart(&data->set.mimepost);
}
+/* free the URL pieces */
+void Curl_up_free(struct Curl_easy *data)
+{
+ struct urlpieces *up = &data->state.up;
+ Curl_safefree(up->scheme);
+ Curl_safefree(up->hostname);
+ Curl_safefree(up->port);
+ Curl_safefree(up->user);
+ Curl_safefree(up->password);
+ Curl_safefree(up->options);
+ Curl_safefree(up->path);
+ Curl_safefree(up->query);
+ curl_url_cleanup(data->state.uh);
+ data->state.uh = NULL;
+}
+
/*
* This is the internal function curl_easy_cleanup() calls. This should
* cleanup and free all resources associated with this sessionhandle.
@@ -313,16 +326,17 @@ CURLcode Curl_close(struct Curl_easy *data)
Curl_expire_clear(data); /* shut off timers */
m = data->multi;
-
if(m)
/* This handle is still part of a multi handle, take care of this first
and detach this handle from there. */
curl_multi_remove_handle(data->multi, data);
- if(data->multi_easy)
+ if(data->multi_easy) {
/* when curl_easy_perform() is used, it creates its own multi handle to
use and this is the one */
curl_multi_cleanup(data->multi_easy);
+ data->multi_easy = NULL;
+ }
/* Destroy the timeout list that is held in the easy handle. It is
/normally/ done by curl_multi_remove_handle() but this is "just in
@@ -336,10 +350,6 @@ CURLcode Curl_close(struct Curl_easy *data)
if(data->state.rangestringalloc)
free(data->state.range);
- /* Free the pathbuffer */
- Curl_safefree(data->state.pathbuffer);
- data->state.path = NULL;
-
/* freed here just in case DONE wasn't called */
Curl_free_request_state(data);
@@ -359,12 +369,7 @@ CURLcode Curl_close(struct Curl_easy *data)
}
data->change.referer = NULL;
- if(data->change.url_alloc) {
- Curl_safefree(data->change.url);
- data->change.url_alloc = FALSE;
- }
- data->change.url = NULL;
-
+ Curl_up_free(data);
Curl_safefree(data->state.buffer);
Curl_safefree(data->state.headerbuff);
Curl_safefree(data->state.ulbuf);
@@ -516,25 +521,28 @@ CURLcode Curl_init_userdefined(struct Curl_easy *data)
set->wildcard_enabled = FALSE;
set->chunk_bgn = ZERO_NULL;
set->chunk_end = ZERO_NULL;
-
- /* tcp keepalives are disabled by default, but provide reasonable values for
- * the interval and idle times.
- */
set->tcp_keepalive = FALSE;
set->tcp_keepintvl = 60;
set->tcp_keepidle = 60;
set->tcp_fastopen = FALSE;
set->tcp_nodelay = TRUE;
-
set->ssl_enable_npn = TRUE;
set->ssl_enable_alpn = TRUE;
-
set->expect_100_timeout = 1000L; /* Wait for a second by default. */
set->sep_headers = TRUE; /* separated header lists by default */
set->buffer_size = READBUFFER_SIZE;
- set->upload_buffer_size = UPLOAD_BUFSIZE;
+ set->upload_buffer_size = UPLOADBUFFER_DEFAULT;
set->happy_eyeballs_timeout = CURL_HET_DEFAULT;
-
+ set->fnmatch = ZERO_NULL;
+ set->upkeep_interval_ms = CURL_UPKEEP_INTERVAL_DEFAULT;
+ set->maxconnects = DEFAULT_CONNCACHE_SIZE; /* for easy handles */
+ set->httpversion =
+#ifdef USE_NGHTTP2
+ CURL_HTTP_VERSION_2TLS
+#else
+ CURL_HTTP_VERSION_1_1
+#endif
+ ;
Curl_http2_init_userset(set);
return result;
}
@@ -594,8 +602,6 @@ CURLcode Curl_open(struct Curl_easy **curl)
data->progress.flags |= PGRS_HIDE;
data->state.current_speed = -1; /* init to negative == impossible */
- data->set.fnmatch = ZERO_NULL;
- data->set.maxconnects = DEFAULT_CONNCACHE_SIZE; /* for easy handles */
Curl_http2_init_state(&data->state);
}
@@ -1831,6 +1837,12 @@ static struct connectdata *allocate_conn(struct Curl_easy *data)
/* Store creation time to help future close decision making */
conn->created = Curl_now();
+ /* Store current time to give a baseline to keepalive connection times. */
+ conn->keepalive = Curl_now();
+
+ /* Store off the configured connection upkeep time. */
+ conn->upkeep_interval_ms = data->set.upkeep_interval_ms;
+
conn->data = data; /* Setup the association between this connection
and the Curl_easy */
@@ -1937,30 +1949,37 @@ static struct connectdata *allocate_conn(struct Curl_easy *data)
return NULL;
}
-static CURLcode findprotocol(struct Curl_easy *data,
- struct connectdata *conn,
- const char *protostr)
+/* returns the handler if the given scheme is built-in */
+const struct Curl_handler *Curl_builtin_scheme(const char *scheme)
{
const struct Curl_handler * const *pp;
const struct Curl_handler *p;
-
- /* Scan protocol handler table and match against 'protostr' to set a few
- variables based on the URL. Now that the handler may be changed later
- when the protocol specific setup function is called. */
- for(pp = protocols; (p = *pp) != NULL; pp++) {
- if(strcasecompare(p->scheme, protostr)) {
+ /* Scan protocol handler table and match against 'scheme'. The handler may
+ be changed later when the protocol specific setup function is called. */
+ for(pp = protocols; (p = *pp) != NULL; pp++)
+ if(strcasecompare(p->scheme, scheme))
/* Protocol found in table. Check if allowed */
- if(!(data->set.allowed_protocols & p->protocol))
- /* nope, get out */
- break;
+ return p;
+ return NULL; /* not found */
+}
+
+
+static CURLcode findprotocol(struct Curl_easy *data,
+ struct connectdata *conn,
+ const char *protostr)
+{
+ const struct Curl_handler *p = Curl_builtin_scheme(protostr);
- /* it is allowed for "normal" request, now do an extra check if this is
- the result of a redirect */
- if(data->state.this_is_a_follow &&
- !(data->set.redir_protocols & p->protocol))
- /* nope, get out */
- break;
+ if(p && /* Protocol found in table. Check if allowed */
+ (data->set.allowed_protocols & p->protocol)) {
+ /* it is allowed for "normal" request, now do an extra check if this is
+ the result of a redirect */
+ if(data->state.this_is_a_follow &&
+ !(data->set.redir_protocols & p->protocol))
+ /* nope, get out */
+ ;
+ else {
/* Perform setup complement if some. */
conn->handler = conn->given = p;
@@ -1969,7 +1988,6 @@ static CURLcode findprotocol(struct Curl_easy *data,
}
}
-
/* The protocol was not found in the table, but we don't have to assign it
to anything since it is already assigned to a dummy-struct in the
create_conn() function when the connectdata struct is allocated. */
@@ -1979,379 +1997,134 @@ static CURLcode findprotocol(struct Curl_easy *data,
return CURLE_UNSUPPORTED_PROTOCOL;
}
+
+CURLcode Curl_uc_to_curlcode(CURLUcode uc)
+{
+ switch(uc) {
+ default:
+ return CURLE_URL_MALFORMAT;
+ case CURLUE_UNSUPPORTED_SCHEME:
+ return CURLE_UNSUPPORTED_PROTOCOL;
+ case CURLUE_OUT_OF_MEMORY:
+ return CURLE_OUT_OF_MEMORY;
+ case CURLUE_USER_NOT_ALLOWED:
+ return CURLE_LOGIN_DENIED;
+ }
+}
+
/*
* Parse URL and fill in the relevant members of the connection struct.
*/
static CURLcode parseurlandfillconn(struct Curl_easy *data,
- struct connectdata *conn,
- bool *prot_missing,
- char **userp, char **passwdp,
- char **optionsp)
+ struct connectdata *conn)
{
- char *at;
- char *fragment;
- char *path = data->state.path;
- char *query;
- int rc;
- const char *protop = "";
CURLcode result;
- bool rebuild_url = FALSE;
- bool url_has_scheme = FALSE;
- char protobuf[16];
-
- *prot_missing = FALSE;
+ CURLU *uh;
+ CURLUcode uc;
+ char *hostname;
- /* We might pass the entire URL into the request so we need to make sure
- * there are no bad characters in there.*/
- if(strpbrk(data->change.url, "\r\n")) {
- failf(data, "Illegal characters found in URL");
- return CURLE_URL_MALFORMAT;
- }
+ Curl_up_free(data); /* cleanup previous leftovers first */
- /*************************************************************
- * Parse the URL.
- *
- * We need to parse the url even when using the proxy, because we will need
- * the hostname and port in case we are trying to SSL connect through the
- * proxy -- and we don't know if we will need to use SSL until we parse the
- * url ...
- ************************************************************/
- if(data->change.url[0] == ':') {
- failf(data, "Bad URL, colon is first character");
- return CURLE_URL_MALFORMAT;
- }
+ /* parse the URL */
+ uh = data->state.uh = curl_url();
+ if(!uh)
+ return CURLE_OUT_OF_MEMORY;
- /* MSDOS/Windows style drive prefix, eg c: in c:foo */
-#define STARTS_WITH_DRIVE_PREFIX(str) \
- ((('a' <= str[0] && str[0] <= 'z') || \
- ('A' <= str[0] && str[0] <= 'Z')) && \
- (str[1] == ':'))
-
- /* MSDOS/Windows style drive prefix, optionally with
- * a '|' instead of ':', followed by a slash or NUL */
-#define STARTS_WITH_URL_DRIVE_PREFIX(str) \
- ((('a' <= (str)[0] && (str)[0] <= 'z') || \
- ('A' <= (str)[0] && (str)[0] <= 'Z')) && \
- ((str)[1] == ':' || (str)[1] == '|') && \
- ((str)[2] == '/' || (str)[2] == '\\' || (str)[2] == 0))
-
- /* Don't mistake a drive letter for a scheme if the default protocol is file.
- curld --proto-default file c:/foo/bar.txt */
- if(STARTS_WITH_DRIVE_PREFIX(data->change.url) &&
- data->set.str[STRING_DEFAULT_PROTOCOL] &&
- strcasecompare(data->set.str[STRING_DEFAULT_PROTOCOL], "file")) {
- ; /* do nothing */
- }
- else { /* check for a scheme */
- int i;
- for(i = 0; i < 16 && data->change.url[i]; ++i) {
- if(data->change.url[i] == '/')
- break;
- if(data->change.url[i] == ':') {
- url_has_scheme = TRUE;
- break;
- }
- }
+ if(data->set.str[STRING_DEFAULT_PROTOCOL] &&
+ !Curl_is_absolute_url(data->change.url, NULL, MAX_SCHEME_LEN)) {
+ char *url;
+ if(data->change.url_alloc)
+ free(data->change.url);
+ url = aprintf("%s://%s", data->set.str[STRING_DEFAULT_PROTOCOL],
+ data->change.url);
+ if(!url)
+ return CURLE_OUT_OF_MEMORY;
+ data->change.url = url;
+ data->change.url_alloc = TRUE;
}
- /* handle the file: scheme */
- if((url_has_scheme && strncasecompare(data->change.url, "file:", 5)) ||
- (!url_has_scheme && data->set.str[STRING_DEFAULT_PROTOCOL] &&
- strcasecompare(data->set.str[STRING_DEFAULT_PROTOCOL], "file"))) {
- if(url_has_scheme)
- rc = sscanf(data->change.url, "%*15[^\n/:]:%[^\n]", path);
- else
- rc = sscanf(data->change.url, "%[^\n]", path);
-
- if(rc != 1) {
- failf(data, "Bad URL");
- return CURLE_URL_MALFORMAT;
- }
+ uc = curl_url_set(uh, CURLUPART_URL, data->change.url,
+ CURLU_GUESS_SCHEME |
+ CURLU_NON_SUPPORT_SCHEME |
+ (data->set.disallow_username_in_url ?
+ CURLU_DISALLOW_USER : 0) |
+ (data->set.path_as_is ? CURLU_PATH_AS_IS : 0));
+ if(uc)
+ return Curl_uc_to_curlcode(uc);
- /* Extra handling URLs with an authority component (i.e. that start with
- * "file://")
- *
- * We allow omitted hostname (e.g. file:/<path>) -- valid according to
- * RFC 8089, but not the (current) WHAT-WG URL spec.
- */
- if(url_has_scheme && path[0] == '/' && path[1] == '/') {
- /* swallow the two slashes */
- char *ptr = &path[2];
+ uc = curl_url_get(uh, CURLUPART_SCHEME, &data->state.up.scheme, 0);
+ if(uc)
+ return Curl_uc_to_curlcode(uc);
- /*
- * According to RFC 8089, a file: URL can be reliably dereferenced if:
- *
- * o it has no/blank hostname, or
- *
- * o the hostname matches "localhost" (case-insensitively), or
- *
- * o the hostname is a FQDN that resolves to this machine.
- *
- * For brevity, we only consider URLs with empty, "localhost", or
- * "127.0.0.1" hostnames as local.
- *
- * Additionally, there is an exception for URLs with a Windows drive
- * letter in the authority (which was accidentally omitted from RFC 8089
- * Appendix E, but believe me, it was meant to be there. --MK)
- */
- if(ptr[0] != '/' && !STARTS_WITH_URL_DRIVE_PREFIX(ptr)) {
- /* the URL includes a host name, it must match "localhost" or
- "127.0.0.1" to be valid */
- if(!checkprefix("localhost/", ptr) &&
- !checkprefix("127.0.0.1/", ptr)) {
- failf(data, "Invalid file://hostname/, "
- "expected localhost or 127.0.0.1 or none");
- return CURLE_URL_MALFORMAT;
- }
- ptr += 9; /* now points to the slash after the host */
- }
-
- /* This cannot be done with strcpy, as the memory chunks overlap! */
- memmove(path, ptr, strlen(ptr) + 1);
- }
-
-#if !defined(MSDOS) && !defined(WIN32) && !defined(__CYGWIN__)
- /* Don't allow Windows drive letters when not in Windows.
- * This catches both "file:/c:" and "file:c:" */
- if(('/' == path[0] && STARTS_WITH_URL_DRIVE_PREFIX(&path[1])) ||
- STARTS_WITH_URL_DRIVE_PREFIX(path)) {
- failf(data, "File drive letters are only accepted in MSDOS/Windows.");
- return CURLE_URL_MALFORMAT;
- }
-#else
- /* If the path starts with a slash and a drive letter, ditch the slash */
- if('/' == path[0] && STARTS_WITH_URL_DRIVE_PREFIX(&path[1])) {
- /* This cannot be done with strcpy, as the memory chunks overlap! */
- memmove(path, &path[1], strlen(&path[1]) + 1);
- }
-#endif
+ result = findprotocol(data, conn, data->state.up.scheme);
+ if(result)
+ return result;
- protop = "file"; /* protocol string */
- *prot_missing = !url_has_scheme;
+ uc = curl_url_get(uh, CURLUPART_USER, &data->state.up.user,
+ CURLU_URLDECODE);
+ if(!uc) {
+ conn->user = strdup(data->state.up.user);
+ if(!conn->user)
+ return CURLE_OUT_OF_MEMORY;
+ conn->bits.user_passwd = TRUE;
}
- else {
- /* clear path */
- char slashbuf[4];
- path[0] = 0;
-
- rc = sscanf(data->change.url,
- "%15[^\n/:]:%3[/]%[^\n/?#]%[^\n]",
- protobuf, slashbuf, conn->host.name, path);
- if(2 == rc) {
- failf(data, "Bad URL");
- return CURLE_URL_MALFORMAT;
- }
- if(3 > rc) {
-
- /*
- * The URL was badly formatted, let's try the browser-style _without_
- * protocol specified like 'http://'.
- */
- rc = sscanf(data->change.url, "%[^\n/?#]%[^\n]", conn->host.name, path);
- if(1 > rc) {
- /*
- * We couldn't even get this format.
- * djgpp 2.04 has a sscanf() bug where 'conn->host.name' is
- * assigned, but the return value is EOF!
- */
-#if defined(__DJGPP__) && (DJGPP_MINOR == 4)
- if(!(rc == -1 && *conn->host.name))
-#endif
- {
- failf(data, "<url> malformed");
- return CURLE_URL_MALFORMAT;
- }
- }
-
- /*
- * Since there was no protocol part specified in the URL use the
- * user-specified default protocol. If we weren't given a default make a
- * guess by matching some protocols against the host's outermost
- * sub-domain name. Finally if there was no match use HTTP.
- */
+ else if(uc != CURLUE_NO_USER)
+ return Curl_uc_to_curlcode(uc);
- protop = data->set.str[STRING_DEFAULT_PROTOCOL];
- if(!protop) {
- /* Note: if you add a new protocol, please update the list in
- * lib/version.c too! */
- if(checkprefix("FTP.", conn->host.name))
- protop = "ftp";
- else if(checkprefix("DICT.", conn->host.name))
- protop = "DICT";
- else if(checkprefix("LDAP.", conn->host.name))
- protop = "LDAP";
- else if(checkprefix("IMAP.", conn->host.name))
- protop = "IMAP";
- else if(checkprefix("SMTP.", conn->host.name))
- protop = "smtp";
- else if(checkprefix("POP3.", conn->host.name))
- protop = "pop3";
- else
- protop = "http";
- }
-
- *prot_missing = TRUE; /* not given in URL */
- }
- else {
- size_t s = strlen(slashbuf);
- protop = protobuf;
- if(s != 2) {
- infof(data, "Unwillingly accepted illegal URL using %zu slash%s!\n",
- s, s>1?"es":"");
-
- if(data->change.url_alloc)
- free(data->change.url);
- /* repair the URL to use two slashes */
- data->change.url = aprintf("%s://%s%s",
- protobuf, conn->host.name, path);
- if(!data->change.url)
- return CURLE_OUT_OF_MEMORY;
- data->change.url_alloc = TRUE;
- }
- }
+ uc = curl_url_get(uh, CURLUPART_PASSWORD, &data->state.up.password,
+ CURLU_URLDECODE);
+ if(!uc) {
+ conn->passwd = strdup(data->state.up.password);
+ if(!conn->passwd)
+ return CURLE_OUT_OF_MEMORY;
+ conn->bits.user_passwd = TRUE;
}
+ else if(uc != CURLUE_NO_PASSWORD)
+ return Curl_uc_to_curlcode(uc);
- /* We search for '?' in the host name (but only on the right side of a
- * @-letter to allow ?-letters in username and password) to handle things
- * like http://example.com?param= (notice the missing '/').
- */
- at = strchr(conn->host.name, '@');
- if(at)
- query = strchr(at + 1, '?');
- else
- query = strchr(conn->host.name, '?');
-
- if(query) {
- /* We must insert a slash before the '?'-letter in the URL. If the URL had
- a slash after the '?', that is where the path currently begins and the
- '?string' is still part of the host name.
-
- We must move the trailing part from the host name and put it first in
- the path. And have it all prefixed with a slash.
- */
-
- size_t hostlen = strlen(query);
- size_t pathlen = strlen(path);
-
- /* move the existing path plus the zero byte forward, to make room for
- the host-name part */
- memmove(path + hostlen + 1, path, pathlen + 1);
-
- /* now copy the trailing host part in front of the existing path */
- memcpy(path + 1, query, hostlen);
-
- path[0]='/'; /* prepend the missing slash */
- rebuild_url = TRUE;
-
- *query = 0; /* now cut off the hostname at the ? */
- }
- else if(!path[0]) {
- /* if there's no path set, use a single slash */
- strcpy(path, "/");
- rebuild_url = TRUE;
+ uc = curl_url_get(uh, CURLUPART_OPTIONS, &data->state.up.options,
+ CURLU_URLDECODE);
+ if(!uc) {
+ conn->options = strdup(data->state.up.options);
+ if(!conn->options)
+ return CURLE_OUT_OF_MEMORY;
}
+ else if(uc != CURLUE_NO_OPTIONS)
+ return Curl_uc_to_curlcode(uc);
- /* If the URL is malformatted (missing a '/' after hostname before path) we
- * insert a slash here. The only letters except '/' that can start a path is
- * '?' and '#' - as controlled by the two sscanf() patterns above.
- */
- if(path[0] != '/') {
- /* We need this function to deal with overlapping memory areas. We know
- that the memory area 'path' points to is 'urllen' bytes big and that
- is bigger than the path. Use +1 to move the zero byte too. */
- memmove(&path[1], path, strlen(path) + 1);
- path[0] = '/';
- rebuild_url = TRUE;
- }
- else if(!data->set.path_as_is) {
- /* sanitise paths and remove ../ and ./ sequences according to RFC3986 */
- char *newp = Curl_dedotdotify(path);
- if(!newp)
+ uc = curl_url_get(uh, CURLUPART_HOST, &data->state.up.hostname, 0);
+ if(uc) {
+ if(!strcasecompare("file", data->state.up.scheme))
return CURLE_OUT_OF_MEMORY;
-
- if(strcmp(newp, path)) {
- rebuild_url = TRUE;
- free(data->state.pathbuffer);
- data->state.pathbuffer = newp;
- data->state.path = newp;
- path = newp;
- }
- else
- free(newp);
}
- /*
- * "rebuild_url" means that one or more URL components have been modified so
- * we need to generate an updated full version. We need the corrected URL
- * when communicating over HTTP proxy and we don't know at this point if
- * we're using a proxy or not.
- */
- if(rebuild_url) {
- char *reurl;
-
- size_t plen = strlen(path); /* new path, should be 1 byte longer than
- the original */
- size_t prefixlen = strlen(conn->host.name);
-
- if(!*prot_missing) {
- size_t protolen = strlen(protop);
-
- if(curl_strnequal(protop, data->change.url, protolen))
- prefixlen += protolen;
- else {
- failf(data, "<url> malformed");
- return CURLE_URL_MALFORMAT;
- }
-
- if(curl_strnequal("://", &data->change.url[protolen], 3))
- prefixlen += 3;
- /* only file: is allowed to omit one or both slashes */
- else if(curl_strnequal("file:", data->change.url, 5))
- prefixlen += 1 + (data->change.url[5] == '/');
- else {
- failf(data, "<url> malformed");
- return CURLE_URL_MALFORMAT;
- }
- }
+ uc = curl_url_get(uh, CURLUPART_PATH, &data->state.up.path, 0);
+ if(uc)
+ return Curl_uc_to_curlcode(uc);
- reurl = malloc(prefixlen + plen + 1);
- if(!reurl)
+ uc = curl_url_get(uh, CURLUPART_PORT, &data->state.up.port,
+ CURLU_DEFAULT_PORT);
+ if(uc) {
+ if(!strcasecompare("file", data->state.up.scheme))
return CURLE_OUT_OF_MEMORY;
-
- /* copy the prefix */
- memcpy(reurl, data->change.url, prefixlen);
-
- /* append the trailing piece + zerobyte */
- memcpy(&reurl[prefixlen], path, plen + 1);
-
- /* possible free the old one */
- if(data->change.url_alloc) {
- Curl_safefree(data->change.url);
- data->change.url_alloc = FALSE;
- }
-
- infof(data, "Rebuilt URL to: %s\n", reurl);
-
- data->change.url = reurl;
- data->change.url_alloc = TRUE; /* free this later */
+ }
+ else {
+ unsigned long port = strtoul(data->state.up.port, NULL, 10);
+ conn->remote_port = curlx_ultous(port);
}
- result = findprotocol(data, conn, protop);
- if(result)
- return result;
+ (void)curl_url_get(uh, CURLUPART_QUERY, &data->state.up.query, 0);
- /*
- * Parse the login details from the URL and strip them out of
- * the host name
- */
- result = parse_url_login(data, conn, userp, passwdp, optionsp);
- if(result)
- return result;
+ hostname = data->state.up.hostname;
+ if(!hostname)
+ /* this is for file:// transfers, get a dummy made */
+ hostname = (char *)"";
- if(conn->host.name[0] == '[') {
+ if(hostname[0] == '[') {
/* This looks like an IPv6 address literal. See if there is an address
- scope if there is no location header */
- char *percent = strchr(conn->host.name, '%');
+ scope. */
+ char *percent = strchr(++hostname, '%');
+ conn->bits.ipv6_ip = TRUE;
if(percent) {
unsigned int identifier_offset = 3;
char *endp;
@@ -2399,33 +2172,22 @@ static CURLcode parseurlandfillconn(struct Curl_easy *data,
infof(data, "Invalid IPv6 address format\n");
}
}
+ percent = strchr(hostname, ']');
+ if(percent)
+ /* terminate IPv6 numerical at end bracket */
+ *percent = 0;
}
+ /* make sure the connect struct gets its own copy of the host name */
+ conn->host.rawalloc = strdup(hostname);
+ if(!conn->host.rawalloc)
+ return CURLE_OUT_OF_MEMORY;
+ conn->host.name = conn->host.rawalloc;
+
if(data->set.scope_id)
/* Override any scope that was set above. */
conn->scope_id = data->set.scope_id;
- /* Remove the fragment part of the path. Per RFC 2396, this is always the
- last part of the URI. We are looking for the first '#' so that we deal
- gracefully with non conformant URI such as http://example.com#foo#bar. */
- fragment = strchr(path, '#');
- if(fragment) {
- *fragment = 0;
-
- /* we know the path part ended with a fragment, so we know the full URL
- string does too and we need to cut it off from there so it isn't used
- over proxy */
- fragment = strchr(data->change.url, '#');
- if(fragment)
- *fragment = 0;
- }
-
- /*
- * So if the URL was A://B/C#D,
- * protop is A
- * conn->host.name is B
- * data->state.path is /C
- */
return CURLE_OK;
}
@@ -2540,11 +2302,8 @@ static bool check_noproxy(const char *name, const char *no_proxy)
if(!endptr)
return FALSE;
name++;
- }
- else
- endptr = strchr(name, ':');
- if(endptr)
namelen = endptr - name;
+ }
else
namelen = strlen(name);
@@ -3077,131 +2836,6 @@ out:
#endif /* CURL_DISABLE_PROXY */
/*
- * parse_url_login()
- *
- * Parse the login details (user name, password and options) from the URL and
- * strip them out of the host name
- *
- * Inputs: data->set.use_netrc (CURLOPT_NETRC)
- * conn->host.name
- *
- * Outputs: (almost :- all currently undefined)
- * conn->bits.user_passwd - non-zero if non-default passwords exist
- * user - non-zero length if defined
- * passwd - non-zero length if defined
- * options - non-zero length if defined
- * conn->host.name - remove user name and password
- */
-static CURLcode parse_url_login(struct Curl_easy *data,
- struct connectdata *conn,
- char **user, char **passwd, char **options)
-{
- CURLcode result = CURLE_OK;
- char *userp = NULL;
- char *passwdp = NULL;
- char *optionsp = NULL;
-
- /* At this point, we're hoping all the other special cases have
- * been taken care of, so conn->host.name is at most
- * [user[:password][;options]]@]hostname
- *
- * We need somewhere to put the embedded details, so do that first.
- */
-
- char *ptr = strchr(conn->host.name, '@');
- char *login = conn->host.name;
-
- DEBUGASSERT(!**user);
- DEBUGASSERT(!**passwd);
- DEBUGASSERT(!**options);
- DEBUGASSERT(conn->handler);
-
- if(!ptr)
- goto out;
-
- /* We will now try to extract the
- * possible login information in a string like:
- * ftp://user:password@ftp.my.site:8021/README */
- conn->host.name = ++ptr;
-
- /* So the hostname is sane. Only bother interpreting the
- * results if we could care. It could still be wasted
- * work because it might be overtaken by the programmatically
- * set user/passwd, but doing that first adds more cases here :-(
- */
-
- if(data->set.use_netrc == CURL_NETRC_REQUIRED)
- goto out;
-
- /* We could use the login information in the URL so extract it. Only parse
- options if the handler says we should. */
- result =
- Curl_parse_login_details(login, ptr - login - 1,
- &userp, &passwdp,
- (conn->handler->flags & PROTOPT_URLOPTIONS)?
- &optionsp:NULL);
- if(result)
- goto out;
-
- if(userp) {
- char *newname;
-
- if(data->set.disallow_username_in_url) {
- failf(data, "Option DISALLOW_USERNAME_IN_URL is set "
- "and url contains username.");
- result = CURLE_LOGIN_DENIED;
- goto out;
- }
-
- /* We have a user in the URL */
- conn->bits.userpwd_in_url = TRUE;
- conn->bits.user_passwd = TRUE; /* enable user+password */
-
- /* Decode the user */
- result = Curl_urldecode(data, userp, 0, &newname, NULL, FALSE);
- if(result) {
- goto out;
- }
-
- free(*user);
- *user = newname;
- }
-
- if(passwdp) {
- /* We have a password in the URL so decode it */
- char *newpasswd;
- result = Curl_urldecode(data, passwdp, 0, &newpasswd, NULL, FALSE);
- if(result) {
- goto out;
- }
-
- free(*passwd);
- *passwd = newpasswd;
- }
-
- if(optionsp) {
- /* We have an options list in the URL so decode it */
- char *newoptions;
- result = Curl_urldecode(data, optionsp, 0, &newoptions, NULL, FALSE);
- if(result) {
- goto out;
- }
-
- free(*options);
- *options = newoptions;
- }
-
-
- out:
-
- free(userp);
- free(passwdp);
- free(optionsp);
-
- return result;
-}
-
-/*
* Curl_parse_login_details()
*
* This is used to parse a login string for user name, password and options in
@@ -3223,7 +2857,7 @@ static CURLcode parse_url_login(struct Curl_easy *data,
* len [in] - The length of the login string.
* userp [in/out] - The address where a pointer to newly allocated memory
* holding the user will be stored upon completion.
- * passdwp [in/out] - The address where a pointer to newly allocated memory
+ * passwdp [in/out] - The address where a pointer to newly allocated memory
* holding the password will be stored upon completion.
* optionsp [in/out] - The address where a pointer to newly allocated memory
* holding the options will be stored upon completion.
@@ -3334,131 +2968,23 @@ CURLcode Curl_parse_login_details(const char *login, const size_t len,
* No matter if we use a proxy or not, we have to figure out the remote
* port number of various reasons.
*
- * To be able to detect port number flawlessly, we must not confuse them
- * IPv6-specified addresses in the [0::1] style. (RFC2732)
- *
- * The conn->host.name is currently [user:passwd@]host[:port] where host
- * could be a hostname, IPv4 address or IPv6 address.
- *
* The port number embedded in the URL is replaced, if necessary.
*************************************************************/
static CURLcode parse_remote_port(struct Curl_easy *data,
struct connectdata *conn)
{
- char *portptr;
- char endbracket;
-
- /* Note that at this point, the IPv6 address cannot contain any scope
- suffix as that has already been removed in the parseurlandfillconn()
- function */
- if((1 == sscanf(conn->host.name, "[%*45[0123456789abcdefABCDEF:.]%c",
- &endbracket)) &&
- (']' == endbracket)) {
- /* this is a RFC2732-style specified IP-address */
- conn->bits.ipv6_ip = TRUE;
-
- conn->host.name++; /* skip over the starting bracket */
- portptr = strchr(conn->host.name, ']');
- if(portptr) {
- *portptr++ = '\0'; /* zero terminate, killing the bracket */
- if(*portptr) {
- if (*portptr != ':') {
- failf(data, "IPv6 closing bracket followed by '%c'", *portptr);
- return CURLE_URL_MALFORMAT;
- }
- }
- else
- portptr = NULL; /* no port number available */
- }
- }
- else {
-#ifdef ENABLE_IPV6
- struct in6_addr in6;
- if(Curl_inet_pton(AF_INET6, conn->host.name, &in6) > 0) {
- /* This is a numerical IPv6 address, meaning this is a wrongly formatted
- URL */
- failf(data, "IPv6 numerical address used in URL without brackets");
- return CURLE_URL_MALFORMAT;
- }
-#endif
-
- portptr = strchr(conn->host.name, ':');
- }
if(data->set.use_port && data->state.allow_port) {
- /* if set, we use this and ignore the port possibly given in the URL */
+ /* if set, we use this instead of the port possibly given in the URL */
+ char portbuf[16];
+ CURLUcode uc;
conn->remote_port = (unsigned short)data->set.use_port;
- if(portptr)
- *portptr = '\0'; /* cut off the name there anyway - if there was a port
- number - since the port number is to be ignored! */
- if(conn->bits.httpproxy) {
- /* we need to create new URL with the new port number */
- char *url;
- char type[12]="";
-
- if(conn->bits.type_set)
- snprintf(type, sizeof(type), ";type=%c",
- data->set.prefer_ascii?'A':
- (data->set.ftp_list_only?'D':'I'));
-
- /*
- * This synthesized URL isn't always right--suffixes like ;type=A are
- * stripped off. It would be better to work directly from the original
- * URL and simply replace the port part of it.
- */
- url = aprintf("%s://%s%s%s:%d%s%s%s", conn->given->scheme,
- conn->bits.ipv6_ip?"[":"", conn->host.name,
- conn->bits.ipv6_ip?"]":"", conn->remote_port,
- data->state.slash_removed?"/":"", data->state.path,
- type);
- if(!url)
- return CURLE_OUT_OF_MEMORY;
-
- if(data->change.url_alloc) {
- Curl_safefree(data->change.url);
- data->change.url_alloc = FALSE;
- }
-
- data->change.url = url;
- data->change.url_alloc = TRUE;
- }
- }
- else if(portptr) {
- /* no CURLOPT_PORT given, extract the one from the URL */
-
- char *rest;
- long port;
-
- port = strtol(portptr + 1, &rest, 10); /* Port number must be decimal */
-
- if((port < 0) || (port > 0xffff)) {
- /* Single unix standard says port numbers are 16 bits long */
- failf(data, "Port number out of range");
- return CURLE_URL_MALFORMAT;
- }
-
- if(rest[0]) {
- failf(data, "Port number ended with '%c'", rest[0]);
- return CURLE_URL_MALFORMAT;
- }
-
- if(rest != &portptr[1]) {
- *portptr = '\0'; /* cut off the name there */
- conn->remote_port = curlx_ultous(port);
- }
- else {
- /* Browser behavior adaptation. If there's a colon with no digits after,
- just cut off the name there which makes us ignore the colon and just
- use the default port. Firefox and Chrome both do that. */
- *portptr = '\0';
- }
+ snprintf(portbuf, sizeof(portbuf), "%u", conn->remote_port);
+ uc = curl_url_set(data->state.uh, CURLUPART_PORT, portbuf, 0);
+ if(uc)
+ return CURLE_OUT_OF_MEMORY;
}
- /* only if remote_port was not already parsed off the URL we use the
- default port number */
- if(conn->remote_port < 0)
- conn->remote_port = (unsigned short)conn->given->defport;
-
return CURLE_OK;
}
@@ -3470,11 +2996,16 @@ static CURLcode override_login(struct Curl_easy *data,
struct connectdata *conn,
char **userp, char **passwdp, char **optionsp)
{
+ bool user_changed = FALSE;
+ bool passwd_changed = FALSE;
+ CURLUcode uc;
if(data->set.str[STRING_USERNAME]) {
free(*userp);
*userp = strdup(data->set.str[STRING_USERNAME]);
if(!*userp)
return CURLE_OUT_OF_MEMORY;
+ conn->bits.user_passwd = TRUE; /* enable user+password */
+ user_changed = TRUE;
}
if(data->set.str[STRING_PASSWORD]) {
@@ -3482,6 +3013,8 @@ static CURLcode override_login(struct Curl_easy *data,
*passwdp = strdup(data->set.str[STRING_PASSWORD]);
if(!*passwdp)
return CURLE_OUT_OF_MEMORY;
+ conn->bits.user_passwd = TRUE; /* enable user+password */
+ passwd_changed = TRUE;
}
if(data->set.str[STRING_OPTIONS]) {
@@ -3493,9 +3026,16 @@ static CURLcode override_login(struct Curl_easy *data,
conn->bits.netrc = FALSE;
if(data->set.use_netrc != CURL_NETRC_IGNORED) {
- int ret = Curl_parsenetrc(conn->host.name,
- userp, passwdp,
- data->set.str[STRING_NETRC_FILE]);
+ char *nuser = NULL;
+ char *npasswd = NULL;
+ int ret;
+
+ if(data->set.use_netrc == CURL_NETRC_OPTIONAL)
+ nuser = *userp; /* to separate otherwise identical machines */
+
+ ret = Curl_parsenetrc(conn->host.name,
+ &nuser, &npasswd,
+ data->set.str[STRING_NETRC_FILE]);
if(ret > 0) {
infof(data, "Couldn't find host %s in the "
DOT_CHAR "netrc file; using defaults\n",
@@ -3509,55 +3049,85 @@ static CURLcode override_login(struct Curl_easy *data,
file, so that it is safe to use even if we followed a Location: to a
different host or similar. */
conn->bits.netrc = TRUE;
-
conn->bits.user_passwd = TRUE; /* enable user+password */
+
+ if(data->set.use_netrc == CURL_NETRC_OPTIONAL) {
+ /* prefer credentials outside netrc */
+ if(nuser && !*userp) {
+ free(*userp);
+ *userp = nuser;
+ user_changed = TRUE;
+ }
+ if(npasswd && !*passwdp) {
+ free(*passwdp);
+ *passwdp = npasswd;
+ passwd_changed = TRUE;
+ }
+ }
+ else {
+ /* prefer netrc credentials */
+ if(nuser) {
+ free(*userp);
+ *userp = nuser;
+ user_changed = TRUE;
+ }
+ if(npasswd) {
+ free(*passwdp);
+ *passwdp = npasswd;
+ passwd_changed = TRUE;
+ }
+ }
}
}
+ /* for updated strings, we update them in the URL */
+ if(user_changed) {
+ uc = curl_url_set(data->state.uh, CURLUPART_USER, *userp, 0);
+ if(uc)
+ return Curl_uc_to_curlcode(uc);
+ }
+ if(passwd_changed) {
+ uc = curl_url_set(data->state.uh, CURLUPART_PASSWORD, *passwdp, 0);
+ if(uc)
+ return Curl_uc_to_curlcode(uc);
+ }
return CURLE_OK;
}
/*
* Set the login details so they're available in the connection
*/
-static CURLcode set_login(struct connectdata *conn,
- const char *user, const char *passwd,
- const char *options)
+static CURLcode set_login(struct connectdata *conn)
{
CURLcode result = CURLE_OK;
+ const char *setuser = CURL_DEFAULT_USER;
+ const char *setpasswd = CURL_DEFAULT_PASSWORD;
/* If our protocol needs a password and we have none, use the defaults */
- if((conn->handler->flags & PROTOPT_NEEDSPWD) && !conn->bits.user_passwd) {
- /* Store the default user */
- conn->user = strdup(CURL_DEFAULT_USER);
-
- /* Store the default password */
- if(conn->user)
- conn->passwd = strdup(CURL_DEFAULT_PASSWORD);
- else
- conn->passwd = NULL;
-
- /* This is the default password, so DON'T set conn->bits.user_passwd */
- }
+ if((conn->handler->flags & PROTOPT_NEEDSPWD) && !conn->bits.user_passwd)
+ ;
else {
- /* Store the user, zero-length if not set */
- conn->user = strdup(user);
-
- /* Store the password (only if user is present), zero-length if not set */
- if(conn->user)
- conn->passwd = strdup(passwd);
- else
- conn->passwd = NULL;
+ setuser = "";
+ setpasswd = "";
+ }
+ /* Store the default user */
+ if(!conn->user) {
+ conn->user = strdup(setuser);
+ if(!conn->user)
+ return CURLE_OUT_OF_MEMORY;
}
- if(!conn->user || !conn->passwd)
- result = CURLE_OUT_OF_MEMORY;
-
- /* Store the options, null if not set */
- if(!result && options[0]) {
- conn->options = strdup(options);
+ /* Store the default password */
+ if(!conn->passwd) {
+ conn->passwd = strdup(setpasswd);
+ if(!conn->passwd)
+ result = CURLE_OUT_OF_MEMORY;
+ }
- if(!conn->options)
+ /* if there's a user without password, consider password blank */
+ if(conn->user && !conn->passwd) {
+ conn->passwd = strdup("");
+ if(!conn->passwd)
result = CURLE_OUT_OF_MEMORY;
}
@@ -4009,12 +3579,7 @@ static CURLcode create_conn(struct Curl_easy *data,
CURLcode result = CURLE_OK;
struct connectdata *conn;
struct connectdata *conn_temp = NULL;
- size_t urllen;
- char *user = NULL;
- char *passwd = NULL;
- char *options = NULL;
bool reuse;
- bool prot_missing = FALSE;
bool connections_available = TRUE;
bool force_reuse = FALSE;
bool waitpipe = FALSE;
@@ -4026,7 +3591,6 @@ static CURLcode create_conn(struct Curl_easy *data,
/*************************************************************
* Check input data
*************************************************************/
-
if(!data->change.url) {
result = CURLE_URL_MALFORMAT;
goto out;
@@ -4048,107 +3612,10 @@ static CURLcode create_conn(struct Curl_easy *data,
any failure */
*in_connect = conn;
- /* This initing continues below, see the comment "Continue connectdata
- * initialization here" */
-
- /***********************************************************
- * We need to allocate memory to store the path in. We get the size of the
- * full URL to be sure, and we need to make it at least 256 bytes since
- * other parts of the code will rely on this fact
- ***********************************************************/
-#define LEAST_PATH_ALLOC 256
- urllen = strlen(data->change.url);
- if(urllen < LEAST_PATH_ALLOC)
- urllen = LEAST_PATH_ALLOC;
-
- /*
- * We malloc() the buffers below urllen+2 to make room for 2 possibilities:
- * 1 - an extra terminating zero
- * 2 - an extra slash (in case a syntax like "www.host.com?moo" is used)
- */
-
- Curl_safefree(data->state.pathbuffer);
- data->state.path = NULL;
-
- data->state.pathbuffer = malloc(urllen + 2);
- if(NULL == data->state.pathbuffer) {
- result = CURLE_OUT_OF_MEMORY; /* really bad error */
- goto out;
- }
- data->state.path = data->state.pathbuffer;
-
- conn->host.rawalloc = malloc(urllen + 2);
- if(NULL == conn->host.rawalloc) {
- Curl_safefree(data->state.pathbuffer);
- data->state.path = NULL;
- result = CURLE_OUT_OF_MEMORY;
- goto out;
- }
-
- conn->host.name = conn->host.rawalloc;
- conn->host.name[0] = 0;
-
- user = strdup("");
- passwd = strdup("");
- options = strdup("");
- if(!user || !passwd || !options) {
- result = CURLE_OUT_OF_MEMORY;
- goto out;
- }
-
- result = parseurlandfillconn(data, conn, &prot_missing, &user, &passwd,
- &options);
+ result = parseurlandfillconn(data, conn);
if(result)
goto out;
- /*************************************************************
- * No protocol part in URL was used, add it!
- *************************************************************/
- if(prot_missing) {
- /* We're guessing prefixes here and if we're told to use a proxy or if
- we're going to follow a Location: later or... then we need the protocol
- part added so that we have a valid URL. */
- char *reurl;
- char *ch_lower;
-
- reurl = aprintf("%s://%s", conn->handler->scheme, data->change.url);
-
- if(!reurl) {
- result = CURLE_OUT_OF_MEMORY;
- goto out;
- }
-
- /* Change protocol prefix to lower-case */
- for(ch_lower = reurl; *ch_lower != ':'; ch_lower++)
- *ch_lower = (char)TOLOWER(*ch_lower);
-
- if(data->change.url_alloc) {
- Curl_safefree(data->change.url);
- data->change.url_alloc = FALSE;
- }
-
- data->change.url = reurl;
- data->change.url_alloc = TRUE; /* free this later */
- }
-
- /*************************************************************
- * If the protocol can't handle url query strings, then cut
- * off the unhandable part
- *************************************************************/
- if((conn->given->flags&PROTOPT_NOURLQUERY)) {
- char *path_q_sep = strchr(conn->data->state.path, '?');
- if(path_q_sep) {
- /* according to rfc3986, allow the query (?foo=bar)
- also on protocols that can't handle it.
-
- cut the string-part after '?'
- */
-
- /* terminate the string */
- path_q_sep[0] = 0;
- }
- }
-
if(data->set.str[STRING_BEARER]) {
conn->oauth_bearer = strdup(data->set.str[STRING_BEARER]);
if(!conn->oauth_bearer) {
@@ -4192,10 +3659,12 @@ static CURLcode create_conn(struct Curl_easy *data,
/* Check for overridden login details and set them accordingly so they
they are known when protocol->setup_connection is called! */
- result = override_login(data, conn, &user, &passwd, &options);
+ result = override_login(data, conn, &conn->user, &conn->passwd,
+ &conn->options);
if(result)
goto out;
- result = set_login(conn, user, passwd, options);
+
+ result = set_login(conn); /* default credentials */
if(result)
goto out;
@@ -4278,6 +3747,7 @@ static CURLcode create_conn(struct Curl_easy *data,
/* this is supposed to be the connect function so we better at least check
that the file is present here! */
DEBUGASSERT(conn->handler->connect_it);
+ Curl_persistconninfo(conn);
result = conn->handler->connect_it(conn, &done);
/* Setup a "faked" transfer that'll do nothing */
@@ -4381,6 +3851,9 @@ static CURLcode create_conn(struct Curl_easy *data,
* new one.
*************************************************************/
+ DEBUGASSERT(conn->user);
+ DEBUGASSERT(conn->passwd);
+
/* reuse_fresh is TRUE if we are told to use a new connection by force, but
we only acknowledge this option if this is not a re-used connection
already (which happens due to follow-location or during a HTTP
@@ -4556,10 +4029,6 @@ static CURLcode create_conn(struct Curl_easy *data,
result = resolve_server(data, conn, async);
out:
-
- free(options);
- free(passwd);
- free(user);
return result;
}
@@ -4843,3 +4312,34 @@ static unsigned int get_protocol_family(unsigned int protocol)
return family;
}
+
+
+/*
+ * Wrapper to call functions in Curl_conncache_foreach()
+ *
+ * Returns always 0.
+ */
+static int conn_upkeep(struct connectdata *conn,
+ void *param)
+{
+ /* Param is unused. */
+ (void)param;
+
+ if(conn->handler->connection_check) {
+ /* Do a protocol-specific keepalive check on the connection. */
+ conn->handler->connection_check(conn, CONNCHECK_KEEPALIVE);
+ }
+
+ return 0; /* continue iteration */
+}
+
+CURLcode Curl_upkeep(struct conncache *conn_cache,
+ void *data)
+{
+ /* Loop over every connection and make connection alive. */
+ Curl_conncache_foreach(data,
+ conn_cache,
+ data,
+ conn_upkeep);
+ return CURLE_OK;
+}
diff --git a/lib/url.h b/lib/url.h
index ef3ebf03..095d6383 100644
--- a/lib/url.h
+++ b/lib/url.h
@@ -27,6 +27,18 @@
#define READBUFFER_MAX CURL_MAX_READ_SIZE
#define READBUFFER_MIN 1024
+/* The default upload buffer size, should not be smaller than
+ CURL_MAX_WRITE_SIZE, as it needs to hold a full buffer as could be sent in
+ a write callback.
+
+ The size was 16KB for many years but was bumped to 64KB because it makes
+ libcurl able to do significantly faster uploads in some circumstances. Even
+ larger buffers can help further, but this is deemed a fair memory/speed
+ compromise. */
+#define UPLOADBUFFER_DEFAULT 65536
+#define UPLOADBUFFER_MAX (2*1024*1024)
+#define UPLOADBUFFER_MIN CURL_MAX_WRITE_SIZE
+
/*
* Prototypes for library-wide functions provided by url.c
*/
@@ -34,8 +46,11 @@
CURLcode Curl_init_do(struct Curl_easy *data, struct connectdata *conn);
CURLcode Curl_open(struct Curl_easy **curl);
CURLcode Curl_init_userdefined(struct Curl_easy *data);
-CURLcode Curl_dupset(struct Curl_easy * dst, struct Curl_easy * src);
+
void Curl_freeset(struct Curl_easy * data);
+/* free the URL pieces */
+void Curl_up_free(struct Curl_easy *data);
+CURLcode Curl_uc_to_curlcode(CURLUcode uc);
CURLcode Curl_close(struct Curl_easy *data); /* opposite of curl_open() */
CURLcode Curl_connect(struct Curl_easy *, struct connectdata **,
bool *async, bool *protocol_connect);
@@ -57,9 +72,7 @@ int Curl_doing_getsock(struct connectdata *conn,
CURLcode Curl_parse_login_details(const char *login, const size_t len,
char **userptr, char **passwdptr,
char **optionsptr);
-bool Curl_isPipeliningEnabled(const struct Curl_easy *handle);
-CURLcode Curl_addHandleToPipeline(struct Curl_easy *handle,
- struct curl_llist *pipeline);
+
int Curl_removeHandleFromPipeline(struct Curl_easy *handle,
struct curl_llist *pipeline);
/* remove the specified connection from all (possible) pipelines and related
@@ -67,7 +80,9 @@ int Curl_removeHandleFromPipeline(struct Curl_easy *handle,
void Curl_getoff_all_pipelines(struct Curl_easy *data,
struct connectdata *conn);
-void Curl_close_connections(struct Curl_easy *data);
+CURLcode Curl_upkeep(struct conncache *conn_cache, void *data);
+
+const struct Curl_handler *Curl_builtin_scheme(const char *scheme);
#define CURL_DEFAULT_PROXY_PORT 1080 /* default proxy port unless specified */
#define CURL_DEFAULT_HTTPS_PROXY_PORT 443 /* default https proxy port unless
diff --git a/lib/urlapi-int.h b/lib/urlapi-int.h
new file mode 100644
index 00000000..a57d2e22
--- /dev/null
+++ b/lib/urlapi-int.h
@@ -0,0 +1,33 @@
+#ifndef HEADER_CURL_URLAPI_INT_H
+#define HEADER_CURL_URLAPI_INT_H
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2018, 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 https://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.
+ *
+ ***************************************************************************/
+#include "curl_setup.h"
+/* scheme is not URL encoded, the longest libcurl supported ones are 6
+ letters */
+#define MAX_SCHEME_LEN 8
+
+bool Curl_is_absolute_url(const char *url, char *scheme, size_t buflen);
+char *Curl_concat_url(const char *base, const char *relurl);
+size_t Curl_strlen_url(const char *url, bool relative);
+void Curl_strcpy_url(char *output, const char *url, bool relative);
+#endif /* HEADER_CURL_URLAPI_INT_H */
diff --git a/lib/urlapi.c b/lib/urlapi.c
new file mode 100644
index 00000000..c53e5234
--- /dev/null
+++ b/lib/urlapi.c
@@ -0,0 +1,1340 @@
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2018, 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 https://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.
+ *
+ ***************************************************************************/
+
+#include "curl_setup.h"
+
+#include "urldata.h"
+#include "urlapi-int.h"
+#include "strcase.h"
+#include "dotdot.h"
+#include "url.h"
+#include "escape.h"
+#include "curl_ctype.h"
+
+/* The last 3 #include files should be in this order */
+#include "curl_printf.h"
+#include "curl_memory.h"
+#include "memdebug.h"
+
+ /* MSDOS/Windows style drive prefix, eg c: in c:foo */
+#define STARTS_WITH_DRIVE_PREFIX(str) \
+ ((('a' <= str[0] && str[0] <= 'z') || \
+ ('A' <= str[0] && str[0] <= 'Z')) && \
+ (str[1] == ':'))
+
+ /* MSDOS/Windows style drive prefix, optionally with
+ * a '|' instead of ':', followed by a slash or NUL */
+#define STARTS_WITH_URL_DRIVE_PREFIX(str) \
+ ((('a' <= (str)[0] && (str)[0] <= 'z') || \
+ ('A' <= (str)[0] && (str)[0] <= 'Z')) && \
+ ((str)[1] == ':' || (str)[1] == '|') && \
+ ((str)[2] == '/' || (str)[2] == '\\' || (str)[2] == 0))
+
+/* Internal representation of CURLU. Point to URL-encoded strings. */
+struct Curl_URL {
+ char *scheme;
+ char *user;
+ char *password;
+ char *options; /* IMAP only? */
+ char *host;
+ char *port;
+ char *path;
+ char *query;
+ char *fragment;
+
+ char *scratch; /* temporary scratch area */
+ long portnum; /* the numerical version */
+};
+
+#define DEFAULT_SCHEME "https"
+
+static void free_urlhandle(struct Curl_URL *u)
+{
+ free(u->scheme);
+ free(u->user);
+ free(u->password);
+ free(u->options);
+ free(u->host);
+ free(u->port);
+ free(u->path);
+ free(u->query);
+ free(u->fragment);
+ free(u->scratch);
+}
+
+/* move the full contents of one handle onto another and
+ free the original */
+static void mv_urlhandle(struct Curl_URL *from,
+ struct Curl_URL *to)
+{
+ free_urlhandle(to);
+ *to = *from;
+ free(from);
+}
+
+/*
+ * Find the separator at the end of the host name, or the '?' in cases like
+ * http://www.url.com?id=2380
+ */
+static const char *find_host_sep(const char *url)
+{
+ const char *sep;
+ const char *query;
+
+ /* Find the start of the hostname */
+ sep = strstr(url, "//");
+ if(!sep)
+ sep = url;
+ else
+ sep += 2;
+
+ query = strchr(sep, '?');
+ sep = strchr(sep, '/');
+
+ if(!sep)
+ sep = url + strlen(url);
+
+ if(!query)
+ query = url + strlen(url);
+
+ return sep < query ? sep : query;
+}
+
+/*
+ * Decide in an encoding-independent manner whether a character in an
+ * URL must be escaped. The same criterion must be used in strlen_url()
+ * and strcpy_url().
+ */
+static bool urlchar_needs_escaping(int c)
+{
+ return !(ISCNTRL(c) || ISSPACE(c) || ISGRAPH(c));
+}
+
+/*
+ * strlen_url() returns the length of the given URL if the spaces within the
+ * URL were properly URL encoded.
+ * URL encoding should be skipped for host names, otherwise IDN resolution
+ * will fail.
+ */
+size_t Curl_strlen_url(const char *url, bool relative)
+{
+ const unsigned char *ptr;
+ size_t newlen = 0;
+ bool left = TRUE; /* left side of the ? */
+ const unsigned char *host_sep = (const unsigned char *) url;
+
+ if(!relative)
+ host_sep = (const unsigned char *) find_host_sep(url);
+
+ for(ptr = (unsigned char *)url; *ptr; ptr++) {
+
+ if(ptr < host_sep) {
+ ++newlen;
+ continue;
+ }
+
+ switch(*ptr) {
+ case '?':
+ left = FALSE;
+ /* FALLTHROUGH */
+ default:
+ if(urlchar_needs_escaping(*ptr))
+ newlen += 2;
+ newlen++;
+ break;
+ case ' ':
+ if(left)
+ newlen += 3;
+ else
+ newlen++;
+ break;
+ }
+ }
+ return newlen;
+}
+
+/* strcpy_url() copies a url to a output buffer and URL-encodes the spaces in
+ * the source URL accordingly.
+ * URL encoding should be skipped for host names, otherwise IDN resolution
+ * will fail.
+ */
+void Curl_strcpy_url(char *output, const char *url, bool relative)
+{
+ /* we must add this with whitespace-replacing */
+ bool left = TRUE;
+ const unsigned char *iptr;
+ char *optr = output;
+ const unsigned char *host_sep = (const unsigned char *) url;
+
+ if(!relative)
+ host_sep = (const unsigned char *) find_host_sep(url);
+
+ for(iptr = (unsigned char *)url; /* read from here */
+ *iptr; /* until zero byte */
+ iptr++) {
+
+ if(iptr < host_sep) {
+ *optr++ = *iptr;
+ continue;
+ }
+
+ switch(*iptr) {
+ case '?':
+ left = FALSE;
+ /* FALLTHROUGH */
+ default:
+ if(urlchar_needs_escaping(*iptr)) {
+ snprintf(optr, 4, "%%%02x", *iptr);
+ optr += 3;
+ }
+ else
+ *optr++=*iptr;
+ break;
+ case ' ':
+ if(left) {
+ *optr++='%'; /* add a '%' */
+ *optr++='2'; /* add a '2' */
+ *optr++='0'; /* add a '0' */
+ }
+ else
+ *optr++='+'; /* add a '+' here */
+ break;
+ }
+ }
+ *optr = 0; /* zero terminate output buffer */
+
+}
+
+/*
+ * Returns true if the given URL is absolute (as opposed to relative) within
+ * the buffer size. Returns the scheme in the buffer if TRUE and 'buf' is
+ * non-NULL.
+ */
+bool Curl_is_absolute_url(const char *url, char *buf, size_t buflen)
+{
+ size_t i;
+#ifdef WIN32
+ if(STARTS_WITH_DRIVE_PREFIX(url))
+ return FALSE;
+#endif
+ for(i = 0; i < buflen && url[i]; ++i) {
+ char s = url[i];
+ if(s == ':') {
+ if(buf)
+ buf[i] = 0;
+ return TRUE;
+ }
+ /* RFC 3986 3.1 explains:
+ scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )
+ */
+ else if(ISALNUM(s) || (s == '+') || (s == '-') || (s == '.') ) {
+ if(buf)
+ buf[i] = (char)TOLOWER(s);
+ }
+ else
+ break;
+ }
+ return FALSE;
+}
+
+/*
+ * Concatenate a relative URL to a base URL making it absolute.
+ * URL-encodes any spaces.
+ * The returned pointer must be freed by the caller unless NULL
+ * (returns NULL on out of memory).
+ */
+char *Curl_concat_url(const char *base, const char *relurl)
+{
+ /***
+ TRY to append this new path to the old URL
+ to the right of the host part. Oh crap, this is doomed to cause
+ problems in the future...
+ */
+ char *newest;
+ char *protsep;
+ char *pathsep;
+ size_t newlen;
+ bool host_changed = FALSE;
+
+ const char *useurl = relurl;
+ size_t urllen;
+
+ /* we must make our own copy of the URL to play with, as it may
+ point to read-only data */
+ char *url_clone = strdup(base);
+
+ if(!url_clone)
+ return NULL; /* skip out of this NOW */
+
+ /* protsep points to the start of the host name */
+ protsep = strstr(url_clone, "//");
+ if(!protsep)
+ protsep = url_clone;
+ else
+ protsep += 2; /* pass the slashes */
+
+ if('/' != relurl[0]) {
+ int level = 0;
+
+ /* First we need to find out if there's a ?-letter in the URL,
+ and cut it and the right-side of that off */
+ pathsep = strchr(protsep, '?');
+ if(pathsep)
+ *pathsep = 0;
+
+ /* we have a relative path to append to the last slash if there's one
+ available, or if the new URL is just a query string (starts with a
+ '?') we append the new one at the end of the entire currently worked
+ out URL */
+ if(useurl[0] != '?') {
+ pathsep = strrchr(protsep, '/');
+ if(pathsep)
+ *pathsep = 0;
+ }
+
+ /* Check if there's any slash after the host name, and if so, remember
+ that position instead */
+ pathsep = strchr(protsep, '/');
+ if(pathsep)
+ protsep = pathsep + 1;
+ else
+ protsep = NULL;
+
+ /* now deal with one "./" or any amount of "../" in the newurl
+ and act accordingly */
+
+ if((useurl[0] == '.') && (useurl[1] == '/'))
+ useurl += 2; /* just skip the "./" */
+
+ while((useurl[0] == '.') &&
+ (useurl[1] == '.') &&
+ (useurl[2] == '/')) {
+ level++;
+ useurl += 3; /* pass the "../" */
+ }
+
+ if(protsep) {
+ while(level--) {
+ /* cut off one more level from the right of the original URL */
+ pathsep = strrchr(protsep, '/');
+ if(pathsep)
+ *pathsep = 0;
+ else {
+ *protsep = 0;
+ break;
+ }
+ }
+ }
+ }
+ else {
+ /* We got a new absolute path for this server */
+
+ if((relurl[0] == '/') && (relurl[1] == '/')) {
+ /* the new URL starts with //, just keep the protocol part from the
+ original one */
+ *protsep = 0;
+ useurl = &relurl[2]; /* we keep the slashes from the original, so we
+ skip the new ones */
+ host_changed = TRUE;
+ }
+ else {
+ /* cut off the original URL from the first slash, or deal with URLs
+ without slash */
+ pathsep = strchr(protsep, '/');
+ if(pathsep) {
+ /* When people use badly formatted URLs, such as
+ "http://www.url.com?dir=/home/daniel" we must not use the first
+ slash, if there's a ?-letter before it! */
+ char *sep = strchr(protsep, '?');
+ if(sep && (sep < pathsep))
+ pathsep = sep;
+ *pathsep = 0;
+ }
+ else {
+ /* There was no slash. Now, since we might be operating on a badly
+ formatted URL, such as "http://www.url.com?id=2380" which doesn't
+ use a slash separator as it is supposed to, we need to check for a
+ ?-letter as well! */
+ pathsep = strchr(protsep, '?');
+ if(pathsep)
+ *pathsep = 0;
+ }
+ }
+ }
+
+ /* If the new part contains a space, this is a mighty stupid redirect
+ but we still make an effort to do "right". To the left of a '?'
+ letter we replace each space with %20 while it is replaced with '+'
+ on the right side of the '?' letter.
+ */
+ newlen = Curl_strlen_url(useurl, !host_changed);
+
+ urllen = strlen(url_clone);
+
+ newest = malloc(urllen + 1 + /* possible slash */
+ newlen + 1 /* zero byte */);
+
+ if(!newest) {
+ free(url_clone); /* don't leak this */
+ return NULL;
+ }
+
+ /* copy over the root url part */
+ memcpy(newest, url_clone, urllen);
+
+ /* check if we need to append a slash */
+ if(('/' == useurl[0]) || (protsep && !*protsep) || ('?' == useurl[0]))
+ ;
+ else
+ newest[urllen++]='/';
+
+ /* then append the new piece on the right side */
+ Curl_strcpy_url(&newest[urllen], useurl, !host_changed);
+
+ free(url_clone);
+
+ return newest;
+}
+
+/*
+ * parse_hostname_login()
+ *
+ * Parse the login details (user name, password and options) from the URL and
+ * strip them out of the host name
+ *
+ */
+static CURLUcode parse_hostname_login(struct Curl_URL *u,
+ const struct Curl_handler *h,
+ char **hostname,
+ unsigned int flags)
+{
+ CURLUcode result = CURLUE_OK;
+ CURLcode ccode;
+ char *userp = NULL;
+ char *passwdp = NULL;
+ char *optionsp = NULL;
+
+ /* At this point, we're hoping all the other special cases have
+ * been taken care of, so conn->host.name is at most
+ * [user[:password][;options]]@]hostname
+ *
+ * We need somewhere to put the embedded details, so do that first.
+ */
+
+ char *ptr = strchr(*hostname, '@');
+ char *login = *hostname;
+
+ if(!ptr)
+ goto out;
+
+ /* We will now try to extract the
+ * possible login information in a string like:
+ * ftp://user:password@ftp.my.site:8021/README */
+ *hostname = ++ptr;
+
+ /* We could use the login information in the URL so extract it. Only parse
+ options if the handler says we should. Note that 'h' might be NULL! */
+ ccode = Curl_parse_login_details(login, ptr - login - 1,
+ &userp, &passwdp,
+ (h && (h->flags & PROTOPT_URLOPTIONS)) ?
+ &optionsp:NULL);
+ if(ccode) {
+ result = CURLUE_MALFORMED_INPUT;
+ goto out;
+ }
+
+ if(userp) {
+ if(flags & CURLU_DISALLOW_USER) {
+ /* Option DISALLOW_USER is set and url contains username. */
+ result = CURLUE_USER_NOT_ALLOWED;
+ goto out;
+ }
+
+ u->user = userp;
+ }
+
+ if(passwdp)
+ u->password = passwdp;
+
+ if(optionsp)
+ u->options = optionsp;
+
+ return CURLUE_OK;
+ out:
+
+ free(userp);
+ free(passwdp);
+ free(optionsp);
+
+ return result;
+}
+
+static CURLUcode parse_port(struct Curl_URL *u, char *hostname)
+{
+ char *portptr;
+ char endbracket;
+ int len;
+
+ if((1 == sscanf(hostname, "[%*45[0123456789abcdefABCDEF:.%%]%c%n",
+ &endbracket, &len)) &&
+ (']' == endbracket)) {
+ /* this is a RFC2732-style specified IP-address */
+ portptr = &hostname[len];
+ if (*portptr != ':')
+ return CURLUE_MALFORMED_INPUT;
+ }
+ else
+ portptr = strchr(hostname, ':');
+
+ if(portptr) {
+ char *rest;
+ long port;
+ char portbuf[7];
+
+ if(!ISDIGIT(portptr[1]))
+ return CURLUE_BAD_PORT_NUMBER;
+
+ port = strtol(portptr + 1, &rest, 10); /* Port number must be decimal */
+
+ if((port <= 0) || (port > 0xffff))
+ /* Single unix standard says port numbers are 16 bits long, but we don't
+ treat port zero as OK. */
+ return CURLUE_BAD_PORT_NUMBER;
+
+ if(rest[0])
+ return CURLUE_BAD_PORT_NUMBER;
+
+ if(rest != &portptr[1]) {
+ *portptr++ = '\0'; /* cut off the name there */
+ *rest = 0;
+ /* generate a new to get rid of leading zeroes etc */
+ snprintf(portbuf, sizeof(portbuf), "%ld", port);
+ u->portnum = port;
+ u->port = strdup(portbuf);
+ if(!u->port)
+ return CURLUE_OUT_OF_MEMORY;
+ }
+ else {
+ /* Browser behavior adaptation. If there's a colon with no digits after,
+ just cut off the name there which makes us ignore the colon and just
+ use the default port. Firefox and Chrome both do that. */
+ *portptr = '\0';
+ }
+ }
+
+ return CURLUE_OK;
+}
+
+/* scan for byte values < 31 or 127 */
+static CURLUcode junkscan(char *part)
+{
+ char badbytes[]={
+ /* */ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
+ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
+ 0x7f,
+ 0x00 /* zero terminate */
+ };
+ if(part) {
+ size_t n = strlen(part);
+ size_t nfine = strcspn(part, badbytes);
+ if(nfine != n)
+ /* since we don't know which part is scanned, return a generic error
+ code */
+ return CURLUE_MALFORMED_INPUT;
+ }
+ return CURLUE_OK;
+}
+
+static CURLUcode hostname_check(char *hostname, unsigned int flags)
+{
+ const char *l = NULL; /* accepted characters */
+ size_t len;
+ size_t hlen = strlen(hostname);
+ (void)flags;
+
+ if(hostname[0] == '[') {
+ hostname++;
+ l = "0123456789abcdefABCDEF::.%";
+ hlen -= 2;
+ }
+
+ if(l) {
+ /* only valid letters are ok */
+ len = strspn(hostname, l);
+ if(hlen != len)
+ /* hostname with bad content */
+ return CURLUE_MALFORMED_INPUT;
+ }
+ else {
+ /* letters from the second string is not ok */
+ len = strcspn(hostname, " ");
+ if(hlen != len)
+ /* hostname with bad content */
+ return CURLUE_MALFORMED_INPUT;
+ }
+ return CURLUE_OK;
+}
+
+#define HOSTNAME_END(x) (((x) == '/') || ((x) == '?') || ((x) == '#'))
+
+static CURLUcode seturl(const char *url, CURLU *u, unsigned int flags)
+{
+ char *path;
+ bool path_alloced = FALSE;
+ char *hostname;
+ char *query = NULL;
+ char *fragment = NULL;
+ CURLUcode result;
+ bool url_has_scheme = FALSE;
+ char schemebuf[MAX_SCHEME_LEN];
+ char *schemep = NULL;
+ size_t schemelen = 0;
+ size_t urllen;
+ const struct Curl_handler *h = NULL;
+
+ if(!url)
+ return CURLUE_MALFORMED_INPUT;
+
+ /*************************************************************
+ * Parse the URL.
+ ************************************************************/
+ /* allocate scratch area */
+ urllen = strlen(url);
+ path = u->scratch = malloc(urllen * 2 + 2);
+ if(!path)
+ return CURLUE_OUT_OF_MEMORY;
+
+ hostname = &path[urllen + 1];
+ hostname[0] = 0;
+
+ if(Curl_is_absolute_url(url, schemebuf, sizeof(schemebuf))) {
+ url_has_scheme = TRUE;
+ schemelen = strlen(schemebuf);
+ }
+
+ /* handle the file: scheme */
+ if(url_has_scheme && strcasecompare(schemebuf, "file")) {
+ /* path has been allocated large enough to hold this */
+ strcpy(path, &url[5]);
+
+ hostname = NULL; /* no host for file: URLs */
+ u->scheme = strdup("file");
+ if(!u->scheme)
+ return CURLUE_OUT_OF_MEMORY;
+
+ /* Extra handling URLs with an authority component (i.e. that start with
+ * "file://")
+ *
+ * We allow omitted hostname (e.g. file:/<path>) -- valid according to
+ * RFC 8089, but not the (current) WHAT-WG URL spec.
+ */
+ if(path[0] == '/' && path[1] == '/') {
+ /* swallow the two slashes */
+ char *ptr = &path[2];
+
+ /*
+ * According to RFC 8089, a file: URL can be reliably dereferenced if:
+ *
+ * o it has no/blank hostname, or
+ *
+ * o the hostname matches "localhost" (case-insensitively), or
+ *
+ * o the hostname is a FQDN that resolves to this machine.
+ *
+ * For brevity, we only consider URLs with empty, "localhost", or
+ * "127.0.0.1" hostnames as local.
+ *
+ * Additionally, there is an exception for URLs with a Windows drive
+ * letter in the authority (which was accidentally omitted from RFC 8089
+ * Appendix E, but believe me, it was meant to be there. --MK)
+ */
+ if(ptr[0] != '/' && !STARTS_WITH_URL_DRIVE_PREFIX(ptr)) {
+ /* the URL includes a host name, it must match "localhost" or
+ "127.0.0.1" to be valid */
+ if(!checkprefix("localhost/", ptr) &&
+ !checkprefix("127.0.0.1/", ptr)) {
+ /* Invalid file://hostname/, expected localhost or 127.0.0.1 or
+ none */
+ return CURLUE_MALFORMED_INPUT;
+ }
+ ptr += 9; /* now points to the slash after the host */
+ }
+
+ path = ptr;
+ }
+
+#if !defined(MSDOS) && !defined(WIN32) && !defined(__CYGWIN__)
+ /* Don't allow Windows drive letters when not in Windows.
+ * This catches both "file:/c:" and "file:c:" */
+ if(('/' == path[0] && STARTS_WITH_URL_DRIVE_PREFIX(&path[1])) ||
+ STARTS_WITH_URL_DRIVE_PREFIX(path)) {
+ /* File drive letters are only accepted in MSDOS/Windows */
+ return CURLUE_MALFORMED_INPUT;
+ }
+#else
+ /* If the path starts with a slash and a drive letter, ditch the slash */
+ if('/' == path[0] && STARTS_WITH_URL_DRIVE_PREFIX(&path[1])) {
+ /* This cannot be done with strcpy, as the memory chunks overlap! */
+ memmove(path, &path[1], strlen(&path[1]) + 1);
+ }
+#endif
+
+ }
+ else {
+ /* clear path */
+ const char *p;
+ const char *hostp;
+ size_t len;
+ path[0] = 0;
+
+ if(url_has_scheme) {
+ int i = 0;
+ p = &url[schemelen + 1];
+ while(p && (*p == '/') && (i < 4)) {
+ p++;
+ i++;
+ }
+ if((i < 1) || (i>3))
+ /* less than one or more than three slashes */
+ return CURLUE_MALFORMED_INPUT;
+
+ schemep = schemebuf;
+ if(!Curl_builtin_scheme(schemep) &&
+ !(flags & CURLU_NON_SUPPORT_SCHEME))
+ return CURLUE_UNSUPPORTED_SCHEME;
+
+ if(junkscan(schemep))
+ return CURLUE_MALFORMED_INPUT;
+ }
+ else {
+ /* no scheme! */
+
+ if(!(flags & (CURLU_DEFAULT_SCHEME|CURLU_GUESS_SCHEME)))
+ return CURLUE_MALFORMED_INPUT;
+ if(flags & CURLU_DEFAULT_SCHEME)
+ schemep = (char *) DEFAULT_SCHEME;
+
+ /*
+ * The URL was badly formatted, let's try without scheme specified.
+ */
+ p = url;
+ }
+ hostp = p; /* host name starts here */
+
+ while(*p && !HOSTNAME_END(*p)) /* find end of host name */
+ p++;
+
+ len = p - hostp;
+ if(!len)
+ return CURLUE_MALFORMED_INPUT;
+
+ memcpy(hostname, hostp, len);
+ hostname[len] = 0;
+
+ if((flags & CURLU_GUESS_SCHEME) && !schemep) {
+ /* legacy curl-style guess based on host name */
+ if(checkprefix("ftp.", hostname))
+ schemep = (char *)"ftp";
+ else if(checkprefix("dict.", hostname))
+ schemep = (char *)"dict";
+ else if(checkprefix("ldap.", hostname))
+ schemep = (char *)"ldap";
+ else if(checkprefix("imap.", hostname))
+ schemep = (char *)"imap";
+ else if(checkprefix("smtp.", hostname))
+ schemep = (char *)"smtp";
+ else if(checkprefix("pop3.", hostname))
+ schemep = (char *)"pop3";
+ else
+ schemep = (char *)"http";
+ }
+
+ len = strlen(p);
+ memcpy(path, p, len);
+ path[len] = 0;
+
+ u->scheme = strdup(schemep);
+ if(!u->scheme)
+ return CURLUE_OUT_OF_MEMORY;
+ }
+
+ /* if this is a known scheme, get some details */
+ h = Curl_builtin_scheme(u->scheme);
+
+ if(junkscan(path))
+ return CURLUE_MALFORMED_INPUT;
+
+ query = strchr(path, '?');
+ if(query)
+ *query++ = 0;
+
+ fragment = strchr(query?query:path, '#');
+ if(fragment)
+ *fragment++ = 0;
+
+ if(!path[0])
+ /* if there's no path set, unset */
+ path = NULL;
+ else if(!(flags & CURLU_PATH_AS_IS)) {
+ /* sanitise paths and remove ../ and ./ sequences according to RFC3986 */
+ char *newp = Curl_dedotdotify(path);
+ if(!newp)
+ return CURLUE_OUT_OF_MEMORY;
+
+ if(strcmp(newp, path)) {
+ /* if we got a new version */
+ path = newp;
+ path_alloced = TRUE;
+ }
+ else
+ free(newp);
+ }
+ if(path) {
+ u->path = path_alloced?path:strdup(path);
+ if(!u->path)
+ return CURLUE_OUT_OF_MEMORY;
+ }
+
+ if(hostname) {
+ /*
+ * Parse the login details and strip them out of the host name.
+ */
+ if(junkscan(hostname))
+ return CURLUE_MALFORMED_INPUT;
+
+ result = parse_hostname_login(u, h, &hostname, flags);
+ if(result)
+ return result;
+
+ result = parse_port(u, hostname);
+ if(result)
+ return result;
+
+ result = hostname_check(hostname, flags);
+ if(result)
+ return result;
+
+ u->host = strdup(hostname);
+ if(!u->host)
+ return CURLUE_OUT_OF_MEMORY;
+ }
+
+ if(query && query[0]) {
+ u->query = strdup(query);
+ if(!u->query)
+ return CURLUE_OUT_OF_MEMORY;
+ }
+ if(fragment && fragment[0]) {
+ u->fragment = strdup(fragment);
+ if(!u->fragment)
+ return CURLUE_OUT_OF_MEMORY;
+ }
+
+ free(u->scratch);
+ u->scratch = NULL;
+
+ return CURLUE_OK;
+}
+
+/*
+ * Parse the URL and set the relevant members of the Curl_URL struct.
+ */
+static CURLUcode parseurl(const char *url, CURLU *u, unsigned int flags)
+{
+ CURLUcode result = seturl(url, u, flags);
+ if(result) {
+ free_urlhandle(u);
+ memset(u, 0, sizeof(struct Curl_URL));
+ }
+ return result;
+}
+
+/*
+ */
+CURLU *curl_url(void)
+{
+ return calloc(sizeof(struct Curl_URL), 1);
+}
+
+void curl_url_cleanup(CURLU *u)
+{
+ if(u) {
+ free_urlhandle(u);
+ free(u);
+ }
+}
+
+#define DUP(dest, src, name) \
+ if(src->name) { \
+ dest->name = strdup(src->name); \
+ if(!dest->name) \
+ goto fail; \
+ }
+
+CURLU *curl_url_dup(CURLU *in)
+{
+ struct Curl_URL *u = calloc(sizeof(struct Curl_URL), 1);
+ if(u) {
+ DUP(u, in, scheme);
+ DUP(u, in, user);
+ DUP(u, in, password);
+ DUP(u, in, options);
+ DUP(u, in, host);
+ DUP(u, in, port);
+ DUP(u, in, path);
+ DUP(u, in, query);
+ DUP(u, in, fragment);
+ u->portnum = in->portnum;
+ }
+ return u;
+ fail:
+ curl_url_cleanup(u);
+ return NULL;
+}
+
+CURLUcode curl_url_get(CURLU *u, CURLUPart what,
+ char **part, unsigned int flags)
+{
+ char *ptr;
+ CURLUcode ifmissing = CURLUE_UNKNOWN_PART;
+ char portbuf[7];
+ bool urldecode = (flags & CURLU_URLDECODE)?1:0;
+ bool plusdecode = FALSE;
+ (void)flags;
+ if(!u)
+ return CURLUE_BAD_HANDLE;
+ if(!part)
+ return CURLUE_BAD_PARTPOINTER;
+ *part = NULL;
+
+ switch(what) {
+ case CURLUPART_SCHEME:
+ ptr = u->scheme;
+ ifmissing = CURLUE_NO_SCHEME;
+ urldecode = FALSE; /* never for schemes */
+ break;
+ case CURLUPART_USER:
+ ptr = u->user;
+ ifmissing = CURLUE_NO_USER;
+ break;
+ case CURLUPART_PASSWORD:
+ ptr = u->password;
+ ifmissing = CURLUE_NO_PASSWORD;
+ break;
+ case CURLUPART_OPTIONS:
+ ptr = u->options;
+ ifmissing = CURLUE_NO_OPTIONS;
+ break;
+ case CURLUPART_HOST:
+ ptr = u->host;
+ ifmissing = CURLUE_NO_HOST;
+ break;
+ case CURLUPART_PORT:
+ ptr = u->port;
+ ifmissing = CURLUE_NO_PORT;
+ urldecode = FALSE; /* never for port */
+ if(!ptr && (flags & CURLU_DEFAULT_PORT) && u->scheme) {
+ /* there's no stored port number, but asked to deliver
+ a default one for the scheme */
+ const struct Curl_handler *h =
+ Curl_builtin_scheme(u->scheme);
+ if(h) {
+ snprintf(portbuf, sizeof(portbuf), "%ld", h->defport);
+ ptr = portbuf;
+ }
+ }
+ else if(ptr && u->scheme) {
+ /* there is a stored port number, but ask to inhibit if
+ it matches the default one for the scheme */
+ const struct Curl_handler *h =
+ Curl_builtin_scheme(u->scheme);
+ if(h && (h->defport == u->portnum) &&
+ (flags & CURLU_NO_DEFAULT_PORT))
+ ptr = NULL;
+ }
+ break;
+ case CURLUPART_PATH:
+ ptr = u->path;
+ if(!ptr) {
+ ptr = u->path = strdup("/");
+ if(!u->path)
+ return CURLUE_OUT_OF_MEMORY;
+ }
+ break;
+ case CURLUPART_QUERY:
+ ptr = u->query;
+ ifmissing = CURLUE_NO_QUERY;
+ plusdecode = urldecode;
+ break;
+ case CURLUPART_FRAGMENT:
+ ptr = u->fragment;
+ ifmissing = CURLUE_NO_FRAGMENT;
+ break;
+ case CURLUPART_URL: {
+ char *url;
+ char *scheme;
+ char *options = u->options;
+ char *port = u->port;
+ if(u->scheme && strcasecompare("file", u->scheme)) {
+ url = aprintf("file://%s%s%s",
+ u->path,
+ u->fragment? "#": "",
+ u->fragment? u->fragment : "");
+ }
+ else if(!u->host)
+ return CURLUE_NO_HOST;
+ else {
+ const struct Curl_handler *h = NULL;
+ if(u->scheme)
+ scheme = u->scheme;
+ else if(flags & CURLU_DEFAULT_SCHEME)
+ scheme = (char *) DEFAULT_SCHEME;
+ else
+ return CURLUE_NO_SCHEME;
+
+ if(scheme) {
+ h = Curl_builtin_scheme(scheme);
+ if(!port && (flags & CURLU_DEFAULT_PORT)) {
+ /* there's no stored port number, but asked to deliver
+ a default one for the scheme */
+ if(h) {
+ snprintf(portbuf, sizeof(portbuf), "%ld", h->defport);
+ port = portbuf;
+ }
+ }
+ else if(port) {
+ /* there is a stored port number, but asked to inhibit if it matches
+ the default one for the scheme */
+ if(h && (h->defport == u->portnum) &&
+ (flags & CURLU_NO_DEFAULT_PORT))
+ port = NULL;
+ }
+ }
+ if(h && !(h->flags & PROTOPT_URLOPTIONS))
+ options = NULL;
+
+ url = aprintf("%s://%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
+ scheme,
+ u->user ? u->user : "",
+ u->password ? ":": "",
+ u->password ? u->password : "",
+ options ? ";" : "",
+ options ? options : "",
+ (u->user || u->password || options) ? "@": "",
+ u->host,
+ port ? ":": "",
+ port ? port : "",
+ (u->path && (u->path[0] != '/')) ? "/": "",
+ u->path ? u->path : "/",
+ u->query? "?": "",
+ u->query? u->query : "",
+ u->fragment? "#": "",
+ u->fragment? u->fragment : "");
+ }
+ if(!url)
+ return CURLUE_OUT_OF_MEMORY;
+ *part = url;
+ return CURLUE_OK;
+ break;
+ }
+ default:
+ ptr = NULL;
+ }
+ if(ptr) {
+ *part = strdup(ptr);
+ if(!*part)
+ return CURLUE_OUT_OF_MEMORY;
+ if(plusdecode) {
+ /* convert + to space */
+ char *plus;
+ for(plus = *part; *plus; ++plus) {
+ if(*plus == '+')
+ *plus = ' ';
+ }
+ }
+ if(urldecode) {
+ char *decoded;
+ size_t dlen;
+ CURLcode res = Curl_urldecode(NULL, *part, 0, &decoded, &dlen, TRUE);
+ free(*part);
+ if(res) {
+ *part = NULL;
+ return CURLUE_URLDECODE;
+ }
+ *part = decoded;
+ }
+ return CURLUE_OK;
+ }
+ else
+ return ifmissing;
+}
+
+CURLUcode curl_url_set(CURLU *u, CURLUPart what,
+ const char *part, unsigned int flags)
+{
+ char **storep = NULL;
+ long port = 0;
+ bool urlencode = (flags & CURLU_URLENCODE)? 1 : 0;
+ bool plusencode = FALSE;
+ bool urlskipslash = FALSE;
+ bool appendquery = FALSE;
+
+ if(!u)
+ return CURLUE_BAD_HANDLE;
+ if(!part) {
+ /* setting a part to NULL clears it */
+ switch(what) {
+ case CURLUPART_URL:
+ break;
+ case CURLUPART_SCHEME:
+ storep = &u->scheme;
+ break;
+ case CURLUPART_USER:
+ storep = &u->user;
+ break;
+ case CURLUPART_PASSWORD:
+ storep = &u->password;
+ break;
+ case CURLUPART_OPTIONS:
+ storep = &u->options;
+ break;
+ case CURLUPART_HOST:
+ storep = &u->host;
+ break;
+ case CURLUPART_PORT:
+ storep = &u->port;
+ break;
+ case CURLUPART_PATH:
+ storep = &u->path;
+ break;
+ case CURLUPART_QUERY:
+ storep = &u->query;
+ break;
+ case CURLUPART_FRAGMENT:
+ storep = &u->fragment;
+ break;
+ default:
+ return CURLUE_UNKNOWN_PART;
+ }
+ if(storep && *storep) {
+ free(*storep);
+ *storep = NULL;
+ }
+ return CURLUE_OK;
+ }
+
+ switch(what) {
+ case CURLUPART_SCHEME:
+ if(!(flags & CURLU_NON_SUPPORT_SCHEME) &&
+ /* verify that it is a fine scheme */
+ !Curl_builtin_scheme(part))
+ return CURLUE_UNSUPPORTED_SCHEME;
+ storep = &u->scheme;
+ urlencode = FALSE; /* never */
+ break;
+ case CURLUPART_USER:
+ storep = &u->user;
+ break;
+ case CURLUPART_PASSWORD:
+ storep = &u->password;
+ break;
+ case CURLUPART_OPTIONS:
+ storep = &u->options;
+ break;
+ case CURLUPART_HOST:
+ storep = &u->host;
+ break;
+ case CURLUPART_PORT:
+ urlencode = FALSE; /* never */
+ port = strtol(part, NULL, 10); /* Port number must be decimal */
+ if((port <= 0) || (port > 0xffff))
+ return CURLUE_BAD_PORT_NUMBER;
+ storep = &u->port;
+ break;
+ case CURLUPART_PATH:
+ urlskipslash = TRUE;
+ storep = &u->path;
+ break;
+ case CURLUPART_QUERY:
+ plusencode = urlencode;
+ appendquery = (flags & CURLU_APPENDQUERY)?1:0;
+ storep = &u->query;
+ break;
+ case CURLUPART_FRAGMENT:
+ storep = &u->fragment;
+ break;
+ case CURLUPART_URL: {
+ /*
+ * Allow a new URL to replace the existing (if any) contents.
+ *
+ * If the existing contents is enough for a URL, allow a relative URL to
+ * replace it.
+ */
+ CURLUcode result;
+ char *oldurl;
+ char *redired_url;
+ CURLU *handle2;
+
+ if(Curl_is_absolute_url(part, NULL, MAX_SCHEME_LEN)) {
+ handle2 = curl_url();
+ if(!handle2)
+ return CURLUE_OUT_OF_MEMORY;
+ result = parseurl(part, handle2, flags);
+ if(!result)
+ mv_urlhandle(handle2, u);
+ else
+ curl_url_cleanup(handle2);
+ return result;
+ }
+ /* extract the full "old" URL to do the redirect on */
+ result = curl_url_get(u, CURLUPART_URL, &oldurl, flags);
+ if(result) {
+ /* couldn't get the old URL, just use the new! */
+ handle2 = curl_url();
+ if(!handle2)
+ return CURLUE_OUT_OF_MEMORY;
+ result = parseurl(part, handle2, flags);
+ if(!result)
+ mv_urlhandle(handle2, u);
+ else
+ curl_url_cleanup(handle2);
+ return result;
+ }
+
+ /* apply the relative part to create a new URL */
+ redired_url = Curl_concat_url(oldurl, part);
+ free(oldurl);
+ if(!redired_url)
+ return CURLUE_OUT_OF_MEMORY;
+
+ /* now parse the new URL */
+ handle2 = curl_url();
+ if(!handle2) {
+ free(redired_url);
+ return CURLUE_OUT_OF_MEMORY;
+ }
+ result = parseurl(redired_url, handle2, flags);
+ free(redired_url);
+ if(!result)
+ mv_urlhandle(handle2, u);
+ else
+ curl_url_cleanup(handle2);
+ return result;
+ }
+ default:
+ return CURLUE_UNKNOWN_PART;
+ }
+ if(storep) {
+ const char *newp = part;
+ size_t nalloc = strlen(part);
+
+ if(urlencode) {
+ const char *i;
+ char *o;
+ bool free_part = FALSE;
+ char *enc = malloc(nalloc * 3 + 1); /* for worst case! */
+ if(!enc)
+ return CURLUE_OUT_OF_MEMORY;
+ if(plusencode) {
+ /* space to plus */
+ i = part;
+ for(o = enc; *i; ++o, ++i)
+ *o = (*i == ' ') ? '+' : *i;
+ *o = 0; /* zero terminate */
+ part = strdup(enc);
+ if(!part) {
+ free(enc);
+ return CURLUE_OUT_OF_MEMORY;
+ }
+ free_part = TRUE;
+ }
+ for(i = part, o = enc; *i; i++) {
+ if(Curl_isunreserved(*i) ||
+ ((*i == '/') && urlskipslash) ||
+ ((*i == '=') && appendquery) ||
+ ((*i == '+') && plusencode)) {
+ *o = *i;
+ o++;
+ }
+ else {
+ snprintf(o, 4, "%%%02x", *i);
+ o += 3;
+ }
+ }
+ *o = 0; /* zero terminate */
+ newp = enc;
+ if(free_part)
+ free((char *)part);
+ }
+ else {
+ char *p;
+ newp = strdup(part);
+ if(!newp)
+ return CURLUE_OUT_OF_MEMORY;
+ p = (char *)newp;
+ while(*p) {
+ /* make sure percent encoded are lower case */
+ if((*p == '%') && ISXDIGIT(p[1]) && ISXDIGIT(p[2]) &&
+ (ISUPPER(p[1]) || ISUPPER(p[2]))) {
+ p[1] = (char)TOLOWER(p[1]);
+ p[2] = (char)TOLOWER(p[2]);
+ p += 3;
+ }
+ else
+ p++;
+ }
+ }
+
+ if(appendquery) {
+ /* Append the string onto the old query. Add a '&' separator if none is
+ present at the end of the exsting query already */
+ size_t querylen = u->query ? strlen(u->query) : 0;
+ bool addamperand = querylen && (u->query[querylen -1] != '&');
+ if(querylen) {
+ size_t newplen = strlen(newp);
+ char *p = malloc(querylen + addamperand + newplen + 1);
+ if(!p) {
+ free((char *)newp);
+ return CURLUE_OUT_OF_MEMORY;
+ }
+ strcpy(p, u->query); /* original query */
+ if(addamperand)
+ p[querylen] = '&'; /* ampersand */
+ strcpy(&p[querylen + addamperand], newp); /* new suffix */
+ free((char *)newp);
+ free(*storep);
+ *storep = p;
+ return CURLUE_OK;
+ }
+ }
+
+ free(*storep);
+ *storep = (char *)newp;
+ }
+ /* set after the string, to make it not assigned if the allocation above
+ fails */
+ if(port)
+ u->portnum = port;
+ return CURLUE_OK;
+}
diff --git a/lib/urldata.h b/lib/urldata.h
index 67db3b2f..11a6a22c 100644
--- a/lib/urldata.h
+++ b/lib/urldata.h
@@ -142,14 +142,6 @@ typedef ssize_t (Curl_recv)(struct connectdata *conn, /* connection data */
#include <libssh2_sftp.h>
#endif /* HAVE_LIBSSH2_H */
-/* The upload buffer size, should not be smaller than CURL_MAX_WRITE_SIZE, as
- it needs to hold a full buffer as could be sent in a write callback.
-
- The size was 16KB for many years but was bumped to 64KB because it makes
- libcurl able to do significantly faster uploads in some circumstances. Even
- larger buffers can help further, but this is deemed a fair memory/speed
- compromise. */
-#define UPLOAD_BUFSIZE 65536
/* The "master buffer" is for HTTP pipelining */
#define MASTERBUF_SIZE 16384
@@ -476,7 +468,6 @@ struct hostname {
#define KEEP_SENDBITS (KEEP_SEND | KEEP_SEND_HOLD | KEEP_SEND_PAUSE)
-#ifdef CURLRES_ASYNCH
struct Curl_async {
char *hostname;
int port;
@@ -485,7 +476,6 @@ struct Curl_async {
int status; /* if done is TRUE, this is the status from the callback */
void *os_specific; /* 'struct thread_data' for Windows */
};
-#endif
#define FIRSTSOCKET 0
#define SECONDARYSOCKET 1
@@ -511,6 +501,28 @@ enum upgrade101 {
UPGR101_WORKING /* talking upgraded protocol */
};
+struct dohresponse {
+ unsigned char *memory;
+ size_t size;
+};
+
+/* one of these for each DoH request */
+struct dnsprobe {
+ CURL *easy;
+ int dnstype;
+ unsigned char dohbuffer[512];
+ size_t dohlen;
+ struct dohresponse serverdoh;
+};
+
+struct dohdata {
+ struct curl_slist *headers;
+ struct dnsprobe probe[2];
+ unsigned int pending; /* still outstanding requests */
+ const char *host;
+ int port;
+};
+
/*
* Request specific data in the easy handle (Curl_easy). Previously,
* these members were on the connectdata struct but since a conn struct may
@@ -606,6 +618,7 @@ struct SingleRequest {
void *protop; /* Allocated protocol-specific data. Each protocol
handler makes sure this points to data it needs. */
+ struct dohdata doh; /* DoH specific data for this request */
};
/*
@@ -636,7 +649,7 @@ struct Curl_handler {
*/
CURLcode (*connect_it)(struct connectdata *, bool *done);
- /* See above. Currently only used for FTP. */
+ /* See above. */
CURLcode (*connecting)(struct connectdata *, bool *done);
CURLcode (*doing)(struct connectdata *, bool *done);
@@ -716,6 +729,7 @@ struct Curl_handler {
#define CONNCHECK_NONE 0 /* No checks */
#define CONNCHECK_ISDEAD (1<<0) /* Check if the connection is dead. */
+#define CONNCHECK_KEEPALIVE (1<<1) /* Perform any keepalive function. */
#define CONNRESULT_NONE 0 /* No extra information. */
#define CONNRESULT_DEAD (1<<0) /* The connection is dead. */
@@ -892,6 +906,13 @@ struct connectdata {
long ip_version; /* copied from the Curl_easy at creation time */
+ /* Protocols can use a custom keepalive mechanism to keep connections alive.
+ This allows those protocols to track the last time the keepalive mechanism
+ was used on this connection. */
+ struct curltime keepalive;
+
+ long upkeep_interval_ms; /* Time between calls for connection upkeep. */
+
/**** curl_get() phase fields */
curl_socket_t sockfd; /* socket to read from or CURL_SOCKET_BAD */
@@ -969,11 +990,8 @@ struct connectdata {
#endif
char syserr_buf [256]; /* buffer for Curl_strerror() */
-
-#ifdef CURLRES_ASYNCH
/* data used for the asynch name resolve callback */
struct Curl_async async;
-#endif
/* These three are used for chunked-encoding trailer support */
char *trailer; /* allocated buffer to store trailer in */
@@ -1206,6 +1224,18 @@ struct time_node {
expire_id eid;
};
+/* individual pieces of the URL */
+struct urlpieces {
+ char *scheme;
+ char *hostname;
+ char *port;
+ char *user;
+ char *password;
+ char *options;
+ char *path;
+ char *query;
+};
+
struct UrlState {
/* Points to the connection cache */
@@ -1225,7 +1255,7 @@ struct UrlState {
size_t headersize; /* size of the allocation */
char *buffer; /* download buffer */
- char *ulbuf; /* alloced upload buffer or NULL */
+ char *ulbuf; /* allocated upload buffer or NULL */
curl_off_t current_speed; /* the ProgressShow() function sets this,
bytes / second */
bool this_is_a_follow; /* this is a followed Location: request */
@@ -1296,9 +1326,6 @@ struct UrlState {
/* for FTP downloads: how many CRLFs did we converted to LFs? */
curl_off_t crlf_conversions;
#endif
- char *pathbuffer;/* allocated buffer to store the URL's path part in */
- char *path; /* path to use, points to somewhere within the pathbuffer
- area */
bool slash_removed; /* set TRUE if the 'path' points to a path where the
initial URL slash separator has been taken off */
bool use_range;
@@ -1332,6 +1359,8 @@ struct UrlState {
#ifdef CURLDEBUG
bool conncache_lock;
#endif
+ CURLU *uh; /* URL handle for the current parsed URL */
+ struct urlpieces up;
};
@@ -1442,18 +1471,23 @@ enum dupstring {
STRING_UNIX_SOCKET_PATH, /* path to Unix socket, if used */
#endif
STRING_TARGET, /* CURLOPT_REQUEST_TARGET */
+ STRING_DOH, /* CURLOPT_DOH_URL */
/* -- end of zero-terminated strings -- */
STRING_LASTZEROTERMINATED,
- /* -- below this are pointers to binary data that cannot be strdup'ed.
- Each such pointer must be added manually to Curl_dupset() --- */
+ /* -- below this are pointers to binary data that cannot be strdup'ed. --- */
STRING_COPYPOSTFIELDS, /* if POST, set the fields' values here */
STRING_LAST /* not used, just an end-of-list marker */
};
+/* callback that gets called when this easy handle is completed within a multi
+ handle. Only used for internally created transfers, like for example
+ DoH. */
+typedef int (*multidone_func)(struct Curl_easy *easy, CURLcode result);
+
struct UserDefined {
FILE *err; /* the stderr user data goes here */
void *debugdata; /* the data that will be passed to fdebug */
@@ -1562,8 +1596,8 @@ struct UserDefined {
curl_proxytype proxytype; /* what kind of proxy that is in use */
long dns_cache_timeout; /* DNS cache timeout */
long buffer_size; /* size of receive buffer to use */
- long upload_buffer_size; /* size of upload buffer to use,
- keep it >= CURL_MAX_WRITE_SIZE */
+ size_t upload_buffer_size; /* size of upload buffer to use,
+ keep it >= CURL_MAX_WRITE_SIZE */
void *private_data; /* application-private data */
struct curl_slist *http200aliases; /* linked list of aliases for http200 */
@@ -1689,6 +1723,11 @@ struct UserDefined {
before resolver start */
void *resolver_start_client; /* pointer to pass to resolver start callback */
bool disallow_username_in_url; /* disallow username in url */
+ long upkeep_interval_ms; /* Time between calls for connection upkeep. */
+ bool doh; /* DNS-over-HTTPS enabled */
+ bool doh_get; /* use GET for DoH requests, instead of POST */
+ multidone_func fmultidone;
+ struct Curl_easy *dohfor; /* this is a DoH request for that transfer */
};
struct Names {
diff --git a/lib/vauth/cleartext.c b/lib/vauth/cleartext.c
index 5d61ce6d..be6d6111 100644
--- a/lib/vauth/cleartext.c
+++ b/lib/vauth/cleartext.c
@@ -50,7 +50,7 @@
*
* data [in] - The session handle.
* userp [in] - The user name.
- * passdwp [in] - The user's password.
+ * passwdp [in] - The user's password.
* outptr [in/out] - The address where a pointer to newly allocated memory
* holding the result will be stored upon completion.
* outlen [out] - The length of the output message.
@@ -74,7 +74,7 @@ CURLcode Curl_auth_create_plain_message(struct Curl_easy *data,
plen = strlen(passwdp);
/* Compute binary message length. Check for overflows. */
- if((ulen > SIZE_T_MAX/2) || (plen > (SIZE_T_MAX/2 - 2)))
+ if((ulen > SIZE_T_MAX/4) || (plen > (SIZE_T_MAX/2 - 2)))
return CURLE_OUT_OF_MEMORY;
plainlen = 2 * ulen + plen + 2;
diff --git a/lib/vauth/cram.c b/lib/vauth/cram.c
index 3074a163..d148618b 100644
--- a/lib/vauth/cram.c
+++ b/lib/vauth/cram.c
@@ -81,7 +81,7 @@ CURLcode Curl_auth_decode_cram_md5_message(const char *chlg64, char **outptr,
* data [in] - The session handle.
* chlg [in] - The challenge.
* userp [in] - The user name.
- * passdwp [in] - The user's password.
+ * passwdp [in] - The user's password.
* outptr [in/out] - The address where a pointer to newly allocated memory
* holding the result will be stored upon completion.
* outlen [out] - The length of the output message.
diff --git a/lib/vauth/digest.c b/lib/vauth/digest.c
index cc6f1697..ab5156eb 100644
--- a/lib/vauth/digest.c
+++ b/lib/vauth/digest.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -342,7 +342,7 @@ bool Curl_auth_is_digest_supported(void)
* data [in] - The session handle.
* chlg64 [in] - The base64 encoded challenge message.
* userp [in] - The user name.
- * passdwp [in] - The user's password.
+ * passwdp [in] - The user's password.
* service [in] - The service type such as http, smtp, pop or imap.
* outptr [in/out] - The address where a pointer to newly allocated memory
* holding the result will be stored upon completion.
@@ -668,7 +668,7 @@ CURLcode Curl_auth_decode_digest_http_message(const char *chlg,
*
* data [in] - The session handle.
* userp [in] - The user name.
- * passdwp [in] - The user's password.
+ * passwdp [in] - The user's password.
* request [in] - The HTTP request.
* uripath [in] - The path of the HTTP uri.
* digest [in/out] - The digest data struct being used and modified.
@@ -781,6 +781,8 @@ static CURLcode _Curl_auth_create_digest_http_message(
*/
hashthis = (unsigned char *) aprintf("%s:%s", request, uripath);
+ if(!hashthis)
+ return CURLE_OUT_OF_MEMORY;
if(digest->qop && strcasecompare(digest->qop, "auth-int")) {
/* We don't support auth-int for PUT or POST at the moment.
@@ -932,7 +934,7 @@ static CURLcode _Curl_auth_create_digest_http_message(
*
* data [in] - The session handle.
* userp [in] - The user name.
- * passdwp [in] - The user's password.
+ * passwdp [in] - The user's password.
* request [in] - The HTTP request.
* uripath [in] - The path of the HTTP uri.
* digest [in/out] - The digest data struct being used and modified.
diff --git a/lib/vauth/digest_sspi.c b/lib/vauth/digest_sspi.c
index a3f96ed2..92875573 100644
--- a/lib/vauth/digest_sspi.c
+++ b/lib/vauth/digest_sspi.c
@@ -75,7 +75,7 @@ bool Curl_auth_is_digest_supported(void)
* data [in] - The session handle.
* chlg64 [in] - The base64 encoded challenge message.
* userp [in] - The user name in the format User or Domain\User.
- * passdwp [in] - The user's password.
+ * passwdp [in] - The user's password.
* service [in] - The service type such as http, smtp, pop or imap.
* outptr [in/out] - The address where a pointer to newly allocated memory
* holding the result will be stored upon completion.
@@ -391,7 +391,7 @@ CURLcode Curl_auth_decode_digest_http_message(const char *chlg,
*
* data [in] - The session handle.
* userp [in] - The user name in the format User or Domain\User.
- * passdwp [in] - The user's password.
+ * passwdp [in] - The user's password.
* request [in] - The HTTP request.
* uripath [in] - The path of the HTTP uri.
* digest [in/out] - The digest data struct being used and modified.
diff --git a/lib/vauth/krb5_gssapi.c b/lib/vauth/krb5_gssapi.c
index 560ecc5b..55daec1f 100644
--- a/lib/vauth/krb5_gssapi.c
+++ b/lib/vauth/krb5_gssapi.c
@@ -65,7 +65,7 @@ bool Curl_auth_is_gssapi_supported(void)
*
* data [in] - The session handle.
* userp [in] - The user name.
- * passdwp [in] - The user's password.
+ * passwdp [in] - The user's password.
* service [in] - The service type such as http, smtp, pop or imap.
* host [in[ - The host name.
* mutual_auth [in] - Flag specifying whether or not mutual authentication
diff --git a/lib/vauth/krb5_sspi.c b/lib/vauth/krb5_sspi.c
index 9afb971f..cb11ed90 100644
--- a/lib/vauth/krb5_sspi.c
+++ b/lib/vauth/krb5_sspi.c
@@ -71,7 +71,7 @@ bool Curl_auth_is_gssapi_supported(void)
*
* data [in] - The session handle.
* userp [in] - The user name in the format User or Domain\User.
- * passdwp [in] - The user's password.
+ * passwdp [in] - The user's password.
* service [in] - The service type such as http, smtp, pop or imap.
* host [in] - The host name.
* mutual_auth [in] - Flag specifying whether or not mutual authentication
diff --git a/lib/vauth/ntlm.c b/lib/vauth/ntlm.c
index cdb8d8f0..11f42f50 100644
--- a/lib/vauth/ntlm.c
+++ b/lib/vauth/ntlm.c
@@ -354,7 +354,7 @@ static void unicodecpy(unsigned char *dest, const char *src, size_t length)
*
* data [in] - The session handle.
* userp [in] - The user name in the format User or Domain\User.
- * passdwp [in] - The user's password.
+ * passwdp [in] - The user's password.
* service [in] - The service type such as http, smtp, pop or imap.
* host [in] - The host name.
* ntlm [in/out] - The NTLM data struct being used and modified.
@@ -481,7 +481,7 @@ CURLcode Curl_auth_create_ntlm_type1_message(struct Curl_easy *data,
*
* data [in] - The session handle.
* userp [in] - The user name in the format User or Domain\User.
- * passdwp [in] - The user's password.
+ * passwdp [in] - The user's password.
* ntlm [in/out] - The NTLM data struct being used and modified.
* outptr [in/out] - The address where a pointer to newly allocated memory
* holding the result will be stored upon completion.
diff --git a/lib/vauth/ntlm_sspi.c b/lib/vauth/ntlm_sspi.c
index 089c1a6d..b66cfe73 100644
--- a/lib/vauth/ntlm_sspi.c
+++ b/lib/vauth/ntlm_sspi.c
@@ -69,7 +69,7 @@ bool Curl_auth_is_ntlm_supported(void)
*
* data [in] - The session handle.
* userp [in] - The user name in the format User or Domain\User.
- * passdwp [in] - The user's password.
+ * passwdp [in] - The user's password.
* service [in] - The service type such as http, smtp, pop or imap.
* host [in] - The host name.
* ntlm [in/out] - The NTLM data struct being used and modified.
@@ -234,7 +234,7 @@ CURLcode Curl_auth_decode_ntlm_type2_message(struct Curl_easy *data,
*
* data [in] - The session handle.
* userp [in] - The user name in the format User or Domain\User.
- * passdwp [in] - The user's password.
+ * passwdp [in] - The user's password.
* ntlm [in/out] - The NTLM data struct being used and modified.
* outptr [in/out] - The address where a pointer to newly allocated memory
* holding the result will be stored upon completion.
diff --git a/lib/vauth/spnego_gssapi.c b/lib/vauth/spnego_gssapi.c
index 5196c270..4a48bdd2 100644
--- a/lib/vauth/spnego_gssapi.c
+++ b/lib/vauth/spnego_gssapi.c
@@ -64,7 +64,7 @@ bool Curl_auth_is_spnego_supported(void)
*
* data [in] - The session handle.
* userp [in] - The user name in the format User or Domain\User.
- * passdwp [in] - The user's password.
+ * passwdp [in] - The user's password.
* service [in] - The service type such as http, smtp, pop or imap.
* host [in] - The host name.
* chlg64 [in] - The optional base64 encoded challenge message.
diff --git a/lib/vauth/spnego_sspi.c b/lib/vauth/spnego_sspi.c
index 1fe19e3f..77d1895a 100644
--- a/lib/vauth/spnego_sspi.c
+++ b/lib/vauth/spnego_sspi.c
@@ -71,8 +71,8 @@ bool Curl_auth_is_spnego_supported(void)
* Parameters:
*
* data [in] - The session handle.
- * userp [in] - The user name in the format User or Domain\User.
- * passdwp [in] - The user's password.
+ * user [in] - The user name in the format User or Domain\User.
+ * password [in] - The user's password.
* service [in] - The service type such as http, smtp, pop or imap.
* host [in] - The host name.
* chlg64 [in] - The optional base64 encoded challenge message.
diff --git a/lib/vtls/axtls.h b/lib/vtls/axtls.h
index 3f1e129c..cb818727 100644
--- a/lib/vtls/axtls.h
+++ b/lib/vtls/axtls.h
@@ -31,4 +31,3 @@ extern const struct Curl_ssl Curl_ssl_axtls;
#endif /* USE_AXTLS */
#endif /* HEADER_CURL_AXTLS_H */
-
diff --git a/lib/vtls/darwinssl.c b/lib/vtls/darwinssl.c
index 1aea0dc3..e8116b8a 100644
--- a/lib/vtls/darwinssl.c
+++ b/lib/vtls/darwinssl.c
@@ -64,6 +64,7 @@
#define CURL_BUILD_IOS 0
#define CURL_BUILD_IOS_7 0
+#define CURL_BUILD_IOS_9 0
#define CURL_BUILD_IOS_11 0
#define CURL_BUILD_MAC 1
/* This is the maximum API level we are allowed to use when building: */
@@ -72,6 +73,7 @@
#define CURL_BUILD_MAC_10_7 MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
#define CURL_BUILD_MAC_10_8 MAC_OS_X_VERSION_MAX_ALLOWED >= 1080
#define CURL_BUILD_MAC_10_9 MAC_OS_X_VERSION_MAX_ALLOWED >= 1090
+#define CURL_BUILD_MAC_10_11 MAC_OS_X_VERSION_MAX_ALLOWED >= 101100
#define CURL_BUILD_MAC_10_13 MAC_OS_X_VERSION_MAX_ALLOWED >= 101300
/* These macros mean "the following code is present to allow runtime backward
compatibility with at least this cat or earlier":
@@ -86,6 +88,7 @@
#elif TARGET_OS_EMBEDDED || TARGET_OS_IPHONE
#define CURL_BUILD_IOS 1
#define CURL_BUILD_IOS_7 __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000
+#define CURL_BUILD_IOS_9 __IPHONE_OS_VERSION_MAX_ALLOWED >= 90000
#define CURL_BUILD_IOS_11 __IPHONE_OS_VERSION_MAX_ALLOWED >= 110000
#define CURL_BUILD_MAC 0
#define CURL_BUILD_MAC_10_5 0
@@ -93,6 +96,7 @@
#define CURL_BUILD_MAC_10_7 0
#define CURL_BUILD_MAC_10_8 0
#define CURL_BUILD_MAC_10_9 0
+#define CURL_BUILD_MAC_10_11 0
#define CURL_BUILD_MAC_10_13 0
#define CURL_SUPPORT_MAC_10_5 0
#define CURL_SUPPORT_MAC_10_6 0
@@ -116,6 +120,7 @@
#include "vtls.h"
#include "darwinssl.h"
#include "curl_printf.h"
+#include "strdup.h"
#include "curl_memory.h"
/* The last #include file should be: */
@@ -945,7 +950,7 @@ static CURLcode CopyCertSubject(struct Curl_easy *data,
if(!c) {
failf(data, "SSL: invalid CA certificate subject");
- return CURLE_OUT_OF_MEMORY;
+ return CURLE_SSL_CACERT;
}
/* If the subject is already available as UTF-8 encoded (ie 'direct') then
@@ -1299,8 +1304,6 @@ set_ssl_version_min_max(struct connectdata *conn, int sockindex)
switch(ssl_version_max) {
case CURL_SSLVERSION_MAX_NONE:
- ssl_version_max = ssl_version << 16;
- break;
case CURL_SSLVERSION_MAX_DEFAULT:
ssl_version_max = max_supported_version_by_os;
break;
@@ -1646,6 +1649,8 @@ static CURLcode darwinssl_connect_step1(struct connectdata *conn,
}
CFRelease(cert);
+ if(result == CURLE_SSL_CACERT)
+ return CURLE_SSL_CERTPROBLEM;
if(result)
return result;
}
@@ -1781,107 +1786,118 @@ static CURLcode darwinssl_connect_step1(struct connectdata *conn,
higher priority, but it's probably better that we not connect at all than
to give the user a false sense of security if the server only supports
insecure ciphers. (Note: We don't care about SSLv2-only ciphers.) */
- (void)SSLGetNumberSupportedCiphers(BACKEND->ssl_ctx, &all_ciphers_count);
+ err = SSLGetNumberSupportedCiphers(BACKEND->ssl_ctx, &all_ciphers_count);
+ if(err != noErr) {
+ failf(data, "SSL: SSLGetNumberSupportedCiphers() failed: OSStatus %d",
+ err);
+ return CURLE_SSL_CIPHER;
+ }
all_ciphers = malloc(all_ciphers_count*sizeof(SSLCipherSuite));
- allowed_ciphers = malloc(all_ciphers_count*sizeof(SSLCipherSuite));
- if(all_ciphers && allowed_ciphers &&
- SSLGetSupportedCiphers(BACKEND->ssl_ctx, all_ciphers,
- &all_ciphers_count) == noErr) {
- for(i = 0UL ; i < all_ciphers_count ; i++) {
-#if CURL_BUILD_MAC
- /* There's a known bug in early versions of Mountain Lion where ST's ECC
- ciphers (cipher suite 0xC001 through 0xC032) simply do not work.
- Work around the problem here by disabling those ciphers if we are
- running in an affected version of OS X. */
- if(darwinver_maj == 12 && darwinver_min <= 3 &&
- all_ciphers[i] >= 0xC001 && all_ciphers[i] <= 0xC032) {
- continue;
- }
-#endif /* CURL_BUILD_MAC */
- switch(all_ciphers[i]) {
- /* Disable NULL ciphersuites: */
- case SSL_NULL_WITH_NULL_NULL:
- case SSL_RSA_WITH_NULL_MD5:
- case SSL_RSA_WITH_NULL_SHA:
- case 0x003B: /* TLS_RSA_WITH_NULL_SHA256 */
- case SSL_FORTEZZA_DMS_WITH_NULL_SHA:
- case 0xC001: /* TLS_ECDH_ECDSA_WITH_NULL_SHA */
- case 0xC006: /* TLS_ECDHE_ECDSA_WITH_NULL_SHA */
- case 0xC00B: /* TLS_ECDH_RSA_WITH_NULL_SHA */
- case 0xC010: /* TLS_ECDHE_RSA_WITH_NULL_SHA */
- case 0x002C: /* TLS_PSK_WITH_NULL_SHA */
- case 0x002D: /* TLS_DHE_PSK_WITH_NULL_SHA */
- case 0x002E: /* TLS_RSA_PSK_WITH_NULL_SHA */
- case 0x00B0: /* TLS_PSK_WITH_NULL_SHA256 */
- case 0x00B1: /* TLS_PSK_WITH_NULL_SHA384 */
- case 0x00B4: /* TLS_DHE_PSK_WITH_NULL_SHA256 */
- case 0x00B5: /* TLS_DHE_PSK_WITH_NULL_SHA384 */
- case 0x00B8: /* TLS_RSA_PSK_WITH_NULL_SHA256 */
- case 0x00B9: /* TLS_RSA_PSK_WITH_NULL_SHA384 */
- /* Disable anonymous ciphersuites: */
- case SSL_DH_anon_EXPORT_WITH_RC4_40_MD5:
- case SSL_DH_anon_WITH_RC4_128_MD5:
- case SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA:
- case SSL_DH_anon_WITH_DES_CBC_SHA:
- case SSL_DH_anon_WITH_3DES_EDE_CBC_SHA:
- case TLS_DH_anon_WITH_AES_128_CBC_SHA:
- case TLS_DH_anon_WITH_AES_256_CBC_SHA:
- case 0xC015: /* TLS_ECDH_anon_WITH_NULL_SHA */
- case 0xC016: /* TLS_ECDH_anon_WITH_RC4_128_SHA */
- case 0xC017: /* TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA */
- case 0xC018: /* TLS_ECDH_anon_WITH_AES_128_CBC_SHA */
- case 0xC019: /* TLS_ECDH_anon_WITH_AES_256_CBC_SHA */
- case 0x006C: /* TLS_DH_anon_WITH_AES_128_CBC_SHA256 */
- case 0x006D: /* TLS_DH_anon_WITH_AES_256_CBC_SHA256 */
- case 0x00A6: /* TLS_DH_anon_WITH_AES_128_GCM_SHA256 */
- case 0x00A7: /* TLS_DH_anon_WITH_AES_256_GCM_SHA384 */
- /* Disable weak key ciphersuites: */
- case SSL_RSA_EXPORT_WITH_RC4_40_MD5:
- case SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5:
- case SSL_RSA_EXPORT_WITH_DES40_CBC_SHA:
- case SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA:
- case SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA:
- case SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA:
- case SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA:
- case SSL_RSA_WITH_DES_CBC_SHA:
- case SSL_DH_DSS_WITH_DES_CBC_SHA:
- case SSL_DH_RSA_WITH_DES_CBC_SHA:
- case SSL_DHE_DSS_WITH_DES_CBC_SHA:
- case SSL_DHE_RSA_WITH_DES_CBC_SHA:
- /* Disable IDEA: */
- case SSL_RSA_WITH_IDEA_CBC_SHA:
- case SSL_RSA_WITH_IDEA_CBC_MD5:
- /* Disable RC4: */
- case SSL_RSA_WITH_RC4_128_MD5:
- case SSL_RSA_WITH_RC4_128_SHA:
- case 0xC002: /* TLS_ECDH_ECDSA_WITH_RC4_128_SHA */
- case 0xC007: /* TLS_ECDHE_ECDSA_WITH_RC4_128_SHA*/
- case 0xC00C: /* TLS_ECDH_RSA_WITH_RC4_128_SHA */
- case 0xC011: /* TLS_ECDHE_RSA_WITH_RC4_128_SHA */
- case 0x008A: /* TLS_PSK_WITH_RC4_128_SHA */
- case 0x008E: /* TLS_DHE_PSK_WITH_RC4_128_SHA */
- case 0x0092: /* TLS_RSA_PSK_WITH_RC4_128_SHA */
- break;
- default: /* enable everything else */
- allowed_ciphers[allowed_ciphers_count++] = all_ciphers[i];
- break;
- }
- }
- err = SSLSetEnabledCiphers(BACKEND->ssl_ctx, allowed_ciphers,
- allowed_ciphers_count);
- if(err != noErr) {
- failf(data, "SSL: SSLSetEnabledCiphers() failed: OSStatus %d", err);
- return CURLE_SSL_CONNECT_ERROR;
- }
+ if(!all_ciphers) {
+ failf(data, "SSL: Failed to allocate memory for all ciphers");
+ return CURLE_OUT_OF_MEMORY;
}
- else {
+ allowed_ciphers = malloc(all_ciphers_count*sizeof(SSLCipherSuite));
+ if(!allowed_ciphers) {
Curl_safefree(all_ciphers);
- Curl_safefree(allowed_ciphers);
failf(data, "SSL: Failed to allocate memory for allowed ciphers");
return CURLE_OUT_OF_MEMORY;
}
+ err = SSLGetSupportedCiphers(BACKEND->ssl_ctx, all_ciphers,
+ &all_ciphers_count);
+ if(err != noErr) {
+ Curl_safefree(all_ciphers);
+ Curl_safefree(allowed_ciphers);
+ return CURLE_SSL_CIPHER;
+ }
+ for(i = 0UL ; i < all_ciphers_count ; i++) {
+#if CURL_BUILD_MAC
+ /* There's a known bug in early versions of Mountain Lion where ST's ECC
+ ciphers (cipher suite 0xC001 through 0xC032) simply do not work.
+ Work around the problem here by disabling those ciphers if we are
+ running in an affected version of OS X. */
+ if(darwinver_maj == 12 && darwinver_min <= 3 &&
+ all_ciphers[i] >= 0xC001 && all_ciphers[i] <= 0xC032) {
+ continue;
+ }
+#endif /* CURL_BUILD_MAC */
+ switch(all_ciphers[i]) {
+ /* Disable NULL ciphersuites: */
+ case SSL_NULL_WITH_NULL_NULL:
+ case SSL_RSA_WITH_NULL_MD5:
+ case SSL_RSA_WITH_NULL_SHA:
+ case 0x003B: /* TLS_RSA_WITH_NULL_SHA256 */
+ case SSL_FORTEZZA_DMS_WITH_NULL_SHA:
+ case 0xC001: /* TLS_ECDH_ECDSA_WITH_NULL_SHA */
+ case 0xC006: /* TLS_ECDHE_ECDSA_WITH_NULL_SHA */
+ case 0xC00B: /* TLS_ECDH_RSA_WITH_NULL_SHA */
+ case 0xC010: /* TLS_ECDHE_RSA_WITH_NULL_SHA */
+ case 0x002C: /* TLS_PSK_WITH_NULL_SHA */
+ case 0x002D: /* TLS_DHE_PSK_WITH_NULL_SHA */
+ case 0x002E: /* TLS_RSA_PSK_WITH_NULL_SHA */
+ case 0x00B0: /* TLS_PSK_WITH_NULL_SHA256 */
+ case 0x00B1: /* TLS_PSK_WITH_NULL_SHA384 */
+ case 0x00B4: /* TLS_DHE_PSK_WITH_NULL_SHA256 */
+ case 0x00B5: /* TLS_DHE_PSK_WITH_NULL_SHA384 */
+ case 0x00B8: /* TLS_RSA_PSK_WITH_NULL_SHA256 */
+ case 0x00B9: /* TLS_RSA_PSK_WITH_NULL_SHA384 */
+ /* Disable anonymous ciphersuites: */
+ case SSL_DH_anon_EXPORT_WITH_RC4_40_MD5:
+ case SSL_DH_anon_WITH_RC4_128_MD5:
+ case SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA:
+ case SSL_DH_anon_WITH_DES_CBC_SHA:
+ case SSL_DH_anon_WITH_3DES_EDE_CBC_SHA:
+ case TLS_DH_anon_WITH_AES_128_CBC_SHA:
+ case TLS_DH_anon_WITH_AES_256_CBC_SHA:
+ case 0xC015: /* TLS_ECDH_anon_WITH_NULL_SHA */
+ case 0xC016: /* TLS_ECDH_anon_WITH_RC4_128_SHA */
+ case 0xC017: /* TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA */
+ case 0xC018: /* TLS_ECDH_anon_WITH_AES_128_CBC_SHA */
+ case 0xC019: /* TLS_ECDH_anon_WITH_AES_256_CBC_SHA */
+ case 0x006C: /* TLS_DH_anon_WITH_AES_128_CBC_SHA256 */
+ case 0x006D: /* TLS_DH_anon_WITH_AES_256_CBC_SHA256 */
+ case 0x00A6: /* TLS_DH_anon_WITH_AES_128_GCM_SHA256 */
+ case 0x00A7: /* TLS_DH_anon_WITH_AES_256_GCM_SHA384 */
+ /* Disable weak key ciphersuites: */
+ case SSL_RSA_EXPORT_WITH_RC4_40_MD5:
+ case SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5:
+ case SSL_RSA_EXPORT_WITH_DES40_CBC_SHA:
+ case SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA:
+ case SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA:
+ case SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA:
+ case SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA:
+ case SSL_RSA_WITH_DES_CBC_SHA:
+ case SSL_DH_DSS_WITH_DES_CBC_SHA:
+ case SSL_DH_RSA_WITH_DES_CBC_SHA:
+ case SSL_DHE_DSS_WITH_DES_CBC_SHA:
+ case SSL_DHE_RSA_WITH_DES_CBC_SHA:
+ /* Disable IDEA: */
+ case SSL_RSA_WITH_IDEA_CBC_SHA:
+ case SSL_RSA_WITH_IDEA_CBC_MD5:
+ /* Disable RC4: */
+ case SSL_RSA_WITH_RC4_128_MD5:
+ case SSL_RSA_WITH_RC4_128_SHA:
+ case 0xC002: /* TLS_ECDH_ECDSA_WITH_RC4_128_SHA */
+ case 0xC007: /* TLS_ECDHE_ECDSA_WITH_RC4_128_SHA*/
+ case 0xC00C: /* TLS_ECDH_RSA_WITH_RC4_128_SHA */
+ case 0xC011: /* TLS_ECDHE_RSA_WITH_RC4_128_SHA */
+ case 0x008A: /* TLS_PSK_WITH_RC4_128_SHA */
+ case 0x008E: /* TLS_DHE_PSK_WITH_RC4_128_SHA */
+ case 0x0092: /* TLS_RSA_PSK_WITH_RC4_128_SHA */
+ break;
+ default: /* enable everything else */
+ allowed_ciphers[allowed_ciphers_count++] = all_ciphers[i];
+ break;
+ }
+ }
+ err = SSLSetEnabledCiphers(BACKEND->ssl_ctx, allowed_ciphers,
+ allowed_ciphers_count);
Curl_safefree(all_ciphers);
Curl_safefree(allowed_ciphers);
+ if(err != noErr) {
+ failf(data, "SSL: SSLSetEnabledCiphers() failed: OSStatus %d", err);
+ return CURLE_SSL_CIPHER;
+ }
#if CURL_BUILD_MAC_10_9 || CURL_BUILD_IOS_7
/* We want to enable 1/n-1 when using a CBC cipher unless the user
@@ -2039,7 +2055,7 @@ static int read_cert(const char *file, unsigned char **out, size_t *outlen)
if(len + n >= cap) {
cap *= 2;
- data = realloc(data, cap);
+ data = Curl_saferealloc(data, cap);
if(!data) {
close(fd);
return -1;
@@ -2057,35 +2073,6 @@ static int read_cert(const char *file, unsigned char **out, size_t *outlen)
return 0;
}
-static int sslerr_to_curlerr(struct Curl_easy *data, int err)
-{
- switch(err) {
- case errSSLXCertChainInvalid:
- failf(data, "SSL certificate problem: Invalid certificate chain");
- return CURLE_SSL_CACERT;
- case errSSLUnknownRootCert:
- failf(data, "SSL certificate problem: Untrusted root certificate");
- return CURLE_SSL_CACERT;
- case errSSLNoRootCert:
- failf(data, "SSL certificate problem: No root certificate");
- return CURLE_SSL_CACERT;
- case errSSLCertExpired:
- failf(data, "SSL certificate problem: Certificate chain had an "
- "expired certificate");
- return CURLE_SSL_CACERT;
- case errSSLBadCert:
- failf(data, "SSL certificate problem: Couldn't understand the server "
- "certificate format");
- return CURLE_SSL_CONNECT_ERROR;
- case errSSLHostNameMismatch:
- failf(data, "SSL certificate peer hostname mismatch");
- return CURLE_PEER_FAILED_VERIFICATION;
- default:
- failf(data, "SSL unexpected certificate error %d", err);
- return CURLE_SSL_CACERT;
- }
-}
-
static int append_cert_to_array(struct Curl_easy *data,
unsigned char *buf, size_t buflen,
CFMutableArrayRef array)
@@ -2103,13 +2090,20 @@ static int append_cert_to_array(struct Curl_easy *data,
CFRelease(certdata);
if(!cacert) {
failf(data, "SSL: failed to create SecCertificate from CA certificate");
- return CURLE_SSL_CACERT;
+ return CURLE_SSL_CACERT_BADFILE;
}
/* Check if cacert is valid. */
result = CopyCertSubject(data, cacert, &certp);
- if(result)
- return result;
+ switch(result) {
+ case CURLE_OK:
+ break;
+ case CURLE_PEER_FAILED_VERIFICATION:
+ return CURLE_SSL_CACERT_BADFILE;
+ case CURLE_OUT_OF_MEMORY:
+ default:
+ return result;
+ }
free(certp);
CFArrayAppendValue(array, cacert);
@@ -2128,7 +2122,7 @@ static int verify_cert(const char *cafile, struct Curl_easy *data,
if(read_cert(cafile, &certbuf, &buflen) < 0) {
failf(data, "SSL: failed to read or invalid CA certificate");
- return CURLE_SSL_CACERT;
+ return CURLE_SSL_CACERT_BADFILE;
}
/*
@@ -2161,7 +2155,7 @@ static int verify_cert(const char *cafile, struct Curl_easy *data,
CFRelease(array);
failf(data, "SSL: invalid CA certificate #%d (offset %d) in bundle",
n, offset);
- return CURLE_SSL_CACERT;
+ return CURLE_SSL_CACERT_BADFILE;
}
offset += res;
@@ -2195,22 +2189,27 @@ static int verify_cert(const char *cafile, struct Curl_easy *data,
if(trust == NULL) {
failf(data, "SSL: error getting certificate chain");
CFRelease(array);
- return CURLE_OUT_OF_MEMORY;
+ return CURLE_PEER_FAILED_VERIFICATION;
}
else if(ret != noErr) {
CFRelease(array);
- return sslerr_to_curlerr(data, ret);
+ failf(data, "SSLCopyPeerTrust() returned error %d", ret);
+ return CURLE_PEER_FAILED_VERIFICATION;
}
ret = SecTrustSetAnchorCertificates(trust, array);
if(ret != noErr) {
+ CFRelease(array);
CFRelease(trust);
- return sslerr_to_curlerr(data, ret);
+ failf(data, "SecTrustSetAnchorCertificates() returned error %d", ret);
+ return CURLE_PEER_FAILED_VERIFICATION;
}
ret = SecTrustSetAnchorCertificatesOnly(trust, true);
if(ret != noErr) {
+ CFRelease(array);
CFRelease(trust);
- return sslerr_to_curlerr(data, ret);
+ failf(data, "SecTrustSetAnchorCertificatesOnly() returned error %d", ret);
+ return CURLE_PEER_FAILED_VERIFICATION;
}
SecTrustResultType trust_eval = 0;
@@ -2218,7 +2217,8 @@ static int verify_cert(const char *cafile, struct Curl_easy *data,
CFRelease(array);
CFRelease(trust);
if(ret != noErr) {
- return sslerr_to_curlerr(data, ret);
+ failf(data, "SecTrustEvaluate() returned error %d", ret);
+ return CURLE_PEER_FAILED_VERIFICATION;
}
switch(trust_eval) {
@@ -2379,6 +2379,53 @@ darwinssl_connect_step2(struct connectdata *conn, int sockindex)
/* the documentation says we need to call SSLHandshake() again */
return darwinssl_connect_step2(conn, sockindex);
+ /* Problem with encrypt / decrypt */
+ case errSSLPeerDecodeError:
+ failf(data, "Decode failed");
+ break;
+ case errSSLDecryptionFail:
+ case errSSLPeerDecryptionFail:
+ failf(data, "Decryption failed");
+ break;
+ case errSSLPeerDecryptError:
+ failf(data, "A decryption error occurred");
+ break;
+ case errSSLBadCipherSuite:
+ failf(data, "A bad SSL cipher suite was encountered");
+ break;
+ case errSSLCrypto:
+ failf(data, "An underlying cryptographic error was encountered");
+ break;
+#if CURL_BUILD_MAC_10_11 || CURL_BUILD_IOS_9
+ case errSSLWeakPeerEphemeralDHKey:
+ failf(data, "Indicates a weak ephemeral Diffie-Hellman key");
+ break;
+#endif
+
+ /* Problem with the message record validation */
+ case errSSLBadRecordMac:
+ case errSSLPeerBadRecordMac:
+ failf(data, "A record with a bad message authentication code (MAC) "
+ "was encountered");
+ break;
+ case errSSLRecordOverflow:
+ case errSSLPeerRecordOverflow:
+ failf(data, "A record overflow occurred");
+ break;
+
+ /* Problem with zlib decompression */
+ case errSSLPeerDecompressFail:
+ failf(data, "Decompression failed");
+ break;
+
+ /* Problem with access */
+ case errSSLPeerAccessDenied:
+ failf(data, "Access was denied");
+ break;
+ case errSSLPeerInsufficientSecurity:
+ failf(data, "There is insufficient security for this operation");
+ break;
+
/* These are all certificate problems with the server: */
case errSSLXCertChainInvalid:
failf(data, "SSL certificate problem: Invalid certificate chain");
@@ -2389,28 +2436,44 @@ darwinssl_connect_step2(struct connectdata *conn, int sockindex)
case errSSLNoRootCert:
failf(data, "SSL certificate problem: No root certificate");
return CURLE_SSL_CACERT;
+ case errSSLCertNotYetValid:
+ failf(data, "SSL certificate problem: The certificate chain had a "
+ "certificate that is not yet valid");
+ return CURLE_SSL_CACERT;
case errSSLCertExpired:
+ case errSSLPeerCertExpired:
failf(data, "SSL certificate problem: Certificate chain had an "
"expired certificate");
return CURLE_SSL_CACERT;
case errSSLBadCert:
+ case errSSLPeerBadCert:
failf(data, "SSL certificate problem: Couldn't understand the server "
"certificate format");
- return CURLE_SSL_CONNECT_ERROR;
+ return CURLE_SSL_CACERT;
+ case errSSLPeerUnsupportedCert:
+ failf(data, "SSL certificate problem: An unsupported certificate "
+ "format was encountered");
+ return CURLE_SSL_CACERT;
+ case errSSLPeerCertRevoked:
+ failf(data, "SSL certificate problem: The certificate was revoked");
+ return CURLE_SSL_CACERT;
+ case errSSLPeerCertUnknown:
+ failf(data, "SSL certificate problem: The certificate is unknown");
+ return CURLE_SSL_CACERT;
/* These are all certificate problems with the client: */
case errSecAuthFailed:
failf(data, "SSL authentication failed");
- return CURLE_SSL_CONNECT_ERROR;
+ break;
case errSSLPeerHandshakeFail:
failf(data, "SSL peer handshake failed, the server most likely "
"requires a client certificate to connect");
- return CURLE_SSL_CONNECT_ERROR;
+ break;
case errSSLPeerUnknownCA:
failf(data, "SSL server rejected the client certificate due to "
"the certificate being signed by an unknown certificate "
"authority");
- return CURLE_SSL_CONNECT_ERROR;
+ break;
/* This error is raised if the server's cert didn't match the server's
host name: */
@@ -2419,30 +2482,98 @@ darwinssl_connect_step2(struct connectdata *conn, int sockindex)
"certificate did not match \"%s\"\n", conn->host.dispname);
return CURLE_PEER_FAILED_VERIFICATION;
+ /* Problem with SSL / TLS negotiation */
+ case errSSLNegotiation:
+ failf(data, "Could not negotiate an SSL cipher suite with the server");
+ break;
+ case errSSLBadConfiguration:
+ failf(data, "A configuration error occurred");
+ break;
+ case errSSLProtocol:
+ failf(data, "SSL protocol error");
+ break;
+ case errSSLPeerProtocolVersion:
+ failf(data, "A bad protocol version was encountered");
+ break;
+ case errSSLPeerNoRenegotiation:
+ failf(data, "No renegotiation is allowed");
+ break;
+
/* Generic handshake errors: */
case errSSLConnectionRefused:
failf(data, "Server dropped the connection during the SSL handshake");
- return CURLE_SSL_CONNECT_ERROR;
+ break;
case errSSLClosedAbort:
failf(data, "Server aborted the SSL handshake");
- return CURLE_SSL_CONNECT_ERROR;
- case errSSLNegotiation:
- failf(data, "Could not negotiate an SSL cipher suite with the server");
- return CURLE_SSL_CONNECT_ERROR;
+ break;
+ case errSSLClosedGraceful:
+ failf(data, "The connection closed gracefully");
+ break;
+ case errSSLClosedNoNotify:
+ failf(data, "The server closed the session with no notification");
+ break;
/* Sometimes paramErr happens with buggy ciphers: */
- case paramErr: case errSSLInternal:
+ case paramErr:
+ case errSSLInternal:
+ case errSSLPeerInternalError:
failf(data, "Internal SSL engine error encountered during the "
"SSL handshake");
- return CURLE_SSL_CONNECT_ERROR;
+ break;
case errSSLFatalAlert:
failf(data, "Fatal SSL engine error encountered during the SSL "
"handshake");
- return CURLE_SSL_CONNECT_ERROR;
+ break;
+ /* Unclassified error */
+ case errSSLBufferOverflow:
+ failf(data, "An insufficient buffer was provided");
+ break;
+ case errSSLIllegalParam:
+ failf(data, "An illegal parameter was encountered");
+ break;
+ case errSSLModuleAttach:
+ failf(data, "Module attach failure");
+ break;
+ case errSSLSessionNotFound:
+ failf(data, "An attempt to restore an unknown session failed");
+ break;
+ case errSSLPeerExportRestriction:
+ failf(data, "An export restriction occurred");
+ break;
+ case errSSLPeerUserCancelled:
+ failf(data, "The user canceled the operation");
+ break;
+ case errSSLPeerUnexpectedMsg:
+ failf(data, "Peer rejected unexpected message");
+ break;
+#if CURL_BUILD_MAC_10_11 || CURL_BUILD_IOS_9
+ /* Treaing non-fatal error as fatal like before */
+ case errSSLClientHelloReceived:
+ failf(data, "A non-fatal result for providing a server name "
+ "indication");
+ break;
+#endif
+
+ /* Error codes defined in the enum but should never be returned.
+ We list them here just in case. */
+#if CURL_BUILD_MAC_10_6
+ /* Only returned when kSSLSessionOptionBreakOnCertRequested is set */
+ case errSSLClientCertRequested:
+ failf(data, "The server has requested a client certificate");
+ break;
+#endif
+#if CURL_BUILD_MAC_10_9
+ /* Alias for errSSLLast, end of error range */
+ case errSSLUnexpectedRecord:
+ failf(data, "Unexpected (skipped) record in DTLS");
+ break;
+#endif
default:
+ /* May also return codes listed in Security Framework Result Codes */
failf(data, "Unknown SSL protocol error in connection to %s:%d",
hostname, err);
- return CURLE_SSL_CONNECT_ERROR;
+ break;
}
+ return CURLE_SSL_CONNECT_ERROR;
}
else {
/* we have been connected fine, we're not waiting for anything else. */
diff --git a/lib/vtls/gskit.c b/lib/vtls/gskit.c
index a0b49601..8d1b3d6a 100644
--- a/lib/vtls/gskit.c
+++ b/lib/vtls/gskit.c
@@ -766,8 +766,6 @@ set_ssl_version_min_max(unsigned int *protoflags, struct connectdata *conn)
long i = ssl_version;
switch(ssl_version_max) {
case CURL_SSLVERSION_MAX_NONE:
- ssl_version_max = ssl_version;
- break;
case CURL_SSLVERSION_MAX_DEFAULT:
ssl_version_max = CURL_SSLVERSION_TLSv1_2;
break;
@@ -1316,8 +1314,7 @@ static int Curl_gskit_shutdown(struct connectdata *conn, int sockindex)
static size_t Curl_gskit_version(char *buffer, size_t size)
{
- strncpy(buffer, "GSKit", size);
- return strlen(buffer);
+ return snprintf(buffer, size, "GSKit");
}
diff --git a/lib/vtls/gtls.c b/lib/vtls/gtls.c
index 207b0fd1..37662a74 100644
--- a/lib/vtls/gtls.c
+++ b/lib/vtls/gtls.c
@@ -94,6 +94,10 @@ static bool gtls_inited = FALSE;
# endif
#endif
+#if (GNUTLS_VERSION_NUMBER >= 0x030603)
+#define HAS_TLS13
+#endif
+
#ifdef HAS_OCSP
# include <gnutls/ocsp.h>
#endif
@@ -390,9 +394,10 @@ set_ssl_version_min_max(int *list, size_t list_size, struct connectdata *conn)
switch(ssl_version_max) {
case CURL_SSLVERSION_MAX_NONE:
- ssl_version_max = ssl_version << 16;
- break;
case CURL_SSLVERSION_MAX_DEFAULT:
+#ifdef HAS_TLS13
+ ssl_version_max = CURL_SSLVERSION_MAX_TLSv1_3;
+#endif
ssl_version_max = CURL_SSLVERSION_MAX_TLSv1_2;
break;
}
@@ -410,8 +415,13 @@ set_ssl_version_min_max(int *list, size_t list_size, struct connectdata *conn)
protocol_priority[protocol_priority_idx++] = GNUTLS_TLS1_2;
break;
case CURL_SSLVERSION_TLSv1_3:
+#ifdef HAS_TLS13
+ protocol_priority[protocol_priority_idx++] = GNUTLS_TLS1_3;
+ break;
+#else
failf(data, "GnuTLS: TLS 1.3 is not yet supported");
return CURLE_SSL_CONNECT_ERROR;
+#endif
}
}
return CURLE_OK;
@@ -429,13 +439,9 @@ set_ssl_version_min_max(const char **prioritylist, struct connectdata *conn)
struct Curl_easy *data = conn->data;
long ssl_version = SSL_CONN_CONFIG(version);
long ssl_version_max = SSL_CONN_CONFIG(version_max);
- if(ssl_version == CURL_SSLVERSION_TLSv1_3 ||
- ssl_version_max == CURL_SSLVERSION_MAX_TLSv1_3) {
- failf(data, "GnuTLS: TLS 1.3 is not yet supported");
- return CURLE_SSL_CONNECT_ERROR;
- }
+
if(ssl_version_max == CURL_SSLVERSION_MAX_NONE) {
- ssl_version_max = ssl_version << 16;
+ ssl_version_max = CURL_SSLVERSION_MAX_DEFAULT;
}
switch(ssl_version | ssl_version_max) {
case CURL_SSLVERSION_TLSv1_0 | CURL_SSLVERSION_MAX_TLSv1_0:
@@ -447,7 +453,6 @@ set_ssl_version_min_max(const char **prioritylist, struct connectdata *conn)
"+VERS-TLS1.0:+VERS-TLS1.1:" GNUTLS_SRP;
return CURLE_OK;
case CURL_SSLVERSION_TLSv1_0 | CURL_SSLVERSION_MAX_TLSv1_2:
- case CURL_SSLVERSION_TLSv1_0 | CURL_SSLVERSION_MAX_DEFAULT:
*prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
"+VERS-TLS1.0:+VERS-TLS1.1:+VERS-TLS1.2:" GNUTLS_SRP;
return CURLE_OK;
@@ -456,15 +461,54 @@ set_ssl_version_min_max(const char **prioritylist, struct connectdata *conn)
"+VERS-TLS1.1:" GNUTLS_SRP;
return CURLE_OK;
case CURL_SSLVERSION_TLSv1_1 | CURL_SSLVERSION_MAX_TLSv1_2:
- case CURL_SSLVERSION_TLSv1_1 | CURL_SSLVERSION_MAX_DEFAULT:
*prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
"+VERS-TLS1.1:+VERS-TLS1.2:" GNUTLS_SRP;
return CURLE_OK;
case CURL_SSLVERSION_TLSv1_2 | CURL_SSLVERSION_MAX_TLSv1_2:
- case CURL_SSLVERSION_TLSv1_2 | CURL_SSLVERSION_MAX_DEFAULT:
*prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
"+VERS-TLS1.2:" GNUTLS_SRP;
return CURLE_OK;
+ case CURL_SSLVERSION_TLSv1_3 | CURL_SSLVERSION_MAX_TLSv1_3:
+#ifdef HAS_TLS13
+ *prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
+ "+VERS-TLS1.3:" GNUTLS_SRP;
+ return CURLE_OK;
+#else
+ failf(data, "GnuTLS: TLS 1.3 is not yet supported");
+ return CURLE_SSL_CONNECT_ERROR;
+#endif
+ case CURL_SSLVERSION_TLSv1_0 | CURL_SSLVERSION_MAX_DEFAULT:
+ *prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
+ "+VERS-TLS1.0:+VERS-TLS1.1:+VERS-TLS1.2:"
+#ifdef HAS_TLS13
+ "+VERS-TLS1.3:"
+#endif
+ GNUTLS_SRP;
+ return CURLE_OK;
+ case CURL_SSLVERSION_TLSv1_1 | CURL_SSLVERSION_MAX_DEFAULT:
+ *prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
+ "+VERS-TLS1.1:+VERS-TLS1.2:"
+#ifdef HAS_TLS13
+ "+VERS-TLS1.3:"
+#endif
+ GNUTLS_SRP;
+ return CURLE_OK;
+ case CURL_SSLVERSION_TLSv1_2 | CURL_SSLVERSION_MAX_DEFAULT:
+ *prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
+ "+VERS-TLS1.2:"
+#ifdef HAS_TLS13
+ "+VERS-TLS1.3:"
+#endif
+ GNUTLS_SRP;
+ return CURLE_OK;
+ case CURL_SSLVERSION_TLSv1_3 | CURL_SSLVERSION_MAX_DEFAULT:
+ *prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
+ "+VERS-TLS1.2:"
+#ifdef HAS_TLS13
+ "+VERS-TLS1.3:"
+#endif
+ GNUTLS_SRP;
+ return CURLE_OK;
}
failf(data, "GnuTLS: cannot set ssl protocol");
@@ -677,6 +721,9 @@ gtls_connect_step1(struct connectdata *conn,
protocol_priority[0] = GNUTLS_TLS1_0;
protocol_priority[1] = GNUTLS_TLS1_1;
protocol_priority[2] = GNUTLS_TLS1_2;
+#ifdef HAS_TLS13
+ protocol_priority[3] = GNUTLS_TLS1_3;
+#endif
break;
case CURL_SSLVERSION_TLSv1_0:
case CURL_SSLVERSION_TLSv1_1:
@@ -709,11 +756,14 @@ gtls_connect_step1(struct connectdata *conn,
switch(SSL_CONN_CONFIG(version)) {
case CURL_SSLVERSION_SSLv3:
prioritylist = GNUTLS_CIPHERS ":-VERS-TLS-ALL:+VERS-SSL3.0";
- sni = false;
break;
case CURL_SSLVERSION_DEFAULT:
case CURL_SSLVERSION_TLSv1:
- prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:" GNUTLS_SRP;
+ prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:"
+#ifdef HAS_TLS13
+ "+VERS-TLS1.3:"
+#endif
+ GNUTLS_SRP;
break;
case CURL_SSLVERSION_TLSv1_0:
case CURL_SSLVERSION_TLSv1_1:
@@ -1102,8 +1152,8 @@ gtls_connect_step3(struct connectdata *conn,
return CURLE_SSL_INVALIDCERTSTATUS;
}
- rc = gnutls_ocsp_resp_get_single(ocsp_resp, 0, NULL, NULL, NULL, NULL,
- &status, NULL, NULL, NULL, &reason);
+ (void)gnutls_ocsp_resp_get_single(ocsp_resp, 0, NULL, NULL, NULL, NULL,
+ &status, NULL, NULL, NULL, &reason);
switch(status) {
case GNUTLS_OCSP_CERT_GOOD:
@@ -1589,7 +1639,7 @@ static int Curl_gtls_shutdown(struct connectdata *conn, int sockindex)
ssize_t result;
int retval = 0;
struct Curl_easy *data = conn->data;
- int done = 0;
+ bool done = FALSE;
char buf[120];
/* This has only been tested on the proftpd server, and the mod_tls code
@@ -1613,7 +1663,7 @@ static int Curl_gtls_shutdown(struct connectdata *conn, int sockindex)
case 0:
/* This is the expected response. There was no data but only
the close notify alert */
- done = 1;
+ done = TRUE;
break;
case GNUTLS_E_AGAIN:
case GNUTLS_E_INTERRUPTED:
@@ -1621,21 +1671,20 @@ static int Curl_gtls_shutdown(struct connectdata *conn, int sockindex)
break;
default:
retval = -1;
- done = 1;
+ done = TRUE;
break;
}
}
else if(0 == what) {
/* timeout */
failf(data, "SSL shutdown timeout");
- done = 1;
- break;
+ done = TRUE;
}
else {
/* anything that gets here is fatally bad */
failf(data, "select/poll on SSL socket, errno: %d", SOCKERRNO);
retval = -1;
- done = 1;
+ done = TRUE;
}
}
gnutls_deinit(BACKEND->session);
diff --git a/lib/vtls/mbedtls.c b/lib/vtls/mbedtls.c
index d7759dc8..c5ed8872 100644
--- a/lib/vtls/mbedtls.c
+++ b/lib/vtls/mbedtls.c
@@ -205,14 +205,11 @@ set_ssl_version_min_max(struct connectdata *conn, int sockindex)
case CURL_SSLVERSION_DEFAULT:
case CURL_SSLVERSION_TLSv1:
ssl_version = CURL_SSLVERSION_TLSv1_0;
- ssl_version_max = CURL_SSLVERSION_MAX_TLSv1_2;
break;
}
switch(ssl_version_max) {
case CURL_SSLVERSION_MAX_NONE:
- ssl_version_max = ssl_version << 16;
- break;
case CURL_SSLVERSION_MAX_DEFAULT:
ssl_version_max = CURL_SSLVERSION_MAX_TLSv1_2;
break;
diff --git a/lib/vtls/mesalink.c b/lib/vtls/mesalink.c
new file mode 100644
index 00000000..6a2b67e6
--- /dev/null
+++ b/lib/vtls/mesalink.c
@@ -0,0 +1,627 @@
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 2017-2018, Yiming Jing, <jingyiming@baidu.com>
+ * Copyright (C) 1998 - 2017, 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 https://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.
+ *
+ ***************************************************************************/
+
+/*
+ * Source file for all MesaLink-specific code for the TLS/SSL layer. No code
+ * but vtls.c should ever call or use these functions.
+ *
+ */
+
+/*
+ * Based upon the CyaSSL implementation in cyassl.c and cyassl.h:
+ * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * Thanks for code and inspiration!
+ */
+
+#include "curl_setup.h"
+
+#ifdef USE_MESALINK
+
+#include <mesalink/options.h>
+#include <mesalink/version.h>
+
+#include "urldata.h"
+#include "sendf.h"
+#include "inet_pton.h"
+#include "vtls.h"
+#include "parsedate.h"
+#include "connect.h" /* for the connect timeout */
+#include "select.h"
+#include "strcase.h"
+#include "x509asn1.h"
+#include "curl_printf.h"
+
+#include "mesalink.h"
+#include <mesalink/openssl/ssl.h>
+#include <mesalink/openssl/err.h>
+
+/* The last #include files should be: */
+#include "curl_memory.h"
+#include "memdebug.h"
+
+#define MESALINK_MAX_ERROR_SZ 80
+
+struct ssl_backend_data
+{
+ SSL_CTX *ctx;
+ SSL *handle;
+};
+
+#define BACKEND connssl->backend
+
+static Curl_recv mesalink_recv;
+static Curl_send mesalink_send;
+
+/*
+ * This function loads all the client/CA certificates and CRLs. Setup the TLS
+ * layer and do all necessary magic.
+ */
+static CURLcode
+mesalink_connect_step1(struct connectdata *conn, int sockindex)
+{
+ char *ciphers;
+ struct Curl_easy *data = conn->data;
+ struct ssl_connect_data *connssl = &conn->ssl[sockindex];
+ const bool verifypeer = SSL_CONN_CONFIG(verifypeer);
+ const char *const ssl_cafile = SSL_CONN_CONFIG(CAfile);
+ const char *const ssl_capath = SSL_CONN_CONFIG(CApath);
+ struct in_addr addr4;
+#ifdef ENABLE_IPV6
+ struct in6_addr addr6;
+#endif
+ const char *const hostname =
+ SSL_IS_PROXY() ? conn->http_proxy.host.name : conn->host.name;
+ size_t hostname_len = strlen(hostname);
+
+ SSL_METHOD *req_method = NULL;
+ curl_socket_t sockfd = conn->sock[sockindex];
+
+ if(connssl->state == ssl_connection_complete)
+ return CURLE_OK;
+
+ if(SSL_CONN_CONFIG(version_max) != CURL_SSLVERSION_MAX_NONE) {
+ failf(data, "MesaLink does not support to set maximum SSL/TLS version");
+ return CURLE_SSL_CONNECT_ERROR;
+ }
+
+ switch(SSL_CONN_CONFIG(version)) {
+ case CURL_SSLVERSION_SSLv3:
+ case CURL_SSLVERSION_TLSv1:
+ case CURL_SSLVERSION_TLSv1_0:
+ case CURL_SSLVERSION_TLSv1_1:
+ failf(data, "MesaLink does not support SSL 3.0, TLS 1.0, or TLS 1.1");
+ return CURLE_NOT_BUILT_IN;
+ case CURL_SSLVERSION_DEFAULT:
+ case CURL_SSLVERSION_TLSv1_2:
+ req_method = TLSv1_2_client_method();
+ break;
+ case CURL_SSLVERSION_TLSv1_3:
+ req_method = TLSv1_3_client_method();
+ break;
+ case CURL_SSLVERSION_SSLv2:
+ failf(data, "MesaLink does not support SSLv2");
+ return CURLE_SSL_CONNECT_ERROR;
+ default:
+ failf(data, "Unrecognized parameter passed via CURLOPT_SSLVERSION");
+ return CURLE_SSL_CONNECT_ERROR;
+ }
+
+ if(!req_method) {
+ failf(data, "SSL: couldn't create a method!");
+ return CURLE_OUT_OF_MEMORY;
+ }
+
+ if(BACKEND->ctx)
+ SSL_CTX_free(BACKEND->ctx);
+ BACKEND->ctx = SSL_CTX_new(req_method);
+
+ if(!BACKEND->ctx) {
+ failf(data, "SSL: couldn't create a context!");
+ return CURLE_OUT_OF_MEMORY;
+ }
+
+ SSL_CTX_set_verify(
+ BACKEND->ctx, verifypeer ? SSL_VERIFY_PEER : SSL_VERIFY_NONE, NULL);
+
+ if(ssl_cafile || ssl_capath) {
+ if(!SSL_CTX_load_verify_locations(BACKEND->ctx, ssl_cafile, ssl_capath)) {
+ if(verifypeer) {
+ failf(data,
+ "error setting certificate verify locations:\n"
+ " CAfile: %s\n CApath: %s",
+ ssl_cafile ? ssl_cafile : "none",
+ ssl_capath ? ssl_capath : "none");
+ return CURLE_SSL_CACERT_BADFILE;
+ }
+ infof(data,
+ "error setting certificate verify locations,"
+ " continuing anyway:\n");
+ }
+ else {
+ infof(data, "successfully set certificate verify locations:\n");
+ }
+ infof(data,
+ " CAfile: %s\n"
+ " CApath: %s\n",
+ ssl_cafile ? ssl_cafile : "none",
+ ssl_capath ? ssl_capath : "none");
+ }
+
+ ciphers = SSL_CONN_CONFIG(cipher_list);
+ if(ciphers) {
+#ifdef MESALINK_HAVE_CIPHER
+ if(!SSL_CTX_set_cipher_list(BACKEND->ctx, ciphers)) {
+ failf(data, "failed setting cipher list: %s", ciphers);
+ return CURLE_SSL_CIPHER;
+ }
+#endif
+ infof(data, "Cipher selection: %s\n", ciphers);
+ }
+
+ if(BACKEND->handle)
+ SSL_free(BACKEND->handle);
+ BACKEND->handle = SSL_new(BACKEND->ctx);
+ if(!BACKEND->handle) {
+ failf(data, "SSL: couldn't create a context (handle)!");
+ return CURLE_OUT_OF_MEMORY;
+ }
+
+ if((hostname_len < USHRT_MAX) &&
+ (0 == Curl_inet_pton(AF_INET, hostname, &addr4))
+#ifdef ENABLE_IPV6
+ && (0 == Curl_inet_pton(AF_INET6, hostname, &addr6))
+#endif
+ ) {
+ /* hostname is not a valid IP address */
+ if(SSL_set_tlsext_host_name(BACKEND->handle, hostname) != SSL_SUCCESS) {
+ failf(data,
+ "WARNING: failed to configure server name indication (SNI) "
+ "TLS extension\n");
+ return CURLE_SSL_CONNECT_ERROR;
+ }
+ }
+ else {
+#ifdef CURLDEBUG
+ /* Check if the hostname is 127.0.0.1 or [::1];
+ * otherwise reject because MesaLink always wants a valid DNS Name
+ * specified in RFC 5280 Section 7.2 */
+ if(strncmp(hostname, "127.0.0.1", 9) == 0
+#ifdef ENABLE_IPV6
+ || strncmp(hostname, "[::1]", 5) == 0
+#endif
+ ) {
+ SSL_set_tlsext_host_name(BACKEND->handle, "localhost");
+ }
+ else
+#endif
+ {
+ failf(data,
+ "ERROR: MesaLink does not accept an IP address as a hostname\n");
+ return CURLE_SSL_CONNECT_ERROR;
+ }
+ }
+
+#ifdef MESALINK_HAVE_SESSION
+ if(SSL_SET_OPTION(primary.sessionid)) {
+ void *ssl_sessionid = NULL;
+
+ Curl_ssl_sessionid_lock(conn);
+ if(!Curl_ssl_getsessionid(conn, &ssl_sessionid, NULL, sockindex)) {
+ /* we got a session id, use it! */
+ if(!SSL_set_session(BACKEND->handle, ssl_sessionid)) {
+ Curl_ssl_sessionid_unlock(conn);
+ failf(
+ data,
+ "SSL: SSL_set_session failed: %s",
+ ERR_error_string(SSL_get_error(BACKEND->handle, 0), error_buffer));
+ return CURLE_SSL_CONNECT_ERROR;
+ }
+ /* Informational message */
+ infof(data, "SSL re-using session ID\n");
+ }
+ Curl_ssl_sessionid_unlock(conn);
+ }
+#endif /* MESALINK_HAVE_SESSION */
+
+ if(SSL_set_fd(BACKEND->handle, (int)sockfd) != SSL_SUCCESS) {
+ failf(data, "SSL: SSL_set_fd failed");
+ return CURLE_SSL_CONNECT_ERROR;
+ }
+
+ connssl->connecting_state = ssl_connect_2;
+ return CURLE_OK;
+}
+
+static CURLcode
+mesalink_connect_step2(struct connectdata *conn, int sockindex)
+{
+ int ret = -1;
+ struct Curl_easy *data = conn->data;
+ struct ssl_connect_data *connssl = &conn->ssl[sockindex];
+
+ conn->recv[sockindex] = mesalink_recv;
+ conn->send[sockindex] = mesalink_send;
+
+ ret = SSL_connect(BACKEND->handle);
+ if(ret != SSL_SUCCESS) {
+ char error_buffer[MESALINK_MAX_ERROR_SZ];
+ int detail = SSL_get_error(BACKEND->handle, ret);
+
+ if(SSL_ERROR_WANT_CONNECT == detail) {
+ connssl->connecting_state = ssl_connect_2_reading;
+ return CURLE_OK;
+ }
+ else {
+ failf(data,
+ "SSL_connect failed with error %d: %s",
+ detail,
+ ERR_error_string_n(detail, error_buffer, sizeof(error_buffer)));
+ ERR_print_errors_fp(stderr);
+ if(detail && SSL_CONN_CONFIG(verifypeer)) {
+ detail &= ~0xFF;
+ if(detail == TLS_ERROR_WEBPKI_ERRORS) {
+ failf(data, "Cert verify failed");
+ return CURLE_PEER_FAILED_VERIFICATION;
+ }
+ }
+ return CURLE_SSL_CONNECT_ERROR;
+ }
+ }
+
+ connssl->connecting_state = ssl_connect_3;
+ infof(data,
+ "SSL connection using %s / %s\n",
+ SSL_get_version(BACKEND->handle),
+ SSL_get_cipher_name(BACKEND->handle));
+
+ return CURLE_OK;
+}
+
+static CURLcode
+mesalink_connect_step3(struct connectdata *conn, int sockindex)
+{
+ CURLcode result = CURLE_OK;
+ struct ssl_connect_data *connssl = &conn->ssl[sockindex];
+
+ DEBUGASSERT(ssl_connect_3 == connssl->connecting_state);
+
+#ifdef MESALINK_HAVE_SESSION
+ if(SSL_SET_OPTION(primary.sessionid)) {
+ bool incache;
+ SSL_SESSION *our_ssl_sessionid;
+ void *old_ssl_sessionid = NULL;
+
+ our_ssl_sessionid = SSL_get_session(BACKEND->handle);
+
+ Curl_ssl_sessionid_lock(conn);
+ incache =
+ !(Curl_ssl_getsessionid(conn, &old_ssl_sessionid, NULL, sockindex));
+ if(incache) {
+ if(old_ssl_sessionid != our_ssl_sessionid) {
+ infof(data, "old SSL session ID is stale, removing\n");
+ Curl_ssl_delsessionid(conn, old_ssl_sessionid);
+ incache = FALSE;
+ }
+ }
+
+ if(!incache) {
+ result = Curl_ssl_addsessionid(
+ conn, our_ssl_sessionid, 0 /* unknown size */, sockindex);
+ if(result) {
+ Curl_ssl_sessionid_unlock(conn);
+ failf(data, "failed to store ssl session");
+ return result;
+ }
+ }
+ Curl_ssl_sessionid_unlock(conn);
+ }
+#endif /* MESALINK_HAVE_SESSION */
+
+ connssl->connecting_state = ssl_connect_done;
+
+ return result;
+}
+
+static ssize_t
+mesalink_send(struct connectdata *conn, int sockindex, const void *mem,
+ size_t len, CURLcode *curlcode)
+{
+ struct ssl_connect_data *connssl = &conn->ssl[sockindex];
+ char error_buffer[MESALINK_MAX_ERROR_SZ];
+ int memlen = (len > (size_t)INT_MAX) ? INT_MAX : (int)len;
+ int rc = SSL_write(BACKEND->handle, mem, memlen);
+
+ if(rc < 0) {
+ int err = SSL_get_error(BACKEND->handle, rc);
+ switch(err) {
+ case SSL_ERROR_WANT_READ:
+ case SSL_ERROR_WANT_WRITE:
+ /* there's data pending, re-invoke SSL_write() */
+ *curlcode = CURLE_AGAIN;
+ return -1;
+ default:
+ failf(conn->data,
+ "SSL write: %s, errno %d",
+ ERR_error_string_n(err, error_buffer, sizeof(error_buffer)),
+ SOCKERRNO);
+ *curlcode = CURLE_SEND_ERROR;
+ return -1;
+ }
+ }
+ return rc;
+}
+
+static void
+Curl_mesalink_close(struct connectdata *conn, int sockindex)
+{
+ struct ssl_connect_data *connssl = &conn->ssl[sockindex];
+
+ if(BACKEND->handle) {
+ (void)SSL_shutdown(BACKEND->handle);
+ SSL_free(BACKEND->handle);
+ BACKEND->handle = NULL;
+ }
+ if(BACKEND->ctx) {
+ SSL_CTX_free(BACKEND->ctx);
+ BACKEND->ctx = NULL;
+ }
+}
+
+static ssize_t
+mesalink_recv(struct connectdata *conn, int num, char *buf, size_t buffersize,
+ CURLcode *curlcode)
+{
+ struct ssl_connect_data *connssl = &conn->ssl[num];
+ char error_buffer[MESALINK_MAX_ERROR_SZ];
+ int buffsize = (buffersize > (size_t)INT_MAX) ? INT_MAX : (int)buffersize;
+ int nread = SSL_read(BACKEND->handle, buf, buffsize);
+
+ if(nread <= 0) {
+ int err = SSL_get_error(BACKEND->handle, nread);
+
+ switch(err) {
+ case SSL_ERROR_ZERO_RETURN: /* no more data */
+ case IO_ERROR_CONNECTION_ABORTED:
+ break;
+ case SSL_ERROR_WANT_READ:
+ case SSL_ERROR_WANT_WRITE:
+ /* there's data pending, re-invoke SSL_read() */
+ *curlcode = CURLE_AGAIN;
+ return -1;
+ default:
+ failf(conn->data,
+ "SSL read: %s, errno %d",
+ ERR_error_string_n(err, error_buffer, sizeof(error_buffer)),
+ SOCKERRNO);
+ *curlcode = CURLE_RECV_ERROR;
+ return -1;
+ }
+ }
+ return nread;
+}
+
+static size_t
+Curl_mesalink_version(char *buffer, size_t size)
+{
+ return snprintf(buffer, size, "MesaLink/%s", MESALINK_VERSION_STRING);
+}
+
+static int
+Curl_mesalink_init(void)
+{
+ return (SSL_library_init() == SSL_SUCCESS);
+}
+
+/*
+ * This function is called to shut down the SSL layer but keep the
+ * socket open (CCC - Clear Command Channel)
+ */
+static int
+Curl_mesalink_shutdown(struct connectdata *conn, int sockindex)
+{
+ int retval = 0;
+ struct ssl_connect_data *connssl = &conn->ssl[sockindex];
+
+ if(BACKEND->handle) {
+ SSL_free(BACKEND->handle);
+ BACKEND->handle = NULL;
+ }
+ return retval;
+}
+
+static CURLcode
+mesalink_connect_common(struct connectdata *conn, int sockindex,
+ bool nonblocking, bool *done)
+{
+ CURLcode result;
+ struct Curl_easy *data = conn->data;
+ struct ssl_connect_data *connssl = &conn->ssl[sockindex];
+ curl_socket_t sockfd = conn->sock[sockindex];
+ time_t timeout_ms;
+ int what;
+
+ /* check if the connection has already been established */
+ if(ssl_connection_complete == connssl->state) {
+ *done = TRUE;
+ return CURLE_OK;
+ }
+
+ if(ssl_connect_1 == connssl->connecting_state) {
+ /* Find out how much more time we're allowed */
+ timeout_ms = Curl_timeleft(data, NULL, TRUE);
+
+ if(timeout_ms < 0) {
+ /* no need to continue if time already is up */
+ failf(data, "SSL connection timeout");
+ return CURLE_OPERATION_TIMEDOUT;
+ }
+
+ result = mesalink_connect_step1(conn, sockindex);
+ if(result)
+ return result;
+ }
+
+ while(ssl_connect_2 == connssl->connecting_state ||
+ ssl_connect_2_reading == connssl->connecting_state ||
+ ssl_connect_2_writing == connssl->connecting_state) {
+
+ /* check allowed time left */
+ timeout_ms = Curl_timeleft(data, NULL, TRUE);
+
+ if(timeout_ms < 0) {
+ /* no need to continue if time already is up */
+ failf(data, "SSL connection timeout");
+ return CURLE_OPERATION_TIMEDOUT;
+ }
+
+ /* if ssl is expecting something, check if it's available. */
+ if(connssl->connecting_state == ssl_connect_2_reading ||
+ connssl->connecting_state == ssl_connect_2_writing) {
+
+ curl_socket_t writefd =
+ ssl_connect_2_writing == connssl->connecting_state ? sockfd
+ : CURL_SOCKET_BAD;
+ curl_socket_t readfd = ssl_connect_2_reading == connssl->connecting_state
+ ? sockfd
+ : CURL_SOCKET_BAD;
+
+ what = Curl_socket_check(
+ readfd, CURL_SOCKET_BAD, writefd, nonblocking ? 0 : timeout_ms);
+ if(what < 0) {
+ /* fatal error */
+ failf(data, "select/poll on SSL socket, errno: %d", SOCKERRNO);
+ return CURLE_SSL_CONNECT_ERROR;
+ }
+ else if(0 == what) {
+ if(nonblocking) {
+ *done = FALSE;
+ return CURLE_OK;
+ }
+ else {
+ /* timeout */
+ failf(data, "SSL connection timeout");
+ return CURLE_OPERATION_TIMEDOUT;
+ }
+ }
+ /* socket is readable or writable */
+ }
+
+ /* Run transaction, and return to the caller if it failed or if
+ * this connection is part of a multi handle and this loop would
+ * execute again. This permits the owner of a multi handle to
+ * abort a connection attempt before step2 has completed while
+ * ensuring that a client using select() or epoll() will always
+ * have a valid fdset to wait on.
+ */
+ result = mesalink_connect_step2(conn, sockindex);
+
+ if(result ||
+ (nonblocking && (ssl_connect_2 == connssl->connecting_state ||
+ ssl_connect_2_reading == connssl->connecting_state ||
+ ssl_connect_2_writing == connssl->connecting_state))) {
+ return result;
+ }
+ } /* repeat step2 until all transactions are done. */
+
+ if(ssl_connect_3 == connssl->connecting_state) {
+ result = mesalink_connect_step3(conn, sockindex);
+ if(result)
+ return result;
+ }
+
+ if(ssl_connect_done == connssl->connecting_state) {
+ connssl->state = ssl_connection_complete;
+ conn->recv[sockindex] = mesalink_recv;
+ conn->send[sockindex] = mesalink_send;
+ *done = TRUE;
+ }
+ else
+ *done = FALSE;
+
+ /* Reset our connect state machine */
+ connssl->connecting_state = ssl_connect_1;
+
+ return CURLE_OK;
+}
+
+static CURLcode
+Curl_mesalink_connect_nonblocking(struct connectdata *conn, int sockindex,
+ bool *done)
+{
+ return mesalink_connect_common(conn, sockindex, TRUE, done);
+}
+
+static CURLcode
+Curl_mesalink_connect(struct connectdata *conn, int sockindex)
+{
+ CURLcode result;
+ bool done = FALSE;
+
+ result = mesalink_connect_common(conn, sockindex, FALSE, &done);
+ if(result)
+ return result;
+
+ DEBUGASSERT(done);
+
+ return CURLE_OK;
+}
+
+static void *
+Curl_mesalink_get_internals(struct ssl_connect_data *connssl,
+ CURLINFO info UNUSED_PARAM)
+{
+ (void)info;
+ return BACKEND->handle;
+}
+
+const struct Curl_ssl Curl_ssl_mesalink = {
+ { CURLSSLBACKEND_MESALINK, "MesaLink" }, /* info */
+
+ SSLSUPP_SSL_CTX,
+
+ sizeof(struct ssl_backend_data),
+
+ Curl_mesalink_init, /* init */
+ Curl_none_cleanup, /* cleanup */
+ Curl_mesalink_version, /* version */
+ Curl_none_check_cxn, /* check_cxn */
+ Curl_mesalink_shutdown, /* shutdown */
+ Curl_none_data_pending, /* data_pending */
+ Curl_none_random, /* random */
+ Curl_none_cert_status_request, /* cert_status_request */
+ Curl_mesalink_connect, /* connect */
+ Curl_mesalink_connect_nonblocking, /* connect_nonblocking */
+ Curl_mesalink_get_internals, /* get_internals */
+ Curl_mesalink_close, /* close_one */
+ Curl_none_close_all, /* close_all */
+ Curl_none_session_free, /* session_free */
+ Curl_none_set_engine, /* set_engine */
+ Curl_none_set_engine_default, /* set_engine_default */
+ Curl_none_engines_list, /* engines_list */
+ Curl_none_false_start, /* false_start */
+ Curl_none_md5sum, /* md5sum */
+ NULL /* sha256sum */
+};
+
+#endif
diff --git a/lib/vtls/mesalink.h b/lib/vtls/mesalink.h
new file mode 100644
index 00000000..54cb94ad
--- /dev/null
+++ b/lib/vtls/mesalink.h
@@ -0,0 +1,32 @@
+#ifndef HEADER_CURL_MESALINK_H
+#define HEADER_CURL_MESALINK_H
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 2017-2018, Yiming Jing, <jingyiming@baidu.com>
+ * Copyright (C) 1998 - 2017, 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 https://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.
+ *
+ ***************************************************************************/
+#include "curl_setup.h"
+
+#ifdef USE_MESALINK
+
+extern const struct Curl_ssl Curl_ssl_mesalink;
+
+#endif /* USE_MESALINK */
+#endif /* HEADER_CURL_MESALINK_H */
diff --git a/lib/vtls/nss.c b/lib/vtls/nss.c
index 89f81839..a3d3e58b 100644
--- a/lib/vtls/nss.c
+++ b/lib/vtls/nss.c
@@ -217,10 +217,15 @@ static const cipher_s cipherlist[] = {
#endif
};
+#ifdef WIN32
+static const char *pem_library = "nsspem.dll";
+static const char *trust_library = "nssckbi.dll";
+#else
static const char *pem_library = "libnsspem.so";
-static SECMODModule *pem_module = NULL;
-
static const char *trust_library = "libnssckbi.so";
+#endif
+
+static SECMODModule *pem_module = NULL;
static SECMODModule *trust_module = NULL;
/* NSPR I/O layer we use to detect blocking direction during SSL handshake */
@@ -1522,7 +1527,6 @@ static bool is_nss_error(CURLcode err)
{
switch(err) {
case CURLE_PEER_FAILED_VERIFICATION:
- case CURLE_SSL_CACERT:
case CURLE_SSL_CERTPROBLEM:
case CURLE_SSL_CONNECT_ERROR:
case CURLE_SSL_ISSUER_ERROR:
@@ -1579,8 +1583,9 @@ static CURLcode nss_load_ca_certificates(struct connectdata *conn,
infof(data, "%s %s\n", (result) ? "failed to load" : "loaded",
trust_library);
if(result == CURLE_FAILED_INIT)
- /* make the error non-fatal if we are not going to verify peer */
- result = CURLE_SSL_CACERT_BADFILE;
+ /* If libnssckbi.so is not available (or fails to load), one can still
+ use CA certificates stored in NSS database. Ignore the failure. */
+ result = CURLE_OK;
}
else if(!use_trust_module && trust_module) {
/* libnssckbi.so not needed but already loaded --> unload it! */
@@ -1715,8 +1720,6 @@ static CURLcode nss_init_sslver(SSLVersionRange *sslver,
failf(data, "unsupported min version passed via CURLOPT_SSLVERSION");
return result;
}
- if(max == CURL_SSLVERSION_MAX_NONE)
- sslver->max = sslver->min;
}
switch(max) {
diff --git a/lib/vtls/openssl.c b/lib/vtls/openssl.c
index a487f553..4c5e8c19 100644
--- a/lib/vtls/openssl.c
+++ b/lib/vtls/openssl.c
@@ -69,7 +69,7 @@
#include <openssl/ocsp.h>
#endif
-#if (OPENSSL_VERSION_NUMBER >= 0x10000000L) && /* 1.0.0 or later */ \
+#if (OPENSSL_VERSION_NUMBER >= 0x0090800fL) && /* 0.9.8 or later */ \
!defined(OPENSSL_NO_ENGINE)
#define USE_OPENSSL_ENGINE
#include <openssl/engine.h>
@@ -129,16 +129,15 @@
#define X509_get0_notBefore(x) X509_get_notBefore(x)
#define X509_get0_notAfter(x) X509_get_notAfter(x)
#define CONST_EXTS /* nope */
-#ifdef LIBRESSL_VERSION_NUMBER
-static unsigned long OpenSSL_version_num(void)
-{
- return LIBRESSL_VERSION_NUMBER;
-}
-#else
+#ifndef LIBRESSL_VERSION_NUMBER
#define OpenSSL_version_num() SSLeay()
#endif
#endif
+#ifdef LIBRESSL_VERSION_NUMBER
+#define OpenSSL_version_num() LIBRESSL_VERSION_NUMBER
+#endif
+
#if (OPENSSL_VERSION_NUMBER >= 0x1000200fL) && /* 1.0.2 or later */ \
!(defined(LIBRESSL_VERSION_NUMBER) && \
LIBRESSL_VERSION_NUMBER < 0x20700000L)
@@ -178,6 +177,7 @@ static unsigned long OpenSSL_version_num(void)
!defined(LIBRESSL_VERSION_NUMBER) && \
!defined(OPENSSL_IS_BORINGSSL))
#define HAVE_SSL_CTX_SET_CIPHERSUITES
+#define HAVE_SSL_CTX_SET_POST_HANDSHAKE_AUTH
#endif
#if defined(LIBRESSL_VERSION_NUMBER)
@@ -253,7 +253,7 @@ static void ossl_keylog_callback(const SSL *ssl, const char *line)
if(!buf)
return;
}
- strncpy(buf, line, linelen);
+ memcpy(buf, line, linelen);
buf[linelen] = '\n';
buf[linelen + 1] = '\0';
@@ -978,7 +978,7 @@ static int Curl_ossl_init(void)
OPENSSL_load_builtin_modules();
-#ifdef HAVE_ENGINE_LOAD_BUILTIN_ENGINES
+#ifdef USE_OPENSSL_ENGINE
ENGINE_load_builtin_engines();
#endif
@@ -994,9 +994,11 @@ static int Curl_ossl_init(void)
#define CONF_MFLAGS_DEFAULT_SECTION 0x0
#endif
+#ifndef CURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG
CONF_modules_load_file(NULL, NULL,
CONF_MFLAGS_DEFAULT_SECTION|
CONF_MFLAGS_IGNORE_MISSING_FILE);
+#endif
#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && \
!defined(LIBRESSL_VERSION_NUMBER)
@@ -1260,7 +1262,7 @@ static int Curl_ossl_shutdown(struct connectdata *conn, int sockindex)
ssize_t nread;
int buffsize;
int err;
- int done = 0;
+ bool done = FALSE;
/* This has only been tested on the proftpd server, and the mod_tls code
sends a close notify alert without waiting for a close notify alert in
@@ -1288,7 +1290,7 @@ static int Curl_ossl_shutdown(struct connectdata *conn, int sockindex)
case SSL_ERROR_ZERO_RETURN: /* no more data */
/* This is the expected response. There was no data but only
the close notify alert */
- done = 1;
+ done = TRUE;
break;
case SSL_ERROR_WANT_READ:
/* there's data pending, re-invoke SSL_read() */
@@ -1297,7 +1299,7 @@ static int Curl_ossl_shutdown(struct connectdata *conn, int sockindex)
case SSL_ERROR_WANT_WRITE:
/* SSL wants a write. Really odd. Let's bail out. */
infof(data, "SSL_ERROR_WANT_WRITE\n");
- done = 1;
+ done = TRUE;
break;
default:
/* openssl/ssl.h says "look at error stack/return value/errno" */
@@ -1307,20 +1309,20 @@ static int Curl_ossl_shutdown(struct connectdata *conn, int sockindex)
ossl_strerror(sslerror, buf, sizeof(buf)) :
SSL_ERROR_to_str(err)),
SOCKERRNO);
- done = 1;
+ done = TRUE;
break;
}
}
else if(0 == what) {
/* timeout */
failf(data, "SSL shutdown timeout");
- done = 1;
+ done = TRUE;
}
else {
/* anything that gets here is fatally bad */
failf(data, "select/poll on SSL socket, errno: %d", SOCKERRNO);
retval = -1;
- done = 1;
+ done = TRUE;
}
} /* while()-loop for the select() */
@@ -1416,6 +1418,10 @@ static bool subj_alt_hostcheck(struct Curl_easy *data,
}
#else
{
+#ifdef CURL_DISABLE_VERBOSE_STRINGS
+ (void)dispname;
+ (void)data;
+#endif
if(Curl_cert_hostcheck(match_pattern, hostname)) {
infof(data, " subjectAltName: host \"%s\" matched cert's \"%s\"\n",
dispname, match_pattern);
@@ -2080,6 +2086,7 @@ select_next_proto_cb(SSL *ssl,
}
#endif /* HAS_NPN */
+#ifndef CURL_DISABLE_VERBOSE_STRINGS
static const char *
get_ssl_version_txt(SSL *ssl)
{
@@ -2106,6 +2113,7 @@ get_ssl_version_txt(SSL *ssl)
}
return "unknown";
}
+#endif
static CURLcode
set_ssl_version_min_max(long *ctx_options, struct connectdata *conn,
@@ -2171,7 +2179,6 @@ set_ssl_version_min_max(long *ctx_options, struct connectdata *conn,
#endif
break;
case CURL_SSLVERSION_MAX_TLSv1_3:
- case CURL_SSLVERSION_MAX_DEFAULT:
#ifdef TLS1_3_VERSION
break;
#else
@@ -2459,7 +2466,7 @@ static CURLcode ossl_connect_step1(struct connectdata *conn, int sockindex)
char *ciphers13 = SSL_CONN_CONFIG(cipher_list13);
if(ciphers13) {
if(!SSL_CTX_set_ciphersuites(BACKEND->ctx, ciphers13)) {
- failf(data, "failed setting TLS 1.3 cipher suite: %s", ciphers);
+ failf(data, "failed setting TLS 1.3 cipher suite: %s", ciphers13);
return CURLE_SSL_CIPHER;
}
infof(data, "TLS 1.3 cipher selection: %s\n", ciphers13);
@@ -2467,6 +2474,11 @@ static CURLcode ossl_connect_step1(struct connectdata *conn, int sockindex)
}
#endif
+#ifdef HAVE_SSL_CTX_SET_POST_HANDSHAKE_AUTH
+ /* OpenSSL 1.1.1 requires clients to opt-in for PHA */
+ SSL_CTX_set_post_handshake_auth(BACKEND->ctx, 1);
+#endif
+
#ifdef USE_TLS_SRP
if(ssl_authtype == CURL_TLSAUTH_SRP) {
char * const ssl_username = SSL_SET_OPTION(username);
@@ -2521,7 +2533,7 @@ static CURLcode ossl_connect_step1(struct connectdata *conn, int sockindex)
}
#ifdef CURL_CA_FALLBACK
else if(verifypeer) {
- /* verfying the peer without any CA certificates won't
+ /* verifying the peer without any CA certificates won't
work so use openssl's built in default as fallback */
SSL_CTX_set_default_verify_paths(BACKEND->ctx);
}
@@ -3187,7 +3199,7 @@ static CURLcode servercert(struct connectdata *conn,
{
CURLcode result = CURLE_OK;
int rc;
- long lerr, len;
+ long lerr;
struct Curl_easy *data = conn->data;
X509 *issuer;
BIO *fp = NULL;
@@ -3210,7 +3222,7 @@ static CURLcode servercert(struct connectdata *conn,
ossl_strerror(ERR_get_error(), error_buffer,
sizeof(error_buffer)) );
BIO_free(mem);
- return 0;
+ return CURLE_OUT_OF_MEMORY;
}
BACKEND->server_cert = SSL_get_peer_certificate(BACKEND->handle);
@@ -3230,15 +3242,20 @@ static CURLcode servercert(struct connectdata *conn,
buffer, sizeof(buffer));
infof(data, " subject: %s\n", rc?"[NONE]":buffer);
- ASN1_TIME_print(mem, X509_get0_notBefore(BACKEND->server_cert));
- len = BIO_get_mem_data(mem, (char **) &ptr);
- infof(data, " start date: %.*s\n", len, ptr);
- (void)BIO_reset(mem);
+#ifndef CURL_DISABLE_VERBOSE_STRINGS
+ {
+ long len;
+ ASN1_TIME_print(mem, X509_get0_notBefore(BACKEND->server_cert));
+ len = BIO_get_mem_data(mem, (char **) &ptr);
+ infof(data, " start date: %.*s\n", len, ptr);
+ (void)BIO_reset(mem);
- ASN1_TIME_print(mem, X509_get0_notAfter(BACKEND->server_cert));
- len = BIO_get_mem_data(mem, (char **) &ptr);
- infof(data, " expire date: %.*s\n", len, ptr);
- (void)BIO_reset(mem);
+ ASN1_TIME_print(mem, X509_get0_notAfter(BACKEND->server_cert));
+ len = BIO_get_mem_data(mem, (char **) &ptr);
+ infof(data, " expire date: %.*s\n", len, ptr);
+ (void)BIO_reset(mem);
+ }
+#endif
BIO_free(mem);
@@ -3257,7 +3274,7 @@ static CURLcode servercert(struct connectdata *conn,
if(rc) {
if(strict)
failf(data, "SSL: couldn't get X509-issuer name!");
- result = CURLE_SSL_CONNECT_ERROR;
+ result = CURLE_PEER_FAILED_VERIFICATION;
}
else {
infof(data, " issuer: %s\n", buffer);
diff --git a/lib/vtls/polarssl.c b/lib/vtls/polarssl.c
index 604cb4c8..27af0ccf 100644
--- a/lib/vtls/polarssl.c
+++ b/lib/vtls/polarssl.c
@@ -185,14 +185,11 @@ set_ssl_version_min_max(struct connectdata *conn, int sockindex)
case CURL_SSLVERSION_DEFAULT:
case CURL_SSLVERSION_TLSv1:
ssl_version = CURL_SSLVERSION_TLSv1_0;
- ssl_version_max = CURL_SSLVERSION_MAX_TLSv1_2;
break;
}
switch(ssl_version_max) {
case CURL_SSLVERSION_MAX_NONE:
- ssl_version_max = ssl_version << 16;
- break;
case CURL_SSLVERSION_MAX_DEFAULT:
ssl_version_max = CURL_SSLVERSION_MAX_TLSv1_2;
break;
diff --git a/lib/vtls/schannel.c b/lib/vtls/schannel.c
index 8f6c301d..e4426924 100644
--- a/lib/vtls/schannel.c
+++ b/lib/vtls/schannel.c
@@ -180,8 +180,6 @@ set_ssl_version_min_max(SCHANNEL_CRED *schannel_cred, struct connectdata *conn)
switch(ssl_version_max) {
case CURL_SSLVERSION_MAX_NONE:
- ssl_version_max = ssl_version << 16;
- break;
case CURL_SSLVERSION_MAX_DEFAULT:
ssl_version_max = CURL_SSLVERSION_MAX_TLSv1_2;
break;
@@ -363,7 +361,7 @@ get_cert_location(TCHAR *path, DWORD *store_name, TCHAR **store_path,
sep = _tcschr(path, TEXT('\\'));
if(sep == NULL)
- return CURLE_SSL_CONNECT_ERROR;
+ return CURLE_SSL_CERTPROBLEM;
store_name_len = sep - path;
@@ -387,19 +385,19 @@ get_cert_location(TCHAR *path, DWORD *store_name, TCHAR **store_path,
store_name_len) == 0)
*store_name = CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE;
else
- return CURLE_SSL_CONNECT_ERROR;
+ return CURLE_SSL_CERTPROBLEM;
*store_path = sep + 1;
sep = _tcschr(*store_path, TEXT('\\'));
if(sep == NULL)
- return CURLE_SSL_CONNECT_ERROR;
+ return CURLE_SSL_CERTPROBLEM;
*sep = 0;
*thumbprint = sep + 1;
if(_tcslen(*thumbprint) != CERT_THUMBPRINT_STR_LEN)
- return CURLE_SSL_CONNECT_ERROR;
+ return CURLE_SSL_CERTPROBLEM;
return CURLE_OK;
}
@@ -612,7 +610,7 @@ schannel_connect_step1(struct connectdata *conn, int sockindex)
"last error is %x",
cert_store_name, cert_store_path, GetLastError());
Curl_unicodefree(cert_path);
- return CURLE_SSL_CONNECT_ERROR;
+ return CURLE_SSL_CERTPROBLEM;
}
cert_thumbprint.pbData = cert_thumbprint_data;
@@ -623,7 +621,7 @@ schannel_connect_step1(struct connectdata *conn, int sockindex)
cert_thumbprint_data, &cert_thumbprint.cbData,
NULL, NULL)) {
Curl_unicodefree(cert_path);
- return CURLE_SSL_CONNECT_ERROR;
+ return CURLE_SSL_CERTPROBLEM;
}
client_certs[0] = CertFindCertificateInStore(
@@ -636,6 +634,10 @@ schannel_connect_step1(struct connectdata *conn, int sockindex)
schannel_cred.cCreds = 1;
schannel_cred.paCred = client_certs;
}
+ else {
+ /* CRYPT_E_NOT_FOUND / E_INVALIDARG */
+ return CURLE_SSL_CERTPROBLEM;
+ }
CertCloseStore(cert_store, 0);
}
@@ -672,14 +674,20 @@ schannel_connect_step1(struct connectdata *conn, int sockindex)
CertFreeCertificateContext(client_certs[0]);
if(sspi_status != SEC_E_OK) {
- if(sspi_status == SEC_E_WRONG_PRINCIPAL)
- failf(data, "schannel: SNI or certificate check failed: %s",
- Curl_sspi_strerror(conn, sspi_status));
- else
- failf(data, "schannel: AcquireCredentialsHandle failed: %s",
- Curl_sspi_strerror(conn, sspi_status));
+ failf(data, "schannel: AcquireCredentialsHandle failed: %s",
+ Curl_sspi_strerror(conn, sspi_status));
Curl_safefree(BACKEND->cred);
- return CURLE_SSL_CONNECT_ERROR;
+ switch(sspi_status) {
+ case SEC_E_INSUFFICIENT_MEMORY:
+ return CURLE_OUT_OF_MEMORY;
+ case SEC_E_NO_CREDENTIALS:
+ case SEC_E_SECPKG_NOT_FOUND:
+ case SEC_E_NOT_OWNER:
+ case SEC_E_UNKNOWN_CREDENTIALS:
+ case SEC_E_INTERNAL_ERROR:
+ default:
+ return CURLE_SSL_CONNECT_ERROR;
+ }
}
}
@@ -782,14 +790,32 @@ schannel_connect_step1(struct connectdata *conn, int sockindex)
Curl_unicodefree(host_name);
if(sspi_status != SEC_I_CONTINUE_NEEDED) {
- if(sspi_status == SEC_E_WRONG_PRINCIPAL)
- failf(data, "schannel: SNI or certificate check failed: %s",
- Curl_sspi_strerror(conn, sspi_status));
- else
- failf(data, "schannel: initial InitializeSecurityContext failed: %s",
- Curl_sspi_strerror(conn, sspi_status));
Curl_safefree(BACKEND->ctxt);
- return CURLE_SSL_CONNECT_ERROR;
+ switch(sspi_status) {
+ case SEC_E_INSUFFICIENT_MEMORY:
+ failf(data, "schannel: initial InitializeSecurityContext failed: %s",
+ Curl_sspi_strerror(conn, sspi_status));
+ return CURLE_OUT_OF_MEMORY;
+ case SEC_E_WRONG_PRINCIPAL:
+ failf(data, "schannel: SNI or certificate check failed: %s",
+ Curl_sspi_strerror(conn, sspi_status));
+ return CURLE_PEER_FAILED_VERIFICATION;
+ /*
+ case SEC_E_INVALID_HANDLE:
+ case SEC_E_INVALID_TOKEN:
+ case SEC_E_LOGON_DENIED:
+ case SEC_E_TARGET_UNKNOWN:
+ case SEC_E_NO_AUTHENTICATING_AUTHORITY:
+ case SEC_E_INTERNAL_ERROR:
+ case SEC_E_NO_CREDENTIALS:
+ case SEC_E_UNSUPPORTED_FUNCTION:
+ case SEC_E_APPLICATION_PROTOCOL_MISMATCH:
+ */
+ default:
+ failf(data, "schannel: initial InitializeSecurityContext failed: %s",
+ Curl_sspi_strerror(conn, sspi_status));
+ return CURLE_SSL_CONNECT_ERROR;
+ }
}
infof(data, "schannel: sending initial handshake data: "
@@ -1004,14 +1030,31 @@ schannel_connect_step2(struct connectdata *conn, int sockindex)
}
}
else {
- if(sspi_status == SEC_E_WRONG_PRINCIPAL)
- failf(data, "schannel: SNI or certificate check failed: %s",
- Curl_sspi_strerror(conn, sspi_status));
- else
- failf(data, "schannel: next InitializeSecurityContext failed: %s",
- Curl_sspi_strerror(conn, sspi_status));
- return sspi_status == SEC_E_UNTRUSTED_ROOT ?
- CURLE_SSL_CACERT : CURLE_SSL_CONNECT_ERROR;
+ switch(sspi_status) {
+ case SEC_E_INSUFFICIENT_MEMORY:
+ failf(data, "schannel: next InitializeSecurityContext failed: %s",
+ Curl_sspi_strerror(conn, sspi_status));
+ return CURLE_OUT_OF_MEMORY;
+ case SEC_E_WRONG_PRINCIPAL:
+ failf(data, "schannel: SNI or certificate check failed: %s",
+ Curl_sspi_strerror(conn, sspi_status));
+ return CURLE_PEER_FAILED_VERIFICATION;
+ /*
+ case SEC_E_INVALID_HANDLE:
+ case SEC_E_INVALID_TOKEN:
+ case SEC_E_LOGON_DENIED:
+ case SEC_E_TARGET_UNKNOWN:
+ case SEC_E_NO_AUTHENTICATING_AUTHORITY:
+ case SEC_E_INTERNAL_ERROR:
+ case SEC_E_NO_CREDENTIALS:
+ case SEC_E_UNSUPPORTED_FUNCTION:
+ case SEC_E_APPLICATION_PROTOCOL_MISMATCH:
+ */
+ default:
+ failf(data, "schannel: next InitializeSecurityContext failed: %s",
+ Curl_sspi_strerror(conn, sspi_status));
+ return CURLE_SSL_CONNECT_ERROR;
+ }
}
/* check if there was additional remaining encrypted data */
@@ -1192,7 +1235,7 @@ schannel_connect_step3(struct connectdata *conn, int sockindex)
if((sspi_status != SEC_E_OK) || (ccert_context == NULL)) {
failf(data, "schannel: failed to retrieve remote cert context");
- return CURLE_SSL_CONNECT_ERROR;
+ return CURLE_PEER_FAILED_VERIFICATION;
}
result = Curl_ssl_init_certinfo(data, 1);
diff --git a/lib/vtls/schannel.h b/lib/vtls/schannel.h
index 51417aff..e491bd43 100644
--- a/lib/vtls/schannel.h
+++ b/lib/vtls/schannel.h
@@ -41,7 +41,7 @@
* typedef struct X509_name_st X509_NAME;
* etc.
*
- * this wil cause all kinds of C-preprocessing paste errors in
+ * this will cause all kinds of C-preprocessing paste errors in
* BoringSSL's <openssl/x509.h>: So just undefine those defines here
* (and only here).
*/
diff --git a/lib/vtls/schannel_verify.c b/lib/vtls/schannel_verify.c
index 5a7092a2..2516f566 100644
--- a/lib/vtls/schannel_verify.c
+++ b/lib/vtls/schannel_verify.c
@@ -135,7 +135,7 @@ static CURLcode add_certs_to_store(HCERTSTORE trust_store,
failf(data,
"schannel: CA file exceeds max size of %u bytes",
MAX_CAFILE_SIZE);
- result = CURLE_OUT_OF_MEMORY;
+ result = CURLE_SSL_CACERT_BADFILE;
goto cleanup;
}
@@ -244,7 +244,7 @@ static CURLcode add_certs_to_store(HCERTSTORE trust_store,
CertFreeCertificateContext(cert_context);
if(!add_cert_result) {
failf(data,
- "schannel: failed to add certificate from CA file '%s'"
+ "schannel: failed to add certificate from CA file '%s' "
"to certificate store: %s",
ca_file, Curl_strerror(conn, GetLastError()));
result = CURLE_SSL_CACERT_BADFILE;
@@ -319,6 +319,10 @@ static CURLcode verify_host(struct Curl_easy *data,
* embedded null bytes. This appears to be undocumented behavior.
*/
cert_hostname_buff = (LPTSTR)malloc(len * sizeof(TCHAR));
+ if(!cert_hostname_buff) {
+ result = CURLE_OUT_OF_MEMORY;
+ goto cleanup;
+ }
actual_len = CertGetNameString(pCertContextServer,
CERT_NAME_DNS_TYPE,
name_flags,
diff --git a/lib/vtls/vtls.c b/lib/vtls/vtls.c
index b61c6403..6af39fea 100644
--- a/lib/vtls/vtls.c
+++ b/lib/vtls/vtls.c
@@ -1190,6 +1190,8 @@ const struct Curl_ssl *Curl_ssl =
&Curl_ssl_polarssl;
#elif defined(USE_SCHANNEL)
&Curl_ssl_schannel;
+#elif defined(USE_MESALINK)
+ &Curl_ssl_mesalink;
#else
#error "Missing struct Curl_ssl for selected SSL backend"
#endif
@@ -1225,6 +1227,9 @@ static const struct Curl_ssl *available_backends[] = {
#if defined(USE_SCHANNEL)
&Curl_ssl_schannel,
#endif
+#if defined(USE_MESALINK)
+ &Curl_ssl_mesalink,
+#endif
NULL
};
diff --git a/lib/vtls/vtls.h b/lib/vtls/vtls.h
index 40f9d747..5cd11602 100644
--- a/lib/vtls/vtls.h
+++ b/lib/vtls/vtls.h
@@ -108,6 +108,7 @@ CURLcode Curl_none_md5sum(unsigned char *input, size_t inputlen,
#include "schannel.h" /* Schannel SSPI version */
#include "darwinssl.h" /* SecureTransport (Darwin) version */
#include "mbedtls.h" /* mbedTLS versions */
+#include "mesalink.h" /* MesaLink versions */
#ifndef MAX_PINNED_PUBKEY_SIZE
#define MAX_PINNED_PUBKEY_SIZE 1048576 /* 1MB */
diff --git a/lib/x509asn1.c b/lib/x509asn1.c
index 72a0b4a0..a576fc70 100644
--- a/lib/x509asn1.c
+++ b/lib/x509asn1.c
@@ -103,6 +103,9 @@ static const curl_OID OIDtable[] = {
* Please note there is no pretention here to rewrite a full SSL library.
*/
+static const char *getASN1Element(curl_asn1Element *elem,
+ const char *beg, const char *end)
+ WARN_UNUSED_RESULT;
static const char *getASN1Element(curl_asn1Element *elem,
const char *beg, const char *end)
@@ -223,7 +226,7 @@ static const char *bit2str(const char *beg, const char *end)
static const char *int2str(const char *beg, const char *end)
{
- long val = 0;
+ unsigned long val = 0;
size_t n = end - beg;
/* Convert an ASN.1 integer value into its string representation.
@@ -243,7 +246,7 @@ static const char *int2str(const char *beg, const char *end)
do
val = (val << 8) | *(const unsigned char *) beg++;
while(beg < end);
- return curl_maprintf("%s%lx", (val < 0 || val >= 10)? "0x": "", val);
+ return curl_maprintf("%s%lx", val >= 10? "0x": "", val);
}
static ssize_t
@@ -602,10 +605,17 @@ static ssize_t encodeDN(char *buf, size_t n, curl_asn1Element *dn)
for(p1 = dn->beg; p1 < dn->end;) {
p1 = getASN1Element(&rdn, p1, dn->end);
+ if(!p1)
+ return -1;
for(p2 = rdn.beg; p2 < rdn.end;) {
p2 = getASN1Element(&atv, p2, rdn.end);
+ if(!p2)
+ return -1;
p3 = getASN1Element(&oid, atv.beg, atv.end);
- getASN1Element(&value, p3, atv.end);
+ if(!p3)
+ return -1;
+ if(!getASN1Element(&value, p3, atv.end))
+ return -1;
str = ASN1tostr(&oid, 0);
if(!str)
return -1;
@@ -697,10 +707,15 @@ int Curl_parseX509(curl_X509certificate *cert,
/* Get tbsCertificate. */
beg = getASN1Element(&tbsCertificate, beg, end);
+ if(!beg)
+ return -1;
/* Skip the signatureAlgorithm. */
beg = getASN1Element(&cert->signatureAlgorithm, beg, end);
+ if(!beg)
+ return -1;
/* Get the signatureValue. */
- getASN1Element(&cert->signature, beg, end);
+ if(!getASN1Element(&cert->signature, beg, end))
+ return -1;
/* Parse TBSCertificate. */
beg = tbsCertificate.beg;
@@ -710,28 +725,47 @@ int Curl_parseX509(curl_X509certificate *cert,
cert->version.beg = &defaultVersion;
cert->version.end = &defaultVersion + sizeof(defaultVersion);
beg = getASN1Element(&elem, beg, end);
+ if(!beg)
+ return -1;
if(elem.tag == 0) {
- getASN1Element(&cert->version, elem.beg, elem.end);
+ if(!getASN1Element(&cert->version, elem.beg, elem.end))
+ return -1;
beg = getASN1Element(&elem, beg, end);
+ if(!beg)
+ return -1;
}
cert->serialNumber = elem;
/* Get signature algorithm. */
beg = getASN1Element(&cert->signatureAlgorithm, beg, end);
/* Get issuer. */
beg = getASN1Element(&cert->issuer, beg, end);
+ if(!beg)
+ return -1;
/* Get notBefore and notAfter. */
beg = getASN1Element(&elem, beg, end);
+ if(!beg)
+ return -1;
ccp = getASN1Element(&cert->notBefore, elem.beg, elem.end);
- getASN1Element(&cert->notAfter, ccp, elem.end);
+ if(!ccp)
+ return -1;
+ if(!getASN1Element(&cert->notAfter, ccp, elem.end))
+ return -1;
/* Get subject. */
beg = getASN1Element(&cert->subject, beg, end);
+ if(!beg)
+ return -1;
/* Get subjectPublicKeyAlgorithm and subjectPublicKey. */
beg = getASN1Element(&cert->subjectPublicKeyInfo, beg, end);
+ if(!beg)
+ return -1;
ccp = getASN1Element(&cert->subjectPublicKeyAlgorithm,
- cert->subjectPublicKeyInfo.beg,
- cert->subjectPublicKeyInfo.end);
- getASN1Element(&cert->subjectPublicKey, ccp,
- cert->subjectPublicKeyInfo.end);
+ cert->subjectPublicKeyInfo.beg,
+ cert->subjectPublicKeyInfo.end);
+ if(!ccp)
+ return -1;
+ if(!getASN1Element(&cert->subjectPublicKey, ccp,
+ cert->subjectPublicKeyInfo.end))
+ return -1;
/* Get optional issuerUiqueID, subjectUniqueID and extensions. */
cert->issuerUniqueID.tag = cert->subjectUniqueID.tag = 0;
cert->extensions.tag = elem.tag = 0;
@@ -740,20 +774,30 @@ int Curl_parseX509(curl_X509certificate *cert,
cert->subjectUniqueID.beg = cert->subjectUniqueID.end = "";
cert->extensions.header = NULL;
cert->extensions.beg = cert->extensions.end = "";
- if(beg < end)
+ if(beg < end) {
beg = getASN1Element(&elem, beg, end);
+ if(!beg)
+ return -1;
+ }
if(elem.tag == 1) {
cert->issuerUniqueID = elem;
- if(beg < end)
+ if(beg < end) {
beg = getASN1Element(&elem, beg, end);
+ if(!beg)
+ return -1;
+ }
}
if(elem.tag == 2) {
cert->subjectUniqueID = elem;
- if(beg < end)
+ if(beg < end) {
beg = getASN1Element(&elem, beg, end);
+ if(!beg)
+ return -1;
+ }
}
if(elem.tag == 3)
- getASN1Element(&cert->extensions, elem.beg, elem.end);
+ if(!getASN1Element(&cert->extensions, elem.beg, elem.end))
+ return -1;
return 0;
}
@@ -782,11 +826,14 @@ static const char *dumpAlgo(curl_asn1Element *param,
/* Get algorithm parameters and return algorithm name. */
beg = getASN1Element(&oid, beg, end);
+ if(!beg)
+ return NULL;
param->header = NULL;
param->tag = 0;
param->beg = param->end = end;
if(beg < end)
- getASN1Element(param, beg, end);
+ if(!getASN1Element(param, beg, end))
+ return NULL;
return OID2str(oid.beg, oid.end, TRUE);
}
@@ -821,10 +868,14 @@ static void do_pubkey(struct Curl_easy *data, int certnum,
/* Generate all information records for the public key. */
/* Get the public key (single element). */
- getASN1Element(&pk, pubkey->beg + 1, pubkey->end);
+ if(!getASN1Element(&pk, pubkey->beg + 1, pubkey->end))
+ return;
if(strcasecompare(algo, "rsaEncryption")) {
p = getASN1Element(&elem, pk.beg, pk.end);
+ if(!p)
+ return;
+
/* Compute key length. */
for(q = elem.beg; !*q && q < elem.end; q++)
;
@@ -845,30 +896,34 @@ static void do_pubkey(struct Curl_easy *data, int certnum,
}
/* Generate coefficients. */
do_pubkey_field(data, certnum, "rsa(n)", &elem);
- getASN1Element(&elem, p, pk.end);
+ if(!getASN1Element(&elem, p, pk.end))
+ return;
do_pubkey_field(data, certnum, "rsa(e)", &elem);
}
else if(strcasecompare(algo, "dsa")) {
p = getASN1Element(&elem, param->beg, param->end);
- do_pubkey_field(data, certnum, "dsa(p)", &elem);
- p = getASN1Element(&elem, p, param->end);
- do_pubkey_field(data, certnum, "dsa(q)", &elem);
- getASN1Element(&elem, p, param->end);
- do_pubkey_field(data, certnum, "dsa(g)", &elem);
- do_pubkey_field(data, certnum, "dsa(pub_key)", &pk);
+ if(p) {
+ do_pubkey_field(data, certnum, "dsa(p)", &elem);
+ p = getASN1Element(&elem, p, param->end);
+ if(p) {
+ do_pubkey_field(data, certnum, "dsa(q)", &elem);
+ if(getASN1Element(&elem, p, param->end)) {
+ do_pubkey_field(data, certnum, "dsa(g)", &elem);
+ do_pubkey_field(data, certnum, "dsa(pub_key)", &pk);
+ }
+ }
+ }
}
else if(strcasecompare(algo, "dhpublicnumber")) {
p = getASN1Element(&elem, param->beg, param->end);
- do_pubkey_field(data, certnum, "dh(p)", &elem);
- getASN1Element(&elem, param->beg, param->end);
- do_pubkey_field(data, certnum, "dh(g)", &elem);
- do_pubkey_field(data, certnum, "dh(pub_key)", &pk);
- }
-#if 0 /* Patent-encumbered. */
- else if(strcasecompare(algo, "ecPublicKey")) {
- /* Left TODO. */
+ if(p) {
+ do_pubkey_field(data, certnum, "dh(p)", &elem);
+ if(getASN1Element(&elem, param->beg, param->end)) {
+ do_pubkey_field(data, certnum, "dh(g)", &elem);
+ do_pubkey_field(data, certnum, "dh(pub_key)", &pk);
+ }
+ }
}
-#endif
}
CURLcode Curl_extract_certinfo(struct connectdata *conn,
@@ -896,7 +951,7 @@ CURLcode Curl_extract_certinfo(struct connectdata *conn,
/* Extract the certificate ASN.1 elements. */
if(Curl_parseX509(&cert, beg, end))
- return CURLE_OUT_OF_MEMORY;
+ return CURLE_PEER_FAILED_VERIFICATION;
/* Subject. */
ccp = DNtostr(&cert.subject);
@@ -1107,18 +1162,29 @@ CURLcode Curl_verifyhost(struct connectdata *conn,
/* Process extensions. */
for(p = cert.extensions.beg; p < cert.extensions.end && matched != 1;) {
p = getASN1Element(&ext, p, cert.extensions.end);
+ if(!p)
+ return CURLE_PEER_FAILED_VERIFICATION;
+
/* Check if extension is a subjectAlternativeName. */
ext.beg = checkOID(ext.beg, ext.end, sanOID);
if(ext.beg) {
ext.beg = getASN1Element(&elem, ext.beg, ext.end);
+ if(!ext.beg)
+ return CURLE_PEER_FAILED_VERIFICATION;
/* Skip critical if present. */
- if(elem.tag == CURL_ASN1_BOOLEAN)
+ if(elem.tag == CURL_ASN1_BOOLEAN) {
ext.beg = getASN1Element(&elem, ext.beg, ext.end);
+ if(!ext.beg)
+ return CURLE_PEER_FAILED_VERIFICATION;
+ }
/* Parse the octet string contents: is a single sequence. */
- getASN1Element(&elem, elem.beg, elem.end);
+ if(!getASN1Element(&elem, elem.beg, elem.end))
+ return CURLE_PEER_FAILED_VERIFICATION;
/* Check all GeneralNames. */
for(q = elem.beg; matched != 1 && q < elem.end;) {
q = getASN1Element(&name, q, elem.end);
+ if(!q)
+ break;
switch(name.tag) {
case 2: /* DNS name. */
len = utf8asn1str(&dnsname, CURL_ASN1_IA5_STRING,
@@ -1131,8 +1197,8 @@ CURLcode Curl_verifyhost(struct connectdata *conn,
break;
case 7: /* IP address. */
- matched = (size_t) (name.end - q) == addrlen &&
- !memcmp(&addr, q, addrlen);
+ matched = (size_t) (name.end - name.beg) == addrlen &&
+ !memcmp(&addr, name.beg, addrlen);
break;
}
}
@@ -1159,8 +1225,12 @@ CURLcode Curl_verifyhost(struct connectdata *conn,
distinguished one to get the most significant one. */
while(q < cert.subject.end) {
q = getASN1Element(&dn, q, cert.subject.end);
+ if(!q)
+ break;
for(p = dn.beg; p < dn.end;) {
p = getASN1Element(&elem, p, dn.end);
+ if(!p)
+ return CURLE_PEER_FAILED_VERIFICATION;
/* We have a DN's AttributeTypeAndValue: check it in case it's a CN. */
elem.beg = checkOID(elem.beg, elem.end, cnOID);
if(elem.beg)
diff --git a/m4/curl-compilers.m4 b/m4/curl-compilers.m4
index b90e44d9..64180432 100644
--- a/m4/curl-compilers.m4
+++ b/m4/curl-compilers.m4
@@ -513,7 +513,7 @@ AC_DEFUN([CURL_COMPILER_WORKS_IFELSE], [
dnl only do runtime verification when not cross-compiling
if test "x$cross_compiling" != "xyes" &&
test "$tmp_compiler_works" = "yes"; then
- AC_RUN_IFELSE([
+ CURL_RUN_IFELSE([
AC_LANG_PROGRAM([[
# ifdef __STDC__
# include <stdlib.h>
@@ -1633,4 +1633,3 @@ AC_DEFUN([CURL_VAR_STRIP], [
[$1]="$ac_var_stripped"
squeeze [$1]
])
-
diff --git a/m4/curl-confopts.m4 b/m4/curl-confopts.m4
index e591caa5..a0f477aa 100644
--- a/m4/curl-confopts.m4
+++ b/m4/curl-confopts.m4
@@ -350,7 +350,6 @@ AC_DEFUN([CURL_CHECK_OPTION_RT], [
;;
esac
])
-
dnl CURL_CHECK_OPTION_WARNINGS
dnl -------------------------------------------------
@@ -649,4 +648,3 @@ AC_DEFUN([CURL_CHECK_NTLM_WB], [
NTLM_WB_ENABLED=1
fi
])
-
diff --git a/m4/curl-functions.m4 b/m4/curl-functions.m4
index 49b4c793..275b67b1 100644
--- a/m4/curl-functions.m4
+++ b/m4/curl-functions.m4
@@ -2090,7 +2090,7 @@ AC_DEFUN([CURL_CHECK_FUNC_GETADDRINFO], [
if test "x$cross_compiling" != "xyes" &&
test "$tst_compi_getaddrinfo" = "yes"; then
AC_MSG_CHECKING([if getaddrinfo seems to work])
- AC_RUN_IFELSE([
+ CURL_RUN_IFELSE([
AC_LANG_PROGRAM([[
$curl_includes_ws2tcpip
$curl_includes_stdlib
@@ -3024,7 +3024,7 @@ AC_DEFUN([CURL_CHECK_FUNC_GETIFADDRS], [
if test "x$cross_compiling" != "xyes" &&
test "$tst_compi_getifaddrs" = "yes"; then
AC_MSG_CHECKING([if getifaddrs seems to work])
- AC_RUN_IFELSE([
+ CURL_RUN_IFELSE([
AC_LANG_PROGRAM([[
$curl_includes_stdlib
$curl_includes_ifaddrs
@@ -3402,7 +3402,7 @@ AC_DEFUN([CURL_CHECK_FUNC_GMTIME_R], [
if test "x$cross_compiling" != "xyes" &&
test "$tst_compi_gmtime_r" = "yes"; then
AC_MSG_CHECKING([if gmtime_r seems to work])
- AC_RUN_IFELSE([
+ CURL_RUN_IFELSE([
AC_LANG_PROGRAM([[
$curl_includes_stdlib
$curl_includes_time
@@ -3643,7 +3643,7 @@ AC_DEFUN([CURL_CHECK_FUNC_INET_NTOP], [
if test "x$cross_compiling" != "xyes" &&
test "$tst_compi_inet_ntop" = "yes"; then
AC_MSG_CHECKING([if inet_ntop seems to work])
- AC_RUN_IFELSE([
+ CURL_RUN_IFELSE([
AC_LANG_PROGRAM([[
$curl_includes_stdlib
$curl_includes_arpa_inet
@@ -3802,7 +3802,7 @@ AC_DEFUN([CURL_CHECK_FUNC_INET_PTON], [
if test "x$cross_compiling" != "xyes" &&
test "$tst_compi_inet_pton" = "yes"; then
AC_MSG_CHECKING([if inet_pton seems to work])
- AC_RUN_IFELSE([
+ CURL_RUN_IFELSE([
AC_LANG_PROGRAM([[
$curl_includes_stdlib
$curl_includes_arpa_inet
@@ -4563,7 +4563,7 @@ AC_DEFUN([CURL_CHECK_FUNC_LOCALTIME_R], [
if test "x$cross_compiling" != "xyes" &&
test "$tst_compi_localtime_r" = "yes"; then
AC_MSG_CHECKING([if localtime_r seems to work])
- AC_RUN_IFELSE([
+ CURL_RUN_IFELSE([
AC_LANG_PROGRAM([[
$curl_includes_stdlib
$curl_includes_time
@@ -4802,7 +4802,7 @@ AC_DEFUN([CURL_CHECK_FUNC_POLL], [
if test "x$cross_compiling" != "xyes" &&
test "$tst_compi_poll" = "yes"; then
AC_MSG_CHECKING([if poll seems to work])
- AC_RUN_IFELSE([
+ CURL_RUN_IFELSE([
AC_LANG_PROGRAM([[
$curl_includes_stdlib
$curl_includes_poll
@@ -6181,7 +6181,7 @@ AC_DEFUN([CURL_CHECK_FUNC_STRERROR_R], [
if test "x$cross_compiling" != "xyes" &&
test "$tst_glibc_strerror_r" = "yes"; then
AC_MSG_CHECKING([if strerror_r seems to work])
- AC_RUN_IFELSE([
+ CURL_RUN_IFELSE([
AC_LANG_PROGRAM([[
$curl_includes_stdlib
$curl_includes_string
@@ -6242,7 +6242,7 @@ AC_DEFUN([CURL_CHECK_FUNC_STRERROR_R], [
if test "x$cross_compiling" != "xyes" &&
test "$tst_posix_strerror_r" = "yes"; then
AC_MSG_CHECKING([if strerror_r seems to work])
- AC_RUN_IFELSE([
+ CURL_RUN_IFELSE([
AC_LANG_PROGRAM([[
$curl_includes_stdlib
$curl_includes_string
diff --git a/m4/curl-override.m4 b/m4/curl-override.m4
index b27cb611..a0350498 100644
--- a/m4/curl-override.m4
+++ b/m4/curl-override.m4
@@ -73,4 +73,3 @@ char $1 ();
choke me
#endif
], [return $1 ();])])
-
diff --git a/m4/curl-reentrant.m4 b/m4/curl-reentrant.m4
index e32d3f8a..8b5ca124 100644
--- a/m4/curl-reentrant.m4
+++ b/m4/curl-reentrant.m4
@@ -614,4 +614,3 @@ AC_DEFUN([CURL_CONFIGURE_THREAD_SAFE], [
fi
#
])
-
diff --git a/m4/xc-am-iface.m4 b/m4/xc-am-iface.m4
index 1571c211..8fc2ea86 100644
--- a/m4/xc-am-iface.m4
+++ b/m4/xc-am-iface.m4
@@ -250,4 +250,3 @@ _XC_AMEND_DISTCLEAN_BODY([$1])
])dnl
m4_define([$0], [])[]dnl
])
-
diff --git a/m4/xc-cc-check.m4 b/m4/xc-cc-check.m4
index 777decf2..f95f2593 100644
--- a/m4/xc-cc-check.m4
+++ b/m4/xc-cc-check.m4
@@ -93,4 +93,3 @@ AC_DEFUN([XC_CHECK_PROG_CC], [
AC_BEFORE([$0],[_XC_PROG_CC_POSTLUDE])dnl
AC_REQUIRE([_XC_PROG_CC])dnl
])
-
diff --git a/m4/xc-lt-iface.m4 b/m4/xc-lt-iface.m4
index ec903f57..afbd990d 100644
--- a/m4/xc-lt-iface.m4
+++ b/m4/xc-lt-iface.m4
@@ -462,4 +462,3 @@ m4_ifdef([LT_INIT],
dnl
m4_define([$0],[])dnl
])
-
diff --git a/m4/xc-translit.m4 b/m4/xc-translit.m4
index 1918f168..456e7278 100644
--- a/m4/xc-translit.m4
+++ b/m4/xc-translit.m4
@@ -161,4 +161,3 @@ dnl Expands to quoted result of 'translit' expansion.
AC_DEFUN([XC_QTRANSLIT],
[XC_QUOTE(translit([$1], [$2], [$3]))])
-
diff --git a/m4/xc-val-flgs.m4 b/m4/xc-val-flgs.m4
index 36b432c9..95b450b2 100644
--- a/m4/xc-val-flgs.m4
+++ b/m4/xc-val-flgs.m4
@@ -240,4 +240,3 @@ AC_DEFUN([XC_CHECK_BUILD_FLAGS], [
AC_MSG_WARN([Continuing even with errors mentioned immediately above this line.])
fi
])
-
diff --git a/m4/zz40-xc-ovr.m4 b/m4/zz40-xc-ovr.m4
index 3d6e695f..14c92d8c 100644
--- a/m4/zz40-xc-ovr.m4
+++ b/m4/zz40-xc-ovr.m4
@@ -663,4 +663,3 @@ dnl
m4_pattern_forbid([^_*XC])dnl
m4_define([$0],[])dnl
])
-
diff --git a/m4/zz50-xc-ovr.m4 b/m4/zz50-xc-ovr.m4
index de0c8431..7f530dea 100644
--- a/m4/zz50-xc-ovr.m4
+++ b/m4/zz50-xc-ovr.m4
@@ -57,4 +57,3 @@ dnl provided elsewhere.
AC_DEFUN([XC_OVR_ZZ50],
[AC_BEFORE([$0],[AC_PROG_LIBTOOL])])
-
diff --git a/m4/zz60-xc-ovr.m4 b/m4/zz60-xc-ovr.m4
index 959f1188..45ed8b69 100644
--- a/m4/zz60-xc-ovr.m4
+++ b/m4/zz60-xc-ovr.m4
@@ -61,4 +61,3 @@ dnl
AC_BEFORE([$0],[AC_CONFIG_MACRO_DIR])dnl
AC_BEFORE([$0],[AC_CONFIG_MACRO_DIRS])dnl
])
-
diff --git a/packages/AIX/RPM/Makefile.am b/packages/AIX/RPM/Makefile.am
index d1e7bf9d..71e854ff 100644
--- a/packages/AIX/RPM/Makefile.am
+++ b/packages/AIX/RPM/Makefile.am
@@ -1,2 +1 @@
EXTRA_DIST = README curl.spec.in
-
diff --git a/packages/AIX/RPM/README b/packages/AIX/RPM/README
index 51615ad4..c2c31bd8 100644
--- a/packages/AIX/RPM/README
+++ b/packages/AIX/RPM/README
@@ -14,7 +14,7 @@ The AIX Toolbox setup (installs into /opt/freeware, with symlinks in
/usr/bin,/usr/lib,/usr/include) are based on IBM's aixtoolbox spec
file written by David Clissold <cliss@austin.ibm.com>, see
-ftp://ftp.software.ibm.com/aixtoolbox/SPECS/curl-7.9.3-2.spec
+https://public.dhe.ibm.com/aix/freeSoftware/aixtoolbox/SPECS/curl-7.61.0-1.spec
This spec file is designed to be a drop-in replacement for the
old spec file found at the above link. Thus, like the old spec file
@@ -30,4 +30,3 @@ Lastly, the spec file expects the Curl source distribution file to be
in .tar.bz2 format.
The nifty curl header of this README is a ripoff of the vms/readme file.
-
diff --git a/packages/EPM/Makefile.am b/packages/EPM/Makefile.am
deleted file mode 100644
index b010a4b0..00000000
--- a/packages/EPM/Makefile.am
+++ /dev/null
@@ -1,3 +0,0 @@
-AUTOMAKE_OPTIONS = foreign
-
-EXTRA_DIST = README curl.list.in
diff --git a/packages/EPM/README b/packages/EPM/README
deleted file mode 100644
index 0b031e84..00000000
--- a/packages/EPM/README
+++ /dev/null
@@ -1,12 +0,0 @@
-EPM is a free Unix software/file packaging program that generates distribution
-archives from a list of files. EPM Can:
-
- * Generate portable script-based distribution packages complete with
- installation and removal scripts.
- * Generate vendor distributions in AIX, BSD, Compaq Tru64, Debian, HP-UX,
- IRIX, Red Hat, and Solaris formats.
- * Provide a complete, cross-platform software distribution solution for your
- applications.
-
-http://www.easysw.com/epm/
-
diff --git a/packages/EPM/curl.list.in b/packages/EPM/curl.list.in
deleted file mode 100644
index 3a2028b8..00000000
--- a/packages/EPM/curl.list.in
+++ /dev/null
@@ -1,60 +0,0 @@
-# Directories...
-$prefix=@prefix@
-$exec_prefix=@exec_prefix@
-$bindir=@bindir@
-$confdir=@sysconfdir@
-$docdir=@prefix@/doc
-$mandir=@mandir@
-$libdir=@libdir@
-$srcdir=@top_srcdir@
-$includedir=@includedir@
-$datarootdir=@datarootdir@
-
-# Product information
-%product curl
-%copyright 1998-2002 by Daniel Stenberg
-%vendor Daniel Stenberg, <daniel@haxx.se>
-%license ${srcdir}/MITX.txt
-%readme ${srcdir}/README
-%description Curl is a command line tool for transferring data specified
-%description with URL syntax
-%version @VERSION@
-%packager Giuseppe "Cowo" Corbelli <cowo@lugbs.linux.it>
-
-f 0644 cowo pppusers ${mandir}/man1/curl.1 ./docs/curl.1
-f 0644 cowo pppusers ${mandir}/man1/curl-config.1 ./docs/curl-config.1
-f 0644 cowo pppusers ${mandir}/man1/mk-ca-bundle.1 ./docs/mk-ca-bundle.1
-f 0644 cowo pppusers ${mandir}/man3/curl_easy_cleanup.3 ./docs/curl_easy_cleanup.3
-f 0644 cowo pppusers ${mandir}/man3/curl_easy_getinfo.3 ./docs/curl_easy_getinfo.3
-f 0644 cowo pppusers ${mandir}/man3/curl_easy_init.3 ./docs/curl_easy_init.3
-f 0644 cowo pppusers ${mandir}/man3/curl_easy_perform.3 ./docs/curl_easy_perform.3
-f 0644 cowo pppusers ${mandir}/man3/curl_easy_setopt.3 ./docs/curl_easy_setopt.3
-f 0644 cowo pppusers ${mandir}/man3/curl_easy_duphandle.3 ./docs/curl_easy_duphandle.3
-f 0644 cowo pppusers ${mandir}/man3/curl_formparse.3 ./docs/curl_formparse.3
-f 0644 cowo pppusers ${mandir}/man3/curl_formadd.3 ./docs/curl_formadd.3
-f 0644 cowo pppusers ${mandir}/man3/curl_formfree.3 ./docs/curl_formfree.3
-f 0644 cowo pppusers ${mandir}/man3/curl_getdate.3 ./docs/curl_getdate.3
-f 0644 cowo pppusers ${mandir}/man3/curl_getenv.3 ./docs/curl_getenv.3
-f 0644 cowo pppusers ${mandir}/man3/curl_slist_append.3 ./docs/curl_slist_append.3
-f 0644 cowo pppusers ${mandir}/man3/curl_slist_free_all.3 ./docs/curl_slist_free_all.3
-f 0644 cowo pppusers ${mandir}/man3/curl_version.3 ./docs/curl_version.3
-f 0644 cowo pppusers ${mandir}/man3/curl_escape.3 ./docs/curl_escape.3
-f 0644 cowo pppusers ${mandir}/man3/curl_unescape.3 ./docs/curl_unescape.3
-f 0644 cowo pppusers ${mandir}/man3/curl_strequal.3 ./docs/curl_strequal.3
-f 0644 cowo pppusers ${mandir}/man3/curl_strnequal.3 ./docs/curl_strnequal.3
-f 0644 cowo pppusers ${mandir}/man3/curl_mprintf.3 ./docs/curl_mprintf.3
-f 0644 cowo pppusers ${mandir}/man3/curl_global_init.3 ./docs/curl_global_init.3
-f 0644 cowo pppusers ${mandir}/man3/curl_global_cleanup.3 ./docs/curl_global_cleanup.3
-f 0644 cowo pppusers ${mandir}/man3/libcurl.3 ./docs/libcurl.3
-f 0755 cowo pppusers ${libdir}/libcurl.so.2.0.2 ./lib/.libs/libcurl.so.2.0.2
-f 0755 cowo pppusers ${libdir}/libcurl.la ./lib/libcurl.la
-f 0755 cowo pppusers ${libdir}/libcurl.la ./lib/.libs/libcurl.la
-f 0644 cowo pppusers ${libdir}/libcurl.a ./lib/.libs/libcurl.a
-f 0755 cowo pppusers ${bindir}/curl ./src/curl
-f 0755 cowo pppusers ${bindir}/curl ./src/.libs/curl
-f 0644 cowo pppusers ${includedir}/curl/curl.h ./include/curl/curl.h
-f 0644 cowo pppusers ${includedir}/curl/easy.h ./include/curl/easy.h
-f 0644 cowo pppusers ${includedir}/curl/mprintf.h ./include/curl/mprintf.h
-f 0644 cowo pppusers ${includedir}/curl/stdcheaders.h ./include/curl/stdcheaders.h
-f 0644 cowo pppusers ${includedir}/curl/types.h ./include/curl/types.h
-f 0755 cowo pppusers ${bindir}/curl-config ./curl-config
diff --git a/packages/Linux/RPM/Makefile.am b/packages/Linux/RPM/Makefile.am
index 5d46d87c..89f43d5e 100644
--- a/packages/Linux/RPM/Makefile.am
+++ b/packages/Linux/RPM/Makefile.am
@@ -1,2 +1 @@
EXTRA_DIST = README curl-ssl.spec.in curl.spec.in make_curl_rpm
-
diff --git a/packages/Linux/RPM/README b/packages/Linux/RPM/README
index a48ece04..a6936ba5 100644
--- a/packages/Linux/RPM/README
+++ b/packages/Linux/RPM/README
@@ -2,4 +2,3 @@ Author: Daniel (I'm not trustworthy, replace this!)
Paul Marquis's 'make_curl_rpm' script is a fine example on how to automate the
jobs. You need to fill in your own name and email at least.
-
diff --git a/packages/Linux/RPM/curl.spec.in b/packages/Linux/RPM/curl.spec.in
index 59577b04..7d0b9180 100644
--- a/packages/Linux/RPM/curl.spec.in
+++ b/packages/Linux/RPM/curl.spec.in
@@ -81,4 +81,3 @@ rm -rf %{builddir}
- use _mandir instead of prefix to locate man pages because
_mandir is not always prefix/man/man?.
-
diff --git a/packages/Makefile.am b/packages/Makefile.am
index bef04f3c..b2e7228c 100644
--- a/packages/Makefile.am
+++ b/packages/Makefile.am
@@ -1,33 +1,33 @@
-SUBDIRS = Win32 Linux Solaris EPM AIX vms
+SUBDIRS = Win32 Linux Solaris AIX vms
-EXTRA_DIST = README \
- DOS/README \
- DOS/common.dj \
- NetWare/get_ver.awk \
- NetWare/get_exp.awk \
- OS400/README.OS400 \
- OS400/ccsidcurl.c \
- OS400/ccsidcurl.h \
- OS400/curl.inc.in \
- OS400/initscript.sh \
- OS400/make-include.sh \
- OS400/make-lib.sh \
- OS400/make-src.sh \
- OS400/make-tests.sh \
- OS400/makefile.sh \
- OS400/os400sys.c \
- OS400/os400sys.h \
- Symbian/bwins/libcurlu.def \
- Symbian/eabi/libcurlu.def \
- Symbian/group/bld.inf \
- Symbian/group/curl.iby \
- Symbian/group/curl.mmp \
- Symbian/group/curl.pkg \
- Symbian/group/libcurl.iby \
- Symbian/group/libcurl.mmp \
- Symbian/group/libcurl.pkg \
- Symbian/readme.txt \
- TPF/curl.mak \
- TPF/maketpf.env_curl \
- TPF/maketpf.env_curllib \
- Android/Android.mk
+EXTRA_DIST = README \
+ DOS/README \
+ DOS/common.dj \
+ NetWare/get_ver.awk \
+ NetWare/get_exp.awk \
+ OS400/README.OS400 \
+ OS400/ccsidcurl.c \
+ OS400/ccsidcurl.h \
+ OS400/curl.inc.in \
+ OS400/initscript.sh \
+ OS400/make-include.sh \
+ OS400/make-lib.sh \
+ OS400/make-src.sh \
+ OS400/make-tests.sh \
+ OS400/makefile.sh \
+ OS400/os400sys.c \
+ OS400/os400sys.h \
+ Symbian/bwins/libcurlu.def \
+ Symbian/eabi/libcurlu.def \
+ Symbian/group/bld.inf \
+ Symbian/group/curl.iby \
+ Symbian/group/curl.mmp \
+ Symbian/group/curl.pkg \
+ Symbian/group/libcurl.iby \
+ Symbian/group/libcurl.mmp \
+ Symbian/group/libcurl.pkg \
+ Symbian/readme.txt \
+ TPF/curl.mak \
+ TPF/maketpf.env_curl \
+ TPF/maketpf.env_curllib \
+ Android/Android.mk
diff --git a/packages/NetWare/get_exp.awk b/packages/NetWare/get_exp.awk
index 566e891e..9bbb012a 100644
--- a/packages/NetWare/get_exp.awk
+++ b/packages/NetWare/get_exp.awk
@@ -69,4 +69,3 @@ END {
}
printf(" %s\n", exports[++x])
}
-
diff --git a/packages/NetWare/get_ver.awk b/packages/NetWare/get_ver.awk
index 03ee5ec6..2db2be98 100644
--- a/packages/NetWare/get_ver.awk
+++ b/packages/NetWare/get_ver.awk
@@ -41,4 +41,3 @@ BEGIN {
print "LIBCURL_VERSION_STR = " version_string
print "LIBCURL_COPYRIGHT_STR = " copyright_string
}
-
diff --git a/packages/OS400/curl.inc.in b/packages/OS400/curl.inc.in
index 8b150ed8..2cf7899b 100644
--- a/packages/OS400/curl.inc.in
+++ b/packages/OS400/curl.inc.in
@@ -1598,6 +1598,8 @@
d c 10
d CURLSSLBACKEND_MBEDTLS...
d c 11
+ d CURLSSLBACKEND_MESALINK...
+ d c 12
* Aliases for clones.
d CURLSSLBACKEND_LIBRESSL...
d c 1
diff --git a/packages/Symbian/bwins/libcurlu.def b/packages/Symbian/bwins/libcurlu.def
index 035df135..7f30b7fe 100644
--- a/packages/Symbian/bwins/libcurlu.def
+++ b/packages/Symbian/bwins/libcurlu.def
@@ -58,4 +58,3 @@ EXPORTS
curl_easy_recv @ 57 NONAME
curl_easy_send @ 58 NONAME
curl_multi_wait @ 59 NONAME
-
diff --git a/packages/Symbian/eabi/libcurlu.def b/packages/Symbian/eabi/libcurlu.def
index 035df135..7f30b7fe 100644
--- a/packages/Symbian/eabi/libcurlu.def
+++ b/packages/Symbian/eabi/libcurlu.def
@@ -58,4 +58,3 @@ EXPORTS
curl_easy_recv @ 57 NONAME
curl_easy_send @ 58 NONAME
curl_multi_wait @ 59 NONAME
-
diff --git a/packages/Symbian/group/curl.mmp b/packages/Symbian/group/curl.mmp
index 4b304a3d..14ccf141 100644
--- a/packages/Symbian/group/curl.mmp
+++ b/packages/Symbian/group/curl.mmp
@@ -61,4 +61,3 @@ STATICLIBRARY libcrt0.lib
CAPABILITY NetworkServices
EPOCSTACKSIZE 0x8000
-
diff --git a/packages/TPF/curl.mak b/packages/TPF/curl.mak
index 5ef2ae16..176abec2 100644
--- a/packages/TPF/curl.mak
+++ b/packages/TPF/curl.mak
@@ -57,4 +57,3 @@ CFLAGS_CURL += -DCURL_DISABLE_TFTP
#######################################################################
include maketpf.rules
-
diff --git a/packages/TPF/maketpf.env_curl b/packages/TPF/maketpf.env_curl
index 91a2573a..3ebf1d18 100644
--- a/packages/TPF/maketpf.env_curl
+++ b/packages/TPF/maketpf.env_curl
@@ -22,4 +22,3 @@ ROOTINCDIRS += $(foreach d,$(TPF_ROOT_LM),$d/opensource/curl/include/curl)
################################################################################
CFLAGS_$(APP) += -D TPF
-
diff --git a/packages/TPF/maketpf.env_curllib b/packages/TPF/maketpf.env_curllib
index f6ad5ba9..30cc3169 100644
--- a/packages/TPF/maketpf.env_curllib
+++ b/packages/TPF/maketpf.env_curllib
@@ -54,4 +54,3 @@ ROOTCDIRS := $(foreach d,$(TPF_ROOT_LM),$d/opensource/curl/lib)
################################################################################
CFLAGS_$(APP) += -D TPF
-
diff --git a/packages/Win32/README b/packages/Win32/README
index b37b5753..f2196743 100644
--- a/packages/Win32/README
+++ b/packages/Win32/README
@@ -1,4 +1,4 @@
-Author: Jörn Hartroth
+Author: Jörn Hartroth
DESCRIPTION
diff --git a/packages/vms/clean_gnv_curl.com b/packages/vms/clean_gnv_curl.com
index 67b9d9db..4e58356b 100644
--- a/packages/vms/clean_gnv_curl.com
+++ b/packages/vms/clean_gnv_curl.com
@@ -220,9 +220,6 @@ $!
$ file = "lcl_root:[...]gnv*.opt"
$ if f$search(file) .nes. "" then delete 'file';*
$!
-$ file = "lcl_root:[.packages.EPM]curl.list"
-$ if f$search(file) .nes. "" then delete 'file';*
-$!
$ file = "lcl_root:[.packages.vms]macro32_exactcase.exe"
$ if f$search(file) .nes. "" then delete 'file';*
$!
diff --git a/packages/vms/gnv_conftest.c_first b/packages/vms/gnv_conftest.c_first
index 8645b0e3..f47469c5 100644
--- a/packages/vms/gnv_conftest.c_first
+++ b/packages/vms/gnv_conftest.c_first
@@ -58,4 +58,3 @@ char ENGINE_load_builtin_engines (void) {return 0;}
* it turns out that VMS does not have the CRYPTO_LOCK symbol in the
* transfer vector, even though it is in the header file.
*/
-
diff --git a/projects/Windows/VC10/lib/libcurl.vcxproj b/projects/Windows/VC10/lib/libcurl.vcxproj
index 86f2bfee..20e64bd7 100644
--- a/projects/Windows/VC10/lib/libcurl.vcxproj
+++ b/projects/Windows/VC10/lib/libcurl.vcxproj
@@ -862,7 +862,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -896,7 +896,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -930,7 +930,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -963,7 +963,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -997,7 +997,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1029,7 +1029,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1063,7 +1063,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1094,7 +1094,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1118,7 +1118,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1138,7 +1138,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1161,7 +1161,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1184,7 +1184,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1205,7 +1205,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1225,7 +1225,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1248,7 +1248,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1271,7 +1271,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1298,7 +1298,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1332,7 +1332,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1366,7 +1366,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1398,7 +1398,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1428,7 +1428,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1462,7 +1462,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1496,7 +1496,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1529,7 +1529,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1563,7 +1563,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1595,7 +1595,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1627,7 +1627,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1658,7 +1658,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1688,7 +1688,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1722,7 +1722,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1756,7 +1756,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1788,7 +1788,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1810,7 +1810,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1833,7 +1833,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1853,7 +1853,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1876,7 +1876,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1896,7 +1896,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1916,7 +1916,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1939,7 +1939,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1962,7 +1962,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1982,7 +1982,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -2005,7 +2005,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -2025,7 +2025,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -2048,7 +2048,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -2069,7 +2069,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2092,7 +2092,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2112,7 +2112,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2135,7 +2135,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2155,7 +2155,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2175,7 +2175,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2198,7 +2198,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2221,7 +2221,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2241,7 +2241,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2264,7 +2264,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2284,7 +2284,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2307,7 +2307,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2349,6 +2349,7 @@
<ClCompile Include="..\..\..\..\lib\curl_sspi.c" />
<ClCompile Include="..\..\..\..\lib\curl_threads.c" />
<ClCompile Include="..\..\..\..\lib\dict.c" />
+ <ClCompile Include="..\..\..\..\lib\doh.c" />
<ClCompile Include="..\..\..\..\lib\dotdot.c" />
<ClCompile Include="..\..\..\..\lib\easy.c" />
<ClCompile Include="..\..\..\..\lib\escape.c" />
@@ -2427,6 +2428,7 @@
<ClCompile Include="..\..\..\..\lib\tftp.c" />
<ClCompile Include="..\..\..\..\lib\timeval.c" />
<ClCompile Include="..\..\..\..\lib\transfer.c" />
+ <ClCompile Include="..\..\..\..\lib\urlapi.c" />
<ClCompile Include="..\..\..\..\lib\url.c" />
<ClCompile Include="..\..\..\..\lib\version.c" />
<ClCompile Include="..\..\..\..\lib\warnless.c" />
@@ -2450,6 +2452,7 @@
<ClCompile Include="..\..\..\..\lib\vtls\gskit.c" />
<ClCompile Include="..\..\..\..\lib\vtls\gtls.c" />
<ClCompile Include="..\..\..\..\lib\vtls\mbedtls.c" />
+ <ClCompile Include="..\..\..\..\lib\vtls\mesalink.c" />
<ClCompile Include="..\..\..\..\lib\vtls\nss.c" />
<ClCompile Include="..\..\..\..\lib\vtls\openssl.c" />
<ClCompile Include="..\..\..\..\lib\vtls\polarssl.c" />
@@ -2497,6 +2500,7 @@
<ClInclude Include="..\..\..\..\lib\curl_threads.h" />
<ClInclude Include="..\..\..\..\lib\curlx.h" />
<ClInclude Include="..\..\..\..\lib\dict.h" />
+ <ClInclude Include="..\..\..\..\lib\doh.h" />
<ClInclude Include="..\..\..\..\lib\dotdot.h" />
<ClInclude Include="..\..\..\..\lib\easyif.h" />
<ClInclude Include="..\..\..\..\lib\escape.h" />
@@ -2561,6 +2565,7 @@
<ClInclude Include="..\..\..\..\lib\tftp.h" />
<ClInclude Include="..\..\..\..\lib\timeval.h" />
<ClInclude Include="..\..\..\..\lib\transfer.h" />
+ <ClInclude Include="..\..\..\..\lib\urlapi-int.h" />
<ClInclude Include="..\..\..\..\lib\urldata.h" />
<ClInclude Include="..\..\..\..\lib\url.h" />
<ClInclude Include="..\..\..\..\lib\warnless.h" />
@@ -2575,6 +2580,7 @@
<ClInclude Include="..\..\..\..\lib\vtls\gskit.h" />
<ClInclude Include="..\..\..\..\lib\vtls\gtls.h" />
<ClInclude Include="..\..\..\..\lib\vtls\mbedtls.h" />
+ <ClInclude Include="..\..\..\..\lib\vtls\mesalink.h" />
<ClInclude Include="..\..\..\..\lib\vtls\nssg.h" />
<ClInclude Include="..\..\..\..\lib\vtls\openssl.h" />
<ClInclude Include="..\..\..\..\lib\vtls\polarssl.h" />
diff --git a/projects/Windows/VC11/lib/libcurl.vcxproj b/projects/Windows/VC11/lib/libcurl.vcxproj
index e51f8530..cb7abce8 100644
--- a/projects/Windows/VC11/lib/libcurl.vcxproj
+++ b/projects/Windows/VC11/lib/libcurl.vcxproj
@@ -918,7 +918,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -952,7 +952,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -986,7 +986,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1019,7 +1019,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1053,7 +1053,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1085,7 +1085,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1119,7 +1119,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1150,7 +1150,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1174,7 +1174,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1194,7 +1194,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1217,7 +1217,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1240,7 +1240,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1261,7 +1261,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1281,7 +1281,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1304,7 +1304,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1327,7 +1327,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1354,7 +1354,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1388,7 +1388,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1422,7 +1422,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1454,7 +1454,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1484,7 +1484,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1518,7 +1518,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1552,7 +1552,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1585,7 +1585,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1619,7 +1619,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1651,7 +1651,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1683,7 +1683,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1714,7 +1714,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1744,7 +1744,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1778,7 +1778,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1812,7 +1812,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1844,7 +1844,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1866,7 +1866,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1889,7 +1889,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1909,7 +1909,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1932,7 +1932,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1952,7 +1952,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1972,7 +1972,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1995,7 +1995,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -2018,7 +2018,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -2038,7 +2038,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -2061,7 +2061,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -2081,7 +2081,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -2104,7 +2104,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -2125,7 +2125,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2148,7 +2148,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2168,7 +2168,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2191,7 +2191,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2211,7 +2211,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2231,7 +2231,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2254,7 +2254,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2277,7 +2277,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2297,7 +2297,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2320,7 +2320,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2340,7 +2340,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2363,7 +2363,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2405,6 +2405,7 @@
<ClCompile Include="..\..\..\..\lib\curl_sspi.c" />
<ClCompile Include="..\..\..\..\lib\curl_threads.c" />
<ClCompile Include="..\..\..\..\lib\dict.c" />
+ <ClCompile Include="..\..\..\..\lib\doh.c" />
<ClCompile Include="..\..\..\..\lib\dotdot.c" />
<ClCompile Include="..\..\..\..\lib\easy.c" />
<ClCompile Include="..\..\..\..\lib\escape.c" />
@@ -2483,6 +2484,7 @@
<ClCompile Include="..\..\..\..\lib\tftp.c" />
<ClCompile Include="..\..\..\..\lib\timeval.c" />
<ClCompile Include="..\..\..\..\lib\transfer.c" />
+ <ClCompile Include="..\..\..\..\lib\urlapi.c" />
<ClCompile Include="..\..\..\..\lib\url.c" />
<ClCompile Include="..\..\..\..\lib\version.c" />
<ClCompile Include="..\..\..\..\lib\warnless.c" />
@@ -2506,6 +2508,7 @@
<ClCompile Include="..\..\..\..\lib\vtls\gskit.c" />
<ClCompile Include="..\..\..\..\lib\vtls\gtls.c" />
<ClCompile Include="..\..\..\..\lib\vtls\mbedtls.c" />
+ <ClCompile Include="..\..\..\..\lib\vtls\mesalink.c" />
<ClCompile Include="..\..\..\..\lib\vtls\nss.c" />
<ClCompile Include="..\..\..\..\lib\vtls\openssl.c" />
<ClCompile Include="..\..\..\..\lib\vtls\polarssl.c" />
@@ -2553,6 +2556,7 @@
<ClInclude Include="..\..\..\..\lib\curl_threads.h" />
<ClInclude Include="..\..\..\..\lib\curlx.h" />
<ClInclude Include="..\..\..\..\lib\dict.h" />
+ <ClInclude Include="..\..\..\..\lib\doh.h" />
<ClInclude Include="..\..\..\..\lib\dotdot.h" />
<ClInclude Include="..\..\..\..\lib\easyif.h" />
<ClInclude Include="..\..\..\..\lib\escape.h" />
@@ -2617,6 +2621,7 @@
<ClInclude Include="..\..\..\..\lib\tftp.h" />
<ClInclude Include="..\..\..\..\lib\timeval.h" />
<ClInclude Include="..\..\..\..\lib\transfer.h" />
+ <ClInclude Include="..\..\..\..\lib\urlapi-int.h" />
<ClInclude Include="..\..\..\..\lib\urldata.h" />
<ClInclude Include="..\..\..\..\lib\url.h" />
<ClInclude Include="..\..\..\..\lib\warnless.h" />
@@ -2631,6 +2636,7 @@
<ClInclude Include="..\..\..\..\lib\vtls\gskit.h" />
<ClInclude Include="..\..\..\..\lib\vtls\gtls.h" />
<ClInclude Include="..\..\..\..\lib\vtls\mbedtls.h" />
+ <ClInclude Include="..\..\..\..\lib\vtls\mesalink.h" />
<ClInclude Include="..\..\..\..\lib\vtls\nssg.h" />
<ClInclude Include="..\..\..\..\lib\vtls\openssl.h" />
<ClInclude Include="..\..\..\..\lib\vtls\polarssl.h" />
diff --git a/projects/Windows/VC12/lib/libcurl.vcxproj b/projects/Windows/VC12/lib/libcurl.vcxproj
index 4f68e03a..154e4456 100644
--- a/projects/Windows/VC12/lib/libcurl.vcxproj
+++ b/projects/Windows/VC12/lib/libcurl.vcxproj
@@ -918,7 +918,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -952,7 +952,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -986,7 +986,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1019,7 +1019,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1053,7 +1053,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1085,7 +1085,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1119,7 +1119,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1150,7 +1150,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1174,7 +1174,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1194,7 +1194,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1217,7 +1217,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1240,7 +1240,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1261,7 +1261,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1281,7 +1281,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1304,7 +1304,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1327,7 +1327,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1354,7 +1354,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1388,7 +1388,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1422,7 +1422,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1454,7 +1454,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1484,7 +1484,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1518,7 +1518,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1552,7 +1552,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1585,7 +1585,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1619,7 +1619,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1651,7 +1651,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1683,7 +1683,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1714,7 +1714,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1744,7 +1744,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1778,7 +1778,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1812,7 +1812,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1844,7 +1844,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1866,7 +1866,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1889,7 +1889,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1909,7 +1909,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1932,7 +1932,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1952,7 +1952,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1972,7 +1972,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1995,7 +1995,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -2018,7 +2018,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -2038,7 +2038,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -2061,7 +2061,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -2081,7 +2081,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -2104,7 +2104,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -2125,7 +2125,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2148,7 +2148,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2168,7 +2168,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2191,7 +2191,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2211,7 +2211,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2231,7 +2231,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2254,7 +2254,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2277,7 +2277,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2297,7 +2297,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2320,7 +2320,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2340,7 +2340,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2363,7 +2363,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2405,6 +2405,7 @@
<ClCompile Include="..\..\..\..\lib\curl_sspi.c" />
<ClCompile Include="..\..\..\..\lib\curl_threads.c" />
<ClCompile Include="..\..\..\..\lib\dict.c" />
+ <ClCompile Include="..\..\..\..\lib\doh.c" />
<ClCompile Include="..\..\..\..\lib\dotdot.c" />
<ClCompile Include="..\..\..\..\lib\easy.c" />
<ClCompile Include="..\..\..\..\lib\escape.c" />
@@ -2483,6 +2484,7 @@
<ClCompile Include="..\..\..\..\lib\tftp.c" />
<ClCompile Include="..\..\..\..\lib\timeval.c" />
<ClCompile Include="..\..\..\..\lib\transfer.c" />
+ <ClCompile Include="..\..\..\..\lib\urlapi.c" />
<ClCompile Include="..\..\..\..\lib\url.c" />
<ClCompile Include="..\..\..\..\lib\version.c" />
<ClCompile Include="..\..\..\..\lib\warnless.c" />
@@ -2506,6 +2508,7 @@
<ClCompile Include="..\..\..\..\lib\vtls\gskit.c" />
<ClCompile Include="..\..\..\..\lib\vtls\gtls.c" />
<ClCompile Include="..\..\..\..\lib\vtls\mbedtls.c" />
+ <ClCompile Include="..\..\..\..\lib\vtls\mesalink.c" />
<ClCompile Include="..\..\..\..\lib\vtls\nss.c" />
<ClCompile Include="..\..\..\..\lib\vtls\openssl.c" />
<ClCompile Include="..\..\..\..\lib\vtls\polarssl.c" />
@@ -2553,6 +2556,7 @@
<ClInclude Include="..\..\..\..\lib\curl_threads.h" />
<ClInclude Include="..\..\..\..\lib\curlx.h" />
<ClInclude Include="..\..\..\..\lib\dict.h" />
+ <ClInclude Include="..\..\..\..\lib\doh.h" />
<ClInclude Include="..\..\..\..\lib\dotdot.h" />
<ClInclude Include="..\..\..\..\lib\easyif.h" />
<ClInclude Include="..\..\..\..\lib\escape.h" />
@@ -2617,6 +2621,7 @@
<ClInclude Include="..\..\..\..\lib\tftp.h" />
<ClInclude Include="..\..\..\..\lib\timeval.h" />
<ClInclude Include="..\..\..\..\lib\transfer.h" />
+ <ClInclude Include="..\..\..\..\lib\urlapi-int.h" />
<ClInclude Include="..\..\..\..\lib\urldata.h" />
<ClInclude Include="..\..\..\..\lib\url.h" />
<ClInclude Include="..\..\..\..\lib\warnless.h" />
@@ -2631,6 +2636,7 @@
<ClInclude Include="..\..\..\..\lib\vtls\gskit.h" />
<ClInclude Include="..\..\..\..\lib\vtls\gtls.h" />
<ClInclude Include="..\..\..\..\lib\vtls\mbedtls.h" />
+ <ClInclude Include="..\..\..\..\lib\vtls\mesalink.h" />
<ClInclude Include="..\..\..\..\lib\vtls\nssg.h" />
<ClInclude Include="..\..\..\..\lib\vtls\openssl.h" />
<ClInclude Include="..\..\..\..\lib\vtls\polarssl.h" />
diff --git a/projects/Windows/VC14/lib/libcurl.vcxproj b/projects/Windows/VC14/lib/libcurl.vcxproj
index 34c18617..0305a433 100644
--- a/projects/Windows/VC14/lib/libcurl.vcxproj
+++ b/projects/Windows/VC14/lib/libcurl.vcxproj
@@ -918,7 +918,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -952,7 +952,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -986,7 +986,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1019,7 +1019,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1053,7 +1053,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1085,7 +1085,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1119,7 +1119,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1150,7 +1150,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1174,7 +1174,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1194,7 +1194,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1217,7 +1217,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1240,7 +1240,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1261,7 +1261,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1281,7 +1281,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1304,7 +1304,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1327,7 +1327,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1354,7 +1354,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1388,7 +1388,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1422,7 +1422,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1454,7 +1454,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1484,7 +1484,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1518,7 +1518,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1552,7 +1552,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1585,7 +1585,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1619,7 +1619,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1651,7 +1651,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1683,7 +1683,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1714,7 +1714,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1744,7 +1744,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1778,7 +1778,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1812,7 +1812,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1844,7 +1844,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1866,7 +1866,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1889,7 +1889,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1909,7 +1909,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1932,7 +1932,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1952,7 +1952,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1972,7 +1972,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1995,7 +1995,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -2018,7 +2018,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -2038,7 +2038,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -2061,7 +2061,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -2081,7 +2081,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -2104,7 +2104,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -2125,7 +2125,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2148,7 +2148,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2168,7 +2168,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2191,7 +2191,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2211,7 +2211,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2231,7 +2231,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2254,7 +2254,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2277,7 +2277,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2297,7 +2297,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2320,7 +2320,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2340,7 +2340,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2363,7 +2363,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2405,6 +2405,7 @@
<ClCompile Include="..\..\..\..\lib\curl_sspi.c" />
<ClCompile Include="..\..\..\..\lib\curl_threads.c" />
<ClCompile Include="..\..\..\..\lib\dict.c" />
+ <ClCompile Include="..\..\..\..\lib\doh.c" />
<ClCompile Include="..\..\..\..\lib\dotdot.c" />
<ClCompile Include="..\..\..\..\lib\easy.c" />
<ClCompile Include="..\..\..\..\lib\escape.c" />
@@ -2483,6 +2484,7 @@
<ClCompile Include="..\..\..\..\lib\tftp.c" />
<ClCompile Include="..\..\..\..\lib\timeval.c" />
<ClCompile Include="..\..\..\..\lib\transfer.c" />
+ <ClCompile Include="..\..\..\..\lib\urlapi.c" />
<ClCompile Include="..\..\..\..\lib\url.c" />
<ClCompile Include="..\..\..\..\lib\version.c" />
<ClCompile Include="..\..\..\..\lib\warnless.c" />
@@ -2506,6 +2508,7 @@
<ClCompile Include="..\..\..\..\lib\vtls\gskit.c" />
<ClCompile Include="..\..\..\..\lib\vtls\gtls.c" />
<ClCompile Include="..\..\..\..\lib\vtls\mbedtls.c" />
+ <ClCompile Include="..\..\..\..\lib\vtls\mesalink.c" />
<ClCompile Include="..\..\..\..\lib\vtls\nss.c" />
<ClCompile Include="..\..\..\..\lib\vtls\openssl.c" />
<ClCompile Include="..\..\..\..\lib\vtls\polarssl.c" />
@@ -2553,6 +2556,7 @@
<ClInclude Include="..\..\..\..\lib\curl_threads.h" />
<ClInclude Include="..\..\..\..\lib\curlx.h" />
<ClInclude Include="..\..\..\..\lib\dict.h" />
+ <ClInclude Include="..\..\..\..\lib\doh.h" />
<ClInclude Include="..\..\..\..\lib\dotdot.h" />
<ClInclude Include="..\..\..\..\lib\easyif.h" />
<ClInclude Include="..\..\..\..\lib\escape.h" />
@@ -2617,6 +2621,7 @@
<ClInclude Include="..\..\..\..\lib\tftp.h" />
<ClInclude Include="..\..\..\..\lib\timeval.h" />
<ClInclude Include="..\..\..\..\lib\transfer.h" />
+ <ClInclude Include="..\..\..\..\lib\urlapi-int.h" />
<ClInclude Include="..\..\..\..\lib\urldata.h" />
<ClInclude Include="..\..\..\..\lib\url.h" />
<ClInclude Include="..\..\..\..\lib\warnless.h" />
@@ -2631,6 +2636,7 @@
<ClInclude Include="..\..\..\..\lib\vtls\gskit.h" />
<ClInclude Include="..\..\..\..\lib\vtls\gtls.h" />
<ClInclude Include="..\..\..\..\lib\vtls\mbedtls.h" />
+ <ClInclude Include="..\..\..\..\lib\vtls\mesalink.h" />
<ClInclude Include="..\..\..\..\lib\vtls\nssg.h" />
<ClInclude Include="..\..\..\..\lib\vtls\openssl.h" />
<ClInclude Include="..\..\..\..\lib\vtls\polarssl.h" />
diff --git a/projects/Windows/VC15/lib/libcurl.vcxproj b/projects/Windows/VC15/lib/libcurl.vcxproj
index c3e93c8b..62da96af 100644
--- a/projects/Windows/VC15/lib/libcurl.vcxproj
+++ b/projects/Windows/VC15/lib/libcurl.vcxproj
@@ -918,7 +918,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -952,7 +952,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -986,7 +986,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1019,7 +1019,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1053,7 +1053,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1085,7 +1085,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1119,7 +1119,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1150,7 +1150,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1174,7 +1174,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1194,7 +1194,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1217,7 +1217,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1240,7 +1240,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1261,7 +1261,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1281,7 +1281,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1304,7 +1304,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1327,7 +1327,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\wolfssl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_CYASSL;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_CYASSL;USE_IPV6;HAVE_CYASSL_OPTIONS_H;HAVE_CYASSL_ERROR_SSL_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1354,7 +1354,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1388,7 +1388,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1422,7 +1422,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1454,7 +1454,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1484,7 +1484,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1518,7 +1518,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1552,7 +1552,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1585,7 +1585,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1619,7 +1619,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1651,7 +1651,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1683,7 +1683,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1714,7 +1714,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1744,7 +1744,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1778,7 +1778,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1812,7 +1812,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1844,7 +1844,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -1866,7 +1866,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1889,7 +1889,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1909,7 +1909,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1932,7 +1932,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1952,7 +1952,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1972,7 +1972,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -1995,7 +1995,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -2018,7 +2018,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -2038,7 +2038,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -2061,7 +2061,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -2081,7 +2081,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -2104,7 +2104,7 @@
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -2125,7 +2125,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2148,7 +2148,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2168,7 +2168,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2191,7 +2191,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2211,7 +2211,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2231,7 +2231,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2254,7 +2254,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2277,7 +2277,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2297,7 +2297,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2320,7 +2320,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_IPV6;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2340,7 +2340,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2363,7 +2363,7 @@
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -2405,6 +2405,7 @@
<ClCompile Include="..\..\..\..\lib\curl_sspi.c" />
<ClCompile Include="..\..\..\..\lib\curl_threads.c" />
<ClCompile Include="..\..\..\..\lib\dict.c" />
+ <ClCompile Include="..\..\..\..\lib\doh.c" />
<ClCompile Include="..\..\..\..\lib\dotdot.c" />
<ClCompile Include="..\..\..\..\lib\easy.c" />
<ClCompile Include="..\..\..\..\lib\escape.c" />
@@ -2483,6 +2484,7 @@
<ClCompile Include="..\..\..\..\lib\tftp.c" />
<ClCompile Include="..\..\..\..\lib\timeval.c" />
<ClCompile Include="..\..\..\..\lib\transfer.c" />
+ <ClCompile Include="..\..\..\..\lib\urlapi.c" />
<ClCompile Include="..\..\..\..\lib\url.c" />
<ClCompile Include="..\..\..\..\lib\version.c" />
<ClCompile Include="..\..\..\..\lib\warnless.c" />
@@ -2506,6 +2508,7 @@
<ClCompile Include="..\..\..\..\lib\vtls\gskit.c" />
<ClCompile Include="..\..\..\..\lib\vtls\gtls.c" />
<ClCompile Include="..\..\..\..\lib\vtls\mbedtls.c" />
+ <ClCompile Include="..\..\..\..\lib\vtls\mesalink.c" />
<ClCompile Include="..\..\..\..\lib\vtls\nss.c" />
<ClCompile Include="..\..\..\..\lib\vtls\openssl.c" />
<ClCompile Include="..\..\..\..\lib\vtls\polarssl.c" />
@@ -2553,6 +2556,7 @@
<ClInclude Include="..\..\..\..\lib\curl_threads.h" />
<ClInclude Include="..\..\..\..\lib\curlx.h" />
<ClInclude Include="..\..\..\..\lib\dict.h" />
+ <ClInclude Include="..\..\..\..\lib\doh.h" />
<ClInclude Include="..\..\..\..\lib\dotdot.h" />
<ClInclude Include="..\..\..\..\lib\easyif.h" />
<ClInclude Include="..\..\..\..\lib\escape.h" />
@@ -2617,6 +2621,7 @@
<ClInclude Include="..\..\..\..\lib\tftp.h" />
<ClInclude Include="..\..\..\..\lib\timeval.h" />
<ClInclude Include="..\..\..\..\lib\transfer.h" />
+ <ClInclude Include="..\..\..\..\lib\urlapi-int.h" />
<ClInclude Include="..\..\..\..\lib\urldata.h" />
<ClInclude Include="..\..\..\..\lib\url.h" />
<ClInclude Include="..\..\..\..\lib\warnless.h" />
@@ -2631,6 +2636,7 @@
<ClInclude Include="..\..\..\..\lib\vtls\gskit.h" />
<ClInclude Include="..\..\..\..\lib\vtls\gtls.h" />
<ClInclude Include="..\..\..\..\lib\vtls\mbedtls.h" />
+ <ClInclude Include="..\..\..\..\lib\vtls\mesalink.h" />
<ClInclude Include="..\..\..\..\lib\vtls\nssg.h" />
<ClInclude Include="..\..\..\..\lib\vtls\openssl.h" />
<ClInclude Include="..\..\..\..\lib\vtls\polarssl.h" />
diff --git a/projects/Windows/VC6/lib/libcurl.dsp b/projects/Windows/VC6/lib/libcurl.dsp
index 5bd1708b..cb3a33b7 100644
--- a/projects/Windows/VC6/lib/libcurl.dsp
+++ b/projects/Windows/VC6/lib/libcurl.dsp
@@ -834,6 +834,10 @@ SOURCE=..\..\..\..\lib\dict.c
# End Source File
# Begin Source File
+SOURCE=..\..\..\..\lib\doh.c
+# End Source File
+# Begin Source File
+
SOURCE=..\..\..\..\lib\dotdot.c
# End Source File
# Begin Source File
@@ -1146,6 +1150,10 @@ SOURCE=..\..\..\..\lib\transfer.c
# End Source File
# Begin Source File
+SOURCE=..\..\..\..\lib\urlapi.c
+# End Source File
+# Begin Source File
+
SOURCE=..\..\..\..\lib\url.c
# End Source File
# Begin Source File
@@ -1238,6 +1246,10 @@ SOURCE=..\..\..\..\lib\vtls\mbedtls.c
# End Source File
# Begin Source File
+SOURCE=..\..\..\..\lib\vtls\mesalink.c
+# End Source File
+# Begin Source File
+
SOURCE=..\..\..\..\lib\vtls\nss.c
# End Source File
# Begin Source File
@@ -1422,6 +1434,10 @@ SOURCE=..\..\..\..\lib\dict.h
# End Source File
# Begin Source File
+SOURCE=..\..\..\..\lib\doh.h
+# End Source File
+# Begin Source File
+
SOURCE=..\..\..\..\lib\dotdot.h
# End Source File
# Begin Source File
@@ -1678,6 +1694,10 @@ SOURCE=..\..\..\..\lib\transfer.h
# End Source File
# Begin Source File
+SOURCE=..\..\..\..\lib\urlapi-int.h
+# End Source File
+# Begin Source File
+
SOURCE=..\..\..\..\lib\urldata.h
# End Source File
# Begin Source File
@@ -1734,6 +1754,10 @@ SOURCE=..\..\..\..\lib\vtls\mbedtls.h
# End Source File
# Begin Source File
+SOURCE=..\..\..\..\lib\vtls\mesalink.h
+# End Source File
+# Begin Source File
+
SOURCE=..\..\..\..\lib\vtls\nssg.h
# End Source File
# Begin Source File
diff --git a/projects/Windows/VC7.1/lib/libcurl.vcproj b/projects/Windows/VC7.1/lib/libcurl.vcproj
index 4bf9b824..6a046a32 100644
--- a/projects/Windows/VC7.1/lib/libcurl.vcproj
+++ b/projects/Windows/VC7.1/lib/libcurl.vcproj
@@ -1334,6 +1334,9 @@
RelativePath="..\..\..\..\lib\dict.c">
</File>
<File
+ RelativePath="..\..\..\..\lib\doh.c">
+ </File>
+ <File
RelativePath="..\..\..\..\lib\dotdot.c">
</File>
<File
@@ -1568,6 +1571,9 @@
RelativePath="..\..\..\..\lib\transfer.c">
</File>
<File
+ RelativePath="..\..\..\..\lib\urlapi.c">
+ </File>
+ <File
RelativePath="..\..\..\..\lib\url.c">
</File>
<File
@@ -1701,6 +1707,9 @@
RelativePath="..\..\..\..\lib\dict.h">
</File>
<File
+ RelativePath="..\..\..\..\lib\doh.h">
+ </File>
+ <File
RelativePath="..\..\..\..\lib\dotdot.h">
</File>
<File
@@ -1893,6 +1902,9 @@
RelativePath="..\..\..\..\lib\transfer.h">
</File>
<File
+ RelativePath="..\..\..\..\lib\urlapi-int.h">
+ </File>
+ <File
RelativePath="..\..\..\..\lib\urldata.h">
</File>
<File
@@ -1997,6 +2009,9 @@
RelativePath="..\..\..\..\lib\vtls\mbedtls.c">
</File>
<File
+ RelativePath="..\..\..\..\lib\vtls\mesalink.c">
+ </File>
+ <File
RelativePath="..\..\..\..\lib\vtls\nss.c">
</File>
<File
@@ -2040,6 +2055,9 @@
RelativePath="..\..\..\..\lib\vtls\mbedtls.h">
</File>
<File
+ RelativePath="..\..\..\..\lib\vtls\mesalink.h">
+ </File>
+ <File
RelativePath="..\..\..\..\lib\vtls\nssg.h">
</File>
<File
diff --git a/projects/Windows/VC7/lib/libcurl.vcproj b/projects/Windows/VC7/lib/libcurl.vcproj
index 0b8b2fd4..1c3866d7 100644
--- a/projects/Windows/VC7/lib/libcurl.vcproj
+++ b/projects/Windows/VC7/lib/libcurl.vcproj
@@ -1188,6 +1188,9 @@
RelativePath="..\..\..\..\lib\dict.c">
</File>
<File
+ RelativePath="..\..\..\..\lib\doh.c">
+ </File>
+ <File
RelativePath="..\..\..\..\lib\dotdot.c">
</File>
<File
@@ -1422,6 +1425,9 @@
RelativePath="..\..\..\..\lib\transfer.c">
</File>
<File
+ RelativePath="..\..\..\..\lib\urlapi.c">
+ </File>
+ <File
RelativePath="..\..\..\..\lib\url.c">
</File>
<File
@@ -1555,6 +1561,9 @@
RelativePath="..\..\..\..\lib\dict.h">
</File>
<File
+ RelativePath="..\..\..\..\lib\doh.h">
+ </File>
+ <File
RelativePath="..\..\..\..\lib\dotdot.h">
</File>
<File
@@ -1747,6 +1756,9 @@
RelativePath="..\..\..\..\lib\transfer.h">
</File>
<File
+ RelativePath="..\..\..\..\lib\urlapi-int.h">
+ </File>
+ <File
RelativePath="..\..\..\..\lib\urldata.h">
</File>
<File
@@ -1851,6 +1863,9 @@
RelativePath="..\..\..\..\lib\vtls\mbedtls.c">
</File>
<File
+ RelativePath="..\..\..\..\lib\vtls\mesalink.c">
+ </File>
+ <File
RelativePath="..\..\..\..\lib\vtls\nss.c">
</File>
<File
@@ -1894,6 +1909,9 @@
RelativePath="..\..\..\..\lib\vtls\mbedtls.h">
</File>
<File
+ RelativePath="..\..\..\..\lib\vtls\mesalink.h">
+ </File>
+ <File
RelativePath="..\..\..\..\lib\vtls\nssg.h">
</File>
<File
diff --git a/projects/Windows/VC8/lib/libcurl.vcproj b/projects/Windows/VC8/lib/libcurl.vcproj
index c3d22e7b..615ecbc3 100644
--- a/projects/Windows/VC8/lib/libcurl.vcproj
+++ b/projects/Windows/VC8/lib/libcurl.vcproj
@@ -3721,6 +3721,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\lib\doh.c"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\lib\dotdot.c"
>
</File>
@@ -4033,6 +4037,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\lib\urlapi.c"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\lib\url.c"
>
</File>
@@ -4209,6 +4217,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\lib\doh.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\lib\dotdot.h"
>
</File>
@@ -4465,6 +4477,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\lib\urlapi-int.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\lib\urldata.h"
>
</File>
@@ -4596,6 +4612,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\lib\vtls\mesalink.c"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\lib\vtls\nss.c"
>
</File>
@@ -4652,6 +4672,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\lib\vtls\mesalink.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\lib\vtls\nssg.h"
>
</File>
diff --git a/projects/Windows/VC9/lib/libcurl.vcproj b/projects/Windows/VC9/lib/libcurl.vcproj
index a28fe913..720f7c0d 100644
--- a/projects/Windows/VC9/lib/libcurl.vcproj
+++ b/projects/Windows/VC9/lib/libcurl.vcproj
@@ -51,7 +51,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib"
- PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD"
+ PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_IPV6"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -136,7 +136,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib"
- PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD"
+ PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_IPV6"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -221,7 +221,7 @@
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib"
- PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL"
+ PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;USE_IPV6"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@@ -304,7 +304,7 @@
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib"
- PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL"
+ PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;USE_IPV6"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@@ -380,7 +380,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib"
- PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB"
+ PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_IPV6"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -447,7 +447,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib"
- PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB"
+ PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_IPV6"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -514,7 +514,7 @@
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib"
- PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB"
+ PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_IPV6"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@@ -581,7 +581,7 @@
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib"
- PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB"
+ PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_IPV6"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@@ -651,7 +651,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32"
- PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL"
+ PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_IPV6"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -736,7 +736,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32"
- PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL"
+ PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_IPV6"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -821,7 +821,7 @@
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32"
- PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;USE_OPENSSL"
+ PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_IPV6"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@@ -904,7 +904,7 @@
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32"
- PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;USE_OPENSSL"
+ PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_IPV6"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@@ -985,7 +985,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib"
- PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL"
+ PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -1070,7 +1070,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib"
- PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL"
+ PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -1155,7 +1155,7 @@
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib"
- PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL"
+ PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@@ -1238,7 +1238,7 @@
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib"
- PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL"
+ PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@@ -1319,7 +1319,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include"
- PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H"
+ PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -1404,7 +1404,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include"
- PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H"
+ PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -1489,7 +1489,7 @@
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include"
- PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H"
+ PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@@ -1572,7 +1572,7 @@
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include"
- PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H"
+ PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@@ -1648,7 +1648,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32"
- PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL"
+ PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_IPV6"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -1715,7 +1715,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32"
- PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL"
+ PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_IPV6"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -1781,7 +1781,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include"
- PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H"
+ PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -1848,7 +1848,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include"
- PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H"
+ PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -1914,7 +1914,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib"
- PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL"
+ PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -1981,7 +1981,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib"
- PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL"
+ PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -2047,7 +2047,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32"
- PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL"
+ PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_IPV6"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -2114,7 +2114,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32"
- PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL"
+ PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_IPV6"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -2180,7 +2180,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include"
- PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H"
+ PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -2247,7 +2247,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include"
- PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H"
+ PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -2314,7 +2314,7 @@
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32"
- PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL"
+ PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_IPV6"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@@ -2381,7 +2381,7 @@
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32"
- PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL"
+ PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_IPV6"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@@ -2447,7 +2447,7 @@
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include"
- PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H"
+ PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@@ -2514,7 +2514,7 @@
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include"
- PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H"
+ PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@@ -2580,7 +2580,7 @@
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib"
- PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL"
+ PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@@ -2647,7 +2647,7 @@
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib"
- PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL"
+ PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_IPV6"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@@ -2713,7 +2713,7 @@
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32"
- PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL"
+ PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_IPV6"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@@ -2780,7 +2780,7 @@
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32"
- PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL"
+ PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_IPV6"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@@ -2846,7 +2846,7 @@
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include"
- PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H"
+ PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@@ -2913,7 +2913,7 @@
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib;..\..\..\..\..\openssl\inc32;..\..\..\..\..\libssh2\include"
- PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;HAVE_LIBSSH2_H"
+ PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_OPENSSL;USE_LIBSSH2;USE_IPV6;HAVE_LIBSSH2_H"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@@ -2983,7 +2983,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib"
- PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES"
+ PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -3068,7 +3068,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib"
- PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES"
+ PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -3153,7 +3153,7 @@
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib"
- PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES"
+ PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@@ -3236,7 +3236,7 @@
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib"
- PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES"
+ PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@@ -3312,7 +3312,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib"
- PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES"
+ PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -3379,7 +3379,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib"
- PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES"
+ PreprocessorDefinitions="_DEBUG;BUILDING_LIBCURL;DEBUGBUILD;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -3446,7 +3446,7 @@
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib"
- PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES"
+ PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@@ -3513,7 +3513,7 @@
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\..\lib"
- PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;WANT_IDN_PROTOTYPES"
+ PreprocessorDefinitions="NDEBUG;BUILDING_LIBCURL;CURL_STATICLIB;USE_WINDOWS_SSPI;USE_SCHANNEL;USE_WIN32_IDN;USE_IPV6;WANT_IDN_PROTOTYPES"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@@ -3662,6 +3662,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\lib\doh.c"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\lib\dotdot.c"
>
</File>
@@ -3974,6 +3978,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\lib\urlapi.c"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\lib\url.c"
>
</File>
@@ -4150,6 +4158,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\lib\doh.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\lib\dotdot.h"
>
</File>
@@ -4406,6 +4418,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\lib\urlapi-int.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\lib\urldata.h"
>
</File>
@@ -4537,6 +4553,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\lib\vtls\mesalink.c"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\lib\vtls\nss.c"
>
</File>
@@ -4593,6 +4613,10 @@
>
</File>
<File
+ RelativePath="..\..\..\..\lib\vtls\mesalink.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\..\lib\vtls\nssg.h"
>
</File>
diff --git a/projects/build-openssl.bat b/projects/build-openssl.bat
index 98daff52..96fccf87 100644
--- a/projects/build-openssl.bat
+++ b/projects/build-openssl.bat
@@ -110,23 +110,23 @@ rem ***************************************************************************
) else if /i "%~1" == "-help" (
goto syntax
) else if /i "%~1" == "-VSpath" (
- if "%~2" == "" (
- echo.
- echo Error. Please provide VS Path.
- goto error
- ) else (
- set "ABS_VC_PATH=%~2\VC"
- shift
- )
+ if "%~2" == "" (
+ echo.
+ echo Error. Please provide VS Path.
+ goto error
+ ) else (
+ set "ABS_VC_PATH=%~2\VC"
+ shift
+ )
) else if /i "%~1" == "-perlpath" (
if "%~2" == "" (
- echo.
- echo Error. Please provide Perl root Path.
- goto error
- ) else (
- set "PERL_PATH=%~2"
- shift
- )
+ echo.
+ echo Error. Please provide Perl root Path.
+ goto error
+ ) else (
+ set "PERL_PATH=%~2"
+ shift
+ )
) else (
if not defined START_DIR (
set START_DIR=%~1%
@@ -144,12 +144,12 @@ rem ***************************************************************************
rem Default the start directory if one isn't specified
if not defined START_DIR set START_DIR=..\..\openssl
- if not defined ABS_VC_PATH (
+ if not defined ABS_VC_PATH (
rem Check we have a program files directory
- if not defined PF goto nopf
- set "ABS_VC_PATH=%PF%\%VC_PATH%"
+ if not defined PF goto nopf
+ set "ABS_VC_PATH=%PF%\%VC_PATH%"
)
-
+
rem Check we have Visual Studio installed
if not exist "%ABS_VC_PATH%" goto novc
@@ -260,17 +260,17 @@ rem ***************************************************************************
rem Move the PDB files
move tmp32.dbg\lib.pdb "%OUTDIR%\LIB Debug" 1>nul
move tmp32dll.dbg\lib.pdb "%OUTDIR%\DLL Debug" 1>nul
-
+
rem Remove the intermediate directories
rd tmp32.dbg /s /q
rd tmp32dll.dbg /s /q
if "%BUILD_CONFIG%" == "debug" goto success
-
+
:x64release
rem Configuring 64-bit Release Build
perl Configure VC-WIN64A --prefix=%CD%
-
+
rem Perform the build
call ms\do_win64a
nmake -f ms\nt.mak
@@ -299,14 +299,14 @@ rem ***************************************************************************
rd tmp32dll /s /q
goto success
-
+
:x86
rem Calculate our output directory
set OUTDIR=build\Win32\%VC_DESC%
if not exist %OUTDIR% md %OUTDIR%
if "%BUILD_CONFIG%" == "release" goto x86release
-
+
:x86debug
rem Configuring 32-bit Debug Build
perl Configure debug-VC-WIN32 no-asm --prefix=%CD%
@@ -339,7 +339,7 @@ rem ***************************************************************************
rd tmp32dll.dbg /s /q
if "%BUILD_CONFIG%" == "debug" goto success
-
+
:x86release
rem Configuring 32-bit Release Build
perl Configure VC-WIN32 no-asm --prefix=%CD%
@@ -405,13 +405,13 @@ rem ***************************************************************************
echo.
echo directory - Specifies the OpenSSL source directory
echo.
- echo -VSpath - Specify the custom VS path if Visual Studio is installed at other location
+ echo -VSpath - Specify the custom VS path if Visual Studio is installed at other location
echo then "C:/<ProgramFiles>/Microsoft Visual Studio[version]
echo For e.g. -VSpath "C:\apps\MVS14"
echo.
echo -perlpath - Specify the custom perl root path if perl is not located at "C:\Perl" and it is a
echo portable copy of perl and not installed on the win system
- echo For e.g. -perlpath "D:\strawberry-perl-5.24.3.1-64bit-portable"
+ echo For e.g. -perlpath "D:\strawberry-perl-5.24.3.1-64bit-portable"
goto error
:unknown
diff --git a/projects/generate.bat b/projects/generate.bat
index d1fc6088..32a88f51 100644
--- a/projects/generate.bat
+++ b/projects/generate.bat
@@ -77,7 +77,7 @@ rem ***************************************************************************
)
shift & goto parseArgs
-
+
:start
if exist ..\buildconf.bat (
if "%MODE%" == "GENERATE" (
@@ -264,7 +264,7 @@ rem
exit /B
)
- if exist %3 (
+ if exist %3 (
del %3
)
@@ -391,7 +391,7 @@ rem
:clean
echo * %CD%\%1
- if exist %1 (
+ if exist %1 (
del %1
)
diff --git a/projects/wolfssl_options.h b/projects/wolfssl_options.h
index 1ca618f1..946e1000 100644
--- a/projects/wolfssl_options.h
+++ b/projects/wolfssl_options.h
@@ -47,7 +47,7 @@ create the thread local storage and that could be a problem for LoadLibrary.
Regarding the options that were added via C_EXTRA_FLAGS:
FP_MAX_BITS=16384
-https://web.archive.org/web/20150218183550/www.yassl.com/forums/topic423-cacertorgs-ca-cert-verify-failed-but-withdisablefastmath-it-works.html
+https://www.yassl.com/forums/topic423-cacertorgs-ca-cert-verify-failed-but-withdisablefastmath-it-works.html
"Since root.crt uses a 4096-bit RSA key, you'll need to increase the fastmath
buffer size. You can do this using the define:
FP_MAX_BITS and setting it to 8192."
@@ -221,4 +221,3 @@ functioning correctly yet. https://github.com/wolfSSL/wolfssl/pull/943
#endif /* WOLFSSL_OPTIONS_H */
-
diff --git a/projects/wolfssl_override.props b/projects/wolfssl_override.props
index e37d0b7a..fab60f3c 100644
--- a/projects/wolfssl_override.props
+++ b/projects/wolfssl_override.props
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
We use this file to override some properties of the wolfSSL project files.
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index fce2d2d2..f10a3d0b 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -72,15 +72,8 @@ target_link_libraries(${EXE_NAME} libcurl ${CURL_LIBS})
#INCLUDE(ModuleInstall OPTIONAL)
-install(TARGETS ${EXE_NAME} EXPORT curl-target DESTINATION bin)
+install(TARGETS ${EXE_NAME} EXPORT ${TARGETS_EXPORT_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR})
export(TARGETS ${EXE_NAME}
APPEND FILE ${PROJECT_BINARY_DIR}/curl-target.cmake
NAMESPACE CURL::
)
-
-install(EXPORT curl-target
- FILE curl-target.cmake
- NAMESPACE CURL::
- DESTINATION ${CURL_INSTALL_CMAKE_DIR}
-)
-
diff --git a/src/Makefile.am b/src/Makefile.am
index 2efc4e3e..8fd9dc32 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -88,9 +88,9 @@ CLEANFILES = tool_hugehelp.c
# embedded text.
NROFF=env LC_ALL=C @NROFF@ @MANOPT@ # figured out by the configure script
-EXTRA_DIST = mkhelp.pl makefile.dj \
- Makefile.m32 macos/curl.mcp.xml.sit.hqx macos/MACINSTALL.TXT \
- macos/src/curl_GUSIConfig.cpp macos/src/macos_main.cpp makefile.amiga \
+EXTRA_DIST = mkhelp.pl makefile.dj \
+ Makefile.m32 macos/curl.mcp.xml.sit.hqx macos/MACINSTALL.TXT \
+ macos/src/curl_GUSIConfig.cpp macos/src/macos_main.cpp makefile.amiga \
curl.rc Makefile.netware Makefile.inc Makefile.Watcom CMakeLists.txt
# Use absolute directory to disable VPATH
@@ -140,3 +140,11 @@ if CURLDEBUG
# for debug builds, we scan the sources on all regular make invokes
all-local: checksrc
endif
+
+# disable the tests that are mostly causing false positives
+TIDYFLAGS=-checks=-clang-analyzer-security.insecureAPI.strcpy,-clang-analyzer-optin.performance.Padding,-clang-analyzer-valist.Uninitialized,-clang-analyzer-core.NonNullParamChecker,-clang-analyzer-core.NullDereference
+
+TIDY:=clang-tidy
+
+tidy:
+ $(TIDY) $(CURL_CFILES) $(TIDYFLAGS) -- $(AM_CPPFLAGS) $(CPPFLAGS) -DHAVE_CONFIG_H
diff --git a/src/Makefile.inc b/src/Makefile.inc
index e0506c7f..e1e8306b 100644
--- a/src/Makefile.inc
+++ b/src/Makefile.inc
@@ -10,102 +10,102 @@
# libcurl has sources that provide functions named curlx_* that aren't part of
# the official API, but we re-use the code here to avoid duplication.
CURLX_CFILES = \
- ../lib/strtoofft.c \
- ../lib/nonblock.c \
- ../lib/warnless.c \
- ../lib/curl_ctype.c
+ ../lib/strtoofft.c \
+ ../lib/nonblock.c \
+ ../lib/warnless.c \
+ ../lib/curl_ctype.c
CURLX_HFILES = \
- ../lib/curl_setup.h \
- ../lib/strtoofft.h \
- ../lib/nonblock.h \
- ../lib/warnless.h \
- ../lib/curl_ctype.h
+ ../lib/curl_setup.h \
+ ../lib/strtoofft.h \
+ ../lib/nonblock.h \
+ ../lib/warnless.h \
+ ../lib/curl_ctype.h
CURL_CFILES = \
- slist_wc.c \
- tool_binmode.c \
- tool_bname.c \
- tool_cb_dbg.c \
- tool_cb_hdr.c \
- tool_cb_prg.c \
- tool_cb_rea.c \
- tool_cb_see.c \
- tool_cb_wrt.c \
- tool_cfgable.c \
- tool_convert.c \
- tool_dirhie.c \
- tool_doswin.c \
- tool_easysrc.c \
- tool_filetime.c \
- tool_formparse.c \
- tool_getparam.c \
- tool_getpass.c \
- tool_help.c \
- tool_helpers.c \
- tool_homedir.c \
- tool_hugehelp.c \
- tool_libinfo.c \
- tool_main.c \
- tool_metalink.c \
- tool_msgs.c \
- tool_operate.c \
- tool_operhlp.c \
- tool_panykey.c \
- tool_paramhlp.c \
- tool_parsecfg.c \
- tool_strdup.c \
- tool_setopt.c \
- tool_sleep.c \
- tool_urlglob.c \
- tool_util.c \
- tool_vms.c \
- tool_writeout.c \
- tool_xattr.c
+ slist_wc.c \
+ tool_binmode.c \
+ tool_bname.c \
+ tool_cb_dbg.c \
+ tool_cb_hdr.c \
+ tool_cb_prg.c \
+ tool_cb_rea.c \
+ tool_cb_see.c \
+ tool_cb_wrt.c \
+ tool_cfgable.c \
+ tool_convert.c \
+ tool_dirhie.c \
+ tool_doswin.c \
+ tool_easysrc.c \
+ tool_filetime.c \
+ tool_formparse.c \
+ tool_getparam.c \
+ tool_getpass.c \
+ tool_help.c \
+ tool_helpers.c \
+ tool_homedir.c \
+ tool_hugehelp.c \
+ tool_libinfo.c \
+ tool_main.c \
+ tool_metalink.c \
+ tool_msgs.c \
+ tool_operate.c \
+ tool_operhlp.c \
+ tool_panykey.c \
+ tool_paramhlp.c \
+ tool_parsecfg.c \
+ tool_strdup.c \
+ tool_setopt.c \
+ tool_sleep.c \
+ tool_urlglob.c \
+ tool_util.c \
+ tool_vms.c \
+ tool_writeout.c \
+ tool_xattr.c
CURL_HFILES = \
- slist_wc.h \
- tool_binmode.h \
- tool_bname.h \
- tool_cb_dbg.h \
- tool_cb_hdr.h \
- tool_cb_prg.h \
- tool_cb_rea.h \
- tool_cb_see.h \
- tool_cb_wrt.h \
- tool_cfgable.h \
- tool_convert.h \
- tool_dirhie.h \
- tool_doswin.h \
- tool_easysrc.h \
- tool_filetime.h \
- tool_formparse.h \
- tool_getparam.h \
- tool_getpass.h \
- tool_help.h \
- tool_helpers.h \
- tool_homedir.h \
- tool_hugehelp.h \
- tool_libinfo.h \
- tool_main.h \
- tool_metalink.h \
- tool_msgs.h \
- tool_operate.h \
- tool_operhlp.h \
- tool_panykey.h \
- tool_paramhlp.h \
- tool_parsecfg.h \
- tool_sdecls.h \
- tool_setopt.h \
- tool_setup.h \
- tool_sleep.h \
- tool_strdup.h \
- tool_urlglob.h \
- tool_util.h \
- tool_version.h \
- tool_vms.h \
- tool_writeout.h \
- tool_xattr.h
+ slist_wc.h \
+ tool_binmode.h \
+ tool_bname.h \
+ tool_cb_dbg.h \
+ tool_cb_hdr.h \
+ tool_cb_prg.h \
+ tool_cb_rea.h \
+ tool_cb_see.h \
+ tool_cb_wrt.h \
+ tool_cfgable.h \
+ tool_convert.h \
+ tool_dirhie.h \
+ tool_doswin.h \
+ tool_easysrc.h \
+ tool_filetime.h \
+ tool_formparse.h \
+ tool_getparam.h \
+ tool_getpass.h \
+ tool_help.h \
+ tool_helpers.h \
+ tool_homedir.h \
+ tool_hugehelp.h \
+ tool_libinfo.h \
+ tool_main.h \
+ tool_metalink.h \
+ tool_msgs.h \
+ tool_operate.h \
+ tool_operhlp.h \
+ tool_panykey.h \
+ tool_paramhlp.h \
+ tool_parsecfg.h \
+ tool_sdecls.h \
+ tool_setopt.h \
+ tool_setup.h \
+ tool_sleep.h \
+ tool_strdup.h \
+ tool_urlglob.h \
+ tool_util.h \
+ tool_version.h \
+ tool_vms.h \
+ tool_writeout.h \
+ tool_xattr.h
CURL_RCFILES = curl.rc
diff --git a/src/Makefile.m32 b/src/Makefile.m32
index 33e4ecfc..e13db04b 100644
--- a/src/Makefile.m32
+++ b/src/Makefile.m32
@@ -100,15 +100,15 @@ ifeq ($(CURL_AR),)
CURL_AR := $(CROSSPREFIX)ar
endif
-CC = $(CURL_CC)
-CFLAGS = $(CURL_CFLAG_EXTRAS) -g -O2 -Wall -W
-CFLAGS += -fno-strict-aliasing
+CC = $(CURL_CC)
+CFLAGS = $(CURL_CFLAG_EXTRAS) -g -O2 -Wall -W
+CFLAGS += -fno-strict-aliasing
# comment LDFLAGS below to keep debug info
-LDFLAGS = $(CURL_LDFLAG_EXTRAS) $(CURL_LDFLAG_EXTRAS_EXE) -s
-AR = $(CURL_AR)
-RC = $(CROSSPREFIX)windres
-RCFLAGS = --include-dir=$(PROOT)/include -O COFF -DCURL_EMBED_MANIFEST
-STRIP = $(CROSSPREFIX)strip -g
+LDFLAGS = $(CURL_LDFLAG_EXTRAS) $(CURL_LDFLAG_EXTRAS_EXE) -s
+AR = $(CURL_AR)
+RC = $(CROSSPREFIX)windres
+RCFLAGS = --include-dir=$(PROOT)/include -O COFF -DCURL_EMBED_MANIFEST
+STRIP = $(CROSSPREFIX)strip -g
# We may need these someday
# PERL = perl
@@ -117,9 +117,9 @@ STRIP = $(CROSSPREFIX)strip -g
# Set environment var ARCH to your architecture to override autodetection.
ifndef ARCH
ifeq ($(findstring x86_64,$(shell $(CC) -dumpmachine)),x86_64)
-ARCH = w64
+ARCH = w64
else
-ARCH = w32
+ARCH = w32
endif
endif
@@ -135,30 +135,30 @@ endif
# Platform-dependent helper tool macros
ifeq ($(findstring /sh,$(SHELL)),/sh)
-DEL = rm -f $1
-RMDIR = rm -fr $1
-MKDIR = mkdir -p $1
-COPY = -cp -afv $1 $2
-#COPYR = -cp -afr $1/* $2
-COPYR = -rsync -aC $1/* $2
-TOUCH = touch $1
-CAT = cat
-ECHONL = echo ""
-DL = '
+DEL = rm -f $1
+RMDIR = rm -fr $1
+MKDIR = mkdir -p $1
+COPY = -cp -afv $1 $2
+#COPYR = -cp -afr $1/* $2
+COPYR = -rsync -aC $1/* $2
+TOUCH = touch $1
+CAT = cat
+ECHONL = echo ""
+DL = '
else
ifeq "$(OS)" "Windows_NT"
-DEL = -del 2>NUL /q /f $(subst /,\,$1)
-RMDIR = -rd 2>NUL /q /s $(subst /,\,$1)
+DEL = -del 2>NUL /q /f $(subst /,\,$1)
+RMDIR = -rd 2>NUL /q /s $(subst /,\,$1)
else
-DEL = -del 2>NUL $(subst /,\,$1)
-RMDIR = -deltree 2>NUL /y $(subst /,\,$1)
-endif
-MKDIR = -md 2>NUL $(subst /,\,$1)
-COPY = -copy 2>NUL /y $(subst /,\,$1) $(subst /,\,$2)
-COPYR = -xcopy 2>NUL /q /y /e $(subst /,\,$1) $(subst /,\,$2)
-TOUCH = copy 2>&1>NUL /b $(subst /,\,$1) +,,
-CAT = type
-ECHONL = $(ComSpec) /c echo.
+DEL = -del 2>NUL $(subst /,\,$1)
+RMDIR = -deltree 2>NUL /y $(subst /,\,$1)
+endif
+MKDIR = -md 2>NUL $(subst /,\,$1)
+COPY = -copy 2>NUL /y $(subst /,\,$1) $(subst /,\,$2)
+COPYR = -xcopy 2>NUL /q /y /e $(subst /,\,$1) $(subst /,\,$2)
+TOUCH = copy 2>&1>NUL /b $(subst /,\,$1) +,,
+CAT = type
+ECHONL = $(ComSpec) /c echo.
endif
########################################################
diff --git a/src/Makefile.netware b/src/Makefile.netware
index 53d803b2..7f58bcd6 100644
--- a/src/Makefile.netware
+++ b/src/Makefile.netware
@@ -5,7 +5,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 2004 - 2014, Guenter Knauf, <http://www.gknw.net/phpbb>.
+# Copyright (C) 2004 - 2014, Guenter Knauf
# Copyright (C) 2001 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
@@ -31,7 +31,7 @@
# Edit the path below to point to the base of your Novell NDK.
ifndef NDKBASE
-NDKBASE = c:/novell
+NDKBASE = c:/novell
endif
# Edit the path below to point to the base of your Zlib sources.
@@ -95,17 +95,17 @@ LIBCARES_PATH = ../ares
endif
ifndef INSTDIR
-INSTDIR = ..$(DS)curl-$(LIBCURL_VERSION_STR)-bin-nw
+INSTDIR = ..$(DS)curl-$(LIBCURL_VERSION_STR)-bin-nw
endif
# Edit the vars below to change NLM target settings.
TARGET = curl
-VERSION = $(LIBCURL_VERSION)
-COPYR = Copyright (C) $(LIBCURL_COPYRIGHT_STR)
-DESCR = curl $(LIBCURL_VERSION_STR) ($(LIBARCH)) - https://curl.haxx.se
-MTSAFE = YES
-STACK = 64000
-SCREEN = $(TARGET) commandline utility
+VERSION = $(LIBCURL_VERSION)
+COPYR = Copyright (C) $(LIBCURL_COPYRIGHT_STR)
+DESCR = curl $(LIBCURL_VERSION_STR) ($(LIBARCH)) - https://curl.haxx.se
+MTSAFE = YES
+STACK = 64000
+SCREEN = $(TARGET) commandline utility
# Comment the line below if you don't want to load protected automatically.
# LDRING = 3
@@ -119,39 +119,39 @@ endif
# must be equal to NDEBUG or DEBUG, CURLDEBUG
ifndef DB
-DB = NDEBUG
+DB = NDEBUG
endif
# Optimization: -O<n> or debugging: -g
ifeq ($(DB),NDEBUG)
- OPT = -O2
- OBJDIR = release
+ OPT = -O2
+ OBJDIR = release
else
- OPT = -g
- OBJDIR = debug
+ OPT = -g
+ OBJDIR = debug
endif
# The following lines defines your compiler.
ifdef CWFolder
- METROWERKS = $(CWFolder)
+ METROWERKS = $(CWFolder)
endif
ifdef METROWERKS
- # MWCW_PATH = $(subst \,/,$(METROWERKS))/Novell Support
- MWCW_PATH = $(subst \,/,$(METROWERKS))/Novell Support/Metrowerks Support
- CC = mwccnlm
+ # MWCW_PATH = $(subst \,/,$(METROWERKS))/Novell Support
+ MWCW_PATH = $(subst \,/,$(METROWERKS))/Novell Support/Metrowerks Support
+ CC = mwccnlm
else
- CC = gcc
+ CC = gcc
endif
-PERL = perl
+PERL = perl
# Here you can find a native Win32 binary of the original awk:
# http://www.gknw.net/development/prgtools/awk-20100523.zip
-AWK = awk
-CP = cp -afv
-MKDIR = mkdir
-# RM = rm -f
+AWK = awk
+CP = cp -afv
+MKDIR = mkdir
+# RM = rm -f
# If you want to mark the target as MTSAFE you will need a tool for
# generating the xdc data for the linker; here's a minimal tool:
# http://www.gknw.net/development/prgtools/mkxdc.zip
-MPKXDC = mkxdc
+MPKXDC = mkxdc
# LIBARCH_U = $(shell $(AWK) 'BEGIN {print toupper(ARGV[1])}' $(LIBARCH))
LIBARCH_L = $(shell $(AWK) 'BEGIN {print tolower(ARGV[1])}' $(LIBARCH))
@@ -160,52 +160,52 @@ LIBARCH_L = $(shell $(AWK) 'BEGIN {print tolower(ARGV[1])}' $(LIBARCH))
-include $(OBJDIR)/version.inc
# Global flags for all compilers
-CFLAGS += $(OPT) -D$(DB) -DNETWARE -DHAVE_CONFIG_H -nostdinc
+CFLAGS += $(OPT) -D$(DB) -DNETWARE -DHAVE_CONFIG_H -nostdinc
ifeq ($(CC),mwccnlm)
-LD = mwldnlm
-LDFLAGS = -nostdlib $(OBJS) $(PRELUDE) $(LDLIBS) -o $@ -commandfile
-LIBEXT = lib
-CFLAGS += -gccinc -inline off -opt nointrinsics -proc 586
-CFLAGS += -relax_pointers
-#CFLAGS += -w on
-ifeq ($(LIBARCH),LIBC)
-ifeq ($(POSIXFL),1)
- PRELUDE = $(NDK_LIBC)/imports/posixpre.o
-else
- PRELUDE = $(NDK_LIBC)/imports/libcpre.o
-endif
- CFLAGS += -align 4
+ LD = mwldnlm
+ LDFLAGS = -nostdlib $(OBJS) $(PRELUDE) $(LDLIBS) -o $@ -commandfile
+ LIBEXT = lib
+ CFLAGS += -gccinc -inline off -opt nointrinsics -proc 586
+ CFLAGS += -relax_pointers
+ #CFLAGS += -w on
+ ifeq ($(LIBARCH),LIBC)
+ ifeq ($(POSIXFL),1)
+ PRELUDE = $(NDK_LIBC)/imports/posixpre.o
+ else
+ PRELUDE = $(NDK_LIBC)/imports/libcpre.o
+ endif
+ CFLAGS += -align 4
+ else
+ # PRELUDE = $(NDK_CLIB)/imports/clibpre.o
+ # to avoid the __init_* / __deinit_* woes don't use prelude from NDK
+ PRELUDE = "$(MWCW_PATH)/libraries/runtime/prelude.obj"
+ # CFLAGS += -include "$(MWCW_PATH)/headers/nlm_clib_prefix.h"
+ CFLAGS += -align 1
+ endif
else
- # PRELUDE = $(NDK_CLIB)/imports/clibpre.o
- # to avoid the __init_* / __deinit_* woes don't use prelude from NDK
- PRELUDE = "$(MWCW_PATH)/libraries/runtime/prelude.obj"
- # CFLAGS += -include "$(MWCW_PATH)/headers/nlm_clib_prefix.h"
- CFLAGS += -align 1
-endif
-else
-LD = nlmconv
-LDFLAGS = -T
-LIBEXT = a
-CFLAGS += -m32
-CFLAGS += -fno-builtin -fno-strict-aliasing
-ifeq ($(findstring gcc,$(CC)),gcc)
-CFLAGS += -fpcc-struct-return
-endif
-CFLAGS += -Wall # -pedantic
-ifeq ($(LIBARCH),LIBC)
-ifeq ($(POSIXFL),1)
- PRELUDE = $(NDK_LIBC)/imports/posixpre.gcc.o
-else
- PRELUDE = $(NDK_LIBC)/imports/libcpre.gcc.o
-endif
-else
- # PRELUDE = $(NDK_CLIB)/imports/clibpre.gcc.o
- # to avoid the __init_* / __deinit_* woes don't use prelude from NDK
- # http://www.gknw.net/development/mk_nlm/gcc_pre.zip
- PRELUDE = $(NDK_ROOT)/pre/prelude.o
- CFLAGS += -include $(NDKBASE)/nlmconv/genlm.h
-endif
+ LD = nlmconv
+ LDFLAGS = -T
+ LIBEXT = a
+ CFLAGS += -m32
+ CFLAGS += -fno-builtin -fno-strict-aliasing
+ ifeq ($(findstring gcc,$(CC)),gcc)
+ CFLAGS += -fpcc-struct-return
+ endif
+ CFLAGS += -Wall # -pedantic
+ ifeq ($(LIBARCH),LIBC)
+ ifeq ($(POSIXFL),1)
+ PRELUDE = $(NDK_LIBC)/imports/posixpre.gcc.o
+ else
+ PRELUDE = $(NDK_LIBC)/imports/libcpre.gcc.o
+ endif
+ else
+ # PRELUDE = $(NDK_CLIB)/imports/clibpre.gcc.o
+ # to avoid the __init_* / __deinit_* woes don't use prelude from NDK
+ # http://www.gknw.net/development/mk_nlm/gcc_pre.zip
+ PRELUDE = $(NDK_ROOT)/pre/prelude.o
+ CFLAGS += -include $(NDKBASE)/nlmconv/genlm.h
+ endif
endif
NDK_ROOT = $(NDKBASE)/ndk
@@ -265,124 +265,124 @@ ENABLE_IPV6 = 1
endif
ifdef LINK_STATIC
- LDLIBS = $(CURL_LIB)/libcurl.$(LIBEXT)
+ LDLIBS = $(CURL_LIB)/libcurl.$(LIBEXT)
ifdef WITH_ARES
- LDLIBS += $(LIBCARES_PATH)/libcares.$(LIBEXT)
+ LDLIBS += $(LIBCARES_PATH)/libcares.$(LIBEXT)
endif
else
- MODULES = libcurl.nlm
- IMPORTS = @$(CURL_LIB)/libcurl.imp
+ MODULES = libcurl.nlm
+ IMPORTS = @$(CURL_LIB)/libcurl.imp
endif
ifdef WITH_SSH2
- # INCLUDES += -I$(LIBSSH2_PATH)/include
-ifdef LINK_STATIC
- LDLIBS += $(LIBSSH2_PATH)/nw/libssh2.$(LIBEXT)
-else
- MODULES += libssh2.nlm
- IMPORTS += @$(LIBSSH2_PATH)/nw/libssh2.imp
-endif
+ # INCLUDES += -I$(LIBSSH2_PATH)/include
+ ifdef LINK_STATIC
+ LDLIBS += $(LIBSSH2_PATH)/nw/libssh2.$(LIBEXT)
+ else
+ MODULES += libssh2.nlm
+ IMPORTS += @$(LIBSSH2_PATH)/nw/libssh2.imp
+ endif
endif
ifdef WITH_RTMP
- # INCLUDES += -I$(LIBRTMP_PATH)
-ifdef LINK_STATIC
- LDLIBS += $(LIBRTMP_PATH)/librtmp/librtmp.$(LIBEXT)
-endif
+ # INCLUDES += -I$(LIBRTMP_PATH)
+ ifdef LINK_STATIC
+ LDLIBS += $(LIBRTMP_PATH)/librtmp/librtmp.$(LIBEXT)
+ endif
endif
ifdef WITH_SSL
- # INCLUDES += -I$(OPENSSL_PATH)/outinc_nw_$(LIBARCH_L)
- LDLIBS += $(OPENSSL_PATH)/out_nw_$(LIBARCH_L)/ssl.$(LIBEXT)
- LDLIBS += $(OPENSSL_PATH)/out_nw_$(LIBARCH_L)/crypto.$(LIBEXT)
- IMPORTS += GetProcessSwitchCount RunningProcess
+ # INCLUDES += -I$(OPENSSL_PATH)/outinc_nw_$(LIBARCH_L)
+ LDLIBS += $(OPENSSL_PATH)/out_nw_$(LIBARCH_L)/ssl.$(LIBEXT)
+ LDLIBS += $(OPENSSL_PATH)/out_nw_$(LIBARCH_L)/crypto.$(LIBEXT)
+ IMPORTS += GetProcessSwitchCount RunningProcess
else
ifdef WITH_AXTLS
- # INCLUDES += -I$(AXTLS_PATH)/inc
-ifdef LINK_STATIC
- LDLIBS += $(AXTLS_PATH)/lib/libaxtls.$(LIBEXT)
-else
- MODULES += libaxtls.nlm
- IMPORTS += $(AXTLS_PATH)/lib/libaxtls.imp
-endif
+ # INCLUDES += -I$(AXTLS_PATH)/inc
+ ifdef LINK_STATIC
+ LDLIBS += $(AXTLS_PATH)/lib/libaxtls.$(LIBEXT)
+ else
+ MODULES += libaxtls.nlm
+ IMPORTS += $(AXTLS_PATH)/lib/libaxtls.imp
+ endif
endif
endif
ifdef WITH_ZLIB
- INCLUDES += -I$(ZLIB_PATH)
-ifdef LINK_STATIC
- LDLIBS += $(ZLIB_PATH)/nw/$(LIBARCH)/libz.$(LIBEXT)
-else
- MODULES += libz.nlm
- IMPORTS += @$(ZLIB_PATH)/nw/$(LIBARCH)/libz.imp
-endif
+ INCLUDES += -I$(ZLIB_PATH)
+ ifdef LINK_STATIC
+ LDLIBS += $(ZLIB_PATH)/nw/$(LIBARCH)/libz.$(LIBEXT)
+ else
+ MODULES += libz.nlm
+ IMPORTS += @$(ZLIB_PATH)/nw/$(LIBARCH)/libz.imp
+ endif
endif
ifdef WITH_IDN
- # INCLUDES += -I$(LIBIDN_PATH)/include
- LDLIBS += $(LIBIDN_PATH)/lib/libidn.$(LIBEXT)
+ # INCLUDES += -I$(LIBIDN_PATH)/include
+ LDLIBS += $(LIBIDN_PATH)/lib/libidn.$(LIBEXT)
endif
ifdef WITH_NGHTTP2
- INCLUDES += -I$(NGHTTP2_PATH)/include
- LDLIBS += $(NGHTTP2_PATH)/lib/libnghttp2.$(LIBEXT)
+ INCLUDES += -I$(NGHTTP2_PATH)/include
+ LDLIBS += $(NGHTTP2_PATH)/lib/libnghttp2.$(LIBEXT)
endif
ifdef WITH_METALINK
- CFLAGS += -DUSE_METALINK
- INCLUDES += -I$(OPENSSL_PATH)/outinc_nw_$(LIBARCH_L)
- INCLUDES += -I$(LIBMETALINK_PATH)/include
- LDLIBS += $(LIBMETALINK_PATH)/lib/libmetalink.$(LIBEXT)
-ifdef WITH_LIBEXPAT
- ifeq ($(LIBARCH),LIBC)
- IMPORTS += @$(LIBEXPAT_PATH)/imports/expatlbc.imp
- MODULES += expatlbc
- else
- IMPORTS += @$(LIBEXPAT_PATH)/imports/expatlib.imp
- MODULES += expatlib
- endif
+ CFLAGS += -DUSE_METALINK
+ INCLUDES += -I$(OPENSSL_PATH)/outinc_nw_$(LIBARCH_L)
+ INCLUDES += -I$(LIBMETALINK_PATH)/include
+ LDLIBS += $(LIBMETALINK_PATH)/lib/libmetalink.$(LIBEXT)
+ ifdef WITH_LIBEXPAT
+ ifeq ($(LIBARCH),LIBC)
+ IMPORTS += @$(LIBEXPAT_PATH)/imports/expatlbc.imp
+ MODULES += expatlbc
+ else
+ IMPORTS += @$(LIBEXPAT_PATH)/imports/expatlib.imp
+ MODULES += expatlib
+ endif
else
ifdef WITH_LIBXML2
- IMPORTS += @$(LIBXML2_PATH)/lib/libxml2.imp
- MODULES += libxml2
+ IMPORTS += @$(LIBXML2_PATH)/lib/libxml2.imp
+ MODULES += libxml2
endif
endif
endif
ifeq ($(LIBARCH),LIBC)
- INCLUDES += -I$(NDK_LIBC)/include
- # INCLUDES += -I$(NDK_LIBC)/include/nks
- # INCLUDES += -I$(NDK_LIBC)/include/winsock
- CFLAGS += -D_POSIX_SOURCE
+ INCLUDES += -I$(NDK_LIBC)/include
+ # INCLUDES += -I$(NDK_LIBC)/include/nks
+ # INCLUDES += -I$(NDK_LIBC)/include/winsock
+ CFLAGS += -D_POSIX_SOURCE
else
- INCLUDES += -I$(NDK_CLIB)/include/nlm
- # INCLUDES += -I$(NDK_CLIB)/include
+ INCLUDES += -I$(NDK_CLIB)/include/nlm
+ # INCLUDES += -I$(NDK_CLIB)/include
endif
ifndef DISABLE_LDAP
- # INCLUDES += -I$(NDK_LDAP)/$(LIBARCH_L)/inc
+ # INCLUDES += -I$(NDK_LDAP)/$(LIBARCH_L)/inc
endif
-CFLAGS += $(INCLUDES)
+CFLAGS += $(INCLUDES)
ifeq ($(MTSAFE),YES)
- XDCOPT = -n
+ XDCOPT = -n
endif
ifeq ($(MTSAFE),NO)
- XDCOPT = -u
+ XDCOPT = -u
endif
ifdef XDCOPT
- XDCDATA = $(OBJDIR)/$(TARGET).xdc
+ XDCDATA = $(OBJDIR)/$(TARGET).xdc
endif
ifeq ($(findstring /sh,$(SHELL)),/sh)
-DL = '
-DS = /
-PCT = %
+DL = '
+DS = /
+PCT = %
#-include $(NDKBASE)/nlmconv/ncpfs.inc
else
-DS = \\
-PCT = %%
+DS = \\
+PCT = %%
endif
# Makefile.inc provides the CSOURCES and HHEADERS defines
include Makefile.inc
-OBJX := $(patsubst %.c,$(OBJDIR)/%.o,$(notdir $(strip $(CURLX_CFILES))))
-OBJS := $(patsubst %.c,$(OBJDIR)/%.o,$(strip $(CURL_CFILES)))
+OBJX := $(patsubst %.c,$(OBJDIR)/%.o,$(notdir $(strip $(CURLX_CFILES))))
+OBJS := $(patsubst %.c,$(OBJDIR)/%.o,$(strip $(CURL_CFILES)))
ifndef LINK_STATIC
-OBJS += $(OBJX)
+OBJS += $(OBJX)
endif
vpath %.c $(CURL_LIB)
@@ -520,5 +520,3 @@ tool_hugehelp.c:
$(LIBCARES_PATH)/libcares.$(LIBEXT):
$(MAKE) -C $(LIBCARES_PATH) -f Makefile.netware lib
-
-
diff --git a/src/makefile.amiga b/src/makefile.amiga
index 9f3748b1..3bc0080f 100644
--- a/src/makefile.amiga
+++ b/src/makefile.amiga
@@ -4,21 +4,21 @@
# change the follow to where you have the AmiTCP SDK v4.3 includes:
-ATCPSDKI= /GG/netinclude
+ATCPSDKI= /GG/netinclude
-CC = m68k-amigaos-gcc
-CFLAGS = -I$(ATCPSDKI) -m68020-60 -O2 -msoft-float -noixemul -g -I. -I../include -W -Wall
-LIBS = ../lib/libcurl.a -lssl -lcrypto -lz
-MANPAGE = ../docs/curl.1
-README = ../docs/MANUAL
-MKHELP = ../src/mkhelp.pl
+CC = m68k-amigaos-gcc
+CFLAGS = -I$(ATCPSDKI) -m68020-60 -O2 -msoft-float -noixemul -g -I. -I../include -W -Wall
+LIBS = ../lib/libcurl.a -lssl -lcrypto -lz
+MANPAGE = ../docs/curl.1
+README = ../docs/MANUAL
+MKHELP = ../src/mkhelp.pl
include Makefile.inc
OBJS = $(CURL_CFILES:.c=.o) $(CURLX_CFILES:.c=.o)
-all: tool_hugehelp.c $(OBJS)
+all: tool_hugehelp.c $(OBJS)
$(CC) $(CFLAGS) -o curl $(OBJS) $(LIBS) -Wl,-Map,curl.map,--cref
tool_hugehelp.c: $(README) $(MANPAGE) mkhelp.pl
@@ -27,4 +27,3 @@ tool_hugehelp.c: $(README) $(MANPAGE) mkhelp.pl
install:
$(INSTALL) -c curl /c/curl
-
diff --git a/src/makefile.dj b/src/makefile.dj
index fbd2d373..a9f5d3a5 100644
--- a/src/makefile.dj
+++ b/src/makefile.dj
@@ -91,4 +91,3 @@ realclean vclean: clean
- $(DELETE) $(PROGRAM)
-include depend.dj
-
diff --git a/src/slist_wc.h b/src/slist_wc.h
index d8943122..9bd6993d 100644
--- a/src/slist_wc.h
+++ b/src/slist_wc.h
@@ -53,4 +53,3 @@ void slist_wc_free_all(struct slist_wc *);
#endif /* CURL_DISABLE_LIBCURL_OPTION */
#endif /* HEADER_CURL_SLIST_WC_H */
-
diff --git a/src/tool_binmode.c b/src/tool_binmode.c
index 5ca64cd5..f7001564 100644
--- a/src/tool_binmode.c
+++ b/src/tool_binmode.c
@@ -49,4 +49,3 @@ void set_binmode(FILE *stream)
}
#endif /* HAVE_SETMODE */
-
diff --git a/src/tool_binmode.h b/src/tool_binmode.h
index 8b445ae6..07b7ffed 100644
--- a/src/tool_binmode.h
+++ b/src/tool_binmode.h
@@ -34,4 +34,3 @@ void set_binmode(FILE *stream);
#endif /* HAVE_SETMODE */
#endif /* HEADER_CURL_TOOL_BINMODE_H */
-
diff --git a/src/tool_bname.c b/src/tool_bname.c
index 5cc5c15d..761192fe 100644
--- a/src/tool_bname.c
+++ b/src/tool_bname.c
@@ -47,4 +47,3 @@ char *tool_basename(char *path)
}
#endif /* HAVE_BASENAME */
-
diff --git a/src/tool_bname.h b/src/tool_bname.h
index 61b97b49..66e7c173 100644
--- a/src/tool_bname.h
+++ b/src/tool_bname.h
@@ -32,4 +32,3 @@ char *tool_basename(char *path);
#endif /* HAVE_BASENAME */
#endif /* HEADER_CURL_TOOL_BNAME_H */
-
diff --git a/src/tool_cb_dbg.c b/src/tool_cb_dbg.c
index c2dd51b7..a3e03397 100644
--- a/src/tool_cb_dbg.c
+++ b/src/tool_cb_dbg.c
@@ -279,4 +279,3 @@ static void dump(const char *timebuf, const char *text,
}
fflush(stream);
}
-
diff --git a/src/tool_cb_dbg.h b/src/tool_cb_dbg.h
index c1cbc807..433e7461 100644
--- a/src/tool_cb_dbg.h
+++ b/src/tool_cb_dbg.h
@@ -32,4 +32,3 @@ int tool_debug_cb(CURL *handle, curl_infotype type,
void *userdata);
#endif /* HEADER_CURL_TOOL_CB_DBG_H */
-
diff --git a/src/tool_cb_hdr.c b/src/tool_cb_hdr.c
index 04bc7e17..7a7a836c 100644
--- a/src/tool_cb_hdr.c
+++ b/src/tool_cb_hdr.c
@@ -42,7 +42,7 @@ static char *parse_filename(const char *ptr, size_t len);
#define BOLDOFF
#else
#define BOLD "\x1b[1m"
-/* Switch off bold by settting "all attributes off" since the explicit
+/* Switch off bold by setting "all attributes off" since the explicit
bold-off code (21) isn't supported everywhere - like in the mac
Terminal. */
#define BOLDOFF "\x1b[0m"
@@ -132,15 +132,24 @@ size_t tool_header_cb(char *ptr, size_t size, size_t nmemb, void *userdata)
filename = parse_filename(p, len);
if(filename) {
if(outs->stream) {
+ int rc;
/* already opened and possibly written to */
if(outs->fopened)
fclose(outs->stream);
outs->stream = NULL;
/* rename the initial file name to the new file name */
- rename(outs->filename, filename);
+ rc = rename(outs->filename, filename);
+ if(rc != 0) {
+ warnf(outs->config->global, "Failed to rename %s -> %s: %s\n",
+ outs->filename, filename, strerror(errno));
+ }
if(outs->alloc_filename)
- free(outs->filename);
+ Curl_safefree(outs->filename);
+ if(rc != 0) {
+ free(filename);
+ return failure;
+ }
}
outs->is_cd_filename = TRUE;
outs->s_isreg = TRUE;
@@ -158,8 +167,9 @@ size_t tool_header_cb(char *ptr, size_t size, size_t nmemb, void *userdata)
}
if(hdrcbdata->config->show_headers &&
- (protocol & (CURLPROTO_HTTP|CURLPROTO_HTTPS|CURLPROTO_RTSP))) {
- /* bold headers only happen for HTTP(S) and RTSP */
+ (protocol &
+ (CURLPROTO_HTTP|CURLPROTO_HTTPS|CURLPROTO_RTSP|CURLPROTO_FILE))) {
+ /* bold headers only for selected protocols */
char *value = NULL;
if(!outs->stream && !tool_create_output_file(outs, FALSE))
diff --git a/src/tool_cb_hdr.h b/src/tool_cb_hdr.h
index e1b9a920..cf544dfc 100644
--- a/src/tool_cb_hdr.h
+++ b/src/tool_cb_hdr.h
@@ -53,4 +53,3 @@ struct HdrCbData {
size_t tool_header_cb(char *ptr, size_t size, size_t nmemb, void *userdata);
#endif /* HEADER_CURL_TOOL_CB_HDR_H */
-
diff --git a/src/tool_cb_prg.h b/src/tool_cb_prg.h
index f8d6deab..cc887684 100644
--- a/src/tool_cb_prg.h
+++ b/src/tool_cb_prg.h
@@ -50,4 +50,3 @@ int tool_progress_cb(void *clientp,
curl_off_t ultotal, curl_off_t ulnow);
#endif /* HEADER_CURL_TOOL_CB_PRG_H */
-
diff --git a/src/tool_cb_rea.c b/src/tool_cb_rea.c
index 88137ae7..8a33c847 100644
--- a/src/tool_cb_rea.c
+++ b/src/tool_cb_rea.c
@@ -52,4 +52,3 @@ size_t tool_read_cb(void *buffer, size_t sz, size_t nmemb, void *userdata)
in->config->readbusy = FALSE;
return (size_t)rc;
}
-
diff --git a/src/tool_cb_rea.h b/src/tool_cb_rea.h
index 5fbc793f..475f0b1c 100644
--- a/src/tool_cb_rea.h
+++ b/src/tool_cb_rea.h
@@ -30,4 +30,3 @@
size_t tool_read_cb(void *buffer, size_t sz, size_t nmemb, void *userdata);
#endif /* HEADER_CURL_TOOL_CB_REA_H */
-
diff --git a/src/tool_cb_see.c b/src/tool_cb_see.c
index 061b2bb3..891dc458 100644
--- a/src/tool_cb_see.c
+++ b/src/tool_cb_see.c
@@ -130,4 +130,3 @@ int tool_ftruncate64(int fd, curl_off_t where)
}
#endif /* WIN32 && ! __MINGW64__ */
-
diff --git a/src/tool_cb_see.h b/src/tool_cb_see.h
index b07741da..ff8de0e9 100644
--- a/src/tool_cb_see.h
+++ b/src/tool_cb_see.h
@@ -43,4 +43,3 @@ int tool_ftruncate64(int fd, curl_off_t where);
int tool_seek_cb(void *userdata, curl_off_t offset, int whence);
#endif /* HEADER_CURL_TOOL_CB_SEE_H */
-
diff --git a/src/tool_cb_wrt.h b/src/tool_cb_wrt.h
index 2b6e98ae..51e002be 100644
--- a/src/tool_cb_wrt.h
+++ b/src/tool_cb_wrt.h
@@ -33,4 +33,3 @@ size_t tool_write_cb(char *buffer, size_t sz, size_t nmemb, void *userdata);
bool tool_create_output_file(struct OutStruct *outs, bool append);
#endif /* HEADER_CURL_TOOL_CB_WRT_H */
-
diff --git a/src/tool_cfgable.c b/src/tool_cfgable.c
index 81e16c1c..7d088ae0 100644
--- a/src/tool_cfgable.c
+++ b/src/tool_cfgable.c
@@ -102,6 +102,7 @@ static void free_config_fields(struct OperationConfig *config)
config->url_get = NULL;
config->url_out = NULL;
+ Curl_safefree(config->doh_url);
Curl_safefree(config->cipher_list);
Curl_safefree(config->proxy_cipher_list);
Curl_safefree(config->cert);
diff --git a/src/tool_cfgable.h b/src/tool_cfgable.h
index a0363e9a..b719fa21 100644
--- a/src/tool_cfgable.h
+++ b/src/tool_cfgable.h
@@ -115,6 +115,7 @@ struct OperationConfig {
struct getout *url_get; /* point to the node to fill in URL */
struct getout *url_out; /* point to the node to fill in outfile */
struct getout *url_ul; /* point to the node to fill in upload */
+ char *doh_url;
char *cipher_list;
char *proxy_cipher_list;
char *cipher13_list;
diff --git a/src/tool_convert.c b/src/tool_convert.c
index d0f5dcb0..ec9d7ac7 100644
--- a/src/tool_convert.c
+++ b/src/tool_convert.c
@@ -147,4 +147,3 @@ char convert_char(curl_infotype infotype, char this_char)
}
#endif /* CURL_DOES_CONVERSIONS */
-
diff --git a/src/tool_convert.h b/src/tool_convert.h
index d1b1d232..27b4ce90 100644
--- a/src/tool_convert.h
+++ b/src/tool_convert.h
@@ -42,4 +42,3 @@ char convert_char(curl_infotype infotype, char this_char);
#endif
#endif /* HEADER_CURL_TOOL_CONVERT_H */
-
diff --git a/src/tool_dirhie.c b/src/tool_dirhie.c
index 36c06941..24bbc490 100644
--- a/src/tool_dirhie.c
+++ b/src/tool_dirhie.c
@@ -153,4 +153,3 @@ CURLcode create_dir_hierarchy(const char *outfile, FILE *errors)
return result;
}
-
diff --git a/src/tool_dirhie.h b/src/tool_dirhie.h
index cc67687d..011a5774 100644
--- a/src/tool_dirhie.h
+++ b/src/tool_dirhie.h
@@ -26,4 +26,3 @@
CURLcode create_dir_hierarchy(const char *outfile, FILE *errors);
#endif /* HEADER_CURL_TOOL_DIRHIE_H */
-
diff --git a/src/tool_doswin.h b/src/tool_doswin.h
index 289281f4..6398390f 100644
--- a/src/tool_doswin.h
+++ b/src/tool_doswin.h
@@ -66,4 +66,3 @@ CURLcode FindWin32CACert(struct OperationConfig *config,
#endif /* MSDOS || WIN32 */
#endif /* HEADER_CURL_TOOL_DOSWIN_H */
-
diff --git a/src/tool_filetime.h b/src/tool_filetime.h
index 966a70b4..f23afcf3 100644
--- a/src/tool_filetime.h
+++ b/src/tool_filetime.h
@@ -35,4 +35,3 @@ void setfiletime(curl_off_t filetime, const char *filename,
(defined(WIN32) && (SIZEOF_CURL_OFF_T >= 8)) */
#endif /* HEADER_CURL_TOOL_FILETIME_H */
-
diff --git a/src/tool_formparse.h b/src/tool_formparse.h
index a52b98d3..cdf02d02 100644
--- a/src/tool_formparse.h
+++ b/src/tool_formparse.h
@@ -30,4 +30,3 @@ int formparse(struct OperationConfig *config,
bool literal_value);
#endif /* HEADER_CURL_TOOL_FORMPARSE_H */
-
diff --git a/src/tool_getparam.c b/src/tool_getparam.c
index aad14714..58f3f582 100644
--- a/src/tool_getparam.c
+++ b/src/tool_getparam.c
@@ -80,6 +80,7 @@ static const struct LongShort aliases[]= {
{"*b", "egd-file", ARG_STRING},
{"*B", "oauth2-bearer", ARG_STRING},
{"*c", "connect-timeout", ARG_STRING},
+ {"*C", "doh-url" , ARG_STRING},
{"*d", "ciphers", ARG_STRING},
{"*D", "dns-interface", ARG_STRING},
{"*e", "disable-epsv", ARG_BOOL},
@@ -619,6 +620,9 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
if(err)
return err;
break;
+ case 'C': /* doh-url */
+ GetStr(&config->doh_url, nextarg);
+ break;
case 'd': /* ciphers */
GetStr(&config->cipher_list, nextarg);
break;
diff --git a/src/tool_getparam.h b/src/tool_getparam.h
index 2148e409..daf83b88 100644
--- a/src/tool_getparam.h
+++ b/src/tool_getparam.h
@@ -62,4 +62,3 @@ ParameterError parse_args(struct GlobalConfig *config, int argc,
argv_item_t argv[]);
#endif /* HEADER_CURL_TOOL_GETPARAM_H */
-
diff --git a/src/tool_help.c b/src/tool_help.c
index b829e76e..d2deed3c 100644
--- a/src/tool_help.c
+++ b/src/tool_help.c
@@ -118,6 +118,8 @@ static const struct helptxt helptext[] = {
"IPv6 address to use for DNS requests"},
{" --dns-servers <addresses>",
"DNS server addrs to use"},
+ {" --doh-url <URL>",
+ "Resolve host names over DOH"},
{"-D, --dump-header <filename>",
"Write the received headers to <filename>"},
{" --egd-file <file>",
@@ -447,13 +449,13 @@ static const struct helptxt helptext[] = {
{"-1, --tlsv1",
"Use TLSv1.0 or greater"},
{" --tlsv1.0",
- "Use TLSv1.0"},
+ "Use TLSv1.0 or greater"},
{" --tlsv1.1",
- "Use TLSv1.1"},
+ "Use TLSv1.1 or greater"},
{" --tlsv1.2",
- "Use TLSv1.2"},
+ "Use TLSv1.2 or greater"},
{" --tlsv1.3",
- "Use TLSv1.3"},
+ "Use TLSv1.3 or greater"},
{" --tr-encoding",
"Request compressed transfer encoding"},
{" --trace <file>",
diff --git a/src/tool_help.h b/src/tool_help.h
index 43432d71..0289f301 100644
--- a/src/tool_help.h
+++ b/src/tool_help.h
@@ -28,4 +28,3 @@ void tool_list_engines(CURL *curl);
void tool_version_info(void);
#endif /* HEADER_CURL_TOOL_HELP_H */
-
diff --git a/src/tool_helpers.h b/src/tool_helpers.h
index 9ede16e6..33483ebc 100644
--- a/src/tool_helpers.h
+++ b/src/tool_helpers.h
@@ -32,4 +32,3 @@ void customrequest_helper(struct OperationConfig *config, HttpReq req,
char *method);
#endif /* HEADER_CURL_TOOL_HELPERS_H */
-
diff --git a/src/tool_hugehelp.c b/src/tool_hugehelp.c
index 49c1f4c4..0bef964f 100644
--- a/src/tool_hugehelp.c
+++ b/src/tool_hugehelp.c
@@ -644,9 +644,17 @@ void hugehelp(void)
"\n"
, stdout);
fputs(
+" Like -d, --data the default content-type sent to the server is\n"
+" application/x-www-form-urlencoded. If you want the data to be\n"
+" treated as arbitrary binary data by the server then set the con-\n"
+" tent-type to octet-stream: -H \"Content-Type: application/octet-\n"
+" stream\".\n"
+"\n"
" If this option is used several times, the ones following the\n"
" first will append data as described in -d, --data.\n"
"\n"
+, stdout);
+ fputs(
" --data-raw <data>\n"
" (HTTP) This posts data similarly to -d, --data but without the\n"
" special interpretation of the @ character.\n"
@@ -655,84 +663,84 @@ void hugehelp(void)
"\n"
" --data-urlencode <data>\n"
" (HTTP) This posts data, similar to the other -d, --data options\n"
-, stdout);
- fputs(
" with the exception that this performs URL-encoding.\n"
"\n"
" To be CGI-compliant, the <data> part should begin with a name\n"
+, stdout);
+ fputs(
" followed by a separator and a content specification. The <data>\n"
" part can be passed to curl using one of the following syntaxes:\n"
"\n"
" content\n"
" This will make curl URL-encode the content and pass that\n"
" on. Just be careful so that the content doesn't contain\n"
-, stdout);
- fputs(
" any = or @ symbols, as that will then make the syntax\n"
" match one of the other cases below!\n"
"\n"
" =content\n"
+, stdout);
+ fputs(
" This will make curl URL-encode the content and pass that\n"
" on. The preceding = symbol is not included in the data.\n"
"\n"
" name=content\n"
" This will make curl URL-encode the content part and pass\n"
-, stdout);
- fputs(
" that on. Note that the name part is expected to be URL-\n"
" encoded already.\n"
"\n"
" @filename\n"
" This will make curl load data from the given file\n"
+, stdout);
+ fputs(
" (including any newlines), URL-encode that data and pass\n"
" it on in the POST.\n"
"\n"
" name@filename\n"
" This will make curl load data from the given file\n"
-, stdout);
- fputs(
" (including any newlines), URL-encode that data and pass\n"
" it on in the POST. The name part gets an equal sign\n"
" appended, resulting in name=urlencoded-file-content. Note\n"
+, stdout);
+ fputs(
" that the name is expected to be URL-encoded already.\n"
" See also -d, --data and --data-raw. Added in 7.18.0.\n"
"\n"
" -d, --data <data>\n"
" (HTTP) Sends the specified data in a POST request to the HTTP\n"
-, stdout);
- fputs(
" server, in the same way that a browser does when a user has\n"
" filled in an HTML form and presses the submit button. This will\n"
" cause curl to pass the data to the server using the content-type\n"
+, stdout);
+ fputs(
" application/x-www-form-urlencoded. Compare to -F, --form.\n"
"\n"
" --data-raw is almost the same but does not have a special inter-\n"
" pretation of the @ character. To post data purely binary, you\n"
-, stdout);
- fputs(
" should instead use the --data-binary option. To URL-encode the\n"
" value of a form field you may use --data-urlencode.\n"
"\n"
" If any of these options is used more than once on the same com-\n"
+, stdout);
+ fputs(
" mand line, the data pieces specified will be merged together\n"
" with a separating &-symbol. Thus, using '-d name=daniel -d\n"
" skill=lousy' would generate a post chunk that looks like\n"
-, stdout);
- fputs(
" 'name=daniel&skill=lousy'.\n"
"\n"
" If you start the data with the letter @, the rest should be a\n"
" file name to read the data from, or - if you want curl to read\n"
+, stdout);
+ fputs(
" the data from stdin. Multiple files can also be specified. Post-\n"
" ing data from a file named from a file like that, carriage\n"
" returns and newlines will be stripped out. If you don't want the\n"
-, stdout);
- fputs(
" @ character to have a special interpretation use --data-raw\n"
" instead.\n"
"\n"
" See also --data-binary and --data-urlencode and --data-raw. This\n"
" option overrides -F, --form and -I, --head and -T, --upload-\n"
+, stdout);
+ fputs(
" file.\n"
"\n"
" --delegation <LEVEL>\n"
@@ -740,66 +748,64 @@ void hugehelp(void)
" to delegate when it comes to user credentials.\n"
"\n"
" none Don't allow any delegation.\n"
-, stdout);
- fputs(
"\n"
" policy Delegates if and only if the OK-AS-DELEGATE flag is set\n"
" in the Kerberos service ticket, which is a matter of\n"
" realm policy.\n"
"\n"
+, stdout);
+ fputs(
" always Unconditionally allow the server to delegate.\n"
"\n"
" --digest\n"
" (HTTP) Enables HTTP Digest authentication. This is an authenti-\n"
" cation scheme that prevents the password from being sent over\n"
-, stdout);
- fputs(
" the wire in clear text. Use this in combination with the normal\n"
" -u, --user option to set user name and password.\n"
"\n"
" If this option is used several times, only the first one is\n"
" used.\n"
"\n"
+, stdout);
+ fputs(
" See also -u, --user and --proxy-digest and --anyauth. This\n"
" option overrides --basic and --ntlm and --negotiate.\n"
"\n"
" --disable-eprt\n"
" (FTP) Tell curl to disable the use of the EPRT and LPRT commands\n"
-, stdout);
- fputs(
" when doing active FTP transfers. Curl will normally always first\n"
" attempt to use EPRT, then LPRT before using PORT, but with this\n"
" option, it will use PORT right away. EPRT and LPRT are exten-\n"
+, stdout);
+ fputs(
" sions to the original FTP protocol, and may not work on all\n"
" servers, but they enable more functionality in a better way than\n"
" the traditional PORT command.\n"
"\n"
-, stdout);
- fputs(
" --eprt can be used to explicitly enable EPRT again and --no-eprt\n"
" is an alias for --disable-eprt.\n"
"\n"
" If the server is accessed using IPv6, this option will have no\n"
" effect as EPRT is necessary then.\n"
"\n"
+, stdout);
+ fputs(
" Disabling EPRT only changes the active behavior. If you want to\n"
" switch to passive mode you need to not use -P, --ftp-port or\n"
" force it with --ftp-pasv.\n"
"\n"
" --disable-epsv\n"
-, stdout);
- fputs(
" (FTP) (FTP) Tell curl to disable the use of the EPSV command\n"
" when doing passive FTP transfers. Curl will normally always\n"
" first attempt to use EPSV before PASV, but with this option, it\n"
" will not try using EPSV.\n"
"\n"
+, stdout);
+ fputs(
" --epsv can be used to explicitly enable EPSV again and --no-epsv\n"
" is an alias for --disable-epsv.\n"
"\n"
" If the server is an IPv6 host, this option will have no effect\n"
-, stdout);
- fputs(
" as EPSV is necessary then.\n"
"\n"
" Disabling EPSV only changes the passive behavior. If you want to\n"
@@ -807,12 +813,12 @@ void hugehelp(void)
"\n"
" -q, --disable\n"
" If used as the first parameter on the command line, the curlrc\n"
+, stdout);
+ fputs(
" config file will not be read and used. See the -K, --config for\n"
" details on the default config file search path.\n"
"\n"
" --disallow-username-in-url\n"
-, stdout);
- fputs(
" (HTTP) This tells curl to exit if passed a url containing a\n"
" username.\n"
"\n"
@@ -820,57 +826,66 @@ void hugehelp(void)
"\n"
" --dns-interface <interface>\n"
" (DNS) Tell curl to send outgoing DNS requests through <inter-\n"
+, stdout);
+ fputs(
" face>. This option is a counterpart to --interface (which does\n"
" not affect DNS). The supplied string must be an interface name\n"
" (not an address).\n"
"\n"
-, stdout);
- fputs(
" See also --dns-ipv4-addr and --dns-ipv6-addr. --dns-interface\n"
" requires that the underlying libcurl was built to support c-\n"
" ares. Added in 7.33.0.\n"
"\n"
" --dns-ipv4-addr <address>\n"
" (DNS) Tell curl to bind to <ip-address> when making IPv4 DNS\n"
+, stdout);
+ fputs(
" requests, so that the DNS requests originate from this address.\n"
" The argument should be a single IPv4 address.\n"
"\n"
-, stdout);
- fputs(
" See also --dns-interface and --dns-ipv6-addr. --dns-ipv4-addr\n"
" requires that the underlying libcurl was built to support c-\n"
" ares. Added in 7.33.0.\n"
"\n"
" --dns-ipv6-addr <address>\n"
" (DNS) Tell curl to bind to <ip-address> when making IPv6 DNS\n"
+, stdout);
+ fputs(
" requests, so that the DNS requests originate from this address.\n"
" The argument should be a single IPv6 address.\n"
"\n"
-, stdout);
- fputs(
" See also --dns-interface and --dns-ipv4-addr. --dns-ipv6-addr\n"
" requires that the underlying libcurl was built to support c-\n"
" ares. Added in 7.33.0.\n"
"\n"
" --dns-servers <addresses>\n"
" Set the list of DNS servers to be used instead of the system\n"
-" default. The list of IP addresses should be separated with com-\n"
-" mas. Port numbers may also optionally be given as :<port-number>\n"
, stdout);
fputs(
+" default. The list of IP addresses should be separated with com-\n"
+" mas. Port numbers may also optionally be given as :<port-number>\n"
" after each IP address.\n"
"\n"
" --dns-servers requires that the underlying libcurl was built to\n"
" support c-ares. Added in 7.33.0.\n"
"\n"
+" --doh-url <URL>\n"
+" (all) Specifies which DNS-over-HTTPS (DOH) server to use to\n"
+, stdout);
+ fputs(
+" resolve hostnames, instead of using the default name resolver\n"
+" mechanism. The URL must be HTTPS.\n"
+"\n"
+" If this option is used several times, the last one will be used.\n"
+"\n"
" -D, --dump-header <filename>\n"
" (HTTP FTP) Write the received protocol headers to the specified\n"
" file.\n"
"\n"
" This option is handy to use when you want to store the headers\n"
-" that an HTTP site sends to you. Cookies from the headers could\n"
, stdout);
fputs(
+" that an HTTP site sends to you. Cookies from the headers could\n"
" then be read in a second curl invocation by using the -b,\n"
" --cookie option! The -c, --cookie-jar option is a better way to\n"
" store cookies.\n"
@@ -880,11 +895,11 @@ void hugehelp(void)
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
+, stdout);
+ fputs(
" See also -o, --output.\n"
"\n"
" --egd-file <file>\n"
-, stdout);
- fputs(
" (TLS) Specify the path name to the Entropy Gathering Daemon\n"
" socket. The socket is used to seed the random engine for SSL\n"
" connections.\n"
@@ -894,9 +909,9 @@ void hugehelp(void)
" --engine <name>\n"
" (TLS) Select the OpenSSL crypto engine to use for cipher opera-\n"
" tions. Use --engine list to print a list of build-time supported\n"
-" engines. Note that not all (or none) of the engines may be\n"
, stdout);
fputs(
+" engines. Note that not all (or none) of the engines may be\n"
" available at run-time.\n"
"\n"
" --expect100-timeout <seconds>\n"
@@ -904,10 +919,10 @@ void hugehelp(void)
" 100-continue response when curl emits an Expects: 100-continue\n"
" header in its request. By default curl will wait one second.\n"
" This option accepts decimal values! When curl stops waiting, it\n"
-" will continue as if the response has been received.\n"
-"\n"
, stdout);
fputs(
+" will continue as if the response has been received.\n"
+"\n"
" See also --connect-timeout. Added in 7.47.0.\n"
"\n"
" --fail-early\n"
@@ -916,9 +931,9 @@ void hugehelp(void)
" When curl is used to do multiple transfers on the command line,\n"
" it will attempt to operate on each given URL, one by one. By\n"
" default, it will ignore errors if there are more URLs given and\n"
-" the last URL's success will determine the error code curl\n"
, stdout);
fputs(
+" the last URL's success will determine the error code curl\n"
" returns. So early failures will be \"hidden\" by subsequent suc-\n"
" cessful transfers.\n"
"\n"
@@ -927,9 +942,9 @@ void hugehelp(void)
" that are given on the command line. This way, no transfer fail-\n"
" ures go undetected by scripts and similar.\n"
"\n"
-" This option is global and does not need to be specified for each\n"
, stdout);
fputs(
+" This option is global and does not need to be specified for each\n"
" use of -:, --next.\n"
"\n"
" This option does not imply -f, --fail, which causes transfers to\n"
@@ -940,18 +955,18 @@ void hugehelp(void)
" Added in 7.52.0.\n"
"\n"
" -f, --fail\n"
-" (HTTP) Fail silently (no output at all) on server errors. This\n"
, stdout);
fputs(
+" (HTTP) Fail silently (no output at all) on server errors. This\n"
" is mostly done to better enable scripts etc to better deal with\n"
" failed attempts. In normal cases when an HTTP server fails to\n"
" deliver a document, it returns an HTML document stating so\n"
" (which often also describes why and more). This flag will pre-\n"
" vent curl from outputting that and return error 22.\n"
"\n"
-" This method is not fail-safe and there are occasions where non-\n"
, stdout);
fputs(
+" This method is not fail-safe and there are occasions where non-\n"
" successful response codes will slip through, especially when\n"
" authentication is involved (response codes 401 and 407).\n"
"\n"
@@ -959,10 +974,10 @@ void hugehelp(void)
" (TLS) Tells curl to use false start during the TLS handshake.\n"
" False start is a mode where a TLS client will start sending\n"
" application data before verifying the server's Finished message,\n"
-" thus saving a round trip when performing a full handshake.\n"
-"\n"
, stdout);
fputs(
+" thus saving a round trip when performing a full handshake.\n"
+"\n"
" This is currently only implemented in the NSS and Secure Trans-\n"
" port (on iOS 7.0 or later, or OS X 10.9 or later) backends.\n"
"\n"
@@ -971,9 +986,9 @@ void hugehelp(void)
" --form-string <name=string>\n"
" (HTTP SMTP IMAP) Similar to -F, --form except that the value\n"
" string for the named parameter is used literally. Leading '@'\n"
-" and '<' characters, and the ';type=' string in the value have no\n"
, stdout);
fputs(
+" and '<' characters, and the ';type=' string in the value have no\n"
" special meaning. Use this in preference to -F, --form if there's\n"
" any possibility that the string value may accidentally trigger\n"
" the '@' or '<' features of -F, --form.\n"
@@ -982,9 +997,9 @@ void hugehelp(void)
"\n"
" -F, --form <name=content>\n"
" (HTTP SMTP IMAP) For HTTP protocol family, this lets curl emu-\n"
-" late a filled-in form in which a user has pressed the submit\n"
, stdout);
fputs(
+" late a filled-in form in which a user has pressed the submit\n"
" button. This causes curl to POST data using the Content-Type\n"
" multipart/form-data according to RFC 2388.\n"
"\n"
@@ -992,26 +1007,26 @@ void hugehelp(void)
" tipart mail message to transmit.\n"
"\n"
" This enables uploading of binary files etc. To force the 'con-\n"
-" tent' part to be a file, prefix the file name with an @ sign. To\n"
, stdout);
fputs(
+" tent' part to be a file, prefix the file name with an @ sign. To\n"
" just get the content part from a file, prefix the file name with\n"
" the symbol <. The difference between @ and < is then that @\n"
" makes a file get attached in the post as a file upload, while\n"
" the < makes a text field and just get the contents for that text\n"
" field from a file.\n"
"\n"
-" Tell curl to read content from stdin instead of a file by using\n"
, stdout);
fputs(
+" Tell curl to read content from stdin instead of a file by using\n"
" - as filename. This goes for both @ and < constructs. When stdin\n"
" is used, the contents is buffered in memory first by curl to\n"
" determine its size and allow a possible resend. Defining a\n"
" part's data from a named non-regular file (such as a named pipe\n"
" or similar) is unfortunately not subject to buffering and will\n"
-" be effectively read at transmission time; since the full size is\n"
, stdout);
fputs(
+" be effectively read at transmission time; since the full size is\n"
" unknown before the transfer starts, such data is sent as chunks\n"
" by HTTP and rejected by IMAP.\n"
"\n"
@@ -1021,11 +1036,11 @@ void hugehelp(void)
"\n"
" curl -F profile=@portrait.jpg https://example.com/upload.cgi\n"
"\n"
+, stdout);
+ fputs(
" Example: send a your name and shoe size in two text fields to\n"
" the server:\n"
"\n"
-, stdout);
- fputs(
" curl -F name=John -F shoesize=11 https://example.com/\n"
"\n"
" Example: send a your essay in a text field to the server. Send\n"
@@ -1034,11 +1049,11 @@ void hugehelp(void)
"\n"
" curl -F \"story=<hugefile.txt\" https://example.com/\n"
"\n"
+, stdout);
+ fputs(
" You can also tell curl what Content-Type to use by using\n"
" 'type=', in a manner similar to:\n"
"\n"
-, stdout);
- fputs(
" curl -F \"web=@index.html;type=text/html\" example.com\n"
"\n"
" or\n"
@@ -1050,11 +1065,11 @@ void hugehelp(void)
"\n"
" curl -F \"file=@localfile;filename=nameinpost\" example.com\n"
"\n"
+, stdout);
+ fputs(
" If filename/path contains ',' or ';', it must be quoted by dou-\n"
" ble-quotes like:\n"
"\n"
-, stdout);
- fputs(
" curl -F \"file=@\\\"localfile\\\";filename=\\\"nameinpost\\\"\" exam-\n"
" ple.com\n"
"\n"
@@ -1066,9 +1081,9 @@ void hugehelp(void)
" double-quote or backslash within the filename must be escaped by\n"
" backslash.\n"
"\n"
-" Quoting must also be applied to non-file data if it contains\n"
, stdout);
fputs(
+" Quoting must also be applied to non-file data if it contains\n"
" semicolons, leading/trailing spaces or leading double quotes:\n"
"\n"
" curl -F 'colors=\"red; green; blue\";type=text/x-myapp' exam-\n"
@@ -1081,18 +1096,18 @@ void hugehelp(void)
"\n"
" or\n"
"\n"
-" curl -F \"submit=OK;headers=@headerfile\" example.com\n"
-"\n"
, stdout);
fputs(
+" curl -F \"submit=OK;headers=@headerfile\" example.com\n"
+"\n"
" The headers= keyword may appear more that once and above notes\n"
" about quoting apply. When headers are read from a file, Empty\n"
" lines and lines starting with '#' are comments and ignored; each\n"
" header can be folded by splitting between two words and starting\n"
" the continuation line with a space; embedded carriage-returns\n"
-" and trailing spaces are stripped. Here is an example of a\n"
, stdout);
fputs(
+" and trailing spaces are stripped. Here is an example of a\n"
" header file contents:\n"
"\n"
" # This file contain two headers.\n"
@@ -1104,30 +1119,30 @@ void hugehelp(void)
"\n"
" To support sending multipart mail messages, the syntax is\n"
" extended as follows:\n"
-" - name can be omitted: the equal sign is the first character of\n"
-" the argument,\n"
, stdout);
fputs(
+" - name can be omitted: the equal sign is the first character of\n"
+" the argument,\n"
" - if data starts with '(', this signals to start a new multi-\n"
" part: it can be followed by a content type specification.\n"
" - a multipart can be terminated with a '=)' argument.\n"
"\n"
" Example: the following command sends an SMTP mime e-mail con-\n"
" sisting in an inline part in two alternative formats: plain text\n"
+, stdout);
+ fputs(
" and HTML. It attaches a text file:\n"
"\n"
" curl -F '=(;type=multipart/alternative' \\\n"
-, stdout);
- fputs(
" -F '=plain text message' \\\n"
" -F '= <body>HTML message</body>;type=text/html' \\\n"
" -F '=)' -F '=@textfile.txt' ... smtp://example.com\n"
"\n"
" Data can be encoded for transfer using encoder=. Available\n"
" encodings are binary and 8bit that do nothing else than adding\n"
-" the corresponding Content-Transfer-Encoding header, 7bit that\n"
, stdout);
fputs(
+" the corresponding Content-Transfer-Encoding header, 7bit that\n"
" only rejects 8-bit characters with a transfer error, quoted-\n"
" printable and base64 that encodes data according to the corre-\n"
" sponding schemes, limiting lines length to 76 characters.\n"
@@ -1135,11 +1150,11 @@ void hugehelp(void)
" Example: send multipart mail with a quoted-printable text mes-\n"
" sage and a base64 attached file:\n"
"\n"
+, stdout);
+ fputs(
" curl -F '=text message;encoder=quoted-printable' \\\n"
" -F '=@localfile;encoder=base64' ... smtp://example.com\n"
"\n"
-, stdout);
- fputs(
" See further examples and details in the MANUAL.\n"
"\n"
" This option can be used multiple times.\n"
@@ -1149,11 +1164,11 @@ void hugehelp(void)
"\n"
" --ftp-account <data>\n"
" (FTP) When an FTP server asks for \"account data\" after user name\n"
+, stdout);
+ fputs(
" and password has been provided, this data is sent off using the\n"
" ACCT command.\n"
"\n"
-, stdout);
- fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
" Added in 7.13.0.\n"
@@ -1162,9 +1177,9 @@ void hugehelp(void)
" (FTP) If authenticating with the USER and PASS commands fails,\n"
" send this command. When connecting to Tumbleweed's Secure\n"
" Transport server over FTPS using a client certificate, using\n"
-" \"SITE AUTH\" will tell the server to retrieve the username from\n"
, stdout);
fputs(
+" \"SITE AUTH\" will tell the server to retrieve the username from\n"
" the certificate.\n"
" Added in 7.15.5.\n"
"\n"
@@ -1176,9 +1191,9 @@ void hugehelp(void)
"\n"
" See also --create-dirs.\n"
"\n"
-" --ftp-method <method>\n"
, stdout);
fputs(
+" --ftp-method <method>\n"
" (FTP) Control what method curl should use to reach a file on an\n"
" FTP(S) server. The method argument should be one of the follow-\n"
" ing alternatives:\n"
@@ -1545,8 +1560,8 @@ void hugehelp(void)
" This option tells curl to resolve names to IPv6 addresses only,\n"
" and not for example try IPv4.\n"
"\n"
-" See also --http1.1 and --http2. This option overrides -6,\n"
-" --ipv6.\n"
+" See also --http1.1 and --http2. This option overrides -4,\n"
+" --ipv4.\n"
"\n"
, stdout);
fputs(
@@ -3372,8 +3387,8 @@ void hugehelp(void)
" Added in 7.21.4.\n"
"\n"
" --tlsv1.0\n"
-" (TLS) Forces curl to use TLS version 1.0 when connecting to a\n"
-" remote TLS server.\n"
+" (TLS) Forces curl to use TLS version 1.0 or later when connect-\n"
+" ing to a remote TLS server.\n"
"\n"
" Added in 7.34.0.\n"
"\n"
@@ -4402,8 +4417,8 @@ void hugehelp(void)
, stdout);
fputs(
" curl -u \"Remote-FTP-Username@remote.ftp.server Proxy-Username:Remote-Pass\" \\\n"
-" --ftp-account Proxy-Password --upload-file local-file \\\n"
-" ftp://my-ftp.proxy.server:21/remote/upload/path/\n"
+" --ftp-account Proxy-Password --upload-file local-file \\\n"
+" ftp://my-ftp.proxy.server:21/remote/upload/path/\n"
"\n"
" See the manual for your FTP proxy to determine the form it expects to set up\n"
" transfers, and curl's -v option to see exactly what curl is sending.\n"
@@ -4411,9 +4426,9 @@ void hugehelp(void)
"RANGES\n"
"\n"
" HTTP 1.1 introduced byte-ranges. Using this, a client can request\n"
-" to get only one or more subparts of a specified document. Curl supports\n"
, stdout);
fputs(
+" to get only one or more subparts of a specified document. Curl supports\n"
" this with the -r flag.\n"
"\n"
" Get the first 100 bytes of a document:\n"
@@ -4433,12 +4448,12 @@ void hugehelp(void)
"\n"
"UPLOADING\n"
"\n"
+, stdout);
+ fputs(
" FTP / FTPS / SFTP / SCP\n"
"\n"
" Upload all data on stdin to a specified server:\n"
"\n"
-, stdout);
- fputs(
" curl -T - ftp://ftp.upload.com/myfile\n"
"\n"
" Upload data from a specified file, login with user and password:\n"
@@ -4452,10 +4467,10 @@ void hugehelp(void)
"\n"
" Upload a local file to get appended to the remote file:\n"
"\n"
-" curl -T localfile -a ftp://ftp.upload.com/remotefile\n"
-"\n"
, stdout);
fputs(
+" curl -T localfile -a ftp://ftp.upload.com/remotefile\n"
+"\n"
" Curl also supports ftp upload through a proxy, but only if the proxy is\n"
" configured to allow that kind of tunneling. If it does, you can run curl in\n"
" a fashion similar to:\n"
@@ -4464,17 +4479,17 @@ void hugehelp(void)
"\n"
"SMB / SMBS\n"
"\n"
-" curl -T file.txt -u \"domain\\username:passwd\" \n"
-" smb://server.example.com/share/\n"
+" curl -T file.txt -u \"domain\\username:passwd\" \\\n"
+" smb://server.example.com/share/\n"
"\n"
" HTTP\n"
"\n"
" Upload all data on stdin to a specified HTTP site:\n"
"\n"
-" curl -T - http://www.upload.com/myfile\n"
-"\n"
, stdout);
fputs(
+" curl -T - http://www.upload.com/myfile\n"
+"\n"
" Note that the HTTP server must have been configured to accept PUT before\n"
" this can be done successfully.\n"
"\n"
@@ -4485,9 +4500,9 @@ void hugehelp(void)
" If curl fails where it isn't supposed to, if the servers don't let you in,\n"
" if you can't understand the responses: use the -v flag to get verbose\n"
" fetching. Curl will output lots of info and what it sends and receives in\n"
-" order to let the user see all client-server interaction (but it won't show\n"
, stdout);
fputs(
+" order to let the user see all client-server interaction (but it won't show\n"
" you the actual data).\n"
"\n"
" curl -v ftp://ftp.upload.com/\n"
@@ -4502,9 +4517,9 @@ void hugehelp(void)
"DETAILED INFORMATION\n"
"\n"
" Different protocols provide different ways of getting detailed information\n"
-" about specific files/documents. To get curl to show detailed information\n"
, stdout);
fputs(
+" about specific files/documents. To get curl to show detailed information\n"
" about a single file, you should use -I/--head option. It displays all\n"
" available info on a single file for HTTP and FTP. The HTTP information is a\n"
" lot more extensive.\n"
@@ -4512,10 +4527,10 @@ void hugehelp(void)
" For HTTP, you can get the header information (the same as -I would show)\n"
" shown before the data by using -i/--include. Curl understands the\n"
" -D/--dump-header option when getting files from both FTP and HTTP, and it\n"
-" will then store the headers in the specified file.\n"
-"\n"
, stdout);
fputs(
+" will then store the headers in the specified file.\n"
+"\n"
" Store the HTTP headers in a separate file (headers.txt in the example):\n"
"\n"
" curl --dump-header headers.txt curl.haxx.se\n"
@@ -4529,12 +4544,12 @@ void hugehelp(void)
" It's easy to post data using curl. This is done using the -d <data>\n"
" option. The post data must be urlencoded.\n"
"\n"
-" Post a simple \"name\" and \"phone\" guestbook.\n"
-"\n"
, stdout);
fputs(
+" Post a simple \"name\" and \"phone\" guestbook.\n"
+"\n"
" curl -d \"name=Rafael%20Sagula&phone=3320780\" \\\n"
-" http://www.where.com/guest.cgi\n"
+" http://www.where.com/guest.cgi\n"
"\n"
" How to post a form with curl, lesson #1:\n"
"\n"
@@ -4545,9 +4560,9 @@ void hugehelp(void)
"\n"
" <variable1>=<data1>&<variable2>=<data2>&...\n"
"\n"
-" The 'variable' names are the names set with \"name=\" in the <input> tags, and\n"
, stdout);
fputs(
+" The 'variable' names are the names set with \"name=\" in the <input> tags, and\n"
" the data is the contents you want to fill in for the inputs. The data *must*\n"
" be properly URL encoded. That means you replace space with + and that you\n"
" replace weird letters with %XX where XX is the hexadecimal representation of\n"
@@ -4559,9 +4574,9 @@ void hugehelp(void)
"\n"
" <form action=\"post.cgi\" method=\"post\">\n"
" <input name=user size=10>\n"
-" <input name=pass type=password size=10>\n"
, stdout);
fputs(
+" <input name=pass type=password size=10>\n"
" <input name=id type=hidden value=\"blablabla\">\n"
" <input name=ding value=\"submit\">\n"
" </form>\n"
@@ -4570,8 +4585,8 @@ void hugehelp(void)
"\n"
" To post to this, you enter a curl command line like:\n"
"\n"
-" curl -d \"user=foobar&pass=12345&id=blablabla&ding=submit\" (continues)\n"
-" http://www.formpost.com/getthis/post.cgi\n"
+" curl -d \"user=foobar&pass=12345&id=blablabla&ding=submit\" \\\n"
+" http://www.formpost.com/getthis/post.cgi\n"
"\n"
"\n"
" While -d uses the application/x-www-form-urlencoded mime-type, generally\n"
@@ -4590,7 +4605,7 @@ void hugehelp(void)
" with different content types using the following syntax:\n"
"\n"
" curl -F \"coolfiles=@fil1.gif;type=image/gif,fil2.txt,fil3.html\" \\\n"
-" http://www.post.com/postit.cgi\n"
+" http://www.post.com/postit.cgi\n"
"\n"
" If the content-type is not specified, curl will try to guess from the file\n"
" extension (it only knows a few), or use the previously specified type (from\n"
@@ -5004,7 +5019,7 @@ void hugehelp(void)
" included in recent versions of OpenSSL, and for older versions Dr Stephen\n"
" N. Henson has written a patch for SSLeay that adds this functionality. You\n"
" can get his patch (that requires an SSLeay installation) from his site at:\n"
-" http://www.drh-consultancy.demon.co.uk/\n"
+" https://web.archive.org/web/20170715155512/www.drh-consultancy.demon.co.uk/\n"
"\n"
" Example on how to automatically retrieve a document using a certificate with\n"
" a personal password:\n"
@@ -5171,12 +5186,12 @@ void hugehelp(void)
" curl \"ldap://user:passwd@ldap.frontec.se/o=frontec??sub?mail=*\"\n"
"\n"
" By default, if user and password provided, OpenLDAP/WinLDAP will use basic\n"
-" authentication. On Windows you can control this behavior by providing \n"
+" authentication. On Windows you can control this behavior by providing\n"
" one of --basic, --ntlm or --digest option in curl command line\n"
"\n"
+" curl --ntlm \"ldap://user:passwd@ldap.frontec.se/o=frontec??sub?mail=*\"\n"
, stdout);
fputs(
-" curl --ntlm \"ldap://user:passwd@ldap.frontec.se/o=frontec??sub?mail=*\"\n"
"\n"
" On Windows, if no user/password specified, auto-negotiation mechanism will\n"
" be used with current logon credentials (SSPI/SPNEGO).\n"
@@ -5192,9 +5207,9 @@ void hugehelp(void)
"\n"
" ALL_PROXY\n"
"\n"
+" A comma-separated list of host names that shouldn't go through any proxy is\n"
, stdout);
fputs(
-" A comma-separated list of host names that shouldn't go through any proxy is\n"
" set in (only an asterisk, '*' matches all hosts)\n"
"\n"
" NO_PROXY\n"
@@ -5202,10 +5217,10 @@ void hugehelp(void)
" If the host name matches one of these strings, or the host is within the\n"
" domain of one of these strings, transactions with that node will not be\n"
" proxied. When a domain is used, it needs to start with a period. A user can\n"
-" specify that both www.example.com and foo.example.com should not uses a\n"
+" specify that both www.example.com and foo.example.com should not use a\n"
+" proxy by setting NO_PROXY to \".example.com\". By including the full name you\n"
, stdout);
fputs(
-" proxy by setting NO_PROXY to \".example.com\". By including the full name you\n"
" can exclude specific host names, so to make www.example.com not use a proxy\n"
" but still have foo.example.com do it, set NO_PROXY to \"www.example.com\"\n"
"\n"
@@ -5215,9 +5230,9 @@ void hugehelp(void)
"\n"
" Unix introduced the .netrc concept a long time ago. It is a way for a user\n"
" to specify name and password for commonly visited FTP sites in a file so\n"
+" that you don't have to type them in each time you visit those sites. You\n"
, stdout);
fputs(
-" that you don't have to type them in each time you visit those sites. You\n"
" realize this is a big security risk if someone else gets hold of your\n"
" passwords, so therefore most unix programs won't read this file unless it is\n"
" only readable by yourself (curl doesn't care though).\n"
@@ -5226,10 +5241,10 @@ void hugehelp(void)
" --netrc-optional options). This is not restricted to just FTP,\n"
" so curl can use it for all protocols where authentication is used.\n"
"\n"
-, stdout);
- fputs(
" A very simple .netrc file could look something like:\n"
"\n"
+, stdout);
+ fputs(
" machine curl.haxx.se login iamdaniel password mysecret\n"
"\n"
"CUSTOM OUTPUT\n"
@@ -5241,12 +5256,12 @@ void hugehelp(void)
" To display the amount of bytes downloaded together with some text and an\n"
" ending newline:\n"
"\n"
-, stdout);
- fputs(
" curl -w 'We downloaded %{size_download} bytes\\n' www.download.com\n"
"\n"
"KERBEROS FTP TRANSFER\n"
"\n"
+, stdout);
+ fputs(
" Curl supports kerberos4 and kerberos5/GSSAPI for FTP transfers. You need\n"
" the kerberos package installed and used at curl build time for it to be\n"
" available.\n"
@@ -5256,11 +5271,11 @@ void hugehelp(void)
"\n"
" curl --krb private ftp://krb4site.com -u username:fakepwd\n"
"\n"
-, stdout);
- fputs(
" There's no use for a password on the -u switch, but a blank one will make\n"
" curl ask for one and you already entered the real password to kinit/kauth.\n"
"\n"
+, stdout);
+ fputs(
"TELNET\n"
"\n"
" The curl telnet support is basic and very easy to use. Curl passes all data\n"
@@ -5270,13 +5285,13 @@ void hugehelp(void)
" curl telnet://remote.server.com\n"
"\n"
" And enter the data to pass to the server on stdin. The result will be sent\n"
-, stdout);
- fputs(
" to stdout or to the file you specify with -o.\n"
"\n"
" You might want the -N/--no-buffer option to switch off the buffered output\n"
" for slow connections or similar.\n"
"\n"
+, stdout);
+ fputs(
" Pass options to the telnet protocol negotiation, by using the -t option. To\n"
" tell the server we use a vt100 terminal, try something like:\n"
"\n"
@@ -5286,11 +5301,11 @@ void hugehelp(void)
"\n"
" - XDISPLOC=<X display> Sets the X display location.\n"
"\n"
-, stdout);
- fputs(
" - NEW_ENV=<var,val> Sets an environment variable.\n"
"\n"
" NOTE: The telnet protocol does not specify any way to login with a specified\n"
+, stdout);
+ fputs(
" user and password so curl can't do that automatically. To do that, you need\n"
" to track when the login prompt is received and send the username and\n"
" password accordingly.\n"
@@ -5300,20 +5315,20 @@ void hugehelp(void)
" Specifying multiple files on a single command line will make curl transfer\n"
" all of them, one after the other in the specified order.\n"
"\n"
-, stdout);
- fputs(
" libcurl will attempt to use persistent connections for the transfers so that\n"
" the second transfer to the same host can use the same connection that was\n"
+, stdout);
+ fputs(
" already initiated and was left open in the previous transfer. This greatly\n"
" decreases connection time for all but the first transfer and it makes a far\n"
" better use of the network.\n"
"\n"
" Note that curl cannot use persistent connections for transfers that are used\n"
" in subsequence curl invokes. Try to stuff as many URLs as possible on the\n"
-, stdout);
- fputs(
" same command line if they are using the same host, as that'll make the\n"
" transfers faster. If you use an HTTP proxy for file transfers, practically\n"
+, stdout);
+ fputs(
" all transfers will be persistent.\n"
"\n"
"MULTIPLE TRANSFERS WITH A SINGLE COMMAND LINE\n"
@@ -5321,12 +5336,12 @@ void hugehelp(void)
" As is mentioned above, you can download multiple files with one command line\n"
" by simply adding more URLs. If you want those to get saved to a local file\n"
" instead of just printed to stdout, you need to add one save option for each\n"
-, stdout);
- fputs(
" URL you specify. Note that this also goes for the -O option (but not\n"
" --remote-name-all).\n"
"\n"
" For example: get two files and use -O for the first and a custom file\n"
+, stdout);
+ fputs(
" name for the second:\n"
"\n"
" curl -O http://url.com/file.txt ftp://ftp.com/moo.exe -o moo.jpg\n"
@@ -5338,20 +5353,20 @@ void hugehelp(void)
"IPv6\n"
"\n"
" curl will connect to a server with IPv6 when a host lookup returns an IPv6\n"
-, stdout);
- fputs(
" address and fall back to IPv4 if the connection fails. The --ipv4 and --ipv6\n"
" options can specify which address to use when both are available. IPv6\n"
+, stdout);
+ fputs(
" addresses can also be specified directly in URLs using the syntax:\n"
"\n"
" http://[2001:1890:1112:1::20]/overview.html\n"
"\n"
" When this style is used, the -g option must be given to stop curl from\n"
" interpreting the square brackets as special globbing characters. Link local\n"
-, stdout);
- fputs(
" and site local addresses including a scope identifier, such as fe80::1234%1,\n"
" may also be used, but the scope portion must be numeric or match an existing\n"
+, stdout);
+ fputs(
" network interface on Linux and the percent character must be URL escaped. The\n"
" previous example in an SFTP URL might look like:\n"
"\n"
@@ -5362,10 +5377,10 @@ void hugehelp(void)
"\n"
"METALINK\n"
"\n"
-, stdout);
- fputs(
" Curl supports Metalink (both version 3 and 4 (RFC 5854) are supported), a way\n"
" to list multiple URIs and hashes for a file. Curl will make use of the mirrors\n"
+, stdout);
+ fputs(
" listed within for failover if there are errors (such as the file or server not\n"
" being available). It will also verify the hash of the file after the download\n"
" completes. The Metalink file itself is downloaded and processed in memory and\n"
@@ -5373,24 +5388,24 @@ void hugehelp(void)
"\n"
" Example to use a remote Metalink file:\n"
"\n"
-, stdout);
- fputs(
" curl --metalink http://www.example.com/example.metalink\n"
"\n"
" To use a Metalink file in the local file system, use FILE protocol (file://):\n"
"\n"
+, stdout);
+ fputs(
" curl --metalink file://example.metalink\n"
"\n"
" Please note that if FILE protocol is disabled, there is no way to use a local\n"
" Metalink file at the time of this writing. Also note that if --metalink and\n"
" --include are used together, --include will be ignored. This is because including\n"
-, stdout);
- fputs(
" headers in the response will break Metalink parser and if the headers are included\n"
" in the file described in Metalink file, hash check will fail.\n"
"\n"
"MAILING LISTS\n"
"\n"
+, stdout);
+ fputs(
" For your convenience, we have several open mailing lists to discuss curl,\n"
" its development and things relevant to this. Get all info at\n"
" https://curl.haxx.se/mail/. Some of the lists available are:\n"
@@ -5398,8 +5413,6 @@ void hugehelp(void)
" curl-users\n"
"\n"
" Users of the command line tool. How to use it, what doesn't work, new\n"
-, stdout);
- fputs(
" features, related tools, questions, news, installations, compilations,\n"
" running, porting etc.\n"
"\n"
@@ -5407,6 +5420,8 @@ void hugehelp(void)
"\n"
" Developers using or developing libcurl. Bugs, extensions, improvements.\n"
"\n"
+, stdout);
+ fputs(
" curl-announce\n"
"\n"
" Low-traffic. Only receives announcements of new public versions. At worst,\n"
@@ -5416,8 +5431,6 @@ void hugehelp(void)
" curl-and-php\n"
"\n"
" Using the curl functions in PHP. Everything curl with a PHP angle. Or PHP\n"
-, stdout);
- fputs(
" with a curl angle.\n"
"\n"
" curl-and-python\n"
@@ -5425,6 +5438,8 @@ void hugehelp(void)
" Python hackers using curl with or without the python binding pycurl.\n"
"\n"
" Please direct curl questions, feature requests and trouble reports to one of\n"
+, stdout);
+ fputs(
" these mailing lists instead of mailing any individual.\n"
, stdout) ;
}
@@ -5443,4967 +5458,4984 @@ void hugehelp(void) {}
#include "memdebug.h" /* keep this as LAST include */
static const unsigned char hugehelpgz[] = {
/* This mumbo-jumbo is the huge help text compressed with gzip.
- Thanks to this operation, the size of this data shrank from 202249
- to 59494 bytes. You can disable the use of compressed help
+ Thanks to this operation, the size of this data shrank from 202949
+ to 59691 bytes. You can disable the use of compressed help
texts by NOT passing -c to the mkhelp.pl tool. */
- 0x1f, 0x8b, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0xed, 0xfd,
- 0x7b, 0x7b, 0xdc, 0x46, 0x92, 0x26, 0x8e, 0xfe, 0xcf, 0x4f, 0x81, 0xa9,
- 0x3e, 0x3d, 0x24, 0x67, 0xaa, 0x8a, 0x17, 0x5d, 0x6c, 0xd1, 0x92, 0xc7,
- 0x34, 0x45, 0xd9, 0x1c, 0x53, 0x22, 0x97, 0x45, 0xd9, 0xee, 0x9f, 0xed,
- 0x47, 0x0f, 0xaa, 0x0a, 0x24, 0xd1, 0xaa, 0x02, 0xaa, 0x01, 0x14, 0x29,
- 0xf6, 0xec, 0xec, 0x67, 0x3f, 0x19, 0x6f, 0x44, 0x64, 0x26, 0x90, 0x59,
- 0x45, 0xda, 0x6d, 0xf7, 0xee, 0xf9, 0xed, 0x99, 0xdd, 0xb6, 0x24, 0x12,
- 0x48, 0xe4, 0x35, 0x32, 0x2e, 0x6f, 0xbc, 0x91, 0x24, 0x0f, 0xfd, 0xdf,
- 0x07, 0xfc, 0xef, 0x83, 0xf9, 0x3f, 0xf3, 0xe7, 0x46, 0x92, 0x9c, 0x57,
- 0xe5, 0x5f, 0xb3, 0x49, 0x13, 0x7f, 0xf6, 0xc3, 0x87, 0xff, 0x99, 0xf0,
- 0xff, 0x33, 0xef, 0xfc, 0x6c, 0xfe, 0xdc, 0x58, 0xdb, 0xf6, 0x4e, 0xe2,
- 0x5e, 0xf8, 0x9f, 0x1f, 0xb6, 0x93, 0x87, 0x5e, 0xf8, 0x9f, 0xc9, 0x16,
- 0x5e, 0xf8, 0x20, 0x5f, 0x78, 0x49, 0x7f, 0xff, 0xf0, 0x61, 0xfd, 0x47,
- 0x7e, 0xa6, 0x5e, 0xd1, 0x7f, 0x76, 0xe8, 0xbd, 0x9f, 0x3f, 0xd0, 0x5f,
- 0xcd, 0x4f, 0x36, 0x36, 0xde, 0x1d, 0xbe, 0x3d, 0xd6, 0x57, 0x27, 0xcb,
- 0x6a, 0x96, 0x0c, 0x92, 0xa6, 0x4a, 0x8b, 0xfa, 0x2a, 0xab, 0x92, 0x34,
- 0x79, 0x7f, 0x71, 0xba, 0xb1, 0x31, 0xfa, 0xcb, 0xbb, 0xb3, 0xf3, 0xd1,
- 0xc9, 0xa8, 0xf5, 0xd8, 0x4f, 0xe5, 0xa2, 0xc9, 0xcb, 0xa2, 0x36, 0xdd,
- 0x37, 0x0f, 0xd5, 0xbf, 0x6c, 0x6c, 0xbc, 0x3e, 0x1e, 0x1d, 0x5d, 0x9c,
- 0x9c, 0x5f, 0x9e, 0x9c, 0xbd, 0x6b, 0x3d, 0x99, 0xe4, 0x75, 0x62, 0x9a,
- 0x6a, 0xca, 0x72, 0x66, 0xfe, 0xe3, 0x5a, 0x9f, 0xa6, 0x4d, 0x9a, 0x5c,
- 0x55, 0xe5, 0x3c, 0x29, 0x2b, 0xfa, 0x45, 0x9a, 0xd4, 0x59, 0x75, 0x9b,
+ 0x1f, 0x8b, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0xec, 0xfd,
+ 0x6b, 0x7b, 0xdc, 0x46, 0x92, 0x26, 0x0c, 0x7f, 0xe7, 0xaf, 0x40, 0x57,
+ 0xbf, 0x3d, 0x24, 0xbb, 0xab, 0x8a, 0x07, 0x1d, 0x6c, 0xd1, 0x92, 0xc7,
+ 0x34, 0x45, 0x59, 0x1c, 0x53, 0x22, 0x97, 0x45, 0xd9, 0xee, 0xb5, 0x7d,
+ 0xe9, 0x42, 0x55, 0x81, 0x24, 0x5a, 0x55, 0x40, 0x35, 0x80, 0x12, 0xc5,
+ 0x9e, 0x9d, 0xfd, 0xed, 0x4f, 0xc6, 0x1d, 0x11, 0x99, 0x09, 0x64, 0x56,
+ 0x91, 0x76, 0xdb, 0x3d, 0xfb, 0x3e, 0xfb, 0xcc, 0x6e, 0x5b, 0x12, 0x09,
+ 0x24, 0xf2, 0x18, 0x19, 0x87, 0x3b, 0xee, 0x48, 0x92, 0xfb, 0xfe, 0xef,
+ 0x3d, 0xfe, 0xf7, 0xde, 0xfc, 0x9f, 0xf9, 0x73, 0x23, 0x49, 0xce, 0xab,
+ 0xf2, 0x6f, 0xd9, 0xa4, 0x89, 0x3f, 0xfb, 0xfe, 0xfd, 0xff, 0x4a, 0xf8,
+ 0xff, 0x99, 0x77, 0x7e, 0x32, 0x7f, 0x6e, 0xac, 0x6d, 0x7b, 0x27, 0x71,
+ 0x2f, 0xfc, 0xaf, 0xf7, 0xdb, 0xc9, 0x7d, 0x2f, 0xfc, 0xaf, 0x64, 0x0b,
+ 0x2f, 0xbc, 0x97, 0x2f, 0x3c, 0xa7, 0xbf, 0xbf, 0x7f, 0xbf, 0xfe, 0x23,
+ 0x3f, 0x51, 0xaf, 0xe8, 0x3f, 0x3b, 0xf4, 0xde, 0x4f, 0xef, 0xe9, 0xaf,
+ 0xe6, 0x27, 0x1b, 0x1b, 0x6f, 0x0f, 0xdf, 0x1c, 0xeb, 0xab, 0x93, 0x65,
+ 0x35, 0x4b, 0x06, 0x49, 0x53, 0xa5, 0x45, 0x7d, 0x95, 0x55, 0x49, 0x9a,
+ 0xbc, 0xbb, 0x38, 0xdd, 0xd8, 0x18, 0xfd, 0xf5, 0xed, 0xd9, 0xf9, 0xe8,
+ 0x64, 0xd4, 0x7a, 0xec, 0xc7, 0x72, 0xd1, 0xe4, 0x65, 0x51, 0x9b, 0xee,
+ 0x9b, 0x87, 0xea, 0x9f, 0x37, 0x36, 0x5e, 0x1e, 0x8f, 0x8e, 0x2e, 0x4e,
+ 0xce, 0x2f, 0x4f, 0xce, 0xde, 0xb6, 0x9e, 0x4c, 0xf2, 0x3a, 0x31, 0x4d,
+ 0x35, 0x65, 0x39, 0x33, 0xff, 0x71, 0xad, 0x4f, 0xd3, 0x26, 0x4d, 0xae,
+ 0xaa, 0x72, 0x9e, 0x94, 0x15, 0xfd, 0x22, 0x4d, 0xea, 0xac, 0xfa, 0x98,
0x55, 0xfd, 0x64, 0x59, 0xe7, 0xc5, 0x75, 0x52, 0x16, 0x59, 0x52, 0x5e,
0x25, 0xcd, 0x4d, 0xa6, 0xcd, 0xd5, 0xcb, 0xc5, 0xa2, 0xac, 0x9a, 0x6c,
- 0x9a, 0x2c, 0xaa, 0xb2, 0x29, 0x27, 0xe5, 0xac, 0x4e, 0xb6, 0x5e, 0x9f,
- 0x1c, 0x5d, 0xf6, 0x93, 0x37, 0x27, 0xa7, 0xc7, 0xe6, 0xbf, 0x97, 0xe7,
- 0xf8, 0xcf, 0xa8, 0x9f, 0x7c, 0x73, 0x76, 0xfe, 0xed, 0xf1, 0x45, 0x3f,
- 0xf9, 0xf6, 0x92, 0x7e, 0x46, 0xff, 0x35, 0x3f, 0x4c, 0x4e, 0xde, 0x1e,
- 0x9e, 0xf7, 0xb5, 0x39, 0xfa, 0x07, 0xfd, 0xf0, 0xf4, 0xb5, 0xf9, 0x21,
- 0xff, 0x41, 0xff, 0x3c, 0x3f, 0x3b, 0x7f, 0x22, 0x7f, 0xd0, 0x3f, 0x2f,
- 0x2e, 0xdf, 0x9a, 0xdf, 0x5e, 0x5c, 0x8e, 0xcc, 0x7f, 0x47, 0x47, 0xf4,
- 0x1f, 0x7c, 0x65, 0xf4, 0xf6, 0x6b, 0xfc, 0x67, 0x64, 0x9b, 0x1b, 0xbd,
- 0xe5, 0x9f, 0xe3, 0x4b, 0x97, 0xc7, 0xa7, 0xef, 0x8e, 0x2f, 0x93, 0xb4,
- 0x98, 0x26, 0x97, 0xe6, 0xf9, 0xed, 0x61, 0x72, 0x79, 0x93, 0x25, 0x93,
- 0x72, 0x3e, 0xa7, 0x1f, 0x99, 0x19, 0x99, 0x66, 0x75, 0x7e, 0x5d, 0x98,
- 0xa1, 0x98, 0x91, 0xdf, 0x95, 0xd5, 0xc7, 0x24, 0xb9, 0xcb, 0x9b, 0x9b,
- 0x72, 0xd9, 0x68, 0x73, 0x4b, 0x33, 0x1b, 0x49, 0x5e, 0x34, 0x59, 0x95,
- 0x4e, 0x68, 0xa6, 0x87, 0x1b, 0xad, 0x59, 0x2d, 0xaf, 0xcc, 0x1c, 0xd6,
- 0x66, 0xd2, 0xc6, 0xcb, 0x7a, 0x56, 0xa6, 0x53, 0x9a, 0x2a, 0xf3, 0xca,
- 0xd5, 0xd2, 0x4c, 0x72, 0x95, 0x4f, 0x3e, 0xd6, 0xc9, 0x2c, 0xff, 0x98,
- 0xd1, 0x44, 0x7d, 0xba, 0xd7, 0x89, 0xeb, 0x73, 0xa3, 0xe9, 0xd2, 0xcc,
- 0x69, 0x31, 0xd0, 0xe6, 0x9a, 0x7c, 0x92, 0xd2, 0x07, 0x30, 0x73, 0xc9,
- 0x72, 0x41, 0xad, 0xf1, 0x8c, 0x25, 0x8b, 0xb2, 0x36, 0x2f, 0x8d, 0x46,
- 0xa7, 0xa6, 0xe7, 0x45, 0x91, 0xa1, 0x1f, 0x75, 0xdf, 0xfc, 0xa3, 0xfc,
- 0x98, 0x67, 0xe6, 0x2f, 0x57, 0xf9, 0x2c, 0x4b, 0x78, 0x45, 0x6d, 0x73,
- 0xb4, 0xb4, 0x49, 0x95, 0xd5, 0xcb, 0x79, 0x66, 0x66, 0xef, 0x6d, 0xd6,
- 0xa4, 0xb3, 0xbc, 0xf8, 0x68, 0xfe, 0x4a, 0x03, 0x9f, 0x97, 0x55, 0x36,
- 0x4c, 0x0e, 0xeb, 0xe4, 0xbe, 0x5c, 0x9a, 0x01, 0xcf, 0x66, 0x66, 0xcd,
- 0xb3, 0x64, 0x9c, 0xcd, 0xca, 0xbb, 0x3e, 0xad, 0x74, 0x52, 0x2c, 0xe7,
- 0x63, 0xd3, 0x40, 0x79, 0xe5, 0x9a, 0x4b, 0x9b, 0xa5, 0x69, 0x8e, 0x9f,
- 0x9e, 0xa7, 0x66, 0x4c, 0xe6, 0xdd, 0x2a, 0xb9, 0xc9, 0xcc, 0x98, 0xeb,
- 0x45, 0x5e, 0xfc, 0x4b, 0x7b, 0x5e, 0xcc, 0xd4, 0x2e, 0xca, 0xbb, 0xac,
- 0x32, 0x33, 0x3b, 0xbe, 0x4f, 0xcc, 0x24, 0x8c, 0x79, 0x13, 0x5e, 0x99,
- 0x4d, 0x96, 0xa4, 0xa6, 0x09, 0xbb, 0x01, 0x07, 0x55, 0x36, 0x4b, 0x69,
- 0x33, 0xd9, 0x6f, 0x0c, 0xcd, 0x22, 0x66, 0x76, 0xb7, 0xc9, 0xab, 0x5b,
- 0x4f, 0xb6, 0xf1, 0xf2, 0xd4, 0x8c, 0x24, 0x9f, 0xd5, 0x66, 0x19, 0xe8,
- 0x50, 0xc8, 0x33, 0xb4, 0xa8, 0xb4, 0xff, 0xcd, 0xde, 0xbc, 0x2f, 0x9a,
- 0xf4, 0x13, 0x3e, 0x2f, 0x7b, 0x73, 0x30, 0xcd, 0x16, 0x59, 0x31, 0xcd,
- 0x8a, 0x66, 0x98, 0xfc, 0xa5, 0x5c, 0x6e, 0x9a, 0x6f, 0x5f, 0xe5, 0x66,
- 0x0e, 0x52, 0x69, 0xca, 0x7c, 0xd9, 0x6c, 0x82, 0x49, 0x95, 0x2f, 0xbc,
- 0xa5, 0x28, 0x0b, 0xb3, 0xe6, 0xc9, 0xc5, 0x9b, 0xa3, 0xe4, 0xc9, 0x8b,
- 0xcf, 0x9f, 0xbb, 0x35, 0x37, 0x0d, 0x24, 0x93, 0xb4, 0x30, 0x23, 0xce,
- 0x26, 0xf9, 0xd5, 0x7d, 0x32, 0x5f, 0xce, 0x9a, 0x7c, 0x61, 0x66, 0x9f,
- 0x0e, 0x1f, 0x1d, 0xa0, 0x45, 0x5a, 0x35, 0x35, 0x6d, 0x02, 0xfc, 0x00,
- 0x63, 0xbf, 0xab, 0xf2, 0x86, 0x0e, 0x12, 0x7e, 0x67, 0x7a, 0x98, 0x35,
- 0xb5, 0x36, 0x47, 0x7b, 0xcd, 0x7c, 0x67, 0x6c, 0xf6, 0x96, 0x99, 0xda,
- 0xb4, 0x36, 0x1f, 0x3d, 0xd8, 0x70, 0x12, 0xe4, 0xa6, 0x69, 0x16, 0x07,
- 0x3b, 0x3b, 0x75, 0xde, 0x64, 0xc3, 0xff, 0x32, 0xe7, 0xb0, 0xdf, 0xdc,
- 0x95, 0xfd, 0xe6, 0xa6, 0xca, 0xb2, 0xff, 0x1e, 0x9a, 0x3d, 0x6c, 0x9f,
- 0x34, 0xdf, 0xbd, 0x97, 0x8e, 0x5d, 0x67, 0x8d, 0xf9, 0xc2, 0xdf, 0x96,
- 0x59, 0x41, 0x2d, 0x9a, 0x7e, 0xa4, 0xb3, 0xc5, 0x4d, 0x6a, 0x96, 0x33,
- 0x33, 0xbb, 0x91, 0x4e, 0xb6, 0xd9, 0x30, 0xd4, 0x2b, 0x3e, 0xdb, 0x3f,
- 0xfd, 0x12, 0x7e, 0xf4, 0x0a, 0xdf, 0x34, 0xff, 0x1d, 0x66, 0x9f, 0xd2,
- 0xb9, 0x19, 0x1b, 0x7d, 0x6a, 0x87, 0xb6, 0xd8, 0x4f, 0x7b, 0x83, 0xbd,
- 0xdd, 0xdd, 0x5f, 0x86, 0xcd, 0xa7, 0xe6, 0x71, 0xcf, 0xef, 0xee, 0xba,
- 0x37, 0xe8, 0xd1, 0x2d, 0x1a, 0x6f, 0x32, 0x33, 0x5b, 0x86, 0x3e, 0xfe,
- 0xf7, 0xac, 0x2a, 0xeb, 0xed, 0xc7, 0xb5, 0x94, 0x0e, 0xfe, 0xde, 0xfe,
- 0xee, 0xbb, 0xac, 0xc6, 0x9e, 0x71, 0x63, 0x4d, 0xd2, 0xca, 0xec, 0xdb,
- 0xb2, 0x71, 0xe2, 0xa9, 0x6f, 0x0e, 0x65, 0x63, 0x67, 0xc6, 0x9c, 0x39,
- 0xf3, 0xb4, 0x11, 0x6c, 0xe9, 0x8c, 0x64, 0x5a, 0x9d, 0x14, 0xd9, 0x27,
- 0x7b, 0xca, 0xcd, 0xe9, 0xcf, 0xd2, 0xc9, 0x4d, 0x52, 0x9a, 0xcd, 0x5f,
- 0x45, 0x96, 0xc0, 0xef, 0x50, 0x5a, 0x4d, 0x6e, 0xf2, 0x5b, 0x33, 0x1b,
- 0x2f, 0x5e, 0x3c, 0x1f, 0x98, 0xff, 0xbc, 0xf8, 0x65, 0xe7, 0xb6, 0x9c,
- 0x99, 0xc9, 0x79, 0xfa, 0xcb, 0x0e, 0x2d, 0xf1, 0x7f, 0xa5, 0xfd, 0x71,
- 0x7f, 0xf2, 0xdf, 0xc3, 0x9b, 0x66, 0x3e, 0x5b, 0xb9, 0x71, 0xd2, 0xc2,
- 0xfc, 0x6f, 0x5e, 0x2e, 0x8b, 0xc6, 0x6e, 0x16, 0xb3, 0xe7, 0x1a, 0x4f,
- 0x38, 0x99, 0xe3, 0x6a, 0xce, 0x28, 0x6d, 0x6d, 0xda, 0x43, 0x74, 0xea,
- 0xcc, 0x01, 0x75, 0xc7, 0xb1, 0x99, 0xdc, 0xd0, 0xf8, 0xcd, 0xee, 0x49,
- 0x65, 0x12, 0x9a, 0x3c, 0xa5, 0x93, 0x69, 0x04, 0x04, 0x09, 0x2c, 0xb4,
- 0xc5, 0x5f, 0xcb, 0xcd, 0x83, 0x65, 0x35, 0xcd, 0xaa, 0x61, 0xb7, 0x1b,
- 0xf6, 0xc8, 0x7a, 0xdf, 0x4c, 0xf4, 0x46, 0xa1, 0x1f, 0xa0, 0x63, 0xf3,
- 0xfc, 0x93, 0x69, 0x01, 0x02, 0xb3, 0x40, 0xc7, 0xb9, 0xb5, 0x84, 0x7a,
- 0x8c, 0xcf, 0xe8, 0xfb, 0xee, 0xc8, 0x9a, 0xae, 0xb7, 0x86, 0x8e, 0x8f,
- 0xba, 0xc1, 0x27, 0x66, 0xf1, 0x16, 0xe6, 0xad, 0x25, 0xc9, 0x55, 0x1c,
- 0x6b, 0x6a, 0xc6, 0x08, 0x84, 0x6b, 0xb3, 0x2e, 0x66, 0x2d, 0x68, 0x17,
- 0xd3, 0x52, 0xdd, 0x27, 0xef, 0xcc, 0x86, 0x61, 0x61, 0xe4, 0x6d, 0xf6,
- 0x59, 0xd6, 0x34, 0x0f, 0x2e, 0x93, 0xdb, 0xb1, 0x07, 0x7b, 0xc1, 0xa6,
- 0x5d, 0xf5, 0xbc, 0xd9, 0x67, 0x07, 0xfb, 0xed, 0x87, 0x7f, 0x30, 0x42,
- 0xda, 0x1d, 0x17, 0xf3, 0xf5, 0xff, 0xfa, 0x6f, 0x6f, 0xd7, 0xdd, 0xd1,
- 0x6f, 0xf3, 0xe2, 0xb6, 0xfc, 0x68, 0xa6, 0x08, 0xb7, 0x68, 0xda, 0x9e,
+ 0x9a, 0x2c, 0xaa, 0xb2, 0x29, 0x27, 0xe5, 0xac, 0x4e, 0xb6, 0x5e, 0x9e,
+ 0x1c, 0x5d, 0xf6, 0x93, 0x57, 0x27, 0xa7, 0xc7, 0xe6, 0xbf, 0x97, 0xe7,
+ 0xf8, 0xcf, 0xa8, 0x9f, 0x7c, 0x73, 0x76, 0xfe, 0xfa, 0xf8, 0xa2, 0x9f,
+ 0xbc, 0xbe, 0xa4, 0x9f, 0xd1, 0x7f, 0xcd, 0x0f, 0x93, 0x93, 0x37, 0x87,
+ 0xe7, 0x7d, 0x6d, 0x8e, 0xfe, 0x41, 0x3f, 0x3c, 0x7d, 0x69, 0x7e, 0xc8,
+ 0x7f, 0xd0, 0x3f, 0xcf, 0xcf, 0xce, 0x1f, 0xc9, 0x1f, 0xf4, 0xcf, 0x8b,
+ 0xcb, 0x37, 0xe6, 0xb7, 0x17, 0x97, 0x23, 0xf3, 0xdf, 0xd1, 0x11, 0xfd,
+ 0x07, 0x5f, 0x19, 0xbd, 0xf9, 0x1a, 0xff, 0x19, 0xd9, 0xe6, 0x46, 0x6f,
+ 0xf8, 0xe7, 0xf8, 0xd2, 0xe5, 0xf1, 0xe9, 0xdb, 0xe3, 0xcb, 0x24, 0x2d,
+ 0xa6, 0xc9, 0xa5, 0x79, 0x7e, 0x7b, 0x98, 0x5c, 0xde, 0x64, 0xc9, 0xa4,
+ 0x9c, 0xcf, 0xe9, 0x47, 0x66, 0x46, 0xa6, 0x59, 0x9d, 0x5f, 0x17, 0x66,
+ 0x28, 0x66, 0xe4, 0xb7, 0x65, 0xf5, 0x21, 0x49, 0x6e, 0xf3, 0xe6, 0xa6,
+ 0x5c, 0x36, 0xda, 0xdc, 0xd2, 0xcc, 0x46, 0x92, 0x17, 0x4d, 0x56, 0xa5,
+ 0x13, 0x9a, 0xe9, 0xe1, 0x46, 0x6b, 0x56, 0xcb, 0x2b, 0x33, 0x87, 0xb5,
+ 0x99, 0xb4, 0xf1, 0xb2, 0x9e, 0x95, 0xe9, 0x94, 0xa6, 0xca, 0xbc, 0x72,
+ 0xb5, 0x34, 0x93, 0x5c, 0xe5, 0x93, 0x0f, 0x75, 0x32, 0xcb, 0x3f, 0x64,
+ 0x34, 0x51, 0x9f, 0xee, 0x74, 0xe2, 0xfa, 0xdc, 0x68, 0xba, 0x34, 0x73,
+ 0x5a, 0x0c, 0xb4, 0xb9, 0x26, 0x9f, 0xa4, 0xf4, 0x01, 0xcc, 0x5c, 0xb2,
+ 0x5c, 0x50, 0x6b, 0x3c, 0x63, 0xc9, 0xa2, 0xac, 0xcd, 0x4b, 0xa3, 0xd1,
+ 0xa9, 0xe9, 0x79, 0x51, 0x64, 0xe8, 0x47, 0xdd, 0x37, 0xff, 0x28, 0x3f,
+ 0xe4, 0x99, 0xf9, 0xcb, 0x55, 0x3e, 0xcb, 0x12, 0x5e, 0x51, 0xdb, 0x1c,
+ 0x2d, 0x6d, 0x52, 0x65, 0xf5, 0x72, 0x9e, 0x99, 0xd9, 0x7b, 0x93, 0x35,
+ 0xe9, 0x2c, 0x2f, 0x3e, 0x98, 0xbf, 0xd2, 0xc0, 0xe7, 0x65, 0x95, 0x0d,
+ 0x93, 0xc3, 0x3a, 0xb9, 0x2b, 0x97, 0x66, 0xc0, 0xb3, 0x99, 0x59, 0xf3,
+ 0x2c, 0x19, 0x67, 0xb3, 0xf2, 0xb6, 0x4f, 0x2b, 0x9d, 0x14, 0xcb, 0xf9,
+ 0xd8, 0x34, 0x50, 0x5e, 0xb9, 0xe6, 0xd2, 0x66, 0x69, 0x9a, 0xe3, 0xa7,
+ 0xe7, 0xa9, 0x19, 0x93, 0x79, 0xb7, 0x4a, 0x6e, 0x32, 0x33, 0xe6, 0x7a,
+ 0x91, 0x17, 0x7f, 0x68, 0xcf, 0x8b, 0x99, 0xda, 0x45, 0x79, 0x9b, 0x55,
+ 0x66, 0x66, 0xc7, 0x77, 0x89, 0x99, 0x84, 0x31, 0x6f, 0xc2, 0x2b, 0xb3,
+ 0xc9, 0x92, 0xd4, 0x34, 0x61, 0x37, 0xe0, 0xa0, 0xca, 0x66, 0x29, 0x6d,
+ 0x26, 0xfb, 0x8d, 0xa1, 0x59, 0xc4, 0xcc, 0xee, 0x36, 0x79, 0x75, 0xeb,
+ 0xd1, 0x36, 0x5e, 0x9e, 0x9a, 0x91, 0xe4, 0xb3, 0xda, 0x2c, 0x03, 0x1d,
+ 0x0a, 0x79, 0x86, 0x16, 0x95, 0xf6, 0xbf, 0xd9, 0x9b, 0x77, 0x45, 0x93,
+ 0x7e, 0xc2, 0xe7, 0x65, 0x6f, 0x0e, 0xa6, 0xd9, 0x22, 0x2b, 0xa6, 0x59,
+ 0xd1, 0x0c, 0x93, 0xbf, 0x96, 0xcb, 0x4d, 0xf3, 0xed, 0xab, 0xdc, 0xcc,
+ 0x41, 0x2a, 0x4d, 0x99, 0x2f, 0x9b, 0x4d, 0x30, 0xa9, 0xf2, 0x85, 0xb7,
+ 0x14, 0x65, 0x61, 0xd6, 0x3c, 0xb9, 0x78, 0x75, 0x94, 0x3c, 0x7a, 0xf6,
+ 0xf9, 0x53, 0xb7, 0xe6, 0xa6, 0x81, 0x64, 0x92, 0x16, 0x66, 0xc4, 0xd9,
+ 0x24, 0xbf, 0xba, 0x4b, 0xe6, 0xcb, 0x59, 0x93, 0x2f, 0xcc, 0xec, 0xd3,
+ 0xe1, 0xa3, 0x03, 0xb4, 0x48, 0xab, 0xa6, 0xa6, 0x4d, 0x80, 0x1f, 0x60,
+ 0xec, 0xb7, 0x55, 0xde, 0xd0, 0x41, 0xc2, 0xef, 0x4c, 0x0f, 0xb3, 0xa6,
+ 0xd6, 0xe6, 0x68, 0xaf, 0x99, 0xef, 0x8c, 0xcd, 0xde, 0x32, 0x53, 0x9b,
+ 0xd6, 0xe6, 0xa3, 0x07, 0x1b, 0x4e, 0x82, 0xdc, 0x34, 0xcd, 0xe2, 0x60,
+ 0x67, 0xa7, 0xce, 0x9b, 0x6c, 0xf8, 0x9f, 0xe6, 0x1c, 0xf6, 0x9b, 0xdb,
+ 0xb2, 0xdf, 0xdc, 0x54, 0x59, 0xf6, 0x5f, 0x43, 0xb3, 0x87, 0xed, 0x93,
+ 0xe6, 0xbb, 0x77, 0xd2, 0xb1, 0xeb, 0xac, 0x31, 0x5f, 0xf8, 0xfb, 0x32,
+ 0x2b, 0xa8, 0x45, 0xd3, 0x8f, 0x74, 0xb6, 0xb8, 0x49, 0xcd, 0x72, 0x66,
+ 0x66, 0x37, 0xd2, 0xc9, 0x36, 0x1b, 0x86, 0x7a, 0xc5, 0x67, 0xfb, 0xc7,
+ 0x9f, 0xc3, 0x8f, 0x5e, 0xe1, 0x9b, 0xe6, 0xbf, 0xc3, 0xec, 0x53, 0x3a,
+ 0x37, 0x63, 0xa3, 0x4f, 0xed, 0xd0, 0x16, 0xfb, 0x71, 0x6f, 0xb0, 0xb7,
+ 0xbb, 0xfb, 0xf3, 0xb0, 0xf9, 0xd4, 0x3c, 0xec, 0xf9, 0xdd, 0x5d, 0xf7,
+ 0x06, 0x3d, 0xba, 0x45, 0xe3, 0x4d, 0x66, 0x66, 0xcb, 0xd0, 0xc7, 0xff,
+ 0x91, 0x55, 0x65, 0xbd, 0xfd, 0xb0, 0x96, 0xd2, 0xc1, 0x3f, 0xda, 0xdf,
+ 0x7d, 0x9b, 0xd5, 0xd8, 0x33, 0x6e, 0xac, 0x49, 0x5a, 0x99, 0x7d, 0x5b,
+ 0x36, 0x4e, 0x3c, 0xf5, 0xcd, 0xa1, 0x6c, 0xec, 0xcc, 0x98, 0x33, 0x67,
+ 0x9e, 0x36, 0x82, 0x2d, 0x9d, 0x91, 0x4c, 0xab, 0x93, 0x22, 0xfb, 0x64,
+ 0x4f, 0xb9, 0x39, 0xfd, 0x59, 0x3a, 0xb9, 0x49, 0x4a, 0xb3, 0xf9, 0xab,
+ 0xc8, 0x12, 0xf8, 0x1d, 0x4a, 0xab, 0xc9, 0x4d, 0xfe, 0xd1, 0xcc, 0xc6,
+ 0xb3, 0x67, 0x4f, 0x07, 0xe6, 0x3f, 0xcf, 0x7e, 0xde, 0xf9, 0x58, 0xce,
+ 0xcc, 0xe4, 0x3c, 0xfe, 0x79, 0x87, 0x96, 0xf8, 0x3f, 0xd3, 0xfe, 0xb8,
+ 0x3f, 0xf9, 0xaf, 0xe1, 0x4d, 0x33, 0x9f, 0xad, 0xdc, 0x38, 0x69, 0x61,
+ 0xfe, 0x37, 0x2f, 0x97, 0x45, 0x63, 0x37, 0x8b, 0xd9, 0x73, 0x8d, 0x27,
+ 0x9c, 0xcc, 0x71, 0x35, 0x67, 0x94, 0xb6, 0x36, 0xed, 0x21, 0x3a, 0x75,
+ 0xe6, 0x80, 0xba, 0xe3, 0xd8, 0x4c, 0x6e, 0x68, 0xfc, 0x66, 0xf7, 0xa4,
+ 0x32, 0x09, 0x4d, 0x9e, 0xd2, 0xc9, 0x34, 0x02, 0x82, 0x04, 0x16, 0xda,
+ 0xe2, 0xaf, 0xe5, 0xe6, 0xc1, 0xb2, 0x9a, 0x66, 0xd5, 0xb0, 0xdb, 0x0d,
+ 0x7b, 0x64, 0xbd, 0x6f, 0x26, 0x7a, 0xa3, 0xd0, 0x0f, 0xd0, 0xb1, 0x79,
+ 0xfe, 0xc9, 0xb4, 0x00, 0x81, 0x59, 0xa0, 0xe3, 0xdc, 0x5a, 0x42, 0x3d,
+ 0xc6, 0x67, 0xf4, 0x7d, 0x77, 0x64, 0x4d, 0xd7, 0x5b, 0x43, 0xc7, 0x47,
+ 0xdd, 0xe0, 0x13, 0xb3, 0x78, 0x0b, 0xf3, 0xd6, 0x92, 0xe4, 0x2a, 0x8e,
+ 0x35, 0x35, 0x63, 0x04, 0xc2, 0xb5, 0x59, 0x17, 0xb3, 0x16, 0xb4, 0x8b,
+ 0x69, 0xa9, 0xee, 0x92, 0xb7, 0x66, 0xc3, 0xb0, 0x30, 0xf2, 0x36, 0xfb,
+ 0x2c, 0x6b, 0x9a, 0x7b, 0x97, 0xc9, 0xed, 0xd8, 0x83, 0xbd, 0x60, 0xd3,
+ 0xae, 0x7a, 0xde, 0xec, 0xb3, 0x83, 0xfd, 0xf6, 0xc3, 0xdf, 0x1b, 0x21,
+ 0xed, 0x8e, 0x8b, 0xf9, 0xfa, 0x7f, 0xfe, 0x97, 0xb7, 0xeb, 0x6e, 0xe9,
+ 0xb7, 0x79, 0xf1, 0xb1, 0xfc, 0x60, 0xa6, 0x08, 0xb7, 0x68, 0xda, 0x9e,
0x4d, 0x92, 0x43, 0xf3, 0x45, 0x63, 0xaf, 0x27, 0xda, 0x8e, 0xe6, 0x47,
- 0xe3, 0x74, 0x3c, 0xbb, 0x4f, 0x6e, 0xd2, 0xdb, 0x8c, 0xc6, 0xbb, 0x30,
- 0xfb, 0x94, 0x66, 0xc0, 0x5c, 0x1b, 0x33, 0xc8, 0x31, 0x11, 0x0c, 0xd3,
- 0x72, 0x39, 0x36, 0xc2, 0xe5, 0x6f, 0xcb, 0xb2, 0xe1, 0x89, 0x49, 0x6f,
- 0xcb, 0x7c, 0xda, 0xba, 0x8b, 0x6f, 0x32, 0x12, 0x68, 0xf4, 0x61, 0x5c,
- 0x52, 0x46, 0xa0, 0x52, 0x4f, 0x71, 0xd0, 0xf2, 0x86, 0xae, 0x3b, 0x23,
- 0x0a, 0xd3, 0x59, 0x5d, 0x26, 0xc9, 0x75, 0x49, 0xa7, 0x04, 0x02, 0x18,
- 0xdb, 0xdc, 0x2c, 0xca, 0x4d, 0x4a, 0xb7, 0x9a, 0xb9, 0xc0, 0xec, 0x39,
- 0xa8, 0x32, 0xc8, 0x62, 0xac, 0x54, 0x3a, 0xeb, 0xf3, 0xed, 0x45, 0xef,
- 0xc8, 0x54, 0x25, 0x9b, 0xff, 0xba, 0xd9, 0x4f, 0x36, 0xff, 0x63, 0x13,
- 0xfb, 0x61, 0xf3, 0xdf, 0x36, 0xdd, 0x3a, 0x1b, 0x65, 0xec, 0x36, 0x9f,
- 0x66, 0xbc, 0x25, 0x4e, 0xce, 0x6f, 0x9f, 0x27, 0x7f, 0x27, 0xdd, 0xc1,
- 0xc8, 0xda, 0xec, 0x93, 0x6e, 0x48, 0x1d, 0x9b, 0x79, 0x3b, 0x31, 0x42,
- 0x37, 0x5d, 0x90, 0x12, 0x91, 0x55, 0x13, 0xb3, 0x7b, 0xd3, 0x6b, 0xb3,
- 0x5f, 0xcd, 0x5d, 0xac, 0xcd, 0x51, 0xfb, 0xf4, 0x0a, 0x0f, 0xcb, 0x08,
- 0xc8, 0xa4, 0x48, 0xe7, 0xe6, 0x44, 0x9c, 0x52, 0x8f, 0xf2, 0x22, 0x5c,
- 0xcc, 0x9f, 0xae, 0xb2, 0xcf, 0x77, 0x0f, 0x0e, 0x9e, 0xfc, 0x79, 0xff,
- 0x59, 0xd6, 0xdc, 0xec, 0xfe, 0xb2, 0x63, 0x1f, 0x39, 0xb9, 0xc2, 0xb4,
- 0xeb, 0xf6, 0xd3, 0x4e, 0x98, 0x5b, 0xde, 0xde, 0x12, 0xe6, 0x7d, 0xf3,
- 0xf7, 0xec, 0x2a, 0xff, 0xd4, 0x57, 0x7d, 0x89, 0xcf, 0x5c, 0x6a, 0xb6,
- 0x9a, 0x59, 0x3f, 0x12, 0x11, 0xda, 0xdc, 0xf5, 0x32, 0xab, 0xcd, 0x4c,
- 0xde, 0xdd, 0xa4, 0x4d, 0x62, 0x1b, 0xe0, 0x95, 0x9d, 0xe7, 0xd7, 0x37,
- 0x4d, 0x72, 0x97, 0xd2, 0x65, 0x73, 0xd2, 0x70, 0x13, 0x74, 0xcb, 0x9b,
- 0x2b, 0xe6, 0x2a, 0x35, 0x77, 0x05, 0xad, 0x21, 0xae, 0xf4, 0xb1, 0xd3,
- 0x30, 0x1a, 0xb3, 0xcd, 0x79, 0x41, 0x9c, 0x3a, 0x35, 0x4e, 0x6b, 0x3a,
- 0xb4, 0x85, 0x11, 0x0e, 0x8d, 0xd1, 0x11, 0x96, 0xf4, 0xaf, 0x1b, 0xa3,
- 0x05, 0x60, 0x0e, 0xa4, 0xa3, 0xb8, 0x28, 0xdf, 0xd0, 0x72, 0xd2, 0xda,
- 0xd8, 0xcb, 0xcb, 0x2c, 0x52, 0x5f, 0x96, 0xd9, 0xbe, 0x51, 0x9b, 0x03,
- 0x67, 0x24, 0x93, 0xdd, 0x19, 0x3d, 0x12, 0xb2, 0x3d, 0x1e, 0x27, 0xfa,
- 0x98, 0xd6, 0xa4, 0x28, 0xb0, 0x3a, 0x60, 0x3a, 0xef, 0x0d, 0xd6, 0x4c,
- 0x5a, 0xfa, 0x91, 0x54, 0x92, 0x8e, 0xe2, 0x83, 0xd7, 0xa6, 0xa5, 0xd9,
- 0x64, 0xa6, 0xb7, 0x46, 0x18, 0xd3, 0xc8, 0x48, 0xc4, 0x62, 0x56, 0xb0,
- 0xc9, 0x4d, 0x9b, 0xf4, 0xc3, 0xbc, 0xa1, 0x3b, 0x06, 0x3a, 0xac, 0xe9,
- 0xaf, 0x99, 0x14, 0x28, 0xa2, 0x46, 0x50, 0x7b, 0xe3, 0xc7, 0xf5, 0x68,
- 0x9e, 0x4d, 0x6e, 0x8d, 0x96, 0x62, 0x14, 0xd2, 0xcc, 0xbe, 0x85, 0xfb,
- 0x7c, 0x42, 0xba, 0xd1, 0xcc, 0x9c, 0x97, 0x49, 0x59, 0x55, 0xa4, 0xef,
- 0xd3, 0x0a, 0x8e, 0x59, 0x88, 0xce, 0x33, 0xa3, 0x46, 0xf8, 0xd3, 0x99,
- 0xd3, 0x85, 0x66, 0xe4, 0x8b, 0xd1, 0x4b, 0x20, 0x41, 0x8c, 0xfe, 0x00,
- 0x99, 0x8f, 0x81, 0xa3, 0x77, 0xd4, 0xf6, 0x64, 0x92, 0x2d, 0x9a, 0x3a,
- 0x36, 0x26, 0x5d, 0x70, 0xd3, 0x9d, 0x2a, 0xa3, 0x99, 0xf7, 0x95, 0x2e,
- 0xcc, 0xab, 0xbd, 0xf4, 0xa1, 0x77, 0xa9, 0x1e, 0x63, 0xf4, 0xb0, 0xda,
- 0xce, 0x5a, 0x83, 0xbd, 0x61, 0xc4, 0x18, 0xe6, 0x7c, 0x4e, 0x1d, 0xa5,
- 0x87, 0x6b, 0x3e, 0xa9, 0x10, 0xcd, 0xb4, 0x90, 0xac, 0x69, 0xf3, 0x77,
- 0xe9, 0xea, 0x32, 0xf3, 0x69, 0x1b, 0x37, 0x5f, 0xb5, 0x6b, 0x4a, 0x9f,
- 0x27, 0x15, 0xdf, 0xdc, 0xe4, 0xd3, 0xfa, 0xc6, 0x28, 0x5f, 0xb5, 0x9c,
- 0xec, 0x7c, 0x6e, 0xf6, 0xcc, 0x2d, 0xad, 0xef, 0x22, 0xcb, 0xa6, 0xc3,
- 0xe4, 0xec, 0x8a, 0xa4, 0x6a, 0x65, 0x3a, 0xdd, 0xe0, 0xd7, 0x74, 0xab,
- 0x98, 0x79, 0x9b, 0x42, 0x89, 0xb7, 0x47, 0x8b, 0xbb, 0xe2, 0xdd, 0x0e,
- 0x90, 0xe4, 0xa9, 0xf9, 0x89, 0xe9, 0xed, 0xac, 0x7d, 0x05, 0xe1, 0x1c,
- 0x1a, 0xe9, 0x4d, 0xdd, 0x1b, 0x67, 0x09, 0x76, 0xe2, 0x38, 0x6b, 0xee,
- 0xb2, 0xcc, 0x36, 0x57, 0x67, 0xe6, 0xda, 0xa3, 0x45, 0x63, 0xcd, 0x0f,
- 0xc2, 0x90, 0xa6, 0xf6, 0xfc, 0xe2, 0xec, 0x9b, 0x8b, 0xe3, 0xd1, 0x28,
- 0x79, 0x7b, 0x7c, 0x79, 0x7c, 0xd1, 0x9a, 0xe9, 0xa2, 0xac, 0xe6, 0x58,
- 0xd1, 0x69, 0x5e, 0x2f, 0x66, 0xe9, 0x3d, 0x2d, 0xb5, 0x19, 0xc9, 0x75,
- 0x45, 0x27, 0x6b, 0x9e, 0xd1, 0xad, 0x30, 0x5d, 0x42, 0x92, 0x99, 0xeb,
- 0xc8, 0x2c, 0x9f, 0x68, 0xbc, 0x24, 0x4c, 0xa0, 0x26, 0x17, 0xd7, 0x6e,
- 0xa6, 0x8d, 0xc4, 0x91, 0x9b, 0x94, 0xae, 0x52, 0xbb, 0x1e, 0xa4, 0x7a,
- 0xc2, 0xb8, 0xe9, 0xbb, 0x9f, 0xf1, 0x34, 0xf1, 0xd5, 0x66, 0xf6, 0x6c,
- 0x3e, 0x87, 0xb0, 0x33, 0x7f, 0x3a, 0x6d, 0x33, 0xbb, 0x32, 0xaa, 0xb6,
- 0xb9, 0x5d, 0xd9, 0x52, 0xe8, 0xf6, 0x49, 0x7b, 0x6b, 0xf5, 0x63, 0xb3,
- 0x0d, 0x49, 0x34, 0x53, 0x83, 0xdc, 0x15, 0xfe, 0x82, 0x15, 0x62, 0x46,
- 0x27, 0x21, 0xd9, 0x27, 0x8f, 0x2d, 0xa8, 0x0b, 0x99, 0x59, 0xd9, 0x29,
- 0x37, 0x5f, 0x2f, 0xaf, 0x70, 0x90, 0x93, 0x2d, 0xa3, 0x99, 0xbf, 0x35,
- 0xd6, 0x92, 0xb1, 0x58, 0xfa, 0xc9, 0xf9, 0x36, 0xde, 0xdb, 0xdb, 0xdd,
- 0x7f, 0xca, 0x82, 0x60, 0xa8, 0xcd, 0xbd, 0xf1, 0x04, 0xf1, 0xde, 0x47,
- 0x5a, 0x5e, 0x7e, 0x88, 0x1a, 0x1f, 0x26, 0x7b, 0x6f, 0xf9, 0x27, 0x4f,
- 0x3f, 0x7f, 0xf6, 0xd9, 0x73, 0xf9, 0x61, 0x7b, 0x83, 0xdb, 0xfe, 0x63,
- 0x77, 0xc0, 0xf2, 0x23, 0x53, 0xd0, 0xf4, 0xc4, 0x8c, 0x6e, 0x9e, 0x17,
- 0xe6, 0x98, 0x98, 0x63, 0x25, 0xb2, 0x8a, 0xf6, 0xb3, 0xe9, 0xfc, 0x15,
- 0x4b, 0x36, 0x59, 0xd7, 0xb6, 0x49, 0x69, 0x5e, 0x36, 0x5b, 0xd6, 0xc8,
- 0x72, 0xbb, 0x48, 0xac, 0x26, 0x34, 0xd4, 0x91, 0x74, 0x4c, 0x02, 0x96,
- 0xec, 0x2a, 0xa3, 0x00, 0x67, 0xd1, 0xaf, 0xd9, 0x5b, 0xd1, 0xbc, 0x61,
- 0xfa, 0x66, 0xee, 0x44, 0xba, 0xe6, 0xc2, 0x79, 0x37, 0xa2, 0x00, 0x12,
- 0xf2, 0x2e, 0xaf, 0x21, 0x1a, 0xee, 0xca, 0xe5, 0xcc, 0x58, 0x31, 0xf4,
- 0xc0, 0x72, 0x81, 0x17, 0xcc, 0xa7, 0x16, 0x4e, 0x06, 0x18, 0x8d, 0x85,
- 0xf6, 0x4e, 0xb7, 0x15, 0xd3, 0x35, 0xf3, 0xcf, 0x85, 0xd9, 0x4a, 0xdc,
- 0x9d, 0x61, 0xf7, 0x86, 0x80, 0xec, 0x0b, 0x76, 0x22, 0x9d, 0x79, 0x08,
- 0xed, 0xf3, 0xb3, 0xd1, 0x25, 0x69, 0x00, 0xe7, 0xef, 0x2f, 0x4d, 0x43,
- 0x46, 0x05, 0xa8, 0x1b, 0xb3, 0x29, 0xe9, 0xc5, 0x22, 0x83, 0x09, 0xa9,
- 0xcd, 0x99, 0xbd, 0x97, 0x43, 0x50, 0x41, 0xad, 0xd1, 0x4f, 0x72, 0x1f,
- 0xd9, 0xc6, 0xa6, 0x23, 0xa8, 0x16, 0x36, 0xdf, 0xe1, 0xf6, 0x9d, 0x64,
- 0xeb, 0xcb, 0x6d, 0xb3, 0x67, 0x07, 0xa5, 0x9d, 0x9d, 0xc1, 0x40, 0x5e,
- 0x35, 0xdf, 0xae, 0xf3, 0x79, 0x3e, 0x4b, 0x2b, 0xaf, 0xeb, 0x2c, 0x51,
- 0xe9, 0x7c, 0x5a, 0xb9, 0x32, 0x31, 0xbb, 0x06, 0xdd, 0x76, 0xa6, 0x24,
- 0xcd, 0x21, 0xa4, 0x92, 0x5b, 0xaa, 0x29, 0x29, 0x04, 0xd0, 0x98, 0x17,
- 0xb9, 0x9d, 0x3a, 0x5a, 0x33, 0x12, 0x57, 0xad, 0x89, 0xea, 0xae, 0x5b,
- 0x30, 0x71, 0x74, 0x23, 0xc1, 0x53, 0x61, 0xa7, 0x2e, 0xe9, 0x8d, 0xd3,
- 0xaa, 0x97, 0x58, 0x59, 0xcc, 0x67, 0x93, 0x4e, 0x48, 0x95, 0x5d, 0x2f,
- 0xcd, 0x08, 0x12, 0x9e, 0x5d, 0x1a, 0xe9, 0x9f, 0xbc, 0x91, 0x6a, 0x03,
- 0x83, 0x31, 0x3d, 0x92, 0xd7, 0x6c, 0x66, 0x5e, 0x19, 0xbb, 0x85, 0x0e,
- 0x8d, 0xea, 0xaf, 0xd0, 0x68, 0x64, 0xc7, 0x44, 0x36, 0x8c, 0xa7, 0xd7,
- 0x9a, 0xa3, 0xd2, 0x64, 0x46, 0xd0, 0x40, 0xfc, 0xd3, 0x93, 0x03, 0xb3,
- 0x64, 0x83, 0x41, 0x6d, 0xe6, 0x9f, 0x74, 0xef, 0x85, 0xd8, 0xf4, 0x67,
- 0x70, 0x98, 0x58, 0xdf, 0xca, 0x99, 0xe8, 0xc0, 0xb8, 0x36, 0xf9, 0x5d,
- 0x88, 0x50, 0xa3, 0xa8, 0xde, 0x99, 0x0f, 0xa7, 0x66, 0xc9, 0xcc, 0x81,
- 0x7b, 0x4b, 0x13, 0xc5, 0xbe, 0x91, 0xc4, 0xaa, 0xcd, 0xd8, 0x19, 0x39,
- 0x9d, 0xfb, 0xd4, 0xe9, 0x32, 0xd3, 0x69, 0x4e, 0xbf, 0x35, 0xe7, 0xcb,
- 0xdc, 0x70, 0xcb, 0x0c, 0xb6, 0x87, 0x4c, 0xea, 0xdc, 0x4d, 0x26, 0xcc,
- 0xd8, 0xfa, 0xa6, 0x24, 0x33, 0xb1, 0xc7, 0xb2, 0x78, 0x40, 0xdf, 0xea,
- 0xe1, 0x3e, 0x9f, 0x27, 0xfa, 0x2d, 0xf9, 0x94, 0x19, 0xc7, 0xd4, 0xd7,
- 0xcd, 0xfa, 0xe6, 0xa2, 0xb9, 0xf7, 0x8c, 0x04, 0xc8, 0x6a, 0xee, 0x7b,
- 0x65, 0x15, 0x1e, 0x73, 0xa5, 0x2e, 0x48, 0x99, 0x12, 0x19, 0x8e, 0xcb,
- 0x10, 0x47, 0xb6, 0xe6, 0xae, 0xf5, 0xcd, 0xdc, 0xd2, 0x93, 0xd7, 0x37,
- 0xfa, 0xa8, 0x77, 0xb1, 0xa6, 0x66, 0x70, 0x74, 0x39, 0x90, 0x3d, 0x3d,
- 0x55, 0xb9, 0x5f, 0x56, 0x2c, 0xcc, 0x66, 0xa5, 0xd9, 0xcb, 0x3d, 0x56,
- 0x59, 0xa5, 0xdb, 0xd4, 0x6b, 0xea, 0x25, 0xcd, 0x38, 0xfb, 0x99, 0x4a,
- 0xbb, 0x36, 0xb6, 0xd3, 0x32, 0x5f, 0xf5, 0x83, 0x5d, 0x73, 0x13, 0x35,
- 0xc2, 0x1c, 0x99, 0xab, 0xb3, 0xa6, 0x7d, 0xac, 0x33, 0x8f, 0xed, 0x6d,
- 0xae, 0xba, 0xcd, 0x86, 0xcf, 0x23, 0x6c, 0xac, 0xce, 0xcc, 0xd7, 0xd8,
- 0x3e, 0x72, 0x91, 0xd9, 0x91, 0x99, 0x11, 0x4d, 0xf3, 0x14, 0xfb, 0x84,
- 0x97, 0x06, 0xca, 0x88, 0xb3, 0x08, 0x23, 0x7a, 0xf0, 0x7d, 0xd7, 0xa0,
- 0x9b, 0xcd, 0xfc, 0x2b, 0x49, 0xfb, 0x34, 0x38, 0x33, 0x63, 0x3f, 0xc5,
- 0x38, 0x06, 0xb7, 0x09, 0x1d, 0x3f, 0x63, 0x36, 0xd0, 0x59, 0x1c, 0x9c,
- 0x9d, 0xde, 0x7a, 0xc7, 0x88, 0x2c, 0xf7, 0x82, 0xf4, 0x94, 0x3e, 0xbc,
- 0x23, 0xe3, 0xb2, 0x34, 0x66, 0xb2, 0x1b, 0x1a, 0xdd, 0x07, 0x59, 0x41,
- 0xbb, 0x5d, 0x56, 0xd4, 0x88, 0x84, 0x85, 0x95, 0xb7, 0xf7, 0xc6, 0x5c,
- 0x4a, 0xaf, 0xd3, 0xdc, 0xee, 0x37, 0x39, 0x19, 0xd3, 0x44, 0x1f, 0x2e,
- 0x4a, 0x79, 0x9e, 0x96, 0x8a, 0x54, 0x20, 0x91, 0x5b, 0xcb, 0x9a, 0x8f,
- 0x8f, 0x19, 0x95, 0x91, 0x3c, 0x90, 0x1d, 0xd2, 0x2e, 0xa9, 0x8d, 0xda,
- 0xdc, 0x18, 0x8a, 0x32, 0xe9, 0x9c, 0x10, 0xbe, 0xd0, 0x20, 0x4d, 0x8b,
- 0xbd, 0x61, 0xf2, 0x6d, 0x79, 0x97, 0xc1, 0x57, 0x08, 0xfd, 0x3e, 0x27,
- 0x6f, 0x97, 0x51, 0x05, 0xef, 0xb2, 0x64, 0x6e, 0x54, 0x4f, 0x33, 0x9b,
- 0xd0, 0x3e, 0xf0, 0x33, 0xcf, 0x3c, 0x34, 0x3b, 0xfc, 0x8e, 0x67, 0xc9,
- 0x8e, 0xc2, 0x2e, 0xe5, 0x15, 0x1f, 0x89, 0x64, 0x0b, 0xea, 0xcd, 0x84,
- 0x66, 0x6b, 0xd1, 0xb8, 0x51, 0xd8, 0x09, 0xb9, 0x4b, 0x6b, 0xef, 0x70,
- 0x65, 0x30, 0x4d, 0x93, 0xcf, 0x86, 0x7b, 0x2f, 0x86, 0xbb, 0x43, 0x32,
- 0x45, 0xb2, 0xdb, 0xbc, 0x5c, 0xd6, 0xb4, 0x9e, 0xd4, 0x13, 0xef, 0x74,
- 0x92, 0x4f, 0x8a, 0x96, 0xf7, 0xfa, 0x7a, 0xc6, 0x8a, 0xcf, 0x4e, 0x79,
- 0x75, 0x95, 0x78, 0xca, 0x51, 0x95, 0x2d, 0xd8, 0x06, 0xa2, 0xb9, 0x91,
- 0x03, 0xc7, 0x42, 0x35, 0x34, 0x92, 0x87, 0xce, 0x7d, 0x31, 0x18, 0xa4,
- 0xe3, 0xba, 0x21, 0x73, 0x6a, 0xb0, 0x2c, 0xf2, 0x4f, 0x83, 0xba, 0x9c,
- 0x7c, 0x34, 0xcb, 0xf2, 0x72, 0x91, 0x36, 0x37, 0x5f, 0x76, 0x9c, 0xc2,
- 0x5b, 0x74, 0x9b, 0x6c, 0x27, 0xc9, 0x11, 0x2b, 0x96, 0x34, 0x17, 0x15,
- 0x9f, 0x38, 0xb3, 0x9e, 0xd2, 0x4a, 0xf2, 0xde, 0xb4, 0x62, 0x76, 0xf3,
- 0xdc, 0x2c, 0x6b, 0xc2, 0x8d, 0xf5, 0x55, 0x98, 0x76, 0x9a, 0x83, 0xcb,
- 0x91, 0x2e, 0x12, 0x78, 0xee, 0xcc, 0xe1, 0x29, 0xab, 0x8f, 0x43, 0xf2,
- 0x91, 0x18, 0xab, 0xf1, 0x80, 0x36, 0x74, 0x63, 0xc4, 0x58, 0xc3, 0xf3,
- 0x5e, 0x8b, 0x10, 0xa6, 0x6e, 0xb1, 0x4c, 0x76, 0x52, 0x4a, 0xe7, 0x53,
- 0x7b, 0x20, 0x9f, 0x4d, 0xd4, 0xde, 0x90, 0xad, 0xb7, 0xf9, 0x95, 0xb1,
- 0x00, 0x6f, 0x78, 0xe1, 0xd1, 0x18, 0x8f, 0xd1, 0xec, 0xd1, 0x6b, 0x63,
- 0x43, 0x14, 0x4d, 0xa7, 0x39, 0xf3, 0x55, 0xba, 0xac, 0xe9, 0x9e, 0x61,
- 0x73, 0x17, 0xdb, 0x44, 0x7c, 0x40, 0xd6, 0x02, 0x1d, 0x6e, 0x74, 0x5e,
- 0x3b, 0xd4, 0x55, 0xfd, 0x6c, 0xf8, 0xec, 0x89, 0x59, 0x54, 0x7f, 0xa2,
- 0x8b, 0x7b, 0xf2, 0x9d, 0xc6, 0x27, 0xf5, 0xd2, 0xdc, 0xa5, 0x35, 0xab,
- 0x27, 0xe6, 0x0c, 0x5f, 0xe5, 0xd7, 0xcb, 0x2a, 0xe3, 0x4b, 0x0d, 0xee,
- 0x56, 0xf5, 0xb2, 0xd2, 0x3d, 0x71, 0x53, 0xc2, 0x39, 0x69, 0xe4, 0x4b,
- 0x36, 0xbb, 0xea, 0x77, 0x67, 0x81, 0x34, 0x3a, 0xda, 0x02, 0x18, 0x22,
- 0x36, 0x91, 0xd1, 0xdc, 0xd0, 0x58, 0x91, 0xc9, 0xbd, 0x3e, 0x37, 0x13,
- 0x9c, 0x90, 0x77, 0x2e, 0x99, 0xcc, 0xd2, 0x7c, 0x0e, 0x73, 0x47, 0xbc,
- 0x4f, 0xc3, 0x4e, 0x73, 0x97, 0xa2, 0x8e, 0x43, 0x13, 0x1f, 0x93, 0x35,
- 0x50, 0xd5, 0x24, 0xac, 0x68, 0x12, 0x52, 0x55, 0x26, 0x58, 0xd7, 0xbe,
- 0xc9, 0x26, 0x1f, 0x75, 0x35, 0xf5, 0x16, 0x1e, 0x74, 0x9a, 0x23, 0xb7,
- 0x2b, 0x4c, 0x0e, 0xf3, 0xd4, 0xd2, 0xac, 0xe9, 0xa2, 0xac, 0xeb, 0x9c,
- 0x3c, 0x0a, 0xa4, 0x21, 0x2f, 0x27, 0x50, 0x9c, 0xc9, 0xc4, 0xfe, 0x64,
- 0x56, 0x52, 0xb7, 0x44, 0x62, 0xf6, 0x58, 0x31, 0x1d, 0x34, 0x55, 0xbe,
- 0x58, 0xd5, 0x3b, 0xbe, 0x32, 0xda, 0x77, 0x76, 0x2d, 0x46, 0x0c, 0xec,
- 0x03, 0xb6, 0x18, 0x26, 0x49, 0x67, 0x36, 0x3b, 0xcd, 0xf1, 0xdc, 0xf6,
- 0xc9, 0x44, 0xce, 0x8d, 0x08, 0x65, 0xfd, 0x11, 0x1e, 0x20, 0xa3, 0x2d,
- 0xca, 0x59, 0x36, 0x8a, 0x6d, 0x3e, 0xc1, 0xbd, 0x90, 0x5f, 0x67, 0xe4,
- 0xde, 0x36, 0xc7, 0xbb, 0x99, 0x99, 0xdb, 0xc2, 0x13, 0x14, 0x76, 0xc5,
- 0x8b, 0xec, 0xba, 0x6c, 0x48, 0x40, 0x07, 0xdb, 0xe4, 0x3d, 0x36, 0xbe,
- 0xdd, 0x13, 0xaa, 0x09, 0xf9, 0xd7, 0x54, 0xce, 0x2a, 0x8a, 0xf9, 0x34,
- 0x6b, 0x42, 0x62, 0x84, 0xd5, 0x8d, 0xd9, 0x81, 0xdd, 0x55, 0x37, 0xad,
- 0x4d, 0x32, 0xa8, 0xa3, 0xb8, 0x4b, 0xf5, 0x2a, 0x57, 0x1d, 0x68, 0x4c,
- 0x26, 0x1b, 0x99, 0xc7, 0x77, 0xf9, 0x24, 0x53, 0x0f, 0x85, 0xb8, 0xed,
- 0x66, 0x79, 0xb8, 0xf7, 0xe7, 0xcb, 0x1a, 0x56, 0x13, 0xab, 0x29, 0x64,
- 0x50, 0xde, 0xe5, 0xa4, 0xc6, 0x9c, 0x5c, 0xc9, 0x59, 0xa5, 0x5b, 0x94,
- 0xcf, 0x47, 0x5a, 0xe5, 0xb0, 0x9e, 0x4d, 0x73, 0xd2, 0x4f, 0xcf, 0xc8,
- 0x51, 0xbb, 0xcd, 0xf5, 0x1b, 0xef, 0x8b, 0x66, 0xe7, 0x34, 0x3a, 0x18,
- 0x92, 0x57, 0x69, 0x3e, 0x8b, 0xcc, 0x13, 0x14, 0x54, 0x63, 0x91, 0xde,
- 0x64, 0x95, 0xac, 0xc1, 0x92, 0x26, 0x9d, 0x42, 0x11, 0xc1, 0xd3, 0xa3,
- 0x2c, 0x63, 0x15, 0x0b, 0xfa, 0xd8, 0xa7, 0x7b, 0x3b, 0xbd, 0xb8, 0xc7,
- 0x78, 0xed, 0xe4, 0xef, 0xbc, 0x7c, 0xde, 0xf1, 0x4c, 0xa9, 0xd5, 0x74,
- 0x41, 0x3e, 0xf7, 0xee, 0x09, 0x25, 0x6d, 0x94, 0xc2, 0x36, 0xdb, 0xea,
- 0x54, 0xcb, 0xc4, 0xa5, 0x68, 0xc3, 0x1d, 0x10, 0x0e, 0x14, 0x5d, 0x90,
- 0x23, 0xcc, 0xed, 0x88, 0xa6, 0xd4, 0x69, 0xce, 0xa8, 0x66, 0xe4, 0x27,
- 0x84, 0x11, 0xde, 0xda, 0xb1, 0xc6, 0x20, 0xae, 0xac, 0xd3, 0x9d, 0x9c,
- 0x60, 0x34, 0xdf, 0xaa, 0x7b, 0xe2, 0xcc, 0xe2, 0xa5, 0x4e, 0x73, 0xa4,
- 0x0d, 0x93, 0xea, 0x60, 0x0e, 0x4d, 0x4e, 0xfb, 0x11, 0x9b, 0x40, 0xfd,
- 0xae, 0x66, 0xfb, 0xb2, 0x67, 0x4c, 0xe5, 0x2a, 0x2b, 0x1b, 0xe8, 0xee,
- 0xd5, 0x2c, 0xbd, 0x36, 0xfb, 0xae, 0xd3, 0x5c, 0x7e, 0x6d, 0x6c, 0x5c,
- 0x8e, 0x7e, 0xd4, 0xa5, 0xb9, 0x3d, 0x68, 0xdc, 0x62, 0xef, 0x1b, 0x73,
- 0xcf, 0x6c, 0xb3, 0xd9, 0x12, 0x12, 0xf0, 0xcc, 0x0c, 0x70, 0x34, 0xfa,
- 0x76, 0xdb, 0x17, 0x70, 0x98, 0xdf, 0xc7, 0x88, 0x37, 0xc8, 0x27, 0x98,
- 0x26, 0xc9, 0xd7, 0x58, 0x93, 0xae, 0x94, 0xe3, 0x95, 0x8e, 0x4c, 0x9e,
- 0x4e, 0x04, 0xb9, 0x88, 0x86, 0x22, 0x00, 0x20, 0x01, 0x30, 0x4d, 0xea,
- 0xad, 0xe2, 0x1d, 0x4e, 0x5e, 0x04, 0xbe, 0xa6, 0xcd, 0xdf, 0x96, 0xf5,
- 0x92, 0x0c, 0xf7, 0x4e, 0x73, 0x0b, 0x23, 0xc8, 0x1a, 0x63, 0xbc, 0x19,
- 0x89, 0xb4, 0x2c, 0xe8, 0x4f, 0xab, 0x5d, 0xe4, 0xd0, 0x73, 0x69, 0x49,
- 0x2a, 0x72, 0x0e, 0x92, 0x85, 0x60, 0xef, 0x66, 0x23, 0x5a, 0xa4, 0xe5,
- 0xee, 0xd2, 0xc2, 0x7d, 0x42, 0x91, 0x12, 0x88, 0x9d, 0x69, 0x4e, 0x51,
- 0x36, 0x3a, 0x78, 0x2b, 0xa4, 0xf8, 0x56, 0xbd, 0x34, 0x72, 0x86, 0xb4,
- 0x2a, 0x16, 0x22, 0x81, 0x00, 0x51, 0x21, 0x63, 0x14, 0x38, 0x4f, 0x9a,
- 0x6c, 0xff, 0xde, 0xc7, 0x04, 0x0b, 0xe7, 0xaf, 0xe4, 0xc4, 0xe8, 0xb3,
- 0x46, 0x53, 0x7d, 0x49, 0xfb, 0x2d, 0xd0, 0x02, 0x2e, 0x4f, 0x47, 0xb1,
- 0x05, 0x6d, 0x3b, 0xee, 0xe9, 0x7d, 0x12, 0xb9, 0xe4, 0x5f, 0x61, 0x7f,
- 0x53, 0x49, 0xda, 0x92, 0xe7, 0xbc, 0xf7, 0x1d, 0x21, 0x8b, 0x8c, 0xbc,
- 0xfc, 0x6c, 0x48, 0x70, 0x54, 0x90, 0xc4, 0x98, 0x51, 0xa3, 0x1a, 0x52,
- 0x23, 0xac, 0x6f, 0xe9, 0xe8, 0xd0, 0x6f, 0x17, 0xce, 0xa4, 0xee, 0x06,
- 0xf1, 0x7e, 0xbf, 0x55, 0x6f, 0x5b, 0x49, 0x66, 0x5a, 0x39, 0x3f, 0x7e,
- 0x0b, 0xc5, 0x3e, 0x35, 0x1b, 0xe7, 0x9d, 0xfa, 0x71, 0x34, 0xe8, 0x37,
- 0x5e, 0xe6, 0xb3, 0x96, 0xb3, 0xd4, 0xd9, 0x22, 0x88, 0xb8, 0xf1, 0xbe,
- 0x42, 0xd7, 0xd8, 0xed, 0x9f, 0xc3, 0x6f, 0xd6, 0xdd, 0x65, 0xcd, 0xfd,
- 0x42, 0x5c, 0x7e, 0xcb, 0xba, 0x65, 0x59, 0xeb, 0xed, 0x3c, 0x6b, 0xa0,
- 0x7c, 0x90, 0xc2, 0xef, 0xb5, 0x19, 0xac, 0x10, 0xba, 0x45, 0x97, 0xc1,
- 0x75, 0x91, 0xff, 0x5d, 0x7c, 0x0b, 0x59, 0x71, 0x9b, 0x57, 0x65, 0x41,
- 0xaa, 0x8a, 0xb1, 0x09, 0xaa, 0x1c, 0xc2, 0x99, 0xd4, 0x5d, 0x23, 0x3e,
- 0x36, 0x8f, 0xde, 0x5f, 0x9c, 0x7e, 0x38, 0x3a, 0xfc, 0xf0, 0xf5, 0xfb,
- 0x77, 0xaf, 0x4f, 0x8f, 0x37, 0xbb, 0x87, 0xfa, 0x8a, 0xc5, 0x02, 0x1d,
- 0x94, 0x9a, 0x14, 0x32, 0x9c, 0x10, 0xd3, 0x45, 0x6e, 0xf9, 0x3a, 0xbf,
- 0x35, 0x62, 0x0d, 0xaa, 0x15, 0x9c, 0x97, 0xf8, 0x1b, 0xcc, 0x7d, 0x99,
- 0xf0, 0x4e, 0x73, 0x63, 0x73, 0x1f, 0x9b, 0x4e, 0xf3, 0xe9, 0x93, 0xc1,
- 0xeb, 0x49, 0x11, 0x73, 0x46, 0x3b, 0x18, 0x8c, 0x8c, 0x96, 0x98, 0x2e,
- 0x13, 0x52, 0xe9, 0x3c, 0xed, 0xd9, 0xf3, 0x63, 0x2e, 0x1b, 0xa3, 0x3c,
- 0xaa, 0xe7, 0xd4, 0x58, 0x67, 0xe5, 0x47, 0x0d, 0xbf, 0x1a, 0xcd, 0xf3,
- 0x30, 0xb2, 0xdc, 0x35, 0xaf, 0x0b, 0x4f, 0xc5, 0x26, 0xb5, 0x64, 0xf6,
- 0xef, 0x40, 0x3a, 0x39, 0xa9, 0x1a, 0xa3, 0xf6, 0x65, 0x39, 0x0e, 0x86,
- 0x86, 0x97, 0x48, 0x2d, 0x86, 0xd7, 0xa2, 0xab, 0x9f, 0x18, 0xa3, 0xf0,
- 0x9e, 0xe6, 0x80, 0x1a, 0x19, 0x66, 0x9f, 0x32, 0x9c, 0x3c, 0x79, 0xeb,
- 0x68, 0x59, 0xe1, 0x2c, 0xff, 0x60, 0x74, 0x12, 0x92, 0x80, 0xaf, 0xe1,
- 0xf6, 0x30, 0x2f, 0xe8, 0x43, 0xe6, 0xb2, 0xe9, 0x5e, 0x7c, 0xe5, 0x8c,
- 0x02, 0x4e, 0x29, 0x4c, 0x4c, 0x38, 0x04, 0xce, 0x0f, 0x2f, 0xbf, 0x0d,
- 0xe6, 0x84, 0xc4, 0xbc, 0xc3, 0x3a, 0xc8, 0x56, 0x84, 0x61, 0x54, 0x37,
- 0x72, 0x40, 0xde, 0x8d, 0x46, 0x09, 0x22, 0xe9, 0xb3, 0x7c, 0x5c, 0xa5,
- 0xf4, 0x4d, 0xfa, 0x31, 0xfd, 0xd4, 0x6c, 0xeb, 0x4e, 0x73, 0xe7, 0xdf,
- 0x1d, 0x8d, 0xfe, 0xb4, 0xb7, 0x67, 0x94, 0xbf, 0xe9, 0xd2, 0xcc, 0xcb,
- 0x96, 0x79, 0xa5, 0xa8, 0xcd, 0xc9, 0x9c, 0x0f, 0xeb, 0x72, 0x1b, 0x97,
- 0x37, 0x34, 0x3e, 0x5c, 0x0f, 0xe9, 0xad, 0xb9, 0x75, 0xb1, 0x93, 0x78,
- 0x8e, 0x69, 0x3f, 0x77, 0xd5, 0x74, 0x5e, 0x60, 0x05, 0x1a, 0x18, 0x89,
- 0x61, 0xee, 0xed, 0xd9, 0x7d, 0x30, 0x8a, 0xad, 0xfc, 0x6c, 0x24, 0x61,
- 0xfa, 0x74, 0x62, 0xfe, 0x4a, 0x36, 0xd4, 0x36, 0x8d, 0xad, 0x7d, 0xc6,
- 0x74, 0x5c, 0x23, 0xd6, 0x4a, 0x2f, 0xc9, 0xc5, 0x09, 0x74, 0x41, 0x28,
- 0x17, 0x8a, 0xee, 0xf1, 0x72, 0x08, 0x0e, 0x74, 0x76, 0x9c, 0x4e, 0x3e,
- 0xde, 0xa5, 0xd5, 0x94, 0x1d, 0x26, 0x66, 0xcf, 0x8c, 0xf3, 0x59, 0xde,
- 0xdc, 0xf3, 0xed, 0xd1, 0x1d, 0x05, 0x87, 0x8e, 0x68, 0x0a, 0xcd, 0x49,
- 0xba, 0x36, 0xb6, 0x10, 0x69, 0xa1, 0x64, 0x21, 0x9a, 0x83, 0xe1, 0xe9,
- 0xfa, 0x50, 0x95, 0x1a, 0xab, 0xea, 0xd8, 0x6f, 0x77, 0x9a, 0x83, 0xfb,
- 0x89, 0x4e, 0x12, 0xba, 0xe9, 0x76, 0xaf, 0x0a, 0x42, 0x5f, 0x4c, 0xe9,
- 0x06, 0x4a, 0xea, 0x7b, 0x73, 0xdb, 0xcf, 0x93, 0x88, 0xaa, 0x08, 0x60,
- 0x45, 0xf2, 0x5d, 0x76, 0x6f, 0x0c, 0x8b, 0xbc, 0x70, 0xb2, 0x92, 0x7d,
- 0x44, 0x19, 0x59, 0xaa, 0xac, 0x93, 0xe6, 0xea, 0x67, 0xcc, 0xc4, 0x55,
- 0xcc, 0x37, 0x49, 0x68, 0x59, 0xf1, 0xfb, 0xaa, 0x8f, 0x53, 0x13, 0x9b,
- 0x75, 0x4b, 0x28, 0xe3, 0x4b, 0xe1, 0x22, 0x8e, 0xcc, 0xcf, 0x8d, 0x75,
- 0x37, 0xdb, 0xf9, 0x21, 0x2f, 0x68, 0xb2, 0x78, 0x15, 0x2f, 0x57, 0xad,
- 0x03, 0x2f, 0x84, 0x3c, 0x9b, 0xe4, 0xdd, 0x0b, 0xf1, 0x07, 0x39, 0xe9,
- 0xc9, 0x67, 0x08, 0x80, 0x26, 0x84, 0x98, 0x90, 0xfb, 0x49, 0xa1, 0x15,
- 0x9f, 0x0d, 0x9f, 0xef, 0x22, 0x38, 0x4a, 0xbf, 0x1a, 0x76, 0xbe, 0xd4,
- 0x55, 0x73, 0x5b, 0xeb, 0x6f, 0x97, 0x3f, 0xb2, 0xfa, 0xd1, 0x05, 0xff,
- 0xa2, 0x2b, 0x16, 0x45, 0xfb, 0x62, 0xbf, 0xaf, 0xaf, 0x7b, 0xcb, 0x95,
- 0x26, 0xdd, 0xdf, 0x34, 0xca, 0x6b, 0x59, 0xc1, 0xaa, 0xae, 0x4a, 0xb3,
- 0xf0, 0x32, 0x8d, 0x5d, 0xe1, 0xc1, 0x8b, 0xbd, 0x45, 0xf3, 0x6d, 0x85,
- 0xbb, 0xe9, 0x26, 0x4f, 0xce, 0x76, 0xec, 0xd4, 0x07, 0x3a, 0x0a, 0xbc,
- 0x53, 0x1c, 0xeb, 0x27, 0xef, 0x7e, 0xcd, 0xc7, 0x7c, 0x96, 0xd6, 0x0d,
- 0xcc, 0x37, 0x6c, 0x31, 0x71, 0x02, 0xb5, 0xaf, 0x6b, 0x88, 0xec, 0x97,
- 0x46, 0xa6, 0xfd, 0xe3, 0xb7, 0x35, 0x4b, 0x46, 0x48, 0xc2, 0xf0, 0x02,
- 0x93, 0x6d, 0xd9, 0xba, 0xb5, 0xdf, 0xea, 0xf5, 0x4c, 0x9d, 0xb0, 0x8e,
- 0xaa, 0x05, 0x87, 0x55, 0x59, 0x93, 0x64, 0x8f, 0x5b, 0x68, 0x19, 0x90,
- 0xd3, 0x44, 0x1c, 0x33, 0x07, 0xbd, 0x64, 0x2b, 0x1b, 0x5e, 0x9b, 0xf6,
- 0x7a, 0xd4, 0xce, 0xde, 0x01, 0xfd, 0x77, 0x1f, 0xff, 0x7d, 0xd2, 0x53,
- 0x00, 0x94, 0x7f, 0xaa, 0xe8, 0x6a, 0xef, 0x5e, 0x4c, 0x12, 0xb5, 0xa0,
- 0xab, 0x5e, 0xee, 0x7a, 0xb9, 0xeb, 0xe8, 0x0a, 0x8c, 0xcb, 0x21, 0x56,
- 0x64, 0x4f, 0xfb, 0x11, 0x65, 0xd3, 0x4d, 0x04, 0xd4, 0x08, 0xb8, 0x01,
- 0xc6, 0xe4, 0xe1, 0x33, 0x63, 0x9b, 0x18, 0x65, 0x11, 0xce, 0x16, 0x8e,
- 0x01, 0x02, 0x4d, 0xf0, 0xa1, 0xca, 0x6e, 0xd2, 0xda, 0xec, 0xbd, 0x65,
- 0x83, 0xad, 0x18, 0xd9, 0xbd, 0xb3, 0xdc, 0x7a, 0xb7, 0xe4, 0xc3, 0x43,
- 0x6b, 0x0b, 0xca, 0x2a, 0xb2, 0x9f, 0x78, 0x56, 0xde, 0xe9, 0x13, 0x03,
- 0x41, 0x24, 0xc5, 0x74, 0x04, 0xb3, 0x9a, 0x00, 0x35, 0xd1, 0x63, 0x7e,
- 0xbc, 0x6f, 0x4e, 0x8a, 0x25, 0xc1, 0xa5, 0xcc, 0xe6, 0xbf, 0x32, 0x33,
- 0x46, 0x46, 0xde, 0x0c, 0xeb, 0x46, 0xe6, 0x2c, 0x7a, 0x1d, 0x28, 0x9b,
- 0xa2, 0xf4, 0xe5, 0x57, 0xe2, 0xe3, 0x92, 0x7f, 0xe3, 0x72, 0x15, 0x55,
- 0xac, 0xe6, 0x98, 0x60, 0x57, 0x0f, 0x7b, 0x78, 0x6b, 0xab, 0xac, 0xb4,
- 0x27, 0x43, 0x06, 0xcb, 0x6e, 0x65, 0xdd, 0xd7, 0x62, 0x7c, 0xc4, 0x7c,
- 0x1a, 0xa6, 0x57, 0x7c, 0x4c, 0x7f, 0xfb, 0x21, 0x31, 0x3d, 0x1e, 0x90,
- 0x47, 0x69, 0x59, 0x3f, 0xe2, 0x8c, 0x78, 0xf2, 0x97, 0xdf, 0xb1, 0x3e,
- 0x35, 0x8e, 0x7d, 0xfa, 0x13, 0xd0, 0xdd, 0x85, 0xf7, 0x9e, 0x5f, 0xeb,
- 0xc8, 0x3b, 0x59, 0x23, 0x6e, 0xe8, 0x42, 0xbc, 0x26, 0x5b, 0xe9, 0xc7,
- 0x74, 0x98, 0x9c, 0x1d, 0x8d, 0xce, 0xe9, 0x13, 0x66, 0x6b, 0x14, 0xd7,
- 0xa6, 0x17, 0xa7, 0xa3, 0x4e, 0x73, 0xd9, 0xa7, 0x26, 0x2b, 0xea, 0x16,
- 0x84, 0x6f, 0xe5, 0x34, 0xab, 0xaf, 0x55, 0x41, 0x08, 0xd2, 0x59, 0x63,
- 0xfc, 0x23, 0x7a, 0x48, 0xc1, 0x30, 0x8a, 0x54, 0x27, 0x7c, 0xd4, 0x82,
- 0x0f, 0x2d, 0xcc, 0x86, 0x9f, 0x6e, 0x5b, 0xef, 0x4d, 0x5f, 0xf7, 0x82,
- 0x0d, 0xaa, 0xd4, 0xcb, 0x6b, 0x32, 0x48, 0x6a, 0x35, 0x23, 0xed, 0x17,
- 0xcc, 0x6c, 0x04, 0xba, 0x94, 0x0e, 0xdb, 0x9c, 0x09, 0x3e, 0x36, 0xc6,
- 0x82, 0x22, 0xbc, 0x09, 0xf4, 0xa5, 0xa2, 0x74, 0xad, 0x92, 0xd1, 0x04,
- 0x6c, 0x5d, 0x8e, 0x30, 0xc4, 0x24, 0x33, 0xfa, 0xe8, 0x34, 0xa2, 0x0f,
- 0xf0, 0xa2, 0xa8, 0x0d, 0x75, 0x25, 0x78, 0xba, 0x88, 0x4b, 0x08, 0x0d,
- 0x4d, 0x58, 0x5f, 0xa3, 0x5d, 0x0f, 0x77, 0x6e, 0x4e, 0xfe, 0x6f, 0xd2,
- 0x9e, 0xd9, 0x7a, 0xa7, 0xf6, 0xec, 0xd9, 0xff, 0xa6, 0x58, 0x9a, 0x89,
- 0x8f, 0x5c, 0xcc, 0xa4, 0x61, 0xd1, 0x3d, 0x43, 0x13, 0xb8, 0xce, 0xd7,
- 0xf7, 0x74, 0xaf, 0xed, 0xeb, 0xc3, 0x66, 0x33, 0xd6, 0x40, 0x96, 0xbc,
- 0xa4, 0xff, 0x3e, 0x28, 0x95, 0x11, 0xe0, 0xc7, 0xf3, 0x12, 0x15, 0x62,
- 0xd9, 0x29, 0xee, 0x99, 0xa4, 0x2d, 0xa0, 0x83, 0x7b, 0x11, 0xdb, 0x6d,
- 0x48, 0x62, 0xaf, 0x9f, 0xbc, 0x26, 0xd8, 0xea, 0xf1, 0xbb, 0x6f, 0xb0,
- 0x07, 0xce, 0xf7, 0xf6, 0xe1, 0x83, 0xb7, 0xa6, 0xc4, 0x14, 0x1f, 0xa9,
- 0xd9, 0xb7, 0xc0, 0x31, 0xb4, 0x50, 0x0b, 0xc6, 0x9d, 0xd0, 0x87, 0x14,
- 0xa5, 0xe0, 0x09, 0x30, 0x16, 0xd3, 0x3f, 0xee, 0xfe, 0x0a, 0xac, 0xd2,
- 0xe3, 0xbe, 0xcc, 0xa0, 0xf8, 0x6a, 0x3e, 0x66, 0xf7, 0xee, 0x6f, 0x98,
- 0x55, 0x6f, 0xaa, 0xdd, 0xc3, 0x2f, 0xbd, 0x49, 0xfa, 0xe9, 0x80, 0x70,
- 0x1c, 0x46, 0x61, 0x9d, 0xfe, 0xf2, 0xdb, 0x6e, 0xc4, 0xf8, 0xcc, 0x47,
- 0xfc, 0x2f, 0x70, 0x7d, 0x29, 0x62, 0x82, 0x03, 0xa4, 0x2c, 0xdf, 0x05,
- 0x34, 0x4c, 0x78, 0x62, 0xda, 0xf0, 0x69, 0xc1, 0x1a, 0x09, 0x49, 0x6a,
- 0x86, 0xc9, 0x00, 0x36, 0x13, 0x28, 0x11, 0xe5, 0x2c, 0xb8, 0xeb, 0x5a,
- 0x56, 0x2c, 0x94, 0xfb, 0x7d, 0xb9, 0xdd, 0x60, 0xd9, 0xc9, 0x1d, 0xc4,
- 0x0a, 0x75, 0xf7, 0x38, 0x58, 0xf5, 0x9a, 0x15, 0x30, 0xef, 0x66, 0x4c,
- 0xbc, 0x97, 0x11, 0x10, 0x44, 0xf7, 0x58, 0x55, 0x1a, 0xca, 0xf2, 0x66,
- 0x51, 0x5b, 0xc0, 0xac, 0xae, 0xce, 0xae, 0x59, 0x76, 0x72, 0x3e, 0xd9,
- 0x79, 0xeb, 0x73, 0xa4, 0x85, 0x97, 0xd9, 0x88, 0xb9, 0x2a, 0x17, 0x65,
- 0x8d, 0x51, 0x82, 0xdd, 0x33, 0xad, 0x71, 0x59, 0x71, 0x4e, 0x89, 0x03,
- 0x05, 0xdb, 0x4a, 0xf7, 0x15, 0x6f, 0x3f, 0x32, 0x4b, 0x7b, 0xde, 0x94,
- 0xf4, 0x62, 0x4b, 0xd1, 0x70, 0x88, 0x48, 0x8e, 0x50, 0x7e, 0x4b, 0x53,
- 0xa7, 0x7b, 0xc7, 0xf9, 0x3a, 0xdb, 0x5a, 0x70, 0x59, 0xd0, 0x9f, 0x05,
- 0xf9, 0xc8, 0xfe, 0x25, 0xb2, 0x21, 0xa3, 0x7b, 0x91, 0xdc, 0xe5, 0x12,
- 0x3e, 0x83, 0x02, 0x43, 0x50, 0x31, 0xc1, 0xea, 0x46, 0xec, 0xa2, 0x98,
- 0x75, 0xa7, 0xca, 0x87, 0x1a, 0x71, 0x9e, 0x65, 0x17, 0x18, 0x3e, 0x81,
- 0x96, 0x69, 0x7e, 0x4b, 0x81, 0x77, 0xde, 0xbb, 0xe4, 0x8e, 0xcd, 0x27,
- 0x1f, 0x81, 0xaf, 0x92, 0x1b, 0xca, 0x1f, 0x9f, 0xa2, 0x9b, 0x18, 0x97,
- 0x17, 0x59, 0x02, 0x18, 0x96, 0xe4, 0x27, 0xa6, 0x3d, 0x49, 0xb7, 0x73,
- 0x5e, 0xb0, 0xce, 0xb6, 0xd2, 0xe5, 0x60, 0xfa, 0xfa, 0xe1, 0xf5, 0xc9,
- 0x45, 0xb2, 0x45, 0x2a, 0x78, 0x57, 0xc7, 0xd1, 0xeb, 0x7d, 0x27, 0x6b,
- 0x26, 0x3b, 0x8b, 0x8f, 0xf9, 0x8e, 0xb1, 0x3c, 0xa7, 0xe3, 0x6d, 0x6b,
- 0x4f, 0xe1, 0x73, 0xd8, 0x84, 0x6a, 0xa5, 0xaa, 0x99, 0x0a, 0x3b, 0xb5,
- 0x7b, 0x1a, 0x3c, 0xbb, 0x95, 0xf3, 0x00, 0x9c, 0xb9, 0x8a, 0x69, 0x62,
- 0xa7, 0x0e, 0x60, 0x41, 0x1c, 0x43, 0x4e, 0xc8, 0x1f, 0x9b, 0xb1, 0xab,
- 0xda, 0x18, 0xdc, 0xdd, 0xb3, 0xca, 0x18, 0x31, 0xf1, 0xea, 0xb0, 0x37,
- 0x47, 0x81, 0x4d, 0x72, 0x5d, 0x38, 0xa5, 0xaf, 0x4f, 0x90, 0x34, 0x9a,
- 0x94, 0x05, 0x5d, 0x49, 0x53, 0x72, 0x09, 0x76, 0x9b, 0x83, 0xa1, 0xd1,
- 0x1b, 0xee, 0xf4, 0x12, 0x0b, 0xc2, 0x33, 0xb3, 0xcc, 0x28, 0x53, 0x8b,
- 0x7a, 0x34, 0x5b, 0xec, 0x6a, 0x59, 0xb3, 0x9b, 0x9b, 0x3c, 0x2c, 0x76,
- 0xbd, 0x86, 0x31, 0x81, 0xea, 0x2d, 0xa7, 0xd5, 0xb9, 0x8c, 0x6e, 0x8c,
- 0x73, 0x65, 0x4d, 0xf7, 0xb1, 0xed, 0x14, 0x96, 0xaa, 0xf7, 0x73, 0x2f,
- 0xf1, 0x40, 0x5c, 0x2d, 0x67, 0x64, 0xee, 0x60, 0x16, 0xde, 0x25, 0x60,
- 0x6e, 0x64, 0x7b, 0x82, 0xa7, 0xd9, 0x2c, 0x9f, 0xe7, 0x30, 0xbe, 0xfc,
- 0x2e, 0x04, 0x4b, 0xd1, 0xee, 0xd2, 0xcf, 0x61, 0x97, 0x14, 0x18, 0x99,
- 0xd2, 0xaf, 0x4d, 0x97, 0xe0, 0x1e, 0x63, 0xdc, 0x5a, 0xdc, 0x80, 0x6e,
- 0x77, 0xc8, 0x42, 0x2b, 0xd7, 0x44, 0xd7, 0xec, 0x59, 0x5a, 0xa5, 0xc6,
- 0x3b, 0xff, 0x88, 0x1e, 0x7a, 0x16, 0x68, 0xc9, 0xe2, 0xe3, 0xa4, 0xde,
- 0xdb, 0xeb, 0x5e, 0x74, 0xb5, 0xdb, 0x51, 0x62, 0xca, 0xa7, 0x76, 0x63,
- 0xbe, 0xbf, 0x38, 0x49, 0xb6, 0x08, 0x4a, 0xff, 0xd9, 0xb3, 0xbd, 0xfd,
- 0x6d, 0x3f, 0xfe, 0xae, 0x02, 0x20, 0xbc, 0x37, 0xef, 0xe1, 0xa5, 0xf2,
- 0x0f, 0xe0, 0xac, 0x9c, 0xa4, 0xa2, 0x71, 0xb8, 0xa6, 0xa7, 0xd9, 0x6d,
- 0x3e, 0xa1, 0x4c, 0x06, 0xa3, 0xf8, 0x01, 0x2d, 0x36, 0xce, 0x4c, 0x27,
- 0x83, 0x19, 0x77, 0xb8, 0x47, 0xee, 0xbd, 0x31, 0x91, 0xac, 0xa6, 0x4c,
- 0xe8, 0x52, 0xb3, 0x07, 0x1a, 0x99, 0x3b, 0xbf, 0xd7, 0x12, 0x38, 0x48,
- 0x57, 0xb8, 0x85, 0x68, 0x5c, 0x9c, 0x67, 0x00, 0x1d, 0xa3, 0xef, 0x62,
- 0x41, 0x83, 0x81, 0x4c, 0x96, 0x88, 0x5e, 0xfd, 0x18, 0xf9, 0xbb, 0xd3,
- 0xee, 0x02, 0x4a, 0x9f, 0x7a, 0x74, 0x8b, 0x14, 0xb8, 0xdc, 0x53, 0xd7,
- 0xa8, 0x9d, 0x7d, 0x5f, 0x13, 0x6a, 0xb7, 0xda, 0x35, 0x8e, 0xf0, 0x8d,
- 0xa4, 0x67, 0x34, 0x97, 0x78, 0x93, 0xff, 0x24, 0x7f, 0x53, 0x5b, 0x7c,
- 0xca, 0xf2, 0xd0, 0xda, 0x8b, 0x0b, 0x71, 0xcc, 0x8a, 0x82, 0xca, 0xdb,
- 0x74, 0x9d, 0x33, 0x60, 0x47, 0x2f, 0x21, 0xdc, 0x42, 0xea, 0x7c, 0x64,
- 0x27, 0x90, 0x11, 0x9e, 0x70, 0xfa, 0x7c, 0x14, 0x9f, 0x0f, 0x94, 0x62,
- 0x5c, 0x5c, 0xec, 0x7c, 0xed, 0x9a, 0x40, 0x7a, 0xf1, 0x9b, 0x25, 0x9a,
- 0x94, 0xd3, 0x8e, 0xc9, 0x4e, 0x93, 0xe0, 0x5d, 0x78, 0x90, 0x7e, 0x1c,
- 0xbd, 0x84, 0xc4, 0x8b, 0xbb, 0xb5, 0x69, 0xa7, 0xb2, 0xaf, 0xfd, 0x57,
- 0xc9, 0xc0, 0x98, 0x73, 0x0d, 0x22, 0xf0, 0x37, 0x49, 0xc0, 0xc7, 0xb9,
- 0x9f, 0x8e, 0x82, 0x8b, 0xbb, 0xb6, 0x3a, 0x91, 0xa7, 0xb2, 0x05, 0xb7,
- 0x51, 0xaa, 0x80, 0x01, 0x63, 0xda, 0x10, 0xca, 0x0a, 0xa1, 0x25, 0x38,
- 0xb6, 0xdb, 0x8b, 0x8c, 0xb4, 0xa2, 0xad, 0x53, 0x0e, 0x5e, 0x26, 0xe7,
- 0x6f, 0x7e, 0x14, 0x91, 0xb9, 0xca, 0xfd, 0xf4, 0x85, 0x85, 0xd1, 0x18,
- 0xa3, 0x82, 0x20, 0x3d, 0xb9, 0xc0, 0xe3, 0xc4, 0x51, 0xc4, 0x61, 0x72,
- 0x73, 0xeb, 0x79, 0x49, 0x04, 0x66, 0xca, 0xbb, 0xb3, 0xf6, 0x52, 0x9e,
- 0x86, 0x8c, 0x30, 0x7d, 0xfb, 0xf2, 0x67, 0xf9, 0x09, 0xcd, 0x8d, 0xf9,
- 0x47, 0x73, 0xb3, 0x9c, 0x8f, 0xcd, 0xba, 0x16, 0xcd, 0x97, 0x3d, 0x0e,
- 0xc3, 0x5e, 0xc9, 0xb4, 0xae, 0xb5, 0xb7, 0xda, 0x1b, 0xad, 0x35, 0x69,
- 0x68, 0xbe, 0xdf, 0x06, 0x5f, 0xf5, 0xd8, 0xb1, 0x1d, 0x34, 0xf7, 0xde,
- 0x6c, 0xcf, 0x9f, 0xdf, 0xfe, 0xe5, 0xe7, 0x17, 0x4f, 0x9e, 0xa6, 0x9f,
- 0xa5, 0x93, 0xe7, 0x57, 0x9f, 0xa7, 0xcf, 0xa6, 0xcf, 0x3e, 0x7b, 0xb1,
- 0xff, 0xf9, 0xb3, 0xf4, 0xb3, 0xa7, 0x57, 0xe9, 0xf3, 0xbd, 0x6c, 0xef,
- 0xc5, 0xd5, 0xfe, 0x93, 0xe9, 0xf4, 0x2a, 0xfb, 0x7c, 0xfa, 0x59, 0xda,
- 0x1b, 0xc2, 0xfc, 0xd2, 0x2e, 0x87, 0xa2, 0x56, 0x42, 0x70, 0xa6, 0xf7,
- 0xa3, 0x6f, 0x0f, 0x07, 0x7b, 0xc9, 0x4d, 0xf6, 0x49, 0x0f, 0x18, 0x3b,
- 0x37, 0x2d, 0x36, 0x29, 0x13, 0x3f, 0xce, 0x6a, 0x1b, 0x5b, 0xd3, 0xa9,
- 0x08, 0x5b, 0x4a, 0xbe, 0x12, 0x68, 0xc0, 0x3c, 0x79, 0x3a, 0x9b, 0x8c,
- 0x3e, 0xb2, 0x6b, 0x76, 0xa0, 0x0e, 0x7c, 0x1a, 0x57, 0xf7, 0xf0, 0x9f,
- 0x9a, 0x77, 0x66, 0x6f, 0xd3, 0x89, 0x51, 0x92, 0xcc, 0x8c, 0xc8, 0x83,
- 0x23, 0x63, 0xda, 0x1a, 0x31, 0xdd, 0x4f, 0xe4, 0x2f, 0xe4, 0x30, 0xf6,
- 0xda, 0xf8, 0xa6, 0x2a, 0x97, 0x8b, 0xf3, 0x72, 0x96, 0x4f, 0xee, 0xd7,
- 0x35, 0xe7, 0x3f, 0xd6, 0xfa, 0xc5, 0x31, 0x8b, 0xf0, 0xbc, 0xce, 0xfe,
- 0x89, 0xa6, 0x95, 0x27, 0x8e, 0x1f, 0x61, 0x5b, 0x0d, 0x26, 0xf9, 0xe2,
- 0x86, 0x02, 0xbf, 0x2f, 0x81, 0x85, 0xa2, 0x38, 0x0d, 0xff, 0x20, 0x6e,
- 0x53, 0x8d, 0xe4, 0x28, 0xd6, 0xb2, 0x9e, 0xfa, 0xb6, 0x68, 0x5c, 0xb9,
- 0x26, 0x0a, 0xa9, 0x9b, 0x4a, 0xf0, 0x77, 0x79, 0xe0, 0xc7, 0x73, 0x1f,
- 0xe2, 0x63, 0xae, 0xda, 0x36, 0x3b, 0x2f, 0xe4, 0x57, 0xc3, 0xe4, 0x02,
- 0xa1, 0xf3, 0xe5, 0x82, 0x71, 0xe0, 0xf0, 0xf4, 0xf2, 0xef, 0x3a, 0xcd,
- 0xa1, 0xf3, 0xb2, 0x63, 0xd8, 0x10, 0x31, 0x33, 0xfa, 0xfe, 0xe2, 0xf4,
- 0xa0, 0x3b, 0x4f, 0x48, 0xc9, 0xa8, 0x0f, 0x76, 0x76, 0x10, 0xff, 0xb9,
- 0x49, 0x3f, 0x7d, 0x1a, 0xd6, 0xd9, 0xce, 0xb4, 0x9c, 0xd4, 0x3b, 0x75,
- 0x3d, 0xd3, 0xd9, 0x68, 0x67, 0x48, 0xfd, 0x01, 0xde, 0xdc, 0x72, 0x0e,
- 0x69, 0x95, 0x4d, 0x07, 0x75, 0x1d, 0xc0, 0x85, 0x46, 0x47, 0x0a, 0x46,
- 0x38, 0x2e, 0x18, 0x78, 0x8c, 0x7b, 0x6e, 0x60, 0x66, 0x77, 0x34, 0xfa,
- 0x36, 0xd1, 0x97, 0x31, 0xbd, 0x16, 0x20, 0x63, 0xa1, 0x3a, 0xfd, 0x88,
- 0x1a, 0x96, 0x8a, 0xc0, 0xfe, 0xc2, 0x77, 0xe8, 0x90, 0x3a, 0x5d, 0xf2,
- 0x1f, 0x82, 0xf0, 0xcf, 0x9b, 0xb5, 0x60, 0xa7, 0xe7, 0x1d, 0x07, 0x88,
- 0x1d, 0x44, 0x1c, 0x10, 0xa0, 0x4e, 0xb0, 0x34, 0x71, 0x4f, 0x3a, 0x8f,
- 0x50, 0x37, 0x85, 0xd7, 0xec, 0xde, 0xeb, 0xb2, 0x32, 0x97, 0xc7, 0xbc,
- 0x8e, 0x79, 0x41, 0xf5, 0x94, 0xd7, 0xea, 0xed, 0xad, 0xc9, 0x55, 0xcb,
- 0x5e, 0xd9, 0x65, 0xe1, 0x7d, 0xc0, 0x2c, 0x25, 0xb0, 0x5e, 0x43, 0xbb,
- 0x60, 0xf1, 0x60, 0x97, 0x2e, 0x5f, 0xc7, 0x8f, 0x26, 0x8e, 0xb4, 0x04,
- 0xf2, 0xbc, 0xf0, 0xa2, 0x20, 0xb8, 0x94, 0x4d, 0x97, 0xfb, 0xb1, 0xde,
- 0x61, 0x9d, 0xab, 0x0c, 0x17, 0x05, 0x29, 0x12, 0x55, 0x55, 0x7a, 0x9a,
- 0xed, 0xe0, 0x3b, 0x58, 0x98, 0xe6, 0x8a, 0xcc, 0xaf, 0x35, 0xe0, 0xde,
- 0x3d, 0xbe, 0xb2, 0xfd, 0xe9, 0x82, 0x69, 0x00, 0xf3, 0x94, 0xcc, 0x59,
- 0xba, 0x12, 0xcc, 0x11, 0x60, 0xc8, 0x89, 0xc0, 0xd8, 0x18, 0x26, 0xd4,
- 0x4a, 0x18, 0x0e, 0x8e, 0x03, 0xa5, 0x47, 0xb8, 0xc7, 0x09, 0x5e, 0xa5,
- 0x87, 0x13, 0xcd, 0x8b, 0x0f, 0xc3, 0xed, 0xce, 0x84, 0x54, 0x33, 0xb8,
- 0x0b, 0xcc, 0x33, 0xdd, 0x4b, 0x16, 0xc8, 0x44, 0xab, 0xf8, 0xc5, 0xb2,
- 0x01, 0xbb, 0xe3, 0x51, 0x94, 0xb2, 0x4e, 0x6f, 0x8e, 0xfc, 0xd3, 0x14,
- 0x10, 0xe8, 0xd8, 0xc5, 0x5e, 0x7a, 0x61, 0x5b, 0x6a, 0x30, 0x08, 0xe3,
- 0x70, 0x12, 0x1a, 0xa0, 0xe9, 0x9a, 0xd4, 0x01, 0xc3, 0xc8, 0x88, 0x21,
- 0x73, 0xeb, 0x11, 0x38, 0x97, 0xb2, 0x8e, 0x67, 0xa5, 0xd3, 0xb2, 0xcc,
- 0xee, 0x33, 0x02, 0x11, 0x89, 0x5b, 0xc3, 0x40, 0x78, 0x73, 0xfa, 0x06,
- 0x03, 0x51, 0x38, 0x0d, 0x89, 0xaf, 0x70, 0xf5, 0x7e, 0xcc, 0x60, 0x69,
- 0x72, 0xd4, 0xdc, 0x09, 0x35, 0x5a, 0xbf, 0x98, 0x7f, 0x48, 0x00, 0xcc,
- 0x9c, 0x13, 0x96, 0x23, 0xdb, 0x51, 0xf2, 0xe3, 0x18, 0x8f, 0xad, 0xee,
- 0xed, 0xba, 0xec, 0x4b, 0x53, 0x33, 0x8a, 0x89, 0x57, 0xd2, 0xc7, 0xee,
- 0x8e, 0xb2, 0xb9, 0x6f, 0x2d, 0x8b, 0x24, 0xad, 0x1d, 0xac, 0xb9, 0x0e,
- 0xa3, 0x97, 0x6e, 0x32, 0x63, 0x26, 0x6c, 0x00, 0x11, 0x47, 0x47, 0xaa,
- 0x4c, 0xbf, 0x50, 0x94, 0xdd, 0x4e, 0x69, 0x3f, 0x06, 0xa1, 0x43, 0xc7,
- 0xc2, 0xa0, 0xbd, 0x0e, 0x28, 0x1c, 0xda, 0xae, 0x72, 0xfc, 0xc6, 0xcb,
- 0xdc, 0x03, 0x70, 0xe3, 0x94, 0x16, 0x01, 0xe2, 0x2f, 0x64, 0xfb, 0x39,
- 0xd9, 0x2d, 0x5d, 0x57, 0x76, 0x31, 0x99, 0x95, 0x0a, 0x23, 0x37, 0xef,
- 0x73, 0x26, 0xe2, 0x90, 0x02, 0x92, 0xec, 0x08, 0x91, 0x15, 0x90, 0x5f,
- 0xf4, 0x45, 0x56, 0x5c, 0xa9, 0x2e, 0xd1, 0x6d, 0x8e, 0xed, 0xd2, 0x6e,
- 0xd6, 0xae, 0x33, 0x1e, 0x0f, 0x92, 0xe4, 0xe7, 0x9f, 0xfb, 0x09, 0x19,
- 0xc5, 0x3f, 0x37, 0xe6, 0x7f, 0x66, 0xa3, 0xfd, 0xcc, 0x89, 0x1b, 0x3f,
- 0xdf, 0x1a, 0x33, 0xaf, 0x1b, 0x20, 0x48, 0x27, 0x1f, 0xeb, 0x19, 0x45,
- 0x8a, 0x58, 0xad, 0x6e, 0x7b, 0xe0, 0x38, 0x4b, 0x14, 0xf9, 0x60, 0x1c,
- 0x0e, 0xf1, 0x81, 0x60, 0x50, 0x2c, 0x43, 0x97, 0xe1, 0x72, 0x5e, 0x88,
- 0x35, 0xc2, 0xfb, 0x10, 0x47, 0x1c, 0x72, 0x7f, 0xf3, 0x4f, 0x9b, 0x6e,
- 0xcf, 0xf4, 0xd5, 0x9b, 0xdf, 0xa8, 0x5c, 0x8d, 0x1c, 0x27, 0x3d, 0xf8,
- 0x9a, 0x53, 0x09, 0xf3, 0x92, 0x43, 0xa3, 0x46, 0x6e, 0x9e, 0x91, 0x2b,
- 0x9d, 0x33, 0x63, 0x4a, 0x67, 0x29, 0x52, 0x82, 0xd0, 0xe2, 0xe6, 0xbe,
- 0x26, 0xd4, 0x46, 0x4c, 0xda, 0x84, 0xa7, 0x64, 0xb8, 0x52, 0xc8, 0x35,
- 0x0a, 0x02, 0x82, 0x8d, 0x45, 0xbb, 0xa0, 0x25, 0x22, 0x4d, 0x77, 0x36,
- 0x07, 0x9b, 0x36, 0xf0, 0x25, 0x48, 0x99, 0x00, 0x5c, 0xac, 0x12, 0xc1,
- 0x03, 0x1f, 0x06, 0x9f, 0xf4, 0x00, 0x71, 0xa5, 0x0f, 0x77, 0x74, 0xf9,
- 0xbe, 0x94, 0xb0, 0xa7, 0xd1, 0x7b, 0xf9, 0xbe, 0xc8, 0x99, 0x88, 0x77,
- 0x09, 0xb0, 0x48, 0x20, 0x2b, 0xb4, 0x01, 0xb8, 0x3e, 0x5c, 0x2c, 0x68,
- 0x30, 0x00, 0xf5, 0xc2, 0x82, 0xe9, 0x12, 0x68, 0x77, 0x00, 0x71, 0x70,
- 0x4f, 0xc9, 0x31, 0x8b, 0x00, 0x9b, 0xa6, 0x50, 0x40, 0xcd, 0x3f, 0xa5,
- 0x83, 0x4c, 0x39, 0xfa, 0x77, 0x85, 0xe4, 0x58, 0x8f, 0x4a, 0xb8, 0x60,
- 0x26, 0xc0, 0x2e, 0x08, 0x50, 0x46, 0xd2, 0x6c, 0x22, 0x26, 0x1f, 0x5d,
- 0x76, 0x81, 0xc2, 0x43, 0xfd, 0x79, 0x95, 0xf4, 0x56, 0xab, 0x3d, 0xbd,
- 0xee, 0x1b, 0x40, 0x40, 0x3a, 0x7f, 0xa6, 0xa4, 0x10, 0xa3, 0x23, 0x5b,
- 0x02, 0xa1, 0x1b, 0xfc, 0x8d, 0xf1, 0xb1, 0x9c, 0xe5, 0x22, 0x57, 0xe9,
- 0x36, 0x03, 0x84, 0xeb, 0x00, 0x21, 0x53, 0x79, 0xf8, 0x2a, 0x6f, 0x7f,
- 0x38, 0x84, 0x52, 0x0e, 0x2f, 0x37, 0x6e, 0x29, 0xbe, 0xd5, 0xbc, 0xa7,
- 0xbb, 0xf2, 0xc7, 0xbe, 0x4d, 0x20, 0x7c, 0xfa, 0x9e, 0x78, 0x9f, 0xf5,
- 0x8a, 0xb0, 0xb6, 0xc2, 0x62, 0x06, 0xea, 0x02, 0x85, 0xff, 0x43, 0xff,
- 0x09, 0x66, 0x67, 0x6f, 0xdb, 0x26, 0x8c, 0x81, 0x7f, 0x80, 0x91, 0xd9,
- 0xa2, 0x12, 0xf4, 0x6e, 0x4a, 0x46, 0x11, 0xf5, 0x0e, 0x28, 0x97, 0x89,
- 0x81, 0xd1, 0x3c, 0x46, 0xcd, 0x0c, 0xef, 0x34, 0x07, 0x8c, 0xd6, 0xb7,
- 0x67, 0x6f, 0x8f, 0xdb, 0x08, 0x5c, 0xfc, 0x24, 0xe6, 0x69, 0x35, 0xf2,
- 0xea, 0x8d, 0x91, 0x2f, 0xbc, 0x07, 0xd2, 0x40, 0x75, 0xe3, 0xbd, 0x65,
- 0xba, 0x75, 0x9d, 0x35, 0x8b, 0xbb, 0x65, 0x3e, 0xdd, 0xda, 0xa6, 0x3d,
- 0x42, 0xf8, 0xfb, 0x01, 0xd2, 0x3e, 0xd8, 0x00, 0xac, 0x93, 0x2d, 0xd6,
- 0xc6, 0xab, 0xac, 0x59, 0x56, 0x05, 0x7b, 0xc7, 0xa9, 0xef, 0x61, 0xb0,
- 0x5b, 0xae, 0x34, 0xdf, 0x13, 0x20, 0x34, 0x22, 0x0c, 0x5e, 0xe2, 0x06,
- 0xb7, 0x49, 0x08, 0x28, 0x34, 0x02, 0x0b, 0x8f, 0xb1, 0x04, 0xf7, 0x94,
- 0x3f, 0x13, 0xc9, 0xe1, 0xf9, 0xf9, 0xeb, 0xc3, 0xcb, 0x43, 0x3b, 0x36,
- 0x5c, 0xc4, 0x90, 0x2c, 0x50, 0x87, 0x8d, 0x48, 0x22, 0xed, 0x88, 0x9e,
- 0xdc, 0xfc, 0xf3, 0xfb, 0xd1, 0xf1, 0x45, 0x77, 0x61, 0xcf, 0x2f, 0xce,
- 0x88, 0xa3, 0xe5, 0xcf, 0x3f, 0x1f, 0x52, 0x0c, 0x5d, 0x22, 0x80, 0xaf,
- 0xd3, 0x26, 0xdd, 0x0c, 0x4e, 0xf5, 0xfe, 0x36, 0xf5, 0xef, 0xce, 0xf6,
- 0xef, 0x4a, 0x2e, 0x33, 0x98, 0xf4, 0xc9, 0x07, 0x5a, 0xd0, 0x6a, 0xa2,
- 0xf0, 0x5b, 0x3b, 0x1b, 0x98, 0x00, 0xa0, 0x67, 0x57, 0x0f, 0xa4, 0x74,
- 0x92, 0x4c, 0x21, 0x64, 0x3a, 0x59, 0x33, 0x63, 0x4f, 0x67, 0x93, 0x65,
- 0xa3, 0x5b, 0x1e, 0xfb, 0x8b, 0x12, 0x5b, 0xbb, 0xf3, 0x12, 0x2c, 0x8f,
- 0x8b, 0x98, 0xb0, 0x14, 0x40, 0x5e, 0xb5, 0xd9, 0x68, 0x80, 0x48, 0x0f,
- 0xa5, 0xb7, 0x2c, 0xc5, 0x62, 0x10, 0x85, 0x8c, 0x63, 0x28, 0xc8, 0xb3,
- 0xe6, 0x2e, 0x05, 0x13, 0xf2, 0x27, 0x73, 0x1a, 0x07, 0xc9, 0xb1, 0x24,
- 0x00, 0x61, 0xe0, 0xe6, 0x07, 0xc1, 0x43, 0x8d, 0xb5, 0x15, 0x44, 0xd8,
- 0xc7, 0x65, 0x85, 0xc7, 0x3d, 0xd0, 0xeb, 0x2a, 0xcf, 0x9c, 0xed, 0x67,
- 0x1e, 0xa2, 0x6e, 0xd3, 0xa4, 0xc3, 0x54, 0xea, 0x45, 0xc0, 0x4e, 0x83,
- 0xf4, 0x9a, 0xb6, 0x97, 0x79, 0xd4, 0x68, 0xd1, 0xc6, 0x42, 0xa2, 0x7f,
- 0xed, 0xec, 0x0d, 0x77, 0x7b, 0x61, 0xe7, 0xe9, 0xb0, 0x80, 0x37, 0xc2,
- 0x86, 0xd0, 0x48, 0x1a, 0x36, 0x65, 0xf9, 0x60, 0xff, 0x58, 0x84, 0x19,
- 0x3d, 0x74, 0x61, 0xda, 0x8f, 0x76, 0x65, 0x70, 0x16, 0xe0, 0x8b, 0x09,
- 0xb1, 0x5b, 0xa9, 0x50, 0x34, 0x32, 0xb1, 0x28, 0xef, 0x68, 0x24, 0x66,
- 0xab, 0xcd, 0x66, 0x2d, 0x82, 0x8f, 0x5e, 0x7c, 0x9a, 0x0b, 0x70, 0xe9,
- 0x64, 0xdd, 0xd9, 0x8e, 0x86, 0xa9, 0x55, 0xc9, 0xf4, 0x35, 0x39, 0x0b,
- 0x76, 0x85, 0xc9, 0x68, 0x77, 0x82, 0x9f, 0x5f, 0x6d, 0xa4, 0x5c, 0x20,
- 0xf7, 0x66, 0x3e, 0x0c, 0x63, 0xa0, 0x58, 0x90, 0x01, 0x35, 0x42, 0xda,
- 0xe7, 0x4b, 0x4e, 0xdf, 0x0d, 0x0c, 0xf7, 0xb7, 0xe9, 0xa7, 0x7c, 0xbe,
- 0x9c, 0xe3, 0x63, 0xb4, 0xb7, 0xe5, 0x31, 0x09, 0x1e, 0xc0, 0x85, 0xc8,
- 0x58, 0x14, 0x6c, 0xf2, 0xcd, 0x3a, 0xf1, 0xcc, 0xf7, 0xd8, 0x25, 0x63,
- 0xae, 0xe4, 0xa1, 0x1b, 0x5e, 0x01, 0x04, 0x27, 0x45, 0x17, 0xea, 0x8e,
- 0xe9, 0x6f, 0xb4, 0x85, 0x94, 0x00, 0x06, 0x75, 0x69, 0x91, 0x39, 0x11,
- 0x71, 0xce, 0xf9, 0xe3, 0xa2, 0xc3, 0x79, 0x48, 0xd5, 0xac, 0xca, 0xcb,
- 0xa9, 0x3d, 0x37, 0xa4, 0x24, 0xe6, 0xc5, 0xd2, 0xcc, 0x33, 0x3b, 0x8e,
- 0x1b, 0x0b, 0x81, 0x0f, 0x00, 0x0e, 0x40, 0xd5, 0x8f, 0x90, 0x2c, 0xa1,
- 0xe0, 0xd3, 0xcf, 0x86, 0x4f, 0xf6, 0x87, 0xbb, 0xfd, 0x96, 0xf5, 0x2e,
- 0x69, 0xf6, 0xe6, 0x74, 0x4d, 0xf2, 0xb9, 0x4d, 0xc1, 0x1b, 0xfe, 0xd3,
- 0xbc, 0x34, 0x94, 0x7c, 0x38, 0x98, 0xa7, 0x9f, 0xb0, 0x7c, 0xd1, 0x65,
- 0x2d, 0x93, 0x97, 0xdf, 0x9e, 0x8d, 0x2e, 0xf7, 0x0e, 0xce, 0xcf, 0x2e,
- 0xcc, 0x7f, 0xe9, 0xef, 0xfb, 0xf8, 0xfb, 0x7e, 0x60, 0x3d, 0xbe, 0x11,
- 0xec, 0xac, 0x26, 0xeb, 0x40, 0x43, 0x81, 0x46, 0xc3, 0xb3, 0x99, 0x78,
- 0x0d, 0x91, 0xbf, 0x14, 0x62, 0x70, 0x62, 0x53, 0xbc, 0xba, 0x4b, 0xec,
- 0x7d, 0x4a, 0x01, 0x74, 0xea, 0x68, 0xf0, 0x01, 0x82, 0x79, 0xa3, 0xda,
- 0x94, 0xa4, 0x07, 0x6b, 0xe2, 0x71, 0xd7, 0x45, 0xcb, 0xa9, 0x9d, 0x92,
- 0x9f, 0xa3, 0x14, 0x5e, 0x00, 0x82, 0xb5, 0x7f, 0x35, 0x99, 0x19, 0x4d,
- 0x3f, 0x23, 0xe0, 0xc8, 0x34, 0xe3, 0x68, 0x0a, 0xfd, 0x24, 0x66, 0x80,
- 0x98, 0xe3, 0x27, 0x09, 0x0b, 0x5d, 0x38, 0x21, 0xef, 0x48, 0x0d, 0xe1,
- 0x98, 0xde, 0x98, 0x3e, 0xe6, 0xf5, 0x8d, 0x4c, 0x47, 0x91, 0x35, 0xdd,
- 0xe6, 0x98, 0x5a, 0xcb, 0xf7, 0x58, 0x21, 0x6f, 0x19, 0x19, 0xc8, 0xef,
- 0xce, 0x2e, 0x93, 0xf4, 0xea, 0x4a, 0xd3, 0xa5, 0x29, 0x23, 0x81, 0x34,
- 0xd6, 0x9d, 0x05, 0xdf, 0x64, 0x08, 0x45, 0x87, 0x92, 0x8f, 0xf5, 0x91,
- 0xcb, 0xd3, 0xd1, 0x0e, 0xf9, 0xab, 0x18, 0xf1, 0x36, 0x7a, 0x77, 0xd2,
- 0x6f, 0x79, 0xa4, 0x7d, 0x9c, 0xcb, 0x36, 0xdd, 0x94, 0x71, 0x85, 0x22,
- 0xf5, 0xee, 0x42, 0x47, 0xc2, 0x41, 0x08, 0x3a, 0x2c, 0x69, 0x4f, 0x9c,
- 0x21, 0x3d, 0x2c, 0x6d, 0x2f, 0xd1, 0x10, 0x29, 0xec, 0xdf, 0xf9, 0x22,
- 0xc4, 0xa7, 0xc1, 0x17, 0xdb, 0x07, 0x35, 0x05, 0x29, 0x1d, 0x3d, 0xb2,
- 0x49, 0x68, 0x58, 0x18, 0x52, 0x6f, 0xc8, 0xcd, 0xee, 0xf7, 0xd0, 0x2a,
- 0x1a, 0x35, 0x7f, 0xa7, 0x36, 0xb1, 0x69, 0xc7, 0x59, 0x0c, 0xd8, 0xcf,
- 0x1f, 0xf2, 0x1a, 0x4f, 0x6c, 0xf3, 0xa6, 0x63, 0x36, 0x4f, 0x4d, 0x77,
- 0x07, 0x09, 0x98, 0xb2, 0xca, 0xaf, 0x09, 0x14, 0xd0, 0x4d, 0x1d, 0x73,
- 0x1d, 0x09, 0xdc, 0x50, 0xa4, 0x8c, 0xd5, 0x4d, 0xcf, 0x73, 0x19, 0x34,
- 0x01, 0x34, 0x1f, 0x20, 0xd1, 0x4a, 0xed, 0x19, 0xed, 0x0e, 0xc9, 0x9f,
- 0x26, 0xa2, 0xc7, 0xb3, 0xb2, 0x67, 0x46, 0x47, 0xf7, 0x8e, 0x8b, 0xf8,
- 0x68, 0xea, 0x8f, 0x9e, 0x25, 0x90, 0x83, 0x9c, 0x34, 0x2a, 0xc0, 0x39,
- 0x46, 0xd4, 0x6d, 0x8e, 0x49, 0xac, 0x8c, 0x44, 0xd0, 0x6c, 0x8f, 0xde,
- 0xde, 0xfe, 0x67, 0xc3, 0x5d, 0xf3, 0xff, 0xcc, 0xa2, 0x88, 0x7e, 0xc4,
- 0x14, 0x3a, 0xcc, 0x7c, 0xc2, 0x9f, 0xe2, 0xa7, 0x23, 0x71, 0x37, 0xbd,
- 0x83, 0xca, 0xea, 0xba, 0x17, 0x87, 0x3f, 0xc9, 0xa0, 0x5b, 0xb7, 0x0a,
- 0xad, 0xa5, 0xbd, 0x51, 0xd2, 0xa9, 0xfc, 0x44, 0x8f, 0x79, 0xb5, 0x9c,
- 0x45, 0x60, 0x7c, 0x9e, 0xdb, 0x98, 0x14, 0xb4, 0xd9, 0xad, 0x38, 0x8d,
- 0xbf, 0x25, 0xf1, 0xc4, 0xa9, 0x7c, 0xc3, 0x16, 0x08, 0xea, 0x45, 0xcb,
- 0x07, 0x78, 0x24, 0x56, 0x1b, 0x84, 0xf3, 0xc0, 0x9c, 0x87, 0x97, 0xe5,
- 0xd5, 0x55, 0x9d, 0x35, 0xdd, 0x3b, 0xe8, 0x48, 0x1e, 0xd9, 0xb9, 0x00,
- 0xed, 0x1b, 0x87, 0x6d, 0x24, 0xdb, 0x26, 0x69, 0x93, 0x95, 0x24, 0x82,
- 0x3a, 0x63, 0xc9, 0xc5, 0xcd, 0x0d, 0x23, 0x19, 0x06, 0xfe, 0xef, 0x15,
- 0x11, 0xc2, 0xb9, 0xc2, 0x4a, 0x81, 0x81, 0x8c, 0x2b, 0x66, 0xb7, 0x90,
- 0xcb, 0xae, 0xcb, 0x55, 0xa5, 0xa7, 0xe2, 0x63, 0xbe, 0x58, 0x90, 0x85,
- 0xc3, 0xbc, 0x4f, 0xd8, 0xb9, 0x36, 0x60, 0x86, 0xb8, 0x2d, 0x76, 0xb3,
- 0xa2, 0x03, 0x8d, 0x9e, 0x3c, 0x91, 0x6b, 0x7f, 0x9c, 0x99, 0x63, 0x9b,
- 0x85, 0x5a, 0x3b, 0xf5, 0xc7, 0x23, 0xfb, 0x10, 0x8e, 0x82, 0x29, 0x11,
- 0x7b, 0x14, 0xa9, 0x4a, 0x99, 0x2b, 0x2f, 0x0d, 0x5e, 0xf2, 0xff, 0x62,
- 0x10, 0x55, 0x97, 0x9d, 0x65, 0x5d, 0x6e, 0xa3, 0x93, 0xff, 0xe7, 0xd8,
- 0x51, 0xb3, 0x58, 0xee, 0x13, 0xce, 0x75, 0x89, 0x65, 0x0e, 0x99, 0x3d,
- 0x35, 0x38, 0x32, 0xeb, 0x85, 0x18, 0x93, 0x07, 0x2d, 0x29, 0x3b, 0xb9,
- 0x18, 0x30, 0x7d, 0x48, 0x99, 0x80, 0x42, 0xb4, 0x43, 0xd9, 0xd0, 0xc1,
- 0xed, 0xc0, 0xcc, 0x7d, 0xec, 0x4a, 0x94, 0x31, 0xe2, 0x80, 0x34, 0x92,
- 0x38, 0xe7, 0x27, 0x9c, 0x88, 0xbe, 0xb8, 0x93, 0x17, 0xa4, 0x35, 0xb2,
- 0x0e, 0x13, 0xe4, 0x63, 0x68, 0x2a, 0x2c, 0x73, 0x40, 0x2c, 0x9b, 0x7f,
- 0x62, 0xac, 0xa4, 0xa2, 0xfd, 0x0b, 0x72, 0x2f, 0x6f, 0x53, 0x4f, 0x78,
- 0x53, 0x13, 0x83, 0xe1, 0xe0, 0xaf, 0xc6, 0xd0, 0x7e, 0xa9, 0x9e, 0x8a,
- 0x55, 0xc9, 0xd2, 0xea, 0xd7, 0xa0, 0xfc, 0x09, 0xd8, 0x61, 0xd8, 0x1b,
- 0x96, 0xb5, 0x43, 0xa7, 0x9a, 0x5d, 0x2a, 0x29, 0xd4, 0x19, 0xd0, 0x23,
- 0x76, 0x65, 0xfd, 0x15, 0xa8, 0x40, 0x2c, 0x35, 0x84, 0x97, 0x3e, 0x39,
- 0xa4, 0xa8, 0xd4, 0x8c, 0x5b, 0xa8, 0x19, 0x48, 0x29, 0x6d, 0xa8, 0xdd,
- 0x90, 0x07, 0xd7, 0x6e, 0x5e, 0x0c, 0xe6, 0xd9, 0x1c, 0x18, 0x6f, 0x7e,
- 0x16, 0xc1, 0x33, 0xe2, 0xb2, 0x92, 0xed, 0xc8, 0x4b, 0xc4, 0x96, 0x78,
- 0x23, 0x40, 0x0a, 0x68, 0xb6, 0xf8, 0x6c, 0x18, 0x7b, 0x2c, 0x0b, 0x76,
- 0x3b, 0xc2, 0x57, 0xc8, 0x1f, 0x27, 0x17, 0xd9, 0x47, 0xa3, 0x3e, 0x17,
- 0x7d, 0xfa, 0x29, 0x72, 0x51, 0xbd, 0xc4, 0x44, 0xea, 0x6e, 0x93, 0x71,
- 0x90, 0x22, 0x8b, 0xa8, 0xb3, 0xde, 0xb3, 0xf2, 0xa8, 0xe7, 0x49, 0x79,
- 0x97, 0x35, 0x02, 0x15, 0xe1, 0xce, 0x6b, 0x62, 0x16, 0x92, 0xbb, 0x4e,
- 0xae, 0x3a, 0xcd, 0x81, 0x44, 0x2b, 0x6b, 0x9c, 0x4f, 0x08, 0x02, 0x96,
- 0x39, 0x43, 0x99, 0x39, 0x88, 0xdc, 0x9e, 0x7d, 0x73, 0x0c, 0x7a, 0xea,
- 0x82, 0xe5, 0x11, 0xc4, 0xa1, 0x0a, 0xda, 0x1d, 0xf2, 0x14, 0x35, 0xd3,
- 0xd8, 0x9e, 0x64, 0xf5, 0x57, 0x0f, 0xa4, 0x10, 0xaa, 0xf9, 0xf0, 0x07,
- 0xa2, 0x86, 0x42, 0xb4, 0xde, 0x7d, 0x4d, 0x81, 0x2a, 0xb4, 0xd1, 0xbb,
- 0xe9, 0xb8, 0x2e, 0xb1, 0x94, 0x20, 0x33, 0xd5, 0x54, 0x9d, 0x23, 0xda,
- 0x51, 0x23, 0x85, 0xc5, 0x34, 0xba, 0x4b, 0xb1, 0xd3, 0x6c, 0xfb, 0x79,
- 0x44, 0x0b, 0xf1, 0xf0, 0x8e, 0x83, 0xb1, 0xdb, 0xce, 0x8e, 0x54, 0x24,
- 0xea, 0x9a, 0x95, 0x87, 0x68, 0xcf, 0x9b, 0x8b, 0x65, 0x13, 0x92, 0x45,
- 0x92, 0x4b, 0xc1, 0xd3, 0x61, 0x27, 0x85, 0xa7, 0xf0, 0xee, 0xa6, 0x9c,
- 0xb1, 0x65, 0x1c, 0x44, 0x58, 0x6c, 0xd6, 0x2f, 0x28, 0x2f, 0x08, 0xc6,
- 0x0b, 0xc7, 0xf2, 0x2d, 0x10, 0xc2, 0xad, 0x28, 0x89, 0x51, 0xf1, 0xb2,
- 0x94, 0x72, 0x8d, 0x04, 0x23, 0x9f, 0x0c, 0x6e, 0xc3, 0x1c, 0x49, 0x73,
- 0xce, 0xc7, 0x65, 0x6d, 0xf7, 0x0b, 0xe5, 0xd6, 0xd2, 0x0d, 0x72, 0x97,
- 0x56, 0x10, 0xcc, 0xc2, 0x1d, 0xa4, 0xb4, 0x8a, 0x3e, 0x46, 0x90, 0xb4,
- 0xc1, 0x6e, 0x7e, 0x43, 0x4e, 0xf9, 0xe8, 0x66, 0x9b, 0x18, 0x1d, 0x80,
- 0xdc, 0xb4, 0xd8, 0x3b, 0xd4, 0xa4, 0xb0, 0x02, 0xdd, 0x80, 0x20, 0x54,
- 0x92, 0xd6, 0xcd, 0x39, 0xbc, 0xa1, 0x6b, 0x3d, 0x6f, 0x96, 0x69, 0xf3,
- 0x38, 0x80, 0xf6, 0x2a, 0xd9, 0xc4, 0xc2, 0xc9, 0x07, 0x33, 0x44, 0x42,
- 0x09, 0xd8, 0xb6, 0x2b, 0xa2, 0x86, 0xfe, 0x42, 0xbe, 0xa4, 0xb3, 0xb6,
- 0x42, 0x1e, 0x9d, 0x83, 0xde, 0xec, 0xa6, 0xcd, 0x8f, 0x83, 0x54, 0x5c,
- 0xb9, 0x46, 0x34, 0xdb, 0x8d, 0x9b, 0xd2, 0x5b, 0xfe, 0x24, 0x12, 0xcf,
- 0x47, 0xfc, 0xcb, 0xf4, 0x62, 0x76, 0xef, 0x1a, 0xf4, 0xb2, 0x64, 0x15,
- 0xc8, 0xed, 0x71, 0x87, 0xd9, 0x2f, 0x04, 0xe0, 0xa4, 0xde, 0xc8, 0x28,
- 0xdf, 0xfc, 0xcd, 0x83, 0x9e, 0x52, 0x31, 0x5a, 0x6e, 0x19, 0x11, 0x1e,
- 0x92, 0xa6, 0x65, 0xd3, 0x3c, 0xc4, 0x67, 0x4f, 0xa7, 0xbe, 0xdb, 0x1c,
- 0xf1, 0x12, 0xef, 0xbd, 0xfa, 0xfe, 0xf0, 0xf4, 0xfd, 0xf1, 0xde, 0x17,
- 0x09, 0xfd, 0x6b, 0x9f, 0xff, 0xb5, 0xdf, 0x8b, 0xad, 0x92, 0x91, 0x4f,
- 0x9b, 0xaf, 0x36, 0x93, 0xfa, 0x7e, 0x3e, 0x2e, 0x67, 0x76, 0x9d, 0x64,
- 0x2a, 0x34, 0x54, 0xd6, 0x97, 0xcb, 0xdb, 0x26, 0x6d, 0x8b, 0x87, 0xbc,
- 0x2b, 0xa9, 0x6b, 0xc1, 0x16, 0xaa, 0x94, 0x41, 0x8c, 0xce, 0x4f, 0x1f,
- 0x6e, 0x90, 0x61, 0xad, 0xa2, 0x4b, 0xa2, 0x75, 0xab, 0xf0, 0x9e, 0xb8,
- 0x8b, 0xf4, 0x3c, 0xd7, 0x11, 0x81, 0x21, 0x64, 0x05, 0xbc, 0xfb, 0xe1,
- 0x13, 0x17, 0xa7, 0x25, 0xcb, 0x8a, 0x40, 0xf0, 0x1b, 0xb1, 0x84, 0xb3,
- 0x64, 0x69, 0x78, 0xb5, 0x05, 0x52, 0xe5, 0x69, 0x6e, 0x89, 0xad, 0xed,
- 0x5e, 0xe8, 0x07, 0x36, 0xab, 0xcc, 0x8a, 0x5d, 0x0c, 0x3d, 0x88, 0x3d,
- 0xcc, 0xc7, 0xa2, 0xb5, 0x78, 0x54, 0x45, 0xa7, 0xb4, 0x19, 0x15, 0x87,
- 0x61, 0x33, 0x44, 0x2b, 0xf0, 0x28, 0x38, 0x4f, 0x46, 0xe2, 0x31, 0xe1,
- 0x5a, 0x4e, 0x3d, 0x21, 0xa5, 0xf3, 0x48, 0x3a, 0xe1, 0x6a, 0x13, 0x47,
- 0xb3, 0x83, 0x28, 0x3a, 0x39, 0x4e, 0x69, 0x0f, 0xa4, 0xda, 0x11, 0xb2,
- 0xa4, 0x2b, 0x38, 0x8d, 0x5a, 0x59, 0x27, 0x5b, 0x46, 0xae, 0x6f, 0xf7,
- 0xbd, 0x58, 0xac, 0x2e, 0xa0, 0xb8, 0x24, 0x1a, 0x1b, 0x35, 0x5d, 0x11,
- 0x27, 0xb8, 0xbc, 0x69, 0xdd, 0x30, 0xaa, 0xeb, 0x69, 0x5a, 0x33, 0xc7,
- 0x60, 0xe5, 0xca, 0xe0, 0x66, 0x78, 0xa3, 0x12, 0x4c, 0x73, 0x96, 0x06,
- 0x73, 0xc6, 0x89, 0xef, 0x42, 0x85, 0x41, 0x11, 0x7d, 0xbb, 0xf5, 0xcd,
- 0xf7, 0xef, 0x67, 0xd9, 0xb6, 0x1a, 0x05, 0x7a, 0xcb, 0xed, 0xbc, 0x2d,
- 0xff, 0x6e, 0xfa, 0x9d, 0xca, 0x47, 0x62, 0x97, 0xa5, 0xdc, 0x7d, 0x2b,
- 0x7b, 0xee, 0x04, 0x0b, 0x27, 0x87, 0xfb, 0xe2, 0xa2, 0x65, 0x17, 0x23,
- 0xd0, 0x4b, 0x0a, 0x19, 0x30, 0xd9, 0xc1, 0x6a, 0x8b, 0x5a, 0x11, 0x5c,
- 0xcd, 0x22, 0x48, 0x10, 0xd9, 0x49, 0x2e, 0x4b, 0x81, 0xe2, 0xd8, 0x2d,
- 0x26, 0xf7, 0x4d, 0x57, 0x76, 0x77, 0x95, 0xa9, 0x15, 0x37, 0xd0, 0xf1,
- 0xa7, 0xac, 0x9a, 0x10, 0xcd, 0xc4, 0xc4, 0x28, 0xa4, 0x10, 0xa4, 0x57,
- 0xe2, 0x9a, 0xa2, 0x20, 0x9c, 0x4d, 0xc1, 0xf2, 0x3d, 0x6a, 0xb8, 0x77,
- 0x75, 0xa7, 0xad, 0xdc, 0x64, 0x00, 0x39, 0x4c, 0xcc, 0xc6, 0x18, 0x5a,
- 0x46, 0x30, 0xbd, 0x19, 0xdb, 0x02, 0x44, 0x73, 0xc9, 0x10, 0x4a, 0x08,
- 0x40, 0x66, 0x98, 0x61, 0x7d, 0xd1, 0x5b, 0x4d, 0xd9, 0x2e, 0xe8, 0x0b,
- 0xf3, 0x3b, 0xb9, 0xc8, 0x10, 0xd1, 0x03, 0x80, 0x24, 0x67, 0x35, 0x0e,
- 0xd1, 0xae, 0x0e, 0xb8, 0x3b, 0x10, 0x29, 0x29, 0xee, 0x95, 0x5a, 0x67,
- 0x0b, 0xf7, 0x25, 0x6b, 0x85, 0x4a, 0xc1, 0x06, 0x95, 0x2b, 0x4c, 0x41,
- 0x9e, 0x95, 0x77, 0x14, 0x7f, 0x69, 0x13, 0x22, 0xce, 0xcb, 0x29, 0xef,
- 0x87, 0xf1, 0xbd, 0xa5, 0x4e, 0x1f, 0x90, 0x92, 0xc4, 0x9f, 0x1d, 0x6a,
- 0xc8, 0x31, 0xba, 0x03, 0x34, 0xa3, 0xb2, 0x9b, 0x72, 0x94, 0xba, 0x84,
- 0xa3, 0x86, 0x1d, 0xc9, 0xac, 0x58, 0x38, 0x36, 0xa2, 0xd8, 0x8d, 0x86,
- 0x11, 0x8f, 0x4b, 0xa2, 0xb9, 0xb4, 0x80, 0x53, 0xe2, 0x38, 0x23, 0x1f,
- 0xcf, 0xd5, 0xb2, 0x81, 0xf6, 0xaf, 0xf6, 0x5f, 0x23, 0x98, 0x62, 0x71,
- 0x14, 0x05, 0xb1, 0xc6, 0x8f, 0xcc, 0x85, 0x55, 0x36, 0xca, 0x73, 0x2a,
- 0x1c, 0x80, 0x0d, 0xf2, 0x3a, 0x49, 0xd9, 0x84, 0xf5, 0x0b, 0xca, 0x35,
- 0xf3, 0x5d, 0x42, 0x25, 0xd5, 0x35, 0xd1, 0x6b, 0x01, 0x7f, 0x1a, 0x50,
- 0x6b, 0x60, 0xaa, 0x09, 0x59, 0xe3, 0x16, 0x75, 0x8b, 0xc9, 0x6f, 0xd0,
- 0x0b, 0x91, 0x26, 0xc4, 0x89, 0x01, 0x83, 0x7d, 0xac, 0xef, 0xd4, 0xdb,
- 0xe4, 0xc7, 0x88, 0x80, 0x2e, 0x5b, 0xca, 0xeb, 0x8a, 0x43, 0xfb, 0x0f,
- 0x5b, 0x34, 0x81, 0x85, 0x57, 0xd5, 0xcc, 0x29, 0x0a, 0x56, 0x56, 0x8b,
- 0x82, 0xc7, 0x94, 0x87, 0xc2, 0x2b, 0x75, 0xf1, 0x37, 0x98, 0x14, 0xdd,
- 0x51, 0x2c, 0xa6, 0xd0, 0xf9, 0xf4, 0x1d, 0x68, 0x49, 0x1e, 0x37, 0x60,
- 0x5d, 0xca, 0x89, 0x44, 0xf3, 0x24, 0x68, 0x9c, 0xa4, 0x89, 0x91, 0xe4,
- 0x74, 0x65, 0x80, 0x1f, 0x60, 0x69, 0x51, 0x57, 0xb1, 0x0f, 0x67, 0xee,
- 0xcb, 0x07, 0xf3, 0x22, 0xae, 0xe0, 0x81, 0xd9, 0xff, 0x75, 0x2c, 0x50,
- 0xa9, 0xd7, 0xb8, 0x91, 0xf2, 0x7f, 0x5d, 0x16, 0x93, 0xce, 0x35, 0x55,
- 0xf6, 0x3d, 0x8a, 0x42, 0x89, 0xca, 0xda, 0x5b, 0xa2, 0xbb, 0xf1, 0xf1,
- 0x21, 0xa1, 0xbf, 0xa1, 0xe4, 0x4f, 0x4a, 0xd5, 0xa0, 0x2b, 0x6e, 0xe6,
- 0xa5, 0x89, 0xde, 0xe4, 0x66, 0x85, 0xaa, 0xc9, 0x0d, 0x38, 0x04, 0xe0,
- 0x47, 0xca, 0xd4, 0x39, 0x1a, 0xc7, 0x19, 0x49, 0xb3, 0xa2, 0x91, 0xe5,
- 0x24, 0x92, 0x88, 0x25, 0xa4, 0x2c, 0x54, 0x50, 0xaf, 0xea, 0x67, 0x08,
- 0xe3, 0xba, 0xa1, 0x39, 0xcf, 0x66, 0x75, 0x66, 0xd1, 0x1f, 0xf6, 0x1d,
- 0x77, 0x57, 0xc2, 0x02, 0x2f, 0xe0, 0x93, 0xe5, 0x7c, 0xa0, 0x3c, 0x7a,
- 0xca, 0xd1, 0x13, 0xa3, 0xec, 0x48, 0x67, 0xc8, 0xa8, 0xa4, 0x7d, 0x72,
- 0xaf, 0x1c, 0x33, 0xd2, 0x82, 0xee, 0x3a, 0xe5, 0x98, 0x09, 0x6e, 0x9f,
- 0xd2, 0xce, 0x9b, 0xf0, 0xb6, 0xe8, 0x54, 0xe5, 0x4a, 0x41, 0xcd, 0x5b,
- 0x85, 0xbc, 0x18, 0xa6, 0x37, 0x5c, 0x1a, 0x81, 0xe2, 0x5f, 0x83, 0xc1,
- 0x55, 0xb3, 0x18, 0x44, 0x97, 0x00, 0x6b, 0xdd, 0xde, 0x02, 0xb3, 0x2b,
- 0xe1, 0xe8, 0x79, 0xab, 0xf4, 0x64, 0xb7, 0x94, 0xb0, 0x93, 0x9c, 0xbe,
- 0x61, 0x2f, 0xde, 0xd1, 0x05, 0xfd, 0x2d, 0xb7, 0x0c, 0x45, 0x43, 0x1c,
- 0x0a, 0xaa, 0x75, 0xc0, 0xe9, 0xeb, 0x6f, 0xbf, 0xef, 0xe6, 0x5c, 0x6e,
- 0x9d, 0x8d, 0x76, 0x9e, 0xbc, 0xd8, 0xdd, 0x8e, 0x00, 0x94, 0xcd, 0x37,
- 0x1c, 0x75, 0xdb, 0x67, 0xc3, 0xa7, 0xbb, 0xc3, 0xdd, 0xed, 0x4e, 0x6f,
- 0x68, 0xba, 0xd7, 0x50, 0xa7, 0x28, 0xe1, 0xb4, 0xbd, 0x38, 0x00, 0x3a,
- 0xb6, 0xec, 0x24, 0x0a, 0x92, 0xf6, 0x33, 0x47, 0x2f, 0xb2, 0x5b, 0xb3,
- 0xd5, 0x62, 0x56, 0x77, 0x72, 0x9a, 0xd7, 0x62, 0xd5, 0xd0, 0x6d, 0xa6,
- 0xf7, 0x0b, 0xa5, 0x66, 0xb7, 0xa1, 0xbf, 0x78, 0x84, 0x2e, 0x4c, 0xc6,
- 0x3a, 0x44, 0xa2, 0x2d, 0xb5, 0xe9, 0x54, 0x05, 0x14, 0x1e, 0x62, 0xfa,
- 0x7f, 0xb8, 0xa7, 0xc5, 0xf3, 0x1c, 0xee, 0xbd, 0x18, 0x7e, 0xe6, 0xaf,
- 0x29, 0xe9, 0xfb, 0x83, 0xb4, 0x9e, 0xe4, 0xf9, 0x5a, 0x63, 0x46, 0xe1,
- 0x8d, 0x7f, 0x5d, 0x82, 0x84, 0xcc, 0x6c, 0xd3, 0x3c, 0xe5, 0x50, 0xad,
- 0xe3, 0x6e, 0x0c, 0x9a, 0x25, 0x7d, 0xd5, 0x6c, 0xb1, 0x75, 0xed, 0x8a,
- 0x01, 0x4f, 0xf5, 0x2b, 0x84, 0x6e, 0xd6, 0x6a, 0x98, 0x75, 0x57, 0x95,
- 0x32, 0x67, 0x81, 0xe9, 0xca, 0x16, 0x55, 0x98, 0xcc, 0x47, 0x40, 0x4c,
- 0xc0, 0x9b, 0xd3, 0xa6, 0x2e, 0x69, 0x9e, 0x62, 0x93, 0x0a, 0xf7, 0x04,
- 0x08, 0x3b, 0xad, 0x19, 0x65, 0xcf, 0xbe, 0x80, 0x81, 0xbe, 0xf2, 0x90,
- 0x3b, 0x2d, 0x33, 0x28, 0x8d, 0x28, 0x83, 0xcc, 0x37, 0x9e, 0x20, 0x3c,
- 0xce, 0x69, 0x53, 0x34, 0x10, 0x61, 0xdd, 0x87, 0xcf, 0x83, 0x31, 0x22,
- 0xc2, 0xb9, 0x4f, 0xf4, 0x43, 0x76, 0xb6, 0x22, 0xe4, 0x52, 0x7d, 0x33,
- 0x3e, 0xb0, 0x19, 0x62, 0x07, 0x15, 0xd9, 0x1d, 0x49, 0xe3, 0x5a, 0xd4,
- 0x89, 0xaa, 0xca, 0xc9, 0x69, 0x64, 0xc1, 0x05, 0xac, 0x92, 0x11, 0xdc,
- 0x92, 0x2e, 0xe8, 0x69, 0x24, 0x91, 0x7b, 0x82, 0xd3, 0x59, 0x5b, 0x80,
- 0x76, 0x01, 0x3e, 0x3e, 0xe2, 0x97, 0x8b, 0x66, 0xfb, 0xb4, 0xd5, 0x3a,
- 0xcb, 0xf5, 0x16, 0xd9, 0x74, 0x28, 0x8e, 0xe0, 0x10, 0x1e, 0x4d, 0xc4,
- 0xab, 0x44, 0x10, 0x0d, 0xf6, 0xbf, 0x30, 0x3f, 0x17, 0xe6, 0x3a, 0xad,
- 0xa5, 0x90, 0xc6, 0x98, 0x77, 0xe3, 0x9a, 0xad, 0x53, 0xa5, 0x77, 0x0f,
- 0xef, 0x47, 0x6f, 0xd7, 0xc8, 0x4c, 0xcf, 0xe0, 0x93, 0xf1, 0xe8, 0x44,
- 0xc9, 0x11, 0x61, 0x81, 0x81, 0x91, 0x9e, 0x0a, 0x8d, 0xbd, 0xcb, 0xf2,
- 0x11, 0x43, 0x8a, 0xe5, 0xfa, 0x57, 0x6b, 0x12, 0xa4, 0x9c, 0xf7, 0xd2,
- 0x8d, 0xa2, 0xe5, 0xa2, 0xef, 0x70, 0x12, 0x62, 0x58, 0xe6, 0xca, 0xe3,
- 0xac, 0x92, 0x47, 0x1c, 0x0a, 0x37, 0xba, 0xbe, 0xdd, 0x48, 0xa2, 0xfc,
- 0xb3, 0x07, 0xca, 0x1b, 0xa6, 0x90, 0x57, 0xc6, 0x20, 0x87, 0xec, 0x90,
- 0xa7, 0x6d, 0x05, 0x6e, 0x19, 0x4b, 0x4a, 0xb6, 0xc8, 0x2a, 0x92, 0x82,
- 0x80, 0x67, 0x0f, 0x14, 0x55, 0x1b, 0xbb, 0x58, 0xcc, 0xe6, 0x3f, 0xfa,
- 0xe6, 0x04, 0x30, 0x63, 0x73, 0xe8, 0x0b, 0x61, 0x17, 0xe0, 0xfe, 0x73,
- 0xc5, 0x12, 0x6b, 0x84, 0x5d, 0xe7, 0x96, 0x50, 0x2c, 0x4d, 0x5a, 0x04,
- 0xa1, 0x1d, 0x1d, 0x39, 0x51, 0x65, 0x58, 0x80, 0x94, 0xa2, 0xd3, 0x8a,
- 0x89, 0x68, 0x43, 0x91, 0xa9, 0xc3, 0xae, 0x47, 0xe7, 0x0b, 0x5f, 0x57,
- 0x16, 0x8c, 0xb4, 0x96, 0x68, 0x23, 0x14, 0x8b, 0x00, 0xd7, 0xec, 0xf6,
- 0x2b, 0x57, 0x80, 0xc9, 0x42, 0x8c, 0x96, 0x7c, 0x3e, 0x5e, 0xa0, 0x09,
- 0x6b, 0xe2, 0x6a, 0xdb, 0xe0, 0x23, 0x76, 0xea, 0x32, 0xdf, 0xc2, 0xe5,
- 0x24, 0x21, 0xf2, 0xfe, 0xc4, 0x5c, 0x8c, 0xaa, 0x96, 0x90, 0x3f, 0xf6,
- 0x3f, 0x49, 0x9a, 0xe2, 0x8e, 0x30, 0xe7, 0x93, 0x6e, 0x49, 0x4d, 0xe4,
- 0xf3, 0x5b, 0x53, 0xda, 0x39, 0x41, 0x68, 0xc6, 0x9b, 0x23, 0x7b, 0xe5,
- 0x15, 0xdd, 0xec, 0x5f, 0x89, 0x6b, 0xc5, 0x1c, 0x55, 0xe5, 0x73, 0x66,
- 0x13, 0x92, 0xb3, 0x38, 0xd9, 0x6b, 0x21, 0x1c, 0x39, 0x34, 0x0d, 0xf1,
- 0xe6, 0x38, 0x1a, 0xe7, 0xcd, 0x1e, 0xef, 0x38, 0x62, 0x8d, 0xae, 0xb9,
- 0x0a, 0xd0, 0xbf, 0x74, 0x27, 0xef, 0xd5, 0xc3, 0xb3, 0xf7, 0x6b, 0xa7,
- 0x6f, 0xfd, 0xec, 0x31, 0xfb, 0xba, 0xa2, 0x3a, 0x5f, 0x79, 0x2e, 0x25,
- 0x00, 0x13, 0xd8, 0x56, 0xb0, 0xae, 0xa5, 0xb6, 0x94, 0xf1, 0x8c, 0xa2,
- 0x57, 0xbf, 0xd7, 0xaa, 0x63, 0x33, 0xc2, 0x02, 0xa5, 0xce, 0xc7, 0x9b,
- 0xe3, 0xf8, 0x17, 0xd6, 0xde, 0xe7, 0x08, 0x14, 0x9d, 0x11, 0x2d, 0xc0,
- 0xc9, 0x62, 0xf6, 0x7f, 0xc3, 0x9b, 0x79, 0x0c, 0x48, 0xe2, 0x20, 0xde,
- 0x9c, 0x66, 0xa8, 0x89, 0xd2, 0x18, 0x8c, 0xef, 0x2b, 0xbd, 0xa4, 0x1e,
- 0x1a, 0x5c, 0xcb, 0x9b, 0x05, 0x14, 0x8c, 0x38, 0x02, 0x2d, 0x1a, 0xca,
- 0x62, 0x18, 0x22, 0xde, 0x52, 0x9b, 0x26, 0x68, 0x39, 0x0b, 0xb9, 0x08,
- 0x8c, 0xde, 0x60, 0xdb, 0xfd, 0xf6, 0x9c, 0x11, 0x27, 0x1b, 0xee, 0x03,
- 0x59, 0xe8, 0x78, 0x73, 0x39, 0x0c, 0x53, 0x59, 0x3e, 0x22, 0x56, 0x8f,
- 0x2e, 0xdf, 0xff, 0xcb, 0x86, 0xc8, 0x5e, 0x58, 0x0e, 0x4b, 0x73, 0x35,
- 0xa8, 0x6b, 0xe6, 0x38, 0x34, 0xdd, 0x02, 0x20, 0x3c, 0x69, 0x95, 0x40,
- 0x09, 0x50, 0x0a, 0x30, 0xbe, 0xfb, 0x08, 0x0e, 0xce, 0x10, 0x41, 0xcd,
- 0x99, 0xa8, 0xf9, 0x95, 0xbd, 0x79, 0xa6, 0x03, 0x1a, 0xde, 0x40, 0x76,
- 0xed, 0x10, 0xfb, 0x70, 0xcd, 0x66, 0xb5, 0x9b, 0x33, 0xbe, 0x2f, 0x83,
- 0x1d, 0xb8, 0xfa, 0x76, 0x54, 0x3a, 0x50, 0xb9, 0xde, 0x5b, 0x97, 0xe5,
- 0xde, 0xe7, 0xad, 0xcb, 0xd2, 0xbd, 0xb3, 0xee, 0x9a, 0x1c, 0x65, 0x8c,
- 0x9f, 0xf2, 0x7d, 0x6e, 0x78, 0x89, 0x33, 0x80, 0x89, 0x8a, 0x3f, 0x44,
- 0xe2, 0xd0, 0xab, 0x41, 0x42, 0x2c, 0x43, 0x61, 0x9c, 0xa7, 0x9b, 0x1d,
- 0xa1, 0x14, 0xe1, 0x11, 0x65, 0x3e, 0x19, 0x57, 0xe5, 0x5d, 0x0d, 0xed,
- 0x49, 0xed, 0xa9, 0x94, 0x11, 0x9b, 0x37, 0x01, 0x6c, 0xc0, 0x4c, 0xef,
- 0xcc, 0xd2, 0x96, 0x7e, 0x7b, 0xf9, 0xf6, 0x94, 0xa9, 0xd9, 0x39, 0x73,
- 0x94, 0x92, 0x63, 0xa4, 0xcf, 0xcb, 0xf1, 0xdc, 0xac, 0xbf, 0x51, 0x50,
- 0x1a, 0x96, 0x66, 0x2a, 0x20, 0x83, 0xf4, 0x56, 0x84, 0x9f, 0x24, 0x78,
- 0xb9, 0x88, 0x05, 0x15, 0xc4, 0x15, 0xe4, 0x82, 0x76, 0xb2, 0xb8, 0x48,
- 0x32, 0x5b, 0x8d, 0x64, 0xd9, 0xf9, 0x34, 0xb8, 0xbb, 0xbb, 0x1b, 0x50,
- 0xef, 0x9c, 0x62, 0x42, 0x26, 0xdb, 0x11, 0x03, 0x38, 0xa0, 0x4a, 0xbd,
- 0xa1, 0xa5, 0xa0, 0x47, 0x82, 0xd3, 0xe7, 0x69, 0x6a, 0xa8, 0x20, 0x04,
- 0x06, 0x64, 0xeb, 0x50, 0x20, 0xc5, 0xcb, 0x96, 0x0f, 0x00, 0x9f, 0x53,
- 0xda, 0x56, 0xb6, 0xba, 0x22, 0xcd, 0x29, 0x5f, 0xae, 0x10, 0x80, 0xaf,
- 0x7f, 0x91, 0x2a, 0x42, 0x2a, 0x91, 0x44, 0x3f, 0x96, 0x15, 0xf9, 0x9f,
- 0xd8, 0xc2, 0xe8, 0x47, 0x20, 0xe2, 0xa2, 0x93, 0xa8, 0x03, 0xda, 0x86,
- 0xe1, 0x5a, 0x96, 0x89, 0x32, 0x9e, 0x53, 0xdb, 0xde, 0xf1, 0x8d, 0xe8,
- 0x89, 0xcc, 0x9e, 0x04, 0xe0, 0x3f, 0x56, 0xd3, 0x6c, 0x36, 0xd3, 0x3a,
- 0x0a, 0xfa, 0xa4, 0xf0, 0xe7, 0x06, 0x1a, 0x5e, 0x54, 0xc7, 0x76, 0xe5,
- 0x00, 0x6a, 0xc7, 0x00, 0xaf, 0xe6, 0x1d, 0x48, 0xa4, 0x40, 0x1b, 0x05,
- 0x0a, 0xf8, 0xb2, 0xed, 0x9e, 0x19, 0x04, 0xa1, 0x4a, 0x71, 0xd7, 0xf4,
- 0xbd, 0x98, 0x50, 0x4e, 0x0e, 0x13, 0x3f, 0xb6, 0xe5, 0xa2, 0xc0, 0xf3,
- 0xac, 0xba, 0x66, 0xd4, 0x3c, 0x73, 0x97, 0x46, 0x19, 0x16, 0xd2, 0xc4,
- 0x63, 0x10, 0x4b, 0x92, 0x7f, 0x1d, 0xf0, 0xa5, 0x0a, 0xcf, 0xca, 0x92,
- 0x02, 0x18, 0xe2, 0x02, 0xde, 0x1c, 0x4c, 0x59, 0xac, 0x4c, 0xd3, 0xc2,
- 0xcc, 0x84, 0x39, 0xb1, 0x21, 0x96, 0x63, 0x36, 0x7b, 0x35, 0x2b, 0x97,
- 0xf5, 0xfd, 0x66, 0x22, 0xd5, 0x38, 0x84, 0xc0, 0xbe, 0x11, 0xdc, 0x09,
- 0x00, 0x38, 0x93, 0x9b, 0x65, 0xf1, 0x51, 0xef, 0x45, 0x02, 0xd6, 0xd7,
- 0xec, 0x5b, 0xec, 0x34, 0xb7, 0xe9, 0x7d, 0xec, 0x5f, 0xfd, 0xb6, 0xa3,
- 0xb3, 0x0c, 0x4f, 0x24, 0xdb, 0x79, 0x8f, 0x33, 0xf4, 0x5c, 0x14, 0x21,
- 0x66, 0xe5, 0x25, 0xad, 0xf0, 0x92, 0x6d, 0x90, 0xee, 0x0d, 0xe6, 0x8b,
- 0x55, 0x2f, 0xb9, 0x83, 0x19, 0x40, 0xde, 0xac, 0xc8, 0x95, 0x70, 0xe5,
- 0x34, 0x39, 0x06, 0xe2, 0x58, 0xdd, 0x98, 0x5e, 0xc3, 0x56, 0xaf, 0xf0,
- 0x33, 0xb3, 0x86, 0xc9, 0xb9, 0x99, 0xaf, 0x80, 0x06, 0x81, 0xa2, 0xae,
- 0xb6, 0xb9, 0xd4, 0x67, 0xe7, 0x94, 0x6b, 0xcd, 0x66, 0x9e, 0x03, 0x08,
- 0xcd, 0xe8, 0xf6, 0xc4, 0x5a, 0x93, 0x01, 0xa4, 0x84, 0x4d, 0x4b, 0xe4,
- 0x4b, 0xa8, 0xf5, 0x69, 0x3d, 0xc5, 0x44, 0x0b, 0x4e, 0xa4, 0x13, 0x14,
- 0x86, 0x57, 0x63, 0x9a, 0x7d, 0xed, 0xec, 0xe6, 0x0c, 0xce, 0x8c, 0x77,
- 0x7a, 0x69, 0x3e, 0x20, 0x04, 0x2c, 0x47, 0x38, 0xdd, 0x64, 0x1d, 0xa3,
- 0x8b, 0x73, 0xe5, 0x9d, 0x58, 0x89, 0x73, 0x08, 0xae, 0xc3, 0x4e, 0xf9,
- 0x67, 0xdb, 0xbb, 0x6d, 0x9c, 0xd5, 0xd5, 0xbd, 0x82, 0x56, 0xfb, 0x0b,
- 0x1d, 0xcb, 0xaa, 0x13, 0x81, 0xfc, 0xfa, 0x09, 0xfc, 0xac, 0x28, 0x6b,
- 0xc9, 0xea, 0xde, 0xe0, 0x12, 0x3f, 0x61, 0x8f, 0xd7, 0x20, 0xb2, 0x81,
- 0x5a, 0x66, 0x60, 0x36, 0xcb, 0xae, 0x79, 0xbc, 0x2f, 0x4f, 0x8f, 0xbf,
- 0x3f, 0x3e, 0x0d, 0x2e, 0xb7, 0x6f, 0x46, 0xa3, 0x9d, 0x8f, 0x59, 0x35,
- 0x46, 0xf1, 0x43, 0x1a, 0x1e, 0xf9, 0xd7, 0xe8, 0x49, 0x0b, 0x1a, 0xf2,
- 0x64, 0xbe, 0x96, 0xab, 0x82, 0x04, 0x86, 0x69, 0x15, 0x42, 0x10, 0xe4,
- 0x93, 0xc2, 0x1d, 0x8e, 0x3c, 0x16, 0x41, 0xa7, 0xe1, 0x06, 0x9b, 0x54,
- 0xd9, 0x94, 0x6b, 0x03, 0x86, 0xb8, 0x34, 0x70, 0x43, 0x24, 0xc9, 0x6b,
- 0x2c, 0x33, 0xc3, 0x93, 0x11, 0x19, 0xb1, 0x83, 0x08, 0xde, 0x58, 0x20,
- 0xff, 0x3a, 0x79, 0x2d, 0xdf, 0xac, 0xe9, 0x6c, 0xd0, 0x2c, 0x31, 0x31,
- 0x18, 0x1b, 0x13, 0x67, 0xdf, 0x0d, 0x0e, 0x47, 0x83, 0xd7, 0xc7, 0xa7,
- 0xc7, 0xdf, 0x1c, 0x5e, 0x1e, 0x33, 0x3d, 0xb6, 0x32, 0xe6, 0xae, 0x50,
- 0x94, 0xf4, 0x66, 0xfe, 0x4e, 0x26, 0x86, 0x6f, 0x6d, 0xe2, 0x58, 0xa7,
- 0xb2, 0xa8, 0x28, 0x7d, 0xe0, 0x78, 0x3b, 0x53, 0xb2, 0x5f, 0x9a, 0x56,
- 0x75, 0xd2, 0xee, 0x46, 0x37, 0xd7, 0x95, 0x74, 0x35, 0x18, 0x41, 0x3a,
- 0xbb, 0xa3, 0x02, 0x48, 0xef, 0x0b, 0xc2, 0x67, 0xe7, 0x36, 0x0f, 0x91,
- 0x47, 0xef, 0x4d, 0xbd, 0x37, 0xb3, 0xad, 0x05, 0x06, 0x91, 0x74, 0x5c,
- 0x63, 0xd1, 0x3c, 0x62, 0xc4, 0x25, 0x5f, 0xe3, 0xc1, 0x0e, 0x5f, 0xf5,
- 0xd0, 0x25, 0x12, 0x17, 0x8e, 0xcb, 0x3a, 0x42, 0x79, 0x81, 0x03, 0x53,
- 0x4f, 0x6e, 0xb2, 0xb9, 0x25, 0x73, 0xa2, 0xc0, 0x37, 0x02, 0xac, 0x9c,
- 0xb7, 0x27, 0xa4, 0x33, 0x90, 0x03, 0xe3, 0x0c, 0x86, 0x2f, 0x82, 0x3d,
- 0xb7, 0x81, 0xec, 0x07, 0x8a, 0x84, 0x58, 0xec, 0xc9, 0x7f, 0x4f, 0x38,
- 0x10, 0x24, 0xa7, 0x0e, 0x81, 0x58, 0x93, 0x60, 0x74, 0x3c, 0xfc, 0x2c,
- 0x55, 0xba, 0xba, 0x8a, 0x81, 0xe5, 0xc3, 0xf6, 0x18, 0x6d, 0x29, 0xea,
- 0x83, 0x1f, 0x41, 0x98, 0xaa, 0x5a, 0x4c, 0x3d, 0xfc, 0x35, 0xce, 0xa8,
- 0xae, 0x37, 0x0a, 0xbb, 0x8a, 0xc3, 0xa1, 0x95, 0x38, 0x42, 0xa3, 0x50,
- 0xe0, 0x35, 0x42, 0x63, 0xc9, 0x87, 0x17, 0xb4, 0xb0, 0x7c, 0x9c, 0x85,
- 0xaa, 0x9b, 0x17, 0xd2, 0xfe, 0x50, 0x08, 0xee, 0xd7, 0x06, 0x19, 0x3c,
- 0xa1, 0xd1, 0xa2, 0xc0, 0x27, 0xca, 0x71, 0xfd, 0x6b, 0x58, 0xa8, 0xc0,
- 0x66, 0x70, 0x0d, 0xb2, 0x45, 0xc0, 0x00, 0xbd, 0xf5, 0x46, 0x49, 0xdd,
- 0xad, 0x0e, 0xe8, 0x57, 0x35, 0xf2, 0x4a, 0x90, 0x1c, 0x9f, 0x5f, 0x70,
- 0x1d, 0xe3, 0x53, 0xfa, 0x8b, 0x04, 0x74, 0xea, 0x18, 0x87, 0x9a, 0x14,
- 0x95, 0x20, 0xa4, 0x43, 0x86, 0x88, 0x80, 0x8d, 0xd3, 0x2a, 0xc0, 0x8d,
- 0x31, 0x8d, 0xc2, 0xdc, 0x2d, 0x07, 0x22, 0x96, 0x10, 0xe9, 0xd5, 0x3e,
- 0x44, 0x57, 0xa8, 0x0f, 0x42, 0x73, 0x83, 0x5e, 0x30, 0x30, 0x53, 0x1d,
- 0xef, 0x67, 0xf4, 0x4b, 0x52, 0x0c, 0x65, 0x03, 0xad, 0x98, 0x46, 0x97,
- 0xa7, 0x43, 0x4d, 0xd2, 0x5b, 0x49, 0x85, 0xaa, 0x89, 0xa9, 0xe9, 0xc7,
- 0xd0, 0x8d, 0x93, 0x3f, 0xc1, 0x7e, 0x50, 0x50, 0x37, 0x86, 0x6e, 0x76,
- 0xe4, 0x3e, 0x5b, 0xdd, 0x5f, 0xf1, 0xce, 0x0c, 0xe6, 0xb4, 0x38, 0xee,
- 0xbe, 0x50, 0xdb, 0x70, 0xfe, 0x3d, 0x80, 0xe8, 0x65, 0xe1, 0x97, 0xeb,
- 0x69, 0xd9, 0x09, 0xb5, 0xa2, 0x9b, 0xb2, 0x7b, 0x89, 0xc8, 0xb2, 0xe2,
- 0x76, 0x25, 0x51, 0xaf, 0x14, 0xd4, 0xb8, 0x30, 0x41, 0xc6, 0xac, 0x69,
- 0x00, 0x29, 0x76, 0x93, 0x16, 0x91, 0x53, 0x67, 0x26, 0xde, 0x56, 0x1f,
- 0xc2, 0x40, 0x65, 0xd9, 0x22, 0xca, 0x36, 0xed, 0x8d, 0x2e, 0x35, 0x92,
- 0x31, 0xc8, 0x8c, 0x08, 0xcb, 0xc9, 0x5d, 0x2e, 0x5d, 0xe1, 0xc9, 0x21,
- 0x22, 0x1e, 0xdd, 0x6f, 0x65, 0x6c, 0x57, 0xb1, 0x7c, 0xf1, 0x9c, 0xf8,
- 0xad, 0x2d, 0xb8, 0x0a, 0x98, 0xa6, 0xa8, 0xa2, 0x1a, 0x69, 0x1b, 0x1e,
- 0x2b, 0x2b, 0xd5, 0xf2, 0x6c, 0xe7, 0x75, 0xb0, 0xde, 0xc9, 0x57, 0x7e,
- 0xd1, 0x05, 0x37, 0x64, 0x8c, 0xe5, 0x37, 0xdf, 0x46, 0x77, 0xc9, 0x63,
- 0x63, 0x03, 0x7d, 0xb4, 0x77, 0x82, 0xef, 0xbf, 0x46, 0xe7, 0xa0, 0x79,
- 0xe2, 0x0d, 0x1c, 0x7b, 0xe2, 0xaf, 0xb9, 0x16, 0x63, 0x4a, 0xf6, 0xf2,
- 0x38, 0x33, 0x5f, 0xcc, 0xa9, 0xdc, 0x94, 0x5f, 0xae, 0x2d, 0x80, 0xce,
- 0xd6, 0x66, 0xff, 0x4d, 0x6e, 0xd4, 0x9c, 0xa2, 0x17, 0xe7, 0xa4, 0x1c,
- 0x78, 0x65, 0xda, 0x38, 0xae, 0xcd, 0xfa, 0xc8, 0x39, 0x04, 0x04, 0x45,
- 0xc9, 0x80, 0x98, 0x0b, 0xa3, 0xcd, 0x66, 0x02, 0x27, 0x96, 0xaf, 0x47,
- 0x1f, 0x4d, 0xeb, 0xdb, 0xf8, 0x09, 0xaf, 0x6f, 0xa3, 0x27, 0x5c, 0xff,
- 0xc0, 0x49, 0xf7, 0x8a, 0xe7, 0xad, 0x3a, 0xeb, 0xa3, 0xef, 0x57, 0x70,
- 0x0e, 0x78, 0x27, 0x5c, 0x47, 0x87, 0xdd, 0xee, 0x9d, 0x71, 0x3e, 0xe4,
- 0xb2, 0x46, 0xf6, 0x98, 0xcb, 0x39, 0x8f, 0xba, 0xf2, 0xfd, 0x9a, 0x97,
- 0x7c, 0xce, 0xcd, 0xf7, 0xe5, 0x70, 0x9f, 0x1f, 0x8e, 0xbe, 0xef, 0x1c,
- 0x6b, 0xef, 0x20, 0xc7, 0x52, 0x9e, 0x51, 0x89, 0xae, 0x52, 0xee, 0x56,
- 0x6a, 0x2b, 0xba, 0xdf, 0xeb, 0xdb, 0xc7, 0xec, 0x77, 0xd3, 0x91, 0x60,
- 0xbf, 0x07, 0x73, 0xbc, 0x6e, 0xbf, 0xfb, 0x0b, 0xd5, 0xba, 0x81, 0xb2,
- 0xc4, 0xdf, 0xf1, 0x05, 0x57, 0xac, 0xbd, 0x41, 0xa5, 0xf5, 0x60, 0xab,
- 0x63, 0xa7, 0x53, 0x80, 0x0a, 0x5b, 0x3b, 0xc4, 0xa9, 0xa1, 0x9f, 0xbf,
- 0x66, 0xa3, 0xe3, 0x85, 0x60, 0x9f, 0xeb, 0x8a, 0xfe, 0xea, 0x8d, 0x2e,
- 0x07, 0x24, 0xd8, 0xe7, 0xb0, 0x5c, 0xcf, 0xfb, 0xde, 0x06, 0xf7, 0x76,
- 0xad, 0x9f, 0x5d, 0x1c, 0x99, 0x21, 0xcb, 0x57, 0xe1, 0x2e, 0x60, 0xc7,
- 0x16, 0x10, 0x61, 0xa7, 0xe8, 0xdb, 0x14, 0xce, 0x6a, 0x12, 0x7a, 0xde,
- 0x6d, 0x42, 0xb1, 0x0f, 0xa8, 0x87, 0xc5, 0x25, 0x10, 0x5c, 0x63, 0x03,
- 0xd1, 0xad, 0x0d, 0x2b, 0xde, 0x4f, 0x53, 0xf7, 0x4b, 0xc6, 0xb5, 0x39,
- 0x8b, 0xb4, 0x13, 0xb1, 0xa4, 0xe7, 0x3a, 0x23, 0xf8, 0x00, 0x48, 0xab,
- 0xba, 0xe7, 0x94, 0x14, 0x3d, 0x28, 0x04, 0xa4, 0xaa, 0x0c, 0xf2, 0x62,
- 0x10, 0x42, 0x6b, 0xdb, 0xd1, 0xcb, 0x06, 0x0c, 0xa7, 0x9e, 0xe5, 0x47,
- 0xe9, 0x6f, 0xa4, 0xec, 0x4a, 0x4c, 0x22, 0x4d, 0x24, 0xeb, 0x8e, 0xfc,
- 0xf7, 0xb8, 0x7a, 0x23, 0x79, 0x9a, 0x51, 0x96, 0xae, 0x76, 0xfd, 0x90,
- 0xa6, 0x6c, 0x39, 0xcd, 0x9e, 0x77, 0x98, 0x70, 0xa7, 0x45, 0x3d, 0x70,
- 0xb5, 0x90, 0x5f, 0xda, 0xbf, 0x06, 0x16, 0xc6, 0xeb, 0x77, 0xa3, 0x8e,
- 0x4a, 0x51, 0x67, 0x9c, 0x70, 0x70, 0x0d, 0xb9, 0x61, 0x7e, 0x6f, 0xf3,
- 0x84, 0x6a, 0x57, 0x7b, 0x4c, 0x9a, 0x0c, 0x2c, 0x1c, 0xfa, 0xc4, 0xb0,
- 0x93, 0x68, 0x29, 0xd9, 0xad, 0x28, 0xdf, 0x0d, 0x3f, 0x26, 0xf9, 0x92,
- 0xbc, 0xde, 0x49, 0xa6, 0x34, 0x79, 0x88, 0x62, 0x3c, 0x39, 0x7c, 0x41,
- 0x50, 0x3f, 0xb5, 0x0c, 0xaa, 0x10, 0x7a, 0x0b, 0x8b, 0x95, 0x2d, 0x9b,
- 0x54, 0x24, 0x5e, 0xf9, 0xe7, 0x58, 0xc4, 0x69, 0x4b, 0x78, 0x77, 0x04,
- 0x8a, 0xb4, 0x1d, 0x9d, 0x62, 0xa9, 0x7f, 0x2d, 0x53, 0xb8, 0xb8, 0x7d,
- 0x3a, 0xa0, 0xc7, 0x13, 0x35, 0x17, 0xf9, 0x87, 0xcf, 0xf1, 0xc3, 0x61,
- 0x77, 0xa2, 0x03, 0x1b, 0x5a, 0x6a, 0x15, 0x5a, 0xef, 0xe9, 0xb2, 0x98,
- 0x52, 0x15, 0x07, 0xea, 0xb6, 0x32, 0xf1, 0x13, 0xdb, 0x9e, 0x2b, 0x84,
- 0x62, 0x49, 0x75, 0xcc, 0x16, 0xea, 0x4e, 0xae, 0x51, 0x6e, 0xea, 0xd6,
- 0xa2, 0x3f, 0x79, 0x12, 0x59, 0x74, 0xdb, 0xe3, 0x97, 0x32, 0xcc, 0xf8,
- 0x92, 0x77, 0x2f, 0x17, 0x72, 0x9f, 0x41, 0x0a, 0xbc, 0xcc, 0x17, 0x03,
- 0x7d, 0x93, 0x2f, 0x90, 0x79, 0xfa, 0x51, 0x2e, 0xf6, 0xa7, 0xb4, 0x0c,
- 0x91, 0x41, 0x72, 0x69, 0x53, 0x3f, 0x60, 0x45, 0xdb, 0xc6, 0xee, 0x1a,
- 0xd1, 0xb5, 0x1a, 0xcb, 0xfb, 0x09, 0x52, 0x51, 0xfe, 0x46, 0x2c, 0x8f,
- 0x48, 0xa1, 0xbf, 0xbe, 0x2f, 0x46, 0x73, 0x06, 0xd0, 0x0b, 0xfb, 0xee,
- 0x83, 0xeb, 0xe7, 0xf6, 0xc3, 0xba, 0xf5, 0xd3, 0x39, 0xfb, 0x3f, 0x63,
- 0xfd, 0x9e, 0xff, 0x61, 0xeb, 0xf7, 0xfc, 0xff, 0x88, 0xf5, 0x7b, 0xfe,
- 0x8f, 0xaf, 0xdf, 0xd3, 0xee, 0xfa, 0x3d, 0xff, 0x3f, 0x65, 0xfd, 0xb4,
- 0x68, 0x97, 0xae, 0x5e, 0x16, 0xac, 0x1f, 0x9c, 0x38, 0x9c, 0x7d, 0x90,
- 0xd7, 0x52, 0x86, 0x9a, 0xa6, 0x5b, 0xdf, 0xe4, 0x80, 0x8a, 0x60, 0xe8,
- 0xd8, 0x63, 0xad, 0x50, 0x4e, 0x70, 0x17, 0xc4, 0xb9, 0x7f, 0xa5, 0x8e,
- 0x93, 0x32, 0xc6, 0x9d, 0x9c, 0x27, 0xb6, 0x03, 0xde, 0x32, 0x38, 0x9e,
- 0x26, 0xe8, 0x67, 0x51, 0x57, 0x72, 0x4d, 0xfe, 0x45, 0x33, 0x01, 0x9c,
- 0xb2, 0x57, 0xbb, 0x5c, 0xd3, 0x18, 0x11, 0x93, 0x99, 0xbc, 0x83, 0x97,
- 0x34, 0x5f, 0x03, 0x7e, 0xfc, 0xcb, 0x68, 0x02, 0x15, 0x6a, 0xa3, 0xba,
- 0x2e, 0xc5, 0xc2, 0x07, 0xde, 0xd4, 0x3d, 0x7a, 0xd9, 0x56, 0x95, 0x8f,
- 0xd2, 0x25, 0x9c, 0x0c, 0x1e, 0x5a, 0xb2, 0xd7, 0xd0, 0x6a, 0x96, 0xf3,
- 0x85, 0x24, 0x56, 0x3e, 0x90, 0x58, 0x06, 0x63, 0x71, 0x3b, 0xf9, 0x01,
- 0x59, 0x63, 0xec, 0x31, 0x96, 0x6c, 0x0b, 0xb5, 0x1f, 0x2d, 0xc0, 0x5c,
- 0xc3, 0x31, 0x2b, 0x18, 0xa0, 0xa2, 0x64, 0x3c, 0x9d, 0xb4, 0x69, 0xce,
- 0x08, 0x50, 0x2e, 0x69, 0x3a, 0xc9, 0x9e, 0x76, 0xa7, 0x9c, 0x97, 0xd8,
- 0x48, 0xf2, 0xd1, 0x28, 0x15, 0x31, 0x5d, 0x8b, 0x9c, 0x69, 0x42, 0x9d,
- 0x66, 0x2a, 0x35, 0xf3, 0xba, 0x69, 0x6a, 0x28, 0xe9, 0x26, 0x5e, 0x9d,
- 0x79, 0xed, 0x3d, 0xd8, 0x6d, 0x62, 0x10, 0x69, 0xd5, 0xc3, 0x60, 0xd3,
- 0x0a, 0x6f, 0x81, 0x25, 0xa6, 0x29, 0x6e, 0x35, 0xf9, 0x80, 0x20, 0x1d,
- 0xad, 0x2a, 0x1d, 0x83, 0x71, 0x98, 0x42, 0xa4, 0xf0, 0x54, 0x1e, 0xf1,
- 0xbf, 0x60, 0xff, 0xae, 0x00, 0xa7, 0xb3, 0x0e, 0xe1, 0xdb, 0xd0, 0xc1,
- 0x9a, 0xfb, 0xd0, 0xf7, 0xe1, 0xc6, 0x3a, 0x58, 0x2a, 0xe3, 0x1d, 0x6f,
- 0x32, 0x3f, 0x8d, 0xd3, 0x72, 0xe0, 0xb1, 0xa3, 0x9b, 0x1d, 0x09, 0x66,
- 0x70, 0x82, 0xce, 0x0b, 0x2a, 0x9e, 0x20, 0x53, 0x5b, 0x66, 0xab, 0x27,
- 0xcc, 0x32, 0x4b, 0xe1, 0xbe, 0x4c, 0x69, 0x43, 0x80, 0xfd, 0xe4, 0x9f,
- 0x98, 0x36, 0xe9, 0xa1, 0x55, 0x7d, 0x91, 0x94, 0x5d, 0x73, 0x8c, 0x77,
- 0x1d, 0x32, 0xb2, 0x43, 0x02, 0xc5, 0xdc, 0xad, 0x96, 0x06, 0x0a, 0x26,
- 0x66, 0xd1, 0x54, 0xe5, 0xe2, 0x3e, 0xf9, 0x26, 0xa5, 0x61, 0x41, 0x2d,
- 0x4c, 0xb3, 0x79, 0x90, 0x34, 0xc3, 0x15, 0x60, 0x45, 0x4b, 0xe3, 0x6a,
- 0xb0, 0x3a, 0x42, 0xe8, 0x95, 0x3c, 0x2d, 0x46, 0x2e, 0x9b, 0xf9, 0xa2,
- 0x80, 0x84, 0xc0, 0xd9, 0x19, 0x0e, 0x3a, 0x1a, 0x9d, 0x86, 0x86, 0x80,
- 0x56, 0x56, 0x59, 0x9b, 0x24, 0x8d, 0xd6, 0x06, 0x5d, 0xe7, 0xba, 0x34,
- 0xfe, 0x32, 0x7a, 0x98, 0x65, 0xdc, 0xd9, 0x4c, 0x79, 0x04, 0x94, 0xc8,
- 0x7a, 0x52, 0xdd, 0x2f, 0xc8, 0xb8, 0x94, 0xac, 0x40, 0x3e, 0x7b, 0xd4,
- 0x3f, 0x66, 0xa1, 0x5c, 0x9b, 0x87, 0xf9, 0xbe, 0xf6, 0xc8, 0x9c, 0x21,
- 0x88, 0xc9, 0xab, 0x40, 0xac, 0xac, 0x44, 0xb8, 0x23, 0x82, 0x99, 0x64,
- 0xd6, 0x14, 0x0c, 0x13, 0x8e, 0x24, 0x35, 0xa0, 0x51, 0x43, 0xdd, 0xa4,
- 0x0e, 0x3d, 0x3f, 0xbc, 0x10, 0x48, 0x33, 0x25, 0x0a, 0x78, 0x78, 0xe3,
- 0xb7, 0xf5, 0x62, 0x90, 0x37, 0x3a, 0x15, 0xbd, 0x55, 0x04, 0x5b, 0xf6,
- 0xf6, 0x94, 0x52, 0xce, 0x8b, 0x80, 0xde, 0x82, 0x43, 0xf9, 0x7b, 0xbb,
- 0xbb, 0x0f, 0xf2, 0x96, 0x88, 0xa9, 0xb3, 0x96, 0xbe, 0x84, 0x64, 0x14,
- 0xfb, 0xc7, 0x6d, 0x92, 0x6d, 0x9a, 0x4b, 0x22, 0x45, 0x97, 0xe9, 0xc9,
- 0x7c, 0xd2, 0xd2, 0x88, 0xb8, 0x23, 0xc8, 0xb2, 0x8e, 0xe9, 0x7d, 0x40,
- 0x62, 0x62, 0x44, 0xd8, 0x31, 0xfa, 0x58, 0x1f, 0xb4, 0xde, 0x89, 0x96,
- 0xb9, 0xa5, 0x0e, 0xd1, 0x4b, 0xa2, 0xbd, 0x0c, 0x93, 0xaf, 0xef, 0x9d,
- 0xd1, 0xe7, 0xf9, 0x3a, 0xd0, 0x2b, 0x9c, 0x30, 0xe9, 0xff, 0x70, 0x1d,
- 0x59, 0x4c, 0x9c, 0x9b, 0xe4, 0x5f, 0x58, 0xb0, 0xa0, 0x59, 0x23, 0x80,
- 0x16, 0x35, 0x5a, 0x05, 0xc5, 0x41, 0xdc, 0xdb, 0x61, 0x47, 0x9b, 0xd6,
- 0x41, 0x95, 0x17, 0xaf, 0x60, 0x0b, 0x5f, 0x2a, 0x6b, 0x09, 0x65, 0xdb,
- 0x4c, 0x33, 0x6d, 0xb4, 0xe1, 0x67, 0x6d, 0xb5, 0x84, 0x72, 0x3d, 0x07,
- 0xc8, 0xe8, 0xec, 0xa6, 0xb1, 0x53, 0x12, 0x28, 0xc9, 0x2e, 0xd8, 0xa8,
- 0x65, 0xe1, 0x19, 0xef, 0xc4, 0x70, 0xc4, 0xf0, 0x0e, 0xcd, 0x01, 0xe9,
- 0x10, 0x68, 0xfa, 0x82, 0x55, 0xa9, 0xbf, 0xf5, 0xa4, 0x4f, 0x4b, 0x8f,
- 0x4f, 0xc7, 0xa6, 0xfd, 0x74, 0xbc, 0x00, 0xec, 0x06, 0x88, 0xb0, 0x6b,
- 0xf1, 0xf2, 0xf8, 0xde, 0x64, 0xc9, 0x5e, 0x45, 0x18, 0x1c, 0xaa, 0x04,
- 0xeb, 0x1e, 0xef, 0x2f, 0x4e, 0xfb, 0x89, 0x54, 0x48, 0x26, 0x20, 0xab,
- 0x59, 0xe9, 0xb8, 0x6e, 0xe4, 0x9c, 0xc8, 0xcc, 0xed, 0xc7, 0x63, 0xa9,
- 0x1d, 0x49, 0x15, 0x89, 0x6d, 0x38, 0x6e, 0x4d, 0x93, 0xb5, 0x22, 0x7f,
- 0x42, 0x77, 0x9a, 0x97, 0x32, 0x6a, 0x1e, 0x24, 0xd6, 0x8c, 0x7a, 0x09,
- 0xe7, 0xa7, 0x76, 0xda, 0xf2, 0x42, 0xc9, 0xb3, 0x92, 0x4e, 0x4b, 0x8e,
- 0x96, 0x48, 0x4e, 0xae, 0x84, 0x58, 0x89, 0x52, 0x2e, 0xc1, 0xf2, 0x20,
- 0x2b, 0x77, 0x59, 0x79, 0x81, 0xd6, 0xde, 0x4d, 0x6e, 0xd6, 0xb5, 0xe8,
- 0xe1, 0x3e, 0xad, 0x97, 0x63, 0xa6, 0x42, 0x6c, 0xf0, 0xe1, 0x18, 0xec,
- 0x99, 0x70, 0x83, 0xce, 0xb9, 0x17, 0x2f, 0x7f, 0xdc, 0x8a, 0xa7, 0xf4,
- 0x93, 0xd6, 0xa1, 0x50, 0x85, 0x93, 0xbb, 0xe6, 0x32, 0x82, 0xa3, 0x75,
- 0x44, 0x78, 0xa7, 0xb8, 0x24, 0x21, 0x3a, 0xfd, 0x28, 0x0f, 0xd4, 0xf7,
- 0x6b, 0x73, 0x38, 0x04, 0x47, 0x3a, 0x27, 0x1f, 0x00, 0x2b, 0xbc, 0x34,
- 0xd1, 0x71, 0x75, 0xa5, 0xb2, 0x3c, 0x12, 0x11, 0x4e, 0x53, 0xc1, 0x70,
- 0xa5, 0xf7, 0xc8, 0x86, 0xb0, 0x9f, 0xc6, 0x0e, 0x0f, 0x88, 0xa9, 0x88,
- 0xa4, 0xad, 0x84, 0xee, 0x28, 0x7b, 0x99, 0x38, 0xff, 0x26, 0x55, 0xbe,
- 0x68, 0x38, 0xac, 0x2d, 0x40, 0xda, 0x87, 0xd4, 0xb0, 0xeb, 0x59, 0x39,
- 0x4e, 0xf9, 0x9c, 0x58, 0x10, 0x8b, 0xba, 0xcc, 0x5a, 0x84, 0xa9, 0xe0,
- 0xf7, 0x36, 0xdb, 0x33, 0x92, 0x80, 0x64, 0x86, 0x3c, 0x38, 0x40, 0xd5,
- 0x6a, 0x0a, 0xa6, 0xad, 0xfb, 0xa0, 0xfd, 0x04, 0xd3, 0x92, 0x0d, 0xae,
- 0xfa, 0x72, 0x82, 0xb5, 0x16, 0x21, 0x30, 0x40, 0xb5, 0x77, 0xae, 0x02,
- 0x55, 0x08, 0xb9, 0xdd, 0xd3, 0x65, 0xd6, 0x86, 0x04, 0x6d, 0x4a, 0xa8,
- 0x51, 0xea, 0x6a, 0x01, 0x96, 0x02, 0xa2, 0x74, 0x90, 0xac, 0x72, 0x48,
- 0x2f, 0x0a, 0x77, 0x21, 0x82, 0x52, 0x81, 0xa7, 0xb8, 0x4a, 0xee, 0x05,
- 0xdd, 0x4c, 0xae, 0x73, 0x8a, 0xb4, 0xf4, 0xe6, 0x8a, 0xb3, 0xbd, 0xab,
- 0xa0, 0x18, 0xf9, 0x15, 0xeb, 0x69, 0xf0, 0x7f, 0xf1, 0x9a, 0xac, 0x99,
- 0x19, 0x9f, 0xea, 0x78, 0xbf, 0x25, 0xd5, 0xec, 0xa7, 0xe3, 0x57, 0x14,
- 0x44, 0x5b, 0x4d, 0xba, 0x3c, 0x39, 0x88, 0xb7, 0xcc, 0x66, 0x91, 0xac,
- 0x9c, 0x14, 0xb1, 0x6b, 0x70, 0xf6, 0x29, 0xbd, 0x30, 0x4b, 0x83, 0x78,
- 0x30, 0x8f, 0x4e, 0x0a, 0x81, 0x99, 0x66, 0xf7, 0x5c, 0x8c, 0x1d, 0x6b,
- 0x0e, 0x2d, 0x54, 0x9c, 0xce, 0xba, 0xa1, 0xb2, 0x66, 0xe2, 0xfd, 0x72,
- 0x9a, 0xa5, 0xb3, 0x18, 0x65, 0x3f, 0x75, 0x98, 0x9c, 0x80, 0x2c, 0xdc,
- 0x88, 0xbb, 0xa1, 0x10, 0xa7, 0xbb, 0xe0, 0x69, 0x19, 0x4e, 0x56, 0x48,
- 0xb6, 0xaa, 0xf6, 0x10, 0xa7, 0x2a, 0x62, 0xe8, 0x50, 0x11, 0x11, 0x3c,
- 0x80, 0xbc, 0xc6, 0x89, 0xe4, 0x4b, 0x43, 0x8a, 0xba, 0xd4, 0x00, 0xe8,
- 0xff, 0x6f, 0x4f, 0xed, 0x03, 0xd8, 0x01, 0x08, 0x01, 0x77, 0x9b, 0x13,
- 0x47, 0x1c, 0xe7, 0xab, 0xe1, 0xa2, 0x51, 0x88, 0x3e, 0x75, 0x8c, 0x61,
- 0x14, 0x24, 0x26, 0xb7, 0xe5, 0x1c, 0x72, 0xb0, 0x9e, 0x25, 0xc7, 0x22,
- 0x5c, 0xe9, 0xdb, 0x4c, 0x21, 0x30, 0xb0, 0x2f, 0x78, 0x01, 0x1a, 0x9b,
- 0xc6, 0x47, 0xad, 0x89, 0x9c, 0x61, 0x21, 0xb3, 0xbf, 0xbf, 0x82, 0xd2,
- 0x41, 0xea, 0x36, 0xcb, 0x1e, 0xc3, 0x61, 0xaf, 0xd3, 0x2b, 0x5b, 0x52,
- 0x5d, 0x04, 0x78, 0x39, 0x31, 0x53, 0x88, 0x28, 0x1f, 0x98, 0x52, 0x48,
- 0x43, 0x0a, 0x82, 0x80, 0x2c, 0xae, 0x49, 0x4a, 0xda, 0x6b, 0x97, 0x0e,
- 0x82, 0xc2, 0x42, 0xeb, 0x59, 0xbe, 0xb0, 0x3e, 0xce, 0x3e, 0x31, 0xd0,
- 0x32, 0x3c, 0x85, 0x22, 0x22, 0x77, 0x21, 0xdb, 0x62, 0xa7, 0xbc, 0xb4,
- 0x10, 0x73, 0xce, 0x48, 0xfd, 0xdf, 0xea, 0xb4, 0xff, 0x74, 0x77, 0x0f,
- 0xdd, 0x7d, 0xba, 0xfb, 0xd9, 0x76, 0xfb, 0x6e, 0x9e, 0xd5, 0xd9, 0x00,
- 0xf8, 0xa4, 0xb8, 0x8e, 0x7a, 0xd9, 0xf1, 0x27, 0x43, 0x1f, 0xa5, 0x97,
- 0x04, 0xd4, 0x34, 0x5d, 0x56, 0x8a, 0xf4, 0xa3, 0x5a, 0x6a, 0x64, 0x33,
- 0xd6, 0x37, 0xc4, 0x07, 0x17, 0xdc, 0xf5, 0xee, 0x1d, 0x86, 0x45, 0xd0,
- 0xad, 0xc4, 0x33, 0x65, 0x76, 0x0f, 0xbd, 0x6b, 0x8b, 0x6f, 0xc9, 0x64,
- 0x30, 0x68, 0x8a, 0x2c, 0xc6, 0x90, 0x9b, 0xd7, 0x27, 0xc1, 0xe2, 0xe4,
- 0x0a, 0x0e, 0x00, 0xb5, 0x0b, 0xa0, 0x5a, 0xc9, 0xf3, 0x26, 0x2f, 0xf2,
- 0xfa, 0x06, 0x85, 0x53, 0xeb, 0x3a, 0xbd, 0xce, 0xc2, 0xf4, 0x5b, 0x23,
- 0x92, 0x8c, 0xe1, 0xc4, 0xd5, 0xbc, 0x2a, 0x70, 0x63, 0x13, 0xc6, 0x88,
- 0xcf, 0x83, 0xa4, 0x27, 0x48, 0xa9, 0xaf, 0x25, 0x42, 0x2c, 0x76, 0x98,
- 0xb1, 0x1d, 0x93, 0xd7, 0x5e, 0x1d, 0xba, 0x55, 0x65, 0xe8, 0xa8, 0x28,
- 0x12, 0x98, 0x7b, 0xb8, 0x44, 0x09, 0xd7, 0x28, 0x09, 0x90, 0x88, 0xe4,
- 0x47, 0xd8, 0xa2, 0xc5, 0x3d, 0x1b, 0x19, 0x21, 0xe4, 0x6a, 0xa6, 0x02,
- 0xed, 0x65, 0x7e, 0xf6, 0xa3, 0xd1, 0x48, 0x87, 0x2f, 0xec, 0x8f, 0xb7,
- 0x1f, 0x57, 0xb7, 0x6e, 0xbf, 0xa3, 0xa1, 0x11, 0xec, 0x52, 0xdc, 0xd9,
- 0x30, 0x58, 0x5e, 0xf1, 0x3f, 0x56, 0x38, 0x21, 0x90, 0x0d, 0x97, 0x9c,
- 0xbc, 0x3d, 0x04, 0xd3, 0x8d, 0xe3, 0x9e, 0xf5, 0xe1, 0x49, 0x7e, 0xf6,
- 0x10, 0x8a, 0xf8, 0x91, 0xc2, 0x1a, 0xa5, 0x1e, 0xb3, 0x6c, 0xa1, 0x0c,
- 0x16, 0x6b, 0x91, 0x41, 0x73, 0x58, 0x67, 0x46, 0x75, 0x8a, 0xe8, 0x14,
- 0x18, 0x19, 0x79, 0x9a, 0x71, 0xb9, 0x8e, 0x64, 0xf3, 0xab, 0xcd, 0x48,
- 0x9e, 0xd1, 0xe6, 0x4b, 0x8f, 0xf8, 0xb8, 0x76, 0xf5, 0x80, 0x36, 0xbf,
- 0x20, 0xfc, 0x29, 0x91, 0x3d, 0xf0, 0x37, 0x65, 0x0d, 0x18, 0x4a, 0x29,
- 0x01, 0xb3, 0x15, 0xe9, 0x38, 0xc2, 0x5c, 0xd6, 0x86, 0xa0, 0x70, 0x29,
- 0x5e, 0x62, 0x85, 0xee, 0x8c, 0x5b, 0x75, 0xba, 0xcd, 0x80, 0xca, 0x87,
- 0x20, 0xda, 0x4c, 0x22, 0x22, 0x15, 0x6b, 0x5d, 0x35, 0x45, 0xee, 0x13,
- 0x77, 0x06, 0xee, 0xae, 0xc9, 0x24, 0x27, 0xdd, 0x05, 0x27, 0xdf, 0xfc,
- 0xf2, 0xfa, 0x3a, 0x8a, 0x93, 0x31, 0x53, 0x40, 0x0b, 0x4f, 0x63, 0xbe,
- 0xca, 0xd2, 0x06, 0x1a, 0x07, 0xdd, 0xf4, 0xab, 0x71, 0xb2, 0x4e, 0x83,
- 0x8f, 0x3c, 0xe3, 0x8d, 0xe2, 0xa5, 0x9f, 0x8d, 0x10, 0xdf, 0x05, 0xd8,
- 0x04, 0xbc, 0x07, 0x88, 0x6b, 0x10, 0x3f, 0xb3, 0x5e, 0xa8, 0xab, 0xd4,
- 0x6c, 0x8a, 0x7b, 0x89, 0x4d, 0xce, 0x80, 0x1a, 0x67, 0x09, 0x92, 0xcd,
- 0x97, 0xdd, 0x2d, 0x3e, 0x53, 0x14, 0x26, 0x83, 0x95, 0xa9, 0xa4, 0x01,
- 0xe3, 0x5a, 0x13, 0xa6, 0x00, 0x27, 0xf6, 0x34, 0x8b, 0x6f, 0x4e, 0x94,
- 0xd3, 0xdf, 0xc1, 0x96, 0x83, 0x32, 0xe5, 0x1e, 0x88, 0x59, 0x94, 0x15,
- 0xb5, 0x04, 0x81, 0xc3, 0x16, 0xa8, 0xbd, 0xef, 0x1d, 0x3a, 0x12, 0x8c,
- 0xf2, 0x65, 0x88, 0x51, 0x66, 0x43, 0xc2, 0x48, 0xa2, 0x1d, 0x1c, 0x12,
- 0x06, 0x8f, 0x4f, 0x88, 0x62, 0x03, 0x42, 0xa6, 0x4c, 0xa8, 0x56, 0xd4,
- 0xfe, 0x93, 0xcf, 0x3f, 0x1f, 0x46, 0x19, 0x18, 0x39, 0x71, 0xd4, 0x6c,
- 0x42, 0x9a, 0x29, 0xc7, 0xd6, 0xd7, 0xb7, 0xbc, 0xab, 0xf4, 0x7d, 0xda,
- 0x61, 0xcc, 0x7b, 0x3e, 0x27, 0x6a, 0x15, 0x12, 0x8e, 0xcb, 0x59, 0x68,
- 0xe4, 0x23, 0x76, 0x35, 0x27, 0xc5, 0x42, 0xa4, 0x18, 0x14, 0x2c, 0x92,
- 0x1a, 0xf3, 0x7c, 0x85, 0x52, 0x97, 0x09, 0xc8, 0x8b, 0xf1, 0x80, 0xc2,
- 0x58, 0x26, 0xa0, 0x44, 0x46, 0x78, 0x1a, 0xbd, 0x01, 0x70, 0x66, 0x06,
- 0x0e, 0xf0, 0x74, 0x6c, 0x46, 0xd2, 0x44, 0x69, 0x7e, 0x36, 0x13, 0x0d,
- 0x9f, 0x8d, 0x33, 0x9b, 0xf9, 0xcd, 0x05, 0x80, 0x3a, 0xec, 0x1c, 0x9c,
- 0xcc, 0x5a, 0x50, 0x06, 0x10, 0x71, 0xed, 0x9b, 0x0f, 0x74, 0x9a, 0x43,
- 0xee, 0xe6, 0x75, 0xd6, 0x84, 0x59, 0x2b, 0x1e, 0x7c, 0x74, 0x4d, 0xe3,
- 0x31, 0xcb, 0x48, 0x92, 0x6e, 0x92, 0x97, 0xe2, 0x8b, 0x4e, 0xa6, 0xf9,
- 0x95, 0x1e, 0x52, 0xcb, 0x4f, 0xff, 0x15, 0x56, 0xe3, 0xa5, 0x4c, 0xbd,
- 0x24, 0xa1, 0x7d, 0x15, 0xa5, 0x5e, 0x12, 0x0c, 0x2b, 0x78, 0x80, 0x9a,
- 0xc6, 0x28, 0xd6, 0x4e, 0x76, 0x03, 0x30, 0x0c, 0xca, 0x17, 0x81, 0xb4,
- 0xf2, 0x04, 0x33, 0xf0, 0x6f, 0x16, 0xe3, 0x44, 0x7c, 0x69, 0x1b, 0x95,
- 0x62, 0x0b, 0x84, 0xd9, 0xa6, 0xae, 0xc4, 0x66, 0x42, 0x19, 0x94, 0x49,
- 0x3e, 0x98, 0xa7, 0x03, 0xbb, 0x87, 0xde, 0xf5, 0xe6, 0x29, 0x5c, 0x7b,
- 0x3f, 0x9e, 0x2a, 0xb9, 0xfe, 0x3c, 0xc5, 0x0e, 0xeb, 0xeb, 0x3b, 0xf7,
- 0x65, 0xa4, 0xd6, 0x69, 0xda, 0x75, 0x95, 0xd2, 0x50, 0x5d, 0x8e, 0x29,
- 0x76, 0xd6, 0x75, 0x99, 0x71, 0x2f, 0x91, 0xf0, 0xaf, 0xb3, 0x4a, 0x1e,
- 0xcb, 0xa6, 0x5a, 0x4e, 0x48, 0xb5, 0x84, 0x69, 0x8e, 0x4f, 0xc5, 0x8a,
- 0x02, 0x49, 0x09, 0x32, 0x37, 0x62, 0x94, 0xee, 0xc2, 0x7a, 0x61, 0x96,
- 0x95, 0xa7, 0x4c, 0x30, 0x1f, 0xd4, 0x35, 0xd5, 0x41, 0x56, 0x91, 0x21,
- 0x83, 0xf1, 0x8c, 0x90, 0x56, 0x7f, 0x97, 0x70, 0x8d, 0x92, 0xd8, 0xa6,
- 0x4a, 0xde, 0x04, 0x6f, 0x47, 0x46, 0x8c, 0xe2, 0xc9, 0x6b, 0xaa, 0x79,
- 0x18, 0x8b, 0x7f, 0xd3, 0x26, 0xdc, 0xac, 0x5b, 0x50, 0x66, 0xbe, 0x98,
- 0x48, 0x9f, 0xab, 0xb2, 0xeb, 0x25, 0x5d, 0x76, 0x98, 0xae, 0x2d, 0x65,
- 0x76, 0xd4, 0x27, 0x92, 0x45, 0x1e, 0xc8, 0x0f, 0x12, 0x02, 0x62, 0xe8,
- 0x71, 0x35, 0xc3, 0x65, 0x61, 0x66, 0xad, 0x59, 0x52, 0x38, 0x6b, 0xc6,
- 0x28, 0x2f, 0x23, 0xc6, 0xfe, 0x0a, 0x3f, 0x60, 0x29, 0x33, 0xc0, 0x95,
- 0x01, 0xa6, 0xb1, 0x0c, 0x0c, 0xa2, 0x9b, 0x44, 0x40, 0xda, 0xe8, 0xdd,
- 0x60, 0x5b, 0x22, 0x4c, 0x42, 0xa3, 0x52, 0x80, 0x6b, 0x5d, 0x91, 0x4f,
- 0xe6, 0x0b, 0x8a, 0x77, 0x4d, 0x38, 0x48, 0x00, 0x8d, 0x05, 0xb3, 0x12,
- 0xe2, 0x11, 0x0b, 0x50, 0xb5, 0x25, 0xaa, 0x3e, 0xf9, 0x0c, 0x7e, 0xac,
- 0x80, 0x51, 0x5c, 0x8e, 0x86, 0xc9, 0xc9, 0x2c, 0xc2, 0x4a, 0x92, 0xd6,
- 0x0c, 0x96, 0xaf, 0xc3, 0x1a, 0xc8, 0xb8, 0x07, 0x58, 0xb5, 0xfe, 0xab,
- 0xb5, 0x7a, 0x49, 0xf8, 0x45, 0xf8, 0x5d, 0xc0, 0x68, 0x79, 0xc0, 0x01,
- 0x7f, 0x54, 0xd5, 0x12, 0x99, 0xa6, 0xf6, 0x87, 0x26, 0xc3, 0xb0, 0x96,
- 0xb8, 0x69, 0xa4, 0x27, 0xcd, 0xfb, 0xa6, 0x9c, 0xdd, 0x18, 0xa9, 0x88,
- 0x33, 0xf6, 0x21, 0xad, 0xf9, 0xa4, 0x58, 0x0e, 0x3e, 0x2b, 0x46, 0x48,
- 0xab, 0xaa, 0x52, 0x23, 0x34, 0xff, 0xba, 0xb8, 0x5e, 0x41, 0xf7, 0xc6,
- 0x85, 0x3b, 0x8c, 0xc1, 0x10, 0x96, 0x0b, 0xc2, 0x3e, 0x1c, 0xbc, 0x49,
- 0xa4, 0x3f, 0xaf, 0xbe, 0x6a, 0x35, 0xa7, 0xac, 0xfa, 0x3e, 0x69, 0xb4,
- 0x10, 0x10, 0x4c, 0xae, 0xf3, 0x07, 0x26, 0x81, 0x19, 0xd7, 0x2d, 0x2c,
- 0xb5, 0xbe, 0x29, 0x33, 0x59, 0xb9, 0x02, 0x76, 0xb0, 0x2d, 0x04, 0x63,
- 0xc6, 0x55, 0x47, 0xe9, 0xfe, 0x55, 0xe9, 0x5d, 0xdd, 0x6d, 0x5c, 0xed,
- 0xff, 0x59, 0xde, 0x14, 0xf4, 0x0f, 0xfa, 0x02, 0x7d, 0xe0, 0xd5, 0xde,
- 0x5e, 0xb4, 0xe7, 0x2b, 0xfb, 0xcb, 0x1d, 0xd6, 0x1e, 0xd3, 0x7d, 0x24,
- 0x40, 0x43, 0x4f, 0xbc, 0xb5, 0xec, 0xff, 0x21, 0x72, 0xa4, 0x42, 0x7f,
- 0x1b, 0xce, 0x0f, 0x08, 0x93, 0xbc, 0x57, 0x19, 0xc3, 0x15, 0x48, 0x45,
- 0xf6, 0xd4, 0x93, 0x79, 0x29, 0x19, 0x05, 0x5d, 0x55, 0x02, 0xcc, 0x1c,
- 0xb4, 0x28, 0xab, 0x87, 0xdf, 0xa3, 0x48, 0xcd, 0xfd, 0xab, 0x97, 0x37,
- 0xcb, 0xeb, 0x0c, 0xc2, 0xb3, 0xf9, 0xd4, 0xf4, 0x1e, 0x35, 0x76, 0x57,
- 0xd5, 0x8d, 0x43, 0xc4, 0x8d, 0x17, 0x01, 0x67, 0xda, 0x19, 0x5f, 0x8f,
- 0x60, 0xcf, 0x21, 0x99, 0x4b, 0x5a, 0x19, 0xbc, 0x9b, 0x47, 0xc2, 0x1a,
- 0x69, 0x9f, 0xa7, 0x4d, 0xd2, 0xf2, 0x5d, 0x72, 0xf5, 0x9a, 0x11, 0xdc,
- 0x65, 0xe3, 0x57, 0x5f, 0x91, 0x8b, 0xeb, 0x13, 0xe8, 0xcd, 0x59, 0xb5,
- 0xa5, 0xc9, 0xdb, 0x01, 0xdb, 0x79, 0xe2, 0x0d, 0x62, 0x23, 0x10, 0x47,
- 0xab, 0x9b, 0xf5, 0xf2, 0x5a, 0xbc, 0x26, 0xaf, 0xca, 0x72, 0x6d, 0x8b,
- 0xea, 0xc2, 0xc1, 0x9c, 0x78, 0xa0, 0x38, 0x86, 0x8a, 0xb9, 0x9c, 0x3d,
- 0xde, 0x12, 0xb8, 0x6c, 0x5a, 0x77, 0x66, 0x2c, 0x8d, 0x9a, 0x1c, 0x65,
- 0x52, 0x5b, 0x59, 0xaf, 0x9d, 0x57, 0x7d, 0x4e, 0x1b, 0x89, 0x16, 0xb4,
- 0x70, 0x63, 0xe0, 0x03, 0x89, 0x7d, 0x40, 0x7f, 0xfd, 0xc2, 0xbe, 0x4e,
- 0xff, 0x31, 0xe7, 0x19, 0x84, 0xc1, 0x6b, 0x46, 0x43, 0x58, 0x32, 0x7d,
- 0x67, 0x07, 0x91, 0x28, 0x5b, 0xfc, 0x74, 0xb3, 0xcf, 0xda, 0xf6, 0x17,
- 0x9b, 0xf0, 0xe7, 0x2a, 0xec, 0x07, 0xb5, 0x64, 0x20, 0xe5, 0xa6, 0x65,
- 0xa0, 0xdb, 0x12, 0xaa, 0x8f, 0x8b, 0xcd, 0xa0, 0xf7, 0x2b, 0x3a, 0x4e,
- 0x3d, 0xd7, 0xae, 0xff, 0xdc, 0xb3, 0x9d, 0xff, 0xb9, 0xe7, 0xba, 0xff,
- 0x73, 0xcf, 0x0d, 0xe0, 0xe7, 0x1e, 0x71, 0xe5, 0xd1, 0x20, 0x02, 0x6b,
- 0xf1, 0x57, 0x2f, 0xfa, 0x26, 0x7f, 0xd5, 0x7d, 0xd4, 0xfb, 0xa6, 0xf7,
- 0xc9, 0xde, 0xe6, 0xba, 0x49, 0xf3, 0xc3, 0x44, 0x44, 0x2d, 0x93, 0x76,
- 0xe7, 0xd0, 0x08, 0xec, 0xd6, 0x34, 0xb9, 0x69, 0x21, 0x0b, 0x2d, 0xf0,
- 0x9a, 0x7b, 0x0f, 0xd0, 0x8c, 0xbb, 0xc2, 0x39, 0x1e, 0x27, 0xbc, 0xa5,
- 0xda, 0xd3, 0x75, 0xd0, 0x3a, 0xb4, 0x41, 0x39, 0x48, 0xfb, 0x7a, 0x70,
- 0x03, 0xfd, 0x0f, 0xf3, 0x05, 0x18, 0x01, 0x68, 0x43, 0x4e, 0x35, 0xf8,
- 0x35, 0x04, 0xe1, 0x05, 0xf0, 0x6d, 0xc1, 0x01, 0x4c, 0xbe, 0x00, 0xaf,
- 0x38, 0x67, 0x85, 0xb7, 0x44, 0x80, 0xc9, 0x9e, 0xe7, 0xa8, 0x98, 0x64,
- 0x46, 0x35, 0x63, 0x33, 0x75, 0x87, 0xee, 0x05, 0x60, 0x28, 0x51, 0xc6,
- 0xa8, 0x86, 0x9d, 0x2e, 0x16, 0xac, 0x14, 0x23, 0xe2, 0x79, 0x58, 0xbd,
- 0xa5, 0x49, 0x1b, 0x9f, 0x95, 0x55, 0xfd, 0xaa, 0x57, 0x51, 0x09, 0xca,
- 0xe4, 0xba, 0x32, 0x6a, 0xec, 0x17, 0xb4, 0xb5, 0x96, 0x66, 0xb1, 0xdc,
- 0x39, 0xfd, 0x34, 0x98, 0xdf, 0x9b, 0x7e, 0x6f, 0xfe, 0xaa, 0x9d, 0xe1,
- 0x89, 0xb4, 0x29, 0xe2, 0xe8, 0x46, 0x38, 0xce, 0x93, 0x2e, 0x88, 0x80,
- 0x8f, 0xae, 0x77, 0x28, 0xe5, 0xf7, 0xaf, 0x62, 0x4c, 0x5c, 0xc1, 0x40,
- 0x3c, 0xc9, 0x0b, 0x7b, 0xed, 0xd5, 0xd9, 0x77, 0x5f, 0x68, 0x03, 0x3f,
- 0xf7, 0x7e, 0x1c, 0xf0, 0x4f, 0x91, 0x1f, 0x7a, 0x90, 0x9c, 0x7d, 0x47,
- 0xbb, 0xfb, 0xd7, 0x09, 0xb0, 0x75, 0x1f, 0xf8, 0x8a, 0xff, 0x82, 0x9d,
- 0xbd, 0xae, 0xd9, 0x4b, 0x07, 0x3e, 0x78, 0x45, 0xc5, 0x54, 0x91, 0xae,
- 0x02, 0x53, 0x7c, 0xb1, 0xa0, 0x24, 0x14, 0xcd, 0x87, 0x6c, 0x38, 0x1f,
- 0x92, 0xb5, 0xcb, 0x71, 0xc9, 0x90, 0xf2, 0x26, 0xe4, 0xed, 0x05, 0x6f,
- 0x28, 0xd6, 0x96, 0xf3, 0xb3, 0xcd, 0x86, 0x22, 0xef, 0x05, 0x74, 0x62,
- 0x9d, 0x5d, 0x72, 0x1a, 0x42, 0x81, 0x6b, 0x99, 0x3c, 0xc7, 0x11, 0x8e,
- 0x76, 0xc7, 0xbd, 0xc2, 0x7f, 0x83, 0x66, 0x66, 0xeb, 0x04, 0x53, 0xb1,
- 0xa7, 0xb4, 0xca, 0xb4, 0x80, 0x87, 0x94, 0x16, 0xe3, 0x2a, 0x52, 0x5f,
- 0xc4, 0x22, 0x02, 0x12, 0xa8, 0x14, 0x40, 0xf3, 0x55, 0x39, 0x93, 0x8a,
- 0xd2, 0xb5, 0xd9, 0xf5, 0xbc, 0xc0, 0xb6, 0x9a, 0x97, 0xd1, 0x39, 0x68,
- 0x2a, 0x24, 0x60, 0x21, 0x9f, 0x8d, 0x28, 0x1d, 0x12, 0x58, 0x64, 0x87,
- 0x1c, 0x88, 0xbb, 0x84, 0xcf, 0x88, 0x37, 0xfe, 0x17, 0x64, 0xf9, 0x8f,
- 0x33, 0x78, 0xa0, 0x6c, 0xc6, 0xdf, 0x40, 0x7c, 0xc4, 0x11, 0x37, 0x4e,
- 0x62, 0xcf, 0x8d, 0x1e, 0x1c, 0x46, 0x44, 0x68, 0xe2, 0x1f, 0x11, 0xdd,
- 0x7c, 0x4b, 0x4a, 0xa1, 0xc0, 0xa1, 0xb5, 0xf0, 0x06, 0x5d, 0x2f, 0xf1,
- 0xc1, 0xe2, 0x0c, 0xab, 0x22, 0x11, 0x9e, 0xb6, 0xe4, 0x4f, 0xe2, 0x52,
- 0xd6, 0xc7, 0x52, 0xd1, 0xb8, 0x64, 0xb1, 0x86, 0xc1, 0x0b, 0x3f, 0x0a,
- 0x64, 0x67, 0xb0, 0x77, 0xe0, 0x15, 0x51, 0xe1, 0x9f, 0xc5, 0x9b, 0xf7,
- 0x79, 0x3f, 0x34, 0x56, 0x5c, 0xcb, 0xf4, 0xaf, 0x69, 0x7f, 0xdf, 0xb6,
- 0xbf, 0x11, 0xa1, 0xda, 0x60, 0x32, 0x8c, 0xf8, 0x67, 0x89, 0x91, 0x51,
- 0xd1, 0x64, 0xe2, 0x46, 0xf5, 0x1c, 0x1a, 0x09, 0xfb, 0x12, 0xd4, 0x99,
- 0x60, 0xcb, 0xa1, 0x31, 0x17, 0x47, 0xa4, 0x78, 0x37, 0xf2, 0x5a, 0xa6,
- 0xcc, 0x16, 0xc9, 0x23, 0x31, 0x13, 0xd9, 0xb5, 0x14, 0xa5, 0x62, 0x38,
- 0x6f, 0xad, 0x72, 0x4e, 0x3c, 0x91, 0xd3, 0x03, 0x57, 0x7c, 0x0f, 0xfe,
- 0x00, 0xf5, 0x7b, 0x68, 0xf5, 0x24, 0x4d, 0xcc, 0x0c, 0x52, 0xe4, 0x5a,
- 0x3c, 0xac, 0xc1, 0xa7, 0x8c, 0x30, 0x66, 0xbe, 0x1d, 0xd8, 0x29, 0x72,
- 0x16, 0xb6, 0x36, 0xc5, 0xb7, 0x42, 0x1f, 0xa2, 0x9a, 0x75, 0x80, 0x2a,
- 0x61, 0xb8, 0x29, 0x28, 0x12, 0x64, 0x06, 0x06, 0x11, 0xbd, 0xe3, 0x00,
- 0xc2, 0xdd, 0x9e, 0x0a, 0x66, 0x87, 0x01, 0x39, 0x8c, 0x9a, 0xcf, 0x28,
- 0xa1, 0xda, 0x66, 0x84, 0x09, 0x6d, 0x65, 0x6f, 0x8a, 0xa5, 0x31, 0x36,
- 0x50, 0x1d, 0xee, 0x2d, 0x4d, 0x36, 0x5f, 0x6d, 0x6f, 0xda, 0xa1, 0xad,
- 0x36, 0x8d, 0x3a, 0x05, 0xea, 0x1c, 0xbb, 0x34, 0xe3, 0xa8, 0x4c, 0xeb,
- 0x70, 0x30, 0xcd, 0x09, 0x08, 0x91, 0x0d, 0xb0, 0x9e, 0x51, 0x8a, 0xaf,
- 0x5a, 0xf9, 0x17, 0xc8, 0xcc, 0x2a, 0x70, 0x3e, 0x99, 0xe0, 0x83, 0x37,
- 0x79, 0x3a, 0x6b, 0x08, 0xf4, 0x0d, 0x58, 0x3e, 0xd3, 0x91, 0xd5, 0x07,
- 0x9e, 0x4e, 0x1e, 0x39, 0xa0, 0x14, 0xd1, 0x01, 0xc5, 0xbb, 0x78, 0x46,
- 0x3c, 0xc7, 0xc6, 0x3a, 0xe5, 0x7b, 0xf3, 0xd5, 0x16, 0x5f, 0x59, 0xce,
- 0xad, 0xe6, 0x7d, 0x7b, 0x33, 0xf9, 0x39, 0x9e, 0x23, 0x99, 0xf0, 0xbb,
- 0x9e, 0x95, 0x20, 0x9b, 0xf6, 0xa1, 0x37, 0x92, 0x97, 0xe3, 0x72, 0x7a,
- 0xff, 0x25, 0xe2, 0x4f, 0xf2, 0xca, 0xcb, 0x1d, 0xfc, 0xa8, 0xa3, 0x34,
- 0xaf, 0x6a, 0x08, 0xad, 0x98, 0xa5, 0xc2, 0x9f, 0x5f, 0xd1, 0xe3, 0x6a,
- 0x33, 0x6c, 0x26, 0xc3, 0xa1, 0x11, 0x43, 0xf5, 0x1c, 0xf5, 0x82, 0xd6,
- 0x5c, 0x2d, 0x4c, 0xc8, 0x85, 0x4b, 0x76, 0x9c, 0x39, 0x9e, 0x14, 0xb6,
- 0x65, 0xac, 0xb1, 0x2d, 0xfe, 0x48, 0xfe, 0x6d, 0xf5, 0x6a, 0x98, 0x1c,
- 0x2a, 0x6c, 0x66, 0x23, 0xc2, 0xb3, 0x62, 0x1e, 0xe5, 0xfb, 0xc3, 0x4b,
- 0x30, 0xfe, 0x7c, 0x9c, 0x8b, 0xbf, 0x7d, 0x5a, 0xb6, 0xa8, 0x01, 0x13,
- 0x4e, 0xe4, 0xa7, 0x2b, 0x3e, 0x2e, 0xbc, 0xcd, 0x9e, 0xa9, 0x38, 0x5e,
- 0xc4, 0x22, 0xc2, 0x9a, 0x31, 0xd2, 0xb9, 0xc1, 0xb1, 0x7c, 0x53, 0xa5,
- 0x69, 0x3f, 0xf9, 0x4c, 0x3f, 0xd6, 0xbd, 0x9e, 0x0b, 0x78, 0x25, 0xfe,
- 0x0a, 0x5e, 0xd2, 0xcf, 0x07, 0xf4, 0x94, 0x57, 0xbb, 0xd2, 0x26, 0xf6,
- 0xbb, 0x61, 0x23, 0xf4, 0xd6, 0x97, 0x92, 0x8c, 0xd3, 0x90, 0x88, 0x21,
- 0x2f, 0xb8, 0xa4, 0x0c, 0x5f, 0x0b, 0xe3, 0xb4, 0xce, 0x9e, 0x3f, 0xe5,
- 0x51, 0xf2, 0x54, 0x89, 0xa7, 0xa6, 0xe5, 0x92, 0xe5, 0x0b, 0xa9, 0x0a,
- 0x23, 0x82, 0x76, 0x88, 0x9c, 0xac, 0x4a, 0x7a, 0x1a, 0x95, 0x29, 0x62,
- 0x5c, 0x27, 0x5d, 0xac, 0x46, 0xa7, 0xbc, 0x46, 0x21, 0xf6, 0xe4, 0xb3,
- 0xe7, 0x5e, 0xc7, 0x1f, 0xf0, 0x5d, 0xb8, 0xf3, 0x8e, 0x13, 0x28, 0x47,
- 0x5c, 0x46, 0xe4, 0x0d, 0x81, 0x8d, 0x77, 0xf3, 0xdd, 0xa0, 0x5f, 0xe4,
- 0xf8, 0x60, 0xda, 0x29, 0x19, 0xa1, 0x75, 0x38, 0x3e, 0x74, 0x9e, 0xfc,
- 0xd3, 0xf0, 0x85, 0xee, 0x9e, 0xee, 0xa7, 0xd7, 0xee, 0x6e, 0xcf, 0x5a,
- 0xd2, 0xf7, 0xb9, 0x13, 0xbc, 0xc3, 0x1f, 0xde, 0xe0, 0x14, 0x54, 0xb8,
- 0x5a, 0x56, 0xb8, 0x88, 0xe4, 0x31, 0xd6, 0x17, 0x34, 0xf5, 0x45, 0x54,
- 0xf6, 0xb7, 0x87, 0xef, 0xde, 0x1f, 0x9e, 0x3e, 0xbe, 0x78, 0x49, 0xab,
- 0x24, 0xd6, 0x70, 0x7d, 0x2d, 0x2d, 0x97, 0xed, 0x0a, 0xc6, 0x16, 0xa5,
- 0x6c, 0x91, 0x84, 0xd9, 0x58, 0x9a, 0x7c, 0x00, 0x07, 0x95, 0x9c, 0xf9,
- 0x2e, 0x8e, 0x8f, 0x72, 0x91, 0x68, 0x77, 0x11, 0x74, 0x24, 0xce, 0x00,
- 0xc3, 0x98, 0x5c, 0x09, 0x9c, 0x7b, 0x98, 0xce, 0xb4, 0x96, 0x0a, 0x72,
- 0x3d, 0x7d, 0x9f, 0x5e, 0xef, 0x09, 0x26, 0xd9, 0x26, 0x20, 0xc7, 0xd4,
- 0x1f, 0x9b, 0x31, 0x6d, 0x41, 0x59, 0x5a, 0x6a, 0x57, 0x6e, 0xb7, 0x96,
- 0x3b, 0xae, 0xbc, 0xba, 0x72, 0x84, 0x2b, 0xdd, 0xa8, 0xdf, 0xd1, 0xd1,
- 0xea, 0x4c, 0xce, 0x3f, 0x92, 0xdb, 0xb1, 0x83, 0x4d, 0xc7, 0x34, 0x3a,
- 0x51, 0x3f, 0x68, 0x4a, 0xce, 0x73, 0x7e, 0x29, 0x7d, 0x8b, 0xcf, 0xaa,
- 0xe9, 0xa0, 0x1f, 0xe4, 0x56, 0x8d, 0x17, 0xc5, 0x31, 0x47, 0xc7, 0x17,
- 0x98, 0xac, 0xf3, 0xc3, 0xd1, 0xc8, 0x5e, 0x8c, 0xb5, 0x80, 0x15, 0xfa,
- 0x81, 0x6d, 0x06, 0xad, 0xd2, 0xaf, 0xd0, 0x30, 0x4c, 0x6c, 0x5d, 0x4b,
- 0x01, 0x7a, 0x22, 0x1e, 0x64, 0x4c, 0xc0, 0xcb, 0xe5, 0xdc, 0x1c, 0x1a,
- 0xa3, 0x00, 0x4f, 0x37, 0x6b, 0x09, 0xcf, 0x76, 0x37, 0x1f, 0xc9, 0x2f,
- 0x28, 0x56, 0xb2, 0xd6, 0xb4, 0xff, 0x68, 0xed, 0x47, 0x1a, 0x57, 0x4a,
- 0x5d, 0x38, 0xdb, 0x23, 0xe4, 0xec, 0xc7, 0x1d, 0xec, 0xbd, 0xd1, 0xc9,
- 0xe5, 0xb1, 0x99, 0xbe, 0xf7, 0x97, 0xdf, 0xf6, 0x24, 0xfc, 0xdd, 0x25,
- 0x57, 0x80, 0x23, 0x9f, 0x0a, 0x52, 0xde, 0xda, 0x04, 0xcc, 0x8a, 0xfd,
- 0x2a, 0xc6, 0x78, 0x88, 0x29, 0xe4, 0xee, 0xa3, 0xc3, 0x35, 0xab, 0xf4,
- 0x6c, 0xf8, 0xac, 0xbb, 0x4a, 0xab, 0xc9, 0x75, 0x99, 0x6e, 0x35, 0xd8,
- 0xee, 0xc2, 0xe1, 0x4a, 0x98, 0xaa, 0x1d, 0x57, 0xe7, 0x01, 0x81, 0x37,
- 0x90, 0xab, 0x00, 0xcf, 0x1b, 0xb9, 0x2b, 0x94, 0x4c, 0xce, 0x8b, 0x95,
- 0x83, 0x69, 0xd6, 0xb2, 0xcd, 0x88, 0xfb, 0x97, 0x43, 0xa4, 0x66, 0xc5,
- 0xd2, 0x6a, 0x6a, 0xb3, 0x0d, 0x43, 0x65, 0x51, 0x51, 0x80, 0x54, 0x3d,
- 0xc6, 0x6c, 0x01, 0xad, 0x1e, 0xd1, 0xca, 0x01, 0x0d, 0xd9, 0xe0, 0x5d,
- 0x32, 0x69, 0x9c, 0xfa, 0x17, 0x4e, 0x75, 0x14, 0x94, 0xb0, 0x1c, 0xb6,
- 0x6b, 0x71, 0x91, 0x71, 0xb6, 0x5a, 0x9a, 0x57, 0x41, 0x91, 0xbc, 0xe4,
- 0x3f, 0xe3, 0xfb, 0x1d, 0x57, 0x6f, 0x55, 0xce, 0xd8, 0x9f, 0x28, 0x6f,
- 0x30, 0xbc, 0x93, 0x73, 0x28, 0xc0, 0x1d, 0x84, 0x98, 0x0e, 0xc2, 0xa2,
- 0x30, 0x57, 0x50, 0x6a, 0x39, 0xac, 0x10, 0xb4, 0x35, 0xda, 0xb6, 0xae,
- 0xd7, 0x4b, 0x44, 0x19, 0xd1, 0x5a, 0x24, 0x39, 0xc6, 0xe3, 0xd6, 0x13,
- 0x5d, 0x33, 0x46, 0xee, 0xe2, 0x9d, 0xde, 0xd0, 0x80, 0x82, 0xb0, 0x9e,
- 0xdc, 0x4d, 0xe3, 0xda, 0x18, 0x7b, 0xb9, 0x00, 0x2d, 0x83, 0x49, 0xc8,
- 0xa9, 0x38, 0x47, 0x3f, 0xbc, 0xf6, 0xea, 0x82, 0x28, 0x7a, 0x8d, 0xf7,
- 0x8b, 0x68, 0xa7, 0xab, 0xc8, 0xc0, 0x32, 0x07, 0xc1, 0x1c, 0x22, 0xd0,
- 0x3a, 0xcd, 0xb2, 0x85, 0x25, 0x62, 0xce, 0x91, 0xbb, 0x91, 0xd7, 0x08,
- 0xac, 0x0a, 0x09, 0x36, 0x2a, 0x5f, 0xad, 0xe8, 0x9d, 0x88, 0x0e, 0x9b,
- 0x37, 0x48, 0xff, 0xa3, 0x3a, 0x47, 0x14, 0xda, 0xdd, 0xfb, 0xec, 0xc9,
- 0xe7, 0xe6, 0x7e, 0xbe, 0x07, 0x33, 0xb2, 0x9b, 0x32, 0x66, 0x2e, 0x5d,
- 0x4d, 0xf3, 0x26, 0x16, 0x8e, 0x02, 0x7f, 0x25, 0x4b, 0x3f, 0xa9, 0xc9,
- 0xa6, 0x80, 0xbf, 0x4a, 0x72, 0x66, 0x43, 0x92, 0x13, 0x33, 0x89, 0x32,
- 0x61, 0x02, 0xc5, 0xc3, 0x3c, 0x31, 0x6c, 0x6c, 0xe8, 0x6d, 0x60, 0x2a,
- 0xaa, 0x40, 0x45, 0x9f, 0x8c, 0x48, 0xb9, 0x38, 0xbe, 0xbc, 0x30, 0x7f,
- 0x8c, 0x2e, 0xcf, 0x2e, 0x56, 0x70, 0xf3, 0x35, 0xcc, 0xfe, 0x40, 0x93,
- 0xa6, 0x10, 0x16, 0x4c, 0x73, 0x9b, 0xb4, 0x0b, 0x18, 0x69, 0x16, 0x3b,
- 0x75, 0x94, 0xe7, 0xc9, 0xa3, 0x7b, 0xaa, 0x87, 0xad, 0x81, 0x5e, 0x99,
- 0xfb, 0x61, 0xed, 0xc0, 0x78, 0xcd, 0xd7, 0xef, 0x10, 0x0c, 0x98, 0x36,
- 0x23, 0x8d, 0xd8, 0x0a, 0x7a, 0xf4, 0xd6, 0x58, 0x70, 0x14, 0x0d, 0x70,
- 0xa4, 0xdb, 0x5a, 0x4c, 0x77, 0x05, 0x27, 0x23, 0x03, 0x76, 0xfd, 0x82,
- 0x12, 0xec, 0x73, 0xee, 0x69, 0x8a, 0x79, 0x2f, 0xd9, 0x82, 0x3f, 0x59,
- 0x74, 0x93, 0x07, 0xf6, 0xaf, 0xd1, 0x87, 0xb6, 0xdd, 0x80, 0xeb, 0x72,
- 0x9e, 0xb1, 0xc3, 0x1f, 0x6e, 0x21, 0x2b, 0x9c, 0xf8, 0x6e, 0x61, 0x66,
- 0xd2, 0x24, 0x46, 0xb3, 0x60, 0x19, 0xa4, 0x68, 0x95, 0x37, 0x6d, 0x9e,
- 0xba, 0x16, 0x8a, 0xe7, 0x75, 0xc9, 0x8c, 0xd9, 0xda, 0x80, 0x9a, 0x6b,
- 0x53, 0x7b, 0xe5, 0x51, 0x4b, 0xb5, 0x85, 0xf7, 0x5e, 0x57, 0xc8, 0x50,
- 0xae, 0x7f, 0x5c, 0xb2, 0xa0, 0xe4, 0x57, 0x8b, 0x63, 0x40, 0x71, 0x37,
- 0xd0, 0x25, 0xfc, 0x6a, 0x87, 0xe7, 0xf2, 0x54, 0x34, 0xce, 0x86, 0x94,
- 0x38, 0xe2, 0x88, 0xb0, 0x7b, 0x5b, 0x96, 0x9c, 0x63, 0x36, 0xcb, 0xae,
- 0xd0, 0x6d, 0xe9, 0x74, 0xa1, 0x98, 0x55, 0xc5, 0x2d, 0x71, 0x55, 0x64,
- 0x3a, 0x49, 0xe0, 0x6b, 0x2a, 0x14, 0xfd, 0xee, 0xd4, 0x2c, 0xc9, 0xfb,
- 0x42, 0x08, 0x49, 0x0a, 0x63, 0x5f, 0x00, 0x13, 0x31, 0xb5, 0x93, 0x46,
- 0x4c, 0x3d, 0x04, 0xe5, 0xe2, 0x4b, 0x6b, 0x5a, 0xb2, 0x52, 0x0f, 0x56,
- 0xdf, 0x90, 0xf3, 0x0d, 0x2e, 0x65, 0x20, 0x0c, 0xf4, 0xa6, 0x91, 0xf6,
- 0x9c, 0x75, 0x32, 0x69, 0xba, 0x23, 0x05, 0x79, 0x40, 0x30, 0xd0, 0x73,
- 0x7f, 0xd1, 0x58, 0xa4, 0xc1, 0x00, 0x72, 0xb2, 0xa0, 0xe1, 0x1c, 0xfe,
- 0x16, 0x15, 0x83, 0x8c, 0x35, 0x8a, 0x22, 0x2f, 0x84, 0x28, 0x41, 0x4b,
- 0x77, 0xb7, 0x18, 0x08, 0x54, 0x0d, 0x1c, 0xae, 0xe1, 0xb6, 0xf2, 0x09,
- 0x0b, 0x5a, 0x5b, 0xb2, 0x9d, 0x06, 0xde, 0x1e, 0xdd, 0xca, 0x84, 0x52,
- 0x6c, 0xd0, 0x0b, 0x5a, 0x32, 0x25, 0x24, 0xd4, 0xbd, 0x95, 0x17, 0x39,
- 0x11, 0xd4, 0x94, 0xd5, 0x0e, 0xe5, 0xaf, 0x10, 0x65, 0x5b, 0x92, 0x98,
- 0xeb, 0x11, 0xc5, 0x48, 0x54, 0x75, 0x8b, 0x95, 0x8f, 0x85, 0x0a, 0xc6,
- 0xd6, 0xa6, 0x69, 0xbc, 0x5d, 0x10, 0xd4, 0xab, 0xab, 0x45, 0xb7, 0xa9,
- 0xc7, 0x46, 0x30, 0x8c, 0xa1, 0xe4, 0x19, 0x25, 0x02, 0x14, 0x64, 0x5b,
- 0x1d, 0xd3, 0x2a, 0x8a, 0x5a, 0x0a, 0x01, 0xeb, 0x0a, 0x95, 0x0f, 0xc8,
- 0xfc, 0x15, 0x89, 0x77, 0x5a, 0x86, 0x02, 0xac, 0x43, 0x66, 0x56, 0xfa,
- 0x8c, 0x18, 0x69, 0x9f, 0x4c, 0x58, 0x0e, 0xed, 0xaf, 0xd5, 0x59, 0xb3,
- 0x5c, 0x84, 0xf7, 0xbc, 0x4b, 0x6a, 0xb4, 0x2d, 0x72, 0xe9, 0xf3, 0xc6,
- 0xef, 0x22, 0x25, 0xeb, 0xbb, 0xe9, 0xf7, 0xb9, 0xc4, 0x03, 0xf3, 0x9d,
- 0x34, 0x81, 0xe0, 0x76, 0x5f, 0x95, 0x60, 0xae, 0xd7, 0x0b, 0x95, 0x33,
- 0x4d, 0x7a, 0x46, 0xbf, 0xd8, 0xed, 0x41, 0x83, 0x56, 0x3e, 0x7a, 0x61,
- 0xc1, 0xd2, 0xb7, 0xcd, 0xbc, 0x78, 0xfd, 0x0d, 0xcf, 0x8c, 0x66, 0xaa,
- 0x48, 0x86, 0x21, 0xad, 0xce, 0x16, 0x55, 0xce, 0xc6, 0xf9, 0xdd, 0xde,
- 0x58, 0x39, 0xf4, 0x35, 0xbd, 0xea, 0xed, 0xbd, 0xd8, 0x1f, 0xee, 0x3d,
- 0xff, 0x7c, 0xb8, 0x87, 0xba, 0x9b, 0x5e, 0xdf, 0x5c, 0x71, 0x48, 0xaf,
- 0xa1, 0x48, 0xf5, 0xd1, 0x64, 0x35, 0xa1, 0x2b, 0x7f, 0x61, 0x7e, 0x3f,
- 0xa4, 0xe7, 0x86, 0x5c, 0x03, 0x24, 0xf8, 0xc6, 0xdc, 0xe8, 0x34, 0x79,
- 0x11, 0x84, 0x45, 0x06, 0x0e, 0x69, 0xc4, 0x7b, 0x71, 0x91, 0xd3, 0x36,
- 0x52, 0x92, 0x45, 0x6f, 0x9e, 0xb4, 0x76, 0x99, 0x2d, 0xc7, 0x80, 0xd3,
- 0x19, 0xef, 0x91, 0x8a, 0xf4, 0x89, 0xa8, 0x91, 0x4e, 0xaa, 0xdb, 0xef,
- 0x07, 0x62, 0xf3, 0x57, 0x5b, 0x7d, 0xc4, 0x0c, 0x62, 0x0f, 0x5d, 0x97,
- 0x11, 0x06, 0xcc, 0x41, 0x5d, 0xf2, 0x19, 0xe1, 0x12, 0xe1, 0x07, 0x5b,
- 0x99, 0x35, 0x5a, 0x0b, 0x56, 0x9b, 0x03, 0xa5, 0x8e, 0xcb, 0xd1, 0xb1,
- 0x45, 0xb7, 0xb4, 0x65, 0x8d, 0xa5, 0x77, 0x59, 0x82, 0x2c, 0x7b, 0x0f,
- 0x0b, 0x69, 0x6d, 0x8e, 0xde, 0xf9, 0xf7, 0x7f, 0x77, 0x12, 0x89, 0x8b,
- 0x40, 0xa3, 0xf2, 0xc0, 0x33, 0x30, 0x75, 0x72, 0xe8, 0x9a, 0x79, 0xe1,
- 0x93, 0xde, 0xc1, 0x4f, 0x70, 0x15, 0xff, 0x32, 0xf8, 0xc9, 0xfc, 0xfb,
- 0x97, 0x9e, 0x47, 0xd7, 0xc4, 0xa4, 0x4f, 0x0a, 0x2f, 0xd9, 0x68, 0x1f,
- 0xe6, 0x7e, 0xd2, 0xae, 0xa1, 0x09, 0xdd, 0xe0, 0xf2, 0xe8, 0x9c, 0x8f,
- 0x63, 0xc5, 0x71, 0x70, 0xec, 0x67, 0x92, 0x44, 0x50, 0xec, 0x49, 0x88,
- 0xa3, 0x02, 0x80, 0xd9, 0x29, 0x76, 0x2e, 0x69, 0xcb, 0xa4, 0xde, 0x4b,
- 0x7d, 0x8d, 0x0c, 0x91, 0xd6, 0x58, 0x71, 0xb9, 0x15, 0xa3, 0xe4, 0x5e,
- 0x93, 0xa3, 0x45, 0xd2, 0xa3, 0x87, 0x54, 0x07, 0x57, 0x15, 0x6a, 0xf9,
- 0x99, 0x36, 0x47, 0xec, 0x51, 0x35, 0x48, 0x51, 0xee, 0x4c, 0xd7, 0xfa,
- 0x42, 0x83, 0xca, 0xa9, 0x13, 0x8d, 0x72, 0xf5, 0x15, 0x64, 0xb1, 0xa8,
- 0xd8, 0xad, 0xf2, 0xfa, 0x23, 0x8d, 0x51, 0xf2, 0x80, 0x18, 0x43, 0xb4,
- 0xe1, 0x69, 0xdd, 0xe8, 0x9b, 0xb2, 0x53, 0x11, 0x08, 0x50, 0x9d, 0x94,
- 0xde, 0x14, 0xbb, 0x6b, 0x42, 0xd7, 0x5f, 0x73, 0xe7, 0xa3, 0xb4, 0x4e,
- 0xf2, 0x58, 0x95, 0x3d, 0x82, 0x6d, 0x4c, 0x40, 0x32, 0xe7, 0x46, 0xe1,
- 0xb5, 0x7b, 0xc4, 0x63, 0xfe, 0x31, 0xef, 0x60, 0xd7, 0xd0, 0x35, 0xb8,
- 0xdd, 0xbd, 0xbe, 0xa8, 0xb0, 0x06, 0xb9, 0x8f, 0x99, 0x81, 0xc8, 0xf2,
- 0x67, 0x91, 0xcb, 0x8e, 0xb4, 0x83, 0x69, 0x65, 0xba, 0x01, 0xb6, 0x62,
- 0x24, 0x7f, 0xf3, 0x11, 0xa1, 0xe0, 0xaf, 0x2a, 0x77, 0x1b, 0x51, 0xa3,
- 0x01, 0x27, 0xce, 0x69, 0xa5, 0x33, 0xf6, 0xb4, 0xd7, 0x3a, 0xe9, 0xf4,
- 0xa7, 0x11, 0xdb, 0x5a, 0x0c, 0xea, 0xae, 0x40, 0x49, 0xd7, 0x24, 0xb4,
- 0x6c, 0xd0, 0xfd, 0x79, 0x8c, 0xaa, 0xd5, 0xbb, 0x5d, 0xf7, 0x77, 0x43,
- 0x9f, 0x0a, 0x15, 0xaa, 0xc5, 0x24, 0x0f, 0xf2, 0xc5, 0xc3, 0x13, 0x48,
- 0xcb, 0xa6, 0xf4, 0xb3, 0x2d, 0x11, 0x63, 0xaf, 0x9a, 0x7a, 0x79, 0x7d,
- 0x0d, 0xd2, 0x85, 0x10, 0xb6, 0x87, 0xa4, 0x46, 0xc9, 0x2a, 0x10, 0x6a,
- 0x7b, 0x23, 0xd1, 0xd1, 0x73, 0x9d, 0x0d, 0x97, 0x39, 0x29, 0x92, 0x87,
- 0xdb, 0x4e, 0x22, 0x45, 0x26, 0xda, 0xe5, 0xb5, 0xf5, 0x9c, 0xfb, 0xc9,
- 0x60, 0x55, 0x36, 0xb0, 0xa5, 0xa2, 0xbb, 0x42, 0x31, 0x80, 0xfd, 0xaa,
- 0x70, 0x84, 0xdb, 0x61, 0xb5, 0x18, 0x5c, 0xeb, 0x7d, 0x24, 0x67, 0x9b,
- 0xe5, 0x4d, 0xa2, 0xf0, 0x12, 0xb3, 0xc4, 0x31, 0xcd, 0x57, 0x65, 0x79,
- 0x93, 0x58, 0xc5, 0x14, 0xd1, 0xd4, 0xbd, 0x40, 0xaf, 0x30, 0x21, 0xeb,
- 0x5c, 0x04, 0x4e, 0x2a, 0xfa, 0x8a, 0xd3, 0xd3, 0xe1, 0x7e, 0xb0, 0xb4,
- 0xf5, 0x6c, 0x30, 0x99, 0x4c, 0x06, 0x50, 0x09, 0x5e, 0xb2, 0x9e, 0xb2,
- 0x23, 0x7a, 0xc2, 0x0a, 0xf7, 0xc1, 0x28, 0x93, 0x19, 0x3f, 0x3a, 0x3a,
- 0x12, 0x95, 0xe6, 0xf2, 0xa6, 0xa3, 0x5c, 0x58, 0x4e, 0x23, 0x51, 0xae,
- 0x62, 0x35, 0xda, 0xea, 0x9b, 0x65, 0x33, 0x45, 0x0d, 0x57, 0x12, 0x1a,
- 0x2a, 0x85, 0x6d, 0x22, 0x6d, 0x87, 0x79, 0x92, 0xaa, 0x69, 0xf7, 0x2d,
- 0x62, 0x91, 0xda, 0x0e, 0x32, 0x0d, 0x17, 0x5c, 0x0d, 0x03, 0x2f, 0x4a,
- 0xdb, 0xdd, 0x0a, 0x91, 0xdc, 0x55, 0x9f, 0x1c, 0x4a, 0x3b, 0x58, 0xc7,
- 0x50, 0x6e, 0xda, 0x0a, 0x3e, 0x9b, 0xe6, 0x82, 0x99, 0x4d, 0xe5, 0x5b,
- 0xdd, 0xb6, 0x1f, 0x58, 0x0f, 0x99, 0xea, 0xf6, 0x92, 0x3c, 0x5f, 0xb9,
- 0x24, 0xd1, 0xc9, 0x27, 0x03, 0x8b, 0xa6, 0x7d, 0xeb, 0x08, 0xb4, 0x95,
- 0x47, 0x72, 0x24, 0x8e, 0x6e, 0x08, 0xd9, 0x35, 0xa3, 0xc5, 0x31, 0x5d,
- 0xae, 0x59, 0x0c, 0xc8, 0xad, 0x32, 0x1a, 0x9d, 0xee, 0x5c, 0x9e, 0x8e,
- 0x02, 0x40, 0xfc, 0x3d, 0x79, 0x8f, 0xb9, 0xf4, 0x6f, 0xcb, 0xfb, 0xc9,
- 0x53, 0x04, 0x9a, 0xe0, 0xf2, 0xaa, 0xbd, 0xc3, 0xf9, 0x2b, 0x51, 0x46,
- 0x8d, 0x65, 0xa1, 0x99, 0x32, 0xf6, 0x1a, 0x2f, 0xb2, 0x02, 0x99, 0xe6,
- 0x74, 0x9b, 0xe3, 0x04, 0x00, 0x29, 0x5b, 0x27, 0xef, 0x0e, 0x2f, 0x29,
- 0xfb, 0xa5, 0x11, 0xf0, 0x07, 0x79, 0x83, 0x02, 0xb8, 0xbe, 0x30, 0x8f,
- 0x5a, 0xae, 0xc6, 0x74, 0xe2, 0x2a, 0x63, 0xa8, 0xde, 0xce, 0xcb, 0x57,
- 0xeb, 0xc6, 0x5b, 0x37, 0xfd, 0x66, 0x4a, 0xe5, 0x7e, 0xe8, 0xee, 0xf9,
- 0xee, 0x6a, 0xec, 0x45, 0x57, 0x83, 0x27, 0x20, 0x7e, 0x1c, 0x2e, 0x44,
- 0x98, 0xeb, 0x44, 0x6b, 0xd0, 0x4d, 0xba, 0x3f, 0x2b, 0xaf, 0x73, 0x72,
- 0x0a, 0x62, 0xbd, 0xb0, 0xaf, 0xb5, 0x78, 0x75, 0x57, 0x06, 0xf3, 0xec,
- 0xd4, 0x9c, 0xa9, 0xd3, 0x4e, 0xbb, 0xe2, 0x23, 0x42, 0x37, 0x85, 0x9d,
- 0x53, 0x4d, 0x31, 0xb0, 0x39, 0x92, 0x61, 0x0a, 0x22, 0x88, 0x07, 0xf3,
- 0x89, 0xb1, 0x16, 0x26, 0x84, 0x0b, 0x41, 0xbe, 0x60, 0xdd, 0x86, 0xdf,
- 0xe6, 0x2d, 0xa2, 0x43, 0x75, 0x96, 0xd6, 0xcb, 0x45, 0x34, 0x47, 0x48,
- 0x46, 0xb8, 0xd6, 0x25, 0xff, 0xbc, 0x75, 0x7d, 0x7c, 0x43, 0xc6, 0xd9,
- 0x75, 0x70, 0xed, 0x5a, 0xaa, 0x8a, 0x08, 0xb3, 0x1c, 0xb4, 0x55, 0x70,
- 0x00, 0x48, 0x69, 0x56, 0x9f, 0xdc, 0x9b, 0x8c, 0xad, 0xc1, 0xb4, 0x1f,
- 0x65, 0x66, 0xef, 0x77, 0xeb, 0x30, 0x31, 0xef, 0x5d, 0x9b, 0x10, 0xb9,
- 0x45, 0x3c, 0xa3, 0x20, 0xe0, 0x4e, 0x73, 0xdf, 0x1c, 0x3b, 0x22, 0xfd,
- 0x0e, 0x3b, 0x4d, 0x8b, 0x64, 0x9f, 0xa1, 0x3a, 0x14, 0x92, 0xba, 0xa3,
- 0x12, 0x92, 0x77, 0x2b, 0xec, 0x1d, 0xd6, 0x67, 0x2f, 0x1d, 0x2f, 0x37,
- 0x9f, 0x0f, 0x2d, 0x5e, 0xa0, 0x22, 0xeb, 0xfd, 0xc5, 0xa9, 0x0d, 0xdc,
- 0xff, 0xc7, 0xa6, 0x2b, 0x15, 0x33, 0x5c, 0xc9, 0x44, 0x97, 0x17, 0xed,
- 0x2a, 0xa9, 0x3a, 0x3f, 0x2e, 0x12, 0xd5, 0x77, 0x9d, 0xb6, 0xdf, 0x8e,
- 0xb3, 0x4c, 0x3f, 0xd0, 0xa3, 0x6f, 0x8f, 0x0f, 0x5f, 0x5b, 0xb6, 0x81,
- 0xdf, 0x16, 0xe1, 0x61, 0x07, 0x89, 0xfa, 0xc9, 0x00, 0xb8, 0x07, 0x31,
- 0xc1, 0x0a, 0x27, 0x89, 0x75, 0x84, 0x8d, 0x33, 0xae, 0x08, 0xb0, 0x54,
- 0xaf, 0x09, 0xd6, 0x47, 0xb7, 0x2a, 0x76, 0x8b, 0x51, 0xd9, 0xea, 0x8c,
- 0xcf, 0xc8, 0x4a, 0x62, 0xfc, 0x95, 0x6e, 0x12, 0x1f, 0x97, 0x20, 0xee,
- 0x6b, 0x52, 0x9a, 0x39, 0xf9, 0xca, 0xdb, 0xca, 0xd7, 0xd8, 0xca, 0xb3,
- 0x72, 0x5c, 0x5e, 0x5d, 0xad, 0xb9, 0xdf, 0x99, 0x82, 0x10, 0x49, 0x52,
- 0xbc, 0x65, 0x7a, 0x34, 0x8d, 0xf4, 0xde, 0x98, 0x29, 0x2a, 0x2b, 0x73,
- 0xd8, 0x7a, 0x92, 0xb9, 0x20, 0xe5, 0xc3, 0x83, 0xab, 0xc7, 0xcf, 0x5d,
- 0x57, 0x03, 0x42, 0xed, 0x3d, 0xa4, 0xef, 0xb3, 0x6f, 0x46, 0x21, 0x44,
- 0x96, 0xe4, 0xbd, 0x4e, 0xfe, 0xeb, 0xbf, 0x7f, 0xfa, 0x25, 0xc2, 0x74,
- 0x4f, 0xde, 0xbf, 0x1b, 0x4e, 0x3d, 0x34, 0x4f, 0x2b, 0x3f, 0xb2, 0xe5,
- 0x23, 0x67, 0x08, 0x0a, 0x07, 0x37, 0x9a, 0x3a, 0x9b, 0x5d, 0x0d, 0x3d,
- 0xbc, 0x65, 0x78, 0x31, 0x92, 0xc2, 0xa4, 0x1f, 0x44, 0xa1, 0x2d, 0xca,
- 0x16, 0xe7, 0x0c, 0x5f, 0xe2, 0x87, 0x46, 0xc5, 0x18, 0x07, 0xa8, 0xb6,
- 0xec, 0xb1, 0xbc, 0x12, 0x91, 0x64, 0x03, 0xad, 0xa9, 0xd1, 0x8d, 0xaf,
- 0xbf, 0xbf, 0x38, 0xb1, 0x7e, 0x4f, 0x5f, 0x2e, 0xdf, 0x98, 0x9d, 0x7a,
- 0x3f, 0xc8, 0xee, 0xb3, 0xb1, 0x91, 0x13, 0xb5, 0xf2, 0x43, 0x0c, 0xe6,
- 0x75, 0xf2, 0x72, 0x6e, 0x76, 0x78, 0xbe, 0x82, 0xd9, 0xe3, 0x5b, 0x7a,
- 0x2d, 0xd1, 0xd7, 0x2c, 0x47, 0xe6, 0x75, 0x59, 0x99, 0x19, 0x9a, 0x4b,
- 0xc2, 0xae, 0x64, 0x2d, 0xb7, 0x3d, 0x1b, 0x09, 0x32, 0x50, 0x02, 0xdf,
- 0xc0, 0xed, 0x53, 0xd1, 0xba, 0x41, 0xf8, 0xe5, 0x91, 0x51, 0x41, 0x61,
- 0x5f, 0xa6, 0x33, 0x52, 0xec, 0x8d, 0xc5, 0x4d, 0xa6, 0x7b, 0xdd, 0x97,
- 0x2d, 0x55, 0x29, 0x4f, 0x59, 0x94, 0x69, 0xc0, 0xe6, 0x29, 0xc2, 0xca,
- 0x22, 0xb1, 0xe3, 0x8f, 0xc8, 0x16, 0x60, 0xf4, 0x19, 0xc6, 0xa4, 0xf4,
- 0x6a, 0x38, 0xaf, 0x3a, 0x00, 0xf6, 0x89, 0x26, 0x0e, 0xd9, 0x4a, 0xc9,
- 0x1c, 0xb9, 0x96, 0x47, 0xf5, 0xdd, 0xb2, 0xd6, 0x6e, 0x0e, 0x0e, 0xe5,
- 0x3c, 0x9d, 0xda, 0x5c, 0x7b, 0x9f, 0x9e, 0x0e, 0x79, 0x8a, 0x29, 0x25,
- 0x4e, 0x66, 0xb3, 0xa1, 0x14, 0x05, 0x06, 0xe0, 0xca, 0xb5, 0x09, 0x91,
- 0xdb, 0x05, 0x98, 0xd4, 0x84, 0x19, 0xe0, 0x74, 0x59, 0x5b, 0x32, 0x3d,
- 0xb3, 0x6e, 0x88, 0x68, 0xe0, 0xf7, 0x52, 0x68, 0x75, 0xae, 0xe1, 0x03,
- 0x10, 0x1b, 0x02, 0x94, 0xbc, 0x28, 0x25, 0xc5, 0x6c, 0x25, 0xf4, 0x36,
- 0xf0, 0x16, 0x24, 0x43, 0x78, 0xc1, 0x8f, 0x65, 0xc1, 0x3b, 0xcd, 0x51,
- 0xe0, 0xe5, 0xf9, 0xb3, 0x67, 0xcf, 0x38, 0xf0, 0xd2, 0x3b, 0xc1, 0x87,
- 0x2f, 0x8e, 0x8f, 0xce, 0xde, 0xbe, 0x3d, 0x7e, 0xf7, 0xfa, 0xf8, 0xb5,
- 0x82, 0x8d, 0xbd, 0x91, 0xb8, 0xdd, 0x11, 0x8e, 0x88, 0x10, 0x84, 0x66,
- 0x9e, 0xf7, 0x9e, 0xed, 0x0e, 0xf6, 0x9f, 0xed, 0x26, 0x66, 0x2f, 0xa6,
- 0x36, 0x91, 0x2d, 0x9d, 0xa5, 0xe4, 0x12, 0xb8, 0x59, 0x1a, 0x65, 0x8d,
- 0xe8, 0x23, 0x1b, 0x22, 0xe6, 0x80, 0x1f, 0x96, 0x5c, 0x3f, 0x59, 0x43,
- 0x46, 0x74, 0xa0, 0x01, 0xa5, 0xd3, 0x61, 0xcf, 0x32, 0x81, 0xb9, 0xe8,
- 0xa5, 0x68, 0x3f, 0xd8, 0xa0, 0xfb, 0xbb, 0xf4, 0xa1, 0x61, 0xf2, 0xc6,
- 0xe8, 0x1f, 0x57, 0xe5, 0x27, 0xde, 0x8b, 0x47, 0x37, 0x46, 0x2d, 0xcd,
- 0xc2, 0xb8, 0x65, 0xfb, 0x7d, 0x7a, 0xfd, 0x09, 0xbf, 0xfe, 0x4f, 0x0c,
- 0xd8, 0x3f, 0x7b, 0xd1, 0x36, 0x2e, 0xcd, 0x41, 0x06, 0xf5, 0xb8, 0xe6,
- 0x2c, 0xae, 0x60, 0x1d, 0x1d, 0xb1, 0x49, 0xfe, 0xed, 0xe1, 0x39, 0x3d,
- 0x6d, 0x4c, 0xf3, 0xb3, 0x1f, 0xff, 0xe2, 0xf2, 0x40, 0x6f, 0xf7, 0x14,
- 0xe9, 0x28, 0xa9, 0xae, 0xa8, 0xcb, 0x56, 0x84, 0x11, 0x70, 0xa7, 0xce,
- 0x5a, 0xa3, 0x50, 0x2f, 0x19, 0xb9, 0x51, 0xc1, 0x40, 0x52, 0x52, 0x8e,
- 0x0f, 0x17, 0x4c, 0x92, 0x95, 0xab, 0xea, 0x18, 0x53, 0x4a, 0xc5, 0xce,
- 0x64, 0xf0, 0x6a, 0x7f, 0x42, 0xed, 0x6a, 0x3a, 0x64, 0x79, 0x31, 0xe5,
- 0xc2, 0x9a, 0x6d, 0x5f, 0x6d, 0x53, 0x2d, 0xb3, 0x8e, 0x23, 0x35, 0xa2,
- 0x61, 0x3d, 0x44, 0xd3, 0xb1, 0xa8, 0xf2, 0x79, 0x5a, 0xe5, 0x5c, 0x51,
- 0x9b, 0x36, 0x3d, 0x6c, 0x61, 0x85, 0x5d, 0x22, 0x38, 0x66, 0x09, 0x0d,
- 0xa9, 0x33, 0x69, 0x84, 0xd1, 0x3b, 0x9f, 0xc8, 0x39, 0x63, 0x4a, 0x24,
- 0x89, 0x62, 0xf2, 0x0c, 0xae, 0x5b, 0xbb, 0xe7, 0x6d, 0xc7, 0xc0, 0x49,
- 0x5f, 0x74, 0x8c, 0x68, 0xe2, 0x2e, 0x69, 0xbe, 0x6f, 0x4e, 0x4e, 0x8f,
- 0xb7, 0x93, 0x37, 0x59, 0x23, 0x59, 0x51, 0x0a, 0x49, 0x26, 0x3d, 0xe0,
- 0x5f, 0xa0, 0x77, 0x59, 0x36, 0x3c, 0xc9, 0x2c, 0x8e, 0x56, 0x85, 0x66,
- 0x0b, 0x07, 0x0a, 0x88, 0x66, 0x58, 0xf1, 0x96, 0xc4, 0x10, 0x29, 0x60,
- 0xa7, 0x38, 0x34, 0x0d, 0x80, 0xca, 0x6e, 0x20, 0x3f, 0x5a, 0x58, 0x75,
- 0x92, 0xf9, 0x21, 0x14, 0x26, 0x2d, 0xeb, 0x5e, 0xfa, 0x38, 0x03, 0xea,
- 0xb7, 0xe0, 0xa4, 0x39, 0x62, 0x98, 0xd7, 0x8b, 0x19, 0xc9, 0x88, 0x18,
- 0x3b, 0xcc, 0x4c, 0x72, 0xa7, 0x80, 0x9b, 0xa6, 0xe3, 0xc0, 0xd5, 0xaf,
- 0xc5, 0x16, 0x82, 0x94, 0xa5, 0xf1, 0x7a, 0x13, 0xf7, 0xad, 0x4e, 0x1c,
- 0x01, 0x53, 0xf8, 0xcf, 0x9d, 0xaf, 0xa2, 0xc4, 0x65, 0x52, 0x43, 0x01,
- 0x25, 0x40, 0xe5, 0x05, 0x33, 0x62, 0x2d, 0x0a, 0x2d, 0x17, 0xbf, 0x2a,
- 0xa3, 0xad, 0x9d, 0x10, 0xd3, 0x6a, 0xb1, 0x1f, 0x12, 0x6b, 0x07, 0xff,
- 0x45, 0x4a, 0xf9, 0xa8, 0x5a, 0x41, 0xa9, 0xe3, 0xee, 0xd2, 0xc9, 0xbc,
- 0x8f, 0xd6, 0xd1, 0x9a, 0x59, 0x2c, 0xaa, 0xa5, 0xc4, 0x28, 0xab, 0x58,
- 0x04, 0xef, 0x4f, 0x15, 0xdf, 0xaf, 0x1d, 0xa6, 0xc7, 0x6e, 0x84, 0x33,
- 0x19, 0x0e, 0x16, 0x4e, 0x3c, 0xab, 0x23, 0x41, 0x01, 0x97, 0x58, 0x67,
- 0xe3, 0x7f, 0x5c, 0x7a, 0x93, 0x1d, 0x9e, 0x8a, 0x4d, 0xe8, 0x4b, 0x3a,
- 0xd8, 0x27, 0x7e, 0x66, 0x76, 0x1f, 0x51, 0xa1, 0xe4, 0xeb, 0xbe, 0x5c,
- 0xea, 0xaa, 0xf2, 0xf6, 0x1b, 0xa5, 0xe5, 0xdc, 0x11, 0x03, 0x35, 0xd4,
- 0x21, 0x69, 0xee, 0xb8, 0x9c, 0x1a, 0x6a, 0xa3, 0x53, 0xba, 0xfc, 0xe4,
- 0x63, 0x4e, 0x1e, 0xd2, 0xba, 0x59, 0x42, 0xcf, 0x4b, 0x0b, 0xbf, 0x97,
- 0x96, 0x63, 0x7c, 0x5a, 0x62, 0xa6, 0xe3, 0x2a, 0x29, 0xa9, 0x4d, 0xe4,
- 0x49, 0x20, 0xea, 0x4f, 0xed, 0x0d, 0x8f, 0xc6, 0x9e, 0x15, 0x5b, 0xc9,
- 0x93, 0x52, 0x28, 0xb1, 0xb2, 0x8b, 0x08, 0x21, 0x71, 0x86, 0x02, 0xb2,
- 0xf0, 0x05, 0xde, 0x09, 0x3d, 0xd9, 0x66, 0x95, 0x31, 0x29, 0xfa, 0xd0,
- 0x18, 0xa8, 0x73, 0xca, 0x21, 0x00, 0x2a, 0x57, 0x86, 0x2c, 0xd3, 0x63,
- 0xc4, 0xdd, 0x75, 0x7e, 0x1b, 0xc5, 0x61, 0x68, 0xc7, 0x80, 0xe2, 0xd0,
- 0x5e, 0x28, 0x42, 0xd9, 0x05, 0xbc, 0xc5, 0x65, 0x4d, 0x0c, 0x82, 0x81,
- 0xe3, 0xda, 0x9e, 0xe0, 0x19, 0xa9, 0xb1, 0x44, 0x06, 0x56, 0x1c, 0x98,
- 0xed, 0x9f, 0xf4, 0xbe, 0x35, 0xea, 0xd0, 0x41, 0xcf, 0x52, 0x79, 0xc3,
- 0xe1, 0xca, 0x4c, 0xd9, 0xfe, 0xce, 0x91, 0x12, 0xb8, 0x83, 0x68, 0x61,
- 0x2a, 0xd6, 0xe6, 0x1b, 0x95, 0x5b, 0x36, 0x41, 0x27, 0x04, 0x41, 0xdb,
- 0x84, 0x99, 0x3e, 0xa8, 0x51, 0x6e, 0x42, 0xaa, 0x72, 0xea, 0xd2, 0x8f,
- 0x83, 0x23, 0x7c, 0x7c, 0xf0, 0x2d, 0xda, 0xfb, 0xa2, 0x67, 0x3d, 0xc1,
- 0xdd, 0x5f, 0x99, 0x8e, 0x6f, 0xc4, 0x40, 0x41, 0xad, 0xa2, 0x7b, 0xf5,
- 0xb2, 0xd2, 0x64, 0x25, 0xc0, 0x4d, 0xa4, 0x97, 0xa0, 0x8d, 0x9b, 0x4e,
- 0x77, 0xec, 0xa2, 0x33, 0xb6, 0x6e, 0x55, 0x15, 0x53, 0x73, 0xaf, 0x2c,
- 0x40, 0xc2, 0x33, 0x1d, 0x94, 0x57, 0x03, 0x00, 0xaa, 0x8d, 0xf4, 0xff,
- 0x48, 0x70, 0x25, 0xef, 0xd4, 0x81, 0x56, 0x04, 0xa4, 0xcf, 0xd3, 0x69,
- 0x4c, 0x5f, 0xe7, 0xdc, 0x47, 0x52, 0x45, 0x64, 0xe3, 0x6b, 0x66, 0x06,
- 0x2f, 0xe6, 0x81, 0xb8, 0xeb, 0xf1, 0xba, 0x2d, 0x82, 0x44, 0x8c, 0x5e,
- 0x6b, 0x6b, 0x26, 0xf5, 0x59, 0xa5, 0xc7, 0xa0, 0x61, 0xd8, 0xcd, 0xd9,
- 0xc7, 0x0b, 0xc7, 0xf4, 0x72, 0x01, 0x3d, 0x96, 0xe8, 0x37, 0x03, 0xa7,
- 0x8c, 0x66, 0x95, 0xb0, 0x3e, 0xf0, 0x6c, 0xb8, 0xdb, 0x0f, 0x02, 0xf9,
- 0x0d, 0x3c, 0x00, 0x85, 0x43, 0x11, 0xc1, 0xd2, 0x85, 0x8c, 0x1c, 0x44,
- 0x13, 0x72, 0xeb, 0xe6, 0x9e, 0xa4, 0xb5, 0x4d, 0xc0, 0x05, 0xfb, 0xb5,
- 0xcb, 0x94, 0x70, 0xb0, 0x1f, 0xae, 0xf6, 0x5e, 0xb8, 0xc4, 0xdb, 0x18,
- 0x63, 0xa9, 0x60, 0xba, 0xbe, 0x1a, 0x74, 0xeb, 0x60, 0xda, 0x72, 0x58,
- 0x7e, 0xba, 0x87, 0x57, 0xd8, 0x6a, 0xa5, 0x03, 0x0a, 0x14, 0xee, 0x87,
- 0x5a, 0x24, 0x66, 0x60, 0x26, 0x55, 0xaa, 0x7e, 0x0e, 0x32, 0xfa, 0x21,
- 0xd3, 0x7c, 0x28, 0x0d, 0x68, 0xfd, 0xc0, 0x9c, 0x3d, 0xf9, 0x8c, 0xe6,
- 0xcc, 0x72, 0xda, 0x6b, 0xf5, 0x16, 0x77, 0x41, 0x60, 0xdb, 0x7a, 0x67,
- 0xa9, 0x3b, 0x67, 0x24, 0x57, 0x48, 0x12, 0xc0, 0xd4, 0x67, 0x7f, 0x26,
- 0x9a, 0x58, 0x09, 0x40, 0x5e, 0x81, 0x0c, 0xc6, 0xb1, 0x79, 0x43, 0xda,
- 0xfe, 0xe0, 0x9d, 0x59, 0x86, 0x83, 0xe4, 0x3f, 0xcb, 0x8c, 0x93, 0x5c,
- 0x1f, 0xc8, 0x71, 0xfd, 0xe1, 0xf0, 0xe2, 0xdd, 0xc9, 0xbb, 0x6f, 0x0e,
- 0x5c, 0x0e, 0x18, 0x64, 0x9e, 0xb8, 0x2f, 0xda, 0x70, 0x0b, 0x57, 0xcf,
- 0x8d, 0x1e, 0xc9, 0x63, 0x65, 0x4a, 0xac, 0xc6, 0x33, 0x60, 0xe9, 0xcc,
- 0x4e, 0xcd, 0x2a, 0xe3, 0x88, 0x09, 0x5b, 0xa8, 0x36, 0xd5, 0xa2, 0xaf,
- 0x95, 0xc1, 0x38, 0xb4, 0xdf, 0x94, 0x81, 0x41, 0x2a, 0x4e, 0x94, 0x53,
- 0x38, 0x51, 0x66, 0x65, 0xab, 0x4c, 0x11, 0xed, 0xce, 0x19, 0x76, 0x41,
- 0xe9, 0x6f, 0x04, 0xaf, 0xda, 0x50, 0x88, 0x3d, 0xe1, 0xdc, 0x19, 0xd4,
- 0x36, 0xc6, 0x35, 0x01, 0x5b, 0x47, 0x0b, 0xb3, 0x70, 0x75, 0x85, 0x1a,
- 0x8b, 0x56, 0xe7, 0xf0, 0x41, 0xb8, 0x39, 0x59, 0x61, 0x2e, 0xe3, 0x32,
- 0x63, 0x6a, 0xe3, 0x74, 0xc9, 0x87, 0x86, 0x89, 0xcd, 0xe4, 0xa7, 0x2e,
- 0x93, 0xc3, 0xce, 0xc1, 0x03, 0xc0, 0x66, 0x9b, 0x37, 0x10, 0xc1, 0x44,
- 0x23, 0x22, 0xe8, 0x64, 0x96, 0xf9, 0x93, 0x6e, 0x93, 0x28, 0x81, 0xc9,
- 0x2c, 0x73, 0x99, 0x4c, 0x56, 0xdd, 0xb9, 0x61, 0x75, 0x67, 0xb6, 0x08,
- 0x78, 0xfa, 0x08, 0x8f, 0x4e, 0xbf, 0x90, 0xb9, 0xa5, 0xb0, 0x16, 0xae,
- 0x60, 0x35, 0x56, 0x5a, 0xac, 0x78, 0xb6, 0x78, 0xa0, 0xe2, 0xfb, 0xc3,
- 0x2b, 0x95, 0x88, 0xa2, 0x32, 0xa6, 0x2a, 0xf3, 0x73, 0x66, 0xcc, 0xd7,
- 0xcd, 0x24, 0x2f, 0x96, 0xe3, 0xf9, 0xf4, 0x59, 0xf2, 0xd2, 0xfc, 0x27,
- 0xd0, 0xb3, 0x00, 0x2c, 0x4d, 0x46, 0x47, 0x64, 0x6a, 0x10, 0x0e, 0x86,
- 0x6e, 0x0d, 0x66, 0xcb, 0xf1, 0x4a, 0x18, 0x3c, 0xd9, 0x37, 0x9d, 0xfd,
- 0x94, 0x2a, 0x37, 0xe6, 0xd4, 0x2c, 0x60, 0x03, 0x7c, 0xda, 0x0a, 0xc2,
- 0x21, 0x07, 0xe3, 0xa3, 0x05, 0xdf, 0xdb, 0xff, 0x3c, 0xa1, 0x3c, 0x85,
- 0xb7, 0xaf, 0x9f, 0x25, 0x93, 0x9b, 0x6c, 0xf2, 0xb1, 0x5e, 0xce, 0x2d,
- 0x1c, 0x92, 0xa6, 0x94, 0x0c, 0x06, 0xea, 0x67, 0x40, 0xe9, 0x63, 0x3a,
- 0x3e, 0xcb, 0x27, 0x94, 0x2e, 0xe8, 0x23, 0x4b, 0xa9, 0x7a, 0x72, 0x9d,
- 0x75, 0xcc, 0x19, 0x77, 0x73, 0x00, 0x53, 0xc0, 0xc0, 0x9b, 0x48, 0x58,
- 0xc3, 0xcc, 0x81, 0xf9, 0x7c, 0xcd, 0x45, 0x8f, 0xd7, 0x3a, 0x73, 0x3f,
- 0x6b, 0xf9, 0xc3, 0x77, 0xb1, 0x94, 0xe6, 0x7c, 0xef, 0x0d, 0x77, 0x57,
- 0x54, 0x29, 0x07, 0x84, 0x45, 0x03, 0x81, 0xd4, 0x43, 0x58, 0x03, 0x52,
- 0x95, 0x3d, 0x31, 0xef, 0xf9, 0x5a, 0x98, 0xc2, 0x98, 0xcd, 0x44, 0xae,
- 0xc0, 0x7f, 0x99, 0x7b, 0x45, 0x9c, 0x26, 0xd9, 0xb4, 0xd5, 0xd4, 0x5a,
- 0x43, 0xc9, 0xaf, 0x4a, 0xc5, 0xdd, 0xdd, 0x13, 0xef, 0x3f, 0xfd, 0xab,
- 0x15, 0x6f, 0x91, 0x5f, 0xff, 0xc6, 0xd1, 0xec, 0xfd, 0x8a, 0x84, 0x81,
- 0xdd, 0xbe, 0xfb, 0xde, 0xae, 0x2d, 0xb2, 0xc5, 0x1d, 0x72, 0x93, 0xde,
- 0x69, 0x2e, 0xa4, 0x5f, 0xc7, 0x0b, 0x94, 0x74, 0x51, 0x56, 0x03, 0xd2,
- 0x09, 0x67, 0xd9, 0x34, 0xb8, 0xa2, 0xa3, 0xdd, 0x37, 0xca, 0x46, 0xbd,
- 0x54, 0xfa, 0x12, 0x8a, 0x24, 0x20, 0x54, 0xc1, 0x5c, 0x5b, 0xae, 0xf4,
- 0x45, 0x0c, 0x38, 0x4e, 0xcf, 0xec, 0xec, 0x7b, 0x55, 0xe5, 0xf1, 0x03,
- 0x9a, 0xd4, 0xe4, 0xfd, 0xe2, 0xba, 0x4a, 0x29, 0x88, 0x42, 0x59, 0x5a,
- 0x96, 0xd2, 0x1c, 0xbd, 0x4b, 0x56, 0xf5, 0xce, 0x31, 0x52, 0x69, 0x30,
- 0x18, 0xd9, 0x83, 0xb5, 0x7e, 0xa7, 0xa6, 0xb4, 0x4c, 0x68, 0x95, 0x5c,
- 0xfe, 0x0a, 0x3f, 0xf7, 0xea, 0x73, 0xc4, 0x28, 0x67, 0xcd, 0x4b, 0xcc,
- 0x4d, 0x5a, 0x6a, 0x2b, 0x2d, 0x3c, 0x37, 0x91, 0x69, 0xb3, 0x3a, 0xa9,
- 0xc5, 0xc8, 0x1c, 0x99, 0x79, 0xc0, 0xe7, 0xc7, 0x8b, 0x2b, 0x4a, 0x42,
- 0x87, 0x6e, 0x2e, 0x88, 0x3b, 0x44, 0x97, 0xe3, 0xd1, 0xe4, 0xee, 0x01,
- 0xab, 0x54, 0xce, 0x8e, 0x19, 0x4d, 0xa8, 0xe4, 0xb1, 0x0c, 0x1f, 0xb7,
- 0xb9, 0x77, 0xfb, 0xd1, 0xde, 0xd1, 0x6e, 0xf3, 0x37, 0x7f, 0x8b, 0xa2,
- 0xed, 0x45, 0x64, 0x73, 0xfd, 0xa6, 0xb3, 0xb0, 0xbf, 0x2e, 0xfa, 0x66,
- 0x94, 0xf8, 0x74, 0xb6, 0x28, 0x86, 0xfa, 0x85, 0x47, 0xcd, 0x4f, 0x77,
- 0x99, 0x2d, 0x15, 0xfe, 0x6f, 0x9b, 0x9f, 0xee, 0xdc, 0xf8, 0xb2, 0xcc,
- 0x9f, 0x9f, 0xee, 0x5a, 0xae, 0xad, 0x85, 0xc0, 0xf9, 0xcf, 0x5a, 0x5a,
- 0x7a, 0xc0, 0x89, 0x5d, 0xb1, 0x7c, 0x06, 0xe1, 0xeb, 0x14, 0x0a, 0xb3,
- 0x7e, 0x72, 0xc2, 0x14, 0xbd, 0x08, 0xa2, 0xcb, 0xcb, 0xa7, 0x9c, 0x15,
- 0x26, 0x7e, 0x18, 0x87, 0x12, 0x8f, 0xa4, 0x90, 0xe6, 0x13, 0xe2, 0x07,
- 0x9a, 0x31, 0x48, 0x8b, 0xbc, 0x40, 0xd0, 0xe2, 0x6c, 0x65, 0x81, 0x25,
- 0x7c, 0x5f, 0xc9, 0xe1, 0x82, 0x92, 0xbb, 0x8c, 0x94, 0xfa, 0xa4, 0x9a,
- 0x71, 0x24, 0xfa, 0x63, 0x6e, 0xf5, 0x12, 0x20, 0x78, 0x05, 0x8b, 0x76,
- 0xba, 0x43, 0x0d, 0x33, 0x87, 0xd7, 0x8c, 0xc0, 0xd1, 0x95, 0xa6, 0xf9,
- 0xed, 0x53, 0xed, 0xf0, 0xeb, 0x80, 0x24, 0x7c, 0x7c, 0xdf, 0x44, 0x52,
- 0x17, 0x40, 0x52, 0x46, 0xd3, 0xb0, 0x55, 0x0b, 0x34, 0xea, 0xe9, 0xf3,
- 0xe1, 0xee, 0x76, 0x9f, 0x8a, 0xe6, 0x2e, 0x30, 0x09, 0x04, 0x2e, 0xb7,
- 0xd7, 0x3d, 0xe5, 0x56, 0xe4, 0xd7, 0x64, 0x41, 0x09, 0x66, 0x39, 0x40,
- 0x79, 0xff, 0x3d, 0x53, 0x44, 0x8e, 0xc2, 0x5d, 0x84, 0x36, 0xb1, 0x9d,
- 0x56, 0x95, 0xf7, 0x51, 0x82, 0x07, 0xee, 0x92, 0xae, 0x8f, 0x53, 0x9c,
- 0x28, 0xf4, 0x71, 0x95, 0x81, 0xca, 0xcc, 0x6d, 0x15, 0x30, 0x5b, 0x84,
- 0x53, 0x28, 0xe7, 0xc5, 0x05, 0x1d, 0xf1, 0xad, 0x44, 0x5e, 0x9e, 0xc0,
- 0xde, 0xd6, 0xaf, 0xc0, 0x2c, 0x82, 0xe2, 0x29, 0x52, 0x8f, 0x0c, 0x97,
- 0xbe, 0x52, 0xf9, 0x77, 0x4f, 0xee, 0x14, 0x3c, 0xd0, 0xac, 0x1d, 0x38,
- 0xca, 0xd3, 0xd6, 0x81, 0x53, 0x9a, 0xd2, 0xe1, 0x70, 0x18, 0xc9, 0xc8,
- 0xbe, 0xcd, 0xb3, 0xbb, 0x96, 0x77, 0x48, 0xba, 0xd5, 0xb7, 0x74, 0xff,
- 0x6c, 0x93, 0xdc, 0xd2, 0x0c, 0x99, 0x26, 0xc7, 0xa5, 0x2d, 0xcf, 0xbc,
- 0xe6, 0x20, 0xfb, 0x4f, 0x7b, 0xd3, 0xfc, 0x91, 0xa7, 0xb9, 0x8e, 0xe5,
- 0x30, 0x31, 0xc1, 0xa7, 0x63, 0x27, 0xef, 0x93, 0x8a, 0x5e, 0xdd, 0x27,
- 0xa0, 0xa1, 0x77, 0x8a, 0x0b, 0xe4, 0x0a, 0x63, 0x66, 0xf3, 0x9a, 0xf9,
- 0x35, 0x99, 0x1a, 0x23, 0x12, 0xd4, 0xe0, 0xef, 0x0c, 0xdb, 0x57, 0xbe,
- 0x78, 0x6e, 0x6c, 0xd5, 0xf0, 0xaa, 0x9c, 0x90, 0x71, 0x84, 0x42, 0xac,
- 0xc2, 0xab, 0x4d, 0xb6, 0x41, 0x24, 0x46, 0x2e, 0xeb, 0xe1, 0xf1, 0xf0,
- 0x7b, 0x21, 0x5d, 0x57, 0x1c, 0x21, 0xd1, 0x01, 0x46, 0xc3, 0x12, 0x41,
- 0x23, 0xad, 0x61, 0x8c, 0xef, 0xb5, 0x3c, 0x8d, 0x75, 0x0c, 0xd8, 0x52,
- 0x6b, 0x81, 0xbe, 0xe7, 0xe5, 0x54, 0x25, 0x8e, 0x17, 0xc6, 0xf7, 0xb6,
- 0x58, 0xe6, 0x26, 0xf9, 0x40, 0xed, 0x51, 0xbe, 0x06, 0xf4, 0xe7, 0x5e,
- 0x8d, 0xf4, 0x8c, 0x32, 0xc9, 0xa8, 0x82, 0x44, 0x74, 0x89, 0xd9, 0x08,
- 0xe7, 0xb4, 0x6d, 0xb3, 0x9d, 0xcb, 0x25, 0xc5, 0x47, 0x71, 0xfc, 0x25,
- 0xeb, 0x52, 0x12, 0x2d, 0xbb, 0xd9, 0xf8, 0x96, 0xd5, 0x88, 0xe6, 0x7e,
- 0x78, 0x93, 0x7e, 0xfa, 0x34, 0xac, 0xb3, 0x1d, 0xb3, 0x6b, 0xeb, 0x9d,
- 0xba, 0x9e, 0xd1, 0x47, 0x6b, 0x10, 0x08, 0xad, 0x2d, 0xf4, 0x65, 0xec,
- 0x57, 0x9d, 0x5f, 0x11, 0xc6, 0x93, 0x94, 0x5e, 0x6d, 0x09, 0x5b, 0x57,
- 0xe9, 0x8b, 0xcb, 0x1d, 0x74, 0xd1, 0x6d, 0x4c, 0xa0, 0x4a, 0x8e, 0x03,
- 0x3f, 0x41, 0x8c, 0x25, 0x83, 0x03, 0x11, 0xd8, 0x66, 0x3c, 0x62, 0x68,
- 0xa2, 0x4c, 0xad, 0x56, 0xc1, 0x91, 0x13, 0x39, 0xab, 0xbe, 0xf7, 0xbe,
- 0xac, 0x1c, 0x6c, 0xd7, 0xdc, 0x10, 0x8e, 0x1b, 0x02, 0x35, 0x45, 0x50,
- 0xd7, 0x3b, 0xc2, 0x5a, 0xb2, 0xca, 0x90, 0xf6, 0x86, 0x46, 0xf0, 0xe6,
- 0x03, 0xc7, 0x92, 0x75, 0x77, 0x77, 0x37, 0x5c, 0x67, 0x49, 0xff, 0xc3,
- 0xa1, 0x9a, 0x76, 0x73, 0x67, 0x45, 0x72, 0x9a, 0x17, 0xcb, 0x4f, 0x1e,
- 0x45, 0x81, 0x2d, 0x6c, 0xa1, 0x6e, 0xe2, 0xe4, 0xfb, 0x8b, 0x37, 0xb6,
- 0x22, 0x68, 0xa2, 0xb9, 0xe1, 0xf0, 0x45, 0xd4, 0x11, 0xaf, 0x69, 0x96,
- 0x63, 0xf3, 0x30, 0xfd, 0xe9, 0xd1, 0xe1, 0xf9, 0x87, 0x77, 0xc7, 0x97,
- 0x1f, 0x2e, 0x0e, 0x7f, 0xa0, 0x29, 0x64, 0x2c, 0x86, 0xb9, 0xaf, 0xc8,
- 0x47, 0x55, 0x95, 0xa5, 0x91, 0xb0, 0x6f, 0x4b, 0x54, 0xe5, 0x05, 0x3f,
- 0x40, 0xac, 0x02, 0x85, 0x65, 0x3d, 0xe1, 0x7e, 0x52, 0x67, 0x0e, 0xbc,
- 0x3d, 0x48, 0xf3, 0xf5, 0xd1, 0x58, 0x0e, 0xd9, 0x6c, 0x58, 0x56, 0xd7,
- 0xb4, 0x0b, 0x77, 0x5e, 0x8b, 0xfc, 0x8c, 0x36, 0xb7, 0x23, 0xc1, 0x37,
- 0x62, 0xd1, 0xb9, 0xad, 0xae, 0x28, 0xe5, 0x7e, 0x5d, 0xb5, 0x6d, 0xbf,
- 0x58, 0x93, 0xb7, 0x35, 0x9f, 0x42, 0x00, 0x2e, 0x6e, 0x9f, 0xae, 0x33,
- 0x06, 0x9a, 0x96, 0x02, 0x45, 0x27, 0x6c, 0x76, 0xcb, 0xce, 0x70, 0x98,
- 0xd8, 0x7e, 0x4c, 0x35, 0xe3, 0x18, 0x49, 0x3f, 0x92, 0xb4, 0x0b, 0x6e,
- 0xe8, 0xd2, 0xa6, 0x40, 0x23, 0x29, 0x83, 0x62, 0xc1, 0xab, 0xa5, 0xb6,
- 0xa7, 0x06, 0x75, 0x8d, 0x8e, 0xd5, 0xc6, 0xca, 0xf3, 0x50, 0x97, 0xa4,
- 0xfa, 0x53, 0xde, 0x98, 0x9f, 0xcb, 0x98, 0x9f, 0xff, 0x63, 0x63, 0x7e,
- 0xfe, 0xdb, 0xc7, 0xfc, 0xf4, 0x9f, 0x3e, 0xe6, 0xbf, 0xd2, 0x98, 0xff,
- 0xba, 0x2c, 0x3e, 0x0e, 0x4c, 0x77, 0xe9, 0x16, 0x96, 0x1a, 0x3e, 0x75,
- 0x5c, 0x65, 0x6e, 0x95, 0x8d, 0x20, 0x47, 0x93, 0x47, 0x94, 0xe9, 0x95,
- 0x24, 0x4a, 0x25, 0xcd, 0x90, 0x23, 0x4e, 0x2b, 0x8b, 0x04, 0x7b, 0xce,
- 0xc8, 0x9c, 0x72, 0xd4, 0xea, 0x09, 0x59, 0x36, 0xc0, 0x49, 0xf5, 0xa4,
- 0x3b, 0x89, 0x36, 0xdc, 0xb3, 0x03, 0x8d, 0xb1, 0x3b, 0x52, 0x9d, 0x66,
- 0xa6, 0xfb, 0xe6, 0x72, 0xb5, 0x36, 0x32, 0xe3, 0xca, 0xd4, 0x52, 0x0d,
- 0x73, 0xf0, 0x98, 0x68, 0xcb, 0xb9, 0xf0, 0x01, 0x85, 0x32, 0xe3, 0xf2,
- 0x7e, 0x41, 0xcd, 0x25, 0xe3, 0xca, 0x5c, 0xc0, 0x00, 0x84, 0x70, 0xf5,
- 0x64, 0xed, 0x61, 0xd2, 0xed, 0x9c, 0x75, 0xbd, 0xdd, 0x64, 0xf7, 0x9b,
- 0x81, 0xc2, 0x30, 0x99, 0x95, 0x24, 0x71, 0x48, 0xaf, 0x5b, 0xa3, 0x89,
- 0x8c, 0x5d, 0x01, 0x25, 0xbe, 0x2f, 0x3a, 0x15, 0x95, 0xfc, 0x7b, 0xe3,
- 0x63, 0x96, 0x2d, 0xd2, 0x19, 0xd2, 0xc1, 0x29, 0x1a, 0xb7, 0xaa, 0xec,
- 0x4b, 0x7b, 0x63, 0xd4, 0x59, 0xa3, 0x97, 0x2e, 0xde, 0x6a, 0xa3, 0x24,
- 0x20, 0xec, 0x78, 0x35, 0x09, 0xd9, 0x9d, 0xe4, 0xd3, 0x80, 0x41, 0x43,
- 0xf4, 0x53, 0x0d, 0xc8, 0xd9, 0x4e, 0x90, 0x6a, 0x32, 0x16, 0xea, 0x02,
- 0x20, 0xf1, 0xa8, 0x75, 0x65, 0x42, 0x42, 0xf0, 0xf8, 0x36, 0x27, 0xe4,
- 0x48, 0xa7, 0xb9, 0xee, 0xfb, 0xa0, 0x45, 0x69, 0x31, 0x80, 0x5b, 0xc6,
- 0x4e, 0x0a, 0xce, 0xc8, 0x05, 0x48, 0x6e, 0x28, 0x94, 0x53, 0x0b, 0xb6,
- 0x94, 0x32, 0x80, 0xf2, 0x10, 0x2f, 0x8f, 0xce, 0x3f, 0x7c, 0x77, 0x7c,
- 0x7c, 0x7e, 0xf2, 0xfa, 0xf4, 0x58, 0x4e, 0x8c, 0xfd, 0xd1, 0xbb, 0xcb,
- 0xef, 0x4f, 0xb5, 0xea, 0x91, 0xce, 0x4f, 0xb0, 0xe1, 0x85, 0xbe, 0x5a,
- 0xc4, 0x72, 0x1f, 0xd5, 0x5d, 0x8a, 0x26, 0x39, 0x3c, 0xf9, 0xd1, 0xa8,
- 0xad, 0xe7, 0x83, 0xf7, 0x3f, 0x06, 0xb4, 0xfa, 0x2d, 0x34, 0x74, 0xbc,
- 0x5c, 0xb2, 0xd9, 0x84, 0xb0, 0x1d, 0xdd, 0xd8, 0x57, 0x21, 0x43, 0x7e,
- 0xe7, 0x6b, 0xd0, 0x34, 0xb7, 0x2c, 0xac, 0xc6, 0xc0, 0x2f, 0x6a, 0xe5,
- 0x0a, 0x0f, 0x7d, 0xf1, 0x7c, 0x57, 0x8b, 0x02, 0xad, 0xf5, 0xa1, 0x7d,
- 0xde, 0xb6, 0x19, 0x3f, 0x66, 0xf7, 0xa0, 0x21, 0x4b, 0x5e, 0xd2, 0x7f,
- 0x57, 0x14, 0x6d, 0x3a, 0xaf, 0xf2, 0x5b, 0x52, 0x00, 0xcd, 0xc3, 0x1c,
- 0x65, 0xa0, 0x67, 0x87, 0xb6, 0x86, 0x95, 0x04, 0x3a, 0xa8, 0x15, 0x84,
- 0x42, 0xd1, 0x2a, 0xed, 0x8c, 0x20, 0x58, 0x46, 0x6c, 0x0e, 0xe4, 0x8f,
- 0xb1, 0xad, 0xe5, 0x66, 0xeb, 0xbc, 0x3e, 0xbe, 0xe8, 0x27, 0xe7, 0xc7,
- 0x6f, 0x19, 0x4e, 0x7d, 0xfc, 0xee, 0x1b, 0xe1, 0xbd, 0xd2, 0x52, 0x4d,
- 0x43, 0x06, 0x19, 0x86, 0x98, 0x22, 0x6f, 0x4e, 0xcc, 0xeb, 0x00, 0x50,
- 0xd5, 0xb5, 0xb9, 0x5d, 0xff, 0x40, 0xd2, 0x07, 0x1e, 0xda, 0x4b, 0xf3,
- 0x9f, 0xd8, 0x54, 0x19, 0x3b, 0xe2, 0xdb, 0xed, 0x70, 0xb6, 0x44, 0x2d,
- 0xb3, 0xd1, 0x5c, 0x31, 0x09, 0x68, 0x36, 0x78, 0xc2, 0xcc, 0x8c, 0x84,
- 0x71, 0x45, 0x9d, 0xa1, 0x42, 0xb8, 0x9d, 0xa4, 0x8c, 0xa0, 0x04, 0x85,
- 0xc8, 0x88, 0x35, 0x5f, 0xeb, 0xd3, 0xb6, 0x04, 0xa1, 0xae, 0x9b, 0x8b,
- 0x68, 0x46, 0x5f, 0x95, 0x4b, 0xbe, 0x8b, 0x73, 0xc7, 0x1b, 0x95, 0x6a,
- 0x9a, 0x4f, 0x91, 0x32, 0x6c, 0x3e, 0x52, 0x56, 0xd3, 0x08, 0x83, 0x2a,
- 0x4d, 0xbc, 0xde, 0x19, 0xec, 0xef, 0x50, 0x9c, 0x90, 0x56, 0xef, 0x9a,
- 0xe5, 0xe3, 0xca, 0xa8, 0x5c, 0x8e, 0x76, 0x5e, 0x8a, 0x71, 0x2d, 0x3e,
- 0x4e, 0xea, 0xbd, 0xbd, 0x48, 0x1d, 0x68, 0x4d, 0x9f, 0xe9, 0x2b, 0xde,
- 0xeb, 0xfc, 0xbb, 0xa3, 0xd1, 0x9f, 0xf6, 0xf6, 0x00, 0xaf, 0xdb, 0x22,
- 0x18, 0xd4, 0x67, 0xcf, 0xf6, 0xf6, 0xb7, 0x63, 0x1a, 0x5f, 0x10, 0x1a,
- 0xa6, 0x02, 0x6a, 0x69, 0xd2, 0xda, 0x51, 0x08, 0x91, 0x08, 0x9c, 0xd6,
- 0x36, 0x3d, 0xcd, 0x08, 0x67, 0x62, 0xd6, 0x40, 0xdd, 0xe1, 0xc0, 0xe4,
- 0x04, 0xd1, 0x3b, 0x4b, 0xb6, 0xd1, 0xe3, 0xde, 0x1f, 0xf4, 0xec, 0x36,
- 0xf0, 0xb1, 0x89, 0x08, 0x61, 0x7a, 0xbd, 0x96, 0x0d, 0xda, 0x8d, 0x01,
- 0xf8, 0xe3, 0x02, 0x58, 0xc6, 0xb1, 0x99, 0x64, 0xec, 0xce, 0xb3, 0x95,
- 0xcb, 0xfc, 0x3b, 0x15, 0x25, 0x23, 0x9b, 0x10, 0x92, 0x20, 0x7d, 0xea,
- 0xf1, 0x8a, 0xd3, 0x0e, 0x4d, 0x5d, 0xa3, 0x76, 0xf6, 0xbd, 0x13, 0xdd,
- 0x2a, 0x05, 0x1f, 0x00, 0xc4, 0xf8, 0x1b, 0x49, 0xcf, 0x9c, 0xb7, 0x78,
- 0x93, 0x7f, 0xe8, 0x21, 0xaa, 0xc6, 0xc9, 0xcb, 0x99, 0x79, 0x71, 0xb6,
- 0x22, 0xa9, 0xe3, 0x98, 0x2b, 0xbd, 0x7c, 0x67, 0xac, 0xfb, 0xac, 0x2a,
- 0xeb, 0x6e, 0xd9, 0x0f, 0x29, 0x49, 0xcd, 0x08, 0x3f, 0xb4, 0xa3, 0x21,
- 0xf7, 0x80, 0x39, 0xaa, 0x81, 0xb9, 0x2c, 0xcc, 0xc2, 0x6d, 0xf2, 0x87,
- 0x4d, 0xa0, 0xe0, 0x37, 0xfb, 0xc9, 0x26, 0x95, 0x36, 0xa1, 0x3f, 0x51,
- 0xa1, 0x9a, 0xaa, 0x10, 0xe4, 0xe9, 0x6c, 0xb3, 0x1f, 0x96, 0x9a, 0xdf,
- 0x94, 0x9d, 0xb6, 0x39, 0xa4, 0xd4, 0x06, 0x06, 0x58, 0xd3, 0x81, 0xe6,
- 0x9c, 0xbe, 0x34, 0x91, 0xbe, 0x28, 0x6e, 0x90, 0x0e, 0xa6, 0x23, 0x9a,
- 0xa8, 0x83, 0x12, 0x1c, 0xb6, 0xb9, 0x36, 0x3f, 0xc7, 0x2a, 0xe4, 0xda,
- 0xef, 0x7c, 0xaf, 0xf0, 0x32, 0xfc, 0xca, 0xca, 0x9f, 0x5e, 0xb9, 0xd6,
- 0x4e, 0x73, 0xba, 0x56, 0xfe, 0x3a, 0xeb, 0xfb, 0xd1, 0x4a, 0x88, 0x87,
- 0x92, 0x82, 0xd8, 0x8e, 0xb0, 0x82, 0x0b, 0x9b, 0xc0, 0xf2, 0x53, 0x36,
- 0xe5, 0x24, 0xb3, 0xca, 0x2f, 0x63, 0x4e, 0x7f, 0x0b, 0x41, 0x31, 0x18,
- 0x2a, 0x88, 0xeb, 0xb5, 0xdb, 0x03, 0x36, 0xb7, 0x8f, 0x12, 0x71, 0x1f,
- 0x00, 0x71, 0x7f, 0x57, 0x11, 0x3f, 0x5f, 0xe1, 0x78, 0x3e, 0x67, 0xd9,
- 0x4a, 0xa6, 0x16, 0xe5, 0xf0, 0x33, 0x8b, 0x34, 0x93, 0xb2, 0x5a, 0x0a,
- 0x68, 0xa9, 0xb4, 0x4f, 0x03, 0x09, 0x07, 0xaa, 0x89, 0x4f, 0xef, 0xfd,
- 0xcb, 0x83, 0x79, 0xfb, 0x0f, 0xad, 0x9d, 0xd3, 0xc1, 0x63, 0xb9, 0xb8,
- 0x8f, 0x26, 0x24, 0xea, 0x24, 0x90, 0x00, 0x89, 0x3a, 0xc0, 0x2d, 0xf2,
- 0xd2, 0xc8, 0xd3, 0x2c, 0x60, 0x64, 0x19, 0xb5, 0x92, 0x78, 0xa5, 0xe2,
- 0xa0, 0x26, 0x67, 0xe0, 0x3d, 0x5b, 0x0e, 0xd5, 0x55, 0x41, 0xc6, 0xde,
- 0x1f, 0xc4, 0xea, 0xc0, 0x83, 0x27, 0xdf, 0xa5, 0x00, 0xe2, 0xd4, 0x82,
- 0x71, 0x4a, 0x99, 0x34, 0x14, 0x68, 0xc7, 0xd3, 0x41, 0xbe, 0x63, 0x81,
- 0x70, 0xc1, 0x14, 0x08, 0xa8, 0xae, 0x19, 0x48, 0x0b, 0xca, 0x79, 0xdd,
- 0x04, 0x9b, 0x53, 0xf6, 0x63, 0x62, 0x49, 0x6c, 0x57, 0xe9, 0xe0, 0x49,
- 0x5c, 0x80, 0xc1, 0x59, 0xe6, 0x44, 0x07, 0xba, 0xfd, 0xd8, 0x34, 0x71,
- 0x97, 0x4f, 0x9b, 0x1b, 0x14, 0x83, 0x50, 0x53, 0xa6, 0x96, 0xc4, 0x53,
- 0xf2, 0x2b, 0xe7, 0x61, 0x3e, 0xc5, 0x38, 0xee, 0x71, 0x93, 0x05, 0xc3,
- 0xa4, 0x26, 0xcc, 0xc2, 0x42, 0xbe, 0x35, 0xac, 0x03, 0xbc, 0xd0, 0x3b,
- 0xac, 0x9b, 0x59, 0xfe, 0x81, 0xd4, 0x9c, 0xa2, 0x2b, 0xaa, 0xf3, 0x10,
- 0xd8, 0x57, 0x9a, 0xf6, 0x30, 0xd4, 0x13, 0x42, 0x7b, 0x78, 0xf3, 0x23,
- 0x13, 0x31, 0x7f, 0xb7, 0xa9, 0x45, 0x0d, 0x89, 0x5b, 0xcb, 0x43, 0x66,
- 0x93, 0x2c, 0x4f, 0x3e, 0xe6, 0xb3, 0x32, 0xea, 0x03, 0x37, 0x4a, 0xc1,
- 0xe6, 0x9c, 0x5b, 0x78, 0xbb, 0xa9, 0x9e, 0x4d, 0xca, 0xc9, 0xbd, 0x4e,
- 0xe5, 0xf7, 0x9c, 0x91, 0xbf, 0x79, 0xcd, 0x0f, 0x7d, 0xe3, 0x1e, 0xea,
- 0x34, 0x47, 0x6e, 0x76, 0x76, 0xab, 0x2b, 0x1e, 0xa3, 0x3e, 0x20, 0xe0,
- 0xef, 0x77, 0xfd, 0xe4, 0xc9, 0x1c, 0x8b, 0xb2, 0xf7, 0x4d, 0x4c, 0x70,
- 0x71, 0x89, 0xca, 0xba, 0xb4, 0xa9, 0x98, 0x83, 0xbf, 0x90, 0x8d, 0x84,
- 0x09, 0xe3, 0x7d, 0x69, 0x33, 0x0c, 0x18, 0xe7, 0xec, 0x23, 0x2e, 0xba,
- 0xca, 0x0c, 0x2d, 0xd5, 0x82, 0x94, 0xfa, 0x69, 0xa6, 0xcc, 0xb4, 0x73,
- 0xf8, 0x22, 0x29, 0xda, 0xbe, 0x90, 0x9c, 0x6b, 0xda, 0xae, 0x03, 0xcb,
- 0x75, 0x57, 0xcf, 0xe8, 0x01, 0xd4, 0x67, 0x29, 0x03, 0x70, 0xde, 0x6c,
- 0x01, 0x8b, 0xc6, 0x96, 0x50, 0xf2, 0x3a, 0x45, 0xf9, 0x52, 0x93, 0x44,
- 0x9c, 0x32, 0x7f, 0xe0, 0x95, 0x38, 0xeb, 0xe3, 0x7c, 0xd6, 0xcd, 0x80,
- 0xfc, 0x0e, 0xb1, 0xa0, 0xcd, 0xf9, 0xd9, 0xf9, 0x93, 0x6d, 0x9f, 0x79,
- 0x4d, 0x12, 0x6f, 0xb9, 0xdc, 0x18, 0x30, 0x03, 0x36, 0x29, 0xb7, 0xaf,
- 0xe2, 0x86, 0xd3, 0x3f, 0x42, 0x3f, 0xf3, 0x44, 0x68, 0x89, 0x48, 0xb8,
- 0xe0, 0x8b, 0xf0, 0xd1, 0x3b, 0x00, 0xb2, 0x57, 0x85, 0xcb, 0x1d, 0x4c,
- 0xe5, 0xe0, 0xda, 0x08, 0xb9, 0x0b, 0x60, 0x81, 0x48, 0xda, 0xff, 0x00,
- 0x49, 0x25, 0x6d, 0x16, 0x7b, 0x22, 0xa9, 0x0d, 0x7a, 0x99, 0xb4, 0x93,
- 0xad, 0x3d, 0x48, 0x80, 0x64, 0x6f, 0xb8, 0x27, 0x11, 0x41, 0xd0, 0x24,
- 0x1b, 0x50, 0x58, 0xb8, 0x70, 0x2a, 0xb9, 0x37, 0x69, 0xd7, 0x32, 0x8b,
- 0xe7, 0x70, 0x65, 0x19, 0x62, 0xcb, 0xa5, 0xde, 0x32, 0xa1, 0xa4, 0x5c,
- 0x4e, 0x9a, 0xbc, 0x3b, 0x1d, 0x5d, 0xfa, 0x41, 0x1f, 0xe8, 0x61, 0x01,
- 0x1a, 0xae, 0xcd, 0x1e, 0xe4, 0xa1, 0x07, 0x4e, 0x4f, 0x46, 0x97, 0xc3,
- 0x18, 0x4b, 0xf8, 0x81, 0x11, 0xab, 0xc0, 0x70, 0xfb, 0x49, 0xd8, 0xb6,
- 0x10, 0x39, 0x4d, 0x3d, 0x47, 0xb4, 0x38, 0xc4, 0x9b, 0x57, 0x7e, 0xc2,
- 0x71, 0xb7, 0x39, 0xd3, 0xc5, 0x2f, 0x18, 0xe9, 0x26, 0x28, 0x39, 0x0d,
- 0xe9, 0xd4, 0xcb, 0xf1, 0xc0, 0xa3, 0xeb, 0x62, 0x7d, 0x07, 0xb5, 0x61,
- 0xcc, 0xee, 0x35, 0x37, 0xd4, 0xc7, 0xd0, 0x28, 0xdc, 0xe2, 0x0d, 0x85,
- 0xf9, 0x11, 0x9a, 0xb5, 0x96, 0x73, 0x7a, 0x92, 0x64, 0xa0, 0x76, 0x84,
- 0x57, 0x88, 0x9e, 0x7d, 0xf4, 0xa6, 0xa2, 0xa9, 0xe8, 0xcc, 0xa4, 0x94,
- 0x13, 0x6b, 0xc3, 0x5e, 0x29, 0xcc, 0x66, 0xb7, 0xdc, 0xba, 0xc0, 0x62,
- 0xb8, 0x05, 0xdd, 0xa6, 0xab, 0xb3, 0x8c, 0xfd, 0x43, 0xb6, 0xdb, 0x2b,
- 0xd9, 0x26, 0xf3, 0x29, 0x93, 0xad, 0xd5, 0x6d, 0xb6, 0x35, 0x4e, 0xa7,
- 0x25, 0xa1, 0xc3, 0x65, 0x27, 0x48, 0x75, 0x5b, 0xb5, 0x92, 0xec, 0x44,
- 0x6b, 0xe1, 0x9b, 0x06, 0x3f, 0x32, 0x68, 0x0e, 0x91, 0xad, 0xfe, 0x2a,
- 0x1a, 0xa0, 0x70, 0x1b, 0x69, 0x09, 0x90, 0xf7, 0x27, 0xaf, 0x4f, 0xed,
- 0x6c, 0xc9, 0xec, 0x00, 0x83, 0x65, 0xc7, 0x4a, 0xb8, 0x68, 0x15, 0x9b,
- 0x58, 0x93, 0xcd, 0xb0, 0xa6, 0x49, 0xfe, 0x37, 0xa0, 0x29, 0xa0, 0xbb,
- 0x5e, 0x01, 0x0a, 0x5c, 0xa5, 0xec, 0xea, 0xe6, 0x08, 0x69, 0x0e, 0x86,
- 0x16, 0x2d, 0xa2, 0x44, 0x53, 0xc1, 0x27, 0xf6, 0x63, 0x0c, 0xe5, 0xbe,
- 0x2a, 0xb3, 0xce, 0xcf, 0xcb, 0xdf, 0x6b, 0xb3, 0xe8, 0x81, 0x50, 0x53,
- 0x38, 0x6f, 0xcc, 0x95, 0xb4, 0x83, 0xc4, 0x98, 0x40, 0xbd, 0x80, 0x76,
- 0xe6, 0x20, 0x34, 0xc2, 0xe1, 0xa0, 0x38, 0xef, 0x4a, 0xd2, 0x69, 0xb6,
- 0xde, 0x5c, 0x9c, 0xbd, 0x1d, 0x5c, 0x9e, 0xa1, 0xd6, 0xb2, 0x14, 0xb8,
- 0x48, 0x22, 0x1a, 0x27, 0xbf, 0x57, 0xfb, 0x25, 0xa3, 0xdb, 0x08, 0xa4,
- 0xad, 0x7a, 0x5b, 0x2b, 0x3a, 0xe3, 0x52, 0x41, 0xf7, 0xf4, 0xad, 0x80,
- 0x34, 0xbf, 0x60, 0x5d, 0x24, 0x45, 0x75, 0x3e, 0xf2, 0x16, 0x4e, 0xbc,
- 0xd0, 0x13, 0xde, 0x57, 0xd9, 0x3d, 0x5e, 0xd6, 0xf7, 0x89, 0x64, 0x2d,
- 0x11, 0x35, 0x16, 0xac, 0xa9, 0xd0, 0xa1, 0x6f, 0x0b, 0xbf, 0x5a, 0x3a,
- 0x0c, 0x4a, 0xe6, 0xe0, 0xe4, 0x80, 0xa6, 0x34, 0x07, 0x38, 0xad, 0xaa,
- 0xf2, 0x4e, 0xaf, 0x2e, 0xc9, 0x2a, 0x34, 0x5d, 0xa7, 0x45, 0xaa, 0xee,
- 0x57, 0x72, 0x07, 0x08, 0x2f, 0x8e, 0x16, 0xae, 0x5d, 0xab, 0x00, 0x3e,
- 0x6b, 0xe7, 0x73, 0x2b, 0x7e, 0x70, 0xd0, 0x54, 0xcb, 0x3a, 0xac, 0x82,
- 0x2d, 0x9e, 0xe2, 0x53, 0x12, 0x94, 0x84, 0x38, 0x74, 0x2f, 0xf4, 0x85,
- 0xb8, 0x8b, 0xe8, 0x1d, 0x50, 0x60, 0xc8, 0x42, 0xfb, 0xe1, 0xb1, 0x63,
- 0xdc, 0xeb, 0xbf, 0x07, 0x67, 0x58, 0x18, 0x3d, 0x49, 0xa7, 0x9f, 0xcd,
- 0x1c, 0xea, 0x50, 0x00, 0x37, 0x79, 0xc3, 0xa5, 0xdf, 0x14, 0x17, 0x08,
- 0xce, 0x1e, 0x88, 0x03, 0xfa, 0x69, 0xa0, 0x4d, 0x2a, 0x07, 0x47, 0x4e,
- 0xd9, 0xcf, 0xd3, 0xe5, 0x04, 0xcb, 0x44, 0x41, 0x3a, 0xaa, 0x2c, 0x37,
- 0x66, 0x7a, 0x40, 0x4d, 0x20, 0xa6, 0xa6, 0x1d, 0xe4, 0x92, 0x7d, 0x2e,
- 0x5d, 0x3d, 0x2b, 0xe1, 0xc7, 0x5c, 0xad, 0x1c, 0x52, 0x27, 0xa9, 0x6c,
- 0x50, 0xc6, 0xaa, 0x65, 0x15, 0x14, 0x9b, 0x2c, 0xae, 0x4a, 0x2d, 0xd8,
- 0x19, 0x0a, 0x2c, 0x22, 0x6a, 0x06, 0x33, 0xad, 0x60, 0x75, 0x88, 0x40,
- 0x8d, 0x36, 0x30, 0xe2, 0xe4, 0x5f, 0x93, 0x97, 0xbb, 0xd3, 0xde, 0xf6,
- 0x1a, 0x8f, 0xf2, 0x52, 0xd1, 0xb9, 0xde, 0xea, 0xb5, 0x16, 0x24, 0xbe,
- 0x72, 0x27, 0xad, 0xfc, 0x69, 0x46, 0x53, 0x78, 0x33, 0x2e, 0xe7, 0x1a,
- 0xfc, 0x5e, 0x24, 0x05, 0xc8, 0xdd, 0x99, 0x10, 0x7e, 0x32, 0x22, 0x9e,
- 0x52, 0x5b, 0x4a, 0xac, 0x49, 0xf4, 0xa3, 0xc9, 0x96, 0xa6, 0x13, 0x59,
- 0x3c, 0xfb, 0xa9, 0xfc, 0xea, 0xc0, 0x26, 0x3d, 0x91, 0x54, 0xeb, 0x34,
- 0xf7, 0xe4, 0xc7, 0x1f, 0xdb, 0xc5, 0x3f, 0xb7, 0x57, 0x25, 0x5a, 0x0b,
- 0xb0, 0x79, 0x5a, 0x2a, 0x14, 0x11, 0x1d, 0x0e, 0x92, 0x33, 0x74, 0xdb,
- 0x11, 0xb5, 0x39, 0x70, 0xa0, 0xec, 0x82, 0x11, 0x5f, 0x91, 0x31, 0x02,
- 0x6f, 0x14, 0xb1, 0xdf, 0x42, 0x5d, 0x20, 0x05, 0xfb, 0x24, 0x02, 0x4c,
- 0x82, 0xc8, 0x55, 0xac, 0x04, 0x87, 0x41, 0x80, 0x6a, 0xf4, 0xa7, 0xab,
- 0x6e, 0xa1, 0x7f, 0x6f, 0x28, 0x22, 0xc0, 0xf7, 0xc1, 0xfa, 0x0a, 0xa5,
- 0x36, 0x9d, 0x4b, 0xf0, 0x92, 0xb8, 0xf1, 0x99, 0xca, 0x9c, 0xb0, 0x6f,
- 0x93, 0x2a, 0x13, 0x7f, 0x83, 0x96, 0x9e, 0x08, 0x02, 0xbf, 0x44, 0x08,
- 0xc1, 0x87, 0x07, 0x39, 0x0a, 0xa9, 0x77, 0x5e, 0x1c, 0xad, 0x57, 0x67,
- 0xc5, 0x04, 0xc9, 0x1b, 0x29, 0x89, 0x5e, 0x82, 0xc9, 0x0d, 0x15, 0x3f,
- 0xc0, 0x4e, 0x54, 0xb2, 0x6b, 0x4b, 0x2a, 0x57, 0xf2, 0x8d, 0xf3, 0xef,
- 0x7a, 0x72, 0x87, 0x7e, 0xbc, 0x91, 0x76, 0x41, 0x2c, 0x6a, 0xa9, 0xc2,
- 0x84, 0xd6, 0x85, 0x28, 0x24, 0x29, 0x55, 0x55, 0x0b, 0xe1, 0x90, 0x7f,
- 0x57, 0xe3, 0xda, 0xac, 0x50, 0x23, 0xc7, 0xd9, 0x56, 0xa5, 0x0e, 0x2e,
- 0x1e, 0x3d, 0xb2, 0x84, 0xba, 0x81, 0xa7, 0xd2, 0xd1, 0x1f, 0xb1, 0x7b,
- 0xcb, 0x98, 0xa5, 0x03, 0x3c, 0x56, 0xaf, 0x42, 0x88, 0x08, 0xc1, 0x2d,
- 0x8a, 0xe0, 0x32, 0x65, 0xbf, 0x3f, 0x67, 0xea, 0x28, 0xb3, 0x19, 0xf5,
- 0x92, 0xad, 0x20, 0xdc, 0xef, 0xdf, 0x1c, 0x5f, 0x76, 0x8f, 0x96, 0x1f,
- 0xec, 0x43, 0xee, 0xba, 0xf9, 0xf7, 0xf9, 0xfb, 0xcb, 0x6d, 0x57, 0xe2,
- 0x5c, 0xb6, 0xab, 0x8f, 0x74, 0x96, 0x2c, 0xa8, 0xb0, 0x6c, 0x1f, 0xe7,
- 0x8b, 0x8b, 0x9c, 0x82, 0x6c, 0xb0, 0x27, 0x83, 0xbc, 0x2c, 0x4f, 0x76,
- 0xf7, 0x8c, 0x25, 0xb5, 0xbb, 0x8f, 0x5a, 0xa7, 0x4f, 0x76, 0x9f, 0xd8,
- 0x14, 0x5b, 0x7d, 0x2a, 0xb8, 0x16, 0xa6, 0xfc, 0x22, 0x9c, 0x26, 0xd8,
- 0xf7, 0x4f, 0x3e, 0x7d, 0xc2, 0x8f, 0xfb, 0x5d, 0x66, 0x19, 0x25, 0x04,
- 0xf6, 0xe9, 0xf5, 0xe3, 0x37, 0xbf, 0x37, 0xe3, 0x08, 0xc5, 0x2d, 0x0b,
- 0xce, 0x23, 0x43, 0x35, 0x59, 0xca, 0x49, 0x1f, 0xae, 0xae, 0xaa, 0xe2,
- 0x95, 0x88, 0x12, 0xf6, 0x1d, 0xbf, 0x2c, 0x92, 0xd9, 0x2e, 0x3e, 0x9f,
- 0x81, 0x64, 0xb8, 0x07, 0xc2, 0x99, 0x9e, 0x11, 0x36, 0x10, 0x33, 0x0b,
- 0x9f, 0xdc, 0x1c, 0xd9, 0x7a, 0x7d, 0x32, 0x10, 0x73, 0xd5, 0x89, 0x40,
- 0x72, 0x90, 0xec, 0xd0, 0x11, 0x41, 0x12, 0xf0, 0x80, 0xb0, 0x1d, 0xe6,
- 0x54, 0x60, 0x86, 0xf5, 0xaf, 0xfb, 0x82, 0xef, 0xe0, 0x7f, 0x3d, 0x69,
- 0xdf, 0x95, 0xe4, 0x22, 0xd6, 0x46, 0x5f, 0xca, 0x5f, 0x02, 0x7f, 0x25,
- 0x8a, 0x5c, 0x42, 0x3f, 0x46, 0x5d, 0x82, 0xed, 0x96, 0x0f, 0x05, 0x6d,
- 0xd8, 0x8e, 0x89, 0x9e, 0x22, 0xe5, 0x83, 0x59, 0x48, 0xaf, 0x15, 0x1e,
- 0xc3, 0x55, 0x85, 0xa7, 0x54, 0x1b, 0x94, 0x0f, 0xb8, 0xa1, 0xc3, 0x3d,
- 0x27, 0x1d, 0x70, 0x29, 0xa9, 0x56, 0x37, 0x8e, 0x86, 0x72, 0x6b, 0x01,
- 0xc1, 0xd2, 0xfd, 0xaa, 0x0e, 0x77, 0xe9, 0x63, 0xa7, 0x3b, 0xc9, 0x61,
- 0x83, 0x62, 0xa4, 0xf0, 0x85, 0x85, 0x66, 0x2a, 0x4d, 0x45, 0x9f, 0xa7,
- 0x02, 0x45, 0x7e, 0xa9, 0x4c, 0x83, 0x62, 0x23, 0x5b, 0x33, 0xc1, 0xe1,
- 0x0b, 0x26, 0x12, 0x15, 0x74, 0x45, 0xe4, 0x4e, 0x13, 0x68, 0x85, 0x37,
- 0x4e, 0xed, 0xaf, 0x39, 0x89, 0x74, 0xb9, 0x92, 0xea, 0x2f, 0xa5, 0x48,
- 0x9f, 0xf6, 0xf1, 0xb7, 0x67, 0xbb, 0x2f, 0x78, 0x45, 0x4f, 0x8e, 0x2f,
- 0xdf, 0x74, 0x1d, 0x7a, 0x95, 0xd9, 0x50, 0xfc, 0xdf, 0x41, 0x96, 0x56,
- 0x37, 0xc6, 0xc0, 0x20, 0x22, 0x8e, 0x01, 0x91, 0xbd, 0x0f, 0x76, 0x77,
- 0x63, 0x60, 0x8b, 0x3f, 0x30, 0xf5, 0xf8, 0xc9, 0xd3, 0x76, 0x1c, 0x8e,
- 0xd4, 0xfa, 0x01, 0x4d, 0xf7, 0x6a, 0xca, 0xc8, 0xf6, 0xf6, 0x4a, 0x55,
- 0x7b, 0x96, 0xc7, 0x45, 0x73, 0xd2, 0xef, 0x5b, 0xee, 0x51, 0xbb, 0x1f,
- 0x62, 0x45, 0x10, 0xba, 0x77, 0x95, 0x02, 0x8a, 0xcc, 0x45, 0x8f, 0x5b,
- 0xa9, 0xb9, 0xdf, 0x4e, 0xb8, 0x7e, 0x19, 0x97, 0x19, 0x6a, 0x5c, 0x39,
- 0xe9, 0x68, 0xfe, 0x65, 0x2d, 0xb9, 0x27, 0x55, 0x46, 0x84, 0x3e, 0xac,
- 0xf8, 0x49, 0xb9, 0x96, 0x87, 0x49, 0x89, 0x30, 0x05, 0xd5, 0x64, 0x21,
- 0xb9, 0x48, 0xfc, 0x6f, 0xba, 0x8c, 0x5b, 0xa0, 0xd7, 0xfd, 0x67, 0x91,
- 0x89, 0xc3, 0x95, 0xfd, 0x1b, 0x27, 0xce, 0xa9, 0x47, 0xec, 0xc3, 0xe3,
- 0x0a, 0x31, 0x4a, 0x17, 0x19, 0x92, 0xc5, 0xd4, 0x5a, 0x53, 0xf4, 0x57,
- 0x8f, 0x85, 0x66, 0x7b, 0xb8, 0x8e, 0xdc, 0xcc, 0xbd, 0xf5, 0x1b, 0xc7,
- 0xd2, 0x77, 0x14, 0xfb, 0x74, 0x7f, 0xcc, 0xa5, 0xa0, 0x10, 0x7c, 0x0d,
- 0x88, 0x42, 0x76, 0x49, 0x07, 0xb2, 0x45, 0x86, 0xc1, 0x7b, 0x84, 0x21,
- 0xfe, 0xe6, 0xb6, 0x76, 0x2a, 0xd9, 0x8a, 0x9a, 0x54, 0x63, 0xae, 0xd1,
- 0x7c, 0x41, 0x79, 0xe4, 0x75, 0xd4, 0xd7, 0xd2, 0xaa, 0x1c, 0x8e, 0xc9,
- 0x54, 0xb7, 0x6c, 0x5f, 0x2e, 0x32, 0x79, 0x5d, 0xe7, 0xd8, 0xca, 0xab,
- 0x34, 0xcc, 0xad, 0x24, 0x93, 0x1d, 0x6d, 0xd8, 0xc5, 0x2a, 0x5d, 0x82,
- 0x26, 0x37, 0x5e, 0xae, 0x50, 0x00, 0xbc, 0x7e, 0x24, 0xa9, 0xbf, 0xb7,
- 0x19, 0xa7, 0xa8, 0x5b, 0x7e, 0xeb, 0xfb, 0x8b, 0x37, 0x7f, 0x51, 0xfb,
- 0x1b, 0x7a, 0x69, 0x68, 0x0d, 0x77, 0x3a, 0x3c, 0xce, 0x3c, 0x00, 0x9f,
- 0xe4, 0x12, 0xb7, 0xe6, 0xdd, 0xfd, 0x23, 0x82, 0xf5, 0x66, 0xce, 0xcc,
- 0x64, 0x8b, 0x42, 0x6d, 0xe6, 0xb1, 0x91, 0x18, 0x75, 0x4f, 0x86, 0xcf,
- 0xe0, 0x13, 0x79, 0x73, 0xf4, 0xec, 0xc9, 0xfe, 0x9e, 0xb1, 0x5b, 0xb7,
- 0x3a, 0xd2, 0x62, 0x7b, 0xe3, 0x51, 0xb3, 0x6d, 0xd7, 0x3b, 0xfb, 0xb4,
- 0xa0, 0xbd, 0xb7, 0x75, 0xfc, 0xe3, 0xf9, 0xbb, 0xf6, 0xf8, 0x78, 0x44,
- 0x41, 0x30, 0x75, 0xd5, 0x08, 0x9d, 0x2e, 0xd0, 0x6a, 0x5f, 0x71, 0x88,
- 0x28, 0x95, 0x1a, 0x09, 0x57, 0xbe, 0xa9, 0x72, 0xd2, 0x72, 0x7b, 0x34,
- 0x21, 0xbd, 0xd3, 0xb2, 0x98, 0x9a, 0xab, 0xff, 0x8c, 0x08, 0xa0, 0x32,
- 0xc2, 0x03, 0x3d, 0x38, 0xba, 0xd5, 0xc7, 0xe4, 0x6d, 0x1f, 0x47, 0xa5,
- 0x08, 0x61, 0x29, 0x6f, 0xf1, 0x43, 0x50, 0x6f, 0x52, 0x8a, 0x3c, 0xe7,
- 0x1e, 0x2d, 0x25, 0xaf, 0x0b, 0xa5, 0x48, 0xda, 0xa7, 0xed, 0x13, 0x2a,
- 0x5f, 0xc0, 0xeb, 0xf3, 0x12, 0x4e, 0xed, 0x55, 0xf1, 0x10, 0x96, 0x96,
- 0x1a, 0x11, 0x61, 0x3f, 0xd1, 0x96, 0xba, 0xf6, 0xb7, 0xbd, 0x72, 0xc2,
- 0xa0, 0x86, 0xe3, 0x78, 0x07, 0x69, 0x6e, 0x11, 0x99, 0x8b, 0xc7, 0x9c,
- 0x65, 0x91, 0x5b, 0x28, 0xbb, 0x64, 0xe3, 0x11, 0x52, 0x97, 0x72, 0x8a,
- 0xfb, 0x6d, 0x66, 0xac, 0x98, 0x1f, 0x1c, 0x71, 0x7f, 0xd4, 0x79, 0x4a,
- 0x8b, 0x69, 0x2b, 0x1b, 0x8b, 0x72, 0x62, 0xd9, 0xfe, 0xc9, 0x3e, 0xa1,
- 0x78, 0x9f, 0x51, 0x12, 0x9f, 0x3f, 0x09, 0xef, 0x23, 0xad, 0x1c, 0x2c,
- 0xda, 0x5d, 0xe5, 0xeb, 0x00, 0x7c, 0x49, 0x8b, 0xe2, 0xdb, 0x8f, 0xc6,
- 0x22, 0x62, 0x61, 0x29, 0x8e, 0x4c, 0x88, 0x7d, 0xd6, 0x89, 0x4d, 0xf8,
- 0xb1, 0x08, 0x54, 0x09, 0xa6, 0x68, 0x84, 0x44, 0x1a, 0x42, 0x53, 0xc5,
- 0x8b, 0x4e, 0xac, 0x0e, 0x4f, 0xac, 0x09, 0x48, 0x74, 0x8d, 0x50, 0x1b,
- 0x9e, 0x68, 0x6d, 0xbe, 0x67, 0x9f, 0x47, 0x36, 0xdf, 0xbb, 0xb3, 0xcb,
- 0xe3, 0x03, 0xa1, 0x8f, 0x51, 0x4a, 0x05, 0x35, 0x14, 0x18, 0x4f, 0xc6,
- 0x35, 0x84, 0x39, 0xb5, 0x88, 0x2e, 0x59, 0x5d, 0xf5, 0x7e, 0xec, 0xc8,
- 0x03, 0xd8, 0x4d, 0xc7, 0x84, 0x3d, 0xbd, 0xcd, 0x4a, 0xfe, 0x45, 0x24,
- 0x8c, 0x8a, 0x6d, 0xc0, 0xfb, 0x89, 0xd6, 0x3f, 0x4c, 0xb0, 0x47, 0x16,
- 0x36, 0x12, 0x9b, 0xf9, 0xbe, 0x0d, 0xb6, 0x10, 0x5f, 0x65, 0x6c, 0x72,
- 0x59, 0xf4, 0xdd, 0x84, 0xea, 0xf8, 0x85, 0xc5, 0xe7, 0x10, 0xa5, 0x7b,
- 0x23, 0x25, 0x8c, 0x61, 0x91, 0x58, 0x12, 0xb7, 0x75, 0x57, 0x9c, 0x0b,
- 0x26, 0x76, 0x0f, 0x95, 0x98, 0x67, 0xe4, 0x07, 0xfc, 0x72, 0x25, 0x85,
- 0x4a, 0xe3, 0x9d, 0x27, 0xdd, 0x27, 0xe6, 0x1c, 0xa9, 0x9d, 0x46, 0x76,
- 0xa5, 0x35, 0x52, 0x84, 0x0a, 0x21, 0x0c, 0x61, 0x43, 0x04, 0xb6, 0x1d,
- 0x23, 0xae, 0xd4, 0xb6, 0xaa, 0x6b, 0x40, 0xdb, 0xd0, 0xcc, 0x6a, 0xd0,
- 0x92, 0x0b, 0xe9, 0xc6, 0x79, 0xfe, 0x70, 0x5d, 0x78, 0x9d, 0xa8, 0x93,
- 0x1e, 0x21, 0x49, 0xc6, 0xf5, 0xb2, 0x9a, 0x2e, 0xe7, 0x46, 0x72, 0xf9,
- 0xc9, 0x03, 0xd0, 0xfc, 0x60, 0xd5, 0x02, 0xa0, 0x13, 0x89, 0x15, 0x3c,
- 0xdb, 0x6d, 0x35, 0x36, 0xc4, 0xc0, 0xfd, 0xf5, 0x37, 0xcf, 0x0c, 0xf6,
- 0xac, 0x2b, 0x36, 0x47, 0x9a, 0xa4, 0xf0, 0x05, 0xfd, 0x71, 0xc1, 0xa6,
- 0x79, 0x5f, 0x56, 0x6a, 0x2d, 0x04, 0xf1, 0xad, 0x06, 0x80, 0xe9, 0xa1,
- 0xbc, 0x50, 0x74, 0x19, 0xeb, 0x4b, 0x1c, 0xcf, 0x53, 0x62, 0x44, 0x73,
- 0x3e, 0x4b, 0x8a, 0xa3, 0xbb, 0x30, 0x78, 0xa4, 0x4e, 0x33, 0xa5, 0xac,
- 0x25, 0x8e, 0x48, 0x4d, 0x9c, 0xfa, 0x74, 0x36, 0x64, 0x79, 0x68, 0xee,
- 0xe1, 0x77, 0x1b, 0x53, 0x26, 0x68, 0xf2, 0xd7, 0x72, 0x2c, 0xce, 0x18,
- 0xb2, 0x1f, 0x63, 0xb4, 0x10, 0x57, 0x00, 0xbe, 0x2f, 0xcd, 0x5e, 0x9b,
- 0x2e, 0xd9, 0xbf, 0x4a, 0x1d, 0x12, 0x10, 0x35, 0x17, 0x1e, 0xa5, 0xd0,
- 0x47, 0x72, 0x0d, 0xa6, 0x36, 0x46, 0x71, 0x2a, 0x23, 0x72, 0x98, 0xda,
- 0xb8, 0xdf, 0x4d, 0xfe, 0x4f, 0x27, 0xe4, 0x15, 0x31, 0x8d, 0x4b, 0x92,
- 0x2d, 0x53, 0x3a, 0x39, 0xb4, 0x79, 0x3a, 0x69, 0x96, 0x32, 0xf1, 0xdd,
- 0xde, 0x95, 0xea, 0x2d, 0x35, 0xef, 0x82, 0x6c, 0x18, 0x78, 0xa4, 0x89,
- 0xd9, 0x7f, 0xe9, 0xe4, 0x5e, 0x75, 0x06, 0x77, 0xc5, 0x0a, 0x65, 0x98,
- 0xa3, 0x26, 0x0e, 0x06, 0x6b, 0x3b, 0x41, 0x71, 0xcf, 0xbc, 0x5e, 0x51,
- 0x1c, 0xe0, 0x77, 0xb5, 0x56, 0xfc, 0x12, 0x2f, 0xec, 0x7c, 0x56, 0x6a,
- 0xb3, 0xd6, 0x81, 0xcf, 0x9a, 0x94, 0x66, 0xf9, 0xe1, 0x8c, 0xee, 0xc6,
- 0x67, 0xe5, 0xe5, 0x18, 0x21, 0xf8, 0xdb, 0x29, 0x39, 0x06, 0x11, 0x71,
- 0xad, 0x6f, 0x72, 0x12, 0x6a, 0x13, 0x6f, 0xe5, 0x2b, 0x52, 0x85, 0x1e,
- 0x22, 0x4b, 0x73, 0x8f, 0xd8, 0xda, 0x7c, 0xca, 0xd8, 0xb1, 0xe4, 0xd9,
- 0xe7, 0xcf, 0x9e, 0x6e, 0x27, 0x1d, 0x08, 0xe1, 0x76, 0xac, 0xe0, 0x14,
- 0x4e, 0x9c, 0x50, 0x78, 0x43, 0xbb, 0xc9, 0xa9, 0x2e, 0x1b, 0x67, 0x7e,
- 0x8b, 0x83, 0x33, 0xe7, 0x1a, 0x2d, 0xe4, 0x6a, 0x47, 0xb5, 0x23, 0x16,
- 0xcd, 0x01, 0x92, 0x80, 0x3e, 0x96, 0xf1, 0xcb, 0x5b, 0x90, 0xf3, 0x69,
- 0xed, 0x44, 0xb8, 0x4b, 0xea, 0x61, 0x02, 0x69, 0xa8, 0x6a, 0x0a, 0x82,
- 0xdb, 0x46, 0xae, 0x6a, 0x34, 0x87, 0x94, 0xa1, 0xe3, 0x50, 0x56, 0x45,
- 0x01, 0xb9, 0xa1, 0x7a, 0xc0, 0xa5, 0x77, 0x3b, 0xb0, 0x87, 0x84, 0xd3,
- 0xb2, 0xf8, 0xfa, 0x89, 0x91, 0xa1, 0x9a, 0x2b, 0x11, 0xd7, 0x23, 0x5d,
- 0x67, 0xed, 0x79, 0x64, 0x72, 0x3d, 0xda, 0x29, 0xfa, 0xbe, 0x40, 0xa5,
- 0x64, 0x4d, 0x98, 0xd5, 0x31, 0xb8, 0x96, 0xe7, 0x5a, 0x8c, 0x84, 0x15,
- 0x90, 0x52, 0x70, 0x0e, 0xec, 0xf0, 0xd0, 0x6a, 0xe4, 0x02, 0xf5, 0x5d,
- 0xc5, 0xe2, 0xa0, 0xce, 0x90, 0x54, 0xd3, 0xcd, 0x5b, 0x3d, 0x5b, 0x99,
- 0x9a, 0xa2, 0xbb, 0x4d, 0x79, 0x1d, 0xba, 0x19, 0x29, 0xfa, 0x77, 0xbb,
- 0x2b, 0xc3, 0x64, 0x34, 0xfe, 0x6a, 0x67, 0x22, 0x56, 0xf4, 0x1e, 0xf6,
- 0x14, 0x33, 0x30, 0xc1, 0x99, 0x32, 0x08, 0xc9, 0x64, 0x92, 0x2d, 0x74,
- 0x78, 0x67, 0x67, 0xfb, 0xe1, 0x4e, 0xcb, 0x93, 0x0f, 0x75, 0xf2, 0x9c,
- 0xdd, 0x1b, 0x1e, 0x69, 0xf9, 0x95, 0xd7, 0x07, 0xfa, 0x66, 0x0e, 0x40,
- 0x3b, 0x6d, 0x20, 0x86, 0x13, 0x32, 0x84, 0x86, 0x14, 0x09, 0x4a, 0x2e,
- 0x8e, 0xe4, 0xbd, 0x08, 0x3e, 0x8d, 0x07, 0xd8, 0x1e, 0xbb, 0x18, 0xbf,
- 0xcc, 0x0d, 0x25, 0x22, 0x84, 0x40, 0x52, 0x20, 0xeb, 0x39, 0x34, 0x9b,
- 0x30, 0xd4, 0x3a, 0x5d, 0xb7, 0xbc, 0xc1, 0xc1, 0xd0, 0xcd, 0xfb, 0x89,
- 0xe7, 0x6e, 0xe7, 0x53, 0xa8, 0x9e, 0x08, 0x76, 0xcb, 0x47, 0xd2, 0x1a,
- 0xf4, 0x69, 0x8b, 0xb5, 0xe4, 0x3a, 0xbe, 0xc3, 0x80, 0x73, 0x93, 0x9f,
- 0xf4, 0xaa, 0x31, 0x87, 0xbb, 0xd3, 0x77, 0x95, 0x4a, 0x83, 0x46, 0xa2,
- 0x7e, 0x74, 0x63, 0x66, 0xc6, 0x4b, 0xae, 0x17, 0x2c, 0x84, 0x07, 0x36,
- 0x49, 0x32, 0xad, 0x42, 0xef, 0x3b, 0xfa, 0x66, 0xf7, 0x37, 0x97, 0xc5,
- 0x06, 0xad, 0xc3, 0x98, 0x7f, 0xda, 0x9a, 0xcc, 0x3e, 0x9f, 0x51, 0x50,
- 0x2a, 0xc4, 0x34, 0x76, 0x14, 0xe9, 0x0a, 0xd3, 0xb6, 0xed, 0x1c, 0xae,
- 0x05, 0xe3, 0x59, 0x34, 0x1e, 0xfc, 0xbd, 0x82, 0xc7, 0x0b, 0xef, 0x59,
- 0xf5, 0xb8, 0x69, 0xa3, 0x6d, 0x8f, 0xc3, 0x67, 0x6d, 0x8f, 0x83, 0xcd,
- 0x40, 0x5f, 0x41, 0xf6, 0x05, 0x18, 0x66, 0x9d, 0xbc, 0xd3, 0xc7, 0x92,
- 0xad, 0xd1, 0xf9, 0xbb, 0xe3, 0x6f, 0xce, 0xb6, 0x1f, 0xf2, 0x54, 0xb6,
- 0xe5, 0xbf, 0x1d, 0x57, 0xaa, 0x78, 0x61, 0xe9, 0x3e, 0x6c, 0x94, 0x6f,
- 0x46, 0xa3, 0xc1, 0xe1, 0xf9, 0x09, 0x8a, 0xaa, 0x8d, 0xcc, 0x9f, 0x2b,
- 0xf8, 0x7e, 0x87, 0xa0, 0x9b, 0x1e, 0x7c, 0x2f, 0x69, 0x9f, 0xb5, 0xc2,
- 0x05, 0xe1, 0x07, 0x44, 0x11, 0x76, 0x28, 0x0f, 0xa2, 0xe4, 0xd9, 0x3c,
- 0x7e, 0x34, 0xdf, 0x35, 0x7c, 0xce, 0x4f, 0x76, 0xf0, 0x29, 0xfa, 0x24,
- 0x06, 0xb4, 0xc2, 0x89, 0xb0, 0x0c, 0xeb, 0xa9, 0x91, 0xe6, 0x03, 0xb0,
- 0x29, 0x04, 0xb4, 0xe2, 0xb8, 0x8d, 0xfd, 0x47, 0xd7, 0x89, 0x0b, 0xdc,
- 0xc5, 0xb3, 0x66, 0xc8, 0x21, 0x46, 0x69, 0x11, 0x42, 0x41, 0xde, 0x75,
- 0xc0, 0xc1, 0x50, 0x63, 0x9e, 0x25, 0xd4, 0xce, 0x1e, 0x69, 0x94, 0xb5,
- 0xeb, 0x1a, 0xd9, 0x1c, 0x2c, 0x93, 0xe4, 0x60, 0x93, 0xa3, 0x4b, 0x59,
- 0x51, 0x2e, 0xaf, 0x6f, 0xd8, 0xcc, 0x6a, 0xfb, 0x22, 0x20, 0xcb, 0x35,
- 0x0a, 0x6b, 0xf9, 0xc1, 0x4d, 0x27, 0xc3, 0x4a, 0x90, 0xb5, 0x65, 0xfc,
- 0xa1, 0x63, 0x40, 0x41, 0x22, 0x56, 0x6f, 0x18, 0x7e, 0x31, 0xfd, 0xa7,
- 0xb0, 0xec, 0xae, 0xd1, 0x40, 0xc6, 0x1c, 0x40, 0x85, 0x33, 0xad, 0x68,
- 0x66, 0x73, 0xf9, 0x6b, 0x5a, 0xdc, 0xc3, 0x69, 0x2a, 0x5e, 0x7c, 0xa4,
- 0x6e, 0xda, 0x3d, 0xdd, 0xde, 0xe8, 0x4d, 0x35, 0xe1, 0xaa, 0xf6, 0x00,
- 0xa3, 0x72, 0xce, 0xe6, 0xba, 0x3d, 0x8b, 0x7a, 0xca, 0x73, 0x73, 0x4d,
- 0xc3, 0xc0, 0x1b, 0x14, 0x7d, 0x6d, 0xa5, 0x6f, 0x8c, 0x62, 0x09, 0x97,
- 0x89, 0x22, 0x2c, 0x9b, 0x20, 0x22, 0x8a, 0x50, 0x71, 0x6c, 0xcb, 0x98,
- 0x0f, 0xe5, 0x6c, 0xd9, 0x40, 0x17, 0x20, 0xd7, 0x28, 0xe5, 0xc5, 0x6c,
- 0xbb, 0x42, 0x1b, 0x68, 0x35, 0xf1, 0xa0, 0xa8, 0x49, 0x72, 0x14, 0x42,
- 0xf8, 0x5d, 0x35, 0xbc, 0xa1, 0x0b, 0x04, 0x70, 0x34, 0x51, 0xbc, 0x14,
- 0x34, 0xb3, 0xdc, 0x16, 0x9a, 0x5a, 0x00, 0xa0, 0x74, 0x5b, 0xc6, 0x8b,
- 0x36, 0x9b, 0xf5, 0xd3, 0xb5, 0x6a, 0xcd, 0x8e, 0xfa, 0xd8, 0x49, 0x74,
- 0xb7, 0x20, 0xeb, 0x4e, 0x6b, 0x8c, 0xa6, 0x71, 0xad, 0xc2, 0x2c, 0x2b,
- 0x6a, 0x60, 0x4c, 0xa7, 0x64, 0x7c, 0x6f, 0x3f, 0xc6, 0xdf, 0x49, 0x81,
- 0xea, 0xb1, 0x8a, 0xf0, 0x63, 0x79, 0x54, 0xdc, 0x62, 0x0c, 0xd7, 0x81,
- 0x52, 0xda, 0x5f, 0xea, 0x34, 0xfd, 0x7d, 0xc6, 0x08, 0x34, 0x5e, 0x62,
- 0xac, 0x46, 0x6b, 0x91, 0x59, 0xcb, 0xef, 0xd6, 0x50, 0xa2, 0x89, 0x18,
- 0xe2, 0x89, 0x60, 0x03, 0x53, 0x48, 0xdd, 0x8e, 0x4a, 0xd5, 0x23, 0xf2,
- 0xba, 0xa5, 0x5c, 0xbd, 0x8d, 0x5f, 0xf6, 0xbe, 0x61, 0xb3, 0x78, 0xca,
- 0xf5, 0x05, 0x16, 0xdd, 0xea, 0x0c, 0x1f, 0x31, 0x21, 0x6e, 0xfc, 0xee,
- 0x87, 0x81, 0x65, 0x67, 0xe3, 0xc6, 0xf5, 0x44, 0x38, 0xa0, 0x86, 0xb2,
- 0x0b, 0xb7, 0x3e, 0xc8, 0x5f, 0xe8, 0x0c, 0xfc, 0x90, 0x17, 0x46, 0x33,
- 0xac, 0xb7, 0x75, 0x73, 0x0a, 0x05, 0x41, 0x78, 0x76, 0xab, 0xcd, 0xda,
- 0x58, 0x62, 0x46, 0xe2, 0x38, 0xc8, 0x1e, 0x29, 0xce, 0x1c, 0xb6, 0x09,
- 0x44, 0x91, 0x57, 0x47, 0xef, 0x7e, 0x11, 0xa4, 0xbe, 0x4c, 0xac, 0xd0,
- 0x41, 0x1b, 0xa0, 0xc1, 0x34, 0x66, 0x41, 0x91, 0x7f, 0x1a, 0xda, 0x20,
- 0x3f, 0xee, 0x0d, 0x26, 0xaf, 0x70, 0x7e, 0x2f, 0x23, 0x08, 0x23, 0xc5,
- 0xa3, 0x21, 0xd9, 0xba, 0x81, 0x2c, 0x9a, 0x5d, 0x8c, 0x73, 0xeb, 0xd9,
- 0x76, 0x72, 0xd5, 0x2c, 0xb6, 0xf6, 0xb6, 0x99, 0x25, 0x59, 0xca, 0xf7,
- 0x96, 0xee, 0xba, 0x0f, 0x7d, 0x39, 0x84, 0x32, 0xc4, 0x09, 0x75, 0x75,
- 0x25, 0x50, 0x03, 0x0f, 0xb9, 0x77, 0x57, 0x72, 0x82, 0x79, 0xc2, 0x6c,
- 0xbd, 0x4f, 0x9b, 0xdb, 0xd8, 0x75, 0x2e, 0x03, 0xfc, 0xb3, 0x20, 0x9e,
- 0x40, 0xe4, 0x25, 0x1a, 0x0b, 0xc2, 0x15, 0x5d, 0x94, 0x8a, 0x33, 0x92,
- 0xb4, 0x6c, 0x66, 0x6e, 0x36, 0x1d, 0x90, 0x0c, 0xb9, 0xae, 0x4a, 0x73,
- 0x45, 0x56, 0x11, 0x32, 0x35, 0xb1, 0x29, 0x2e, 0x91, 0x87, 0x73, 0x9b,
- 0x57, 0x65, 0x01, 0xc6, 0xba, 0xdb, 0xb4, 0xca, 0x11, 0xee, 0xef, 0x7d,
- 0x7b, 0xf6, 0xf6, 0xb8, 0xe7, 0xbb, 0x46, 0xae, 0x72, 0xf1, 0xa6, 0x63,
- 0xfd, 0xba, 0xbe, 0x6a, 0x5d, 0xcd, 0x98, 0xeb, 0xd0, 0x5c, 0xe9, 0x46,
- 0xcb, 0x61, 0x5b, 0xea, 0x56, 0x0f, 0x13, 0xa9, 0xf6, 0x36, 0x5a, 0x6e,
- 0xd4, 0x49, 0x01, 0x04, 0x48, 0x29, 0x2f, 0xdd, 0x65, 0x21, 0x18, 0x07,
- 0xae, 0x04, 0x35, 0x0e, 0x51, 0x67, 0xa1, 0xf4, 0x4b, 0x49, 0x25, 0x5e,
- 0xb9, 0x29, 0x52, 0xf4, 0x79, 0x03, 0x60, 0x69, 0x63, 0x00, 0xf9, 0xcd,
- 0xf9, 0x3d, 0x59, 0x36, 0x9b, 0xed, 0x0b, 0x70, 0xb3, 0x26, 0x63, 0xbc,
- 0xd9, 0xd4, 0xe9, 0x05, 0x70, 0xd4, 0xc9, 0xf8, 0xb0, 0xc0, 0xe7, 0x8a,
- 0x6f, 0xf3, 0xae, 0xe6, 0x4f, 0xb8, 0xd6, 0xb9, 0x71, 0x77, 0xfa, 0x0e,
- 0xf8, 0xf4, 0x05, 0xa5, 0xe4, 0x43, 0xea, 0x9a, 0xd4, 0x25, 0x77, 0xb5,
- 0x6b, 0x83, 0xb6, 0x41, 0x05, 0xc4, 0x62, 0x1e, 0xfa, 0x16, 0xcd, 0xe7,
- 0xcb, 0x49, 0xde, 0x8a, 0x80, 0x5b, 0x87, 0x9f, 0xd0, 0x50, 0x70, 0x8a,
- 0x0a, 0x6b, 0x4a, 0x85, 0x57, 0x29, 0x30, 0xa1, 0x26, 0x57, 0xb0, 0xd7,
- 0x99, 0xab, 0x1b, 0x80, 0x2a, 0xcb, 0x82, 0x47, 0xc8, 0xd4, 0x84, 0x7c,
- 0x9e, 0x16, 0x67, 0x29, 0x5f, 0xeb, 0xfb, 0xd9, 0xd0, 0x41, 0x0d, 0x62,
- 0xb1, 0x86, 0x1d, 0x32, 0xc5, 0x2a, 0x27, 0xcc, 0xea, 0xc8, 0xbc, 0x80,
- 0x96, 0xf1, 0x49, 0xa9, 0x11, 0x43, 0x25, 0xd9, 0x4e, 0xa7, 0xfa, 0xb8,
- 0x91, 0xc0, 0x64, 0xfe, 0xc6, 0x36, 0x8d, 0x0d, 0x65, 0x63, 0x3b, 0xb2,
- 0xd6, 0x41, 0x2c, 0xf7, 0x4a, 0xda, 0x1a, 0x35, 0xb1, 0xed, 0xa1, 0x34,
- 0x63, 0x13, 0xbe, 0xee, 0x7a, 0x59, 0xdd, 0x22, 0x6b, 0x55, 0x0a, 0xbd,
- 0x30, 0x52, 0xd8, 0x2d, 0x4a, 0x1c, 0x36, 0x01, 0xc1, 0xee, 0x7a, 0x48,
- 0x28, 0xce, 0x6a, 0x29, 0x9c, 0xce, 0xdf, 0x70, 0x2f, 0x6c, 0x07, 0xad,
- 0xb9, 0x43, 0x04, 0x26, 0xac, 0xca, 0x06, 0x98, 0xfd, 0xb2, 0x06, 0x13,
- 0x63, 0x53, 0xa5, 0x13, 0xf7, 0x97, 0x41, 0x5a, 0x4f, 0xf2, 0x5c, 0x0b,
- 0x87, 0x50, 0xa8, 0x30, 0x23, 0x74, 0x6c, 0x9c, 0xdf, 0xc6, 0xfa, 0xed,
- 0x2d, 0x61, 0xff, 0xb4, 0x64, 0x4f, 0x2f, 0x03, 0x50, 0xb8, 0xf2, 0x3a,
- 0xe0, 0x2c, 0xc8, 0x94, 0x93, 0x38, 0x62, 0xac, 0x96, 0x8a, 0x26, 0xde,
- 0xac, 0xb0, 0x6f, 0x8d, 0x09, 0xbe, 0xe7, 0xdb, 0xe0, 0x3a, 0x09, 0x03,
- 0x2a, 0xcd, 0x57, 0x37, 0x6c, 0x4f, 0xde, 0xdd, 0xed, 0x0f, 0xd7, 0x94,
- 0x53, 0xf7, 0x83, 0x41, 0xcf, 0x3b, 0x16, 0x0a, 0xb3, 0x35, 0xc5, 0xec,
- 0x93, 0xd1, 0x76, 0xab, 0xc8, 0xda, 0xe1, 0xe9, 0xf9, 0xbb, 0x04, 0x14,
- 0x59, 0x20, 0xe3, 0x2d, 0x6a, 0xae, 0xb3, 0xc4, 0x3f, 0x66, 0x3d, 0x19,
- 0x16, 0x73, 0x12, 0x42, 0x3f, 0x95, 0x85, 0x1c, 0x56, 0x44, 0x98, 0xf4,
- 0xc4, 0x58, 0xb7, 0x22, 0xf1, 0xf2, 0x1d, 0x59, 0xca, 0xab, 0x91, 0xd1,
- 0x1d, 0x8e, 0xf9, 0xe4, 0x90, 0x3f, 0xac, 0x92, 0x76, 0x7c, 0xef, 0xf2,
- 0x92, 0xda, 0xef, 0x5a, 0x8a, 0xb0, 0x32, 0x11, 0x42, 0xb0, 0x40, 0xa8,
- 0x37, 0x99, 0x65, 0x23, 0x13, 0xe3, 0xce, 0x52, 0xeb, 0x69, 0xa9, 0x14,
- 0xc6, 0x6b, 0x80, 0x78, 0x42, 0x53, 0xdc, 0xe3, 0x3a, 0x85, 0xa5, 0x24,
- 0x30, 0x13, 0x5b, 0x2c, 0x8a, 0x80, 0x91, 0xc0, 0xce, 0x78, 0x12, 0x5a,
- 0xa3, 0x01, 0xea, 0x78, 0x7d, 0xa2, 0x98, 0x76, 0x96, 0x6a, 0xb4, 0xac,
- 0x59, 0xe2, 0x77, 0x7d, 0xfe, 0xe8, 0x78, 0x49, 0x32, 0xa2, 0xf3, 0x0d,
- 0x59, 0x60, 0xd6, 0x9d, 0xf8, 0x09, 0xfa, 0x9e, 0x78, 0xc1, 0x98, 0x09,
- 0x89, 0x92, 0x3a, 0xb3, 0x74, 0x6e, 0xb4, 0x83, 0x42, 0x33, 0x07, 0xc8,
- 0x01, 0x4c, 0xf0, 0xce, 0xee, 0x54, 0x2e, 0x53, 0x91, 0x59, 0x2d, 0x6c,
- 0x54, 0x27, 0xa1, 0x80, 0x3f, 0x43, 0x80, 0x36, 0xbf, 0xf9, 0x58, 0x92,
- 0x18, 0x5e, 0x87, 0x14, 0x01, 0x36, 0x9b, 0x83, 0x38, 0x5a, 0x67, 0x8e,
- 0xc9, 0x68, 0xb9, 0x09, 0x5b, 0x73, 0xd6, 0x4c, 0xc0, 0xe4, 0x66, 0x59,
- 0x7c, 0x34, 0x5d, 0x08, 0x13, 0x9a, 0x15, 0xfb, 0x4b, 0x8c, 0xea, 0x5c,
- 0xa8, 0x91, 0xfe, 0x62, 0xf9, 0x09, 0xb8, 0x05, 0xe2, 0xc1, 0xbd, 0x25,
- 0x7f, 0x5e, 0x58, 0xec, 0x3b, 0xd6, 0xbb, 0xa9, 0x3d, 0x21, 0x69, 0xe3,
- 0x26, 0x30, 0x8a, 0x6f, 0xd7, 0x75, 0x76, 0x25, 0x8e, 0xcd, 0x7e, 0xc4,
- 0xcd, 0x22, 0x0a, 0x27, 0x87, 0xb4, 0x95, 0x02, 0x0a, 0x29, 0x4a, 0x8a,
- 0xfb, 0x0a, 0x04, 0xe2, 0x12, 0x1b, 0x9f, 0x2c, 0x37, 0x7c, 0x93, 0xf6,
- 0x83, 0x5f, 0xe6, 0x24, 0xd2, 0x93, 0x76, 0x76, 0xfd, 0xaa, 0x7d, 0xc0,
- 0xba, 0x0a, 0xfc, 0x59, 0x66, 0x13, 0xb8, 0x64, 0x7c, 0x81, 0xa5, 0x58,
- 0xd5, 0x8d, 0x6a, 0x11, 0xfa, 0x35, 0xd0, 0x22, 0x92, 0xcb, 0xe5, 0x76,
- 0x65, 0x85, 0xdd, 0x64, 0x73, 0x3a, 0xaa, 0x22, 0x0f, 0xfe, 0x89, 0xb3,
- 0xe4, 0x06, 0xe2, 0x4d, 0x94, 0xfd, 0x61, 0x67, 0x92, 0x8a, 0x47, 0xc9,
- 0xc3, 0x77, 0x46, 0xfc, 0x90, 0x34, 0xf4, 0x84, 0xe1, 0x3b, 0x96, 0x48,
- 0x2a, 0x08, 0xdd, 0x48, 0x83, 0xc4, 0xea, 0xdf, 0x22, 0x05, 0xa9, 0x79,
- 0xc2, 0xdb, 0x9f, 0xbf, 0x0b, 0xd3, 0xbe, 0xbd, 0x8a, 0x06, 0x0f, 0xcb,
- 0x41, 0x6b, 0xc1, 0xcb, 0xcf, 0x56, 0x78, 0xb8, 0x7e, 0xbb, 0x10, 0x6c,
- 0x33, 0x01, 0xc6, 0x65, 0x60, 0xd1, 0x12, 0x81, 0xa2, 0xd5, 0xff, 0x61,
- 0x42, 0x90, 0xbe, 0x28, 0x5d, 0xce, 0xa7, 0x71, 0x16, 0x06, 0x5d, 0x5b,
- 0x29, 0x42, 0x28, 0x91, 0x0b, 0x5a, 0x0d, 0xe5, 0x7f, 0x39, 0x79, 0x6d,
- 0x36, 0x19, 0xe9, 0xac, 0x54, 0x9b, 0xf6, 0xeb, 0x55, 0x8b, 0x8b, 0x72,
- 0xe7, 0x1a, 0xe1, 0x85, 0x9d, 0x4f, 0x95, 0xdd, 0x7d, 0x6a, 0x2e, 0x62,
- 0xea, 0x1b, 0x7a, 0x9b, 0x9d, 0xa3, 0xef, 0x5a, 0xd8, 0x20, 0xee, 0x97,
- 0x00, 0x93, 0x1a, 0xf0, 0x52, 0x46, 0xaf, 0x5a, 0x56, 0x0d, 0xd6, 0x5a,
- 0x0a, 0x94, 0x48, 0x0d, 0x9d, 0x2a, 0xa3, 0x3e, 0xb7, 0x3b, 0x1c, 0x90,
- 0xcd, 0xb1, 0x37, 0xbb, 0xce, 0xcc, 0x41, 0xe4, 0xd4, 0xa1, 0x71, 0x55,
- 0x7e, 0xcc, 0x78, 0xd7, 0xc1, 0xbc, 0x00, 0x7b, 0x12, 0xeb, 0x52, 0xe2,
- 0x94, 0x35, 0x72, 0x6e, 0x6a, 0x21, 0x8c, 0x11, 0x7d, 0x96, 0xca, 0xa1,
- 0x09, 0xed, 0x82, 0x93, 0x86, 0xb9, 0x63, 0x3d, 0x50, 0x76, 0x70, 0x5e,
- 0xae, 0x09, 0x51, 0xb5, 0xc5, 0x4f, 0xbe, 0xdd, 0x04, 0xcc, 0x85, 0xb8,
- 0xf2, 0xf0, 0xfb, 0x67, 0x5f, 0x3c, 0x35, 0xab, 0x4f, 0xbe, 0x5d, 0x75,
- 0xff, 0xe4, 0x47, 0x56, 0xf4, 0xf1, 0x55, 0xce, 0xcc, 0x5e, 0x82, 0x27,
- 0x2c, 0x79, 0x69, 0x36, 0x15, 0xfb, 0xc4, 0x28, 0xa6, 0xd5, 0x75, 0x77,
- 0xa1, 0x5a, 0xdf, 0x40, 0x4d, 0x8f, 0x29, 0xa3, 0x7a, 0x60, 0xb2, 0x91,
- 0x26, 0xce, 0x69, 0x0e, 0x53, 0x57, 0x3f, 0x53, 0x68, 0xb9, 0xfb, 0xac,
- 0x24, 0x99, 0x1d, 0x13, 0x39, 0xe4, 0xce, 0x91, 0xc3, 0x69, 0xb1, 0xd0,
- 0xc3, 0x69, 0x79, 0xc0, 0xbd, 0x93, 0xd7, 0x4e, 0xd1, 0xfc, 0x37, 0x42,
- 0x05, 0x1b, 0xad, 0xb6, 0x21, 0x58, 0x18, 0xbe, 0x15, 0xa8, 0x9d, 0x5c,
- 0xb7, 0xca, 0x26, 0x8e, 0x70, 0xde, 0xb7, 0xe5, 0x95, 0xa1, 0x6a, 0x06,
- 0xbe, 0x6e, 0xc0, 0x9c, 0xe1, 0xc9, 0x31, 0x19, 0x2d, 0x11, 0x8b, 0x90,
- 0x3d, 0x17, 0xb9, 0x4d, 0xbc, 0xcb, 0x85, 0x6f, 0x98, 0x11, 0x5c, 0x62,
- 0x61, 0xa7, 0x0a, 0xce, 0xe2, 0xc1, 0x5b, 0xba, 0xbb, 0xf0, 0xd4, 0x53,
- 0x8f, 0x18, 0xff, 0x24, 0x66, 0x9a, 0xfe, 0xc0, 0x16, 0xac, 0x6a, 0x81,
- 0x67, 0xd8, 0x48, 0x81, 0x76, 0xcc, 0x79, 0xc4, 0xb1, 0xc1, 0x26, 0xde,
- 0x63, 0xfe, 0x2b, 0x07, 0x9f, 0xef, 0xf6, 0x45, 0x44, 0x51, 0xb8, 0xcb,
- 0x7f, 0x06, 0x85, 0xd8, 0x43, 0x3d, 0x82, 0x1e, 0x33, 0x3f, 0xb5, 0x4f,
- 0x86, 0x32, 0x50, 0x88, 0x2f, 0x9f, 0x3d, 0xa1, 0x98, 0x77, 0xdc, 0xa7,
- 0xc4, 0x17, 0xad, 0xef, 0x45, 0xb0, 0x6e, 0x84, 0x3a, 0x06, 0xfe, 0xf4,
- 0xce, 0x96, 0x5d, 0x8d, 0x13, 0x89, 0x97, 0x6e, 0xd6, 0x5c, 0x5d, 0x3e,
- 0xe2, 0x91, 0x98, 0xe6, 0x75, 0xc4, 0x89, 0xc1, 0x78, 0x36, 0xd9, 0x70,
- 0xb6, 0xe4, 0x18, 0x8a, 0xab, 0xf0, 0xd6, 0xc6, 0x2a, 0x9a, 0x03, 0xd3,
- 0x43, 0x69, 0x04, 0xed, 0xb5, 0x99, 0xfd, 0xb5, 0xe7, 0xe4, 0xc5, 0xf0,
- 0x69, 0xeb, 0x9c, 0x34, 0xb3, 0xf9, 0xe0, 0x6e, 0xfc, 0x40, 0xec, 0xe3,
- 0xf2, 0xf4, 0x6d, 0x32, 0x5f, 0xa2, 0xa8, 0xb7, 0xf0, 0xf8, 0xde, 0xcf,
- 0x32, 0x75, 0x43, 0x93, 0x83, 0x87, 0x7d, 0x85, 0x37, 0x60, 0x77, 0x0c,
- 0x21, 0xdd, 0x51, 0xa0, 0xad, 0x4d, 0x23, 0x15, 0xbb, 0x5f, 0x78, 0xeb,
- 0xa8, 0x49, 0xf6, 0x67, 0x2f, 0x16, 0xb3, 0x3c, 0x9a, 0xe9, 0xa3, 0x40,
- 0xdb, 0xec, 0x53, 0x36, 0x59, 0x22, 0x4e, 0x4d, 0xea, 0x21, 0x51, 0x40,
- 0xad, 0x77, 0xa0, 0x7b, 0x4e, 0x73, 0x71, 0x93, 0x9b, 0x1f, 0x74, 0x27,
- 0xa3, 0x3b, 0x76, 0x1e, 0x7c, 0xe0, 0x3d, 0xe3, 0x94, 0xf7, 0xd8, 0xef,
- 0x82, 0x58, 0x31, 0xe0, 0xfd, 0x74, 0x21, 0x9a, 0x2d, 0x95, 0x5f, 0x17,
- 0xac, 0x74, 0xbc, 0xcd, 0x27, 0x55, 0x59, 0x97, 0x57, 0x0c, 0x5c, 0xf3,
- 0x4c, 0xa4, 0x93, 0x93, 0x51, 0x72, 0x97, 0x8d, 0x35, 0x4b, 0x76, 0x18,
- 0x3a, 0x93, 0x21, 0x43, 0x28, 0x42, 0x52, 0xe5, 0x59, 0x43, 0x53, 0xa6,
- 0x31, 0xd1, 0xbe, 0x16, 0x40, 0x12, 0x4e, 0x15, 0x28, 0xf0, 0x54, 0x45,
- 0x6e, 0xc6, 0x17, 0xd3, 0x22, 0x2b, 0x23, 0x81, 0x71, 0xee, 0x80, 0x5e,
- 0x2b, 0xbc, 0x4f, 0x70, 0x87, 0x8f, 0xd3, 0x9a, 0x33, 0x5a, 0xd8, 0x3b,
- 0x60, 0xc4, 0x0e, 0xe9, 0x28, 0xe2, 0xb8, 0xfc, 0x48, 0x3e, 0xb3, 0x20,
- 0x79, 0x65, 0x9c, 0x51, 0x49, 0x3b, 0x0a, 0xf7, 0xb7, 0xbd, 0x77, 0xc5,
- 0xb4, 0xac, 0x00, 0x48, 0xf2, 0xaa, 0x64, 0xa0, 0xc8, 0xdc, 0xb2, 0x42,
- 0x16, 0x16, 0x28, 0x48, 0x43, 0x79, 0x7a, 0x77, 0xc3, 0x71, 0x5b, 0x5d,
- 0x05, 0xba, 0x9c, 0x90, 0x78, 0xcb, 0xb9, 0x3e, 0x42, 0xc4, 0x4e, 0xfd,
- 0x77, 0xd7, 0x8d, 0xb7, 0x1a, 0x51, 0xba, 0x42, 0x59, 0x0f, 0x97, 0x65,
- 0x2a, 0xee, 0x99, 0xd7, 0xf9, 0xf5, 0x8a, 0x4a, 0x8a, 0x96, 0xef, 0x01,
- 0x97, 0x13, 0x4e, 0x2c, 0x7a, 0x23, 0x57, 0x66, 0xc5, 0x67, 0x34, 0x09,
- 0x0a, 0x84, 0x82, 0xe4, 0x26, 0xf4, 0xc4, 0xae, 0xd8, 0x7d, 0xab, 0x68,
- 0x32, 0x3c, 0xcd, 0xb1, 0x13, 0x58, 0xc2, 0xcd, 0xd2, 0xd8, 0xfa, 0x6e,
- 0xa4, 0xc0, 0xfc, 0xca, 0x98, 0x52, 0xbb, 0x2b, 0xf6, 0x04, 0xc4, 0x54,
- 0x3e, 0x5f, 0xcb, 0x0b, 0x38, 0x29, 0xbc, 0x98, 0x6c, 0x5c, 0xe9, 0x5b,
- 0x45, 0x07, 0x8d, 0x90, 0x56, 0x04, 0x98, 0xe2, 0x45, 0x65, 0x6d, 0x15,
- 0x71, 0x5a, 0x9e, 0x76, 0xc8, 0xcb, 0x3f, 0xba, 0x25, 0xfd, 0x60, 0x7f,
- 0x30, 0xce, 0x52, 0xaa, 0xdb, 0xf1, 0xb2, 0x21, 0x85, 0x29, 0x9e, 0xa8,
- 0xb2, 0x22, 0x4f, 0xe5, 0x6b, 0x7e, 0xf3, 0x12, 0x9a, 0x16, 0x2d, 0xed,
- 0xd9, 0xe1, 0xfb, 0xcb, 0x6f, 0x93, 0x64, 0x9f, 0xb8, 0xe1, 0x1f, 0x93,
- 0xa8, 0x02, 0x89, 0xd0, 0x6a, 0x45, 0x4f, 0x35, 0x1d, 0xa8, 0xb2, 0xf8,
- 0xeb, 0xb2, 0x68, 0xd7, 0x04, 0x88, 0x39, 0xe9, 0x71, 0x7f, 0xca, 0xd5,
- 0xcb, 0x99, 0xd3, 0x2d, 0x98, 0xb5, 0x16, 0x8d, 0xe1, 0x15, 0x19, 0x0c,
- 0x30, 0xed, 0xe4, 0xeb, 0x7a, 0x20, 0x9e, 0x59, 0xc7, 0x19, 0x3b, 0xa4,
- 0xb7, 0xd2, 0x5d, 0xa5, 0x14, 0xd2, 0xc0, 0x69, 0x95, 0x89, 0xa7, 0xbf,
- 0xe9, 0x56, 0x82, 0xbc, 0x78, 0x73, 0xd4, 0x69, 0xee, 0xf9, 0x67, 0xcf,
- 0x76, 0xff, 0x40, 0xb4, 0x5e, 0x49, 0xfe, 0x11, 0xf1, 0x23, 0x44, 0x89,
- 0x74, 0x7e, 0xa8, 0x28, 0x8f, 0x55, 0x3d, 0x0d, 0xa5, 0x3c, 0xe4, 0x67,
- 0xda, 0xd7, 0xcd, 0x94, 0x60, 0x5b, 0x96, 0x88, 0xa3, 0x52, 0x75, 0xff,
- 0xbf, 0xfe, 0x3b, 0xcc, 0xb3, 0xfd, 0xe9, 0x17, 0x76, 0x16, 0x5f, 0xa1,
- 0x54, 0x9a, 0xc3, 0xfd, 0xab, 0x98, 0xa9, 0xdd, 0x8d, 0x4c, 0x27, 0x7a,
- 0xf3, 0x4f, 0x9b, 0xb6, 0x9c, 0x09, 0x74, 0xfe, 0x68, 0x96, 0xb6, 0x5e,
- 0x9e, 0xd2, 0x37, 0x5d, 0x58, 0x54, 0xc0, 0x4e, 0x3d, 0x75, 0xc0, 0xa5,
- 0x58, 0x4a, 0x85, 0x8f, 0xe9, 0xaa, 0x72, 0x44, 0x5a, 0x96, 0x43, 0x18,
- 0xbd, 0xd4, 0x5f, 0x4e, 0x5e, 0x72, 0x06, 0x59, 0xa1, 0xff, 0xa4, 0x8a,
- 0x22, 0x9f, 0x39, 0x2f, 0x56, 0xf8, 0x2f, 0x05, 0x49, 0xf4, 0x5f, 0x66,
- 0x05, 0xfa, 0xcd, 0x5d, 0xf9, 0xdf, 0x6d, 0x5f, 0xa6, 0xd1, 0x30, 0xa8,
- 0xc7, 0x1f, 0xfe, 0xb4, 0x47, 0x09, 0x42, 0xbd, 0x6e, 0x13, 0x0c, 0xf6,
- 0xb7, 0xab, 0x6a, 0x15, 0xa4, 0x75, 0x04, 0xbb, 0xfa, 0x41, 0xca, 0x3e,
- 0xee, 0x93, 0xde, 0xf8, 0xdf, 0x43, 0xfa, 0xef, 0x4f, 0x7b, 0x83, 0x67,
- 0xbf, 0xd8, 0x8f, 0xfe, 0x69, 0xef, 0xc3, 0x9f, 0xf6, 0x7b, 0xd1, 0x2c,
- 0x3b, 0x47, 0x07, 0xe0, 0x41, 0x15, 0x49, 0x9d, 0x2d, 0xee, 0x25, 0x6b,
- 0x43, 0x42, 0x8d, 0xae, 0x7e, 0x1a, 0x8a, 0xb4, 0x86, 0x94, 0x49, 0xe4,
- 0xb9, 0xea, 0x68, 0xaa, 0x5a, 0x42, 0x4d, 0x85, 0xc3, 0x5d, 0xc9, 0x2f,
- 0x8b, 0x57, 0x85, 0xd3, 0x01, 0x35, 0x9d, 0x20, 0x90, 0x85, 0x45, 0xd6,
- 0xde, 0x1b, 0x44, 0xa0, 0xa2, 0xac, 0x1b, 0xe1, 0x6c, 0x08, 0x3e, 0xca,
- 0xdc, 0x66, 0x69, 0xd2, 0x99, 0xf4, 0xf1, 0xd8, 0xfe, 0xa4, 0xc8, 0x82,
- 0xbc, 0xac, 0xd4, 0xe6, 0x31, 0xb2, 0xfd, 0x66, 0xa5, 0x82, 0x79, 0xd3,
- 0xc6, 0xaf, 0x25, 0xac, 0x85, 0xde, 0xbb, 0xf2, 0xbc, 0x54, 0x25, 0xb6,
- 0x2b, 0x2d, 0xfe, 0xba, 0xd4, 0xea, 0xc9, 0xee, 0x42, 0x31, 0x2d, 0xe5,
- 0xb5, 0x0b, 0xc2, 0xe0, 0x67, 0x12, 0x80, 0x41, 0xc2, 0x3f, 0x17, 0xf0,
- 0x2a, 0x63, 0x1e, 0x81, 0x74, 0x4c, 0xf5, 0xcd, 0x5a, 0xd5, 0x62, 0x26,
- 0xa8, 0xec, 0x5a, 0xc3, 0x9e, 0x55, 0x02, 0xaa, 0xb4, 0x5e, 0x31, 0x21,
- 0xfe, 0x54, 0x78, 0x93, 0x20, 0x13, 0x85, 0xc9, 0x59, 0xe3, 0xd8, 0xe5,
- 0x2c, 0x59, 0x82, 0x91, 0x36, 0xd9, 0xc0, 0x4b, 0x93, 0x45, 0x5a, 0x2e,
- 0x7e, 0xea, 0x41, 0xdd, 0x24, 0xbe, 0x37, 0x08, 0x82, 0x92, 0x66, 0x13,
- 0x4d, 0xef, 0x8d, 0x24, 0x64, 0x6a, 0x56, 0x4b, 0xf5, 0xa8, 0x1e, 0x02,
- 0x91, 0x35, 0x66, 0x9f, 0x6d, 0x0e, 0x36, 0x93, 0x2d, 0xa4, 0xd2, 0xc3,
- 0xac, 0x4b, 0xa6, 0x69, 0x7d, 0xb3, 0x1d, 0xf3, 0x43, 0x3a, 0xd7, 0x9f,
- 0x13, 0x54, 0x63, 0x71, 0x3d, 0xd0, 0x8d, 0xc9, 0x12, 0x2a, 0x3a, 0x30,
- 0xbd, 0xaf, 0xcf, 0x10, 0x2f, 0x61, 0xbc, 0xe0, 0xc0, 0xa6, 0xd7, 0x74,
- 0x7e, 0x36, 0x00, 0x07, 0x2d, 0xff, 0xfc, 0x3f, 0xc3, 0x7b, 0x41, 0x9e,
- 0x64, 0xc8, 0xd7, 0x80, 0x73, 0xa2, 0xdc, 0x45, 0x4a, 0xc1, 0xbc, 0xe4,
- 0xe5, 0xe2, 0xa6, 0x32, 0xda, 0x5f, 0x98, 0x7a, 0x35, 0xfa, 0x36, 0x81,
- 0x27, 0x86, 0x8a, 0xf2, 0xf0, 0x33, 0x76, 0x83, 0x78, 0x0c, 0x84, 0x7f,
- 0x20, 0x6d, 0x1e, 0xa1, 0x49, 0x06, 0x69, 0x3d, 0x08, 0x34, 0x9d, 0x4b,
- 0x1f, 0x5a, 0x4b, 0x7a, 0x27, 0x19, 0x23, 0x84, 0x62, 0xa4, 0xb8, 0x5a,
- 0x31, 0x41, 0xf9, 0xe7, 0x64, 0x67, 0x38, 0xdc, 0x21, 0x81, 0xb5, 0x63,
- 0xfe, 0x70, 0xc5, 0x04, 0x00, 0xba, 0xed, 0x16, 0x43, 0x32, 0x1b, 0x1d,
- 0xd0, 0x15, 0xb0, 0x67, 0x48, 0xed, 0x40, 0x17, 0x67, 0xaf, 0xff, 0xb6,
- 0x04, 0x12, 0xb5, 0x32, 0xfa, 0x64, 0xc5, 0x89, 0xbd, 0xf3, 0xd6, 0x1d,
- 0x19, 0x94, 0x20, 0x62, 0xc7, 0x7a, 0x2d, 0x24, 0x12, 0xcd, 0x4d, 0x27,
- 0xe3, 0x8c, 0x51, 0x34, 0xc0, 0x07, 0xe7, 0x8d, 0x92, 0x77, 0x21, 0xa9,
- 0x3a, 0x5d, 0x6b, 0xcf, 0x3d, 0xdd, 0x6f, 0xfb, 0x3d, 0x16, 0x79, 0x61,
- 0x2c, 0x0c, 0xa3, 0x19, 0x83, 0xa4, 0x93, 0xa0, 0x78, 0x61, 0x4a, 0x0f,
- 0x3b, 0xd3, 0x3a, 0xc5, 0x68, 0xe0, 0x4e, 0x66, 0xf9, 0xe6, 0xca, 0xbb,
- 0x8b, 0x86, 0x0d, 0x56, 0x49, 0x09, 0xe7, 0x6f, 0x05, 0x97, 0x25, 0x7f,
- 0x64, 0x9b, 0x6f, 0x4c, 0x01, 0xeb, 0x62, 0x43, 0x64, 0x7c, 0xb7, 0x49,
- 0x95, 0xae, 0x31, 0xfc, 0x27, 0x04, 0x06, 0x82, 0xf2, 0x8e, 0xd6, 0x62,
- 0x5e, 0x0f, 0xeb, 0x72, 0xb0, 0x8e, 0x12, 0x57, 0x70, 0x89, 0xc6, 0x4c,
- 0x3c, 0xa7, 0x66, 0xde, 0x5f, 0x1f, 0x5f, 0x88, 0x7a, 0x02, 0x07, 0x84,
- 0x2b, 0x96, 0x19, 0x96, 0x98, 0x25, 0x43, 0xe6, 0xf9, 0x53, 0x5b, 0xd4,
- 0xba, 0xbe, 0x49, 0xf7, 0x9f, 0x3d, 0x97, 0x6e, 0x2b, 0x89, 0x16, 0xee,
- 0xed, 0x4d, 0xfe, 0xd5, 0xce, 0x0e, 0x47, 0xcd, 0xc9, 0x34, 0x0d, 0xe4,
- 0x42, 0x2a, 0xa5, 0xb9, 0x37, 0xbf, 0xd8, 0x8c, 0xe2, 0xe5, 0x54, 0x71,
- 0x65, 0xf3, 0x9d, 0x9c, 0xcf, 0xc0, 0xf4, 0xf9, 0xc5, 0x15, 0xfa, 0xad,
- 0x7a, 0x03, 0x89, 0x50, 0x21, 0x04, 0x5a, 0x43, 0xab, 0xee, 0x80, 0xb0,
- 0x4e, 0x68, 0x75, 0xa6, 0x44, 0x93, 0x53, 0x89, 0xd0, 0xd3, 0x9f, 0x9f,
- 0x9a, 0x0b, 0x85, 0x4e, 0x42, 0x66, 0x13, 0xc1, 0xbe, 0xd1, 0x6a, 0x78,
- 0x0d, 0x0b, 0x08, 0x94, 0x08, 0xac, 0x89, 0xed, 0x8f, 0x36, 0x9e, 0x46,
- 0x5d, 0xd8, 0x23, 0x83, 0x9e, 0x9a, 0x2f, 0x04, 0x89, 0x22, 0xba, 0x2f,
- 0x2c, 0xff, 0x26, 0x0c, 0x7a, 0x0f, 0x25, 0xe8, 0x4e, 0x8b, 0xb9, 0x0e,
- 0xaa, 0xa6, 0x43, 0x4c, 0xb3, 0x9e, 0x9d, 0x19, 0x28, 0xb1, 0x49, 0x96,
- 0x33, 0x1f, 0x93, 0x59, 0x5b, 0x8a, 0xfb, 0x04, 0xe7, 0xc0, 0x6c, 0x85,
- 0x1d, 0xda, 0x07, 0x62, 0x6b, 0x04, 0x85, 0x10, 0xc8, 0xc7, 0xfc, 0x62,
- 0xb8, 0x7b, 0xa0, 0x4c, 0xad, 0xfd, 0xe4, 0x9b, 0x62, 0x49, 0x4b, 0x42,
- 0xa3, 0xfe, 0x66, 0xf4, 0x5d, 0x90, 0x6f, 0x45, 0x6f, 0x3c, 0x7d, 0x42,
- 0x6f, 0xbc, 0x1b, 0xf1, 0x53, 0x77, 0xe5, 0xec, 0xca, 0xbc, 0xb9, 0x73,
- 0x74, 0x9f, 0x9a, 0x3f, 0x62, 0x8f, 0x7f, 0x46, 0x8f, 0x9b, 0x8d, 0x37,
- 0x6d, 0x82, 0x82, 0xd6, 0x89, 0x54, 0xf4, 0x39, 0x48, 0xce, 0xcb, 0x59,
- 0x5a, 0xc1, 0xed, 0xcb, 0x9b, 0x6f, 0x4d, 0x8f, 0x9f, 0x3e, 0x8d, 0xf4,
- 0xb8, 0xbf, 0xa2, 0x43, 0xc3, 0x7f, 0xbc, 0x47, 0x67, 0xf0, 0xfb, 0xd1,
- 0xdf, 0xc6, 0xe9, 0xe4, 0x23, 0xb6, 0x22, 0x40, 0xed, 0x96, 0x7b, 0xf8,
- 0x8f, 0x94, 0xe6, 0x4c, 0x46, 0xf0, 0x98, 0x02, 0x47, 0x15, 0xf8, 0xd8,
- 0x1a, 0xe4, 0xb8, 0x7f, 0xb6, 0xff, 0x64, 0x6f, 0xe7, 0xf9, 0xf0, 0xe9,
- 0x70, 0xdf, 0x82, 0xcc, 0xcc, 0xc6, 0xba, 0xa5, 0x72, 0x1a, 0x14, 0xce,
- 0x5f, 0x55, 0x8d, 0x30, 0x2f, 0x4c, 0x3b, 0x1e, 0xf5, 0x42, 0xcd, 0x8e,
- 0x23, 0x07, 0x2f, 0x21, 0xa2, 0x85, 0x3d, 0x3f, 0x5b, 0x29, 0x56, 0x4d,
- 0x8e, 0xf8, 0x1b, 0xa8, 0x13, 0xe2, 0xeb, 0x30, 0xf6, 0x3f, 0xcd, 0xc0,
- 0x38, 0x37, 0x26, 0x73, 0x53, 0x2e, 0xe1, 0x52, 0x27, 0xff, 0x8d, 0xb2,
- 0xaf, 0x8b, 0x8e, 0xc4, 0x16, 0x32, 0x9d, 0xb1, 0x98, 0x6f, 0x8c, 0x7b,
- 0xcf, 0x70, 0x5e, 0x8a, 0x0f, 0x79, 0x25, 0xc1, 0xc9, 0x19, 0x4b, 0xf2,
- 0x90, 0x2b, 0x9f, 0x18, 0x73, 0xa6, 0x98, 0x98, 0x43, 0xff, 0xad, 0x31,
- 0x35, 0x6e, 0xc9, 0x6f, 0x1c, 0xab, 0x27, 0x2d, 0x49, 0x8c, 0xea, 0xf7,
- 0x17, 0x8c, 0x83, 0x23, 0x47, 0x97, 0x1f, 0x70, 0xea, 0x84, 0x26, 0xaf,
- 0x72, 0xca, 0xd7, 0x20, 0x4c, 0xfc, 0xb5, 0xfe, 0xae, 0x36, 0x77, 0xa7,
- 0x10, 0x8c, 0x53, 0xfe, 0x12, 0xbb, 0xb8, 0x99, 0x64, 0x8e, 0xa6, 0xd1,
- 0x65, 0xa3, 0xc5, 0x3c, 0x30, 0xeb, 0x3c, 0x74, 0x51, 0x46, 0x0a, 0xfe,
- 0x57, 0xb7, 0xfa, 0xa3, 0x5c, 0x82, 0xb1, 0x0a, 0x6d, 0x9d, 0x22, 0x79,
- 0xda, 0xea, 0x6f, 0xde, 0x65, 0x4f, 0x7e, 0xff, 0x5d, 0xb6, 0xff, 0xd8,
- 0x5d, 0xe6, 0x6d, 0x33, 0xf6, 0x04, 0xad, 0xd9, 0x68, 0x66, 0x0a, 0xb9,
- 0x3c, 0x76, 0x7c, 0x97, 0x79, 0x9b, 0x6c, 0x7c, 0x1f, 0xdd, 0x62, 0xed,
- 0x3d, 0xe6, 0x36, 0xd9, 0xaa, 0x5d, 0x86, 0x6d, 0x66, 0xf7, 0xd9, 0x03,
- 0x1b, 0x8d, 0x1d, 0x6d, 0xeb, 0x77, 0x59, 0xa7, 0xb8, 0xfa, 0x9a, 0x3d,
- 0xe6, 0x6f, 0x88, 0x47, 0xef, 0x32, 0xe7, 0xf5, 0x62, 0xb9, 0x93, 0xac,
- 0xd8, 0x68, 0xfe, 0x3e, 0x5b, 0x59, 0x07, 0x70, 0xef, 0x45, 0x6c, 0x97,
- 0x3d, 0x79, 0xcc, 0x2e, 0x33, 0xeb, 0x39, 0xa3, 0xcb, 0xb7, 0xb5, 0xcb,
- 0x9e, 0xfe, 0xaa, 0x5d, 0xc6, 0xdb, 0x0c, 0xfb, 0x6c, 0xe5, 0x46, 0xa3,
- 0x21, 0xb5, 0x53, 0x2f, 0x0f, 0xff, 0x51, 0x69, 0x91, 0xb6, 0x1a, 0x0d,
- 0x12, 0x12, 0x7f, 0xdd, 0x1a, 0x76, 0xa6, 0xfa, 0x11, 0x2b, 0xb6, 0xdf,
- 0x5e, 0xb1, 0xbd, 0x5f, 0xb7, 0x62, 0xfb, 0x9d, 0x18, 0xa1, 0x51, 0xfd,
- 0xd8, 0x75, 0xfb, 0x93, 0x7a, 0xd0, 0x0f, 0x76, 0x76, 0x7e, 0x81, 0x23,
- 0xe2, 0x80, 0xee, 0xbe, 0x5f, 0x82, 0x02, 0xa9, 0x59, 0x27, 0x69, 0x71,
- 0x74, 0x76, 0xf4, 0xdd, 0x48, 0xfc, 0xbf, 0xa2, 0xc1, 0xa8, 0x86, 0xc3,
- 0x9e, 0x32, 0xd0, 0x2e, 0x70, 0x39, 0xb3, 0x40, 0x6f, 0x96, 0x2a, 0x8a,
- 0x83, 0x4f, 0x7d, 0xeb, 0x88, 0xa5, 0x54, 0xb8, 0x42, 0x21, 0x83, 0x4c,
- 0x9f, 0xc6, 0x24, 0x4e, 0x30, 0xbe, 0xa5, 0xe9, 0x15, 0x2c, 0x59, 0x7e,
- 0x5f, 0xc4, 0xf2, 0x2f, 0xdc, 0x2b, 0x5b, 0xcd, 0x4d, 0x85, 0x14, 0x09,
- 0x3c, 0x26, 0xca, 0x7a, 0xa3, 0xc5, 0xd3, 0x56, 0xf6, 0x4e, 0x7a, 0xf5,
- 0x2d, 0x48, 0x66, 0x17, 0x55, 0xb6, 0xa2, 0x2e, 0xf1, 0xe5, 0x8d, 0xf7,
- 0xdb, 0xb0, 0xde, 0xaa, 0x9b, 0x30, 0xa1, 0x4c, 0xf3, 0xe6, 0x9b, 0xde,
- 0x0b, 0xb2, 0xbb, 0xf3, 0x4f, 0x6d, 0x1a, 0x9f, 0x74, 0x86, 0xea, 0xa3,
- 0x28, 0xa6, 0xa1, 0xee, 0x76, 0x6d, 0x83, 0x61, 0x40, 0x19, 0x57, 0xc4,
- 0xa8, 0x9f, 0x9a, 0x26, 0x03, 0x04, 0x26, 0x7e, 0x91, 0xd2, 0x6f, 0xe4,
- 0x1f, 0xcf, 0xe8, 0xc3, 0x70, 0x9c, 0xf2, 0x3f, 0x6f, 0xf0, 0x6f, 0xfa,
- 0xa4, 0xb2, 0x32, 0x79, 0xeb, 0x3c, 0x89, 0x4e, 0xb4, 0x8a, 0x52, 0xb6,
- 0xe1, 0x99, 0x2d, 0xe0, 0x5d, 0xe9, 0xf2, 0xd3, 0xfc, 0x31, 0xbb, 0x32,
- 0xe4, 0x91, 0xba, 0x04, 0x9e, 0x20, 0x46, 0xcb, 0x4f, 0x57, 0xc4, 0x04,
- 0xb2, 0xc4, 0x27, 0x6f, 0xd4, 0x5c, 0x7c, 0xbf, 0x8c, 0x96, 0x0b, 0x3b,
- 0xca, 0x12, 0xf4, 0x99, 0xc9, 0x33, 0x84, 0xcb, 0x52, 0x85, 0x08, 0xe9,
- 0xf9, 0xde, 0xee, 0xe7, 0xa1, 0xe7, 0xf6, 0xbd, 0xe6, 0x87, 0x39, 0xfe,
- 0x42, 0x60, 0x0b, 0x80, 0xd4, 0x1e, 0xbb, 0xac, 0x88, 0xd8, 0x47, 0x23,
- 0x29, 0x64, 0x30, 0xa6, 0xa7, 0x19, 0x9b, 0x5f, 0x63, 0xb6, 0xa3, 0x45,
- 0x50, 0xa4, 0xed, 0x92, 0x10, 0xe4, 0x7c, 0xc8, 0x05, 0x60, 0x6b, 0x74,
- 0x49, 0x0e, 0x90, 0x07, 0xf2, 0x9d, 0x40, 0x1b, 0x1a, 0xb7, 0xf9, 0xca,
- 0xb1, 0xa3, 0xfd, 0xf9, 0xe9, 0x2e, 0xad, 0xa9, 0x36, 0x92, 0x72, 0xa1,
- 0x7b, 0xde, 0x73, 0x7f, 0x7e, 0x92, 0x0e, 0xff, 0x89, 0xdc, 0x46, 0xcf,
- 0xda, 0x66, 0xf9, 0x9f, 0xfa, 0x7c, 0xc2, 0xaf, 0x89, 0x7e, 0x65, 0x30,
- 0x4e, 0xab, 0x48, 0x36, 0x82, 0xdc, 0xdd, 0xca, 0xdb, 0xa1, 0xac, 0x17,
- 0xfa, 0x16, 0x52, 0x9b, 0x52, 0x07, 0x30, 0xb7, 0x3f, 0x4f, 0xc2, 0xe6,
- 0x3c, 0xb7, 0xb7, 0x5f, 0x75, 0xb5, 0xcf, 0x7c, 0x53, 0x1e, 0xdd, 0x54,
- 0x3a, 0xeb, 0x53, 0x40, 0x2c, 0x42, 0x4a, 0xc4, 0xea, 0x5e, 0xeb, 0x23,
- 0x44, 0x1c, 0x75, 0xe7, 0x99, 0xe5, 0xcc, 0xfa, 0x7e, 0x05, 0xef, 0xb7,
- 0x45, 0x32, 0x98, 0xdf, 0x53, 0x60, 0x33, 0xa6, 0x7f, 0xd4, 0x93, 0x8a,
- 0x4a, 0xea, 0x48, 0x1d, 0x02, 0xb4, 0xb4, 0x20, 0xd6, 0x3d, 0xa3, 0x7b,
- 0x5c, 0x67, 0x9a, 0x89, 0x68, 0xc7, 0xad, 0x84, 0x13, 0x60, 0x99, 0x18,
- 0xc6, 0xf0, 0xbd, 0x0e, 0xc0, 0xe3, 0x0a, 0xe1, 0x9a, 0x09, 0x62, 0x5a,
- 0x0a, 0x7a, 0x5d, 0xf3, 0x42, 0x6d, 0x4d, 0x89, 0x05, 0x15, 0x74, 0xab,
- 0x6f, 0xf2, 0x6e, 0xe5, 0xeb, 0xad, 0xc1, 0xab, 0xf2, 0xd5, 0x60, 0x5b,
- 0x36, 0x79, 0x79, 0x6b, 0x0c, 0x61, 0xb2, 0x85, 0xd0, 0x55, 0x0a, 0x7a,
- 0xde, 0xc0, 0x6b, 0x23, 0xd7, 0x17, 0xd2, 0x1f, 0x09, 0x85, 0x08, 0x7d,
- 0x0c, 0x7e, 0xf6, 0xa0, 0xd2, 0x08, 0x77, 0xac, 0xa2, 0x88, 0xa7, 0x48,
- 0x3c, 0xf2, 0xf0, 0x98, 0xb9, 0xba, 0x62, 0x98, 0x14, 0x52, 0x24, 0x29,
- 0x18, 0x2c, 0x0c, 0xc5, 0xec, 0x5c, 0x2e, 0x17, 0xed, 0xdb, 0x89, 0xb2,
- 0x6d, 0x55, 0x3a, 0xbc, 0x54, 0xc1, 0xf2, 0xe5, 0x83, 0x58, 0x7a, 0x2b,
- 0x82, 0xae, 0xc4, 0x2f, 0x42, 0xc7, 0x0f, 0xb9, 0x15, 0xcc, 0x6d, 0x3c,
- 0xb9, 0xc9, 0xe6, 0x52, 0x91, 0xe5, 0x57, 0xd6, 0x97, 0xef, 0xf4, 0x89,
- 0x51, 0x66, 0x57, 0xcd, 0x62, 0x38, 0x2f, 0xff, 0x6e, 0xe6, 0x38, 0xa5,
- 0x12, 0x6f, 0xc1, 0xa1, 0xa0, 0x14, 0xc2, 0x82, 0x17, 0x05, 0x12, 0x77,
- 0x59, 0x58, 0xd3, 0xd2, 0xe3, 0x67, 0x13, 0x0e, 0x6a, 0xa4, 0x90, 0x27,
- 0x47, 0xa6, 0xc7, 0xc7, 0x1f, 0xde, 0xbf, 0x1b, 0xbd, 0x3f, 0xef, 0x9e,
- 0xfd, 0xf3, 0xb3, 0x8b, 0xcb, 0xe3, 0xd7, 0x1f, 0xce, 0x2f, 0xce, 0x2e,
- 0xcf, 0x8e, 0xce, 0x4e, 0x93, 0xad, 0xbd, 0xed, 0xb5, 0x19, 0x53, 0xd6,
- 0xab, 0xe1, 0x31, 0xf0, 0x69, 0xff, 0x59, 0x6a, 0xd9, 0x2e, 0x6c, 0xd1,
- 0x78, 0xc2, 0xd6, 0x7e, 0x90, 0xbd, 0xd5, 0x62, 0x35, 0x86, 0x6b, 0x03,
- 0xd7, 0x1b, 0xe4, 0x7a, 0x9a, 0x5c, 0x2f, 0xe9, 0x98, 0xd8, 0x90, 0xb9,
- 0xa6, 0x93, 0xd4, 0x4d, 0x70, 0x19, 0x65, 0x99, 0x04, 0xee, 0xbc, 0x64,
- 0x9b, 0xb5, 0x1e, 0xbe, 0x67, 0x5d, 0xad, 0x85, 0xd6, 0x00, 0x2a, 0x98,
- 0xdb, 0x15, 0x75, 0x7c, 0x5b, 0xd8, 0x7d, 0xc1, 0x14, 0x1d, 0x60, 0x78,
- 0xb6, 0xaf, 0x80, 0xfe, 0x5e, 0x02, 0x29, 0x65, 0x61, 0x95, 0xba, 0x61,
- 0x72, 0x1e, 0x96, 0x2d, 0x92, 0x37, 0xa6, 0x59, 0x21, 0xe5, 0x33, 0xa5,
- 0x1f, 0x88, 0xa3, 0xa1, 0xc6, 0x07, 0x47, 0x75, 0xcd, 0x03, 0xf4, 0x5b,
- 0x6f, 0xae, 0x90, 0xc2, 0x99, 0x05, 0x4e, 0x68, 0x7e, 0x9b, 0xd9, 0x2b,
- 0xee, 0xbc, 0x3e, 0x51, 0x7b, 0xa4, 0x96, 0x81, 0x61, 0x2f, 0x22, 0x63,
- 0x8f, 0x35, 0x4a, 0xc3, 0xe9, 0x32, 0x38, 0x93, 0xd0, 0x60, 0x94, 0xb9,
- 0x65, 0xe4, 0x8f, 0xe5, 0x81, 0x8d, 0xcc, 0x93, 0x48, 0xee, 0xf2, 0x3e,
- 0xad, 0x7d, 0x9f, 0x37, 0xb4, 0x04, 0xa7, 0xd6, 0x60, 0xf5, 0x1d, 0xae,
- 0xd0, 0x77, 0x72, 0xa1, 0x43, 0xe4, 0x7a, 0x77, 0xa3, 0xf1, 0xba, 0xa2,
- 0x19, 0x93, 0xe6, 0x76, 0xe9, 0x4e, 0x2e, 0x6e, 0x1b, 0x4d, 0x66, 0x97,
- 0x12, 0xa8, 0xc2, 0xe9, 0x4b, 0x54, 0x18, 0x46, 0x73, 0x3f, 0xb0, 0x70,
- 0x25, 0xc2, 0xef, 0x24, 0x9c, 0x0a, 0xcf, 0x1e, 0xfe, 0xd1, 0xd1, 0x79,
- 0x84, 0x8a, 0xc1, 0xcb, 0x8d, 0x67, 0x81, 0xab, 0x65, 0x7e, 0x77, 0x87,
- 0xbb, 0xc9, 0xe8, 0xed, 0xd7, 0xc2, 0x4e, 0xf8, 0xf5, 0x88, 0xb9, 0x9e,
- 0x49, 0xc9, 0xd6, 0x37, 0x86, 0x71, 0x02, 0x28, 0x08, 0x8f, 0x99, 0x84,
- 0x9b, 0xff, 0x3d, 0x75, 0xb9, 0x66, 0x9c, 0x64, 0xe3, 0xe9, 0x63, 0x9c,
- 0x37, 0xa7, 0xe3, 0xee, 0x47, 0xd3, 0xc9, 0x39, 0x8a, 0x42, 0x35, 0x6e,
- 0xa3, 0xe3, 0x1e, 0xae, 0xa7, 0xc2, 0xda, 0x0f, 0xce, 0xc3, 0x23, 0x4f,
- 0xc2, 0x63, 0x8e, 0x82, 0xa8, 0x34, 0x2a, 0xc4, 0xbb, 0xd3, 0x71, 0xde,
- 0xda, 0xaa, 0x19, 0xe5, 0xcc, 0x30, 0x74, 0x30, 0xbb, 0x82, 0x0e, 0x87,
- 0x6c, 0xb6, 0x3e, 0x7e, 0x89, 0xf8, 0x97, 0x05, 0x38, 0xc5, 0x79, 0x91,
- 0xd0, 0x48, 0x3a, 0xf1, 0x95, 0x62, 0xe5, 0x50, 0xeb, 0xce, 0xc1, 0xbf,
- 0xa3, 0xa2, 0x2a, 0x13, 0xc8, 0x72, 0x31, 0x25, 0x61, 0x42, 0x28, 0x88,
- 0xd8, 0x2d, 0xd7, 0x08, 0x97, 0x77, 0x96, 0x66, 0x94, 0x1f, 0x77, 0xcf,
- 0xa9, 0x75, 0x81, 0xb1, 0x06, 0x45, 0x6a, 0x4a, 0x86, 0x81, 0x83, 0x71,
- 0xeb, 0xae, 0x46, 0x31, 0x24, 0x47, 0x89, 0x25, 0x9a, 0x51, 0x28, 0x1b,
- 0x07, 0x49, 0xf2, 0x3a, 0x2b, 0xee, 0xdb, 0x1d, 0xea, 0x83, 0xcf, 0x02,
- 0x9e, 0xdb, 0xbc, 0x71, 0x29, 0xd7, 0x4a, 0xf7, 0x7f, 0xe5, 0x6d, 0x95,
- 0xb0, 0x4b, 0xed, 0x3e, 0xc7, 0x24, 0xc0, 0x2b, 0x3b, 0x0d, 0x8a, 0x80,
- 0xf1, 0x27, 0x63, 0x0b, 0xcc, 0x09, 0x1a, 0xa4, 0xc3, 0x27, 0x1f, 0x33,
- 0x0d, 0x60, 0x85, 0x83, 0x7d, 0x54, 0x2f, 0xc7, 0x7f, 0xa5, 0xe3, 0x0a,
- 0x6b, 0x80, 0xac, 0xf4, 0x4a, 0xb9, 0xc1, 0x14, 0xb8, 0x46, 0x0e, 0x3a,
- 0xf3, 0x14, 0x07, 0x96, 0x42, 0x0f, 0x32, 0x55, 0x5a, 0x41, 0xf4, 0x50,
- 0x49, 0xb0, 0xdb, 0xbb, 0x00, 0x7d, 0x8a, 0x26, 0x2c, 0x65, 0x2b, 0x2e,
- 0x5f, 0xdd, 0xe2, 0x83, 0x2b, 0x92, 0x4e, 0x8c, 0x87, 0xea, 0x5c, 0x63,
- 0x3c, 0x9b, 0x0c, 0xc2, 0xb3, 0x90, 0x50, 0x7a, 0x7c, 0x65, 0x5b, 0x2a,
- 0xf3, 0xea, 0xfe, 0xbf, 0xd3, 0x1f, 0xe1, 0x28, 0x5a, 0x31, 0x14, 0x9a,
- 0x67, 0x3d, 0xed, 0xf4, 0x38, 0xc4, 0x07, 0x5e, 0x5f, 0xf5, 0x81, 0x57,
- 0x4e, 0xa0, 0xae, 0x6f, 0x1b, 0xb2, 0xe7, 0x31, 0x1f, 0x78, 0x5f, 0x28,
- 0xe1, 0x98, 0xee, 0xef, 0x85, 0xe5, 0x40, 0xbf, 0x4b, 0xab, 0x02, 0x90,
- 0x6f, 0xdf, 0xa6, 0x20, 0x86, 0x8a, 0x85, 0x54, 0x48, 0x48, 0xaf, 0x08,
- 0x2d, 0x5b, 0x65, 0x8e, 0xb0, 0x95, 0xbc, 0x60, 0x4c, 0x44, 0x23, 0x1c,
- 0xd0, 0x8a, 0xdd, 0x5c, 0x94, 0x0d, 0xb3, 0x51, 0x13, 0xbc, 0x96, 0x74,
- 0x86, 0x8a, 0x9c, 0x6d, 0xde, 0x24, 0xab, 0xb2, 0x49, 0xad, 0xd9, 0xdd,
- 0x04, 0x9f, 0xd4, 0x72, 0x81, 0x4a, 0x95, 0x82, 0x7c, 0x92, 0xc8, 0xa8,
- 0x27, 0x67, 0xe4, 0x8b, 0x8c, 0x91, 0x82, 0x03, 0xc7, 0x12, 0x57, 0xdf,
- 0x96, 0x39, 0xf1, 0xce, 0x6c, 0xd8, 0x2b, 0xc1, 0xe8, 0x41, 0x6e, 0x97,
- 0x5c, 0xc6, 0x2b, 0x2a, 0x38, 0x60, 0x8a, 0xd8, 0x2a, 0x0e, 0xb7, 0x9b,
- 0xd6, 0xad, 0x84, 0x9c, 0xbc, 0x85, 0xe0, 0x05, 0x82, 0xc1, 0xd8, 0x13,
- 0xc4, 0x86, 0x66, 0xf6, 0x64, 0xc1, 0x71, 0x25, 0x31, 0xe4, 0x54, 0x22,
- 0x52, 0xf7, 0x80, 0x29, 0x2b, 0xc8, 0x7e, 0x98, 0x58, 0x8e, 0xa0, 0x2e,
- 0xe5, 0x74, 0xbb, 0x6e, 0xb4, 0xbd, 0x55, 0x2d, 0xce, 0xd2, 0x29, 0x8c,
- 0xc3, 0x07, 0xc4, 0xf8, 0xa7, 0x7b, 0x45, 0x76, 0xad, 0x57, 0x66, 0x16,
- 0x94, 0x74, 0x4b, 0x7c, 0xac, 0x79, 0x83, 0x15, 0xeb, 0x20, 0x4b, 0x15,
- 0x71, 0x29, 0x75, 0x2a, 0xe6, 0xcb, 0xb0, 0xc8, 0x9d, 0x44, 0xd2, 0x2c,
- 0x90, 0x86, 0x69, 0x97, 0xa0, 0x47, 0x88, 0xc7, 0x83, 0x39, 0xf8, 0x61,
- 0xef, 0x4a, 0x5d, 0x02, 0xb8, 0x72, 0x10, 0x5c, 0x8b, 0xfb, 0xe4, 0x76,
- 0x2c, 0xe7, 0x8a, 0xd9, 0x30, 0xc5, 0x74, 0x60, 0x84, 0xc0, 0x62, 0x8d,
- 0xaf, 0xfb, 0x53, 0x5f, 0x07, 0xdd, 0x82, 0xa4, 0xfa, 0x24, 0x0f, 0xfc,
- 0x13, 0x46, 0xbe, 0xc9, 0xdc, 0x85, 0x90, 0x6e, 0xa3, 0x12, 0x3c, 0x89,
- 0xcd, 0x64, 0x0c, 0x5a, 0x17, 0xda, 0x0a, 0x2b, 0x99, 0xf9, 0x35, 0xe7,
- 0x0a, 0x13, 0xa8, 0x13, 0xb6, 0x0a, 0x87, 0xc4, 0xd3, 0x27, 0x33, 0xf7,
- 0x9e, 0x53, 0x9e, 0xd0, 0x26, 0x72, 0x59, 0x0b, 0x01, 0x33, 0x7b, 0xdf,
- 0x62, 0xa3, 0x28, 0x98, 0x47, 0xb0, 0x20, 0x31, 0xcb, 0x3b, 0x3f, 0x27,
- 0xd7, 0x92, 0x4b, 0x4e, 0xec, 0x76, 0x52, 0xd6, 0x3a, 0xe6, 0x57, 0x81,
- 0x9c, 0xc4, 0x87, 0xa8, 0x63, 0xf9, 0x5a, 0x7e, 0x81, 0x15, 0x8b, 0x11,
- 0xa3, 0xd6, 0x98, 0x76, 0x70, 0xa2, 0xfa, 0x73, 0x2e, 0x8f, 0x1e, 0x47,
- 0xa7, 0x8d, 0xe4, 0xbc, 0x69, 0x11, 0x75, 0xc8, 0x69, 0x85, 0x06, 0x7a,
- 0x8e, 0x36, 0x2e, 0x16, 0xf4, 0xa9, 0x79, 0xc0, 0x15, 0x2a, 0xdf, 0x43,
- 0x2c, 0x5d, 0xe1, 0x1f, 0xd2, 0xb0, 0xfb, 0xa7, 0xfb, 0xad, 0x19, 0x5d,
- 0x4c, 0x48, 0xd3, 0x5a, 0xad, 0xf6, 0x58, 0xb4, 0xbf, 0xf2, 0xd2, 0x9c,
- 0xe8, 0x75, 0x83, 0xc2, 0x43, 0xbf, 0x65, 0x50, 0xad, 0x82, 0xf3, 0x32,
- 0x06, 0xe9, 0x73, 0x67, 0x45, 0xf8, 0x23, 0x6b, 0xe3, 0x3e, 0x2b, 0x86,
- 0x60, 0xda, 0x5c, 0x53, 0xdf, 0xd5, 0x1b, 0x86, 0x7d, 0xf0, 0xd7, 0x8e,
- 0xe4, 0xe1, 0x69, 0xc4, 0xd6, 0xa0, 0xff, 0xfe, 0x74, 0x00, 0x97, 0xda,
- 0xf4, 0x97, 0x95, 0xfd, 0x38, 0xee, 0x4b, 0x5f, 0xfe, 0x80, 0x6e, 0xe4,
- 0x8b, 0x1b, 0xf2, 0x97, 0xbc, 0x8c, 0xe5, 0xc2, 0x78, 0x13, 0x21, 0x8f,
- 0xfd, 0xfe, 0xdf, 0xaf, 0x66, 0x8e, 0x7e, 0x66, 0xcd, 0xf7, 0xe5, 0xb1,
- 0xdf, 0xfd, 0xfb, 0x7c, 0x76, 0xd7, 0x5f, 0x2e, 0x56, 0x2a, 0xbe, 0x16,
- 0xc4, 0x71, 0x5b, 0xe2, 0xb8, 0x5b, 0xe5, 0x37, 0x08, 0x45, 0x01, 0x31,
- 0x87, 0x52, 0x51, 0xbe, 0x15, 0xad, 0x95, 0xe0, 0x8b, 0xc5, 0xdf, 0x45,
- 0x82, 0x41, 0x34, 0x87, 0x93, 0x23, 0xc5, 0x4b, 0x5e, 0xf2, 0x9f, 0x3b,
- 0x5f, 0xc5, 0xd6, 0x48, 0xb9, 0x4b, 0x8f, 0xe9, 0x1a, 0xd4, 0x72, 0x27,
- 0xa8, 0x9f, 0xc1, 0x09, 0xfd, 0xa2, 0xf2, 0xda, 0xda, 0x0f, 0x34, 0x59,
- 0x0a, 0xe9, 0xa0, 0x57, 0x63, 0x35, 0x56, 0x64, 0x86, 0x08, 0xd7, 0x49,
- 0x26, 0x98, 0xfa, 0xfc, 0x1d, 0xa0, 0x87, 0x14, 0x8f, 0xcc, 0xfb, 0x60,
- 0xbd, 0xaa, 0x60, 0x16, 0x67, 0xeb, 0x78, 0xb5, 0x2a, 0x1d, 0xbf, 0xe8,
- 0xb7, 0x7d, 0xa9, 0x71, 0x62, 0x9a, 0xa3, 0x6d, 0x25, 0xc0, 0x46, 0xdd,
- 0x4f, 0x58, 0xce, 0x90, 0x84, 0x85, 0xf1, 0xea, 0xa4, 0x9b, 0xce, 0x18,
- 0x3f, 0x9b, 0x1c, 0x9d, 0xbd, 0x7b, 0x77, 0x7c, 0xd4, 0x8d, 0xed, 0x82,
- 0x5c, 0x02, 0x29, 0x02, 0xf0, 0xd0, 0x8a, 0xaa, 0x1f, 0xd4, 0xd8, 0xc3,
- 0xd7, 0x99, 0x3c, 0xdd, 0x86, 0x5f, 0xb8, 0x07, 0xa8, 0xbf, 0x93, 0x0a,
- 0x87, 0x2a, 0x67, 0x1a, 0x78, 0xec, 0x9a, 0xbc, 0x03, 0x22, 0xe9, 0x57,
- 0xc1, 0x7e, 0x70, 0xde, 0x08, 0xb8, 0xa5, 0xa8, 0xfe, 0x22, 0x6b, 0xa0,
- 0x30, 0x31, 0xb5, 0x07, 0xe8, 0xae, 0x31, 0x19, 0x77, 0x04, 0x5f, 0x2c,
- 0x89, 0x6b, 0xa1, 0x31, 0x63, 0xf7, 0x32, 0xf3, 0x71, 0x51, 0x1e, 0xc7,
- 0xa0, 0xbc, 0xe2, 0x72, 0x9f, 0xf3, 0xb4, 0xfa, 0x48, 0xb1, 0x61, 0x2f,
- 0xa3, 0x03, 0x19, 0x7d, 0x20, 0x08, 0x9e, 0x4e, 0x63, 0xa9, 0xe2, 0x28,
- 0x1a, 0xac, 0x10, 0x76, 0x64, 0x8c, 0x71, 0x87, 0xa4, 0x44, 0xde, 0x81,
- 0xa6, 0xda, 0xd1, 0xeb, 0x45, 0x76, 0x47, 0x9f, 0x61, 0x86, 0x0c, 0xca,
- 0xf7, 0x0e, 0xf9, 0xf6, 0x99, 0xe3, 0x99, 0x3d, 0xf4, 0xf7, 0x92, 0x6a,
- 0x4e, 0x6b, 0x35, 0x67, 0x46, 0x7b, 0x90, 0xe6, 0x52, 0x91, 0x28, 0x4e,
- 0xd3, 0x08, 0xe6, 0xea, 0x5b, 0xa5, 0xbc, 0xf3, 0xf0, 0x6e, 0xca, 0xf4,
- 0xe1, 0xe7, 0x5f, 0x70, 0xf8, 0x46, 0x32, 0x59, 0x3c, 0x32, 0xbc, 0x55,
- 0x91, 0x59, 0xcc, 0x37, 0x16, 0x82, 0xec, 0x95, 0xda, 0x11, 0xe4, 0x48,
- 0x35, 0x3d, 0x7f, 0xd7, 0x07, 0xe7, 0x99, 0xa8, 0xac, 0x61, 0x38, 0x43,
- 0x88, 0x3d, 0xeb, 0xd2, 0xb1, 0x82, 0xa9, 0x08, 0x0e, 0x47, 0xa2, 0x28,
- 0xbb, 0x5e, 0x72, 0x4e, 0x1a, 0x45, 0xee, 0x71, 0x5c, 0x03, 0x45, 0x17,
- 0x00, 0x51, 0x24, 0x6b, 0xf5, 0xb5, 0x44, 0x39, 0x0a, 0x4e, 0x4f, 0xa9,
- 0x14, 0xa9, 0x4e, 0xbf, 0x12, 0x8e, 0xb0, 0x43, 0x5f, 0x8e, 0x70, 0x5e,
- 0x2c, 0x96, 0x4d, 0x10, 0x96, 0x23, 0xfa, 0x25, 0x4e, 0xb9, 0xff, 0x6a,
- 0x10, 0x96, 0x2c, 0x4a, 0xa7, 0xfe, 0xaa, 0x42, 0x84, 0xc3, 0xfa, 0xaf,
- 0x1b, 0x23, 0x00, 0xd6, 0x7a, 0x69, 0x7d, 0x9b, 0xc6, 0x19, 0x35, 0x02,
- 0xe5, 0xe6, 0x38, 0xaa, 0xdb, 0xae, 0x3b, 0x70, 0x2f, 0x74, 0x77, 0x83,
- 0x7d, 0x4b, 0x85, 0xc4, 0x3a, 0x82, 0x0d, 0x50, 0x00, 0x76, 0xe4, 0x9f,
- 0xb1, 0x73, 0xc8, 0xfb, 0x94, 0xad, 0xba, 0x96, 0x3e, 0x72, 0x15, 0x25,
- 0x7e, 0xe8, 0xf7, 0xbf, 0x9b, 0xd6, 0x57, 0xa1, 0x77, 0x97, 0xa3, 0x7d,
- 0xee, 0x8f, 0xe8, 0x41, 0xb4, 0xac, 0x7b, 0xeb, 0xdb, 0x8f, 0xff, 0x6c,
- 0xc0, 0x45, 0xf7, 0x80, 0x5f, 0xce, 0xdd, 0xbc, 0x0f, 0x52, 0x2d, 0x42,
- 0xea, 0x06, 0xb0, 0x51, 0xef, 0x4e, 0x5e, 0x7b, 0x0b, 0xbb, 0xd4, 0x22,
- 0xff, 0x22, 0x8e, 0x84, 0xbf, 0x63, 0x1d, 0x91, 0x70, 0xce, 0xe3, 0x2e,
- 0xe5, 0x07, 0x2f, 0xe1, 0x56, 0x66, 0x66, 0x17, 0xb5, 0x64, 0x33, 0xb3,
- 0x1e, 0x3f, 0x71, 0x94, 0x96, 0xf6, 0x7b, 0x2a, 0x2c, 0x48, 0x07, 0x6b,
- 0xa9, 0x2b, 0xf8, 0x44, 0x6b, 0x12, 0x1e, 0x73, 0x2f, 0x05, 0x53, 0xd2,
- 0x4d, 0xef, 0x6a, 0x4d, 0x54, 0x38, 0x0b, 0xeb, 0x40, 0xe9, 0x6e, 0x7b,
- 0xe2, 0xa9, 0xdf, 0xfd, 0x58, 0x3c, 0x1e, 0x51, 0x1d, 0x5f, 0x99, 0x55,
- 0xa0, 0x6a, 0x6a, 0x8e, 0xa9, 0x9c, 0x57, 0x22, 0xaa, 0x09, 0x2a, 0xe4,
- 0xe1, 0xa9, 0x3d, 0xcf, 0xc4, 0x2a, 0x40, 0xf5, 0xff, 0x1b, 0x11, 0xd5,
- 0x2d, 0x48, 0x35, 0x29, 0x58, 0xe0, 0x37, 0x8a, 0xa0, 0xaa, 0x3d, 0x1e,
- 0x0c, 0x86, 0x54, 0xaf, 0x43, 0x54, 0x7b, 0x80, 0xea, 0x35, 0x78, 0x6a,
- 0x26, 0x4d, 0x5a, 0x87, 0xa8, 0xfe, 0x8d, 0x90, 0xea, 0x15, 0x88, 0xea,
- 0x5f, 0x0d, 0xa8, 0xfe, 0x9d, 0x11, 0xd5, 0xbf, 0x27, 0xb6, 0x17, 0xa7,
- 0x87, 0xd6, 0x23, 0x9f, 0x48, 0xae, 0xca, 0xcb, 0x87, 0x29, 0x47, 0x03,
- 0xbe, 0x36, 0x2f, 0x6e, 0x2b, 0x6d, 0xb1, 0x5a, 0x63, 0xd5, 0xf7, 0x80,
- 0x40, 0x48, 0x36, 0x4b, 0x04, 0x51, 0xe6, 0x47, 0x55, 0x9f, 0xc4, 0xce,
- 0x7a, 0x5d, 0xcf, 0x06, 0xe8, 0x01, 0x25, 0x92, 0x06, 0x96, 0xa2, 0x93,
- 0x34, 0x9d, 0xe7, 0x7e, 0x7f, 0xa1, 0xd3, 0xcc, 0xea, 0xbd, 0x27, 0xce,
- 0x5e, 0x97, 0xbf, 0x2c, 0x29, 0xc9, 0x31, 0x66, 0xbb, 0xb3, 0xfc, 0x19,
- 0x89, 0x8c, 0x51, 0xe6, 0x0a, 0x7e, 0x0b, 0x7e, 0xd2, 0xcc, 0x96, 0x5e,
- 0xb3, 0x51, 0x09, 0x5b, 0x4b, 0x35, 0xcc, 0x56, 0x41, 0x56, 0xb3, 0x3f,
- 0x0e, 0x5c, 0x22, 0x94, 0x97, 0xa2, 0x62, 0xbb, 0xc6, 0x21, 0xdc, 0x1b,
- 0x3e, 0xe1, 0xb4, 0x57, 0xe5, 0xcd, 0x90, 0x7e, 0x06, 0x64, 0x35, 0xe8,
- 0x00, 0x18, 0x83, 0xd5, 0xbc, 0xe3, 0xc2, 0x46, 0xf2, 0xfc, 0x30, 0xb9,
- 0x20, 0xe5, 0xd1, 0x28, 0xeb, 0x08, 0x1d, 0xe2, 0x7c, 0x9b, 0xb6, 0x13,
- 0xf9, 0x7d, 0xac, 0xb9, 0x36, 0x4d, 0xa5, 0xd9, 0x41, 0xef, 0x2f, 0x4e,
- 0xc3, 0x68, 0x2f, 0x22, 0x08, 0x07, 0x3b, 0x3b, 0x00, 0x1c, 0xdd, 0xa4,
- 0x9f, 0x3e, 0x0d, 0xeb, 0x6c, 0x67, 0x5a, 0x4e, 0xea, 0x1d, 0x5a, 0x41,
- 0xfd, 0xfa, 0x4d, 0x33, 0x9f, 0xfd, 0xe1, 0x07, 0xc1, 0xac, 0x28, 0xdd,
- 0x6d, 0x8f, 0x51, 0xf1, 0xfc, 0x47, 0xff, 0x88, 0x9d, 0x65, 0x41, 0x5d,
- 0x2f, 0x19, 0xb1, 0xb5, 0xb6, 0x27, 0xf6, 0xe1, 0x3f, 0xa2, 0x27, 0xc8,
- 0x36, 0x8e, 0x4a, 0x85, 0x56, 0x1f, 0xf0, 0xd8, 0x1f, 0xf1, 0xfd, 0xdb,
- 0xbd, 0x55, 0x9f, 0x45, 0x81, 0x44, 0x3c, 0xf1, 0x3b, 0x7e, 0xf8, 0xbd,
- 0x75, 0xd2, 0x70, 0x72, 0xf6, 0x4b, 0xfa, 0xef, 0x81, 0xce, 0xf0, 0xda,
- 0xca, 0x4b, 0x2b, 0x08, 0xad, 0xbd, 0xba, 0xcf, 0xe2, 0xfc, 0x59, 0xcb,
- 0x7e, 0xb0, 0x8a, 0xde, 0x80, 0xc9, 0x6d, 0x84, 0xea, 0x16, 0x0c, 0xe4,
- 0x03, 0xcb, 0x14, 0xc8, 0xda, 0x8c, 0xb0, 0x73, 0xb0, 0x7f, 0xd9, 0xd8,
- 0xe9, 0xc2, 0x17, 0xd3, 0xa5, 0x08, 0xb2, 0x6a, 0x1d, 0x60, 0x02, 0x31,
- 0x7a, 0x0c, 0xa6, 0x45, 0x10, 0x01, 0x0f, 0x7b, 0xd6, 0x4b, 0xdc, 0x0b,
- 0xb0, 0x32, 0x33, 0x66, 0x93, 0x5b, 0x4f, 0xe8, 0x0d, 0x71, 0xe5, 0x33,
- 0xab, 0x8c, 0xd9, 0x8d, 0x14, 0xc0, 0x93, 0x05, 0xc5, 0xe0, 0x98, 0x1e,
- 0x67, 0x2e, 0x1d, 0xdf, 0x9e, 0xf5, 0x83, 0xa4, 0x37, 0x78, 0x9f, 0x1c,
- 0xf4, 0xfe, 0xc0, 0xbb, 0xd1, 0x73, 0xd6, 0xfd, 0x66, 0xe8, 0xf1, 0x6a,
- 0x20, 0x6e, 0x1b, 0x8d, 0x19, 0xd0, 0x08, 0xc4, 0x21, 0xb8, 0x57, 0x44,
- 0x2d, 0xfc, 0xae, 0xbb, 0x00, 0x11, 0x34, 0x2b, 0x21, 0x76, 0x18, 0x20,
- 0x63, 0x47, 0xd7, 0x20, 0xa7, 0x16, 0x04, 0x05, 0x7e, 0x08, 0xed, 0x7d,
- 0x50, 0xa9, 0xd5, 0x21, 0x74, 0x5b, 0x98, 0x5c, 0x07, 0xc9, 0x25, 0x08,
- 0x88, 0x03, 0xe4, 0x02, 0x83, 0xce, 0x9e, 0x44, 0xd4, 0xb6, 0x0f, 0x1c,
- 0x74, 0xe0, 0x60, 0x5d, 0x0d, 0xc7, 0x35, 0xd7, 0xa2, 0x17, 0xd2, 0x74,
- 0x9c, 0x69, 0xe4, 0x87, 0x8a, 0x07, 0xd3, 0xb0, 0x0d, 0x41, 0xa2, 0xfd,
- 0x59, 0x50, 0x10, 0x4b, 0xe0, 0xda, 0x82, 0x3e, 0xb6, 0x41, 0xde, 0xdb,
- 0x3c, 0xb5, 0xd7, 0x8c, 0xfb, 0x16, 0xcf, 0xa8, 0xfb, 0xd4, 0xaa, 0x70,
- 0x05, 0x33, 0x4d, 0x44, 0xb2, 0xd3, 0xde, 0x8d, 0x46, 0x21, 0x2a, 0xb7,
- 0x30, 0x1a, 0x5c, 0x79, 0x5d, 0xe4, 0x7f, 0x97, 0x1a, 0x25, 0x5d, 0x28,
- 0x5d, 0x0b, 0x16, 0xdd, 0x8e, 0x5b, 0x52, 0x3c, 0xb9, 0xbb, 0x1a, 0xc0,
- 0x04, 0xa9, 0x94, 0x02, 0xb4, 0x85, 0xa8, 0x5b, 0x74, 0x2a, 0xb9, 0x04,
- 0x39, 0x17, 0xa2, 0x68, 0xc5, 0x86, 0x95, 0x27, 0x62, 0x23, 0xbc, 0x6b,
- 0x69, 0x0e, 0x04, 0x7c, 0x1a, 0x3f, 0x3e, 0xd9, 0x6f, 0xc0, 0x30, 0x93,
- 0xe2, 0xf1, 0x9b, 0x50, 0xcc, 0x6d, 0xcd, 0xd2, 0xa3, 0x75, 0xca, 0x3e,
- 0x19, 0x7d, 0x85, 0x0e, 0x47, 0x8c, 0x8e, 0x49, 0x3c, 0x78, 0x91, 0x5a,
- 0x56, 0xbe, 0xbb, 0x16, 0x1c, 0xf4, 0x8f, 0xe0, 0x76, 0xa2, 0x76, 0x9a,
- 0x68, 0xfd, 0x82, 0x08, 0xb3, 0x93, 0x6d, 0xfd, 0x11, 0x94, 0x4e, 0xe4,
- 0xed, 0x54, 0x52, 0x5e, 0xe9, 0x32, 0xf8, 0xea, 0xb9, 0x18, 0x62, 0xc6,
- 0x3c, 0x4c, 0xd4, 0x2d, 0x77, 0x24, 0xf9, 0xc0, 0x46, 0xeb, 0xa9, 0x2d,
- 0xa8, 0xe0, 0x01, 0x59, 0x28, 0x63, 0xcd, 0x13, 0x6a, 0x78, 0x6e, 0xe9,
- 0xed, 0x21, 0xb1, 0x0e, 0x51, 0x1e, 0x87, 0x25, 0x84, 0x21, 0x73, 0x07,
- 0x09, 0x43, 0xba, 0x27, 0xba, 0x5b, 0xcb, 0x11, 0x24, 0xdb, 0x2e, 0x72,
- 0x30, 0x5d, 0x1c, 0xa1, 0xb6, 0xfa, 0x8f, 0xe3, 0x41, 0x47, 0xce, 0xb3,
- 0x14, 0x8d, 0x0f, 0xb9, 0x18, 0x75, 0x9a, 0x9a, 0xa5, 0xd1, 0x5b, 0x89,
- 0x36, 0x91, 0xb3, 0x19, 0xec, 0x9a, 0xf4, 0x49, 0xfa, 0xb0, 0xc8, 0x15,
- 0x77, 0xc6, 0x60, 0xa1, 0x52, 0xb6, 0x3b, 0xd8, 0x7b, 0x69, 0x64, 0x45,
- 0xf1, 0xec, 0x3f, 0x00, 0xfc, 0xfe, 0x5b, 0xb0, 0xef, 0x7f, 0x30, 0xf8,
- 0xdd, 0xbb, 0x29, 0xe8, 0xda, 0x09, 0xef, 0x09, 0xa0, 0x47, 0xc8, 0x6e,
- 0x65, 0xb8, 0xc8, 0x5d, 0x6a, 0xf9, 0xfb, 0x63, 0x66, 0x57, 0xf4, 0x24,
- 0xf5, 0x5b, 0x68, 0x3f, 0x4f, 0x82, 0xa8, 0x7c, 0x64, 0xcc, 0x2d, 0x55,
- 0x0e, 0x8a, 0xd0, 0x5b, 0xa0, 0x03, 0x94, 0xc6, 0x3a, 0xcd, 0x84, 0x97,
- 0xe6, 0xdf, 0x1d, 0x7d, 0xfe, 0x1f, 0xad, 0xaf, 0xef, 0x19, 0xd9, 0xfc,
- 0xd2, 0xbb, 0x8f, 0xbf, 0x8c, 0x5c, 0xc8, 0x81, 0x67, 0x87, 0x53, 0x69,
- 0xe8, 0xd5, 0x36, 0xfb, 0x5b, 0x44, 0xe8, 0xc5, 0x0f, 0x0c, 0x6a, 0xf6,
- 0x31, 0xc3, 0x97, 0x88, 0x37, 0x42, 0x0f, 0xd1, 0xcb, 0x2b, 0x04, 0x9c,
- 0xf0, 0x0b, 0x2a, 0xb7, 0xb8, 0x91, 0xe7, 0xe3, 0xac, 0xb9, 0x23, 0x98,
- 0x3d, 0x66, 0x43, 0xa7, 0xd1, 0x93, 0x01, 0x56, 0x1e, 0xae, 0x84, 0x05,
- 0xf4, 0x85, 0xd8, 0x91, 0x24, 0x0a, 0x93, 0x57, 0x5a, 0xe3, 0x51, 0xc3,
- 0x5f, 0xc1, 0xf1, 0x8b, 0xd5, 0xc3, 0x70, 0x91, 0x3c, 0xfe, 0x3e, 0xcd,
- 0x8b, 0x07, 0x5a, 0x6c, 0xa5, 0x28, 0x28, 0xc0, 0x43, 0x1e, 0xf4, 0x1d,
- 0xa1, 0xf6, 0x18, 0xcb, 0xb1, 0x8d, 0xb9, 0x88, 0xda, 0x62, 0x4e, 0x17,
- 0xdf, 0xd3, 0xb3, 0xda, 0x61, 0x14, 0x89, 0xe9, 0xe0, 0x7e, 0x8c, 0xe4,
- 0x5d, 0xf2, 0x32, 0x7a, 0x17, 0x29, 0x02, 0x10, 0x3c, 0x15, 0x12, 0xb9,
- 0x63, 0x01, 0x62, 0xe7, 0x61, 0xe5, 0xb1, 0xf0, 0x86, 0x39, 0xcf, 0x08,
- 0x30, 0x26, 0xa7, 0x35, 0x57, 0x7e, 0x07, 0xfa, 0xd6, 0x00, 0xd1, 0x45,
- 0x27, 0x2a, 0xd9, 0xa6, 0xa6, 0x8f, 0x04, 0x01, 0x1d, 0xfa, 0x68, 0xba,
- 0x30, 0x5f, 0x02, 0x31, 0x3d, 0x5d, 0x6f, 0xf3, 0x94, 0xeb, 0x46, 0x89,
- 0xd4, 0xf3, 0xa6, 0xa1, 0x13, 0xab, 0x8c, 0x80, 0x4f, 0xc3, 0x5a, 0x4b,
- 0x62, 0x44, 0xb0, 0x60, 0x12, 0xe0, 0xb2, 0xb8, 0x0a, 0x34, 0x28, 0x29,
- 0xae, 0x6f, 0xda, 0x95, 0x71, 0x9a, 0x23, 0x21, 0x80, 0x2d, 0x24, 0x51,
- 0xad, 0x23, 0xb0, 0xc3, 0x5a, 0xc5, 0x97, 0x25, 0xab, 0x53, 0x9c, 0x68,
- 0xd2, 0xed, 0xbb, 0x60, 0xaa, 0xb4, 0x40, 0x15, 0xbb, 0xb3, 0xe9, 0x0b,
- 0x5c, 0x6f, 0x32, 0x34, 0x1a, 0x84, 0x5b, 0x45, 0x5f, 0x10, 0x86, 0x51,
- 0x69, 0xdf, 0x96, 0xf1, 0x5b, 0x15, 0x25, 0x8a, 0x45, 0xd4, 0x5b, 0xc2,
- 0x41, 0xfc, 0xc0, 0x91, 0x38, 0xc9, 0xd6, 0x88, 0x8a, 0x36, 0x8c, 0x8e,
- 0xce, 0xb7, 0x93, 0xf3, 0x8e, 0x8b, 0x17, 0xc9, 0x16, 0x74, 0x67, 0xfb,
- 0xf2, 0x5e, 0xca, 0x26, 0x31, 0x85, 0xdc, 0x6a, 0x77, 0x60, 0x2e, 0x67,
- 0xd9, 0x12, 0x25, 0x22, 0x0c, 0xf7, 0xbb, 0xcb, 0xbf, 0xce, 0x58, 0x0e,
- 0xc1, 0x97, 0xc2, 0xfc, 0x09, 0xe2, 0x79, 0xf4, 0x85, 0x81, 0xb1, 0xe9,
- 0x4a, 0x4a, 0x21, 0xe2, 0x42, 0x25, 0xe2, 0x20, 0x55, 0xc7, 0xe6, 0x2c,
- 0x00, 0x9e, 0x61, 0x22, 0x14, 0x08, 0xec, 0x11, 0xc5, 0x48, 0xc5, 0xb0,
- 0x9a, 0x6f, 0xbf, 0x0e, 0x95, 0x37, 0xb6, 0xf7, 0x75, 0x56, 0x84, 0xc5,
- 0x01, 0xf0, 0x51, 0xd2, 0x17, 0x64, 0x03, 0x4f, 0x87, 0x5d, 0x5a, 0x6a,
- 0xcf, 0x85, 0x2b, 0x9d, 0xcb, 0x81, 0xc5, 0xe7, 0xfd, 0xbe, 0x82, 0xc0,
- 0x8e, 0x55, 0x49, 0x2a, 0x18, 0x46, 0x82, 0xf7, 0x9a, 0x5c, 0xe6, 0x0d,
- 0x2e, 0xd2, 0xc5, 0x3d, 0x4d, 0x86, 0x79, 0xac, 0xae, 0x6f, 0xf6, 0x8d,
- 0x78, 0xda, 0x1f, 0x7e, 0xce, 0x06, 0xee, 0x8d, 0xd1, 0x09, 0x22, 0x6c,
- 0x97, 0x1c, 0xc9, 0x97, 0xd2, 0x82, 0x9d, 0xf6, 0x44, 0xd9, 0x1f, 0x3a,
- 0xfb, 0x62, 0xf0, 0x3f, 0x68, 0xa7, 0xfd, 0x6d, 0x19, 0xc6, 0x52, 0xb6,
- 0x68, 0x43, 0x25, 0xb4, 0xad, 0xb6, 0xb9, 0x10, 0x16, 0xc7, 0x7d, 0xc7,
- 0x79, 0x03, 0xe6, 0x69, 0xe5, 0x57, 0x6a, 0x1f, 0x4c, 0x14, 0x8b, 0xa9,
- 0xf0, 0x56, 0x34, 0xdb, 0x77, 0x98, 0xfc, 0x0f, 0xfa, 0x94, 0xbe, 0xcd,
- 0x38, 0x76, 0x04, 0xa6, 0xbf, 0x3e, 0x7e, 0x73, 0x76, 0x71, 0xdc, 0x4e,
- 0xc3, 0x6a, 0xb8, 0x32, 0x31, 0x02, 0xaf, 0xdd, 0xde, 0x81, 0x34, 0x4a,
- 0x69, 0x04, 0x70, 0x17, 0xe6, 0x45, 0x4e, 0xc8, 0xd9, 0xe4, 0xfc, 0x87,
- 0xd7, 0xb6, 0x77, 0x39, 0xc4, 0xf3, 0x1b, 0xaf, 0xa6, 0x6e, 0x9f, 0x67,
- 0xba, 0xab, 0x41, 0x90, 0xae, 0x41, 0x85, 0x5b, 0xa4, 0x10, 0xac, 0xed,
- 0x1f, 0x02, 0xde, 0x0c, 0x54, 0xd0, 0x24, 0x64, 0x50, 0x14, 0xd7, 0x35,
- 0x25, 0x15, 0xdb, 0x46, 0x03, 0xf5, 0x9a, 0x35, 0x0c, 0x30, 0xf3, 0x48,
- 0x60, 0x3f, 0x65, 0x72, 0x26, 0x62, 0x6c, 0x1a, 0x26, 0xe1, 0x87, 0x34,
- 0x40, 0x8f, 0xaf, 0xc4, 0x90, 0x15, 0x54, 0xa9, 0x98, 0xfd, 0xd1, 0x7c,
- 0xad, 0x12, 0xc5, 0x3e, 0x6d, 0x5a, 0x5b, 0x23, 0xa6, 0xcf, 0x44, 0x5a,
- 0xe2, 0x7a, 0xf7, 0x27, 0x32, 0x12, 0xad, 0x34, 0xdf, 0xdc, 0xaa, 0xb7,
- 0xfb, 0xad, 0xae, 0xda, 0xdf, 0x24, 0x6a, 0xa7, 0x6f, 0xfe, 0xfb, 0xa6,
- 0xc3, 0xe8, 0x73, 0xad, 0xab, 0x78, 0x6d, 0x38, 0x57, 0x2b, 0x68, 0xfb,
- 0x21, 0x34, 0x8d, 0x8e, 0x78, 0x95, 0x8d, 0x26, 0x41, 0x14, 0x01, 0x58,
- 0xa0, 0x64, 0x1f, 0xc5, 0xbc, 0xd1, 0x3e, 0x97, 0xbf, 0xb2, 0x1c, 0x84,
- 0xda, 0x54, 0x3f, 0x46, 0x03, 0x46, 0x5e, 0x9f, 0xaa, 0x5d, 0x13, 0xd7,
- 0x92, 0xdb, 0x21, 0x84, 0xa1, 0xec, 0xd0, 0xec, 0x1a, 0xa6, 0x0d, 0x5e,
- 0xdf, 0x17, 0x0d, 0x9d, 0x56, 0x08, 0x96, 0x60, 0xd2, 0x2a, 0x5c, 0x48,
- 0xb4, 0x97, 0xdc, 0xee, 0xad, 0x91, 0x46, 0xff, 0xe2, 0xd9, 0x0b, 0x52,
- 0x22, 0x00, 0x19, 0x91, 0xf2, 0x39, 0xc2, 0xa0, 0xda, 0xe7, 0xa3, 0x1a,
- 0xb2, 0x8b, 0x8a, 0xea, 0x61, 0x5b, 0x92, 0xa2, 0xa7, 0xe3, 0x6c, 0xc6,
- 0x05, 0x7b, 0x46, 0x5e, 0x23, 0xeb, 0x6d, 0xcb, 0xd5, 0x90, 0xec, 0x21,
- 0xeb, 0x27, 0x66, 0x19, 0xd2, 0x8f, 0x92, 0x12, 0xce, 0x87, 0x21, 0x7a,
- 0x34, 0xfb, 0xba, 0x15, 0xbc, 0x7e, 0x59, 0xce, 0x79, 0x23, 0xb6, 0xb3,
- 0x2a, 0xaf, 0x3f, 0x9a, 0x83, 0xf7, 0x6f, 0x92, 0xbf, 0xbd, 0x32, 0xa7,
- 0x98, 0x5c, 0x93, 0x79, 0xb1, 0x64, 0x66, 0x55, 0x5b, 0x4e, 0x5b, 0x5b,
- 0xbc, 0x82, 0xe3, 0x9c, 0xc8, 0x3a, 0x63, 0x79, 0x4c, 0x75, 0x53, 0x2e,
- 0x82, 0xea, 0x1b, 0x92, 0x81, 0x2e, 0x3b, 0x21, 0xbc, 0x35, 0x69, 0xaa,
- 0xc0, 0x4b, 0x2b, 0x7e, 0x42, 0x55, 0x9e, 0x86, 0xc9, 0xfb, 0x02, 0xda,
- 0x8d, 0x6c, 0x4d, 0xb9, 0x4a, 0xf2, 0xc2, 0x8c, 0xc5, 0x8c, 0x95, 0x88,
- 0x0c, 0x22, 0x82, 0x0a, 0xb2, 0xd0, 0xed, 0xad, 0x44, 0x45, 0x69, 0x27,
- 0xa4, 0x85, 0xa3, 0x6d, 0x69, 0x84, 0x59, 0xb6, 0x25, 0x6f, 0xc2, 0x7a,
- 0x55, 0x5c, 0x6a, 0x47, 0xea, 0xba, 0xa3, 0x6d, 0x0a, 0x59, 0x66, 0xb3,
- 0xd9, 0x80, 0x79, 0x8c, 0x89, 0xd7, 0x95, 0xec, 0x0c, 0x4e, 0x10, 0x05,
- 0xe4, 0xc8, 0x4f, 0x40, 0x0e, 0x6e, 0x1f, 0xe4, 0xb9, 0x0e, 0x91, 0xb5,
- 0xa1, 0x54, 0x0b, 0x02, 0x54, 0xd6, 0x38, 0x08, 0x25, 0x44, 0x39, 0xd7,
- 0x0c, 0x66, 0xe7, 0x6f, 0x2a, 0x74, 0x63, 0xc5, 0x65, 0x42, 0x66, 0xc0,
- 0xc9, 0xcd, 0x75, 0xb5, 0xe0, 0x2a, 0x57, 0xb1, 0x12, 0x5c, 0x9e, 0x01,
- 0xc0, 0x4f, 0xea, 0xda, 0xd6, 0x59, 0xc3, 0x5d, 0xe1, 0x57, 0x4f, 0x5e,
- 0xb7, 0xaa, 0xe5, 0xd2, 0x4c, 0xc4, 0x8a, 0xbf, 0xf8, 0x00, 0x3a, 0x8e,
- 0x23, 0xe3, 0xc8, 0xba, 0xbb, 0xc5, 0xb6, 0xe6, 0xac, 0x9d, 0xf1, 0xbd,
- 0xfb, 0x4d, 0xbc, 0x39, 0x69, 0x83, 0xd5, 0x59, 0x6e, 0x41, 0x9b, 0xc5,
- 0x5e, 0xd1, 0x7a, 0xce, 0xb4, 0x1b, 0xa8, 0x76, 0xbb, 0x7e, 0x24, 0x84,
- 0xb5, 0xdd, 0xcc, 0xcb, 0x29, 0x65, 0xe1, 0x64, 0x0f, 0xce, 0x05, 0x3d,
- 0xa8, 0x73, 0x21, 0xf9, 0x4b, 0xb5, 0x3f, 0x2e, 0x34, 0x62, 0x76, 0x29,
- 0xed, 0x3c, 0x11, 0x62, 0xf1, 0xe6, 0xdc, 0x40, 0xb5, 0xea, 0x5c, 0xc6,
- 0x2f, 0xfb, 0x43, 0x28, 0x92, 0x72, 0xd2, 0x78, 0x23, 0xa0, 0x07, 0xe2,
- 0xcd, 0xb1, 0xf0, 0x8d, 0x8c, 0x8c, 0x52, 0x5a, 0x60, 0xdc, 0x3e, 0x34,
- 0x32, 0x7a, 0x30, 0x58, 0x65, 0xf3, 0x43, 0x16, 0xe9, 0x9d, 0x25, 0xe6,
- 0xc5, 0x89, 0x37, 0xd7, 0x5e, 0x60, 0x5d, 0x61, 0xf4, 0x21, 0xb6, 0xc0,
- 0x42, 0x23, 0x1b, 0x6a, 0x61, 0xce, 0x54, 0xe7, 0xd9, 0xb1, 0x0f, 0xae,
- 0x5c, 0x60, 0xf9, 0x46, 0x30, 0x0b, 0x33, 0x23, 0x21, 0x8d, 0x16, 0x3c,
- 0xc9, 0x3e, 0xa0, 0x6f, 0x4d, 0x5a, 0x5d, 0x67, 0xcd, 0x87, 0xf5, 0x13,
- 0x32, 0x93, 0x4c, 0xf2, 0xfb, 0x39, 0xca, 0xc6, 0x5a, 0x59, 0x21, 0x04,
- 0x8f, 0xa9, 0x64, 0x56, 0x1b, 0x25, 0x90, 0x4b, 0xf3, 0x36, 0xab, 0x27,
- 0xc4, 0xfb, 0x1e, 0x73, 0xce, 0xf3, 0x55, 0xb5, 0x28, 0x73, 0x2e, 0xc8,
- 0x6e, 0x65, 0x8c, 0xd7, 0xc7, 0x18, 0xef, 0xcc, 0xba, 0x40, 0xcb, 0xfc,
- 0x23, 0x25, 0xc5, 0x58, 0x45, 0xe1, 0x43, 0x84, 0x9f, 0xdf, 0x1b, 0x1c,
- 0x3f, 0xad, 0xab, 0xcd, 0x43, 0x52, 0x3a, 0x7a, 0x57, 0x5e, 0xd0, 0x1d,
- 0xe7, 0x35, 0xfb, 0xb8, 0xfd, 0x49, 0x7b, 0x26, 0xbb, 0xfd, 0x5b, 0xdc,
- 0x4d, 0x2d, 0x91, 0xc7, 0x9d, 0x3b, 0x42, 0xaa, 0x02, 0x00, 0x8d, 0xaa,
- 0x25, 0x3c, 0x09, 0x73, 0xc2, 0x8d, 0x5d, 0x29, 0x0d, 0xed, 0x8a, 0xa9,
- 0x00, 0x3b, 0x6d, 0xa0, 0x25, 0x05, 0x1f, 0xaf, 0x50, 0x8b, 0x54, 0xe6,
- 0x57, 0x96, 0x63, 0xf5, 0xe4, 0xc8, 0xd3, 0xae, 0x8b, 0x2c, 0xdf, 0xfd,
- 0x6a, 0xe3, 0x6e, 0x8e, 0xf4, 0x38, 0xac, 0x11, 0x78, 0xf2, 0xd9, 0xae,
- 0xc8, 0x9b, 0x66, 0xe4, 0x23, 0xe6, 0xbd, 0x00, 0x94, 0xcd, 0xc3, 0x27,
- 0x8b, 0x7b, 0xbe, 0x72, 0x8e, 0xab, 0xf9, 0x03, 0x87, 0xdc, 0x3c, 0xe0,
- 0x46, 0xc5, 0x3c, 0x04, 0x76, 0x54, 0xc1, 0xb9, 0x94, 0x52, 0xa5, 0x2b,
- 0x66, 0x7e, 0x55, 0x0f, 0x5a, 0xbb, 0x70, 0x75, 0x4f, 0xe4, 0xc9, 0x68,
- 0x77, 0xdc, 0xe4, 0x52, 0xa6, 0xe3, 0xbd, 0xeb, 0x59, 0xbc, 0x39, 0xe9,
- 0xae, 0x7b, 0x4b, 0xa6, 0xa7, 0xef, 0x39, 0x52, 0x99, 0xce, 0xdf, 0x18,
- 0x97, 0xe1, 0xde, 0xd0, 0x03, 0xfe, 0xab, 0x04, 0x04, 0x59, 0xf1, 0xb3,
- 0xc2, 0xb7, 0xdb, 0xe9, 0x8b, 0xe6, 0xee, 0x5d, 0x93, 0x7e, 0xe0, 0x71,
- 0x81, 0xdb, 0xe5, 0xe6, 0xea, 0x90, 0x08, 0x15, 0x02, 0x42, 0x05, 0x68,
- 0x21, 0xca, 0xc1, 0x88, 0xed, 0x0c, 0xc2, 0xac, 0x29, 0x11, 0xed, 0x87,
- 0x58, 0xe7, 0x84, 0xbf, 0x99, 0x30, 0xd2, 0x06, 0xd3, 0x0a, 0xde, 0x08,
- 0x51, 0x44, 0xb4, 0xfa, 0x64, 0x9d, 0x89, 0x35, 0x21, 0x8f, 0x33, 0x77,
- 0x7f, 0x58, 0x72, 0xb3, 0x03, 0x77, 0xaa, 0x87, 0x9e, 0xb3, 0x82, 0x19,
- 0x6f, 0xb3, 0xeb, 0xa9, 0x5f, 0xc0, 0xd6, 0x1b, 0x7e, 0xd5, 0xe7, 0x29,
- 0xb8, 0x36, 0x83, 0xc7, 0x1f, 0x51, 0x60, 0x3f, 0xb4, 0x66, 0x28, 0x2b,
- 0x94, 0x5f, 0xbe, 0x9d, 0x5c, 0x64, 0x94, 0xc8, 0x7a, 0x4b, 0xc2, 0x74,
- 0x7c, 0xdf, 0xa0, 0x83, 0xa6, 0x81, 0xad, 0x7c, 0x68, 0xae, 0x43, 0x06,
- 0x72, 0x93, 0x8a, 0x44, 0x9c, 0xd8, 0x81, 0x4e, 0x63, 0x76, 0xc6, 0xb6,
- 0x02, 0xa4, 0x94, 0x02, 0x69, 0x67, 0x6f, 0xb8, 0x67, 0x94, 0xf1, 0x37,
- 0x4c, 0x37, 0xe4, 0xab, 0xd7, 0x80, 0x9b, 0x09, 0x1f, 0x2f, 0x7d, 0xba,
- 0xeb, 0x8d, 0xb8, 0xa0, 0x0f, 0xd7, 0xa1, 0x8b, 0x1a, 0x7e, 0x6e, 0x67,
- 0xd6, 0xdc, 0xa5, 0xf7, 0xa1, 0xa2, 0xbe, 0x3b, 0x78, 0xfa, 0xe2, 0x45,
- 0xeb, 0x46, 0xaf, 0x3d, 0x3e, 0xe3, 0x67, 0xbb, 0xbb, 0x18, 0x5b, 0x90,
- 0xc7, 0x6a, 0x7e, 0x31, 0x78, 0x81, 0x17, 0xdb, 0xaf, 0xd5, 0x99, 0x59,
- 0x82, 0xe9, 0xea, 0xf7, 0x06, 0xf4, 0x9b, 0xc8, 0xe7, 0xe0, 0x75, 0x59,
- 0xf9, 0xd6, 0x0b, 0xfa, 0x5c, 0xe4, 0x2d, 0x3c, 0xcc, 0xd3, 0x58, 0x5e,
- 0x5d, 0x91, 0xbb, 0x8b, 0x9e, 0x54, 0x5e, 0x92, 0xbb, 0xb4, 0x9a, 0x86,
- 0xc3, 0xdd, 0xed, 0x0f, 0xf6, 0x56, 0x0d, 0x17, 0x6c, 0xcc, 0x00, 0x2c,
- 0xd1, 0x7a, 0x92, 0x35, 0x69, 0x6c, 0x09, 0x4e, 0xea, 0xe8, 0x36, 0xb4,
- 0x67, 0x7a, 0xb4, 0xf7, 0xe2, 0x45, 0x9f, 0x7a, 0xf6, 0xec, 0xc5, 0x8b,
- 0x95, 0x49, 0xbc, 0xde, 0x67, 0xee, 0x4a, 0xe7, 0xa4, 0xa2, 0xd7, 0xdd,
- 0xa6, 0xa9, 0xc9, 0x64, 0x89, 0x7f, 0x87, 0x7e, 0xf3, 0x2a, 0x79, 0x77,
- 0x76, 0x79, 0xec, 0xb9, 0x6f, 0x70, 0xbc, 0x38, 0x7c, 0xe9, 0xd9, 0xa3,
- 0x88, 0x07, 0x2f, 0x50, 0x4e, 0x07, 0xa6, 0x31, 0xd9, 0x5a, 0x21, 0xca,
- 0x01, 0x09, 0x06, 0xea, 0x37, 0xfc, 0x97, 0xee, 0xe7, 0xce, 0x50, 0x16,
- 0x73, 0x9a, 0x5f, 0xe7, 0x8d, 0x4f, 0x5a, 0xb3, 0x65, 0x56, 0x7b, 0x1b,
- 0x9e, 0x10, 0x06, 0x26, 0x49, 0x68, 0x67, 0xb3, 0x26, 0x40, 0x3e, 0x63,
- 0x17, 0x37, 0xc9, 0x30, 0xda, 0x0c, 0x20, 0xf1, 0xd9, 0x6c, 0x5a, 0xeb,
- 0x45, 0xc8, 0x8f, 0x0f, 0xf0, 0xa0, 0x9c, 0x16, 0xd8, 0xb3, 0x5c, 0xb5,
- 0x37, 0x85, 0x73, 0x99, 0x3f, 0xbd, 0x3a, 0xb8, 0x43, 0x92, 0x90, 0x91,
- 0xb8, 0x9a, 0x4c, 0x43, 0xed, 0xf8, 0xe0, 0xc6, 0xcd, 0xda, 0xb9, 0x45,
- 0xad, 0x0f, 0xaf, 0x88, 0x03, 0x1e, 0x10, 0x51, 0x98, 0x66, 0x0b, 0x05,
- 0x01, 0x16, 0xed, 0x76, 0xcc, 0x5e, 0xbe, 0xca, 0xaf, 0x97, 0x55, 0x1c,
- 0x2e, 0xf7, 0x17, 0x97, 0xda, 0xa1, 0xcc, 0xdd, 0xe9, 0x5d, 0xaa, 0x29,
- 0x25, 0x20, 0x5b, 0xd7, 0x73, 0xad, 0x76, 0xb2, 0xa6, 0x70, 0x80, 0x57,
- 0x3d, 0xf0, 0x8b, 0x91, 0xc9, 0x7c, 0x65, 0x74, 0x19, 0x38, 0x13, 0x04,
- 0x60, 0x02, 0xef, 0x9f, 0x94, 0xd8, 0x92, 0x54, 0x1a, 0x75, 0xb5, 0x9b,
- 0xf5, 0xa6, 0xeb, 0x34, 0x95, 0x29, 0x08, 0x41, 0x6a, 0x9b, 0x33, 0x17,
- 0x48, 0xa0, 0x27, 0xe1, 0x93, 0xb9, 0x29, 0x3d, 0xa2, 0xfe, 0x30, 0xd1,
- 0x5e, 0xa8, 0x42, 0x20, 0x7d, 0x78, 0x89, 0xa6, 0x46, 0x89, 0x9e, 0x95,
- 0xe9, 0x54, 0xdc, 0x2b, 0x2e, 0xb4, 0xcf, 0xda, 0x81, 0xf0, 0x2d, 0xc9,
- 0xda, 0x06, 0xbc, 0xce, 0xb4, 0xd4, 0xb2, 0xca, 0x44, 0x8e, 0x2c, 0xc5,
- 0xaf, 0x75, 0x93, 0x96, 0x85, 0xd5, 0x92, 0x58, 0x4e, 0x99, 0x8f, 0x30,
- 0xaf, 0xc1, 0xf6, 0x30, 0xe2, 0x06, 0xa0, 0x0d, 0xcf, 0xab, 0x65, 0xe9,
- 0xe6, 0x51, 0xba, 0x8e, 0x2e, 0x49, 0xcf, 0xeb, 0x91, 0x8c, 0x4e, 0xfe,
- 0x9f, 0xe3, 0x3f, 0x32, 0x04, 0x56, 0xa5, 0x77, 0x36, 0xd9, 0xeb, 0x07,
- 0x26, 0xec, 0x93, 0xd0, 0x94, 0x65, 0x17, 0x48, 0x67, 0x62, 0xc6, 0x53,
- 0xa9, 0x6f, 0xdc, 0x1e, 0x08, 0x72, 0x4a, 0x65, 0x4a, 0xb3, 0xb1, 0xc2,
- 0xbd, 0x4d, 0xb9, 0x2a, 0x3e, 0x71, 0x13, 0x97, 0x80, 0x99, 0x22, 0x51,
- 0x87, 0x81, 0x45, 0xba, 0x98, 0xb6, 0xd0, 0xf8, 0x1c, 0x8e, 0x61, 0x70,
- 0xea, 0x04, 0x45, 0xe7, 0x40, 0x0a, 0x47, 0xdd, 0x32, 0xbd, 0x7d, 0xa0,
- 0x34, 0x98, 0x9f, 0x1f, 0x8d, 0x6a, 0xb2, 0x55, 0x46, 0xf1, 0xb2, 0x2a,
- 0x79, 0xf9, 0xfe, 0xe2, 0x74, 0x45, 0x92, 0xdb, 0x08, 0xab, 0x40, 0xd3,
- 0xd5, 0xbb, 0xc8, 0xc0, 0xe6, 0x54, 0x25, 0xe7, 0xe9, 0x75, 0xd6, 0xf3,
- 0x09, 0xb4, 0x54, 0x59, 0xc4, 0x04, 0x88, 0x0f, 0x22, 0xe6, 0x29, 0xf2,
- 0xd9, 0xef, 0x49, 0x8c, 0xbb, 0x28, 0xb5, 0x9f, 0x99, 0x76, 0x35, 0x4b,
- 0x65, 0xf6, 0x96, 0x15, 0x6a, 0xdc, 0xff, 0x10, 0xad, 0x20, 0x23, 0x3e,
- 0xa1, 0x36, 0xef, 0xa1, 0x03, 0x54, 0x51, 0x80, 0x08, 0x45, 0x8e, 0x7b,
- 0x5f, 0x90, 0x9b, 0xbe, 0xe7, 0x71, 0xfd, 0x0d, 0xb2, 0x18, 0x1d, 0x3c,
- 0x4f, 0x05, 0xb3, 0xb4, 0x59, 0xb7, 0x12, 0xbb, 0xfc, 0x5b, 0x6e, 0xfe,
- 0x3a, 0xd3, 0x20, 0x51, 0x46, 0x8c, 0xa4, 0x75, 0xa4, 0x76, 0xb2, 0x02,
- 0x45, 0x99, 0x84, 0x92, 0x6c, 0xc0, 0x53, 0xe9, 0xdf, 0x81, 0x44, 0x64,
- 0x58, 0x11, 0xb2, 0x5d, 0x93, 0xb0, 0x39, 0x77, 0x7c, 0x9c, 0xc5, 0x06,
- 0x9b, 0xce, 0xa8, 0x2e, 0x85, 0xf5, 0x64, 0xd1, 0x38, 0xa7, 0x25, 0x95,
- 0x32, 0x40, 0xf9, 0xe3, 0xc2, 0x3a, 0x9d, 0x5b, 0x2b, 0xfb, 0x87, 0x93,
- 0xbd, 0xb9, 0x40, 0xd1, 0x61, 0x5f, 0x8a, 0xad, 0x0c, 0xcc, 0xee, 0x28,
- 0x24, 0x7f, 0xd9, 0x5b, 0x56, 0x6f, 0xef, 0xfd, 0x67, 0x3f, 0xca, 0xbf,
- 0xbf, 0x82, 0x33, 0xd4, 0xeb, 0x6e, 0x83, 0xcc, 0x02, 0x6c, 0x98, 0xb3,
- 0x7e, 0xa7, 0x02, 0x80, 0x4b, 0x73, 0x94, 0xfb, 0x32, 0xea, 0x5b, 0x1c,
- 0x78, 0x71, 0xea, 0xe4, 0x88, 0x33, 0xee, 0x06, 0xaf, 0x73, 0x73, 0x8f,
- 0xd4, 0x4c, 0x1d, 0xc3, 0x8e, 0x01, 0x4e, 0x19, 0xb3, 0x07, 0x31, 0x09,
- 0x6b, 0x3c, 0x69, 0x3c, 0x05, 0x48, 0x3a, 0xfb, 0x8a, 0x8d, 0xee, 0x98,
- 0x3d, 0xb1, 0x9a, 0xc0, 0xd0, 0x32, 0x9e, 0x5b, 0xa5, 0x21, 0x75, 0x5e,
- 0x0b, 0x29, 0xc8, 0xcc, 0xc4, 0xf0, 0x7c, 0x3e, 0xcc, 0xad, 0x10, 0x99,
- 0x1f, 0x25, 0x74, 0x01, 0x8c, 0xc7, 0xf1, 0xac, 0x48, 0x31, 0x94, 0xc0,
- 0xdc, 0xb4, 0x85, 0x68, 0xf9, 0x66, 0x0a, 0x36, 0x19, 0x01, 0x65, 0x6c,
- 0x45, 0x0a, 0x8e, 0xb1, 0x30, 0x0d, 0x19, 0xa7, 0x14, 0x4e, 0x4c, 0xc3,
- 0xc3, 0x8e, 0x67, 0x5c, 0x8b, 0x69, 0xac, 0x40, 0x19, 0xb6, 0x46, 0x05,
- 0xb8, 0xa3, 0xbf, 0xf5, 0x28, 0x8a, 0x50, 0x94, 0xc2, 0xcc, 0x11, 0x8b,
- 0xe9, 0x03, 0x50, 0x64, 0x9e, 0xf0, 0xee, 0x41, 0x06, 0x90, 0x24, 0x7f,
- 0x1e, 0xb8, 0x72, 0x06, 0x5b, 0xf7, 0x99, 0xd1, 0xb1, 0x6d, 0x11, 0x03,
- 0x35, 0xa6, 0x22, 0x39, 0x7b, 0x09, 0x97, 0xe9, 0xab, 0x5b, 0xe9, 0x04,
- 0x30, 0x43, 0xbc, 0x18, 0x24, 0x4f, 0xb9, 0xd1, 0x04, 0x08, 0x32, 0xbe,
- 0x2c, 0xb2, 0x4f, 0xc4, 0x83, 0xbc, 0xba, 0xb9, 0x50, 0xd1, 0xfe, 0xe1,
- 0xf0, 0xe2, 0xdd, 0xc9, 0xbb, 0x6f, 0x0e, 0x92, 0xe3, 0x4f, 0x59, 0x35,
- 0xa1, 0x92, 0xb2, 0x7f, 0x5d, 0x4e, 0xf3, 0x09, 0x04, 0x85, 0x14, 0xea,
- 0xf4, 0x13, 0x2b, 0xa9, 0xba, 0xba, 0x78, 0x59, 0xe9, 0xd2, 0x0d, 0xe4,
- 0xbb, 0x80, 0x51, 0x29, 0xe1, 0xdf, 0x58, 0x52, 0xe5, 0xf5, 0xd2, 0xdb,
- 0x3e, 0x13, 0x2e, 0x20, 0x86, 0x80, 0x01, 0xa2, 0xa9, 0x37, 0x32, 0xd7,
- 0xe4, 0x7a, 0x4d, 0x5e, 0x9f, 0x9e, 0x86, 0x74, 0xa6, 0x28, 0x74, 0xcb,
- 0xdd, 0xe7, 0x04, 0x4d, 0x34, 0x61, 0x36, 0x7f, 0x9d, 0x8f, 0x19, 0xf6,
- 0x44, 0x2a, 0x00, 0x97, 0x0f, 0xf3, 0x44, 0x1e, 0x7c, 0x2b, 0xa6, 0x2b,
- 0xdd, 0x45, 0x06, 0x4e, 0x16, 0x68, 0x45, 0xac, 0x70, 0x5e, 0x4d, 0x61,
- 0x0f, 0x19, 0x19, 0x59, 0x5e, 0x35, 0xa4, 0x23, 0xb5, 0x6e, 0xd3, 0x76,
- 0x69, 0x8e, 0xb5, 0x91, 0x84, 0x1b, 0x36, 0x75, 0x7c, 0x4c, 0x84, 0x04,
- 0x2f, 0xc1, 0xe6, 0x67, 0x36, 0x24, 0x2b, 0x87, 0xa8, 0xe9, 0x12, 0x0b,
- 0xa3, 0x4d, 0xb3, 0xd4, 0x16, 0xaa, 0xad, 0x49, 0x5e, 0x86, 0x02, 0xe3,
- 0x2e, 0xab, 0xc4, 0xfc, 0xb4, 0xa9, 0x9f, 0x46, 0xdc, 0x0d, 0x93, 0x51,
- 0x69, 0x9e, 0x0f, 0xb5, 0x2c, 0x5b, 0xfc, 0xac, 0x55, 0x47, 0x19, 0xdd,
- 0x71, 0x40, 0x2f, 0x14, 0x86, 0x41, 0x74, 0xae, 0x3d, 0xde, 0x48, 0xe1,
- 0x55, 0xda, 0xff, 0xe3, 0xcc, 0x2a, 0x15, 0xf7, 0x1a, 0xff, 0xa1, 0x4d,
- 0xd2, 0x1b, 0x18, 0x81, 0xda, 0xa3, 0x99, 0x45, 0x39, 0x58, 0xaf, 0xa5,
- 0x07, 0x8a, 0x1a, 0xfa, 0x30, 0xeb, 0xee, 0x80, 0x1f, 0xa8, 0x15, 0xa5,
- 0x96, 0xa7, 0xe7, 0x3e, 0x95, 0x8a, 0x3d, 0x36, 0xa6, 0xca, 0x32, 0x29,
- 0x43, 0x6d, 0xd7, 0x20, 0x54, 0xce, 0x26, 0x85, 0x75, 0xc9, 0xf8, 0x09,
- 0xce, 0xfe, 0xeb, 0x72, 0xe3, 0xf4, 0x9d, 0x87, 0x81, 0xf4, 0x82, 0x20,
- 0xc9, 0xd6, 0xd8, 0x79, 0xc3, 0xed, 0x18, 0xd0, 0x47, 0xe4, 0xa2, 0x50,
- 0x59, 0x1a, 0xf5, 0x7a, 0xfa, 0xa0, 0xe4, 0x83, 0xd8, 0x8a, 0x14, 0x3d,
- 0xe2, 0x54, 0x75, 0xcf, 0x2b, 0xce, 0xcd, 0x41, 0x98, 0xa4, 0x16, 0x4c,
- 0xd4, 0xf8, 0x71, 0x4d, 0x97, 0x4f, 0x1e, 0x36, 0xe7, 0xa5, 0xe8, 0xac,
- 0x16, 0xc2, 0x12, 0xbb, 0xc9, 0x8b, 0xdb, 0xf2, 0x23, 0xdf, 0xf8, 0x52,
- 0x7d, 0x3c, 0xa0, 0x3c, 0xf0, 0xc9, 0x03, 0xa3, 0xa8, 0x35, 0x99, 0x55,
- 0xe9, 0x3b, 0xdf, 0x58, 0x1e, 0x10, 0xde, 0x0c, 0x46, 0x42, 0x32, 0x36,
- 0x71, 0xcb, 0x5e, 0x4f, 0x9d, 0xe6, 0xec, 0x59, 0xea, 0x6b, 0x65, 0xdf,
- 0x24, 0x9b, 0xd5, 0x59, 0xdf, 0xcb, 0xe1, 0xd2, 0xcb, 0x46, 0x6f, 0x1b,
- 0xa0, 0x51, 0x35, 0x8a, 0xb9, 0xfa, 0x26, 0x19, 0x26, 0x3a, 0xf7, 0xfe,
- 0x74, 0x3b, 0x43, 0x16, 0x11, 0x50, 0x8e, 0x3d, 0x4d, 0x6e, 0xca, 0x32,
- 0x7a, 0x71, 0xbb, 0x3b, 0x04, 0x4a, 0x0d, 0x88, 0x0c, 0x56, 0x68, 0x10,
- 0xed, 0x9a, 0x71, 0x92, 0xad, 0xd0, 0x3d, 0x7b, 0x4a, 0x12, 0x27, 0xfa,
- 0xa0, 0x47, 0xd1, 0xd8, 0xbe, 0xdd, 0xb8, 0x43, 0xc1, 0xdd, 0x1c, 0x83,
- 0x39, 0xf0, 0xef, 0x3a, 0xf7, 0x71, 0xd3, 0xca, 0x79, 0xf7, 0x27, 0x25,
- 0x7a, 0xd9, 0x31, 0x22, 0xce, 0xe1, 0x24, 0xb1, 0x6f, 0x60, 0x38, 0x15,
- 0xed, 0xb0, 0x06, 0xfa, 0x99, 0x37, 0x10, 0x20, 0x7f, 0xde, 0xdf, 0x5d,
- 0x25, 0xe4, 0x59, 0x91, 0xd5, 0xdc, 0x44, 0x3a, 0x8e, 0xd6, 0x40, 0xe7,
- 0x8b, 0xd0, 0xf1, 0x05, 0xd0, 0x05, 0xb2, 0x5c, 0x24, 0xa8, 0x27, 0x44,
- 0xd5, 0xa8, 0x56, 0xcc, 0x7f, 0xd4, 0x32, 0xfe, 0xad, 0x35, 0xc8, 0x56,
- 0x15, 0x21, 0x73, 0xf2, 0xeb, 0xc2, 0x5b, 0x63, 0x6a, 0x29, 0x9a, 0x14,
- 0xc9, 0xb2, 0xc4, 0x73, 0x97, 0x78, 0x5a, 0xbb, 0xd3, 0x1b, 0x60, 0xdd,
- 0x43, 0xd8, 0x31, 0x1a, 0x21, 0x0f, 0x45, 0xb2, 0xb1, 0x6b, 0xe7, 0x8b,
- 0x88, 0xc0, 0xb2, 0x87, 0x40, 0x30, 0xbf, 0x74, 0x4b, 0x59, 0xd8, 0xae,
- 0xc6, 0x9e, 0xc3, 0x4d, 0xeb, 0xc9, 0x52, 0x36, 0xc9, 0x53, 0x01, 0x90,
- 0x62, 0x4e, 0xe8, 0x5b, 0xed, 0xab, 0x11, 0xd8, 0xb4, 0x41, 0xd4, 0xe7,
- 0xaf, 0x6c, 0x23, 0x21, 0x6d, 0x15, 0xac, 0x29, 0x47, 0x09, 0xde, 0xe3,
- 0xd7, 0x7b, 0xc9, 0x16, 0xc9, 0xd5, 0x6d, 0xd5, 0x5e, 0xc3, 0x78, 0xbf,
- 0x2b, 0xf0, 0x0d, 0x01, 0x9c, 0xd6, 0x01, 0x98, 0x17, 0xfa, 0x6b, 0x62,
- 0x0c, 0xbd, 0xca, 0xa8, 0x00, 0xcb, 0x59, 0x5a, 0x91, 0x6c, 0x37, 0x9f,
- 0xbc, 0x5a, 0xce, 0x62, 0xa6, 0x0e, 0xce, 0xb6, 0xc6, 0x88, 0xcc, 0x14,
- 0xd5, 0x4b, 0x65, 0x54, 0x77, 0x0c, 0x21, 0x42, 0x17, 0x37, 0x33, 0x3d,
- 0x02, 0x2d, 0xfa, 0x8c, 0x2b, 0x47, 0x45, 0xf7, 0x2e, 0x1c, 0xc4, 0x98,
- 0x33, 0x55, 0x31, 0xd9, 0x92, 0xe2, 0xbe, 0x55, 0xd9, 0x35, 0x75, 0xc9,
- 0x55, 0xa7, 0xa2, 0x29, 0xa0, 0x3a, 0xc9, 0xe6, 0xba, 0xea, 0x34, 0xd7,
- 0x3b, 0x3b, 0xbf, 0x3c, 0x39, 0x7b, 0x37, 0x4a, 0xfe, 0xad, 0xb7, 0x36,
- 0x41, 0xa9, 0x4d, 0x2e, 0xfb, 0x63, 0xdf, 0xad, 0x49, 0xf2, 0x52, 0xbc,
- 0x0d, 0xab, 0xec, 0x63, 0x4f, 0x87, 0x9f, 0x98, 0xfb, 0xdb, 0x08, 0x58,
- 0x7d, 0x53, 0x58, 0xb9, 0x64, 0xb1, 0x3a, 0x19, 0xe8, 0x81, 0xbe, 0xec,
- 0xa7, 0xeb, 0xfb, 0x76, 0x34, 0x4b, 0x7b, 0x67, 0xb6, 0x74, 0x5a, 0x5f,
- 0x21, 0x83, 0x99, 0x43, 0xc2, 0xda, 0x2f, 0x16, 0xa8, 0x22, 0x6f, 0x61,
- 0x9a, 0xef, 0x48, 0x3b, 0xc5, 0x83, 0x5b, 0x52, 0xe3, 0x9b, 0x55, 0xad,
- 0x3a, 0x44, 0x13, 0x7e, 0x73, 0x7c, 0xb9, 0x2d, 0xe9, 0x89, 0xb6, 0x7f,
- 0xf0, 0x77, 0x89, 0xe2, 0x93, 0x5a, 0xdd, 0x4c, 0x13, 0x12, 0xd9, 0x93,
- 0x61, 0xf4, 0xe7, 0x59, 0x5a, 0x44, 0x93, 0xb0, 0x48, 0xa7, 0xa5, 0xc2,
- 0xe3, 0x48, 0x77, 0x15, 0x99, 0xac, 0x3e, 0x14, 0xaf, 0x8a, 0x08, 0x33,
- 0xea, 0x9c, 0xbf, 0xbf, 0x44, 0x83, 0xaf, 0x8f, 0x4f, 0x8f, 0x2f, 0x8f,
- 0xbb, 0xd6, 0xfb, 0x98, 0x69, 0x08, 0x91, 0x7d, 0xd3, 0x64, 0x93, 0x9b,
- 0xa2, 0x9c, 0x95, 0xd7, 0xb9, 0xd4, 0x5e, 0x4c, 0x7e, 0xc8, 0xc6, 0xaf,
- 0x0f, 0xbf, 0x27, 0x8d, 0x82, 0xfc, 0x4e, 0xe7, 0x17, 0x67, 0xe7, 0x6f,
- 0x4e, 0xde, 0xbd, 0xee, 0x27, 0x47, 0x67, 0xe7, 0x7f, 0xe9, 0x27, 0x6f,
- 0xcf, 0xbe, 0x3f, 0x8e, 0xa0, 0xae, 0x89, 0x22, 0x3c, 0x52, 0xfa, 0x5d,
- 0x2a, 0xa0, 0xf1, 0x85, 0xc6, 0xe6, 0x37, 0x2a, 0x2e, 0x77, 0x2e, 0x12,
- 0x4a, 0x4b, 0xa8, 0x4b, 0x91, 0xb8, 0x66, 0xee, 0xfa, 0xc9, 0xb7, 0xc7,
- 0x87, 0xaf, 0xfb, 0x01, 0x89, 0xf3, 0x88, 0x47, 0x45, 0xa3, 0xb3, 0x43,
- 0x06, 0xf5, 0x2f, 0xdb, 0x1f, 0xd0, 0x12, 0x38, 0xd4, 0xc5, 0x47, 0xd6,
- 0x6c, 0x58, 0x24, 0x57, 0x4f, 0x57, 0x21, 0x28, 0x84, 0x8d, 0x7c, 0x65,
- 0xb5, 0xd3, 0x56, 0x26, 0x08, 0x14, 0x36, 0x55, 0xb5, 0xa5, 0x3a, 0x35,
- 0x53, 0xed, 0x24, 0xc0, 0xfb, 0xdb, 0x74, 0x3f, 0x5d, 0xf2, 0x38, 0xd7,
- 0x4b, 0xbf, 0x95, 0xe3, 0x0d, 0x81, 0xc4, 0x2e, 0xc8, 0x54, 0x4a, 0xc5,
- 0xa1, 0x76, 0x0b, 0x81, 0x80, 0x46, 0x4c, 0x75, 0xac, 0x14, 0x9f, 0x61,
- 0x7a, 0x43, 0x4b, 0x51, 0x28, 0x95, 0x54, 0x5a, 0x68, 0x77, 0x68, 0x0a,
- 0xdd, 0x37, 0xa5, 0x76, 0xc6, 0x8f, 0xfc, 0xe3, 0x08, 0xee, 0x9a, 0xab,
- 0x37, 0x5d, 0x99, 0xcd, 0x99, 0x31, 0xba, 0x0a, 0xeb, 0xe4, 0xdc, 0x03,
- 0xc9, 0xe0, 0x44, 0x9d, 0x13, 0xeb, 0xd4, 0x2c, 0x39, 0x30, 0xe2, 0xa0,
- 0x01, 0xcd, 0x8f, 0x3a, 0xae, 0xda, 0x72, 0xc2, 0xd5, 0x2b, 0xe5, 0xb3,
- 0x77, 0x15, 0xc8, 0x36, 0xf0, 0x03, 0xeb, 0x3a, 0xf7, 0x85, 0xa4, 0xc0,
- 0xa6, 0x75, 0x5c, 0x39, 0xee, 0x53, 0x46, 0xeb, 0xb6, 0xfd, 0x5a, 0xe6,
- 0x9e, 0x0d, 0x88, 0x99, 0xe8, 0x31, 0x23, 0x4d, 0x0a, 0x71, 0x8d, 0x52,
- 0x08, 0x6e, 0xc0, 0xf6, 0xb4, 0x8f, 0x10, 0x56, 0x11, 0xaa, 0x0a, 0xaa,
- 0x76, 0x21, 0x5e, 0xa1, 0xbb, 0x55, 0xe1, 0xd6, 0x9e, 0xf5, 0x27, 0xbb,
- 0x9f, 0x9c, 0xb7, 0x9d, 0x34, 0x8a, 0x3a, 0x19, 0x08, 0xa3, 0xf2, 0xdc,
- 0x5c, 0x85, 0xa1, 0x9f, 0x69, 0xeb, 0xcd, 0x0a, 0xe1, 0xe8, 0xfb, 0x6f,
- 0x6d, 0x2e, 0xb6, 0x45, 0x87, 0x9f, 0x9e, 0x98, 0x23, 0x11, 0xa1, 0x35,
- 0x99, 0x96, 0xa8, 0xe3, 0x0a, 0xc8, 0x41, 0xae, 0xd7, 0x09, 0xb5, 0x15,
- 0x7e, 0x98, 0x0a, 0x1b, 0x47, 0xbf, 0x8c, 0x8a, 0xc7, 0x0f, 0x7c, 0x3a,
- 0x58, 0xb3, 0x8b, 0xe3, 0xcb, 0x8b, 0x61, 0xb2, 0xe5, 0x33, 0x76, 0x3e,
- 0x1f, 0xee, 0x86, 0xe1, 0x1b, 0xaa, 0xa9, 0xbc, 0x9d, 0x78, 0x9f, 0x75,
- 0xdf, 0x45, 0xb9, 0xe5, 0xf5, 0xdf, 0x0d, 0x71, 0xc7, 0x1e, 0x4b, 0xcf,
- 0x6e, 0xec, 0x7b, 0x7e, 0xe5, 0xe6, 0xd6, 0x28, 0xe9, 0x17, 0x6b, 0xbe,
- 0xf6, 0xed, 0xf1, 0xe9, 0x79, 0x38, 0xca, 0xef, 0x2f, 0xde, 0xfc, 0xa5,
- 0x3d, 0xca, 0x27, 0x4f, 0x23, 0x5f, 0xfd, 0x3d, 0x5d, 0xeb, 0x59, 0x5d,
- 0xce, 0x8c, 0xce, 0x82, 0xe4, 0x12, 0xe4, 0x96, 0x1c, 0x98, 0x4b, 0x80,
- 0xb0, 0xe9, 0x3f, 0xf5, 0xe5, 0x2f, 0xbf, 0x0c, 0x87, 0xc3, 0x2f, 0x43,
- 0xda, 0x69, 0x78, 0x6a, 0x28, 0xec, 0x25, 0x03, 0x4e, 0xe4, 0x71, 0xc1,
- 0x65, 0x7a, 0xc6, 0x38, 0x12, 0x7a, 0x90, 0xc1, 0x44, 0x71, 0x8c, 0x45,
- 0x9a, 0x07, 0x4e, 0xe9, 0xf7, 0x16, 0x6c, 0xed, 0x32, 0xd0, 0x20, 0x74,
- 0xc4, 0x88, 0x9b, 0xd9, 0xe3, 0xba, 0x45, 0x95, 0x1d, 0x39, 0x8f, 0x30,
- 0x59, 0x19, 0xea, 0xb7, 0x3d, 0xc1, 0xdd, 0x47, 0xfe, 0x61, 0x10, 0x5d,
- 0x11, 0x40, 0xc9, 0xde, 0xb7, 0x85, 0xde, 0x21, 0x32, 0x03, 0x53, 0xfb,
- 0x56, 0x70, 0xe9, 0xda, 0x0c, 0xce, 0x23, 0x09, 0xaf, 0xc3, 0x10, 0xc3,
- 0xc5, 0x82, 0x2a, 0x9e, 0x59, 0x33, 0xd9, 0xa1, 0x31, 0xd6, 0x61, 0x65,
- 0x98, 0x98, 0x0f, 0xcc, 0xf2, 0xf1, 0xfb, 0x05, 0x69, 0xd9, 0x0f, 0xed,
- 0x27, 0xe6, 0xb8, 0x7a, 0x35, 0x9e, 0xd6, 0x4e, 0xfd, 0x88, 0xc4, 0xe2,
- 0xfd, 0xf2, 0x30, 0x2e, 0xa9, 0x05, 0xec, 0x57, 0x65, 0xdd, 0xb4, 0x16,
- 0x1f, 0x2f, 0x90, 0x39, 0xd8, 0x24, 0x9c, 0x44, 0x17, 0xf1, 0xb0, 0xb0,
- 0x88, 0xd6, 0xed, 0x64, 0x09, 0xa4, 0xdb, 0xb5, 0xe7, 0xd5, 0x59, 0xa7,
- 0xd3, 0x26, 0xfd, 0xe8, 0xaa, 0xf3, 0xa4, 0x6b, 0xa3, 0x13, 0x4c, 0x06,
- 0xad, 0xb6, 0x3c, 0x8d, 0xb4, 0x5e, 0x51, 0xb8, 0x47, 0x54, 0x60, 0x6d,
- 0x98, 0xe4, 0x7c, 0x9b, 0xc4, 0xbf, 0x3d, 0x20, 0xf5, 0xc4, 0x0f, 0x9e,
- 0x86, 0xd1, 0x84, 0x7c, 0x71, 0xfb, 0x14, 0xee, 0x9b, 0xe7, 0x7d, 0xfe,
- 0xd7, 0x73, 0x97, 0xa8, 0xe1, 0x99, 0x28, 0xac, 0xc4, 0xb3, 0xce, 0x7b,
- 0x72, 0xae, 0x29, 0xa7, 0x01, 0xf5, 0xbc, 0x44, 0xe2, 0x24, 0xbd, 0xdd,
- 0xf4, 0x52, 0xd5, 0x77, 0xf3, 0x8e, 0xf6, 0x96, 0x04, 0xa2, 0x39, 0xb9,
- 0x3f, 0x8d, 0x2b, 0x2a, 0x5f, 0xd8, 0xd4, 0xbf, 0xac, 0x4b, 0xf0, 0x35,
- 0x1a, 0xef, 0x67, 0xc3, 0x30, 0x91, 0x2a, 0xfe, 0x21, 0x0b, 0xe5, 0x75,
- 0x5f, 0x23, 0x7a, 0x1b, 0x10, 0xe1, 0x11, 0xf0, 0xe5, 0x0e, 0x25, 0x59,
- 0x56, 0x7e, 0xe8, 0xc5, 0xf0, 0xa1, 0x94, 0x54, 0x09, 0x7a, 0xc8, 0xc5,
- 0xe9, 0x59, 0x8e, 0xe4, 0x95, 0x9a, 0xca, 0x4f, 0xb0, 0x96, 0x02, 0x71,
- 0x2a, 0x03, 0x45, 0x04, 0x47, 0x69, 0x2d, 0x5d, 0x3e, 0x91, 0x74, 0xb4,
- 0xe4, 0x8f, 0xe9, 0x3a, 0xd2, 0x60, 0x2a, 0x63, 0xd4, 0x84, 0xbb, 0xfb,
- 0xa4, 0xcd, 0x26, 0x6f, 0xcf, 0x30, 0x85, 0xf4, 0xf8, 0xc7, 0x46, 0x64,
- 0x28, 0xec, 0x25, 0x39, 0xa6, 0x44, 0x9d, 0x8b, 0xe3, 0x37, 0xef, 0x47,
- 0xc7, 0xaf, 0xb9, 0x42, 0x4d, 0xac, 0x16, 0x4a, 0x8e, 0xd0, 0x1f, 0x3b,
- 0xd5, 0x4d, 0xa3, 0x25, 0x9f, 0x21, 0xe9, 0x4b, 0x50, 0x31, 0x4c, 0x80,
- 0x31, 0xc6, 0xa0, 0x0b, 0x73, 0x2b, 0x58, 0xfd, 0x90, 0x17, 0x7f, 0x05,
- 0xe3, 0x03, 0x8f, 0x7a, 0x9a, 0x51, 0x69, 0x9d, 0x97, 0x8c, 0xe1, 0x08,
- 0x48, 0x9c, 0x5c, 0x11, 0x9e, 0x7a, 0x96, 0x65, 0x0b, 0xc9, 0xa0, 0x9b,
- 0x97, 0xcb, 0x82, 0xfd, 0x79, 0x66, 0x65, 0xd4, 0x8b, 0xc5, 0x4e, 0xd3,
- 0x04, 0xad, 0xaa, 0x25, 0x98, 0xae, 0xa8, 0x02, 0x03, 0x3a, 0xa7, 0x04,
- 0xd0, 0x69, 0x47, 0x31, 0x98, 0x46, 0x66, 0x66, 0x2b, 0x6f, 0x7c, 0xff,
- 0xef, 0x8a, 0x32, 0x51, 0x54, 0x98, 0xc6, 0x68, 0xf4, 0xdc, 0x9d, 0x74,
- 0x76, 0x5d, 0x56, 0xa6, 0xc1, 0xb9, 0x4d, 0xfb, 0xab, 0x80, 0xd9, 0xa9,
- 0xb7, 0xdb, 0xb3, 0x1a, 0xa6, 0x4f, 0xb3, 0x0e, 0x8c, 0x00, 0x6e, 0xc6,
- 0xb9, 0xd0, 0x74, 0xa0, 0x79, 0x9e, 0x00, 0xde, 0xa4, 0xd0, 0x16, 0x0b,
- 0xe1, 0x91, 0x64, 0x30, 0x63, 0x3e, 0x78, 0x0a, 0x83, 0x8d, 0xf8, 0xf7,
- 0xac, 0x2a, 0xbb, 0x6e, 0x08, 0x55, 0x37, 0x63, 0x3d, 0xff, 0x67, 0xd6,
- 0x62, 0xda, 0xdb, 0x8f, 0x9d, 0x80, 0x79, 0xfa, 0x09, 0xce, 0x95, 0x95,
- 0xdb, 0x81, 0xa1, 0x86, 0x34, 0x1d, 0xf4, 0x18, 0x70, 0x19, 0x54, 0x95,
- 0xa4, 0xb1, 0xcc, 0x4a, 0xea, 0x40, 0x25, 0x60, 0x8d, 0xb7, 0xda, 0xe2,
- 0x7d, 0x09, 0x30, 0x4c, 0xbc, 0x30, 0xb6, 0xd7, 0xf0, 0x70, 0xa5, 0x34,
- 0x4c, 0xb2, 0x3b, 0xb6, 0xb8, 0x2c, 0x0c, 0xbe, 0xb7, 0x4d, 0x3f, 0x9e,
- 0x95, 0x14, 0x5f, 0xab, 0xad, 0xd7, 0x26, 0x42, 0x11, 0x46, 0xaa, 0x6d,
- 0x45, 0x1b, 0x11, 0xf8, 0x31, 0x0b, 0x1b, 0x41, 0x7d, 0x0b, 0x24, 0x44,
- 0xe5, 0x13, 0xf1, 0xd5, 0x6b, 0x6d, 0x25, 0x8c, 0x83, 0xdf, 0x0c, 0x04,
- 0x09, 0xb7, 0xa3, 0x95, 0x1a, 0x4c, 0x13, 0xfd, 0x36, 0x95, 0xab, 0x74,
- 0x1b, 0xe9, 0x86, 0x48, 0x4b, 0x40, 0x21, 0x24, 0x49, 0x37, 0x8f, 0xd8,
- 0xf4, 0x7d, 0xad, 0xa9, 0x81, 0xf4, 0x1d, 0x1a, 0x0e, 0xac, 0xa3, 0xb4,
- 0xf0, 0xfb, 0x8a, 0x05, 0x30, 0x6d, 0xe4, 0xe5, 0x14, 0x89, 0x3f, 0x5c,
- 0x9b, 0x23, 0x2c, 0x37, 0x29, 0x95, 0xd5, 0xa5, 0x33, 0x9b, 0x48, 0x7b,
- 0xfc, 0x94, 0xcf, 0x97, 0x73, 0xe6, 0x88, 0xec, 0xb3, 0x86, 0x32, 0x98,
- 0xd3, 0x9d, 0xa3, 0x0b, 0x0b, 0x7c, 0x1c, 0xe3, 0x89, 0xba, 0x7b, 0xdf,
- 0x06, 0x4c, 0xb1, 0x6d, 0xa5, 0x5e, 0x38, 0xbd, 0xc3, 0xb4, 0xfe, 0x58,
- 0xa8, 0xff, 0xed, 0x3b, 0x34, 0x79, 0x69, 0x54, 0x90, 0x2f, 0xc3, 0x4e,
- 0xa4, 0x9e, 0xe4, 0x60, 0xc1, 0x81, 0x9d, 0x49, 0x38, 0xdd, 0x6c, 0xea,
- 0x59, 0x3f, 0xbc, 0xdd, 0xe0, 0x97, 0x92, 0x55, 0x5a, 0x2d, 0xa3, 0xfa,
- 0x9e, 0x5b, 0x5b, 0xf6, 0x3c, 0x0d, 0xd5, 0x79, 0x2e, 0xf9, 0x5a, 0x92,
- 0x8d, 0x7f, 0xcd, 0x24, 0x62, 0xcb, 0x45, 0x70, 0x5f, 0x5b, 0x49, 0x61,
- 0xf5, 0x27, 0xf3, 0xf9, 0x5d, 0x81, 0x73, 0x88, 0x4d, 0x46, 0xbe, 0x5e,
- 0x99, 0x63, 0x75, 0xbf, 0xc0, 0xb7, 0xb8, 0x52, 0xe4, 0x6d, 0x93, 0x27,
- 0x28, 0xb8, 0x46, 0x98, 0x8f, 0x80, 0x59, 0x68, 0x0e, 0x68, 0x52, 0x78,
- 0xf9, 0xfa, 0x9a, 0x6c, 0xf6, 0xf4, 0xd3, 0xa7, 0xf0, 0xb2, 0x74, 0x66,
- 0x1c, 0x33, 0xdc, 0xb1, 0x8d, 0xf7, 0x74, 0xf7, 0x73, 0xfa, 0xe7, 0xb3,
- 0x4f, 0x1d, 0x53, 0x6f, 0x18, 0xa5, 0xa3, 0xd3, 0xe4, 0xd3, 0x74, 0x5c,
- 0x72, 0xfc, 0x88, 0x27, 0x2c, 0xf5, 0x26, 0x53, 0x3d, 0xe0, 0x22, 0x1b,
- 0xee, 0x52, 0x2e, 0x56, 0x12, 0x06, 0xe6, 0x81, 0x25, 0x64, 0xa5, 0xb9,
- 0xe1, 0xda, 0x9d, 0x1c, 0xe3, 0x43, 0xd1, 0x31, 0xa3, 0xad, 0xd2, 0x64,
- 0xea, 0x5c, 0x69, 0xa3, 0xd3, 0x72, 0xc9, 0x41, 0xb8, 0x2c, 0x88, 0xea,
- 0xe4, 0x3c, 0xfb, 0x74, 0xa8, 0xcc, 0xa5, 0x95, 0xa3, 0x94, 0x3c, 0x9f,
- 0xec, 0x3a, 0xd9, 0x33, 0xcb, 0x90, 0x17, 0xcb, 0xc6, 0xb2, 0x83, 0xe1,
- 0x83, 0xba, 0x43, 0xa3, 0xb3, 0x4f, 0x92, 0xde, 0x5e, 0x2c, 0x22, 0x0d,
- 0x6a, 0x2f, 0xb6, 0xc5, 0xe7, 0x04, 0xe5, 0x90, 0xc4, 0x29, 0xe1, 0xdf,
- 0xb3, 0x31, 0x35, 0x57, 0x23, 0x88, 0x12, 0x09, 0xce, 0x3e, 0x99, 0xc9,
- 0xe6, 0x62, 0x1b, 0x89, 0xbd, 0x1e, 0xdc, 0xa5, 0x26, 0x08, 0x57, 0x66,
- 0xbe, 0x8f, 0xe0, 0x56, 0x5a, 0x62, 0xdc, 0x56, 0xf6, 0x81, 0xa4, 0x2b,
- 0x1b, 0x39, 0x92, 0x9c, 0xcb, 0x2c, 0xa1, 0xce, 0xff, 0x03, 0x8e, 0x76,
- 0x9d, 0xd6, 0xb3, 0x41, 0xde, 0x95, 0xe6, 0xc7, 0xc0, 0xc2, 0x59, 0x24,
- 0x8b, 0xdd, 0x85, 0xa6, 0x89, 0xd1, 0xe1, 0xe8, 0xb4, 0x43, 0xa1, 0xb4,
- 0x96, 0xda, 0x76, 0xaf, 0xad, 0xf8, 0x3c, 0x92, 0x7f, 0x4f, 0xe3, 0x17,
- 0xad, 0x0c, 0xe5, 0x75, 0xd4, 0x7b, 0xcc, 0x87, 0xba, 0xaa, 0x3c, 0x57,
- 0x7d, 0xc0, 0x5f, 0x77, 0x34, 0x9f, 0x61, 0x67, 0x98, 0x0e, 0x88, 0x20,
- 0x26, 0x5c, 0x48, 0x2d, 0x89, 0x70, 0xca, 0xe0, 0x89, 0x1d, 0x01, 0xb0,
- 0x3c, 0x14, 0x05, 0x66, 0x4a, 0x3f, 0x1d, 0xf9, 0x88, 0xee, 0x02, 0xaa,
- 0x33, 0x38, 0x88, 0x71, 0xdf, 0x58, 0x50, 0x9b, 0x68, 0x94, 0x35, 0x9e,
- 0x26, 0x30, 0x4b, 0x23, 0x17, 0x97, 0x95, 0x58, 0xd4, 0x86, 0xc3, 0x84,
- 0x10, 0xb9, 0x74, 0x48, 0x45, 0xcd, 0xa1, 0xc2, 0x2b, 0x2e, 0xe5, 0xa6,
- 0x3d, 0xf0, 0xda, 0xec, 0xca, 0x49, 0xfc, 0x90, 0xc1, 0x70, 0x7f, 0x5b,
- 0xe6, 0xa4, 0x53, 0x50, 0xe6, 0xd0, 0x30, 0x79, 0xcd, 0xb8, 0x26, 0x29,
- 0x89, 0xc6, 0xa5, 0x17, 0x51, 0x9f, 0x91, 0x1e, 0xb5, 0x1d, 0x08, 0x22,
- 0x38, 0xa6, 0x43, 0x74, 0x0e, 0xdf, 0xa2, 0xd3, 0x47, 0xd4, 0xe9, 0xb9,
- 0x39, 0xe8, 0xa0, 0x6d, 0x91, 0x94, 0x3e, 0x20, 0x59, 0x24, 0xe2, 0xad,
- 0x38, 0x74, 0xe1, 0x01, 0xaf, 0x3f, 0x86, 0xf6, 0x6d, 0xbf, 0x55, 0x05,
- 0x07, 0xf6, 0x9e, 0xd8, 0x02, 0x0d, 0x15, 0x51, 0x2a, 0xd2, 0xd9, 0x4e,
- 0xdd, 0x4c, 0x49, 0xfe, 0x2d, 0x8b, 0x19, 0x75, 0x92, 0x9a, 0xd2, 0x8a,
- 0x5f, 0xdd, 0xb9, 0x69, 0x62, 0x0c, 0x2b, 0xc1, 0x02, 0x71, 0xf0, 0x39,
- 0x0c, 0x51, 0x5a, 0x15, 0x96, 0x7e, 0x22, 0xf2, 0x23, 0x64, 0xd2, 0xf1,
- 0xa7, 0x8a, 0xec, 0x5e, 0x1e, 0x31, 0x26, 0xb2, 0xb5, 0x6e, 0xeb, 0x12,
- 0xfe, 0x6f, 0xa9, 0x43, 0x66, 0xa3, 0x8d, 0xcb, 0x5a, 0x69, 0x69, 0xcd,
- 0x20, 0xcd, 0xeb, 0xad, 0xf3, 0x04, 0xde, 0xaa, 0x07, 0xa9, 0x41, 0x22,
- 0x65, 0x82, 0x9f, 0x3e, 0xc8, 0x09, 0xc2, 0x6f, 0x84, 0xc5, 0x70, 0x7f,
- 0x35, 0x2b, 0x88, 0x3b, 0xd0, 0x8e, 0xf4, 0x88, 0x4c, 0x49, 0x0b, 0xdc,
- 0x13, 0x3c, 0x4e, 0x8b, 0x20, 0x03, 0xe6, 0x1b, 0x85, 0x46, 0x23, 0x15,
- 0xca, 0xcc, 0x76, 0x5a, 0x4a, 0xa6, 0xff, 0x64, 0x66, 0x64, 0x7d, 0xc4,
- 0xe4, 0xd4, 0x02, 0x75, 0xc4, 0x9d, 0xd5, 0xef, 0x8a, 0xd3, 0x7a, 0x49,
- 0x2a, 0xc8, 0x6c, 0x49, 0xdf, 0x66, 0xda, 0x29, 0x4b, 0x7b, 0xa4, 0x09,
- 0xca, 0x51, 0xaa, 0x30, 0x4b, 0x2e, 0x42, 0x67, 0xd4, 0x63, 0x4d, 0x5b,
- 0x6a, 0x2d, 0x4b, 0x25, 0x14, 0xeb, 0x32, 0x6f, 0x0d, 0x57, 0xf4, 0x8e,
- 0xec, 0xc2, 0xbe, 0x5f, 0xfa, 0xd9, 0x8f, 0x98, 0x53, 0x32, 0x86, 0x76,
- 0xa7, 0x5d, 0x4e, 0x39, 0x46, 0x05, 0xc5, 0x9e, 0x16, 0xbe, 0x64, 0xfc,
- 0xbe, 0xe9, 0xed, 0xa1, 0x79, 0xbb, 0x80, 0x48, 0xb7, 0xaa, 0x29, 0x9f,
- 0x14, 0x01, 0xa3, 0xe5, 0x63, 0xea, 0x3d, 0xaf, 0xac, 0xf0, 0x1c, 0xb2,
- 0x84, 0xc4, 0x2a, 0x3e, 0xfb, 0x5e, 0xed, 0xb2, 0x45, 0xef, 0xf9, 0x4f,
- 0xbd, 0x0f, 0x9f, 0xb5, 0x8b, 0x15, 0x09, 0x0f, 0xdc, 0x6f, 0x3a, 0x50,
- 0xe9, 0xe3, 0x4e, 0xd4, 0x0a, 0x54, 0xfc, 0xff, 0x9d, 0x27, 0x2a, 0x7d,
- 0xdc, 0x91, 0x4a, 0x5b, 0x67, 0x6a, 0x45, 0x8d, 0xee, 0x95, 0x3d, 0xfe,
- 0x1d, 0x4f, 0x99, 0x85, 0x0e, 0x3c, 0xf6, 0x8c, 0x25, 0xae, 0x90, 0xfa,
- 0xff, 0xc5, 0xa7, 0xec, 0xf3, 0x8e, 0x16, 0x08, 0x52, 0xc5, 0x47, 0xd6,
- 0x04, 0x23, 0x28, 0x33, 0xe9, 0x5a, 0x3b, 0x96, 0xff, 0x2c, 0x4e, 0x29,
- 0xcf, 0x44, 0x3a, 0x91, 0x68, 0x3e, 0x83, 0xea, 0x30, 0x21, 0xcf, 0xec,
- 0x72, 0x68, 0x86, 0xf0, 0xda, 0x96, 0x03, 0x53, 0xdd, 0xb2, 0x90, 0x12,
- 0x0e, 0xd3, 0x96, 0x91, 0x13, 0xfa, 0x2d, 0x3b, 0xae, 0x6b, 0x73, 0xb7,
- 0x2f, 0x72, 0x56, 0x11, 0x8c, 0xf6, 0x42, 0xc9, 0x9c, 0xdf, 0x8c, 0x46,
- 0x83, 0xc3, 0xf3, 0x93, 0xee, 0xc9, 0x6b, 0x7f, 0x4e, 0x4b, 0xae, 0x3f,
- 0x5b, 0x59, 0x22, 0x6c, 0x35, 0x54, 0xa2, 0xfd, 0x6d, 0xa3, 0xe9, 0x76,
- 0x27, 0xf6, 0xb0, 0x4e, 0x5a, 0x58, 0x40, 0xe9, 0x91, 0x4f, 0x50, 0x2d,
- 0x34, 0x9c, 0xc2, 0xc3, 0x8c, 0xec, 0x72, 0x92, 0x5b, 0x78, 0x20, 0x40,
- 0x4e, 0x82, 0x2c, 0x83, 0xa8, 0x2e, 0xf6, 0x5e, 0x3c, 0xdf, 0x33, 0xe7,
- 0xe2, 0x9e, 0xd9, 0xe2, 0xe4, 0xe5, 0xa7, 0xc3, 0x27, 0x3b, 0x4f, 0x87,
- 0x4f, 0x49, 0xaa, 0x49, 0x1c, 0x03, 0x66, 0x9d, 0x34, 0x6f, 0xe4, 0x5d,
- 0x04, 0x39, 0xc0, 0xd7, 0xd8, 0xbb, 0xe3, 0xa3, 0x84, 0x01, 0x66, 0xe0,
- 0x0f, 0x4b, 0x90, 0xef, 0x42, 0xb9, 0x33, 0x92, 0x06, 0x8d, 0x00, 0x37,
- 0x09, 0x53, 0x59, 0x44, 0xde, 0xae, 0x81, 0x39, 0x16, 0x4c, 0x87, 0x1a,
- 0x13, 0xc8, 0x21, 0x2f, 0x6c, 0x47, 0x48, 0xe0, 0xb1, 0x5d, 0x21, 0xf3,
- 0x42, 0x7d, 0x0c, 0x73, 0x45, 0xbc, 0x29, 0x79, 0x24, 0xa3, 0x37, 0x55,
- 0xc6, 0x5d, 0xbd, 0x3e, 0x6a, 0xc0, 0xac, 0x30, 0x81, 0x9c, 0x97, 0x32,
- 0xb0, 0x74, 0x44, 0x24, 0x2a, 0x38, 0x8e, 0x9c, 0x2d, 0x93, 0xb9, 0x35,
- 0x4a, 0xae, 0xfe, 0x36, 0x2d, 0x86, 0xbf, 0xd6, 0xa2, 0x8a, 0xa8, 0xc4,
- 0x9e, 0xe1, 0xa4, 0x5d, 0x17, 0x51, 0x26, 0xd6, 0xd2, 0xaa, 0x01, 0x89,
- 0x91, 0xd4, 0xf5, 0x05, 0xf0, 0x16, 0xa0, 0xe3, 0xcc, 0x36, 0x94, 0xd7,
- 0x94, 0x6d, 0x3f, 0xf2, 0x33, 0x6d, 0x3d, 0x92, 0x42, 0x40, 0x1f, 0xe3,
- 0xb6, 0xaa, 0x2c, 0x9d, 0x49, 0xaf, 0xbc, 0xef, 0x84, 0xbf, 0x44, 0x58,
- 0x92, 0xc4, 0x6d, 0x1d, 0x42, 0xa7, 0x1c, 0xa7, 0xa8, 0x76, 0xc1, 0x02,
- 0x29, 0x3c, 0x92, 0xfc, 0xca, 0x5c, 0x28, 0xf9, 0x22, 0x9d, 0x25, 0x8f,
- 0x40, 0x00, 0xaf, 0x5e, 0xfc, 0xc7, 0xd4, 0xcf, 0xd0, 0xd3, 0xb9, 0x46,
- 0xd4, 0x29, 0x7f, 0x4b, 0xf7, 0xd2, 0x0b, 0xe5, 0xdc, 0x8a, 0xc6, 0x08,
- 0x91, 0x2a, 0xf2, 0xcc, 0x13, 0x67, 0xdd, 0x00, 0x37, 0xa1, 0x41, 0xd4,
- 0xc7, 0x34, 0x29, 0xe7, 0x0b, 0x84, 0x0d, 0x70, 0xd1, 0x69, 0xb3, 0x92,
- 0xa0, 0x46, 0x7e, 0x31, 0x2e, 0xd3, 0xb1, 0x46, 0xbc, 0x73, 0x91, 0xed,
- 0xc9, 0x23, 0x64, 0xef, 0xef, 0x21, 0x0c, 0x49, 0x89, 0x63, 0x4f, 0xc3,
- 0xaf, 0x57, 0xe7, 0x64, 0x0a, 0x93, 0x2d, 0x44, 0x68, 0x25, 0xd5, 0x48,
- 0x49, 0x0b, 0x35, 0x6a, 0x1e, 0xf1, 0x53, 0x21, 0x3e, 0x86, 0x0d, 0xb2,
- 0x3d, 0x7c, 0x14, 0xcb, 0x6c, 0x47, 0xf5, 0x0b, 0xb9, 0x6e, 0xfe, 0x6f,
- 0x50, 0x04, 0x9f, 0x25, 0x76, 0xad, 0x1e, 0xa3, 0x10, 0x32, 0x21, 0x33,
- 0x57, 0x73, 0x0d, 0xb8, 0x86, 0x9c, 0xd1, 0xf5, 0xff, 0xd7, 0x07, 0xff,
- 0x7f, 0x49, 0x1f, 0xfc, 0x47, 0x4e, 0x29, 0x95, 0xfe, 0x86, 0x0e, 0xe1,
- 0x9f, 0x4c, 0xff, 0x30, 0xc6, 0x60, 0xc1, 0xb3, 0xfb, 0xa1, 0x4b, 0x06,
- 0xfb, 0x15, 0x47, 0x34, 0xdc, 0x0a, 0xff, 0x77, 0x1c, 0xd1, 0x47, 0x9d,
- 0xcc, 0xff, 0xbf, 0xf7, 0xe3, 0xff, 0xb4, 0x73, 0xb8, 0x06, 0xf2, 0xb1,
- 0x65, 0xb6, 0xd9, 0x1d, 0x15, 0x3c, 0xe0, 0x32, 0x32, 0xb0, 0xb5, 0xb7,
- 0x9d, 0xea, 0x43, 0x69, 0x33, 0x3c, 0x75, 0x27, 0xe7, 0xdf, 0x3f, 0xef,
- 0x53, 0x20, 0x6b, 0xd4, 0x0d, 0x5e, 0x56, 0xc9, 0xe9, 0xeb, 0xc3, 0xf3,
- 0x5f, 0x71, 0xda, 0xff, 0x02, 0x47, 0xeb, 0x22, 0xcb, 0xa6, 0x03, 0x8e,
- 0x90, 0xbc, 0xc4, 0x3f, 0xa2, 0xa1, 0x45, 0xcd, 0x85, 0xc7, 0xb6, 0xa5,
- 0xc0, 0x49, 0x18, 0xb3, 0xc5, 0xcb, 0x46, 0x4d, 0x29, 0x84, 0x9d, 0x62,
- 0x81, 0x72, 0x4b, 0x81, 0x97, 0xa5, 0x2c, 0xa6, 0xdb, 0xa2, 0x02, 0xf2,
- 0xb7, 0xb1, 0x55, 0x24, 0xd6, 0x4e, 0xc7, 0xfb, 0x9a, 0x38, 0xac, 0x2c,
- 0x0b, 0xa0, 0xf7, 0x0c, 0xe3, 0x85, 0xa2, 0xc0, 0x8f, 0x7b, 0x37, 0x14,
- 0x0e, 0xee, 0x30, 0xd3, 0xd4, 0x93, 0x5d, 0xf2, 0xc0, 0x43, 0x82, 0x64,
- 0xcd, 0x1f, 0x98, 0x17, 0xdf, 0xfd, 0xfc, 0x2a, 0xe8, 0xc0, 0xda, 0xa9,
- 0xf4, 0x57, 0xa2, 0x35, 0x83, 0x14, 0x0b, 0x9c, 0x2e, 0xab, 0xb0, 0x42,
- 0x5b, 0xea, 0xcf, 0x0e, 0x47, 0xcb, 0xb9, 0xbf, 0xf6, 0x13, 0xed, 0xb9,
- 0x34, 0x9f, 0x6f, 0x4d, 0x67, 0x04, 0x21, 0xdf, 0x6f, 0x21, 0x33, 0xfc,
- 0x2e, 0xd9, 0x88, 0xe0, 0x5e, 0xa2, 0xce, 0x7d, 0xc0, 0xb7, 0x04, 0xb8,
- 0x62, 0x76, 0x53, 0x68, 0xfa, 0xb9, 0xd7, 0x1f, 0x02, 0x3c, 0x95, 0x45,
- 0x53, 0x31, 0xa5, 0xb2, 0x04, 0x4b, 0x6b, 0xe5, 0xfa, 0x5e, 0x7a, 0x95,
- 0x32, 0x53, 0x2e, 0x5a, 0x4f, 0xb3, 0x16, 0x12, 0x1b, 0xf2, 0xf9, 0xce,
- 0x9a, 0xc9, 0xd0, 0xae, 0x2c, 0xc8, 0xc6, 0xa8, 0x98, 0xbd, 0x51, 0x71,
- 0xb5, 0xde, 0xa7, 0x19, 0x61, 0x75, 0xaf, 0x69, 0xef, 0x83, 0x15, 0xde,
- 0x0a, 0x8d, 0xf9, 0xaf, 0x80, 0x41, 0xff, 0x8e, 0xb0, 0xcf, 0xf5, 0x95,
- 0xa5, 0xc2, 0x54, 0x6f, 0x75, 0xc8, 0x58, 0xa9, 0x90, 0xa2, 0xaa, 0x3c,
- 0xed, 0x05, 0x2a, 0x40, 0x99, 0x37, 0xf7, 0xc4, 0x16, 0x70, 0x27, 0x20,
- 0xf5, 0xae, 0xbc, 0x1f, 0x9d, 0x3e, 0xc1, 0xb4, 0x5e, 0x9e, 0x8e, 0x7c,
- 0xd6, 0xed, 0x1a, 0x25, 0x49, 0x91, 0xa6, 0xf4, 0xf5, 0xf1, 0xe1, 0xe8,
- 0x72, 0x18, 0x0c, 0xd1, 0x8c, 0x31, 0x04, 0x87, 0xd8, 0x54, 0xa3, 0x0c,
- 0x1c, 0x44, 0xb3, 0xf4, 0x9e, 0xa8, 0xee, 0x24, 0xfd, 0x89, 0x3a, 0xc7,
- 0x7d, 0xd3, 0xd6, 0xc9, 0xce, 0x4d, 0x19, 0x7d, 0xdb, 0x64, 0x55, 0xc8,
- 0x50, 0x65, 0xe6, 0x6e, 0x9c, 0xcf, 0x68, 0x04, 0xa6, 0x5f, 0xc6, 0x1a,
- 0x9a, 0x0b, 0xa8, 0x19, 0xb9, 0xb4, 0xe5, 0x8c, 0x60, 0x65, 0xf4, 0x99,
- 0xb6, 0x1f, 0x82, 0x98, 0x34, 0x25, 0xc1, 0x78, 0x75, 0xba, 0xa0, 0xd1,
- 0x32, 0xca, 0x3a, 0x13, 0xba, 0x32, 0x6a, 0x43, 0xe7, 0x8a, 0x73, 0x99,
- 0x6c, 0x36, 0x01, 0x5e, 0x01, 0xd9, 0x42, 0x98, 0x8b, 0x95, 0xd6, 0x1f,
- 0x15, 0x91, 0x8e, 0x92, 0x6d, 0x04, 0xa0, 0x59, 0x8b, 0xaf, 0xeb, 0x5a,
- 0x42, 0x66, 0xa1, 0x91, 0xb9, 0x4a, 0x19, 0x0c, 0x5d, 0xdb, 0xee, 0x87,
- 0x9c, 0xb8, 0x7f, 0xb7, 0xd7, 0xac, 0xb7, 0x8d, 0x90, 0xfb, 0x15, 0xe5,
- 0x12, 0x6a, 0x2d, 0x5e, 0xd1, 0x27, 0x99, 0xdc, 0x64, 0xe6, 0x12, 0x19,
- 0x7a, 0xf9, 0xd7, 0x8f, 0x9e, 0x90, 0x8d, 0x80, 0xa8, 0x2b, 0x32, 0x3d,
- 0xbf, 0x7a, 0x42, 0x9e, 0x3e, 0x0d, 0x27, 0xa4, 0xca, 0xfe, 0x36, 0x8d,
- 0x71, 0x1b, 0x03, 0x21, 0x0e, 0x78, 0x3a, 0xc3, 0xba, 0x2f, 0x98, 0xa0,
- 0x99, 0xba, 0xba, 0x43, 0x95, 0x50, 0x14, 0x6a, 0xeb, 0x68, 0xaf, 0xc8,
- 0xc2, 0xa6, 0x10, 0x64, 0x58, 0xea, 0xb6, 0x91, 0xb4, 0x69, 0xaf, 0xb2,
- 0x59, 0x1e, 0x4f, 0xda, 0x17, 0xb0, 0xa7, 0x7c, 0x64, 0xad, 0x06, 0x49,
- 0x10, 0x4f, 0xd4, 0xd3, 0xa0, 0x3c, 0x30, 0x7b, 0x78, 0x06, 0x83, 0xab,
- 0x66, 0x61, 0x07, 0xb6, 0x76, 0x77, 0xec, 0x06, 0x93, 0xa1, 0xb4, 0xce,
- 0x18, 0x3b, 0x0f, 0x5e, 0x46, 0x9f, 0x5c, 0x42, 0x62, 0xb1, 0x17, 0x76,
- 0xcd, 0x14, 0x04, 0xc8, 0x32, 0x2a, 0xd7, 0xc1, 0xa0, 0x51, 0x50, 0x0c,
- 0x49, 0x89, 0xda, 0xc7, 0x4e, 0x44, 0x28, 0x3c, 0x30, 0x2d, 0xad, 0xd8,
- 0xa8, 0x1d, 0xb0, 0x48, 0x70, 0x8d, 0x8f, 0xca, 0x14, 0x70, 0x02, 0x14,
- 0xb0, 0xc6, 0x83, 0x90, 0x03, 0xd8, 0x58, 0xf3, 0xb7, 0xd9, 0x0c, 0x29,
- 0x41, 0x59, 0x31, 0xa9, 0xee, 0x17, 0x3e, 0x19, 0xf7, 0xf4, 0x1f, 0x99,
- 0x7f, 0x45, 0xee, 0x23, 0x78, 0x6c, 0x14, 0x1f, 0x23, 0xec, 0xb6, 0x43,
- 0xfd, 0x8b, 0xb2, 0x17, 0x55, 0xbe, 0xb1, 0x67, 0x0a, 0xc0, 0x5b, 0x8e,
- 0x11, 0x5b, 0xfd, 0x97, 0xac, 0x19, 0x95, 0xde, 0x4c, 0x77, 0xc7, 0x04,
- 0x63, 0xdd, 0xb8, 0xc7, 0x12, 0xf4, 0x45, 0x16, 0xb1, 0xfc, 0xe8, 0xb5,
- 0xdf, 0xef, 0xf3, 0x84, 0xdd, 0xee, 0x07, 0x29, 0x0d, 0x24, 0x12, 0xde,
- 0x90, 0x97, 0xa6, 0xed, 0x88, 0xa7, 0x03, 0xab, 0x75, 0x8d, 0xf6, 0xd9,
- 0x15, 0xd5, 0x2a, 0x85, 0x29, 0x50, 0xd2, 0x00, 0xe6, 0xc4, 0xd9, 0xd1,
- 0xf4, 0xb6, 0x4b, 0xa5, 0x1b, 0x19, 0xe1, 0xca, 0x20, 0x2e, 0xf5, 0x2d,
- 0x8d, 0x97, 0xb9, 0x10, 0x05, 0xd0, 0x0d, 0x68, 0x9e, 0xbe, 0xdd, 0x5f,
- 0x45, 0x2d, 0x3d, 0x94, 0x5f, 0x23, 0xd5, 0x74, 0x4a, 0x55, 0x0c, 0x1c,
- 0xef, 0x5d, 0x62, 0x4b, 0x22, 0x03, 0xc3, 0x48, 0x0e, 0xea, 0xe7, 0x7b,
- 0x9f, 0x3d, 0xdf, 0x5e, 0x57, 0x03, 0x96, 0x8a, 0x7e, 0x50, 0x12, 0x1d,
- 0x6f, 0x22, 0xfa, 0xd7, 0xfe, 0xd0, 0x9f, 0x20, 0xaf, 0x32, 0x81, 0x24,
- 0x9f, 0x86, 0x77, 0x9c, 0xb9, 0x70, 0x68, 0x53, 0x60, 0x22, 0x94, 0xc0,
- 0x1d, 0xdb, 0x85, 0xc7, 0x45, 0xd6, 0x8c, 0x9c, 0x73, 0x6c, 0xe6, 0xae,
- 0x59, 0x18, 0x54, 0x21, 0x85, 0x99, 0x38, 0x78, 0xa2, 0x7d, 0xe0, 0xfb,
- 0xd3, 0x2f, 0x03, 0xc7, 0x9d, 0xc5, 0xdf, 0x87, 0xed, 0x7f, 0xf9, 0x01,
- 0x4d, 0xd7, 0xc0, 0x6f, 0x59, 0xe5, 0x27, 0xff, 0x84, 0x55, 0x7e, 0xb2,
- 0x7e, 0x95, 0x9f, 0x3c, 0x76, 0x95, 0x3f, 0x7b, 0xf6, 0xfc, 0xf3, 0xdf,
- 0xb0, 0xca, 0xde, 0x0c, 0xff, 0x6f, 0x5b, 0x65, 0x6f, 0xa7, 0xfd, 0xb6,
- 0x55, 0x16, 0x60, 0x48, 0x20, 0x88, 0xa5, 0x62, 0x06, 0x41, 0xf8, 0x28,
- 0xe5, 0x9d, 0x91, 0xfc, 0xfc, 0xac, 0x25, 0x91, 0x6d, 0xf1, 0x0a, 0xdb,
- 0x6a, 0x59, 0xa4, 0x89, 0x45, 0xcc, 0x6c, 0x97, 0x80, 0x0f, 0x1d, 0x77,
- 0x31, 0xa3, 0xaa, 0x4b, 0x9b, 0x83, 0x4d, 0x75, 0x90, 0x68, 0x82, 0x93,
- 0xf2, 0xd7, 0xf0, 0xe7, 0xcc, 0x52, 0xff, 0x13, 0xf9, 0x8f, 0x42, 0xdc,
- 0x8c, 0x87, 0x7c, 0x6a, 0x4f, 0xda, 0xfd, 0xcc, 0x18, 0x0a, 0x8c, 0x43,
- 0x8a, 0x22, 0xe0, 0x24, 0x1b, 0xd3, 0x72, 0xb0, 0xa8, 0xab, 0x66, 0x6c,
- 0xd4, 0x42, 0x73, 0x0f, 0x14, 0x0d, 0x17, 0xb3, 0x97, 0x24, 0x3f, 0x1a,
- 0x34, 0xed, 0x8c, 0x48, 0x86, 0xa6, 0x56, 0xff, 0xe8, 0xa0, 0x96, 0x6c,
- 0x5d, 0xeb, 0xb2, 0xdd, 0x19, 0x84, 0x01, 0x6a, 0x73, 0x4a, 0x26, 0x5c,
- 0xcb, 0x65, 0x1e, 0x21, 0xe5, 0x58, 0x23, 0xe9, 0x9f, 0x77, 0x41, 0x77,
- 0x2b, 0xaa, 0x8d, 0x44, 0x13, 0xf9, 0xa9, 0xc0, 0x4d, 0xbb, 0xc2, 0x0d,
- 0xe3, 0x61, 0x99, 0xfb, 0x0a, 0x2a, 0x7f, 0xb7, 0x92, 0x4b, 0x5e, 0x03,
- 0x87, 0x1d, 0xa4, 0x0a, 0xd2, 0xa5, 0x2e, 0x03, 0x6a, 0x97, 0x51, 0x71,
- 0x88, 0x42, 0x9d, 0x99, 0x61, 0xd7, 0x34, 0x0b, 0xcc, 0x44, 0x02, 0xd8,
- 0x4a, 0xb9, 0x1b, 0xbd, 0x22, 0xd9, 0x08, 0x7f, 0x4d, 0xab, 0x3b, 0x5d,
- 0xce, 0x17, 0x4a, 0x5b, 0x46, 0xb9, 0x1c, 0x39, 0xd2, 0x7d, 0x24, 0x69,
- 0x39, 0x56, 0x84, 0x3a, 0xad, 0x3c, 0x3f, 0x93, 0x00, 0xdc, 0xd8, 0x67,
- 0xa5, 0x6b, 0xe5, 0xb8, 0x8c, 0x78, 0x0c, 0x92, 0x33, 0x85, 0xec, 0x89,
- 0xa2, 0x8b, 0xff, 0xe4, 0x6c, 0x4f, 0x4a, 0xed, 0x9a, 0x66, 0xe3, 0xe5,
- 0xb5, 0x66, 0xfe, 0xda, 0xca, 0x58, 0xed, 0x5d, 0x89, 0x6c, 0x13, 0xe2,
- 0x02, 0xc9, 0xb4, 0xb4, 0x75, 0x48, 0x82, 0xd0, 0x50, 0x4d, 0xb8, 0xc9,
- 0x3a, 0x80, 0x58, 0x30, 0x70, 0x6c, 0xf6, 0xd6, 0xc8, 0xf1, 0x93, 0x56,
- 0xc5, 0xa2, 0x48, 0x09, 0x1f, 0x7f, 0xab, 0x34, 0x93, 0xc5, 0xe0, 0x2a,
- 0x25, 0x1a, 0xc1, 0x20, 0xf5, 0x53, 0x40, 0xa1, 0x72, 0x04, 0x2e, 0x8f,
- 0xce, 0x93, 0x37, 0xa9, 0x14, 0x10, 0x49, 0xb6, 0x8c, 0x04, 0xfe, 0xec,
- 0xe9, 0xde, 0x93, 0xed, 0xb5, 0x9a, 0x78, 0x9b, 0x16, 0x07, 0xdf, 0x2a,
- 0xca, 0x18, 0x38, 0xf7, 0x72, 0x59, 0x21, 0x2f, 0x1a, 0xd3, 0x6f, 0xbe,
- 0xf4, 0xe1, 0xdd, 0xd9, 0xeb, 0xe3, 0xd3, 0xc3, 0xbf, 0xd8, 0xbc, 0x6e,
- 0x9a, 0x04, 0x4d, 0x0d, 0xfc, 0x60, 0x0c, 0xd8, 0xfb, 0x0f, 0x75, 0x66,
- 0xfa, 0xdc, 0x6c, 0x3d, 0xd9, 0xa6, 0x2c, 0xa5, 0xa0, 0x9a, 0xdc, 0x75,
- 0xd6, 0xca, 0x89, 0x17, 0xac, 0xf4, 0x1a, 0x62, 0x17, 0xeb, 0xa2, 0xdc,
- 0x1d, 0xee, 0x4b, 0x91, 0x00, 0x21, 0x39, 0x77, 0x32, 0xcb, 0x2b, 0x57,
- 0x90, 0x0a, 0xf3, 0x93, 0xe6, 0xa0, 0x07, 0xdb, 0xe3, 0xd3, 0x62, 0x96,
- 0x4f, 0x72, 0xb2, 0x57, 0xe4, 0x58, 0xe7, 0x14, 0x88, 0xbf, 0x6a, 0x13,
- 0xc8, 0x21, 0xb3, 0x8e, 0x7e, 0xb1, 0x3e, 0xb0, 0xdc, 0x96, 0xfd, 0x0d,
- 0x2e, 0x8b, 0x6c, 0x56, 0x64, 0xcd, 0x40, 0x3a, 0xf6, 0xd2, 0xfc, 0xf9,
- 0xea, 0x36, 0x9d, 0x05, 0x49, 0x9b, 0x54, 0x8c, 0x4d, 0x77, 0xa6, 0x15,
- 0x45, 0xf4, 0xa6, 0x57, 0x20, 0x61, 0x64, 0xeb, 0x04, 0xe8, 0x93, 0xe6,
- 0xa8, 0x04, 0xf5, 0x00, 0x2e, 0x2f, 0xff, 0x72, 0x7e, 0xfc, 0xea, 0x25,
- 0x09, 0xb2, 0x2f, 0x09, 0x67, 0x5f, 0xb7, 0xe4, 0x5a, 0x42, 0xb5, 0x82,
- 0x83, 0x31, 0xfc, 0xf8, 0xfa, 0x64, 0x74, 0x7e, 0x7a, 0x76, 0xf4, 0xea,
- 0xe5, 0x8f, 0x64, 0x57, 0x9a, 0xcb, 0xe3, 0xde, 0x7b, 0xd7, 0xfe, 0xcc,
- 0x52, 0x9e, 0x87, 0x69, 0xff, 0xc7, 0x3f, 0x7c, 0x38, 0x7e, 0xf7, 0xfd,
- 0xab, 0x97, 0xb7, 0x69, 0xd5, 0xa7, 0xf1, 0xf1, 0xdb, 0x2b, 0x6a, 0x1d,
- 0xb6, 0xb6, 0x1a, 0x29, 0xe8, 0xe3, 0xd9, 0xc7, 0x3a, 0xff, 0x7b, 0x96,
- 0x98, 0xd7, 0x67, 0xcb, 0x90, 0x72, 0xf8, 0x92, 0x33, 0xa5, 0xcd, 0x64,
- 0xd0, 0xdf, 0x92, 0xaf, 0x4f, 0xbf, 0x23, 0x5a, 0x4b, 0xeb, 0x29, 0x9d,
- 0x73, 0x25, 0x95, 0xe4, 0xcb, 0x67, 0x7b, 0xfb, 0xdb, 0xae, 0x4c, 0x20,
- 0x68, 0x71, 0x4d, 0x8f, 0x3f, 0x06, 0x39, 0x22, 0x7f, 0x57, 0x6a, 0x2f,
- 0x5b, 0xca, 0x02, 0x89, 0x0c, 0x1e, 0x09, 0x85, 0x3a, 0x9d, 0x90, 0xd1,
- 0xce, 0x54, 0x1b, 0x25, 0xc9, 0x03, 0x62, 0x07, 0x0a, 0x7c, 0x6e, 0x97,
- 0x6f, 0x3c, 0x2a, 0x8a, 0xaf, 0xdd, 0xd6, 0x33, 0xdd, 0x11, 0xbf, 0xdd,
- 0xda, 0xfb, 0xf1, 0x0f, 0x8c, 0xe6, 0x74, 0x8d, 0x4a, 0x4c, 0xb6, 0xb9,
- 0xd2, 0x64, 0xff, 0xc4, 0xe7, 0xd9, 0xc3, 0xf9, 0x20, 0xdb, 0xa5, 0x64,
- 0xfa, 0x34, 0x8c, 0x52, 0x37, 0x9e, 0xe6, 0xfc, 0x3e, 0xe0, 0xc5, 0xcb,
- 0xe7, 0x94, 0x23, 0x99, 0xd5, 0x89, 0x7a, 0x78, 0x3c, 0xff, 0xcd, 0x2c,
- 0xbb, 0x4e, 0x27, 0xf7, 0x96, 0x0e, 0x56, 0xa8, 0x4c, 0x22, 0x0c, 0x05,
- 0xe9, 0x84, 0xcc, 0x39, 0x73, 0x05, 0x5f, 0x43, 0x3c, 0x33, 0xd5, 0x81,
- 0x39, 0xae, 0xd6, 0xed, 0xc3, 0x5d, 0xb3, 0x94, 0x0e, 0x7a, 0x5d, 0xae,
- 0xce, 0xe7, 0xb1, 0x65, 0xdf, 0xda, 0xbb, 0x8f, 0xb6, 0x0d, 0x8a, 0x98,
- 0xae, 0x9d, 0xd3, 0xa7, 0x6d, 0x9f, 0xf9, 0xdf, 0x71, 0xc8, 0x89, 0x2d,
- 0x07, 0x6e, 0xd9, 0x97, 0xf4, 0xd7, 0x38, 0x67, 0x36, 0x0a, 0xee, 0xc0,
- 0x71, 0xc1, 0x75, 0x6a, 0x1d, 0xc5, 0x9c, 0xe5, 0x39, 0x93, 0x3a, 0x14,
- 0x44, 0xbd, 0xdc, 0x38, 0x87, 0x7a, 0x9c, 0x8b, 0xca, 0xba, 0xb5, 0xcd,
- 0xf6, 0xe4, 0xcb, 0x8a, 0x76, 0xc6, 0x8a, 0xf6, 0xbc, 0x4c, 0xb4, 0x30,
- 0x48, 0xc3, 0x29, 0x50, 0x04, 0x47, 0x78, 0x49, 0x6d, 0x91, 0x48, 0x24,
- 0x9d, 0xc4, 0xcc, 0xd4, 0x97, 0x1a, 0xf7, 0x49, 0x7d, 0xb6, 0x0e, 0x3c,
- 0xc4, 0x6c, 0x0f, 0x75, 0x98, 0x28, 0xcf, 0x08, 0x77, 0xf5, 0x1c, 0x30,
- 0x44, 0x83, 0x82, 0x6a, 0x96, 0x02, 0xd6, 0x74, 0xb3, 0x56, 0xad, 0x94,
- 0x52, 0xbe, 0x60, 0xa8, 0x3b, 0x82, 0xc8, 0x08, 0xd3, 0x88, 0x9f, 0xa1,
- 0x44, 0x54, 0x41, 0xc2, 0xd3, 0x82, 0xc1, 0x69, 0x0d, 0x06, 0x74, 0x6a,
- 0x6b, 0x4e, 0x83, 0xd9, 0x66, 0x12, 0xaf, 0x28, 0x79, 0xbb, 0xd5, 0xa2,
- 0x5b, 0xf7, 0x94, 0x69, 0x94, 0xde, 0x97, 0x3b, 0x0a, 0xb7, 0x12, 0x67,
- 0x4d, 0x73, 0xb3, 0xde, 0x8c, 0x04, 0xa9, 0x2f, 0x0d, 0x43, 0xf9, 0xbb,
- 0x97, 0x14, 0x51, 0x00, 0x2b, 0x80, 0xde, 0x9f, 0x51, 0x65, 0xa4, 0x46,
- 0x75, 0xa9, 0xad, 0xc1, 0xb6, 0x4d, 0x76, 0xce, 0x1b, 0xab, 0xb4, 0x45,
- 0x68, 0x31, 0x2c, 0x4d, 0xb1, 0xad, 0x19, 0xc6, 0xee, 0x4f, 0xdd, 0x21,
- 0xb2, 0x27, 0xe8, 0x63, 0x3b, 0x9c, 0xe7, 0xa6, 0x42, 0x28, 0x8f, 0xa4,
- 0xda, 0x06, 0x8d, 0x15, 0xd9, 0x9d, 0xdf, 0x98, 0xb3, 0x3c, 0x6c, 0x83,
- 0x7f, 0xa4, 0xc7, 0xdb, 0x58, 0x4d, 0x94, 0x9d, 0x93, 0xbc, 0xfc, 0xfe,
- 0xf8, 0x62, 0x74, 0x72, 0xf6, 0xee, 0xcb, 0xa8, 0x41, 0x9c, 0xc8, 0x6f,
- 0x13, 0x5b, 0xbd, 0x49, 0x33, 0xfb, 0x5c, 0xfd, 0x1c, 0x72, 0x83, 0xa9,
- 0xbf, 0x25, 0x39, 0xa4, 0x34, 0x26, 0x7a, 0xa0, 0xbb, 0x05, 0x6a, 0x69,
- 0x01, 0x7e, 0xde, 0xb4, 0xba, 0xc6, 0x5c, 0x98, 0xbd, 0x08, 0xe3, 0x0d,
- 0xb5, 0x51, 0xd5, 0xaa, 0xb3, 0x7f, 0xdd, 0x0f, 0xc6, 0x1f, 0xc7, 0xe4,
- 0x78, 0x21, 0xf1, 0xe5, 0x82, 0x53, 0xbe, 0x88, 0x4a, 0x80, 0xc9, 0x47,
- 0xfc, 0xde, 0x05, 0x24, 0xea, 0x54, 0x0a, 0xd4, 0x7f, 0xd1, 0x3c, 0x7c,
- 0xbb, 0xe7, 0xa5, 0xa9, 0xd8, 0xe7, 0xf6, 0x62, 0xcf, 0xed, 0x85, 0xcf,
- 0xed, 0xc7, 0x9e, 0xdb, 0x0f, 0x9f, 0x7b, 0x12, 0x7b, 0xce, 0xcb, 0x44,
- 0xf2, 0xec, 0x74, 0x9d, 0xa1, 0x75, 0xa6, 0xaf, 0xb7, 0x9e, 0xad, 0xa2,
- 0x91, 0x1b, 0x9e, 0xad, 0xea, 0xd9, 0xea, 0x6a, 0xaa, 0xaf, 0xb6, 0xd4,
- 0x7d, 0x2c, 0x51, 0xc7, 0x61, 0x6c, 0x3e, 0xb4, 0xf7, 0x64, 0x30, 0xc9,
- 0x17, 0x37, 0x74, 0x83, 0xbc, 0xd4, 0x9a, 0x4a, 0x34, 0xcf, 0x34, 0x2e,
- 0xf9, 0xc5, 0x92, 0xcc, 0xeb, 0x50, 0xa7, 0x38, 0x1d, 0xb5, 0xc8, 0x48,
- 0x84, 0x16, 0x0f, 0xaf, 0x24, 0xfc, 0x8e, 0xe3, 0x06, 0x09, 0xdd, 0xc5,
- 0x41, 0xea, 0x8a, 0x75, 0xc5, 0x98, 0xf7, 0xa4, 0x03, 0x4c, 0x1c, 0xa1,
- 0xbd, 0xd2, 0x6e, 0x4a, 0xdb, 0xcc, 0x64, 0xa9, 0x81, 0xf4, 0x4e, 0x73,
- 0x4c, 0x2d, 0xaf, 0xaf, 0x0c, 0x13, 0xa6, 0x95, 0xa2, 0xaa, 0x48, 0x45,
- 0x67, 0x74, 0xdc, 0x9c, 0x55, 0x9f, 0xcb, 0x22, 0x76, 0xed, 0xbd, 0xbf,
- 0x38, 0x0d, 0xd4, 0x44, 0x5b, 0x8a, 0x1c, 0x65, 0x86, 0x6f, 0xd2, 0x4f,
- 0x9f, 0x86, 0x75, 0xb6, 0x63, 0x24, 0x43, 0xbd, 0x03, 0xef, 0xad, 0x7c,
- 0xfa, 0xa6, 0x99, 0xcf, 0xfe, 0xd8, 0xa3, 0x4f, 0xe0, 0x32, 0x52, 0x4a,
- 0xcd, 0xd5, 0x69, 0xfe, 0xfb, 0x65, 0x98, 0x28, 0x8a, 0x11, 0x77, 0x31,
- 0x68, 0xac, 0xc7, 0x26, 0x94, 0xc3, 0xc4, 0xf5, 0xa8, 0xfb, 0x6a, 0x11,
- 0xfa, 0xcc, 0xec, 0x21, 0xc1, 0x87, 0xb5, 0x61, 0x93, 0xa4, 0x37, 0xba,
- 0x38, 0xef, 0xf5, 0x25, 0xf2, 0x6c, 0xbe, 0x31, 0x30, 0xff, 0x4e, 0x60,
- 0x2f, 0x51, 0x51, 0x87, 0x67, 0x4f, 0x05, 0x24, 0x86, 0x4e, 0x2e, 0xa5,
- 0xd2, 0x73, 0x10, 0xd1, 0x34, 0xbf, 0x73, 0x30, 0xb9, 0xaa, 0x55, 0x7c,
- 0xc5, 0xd8, 0x31, 0xed, 0x01, 0x32, 0x76, 0xa5, 0xcf, 0x78, 0x84, 0x35,
- 0xea, 0x89, 0x4f, 0x32, 0xc6, 0xbd, 0x1c, 0x76, 0x7c, 0xdd, 0x65, 0xf5,
- 0x51, 0x38, 0xe8, 0xc5, 0x5f, 0x8f, 0x13, 0x15, 0xd4, 0x05, 0x6d, 0x9d,
- 0x30, 0xeb, 0xe2, 0x13, 0x3f, 0xa1, 0x1d, 0xb1, 0xcc, 0x95, 0x63, 0x5b,
- 0x5a, 0x51, 0xfc, 0x52, 0xea, 0x51, 0x92, 0x50, 0x94, 0xf2, 0xf3, 0x68,
- 0x48, 0xdb, 0x91, 0x66, 0x1e, 0x60, 0x98, 0x78, 0xda, 0x59, 0x7d, 0x9d,
- 0xbc, 0xc8, 0xb2, 0xbb, 0xaa, 0xda, 0x58, 0x22, 0xe8, 0xe6, 0xca, 0xfe,
- 0x46, 0x5f, 0xef, 0xec, 0x08, 0x65, 0xa1, 0x5a, 0x95, 0x19, 0xa5, 0x8c,
- 0x10, 0xde, 0x8a, 0x0c, 0x35, 0x8c, 0x24, 0xea, 0xa7, 0xb7, 0xd4, 0x8e,
- 0x81, 0xfd, 0xe1, 0x01, 0xf9, 0xe3, 0xc1, 0xdb, 0x51, 0xe8, 0x30, 0x0d,
- 0x49, 0xa1, 0x95, 0x8f, 0x1a, 0x90, 0x8e, 0x68, 0xcd, 0x90, 0x34, 0xd4,
- 0xde, 0x1e, 0x94, 0x1b, 0x95, 0x37, 0x2c, 0xb7, 0x4b, 0x69, 0x68, 0xc1,
- 0xd6, 0x7b, 0xd4, 0x40, 0x5b, 0x23, 0xa5, 0x9b, 0x20, 0x2a, 0x54, 0x23,
- 0x9e, 0x6b, 0xef, 0xe6, 0xc3, 0x4d, 0xc7, 0x3c, 0x18, 0x1e, 0x5a, 0x96,
- 0x0b, 0x27, 0xc7, 0x3d, 0xd7, 0xf4, 0xb2, 0x12, 0xe6, 0xaf, 0x49, 0x67,
- 0x0d, 0xef, 0x06, 0xba, 0x9d, 0xe2, 0x62, 0xff, 0xc1, 0x2e, 0xe2, 0xea,
- 0x67, 0x25, 0xfc, 0xa1, 0x1c, 0x06, 0x04, 0xd3, 0x7e, 0x87, 0xae, 0xee,
- 0xff, 0xb6, 0xc9, 0xdc, 0xef, 0xf4, 0xf4, 0x9f, 0xd1, 0xd5, 0x27, 0xbf,
- 0x71, 0x56, 0x9f, 0xfc, 0xee, 0xb3, 0xea, 0x8a, 0xf9, 0xea, 0xb5, 0xe8,
- 0xd5, 0x3e, 0x15, 0xa5, 0x90, 0x94, 0x3c, 0xf3, 0xcf, 0x31, 0x61, 0x53,
- 0x44, 0x3b, 0xa0, 0x0c, 0xf2, 0x0c, 0x65, 0x4d, 0x3b, 0x23, 0x77, 0xe4,
- 0xa7, 0x96, 0x85, 0x5c, 0x7c, 0xc7, 0x42, 0x06, 0x4b, 0x32, 0xfe, 0xeb,
- 0x92, 0x4c, 0x1f, 0x23, 0x0a, 0xfb, 0xc9, 0xbb, 0xd1, 0x88, 0x11, 0x03,
- 0x23, 0xc4, 0x3c, 0xba, 0xc6, 0x30, 0x79, 0x11, 0xa0, 0xc9, 0x6c, 0xd1,
- 0x3d, 0x79, 0x66, 0x7a, 0xe8, 0x36, 0x16, 0xbf, 0x37, 0x4f, 0x27, 0xf4,
- 0xe3, 0xdd, 0xe1, 0x9e, 0x9b, 0x9c, 0xed, 0x5f, 0xc1, 0x57, 0xe3, 0x02,
- 0x12, 0x51, 0xa5, 0x39, 0x42, 0x88, 0x0a, 0x7e, 0xd1, 0xba, 0xe9, 0x2c,
- 0xcd, 0x27, 0xd9, 0x3d, 0xaa, 0xc5, 0x44, 0xb3, 0x75, 0x2c, 0x23, 0x8d,
- 0xc6, 0x94, 0x70, 0x33, 0xab, 0xe7, 0x03, 0xe1, 0x53, 0x26, 0x5b, 0xe8,
- 0x9e, 0xf7, 0xc0, 0xa0, 0x91, 0x72, 0xc8, 0xbf, 0x36, 0x24, 0xe4, 0x85,
- 0x5f, 0xfe, 0xb7, 0x85, 0x84, 0xe2, 0x7a, 0x6f, 0xeb, 0x5f, 0xad, 0x3c,
- 0xfe, 0xa6, 0x1a, 0x68, 0xf1, 0x92, 0x38, 0x3d, 0xaa, 0xf3, 0x08, 0x10,
- 0x88, 0x1f, 0xdc, 0x51, 0x53, 0xde, 0x3a, 0x14, 0x24, 0x3f, 0x96, 0x77,
- 0x9d, 0x63, 0x9e, 0xa1, 0x17, 0xd1, 0x2a, 0xb5, 0xc2, 0x50, 0xa9, 0xb4,
- 0x08, 0x9a, 0x97, 0xce, 0xa3, 0xac, 0x79, 0xc7, 0x2d, 0x0b, 0xfd, 0x8c,
- 0x4b, 0xf0, 0x06, 0x45, 0x4b, 0x20, 0x7d, 0x27, 0x19, 0xd3, 0x77, 0xe4,
- 0x0f, 0x5d, 0x0d, 0xcf, 0xdb, 0xe3, 0x4d, 0x27, 0xd9, 0x20, 0xad, 0x27,
- 0x79, 0x1e, 0x37, 0xc1, 0x35, 0x80, 0x63, 0x4c, 0xfe, 0x25, 0x5c, 0x6f,
- 0x54, 0xaf, 0x99, 0x9c, 0xe5, 0x5a, 0x0f, 0x95, 0x28, 0x4d, 0x99, 0xd1,
- 0x82, 0xad, 0xff, 0x72, 0xd9, 0x5c, 0x83, 0xdc, 0x10, 0x9d, 0xed, 0x07,
- 0x3b, 0x93, 0x1c, 0xea, 0x4c, 0xfd, 0x59, 0x4f, 0xaa, 0x7c, 0x01, 0x86,
- 0x37, 0xaf, 0xf2, 0x4a, 0xdf, 0x96, 0x26, 0x85, 0x8d, 0x2c, 0x61, 0x0f,
- 0xae, 0xd5, 0xf9, 0x3e, 0x20, 0x12, 0xe8, 0x0d, 0x7a, 0xe4, 0x8f, 0xb0,
- 0xe5, 0x2a, 0xcc, 0xbb, 0x44, 0xcd, 0xc9, 0xf4, 0x56, 0xfc, 0x2a, 0x4a,
- 0x3f, 0xaf, 0x8e, 0x9f, 0xa9, 0xff, 0xd1, 0x6c, 0xa1, 0x7b, 0x25, 0x7f,
- 0x04, 0x23, 0xb7, 0xc6, 0x15, 0xc6, 0xcc, 0xf1, 0x4b, 0x7e, 0x31, 0xa5,
- 0x5b, 0xbe, 0xc9, 0x3e, 0x71, 0x0a, 0x58, 0xa8, 0x63, 0x8a, 0x42, 0x7b,
- 0x43, 0xc9, 0x41, 0x78, 0xf6, 0x70, 0x74, 0x74, 0x72, 0xd2, 0x4a, 0x18,
- 0xa3, 0xc9, 0x43, 0x0e, 0x3f, 0x93, 0x11, 0xd4, 0xc4, 0x9e, 0x47, 0xd1,
- 0x96, 0x58, 0xf8, 0x8c, 0x2b, 0x32, 0x99, 0xe3, 0x07, 0x97, 0xa9, 0x91,
- 0x04, 0xb9, 0xd6, 0xcb, 0x4a, 0x19, 0x9c, 0xb1, 0x2c, 0x4c, 0x37, 0x61,
- 0x1d, 0xdf, 0x2c, 0xe7, 0x69, 0xf1, 0xc7, 0x73, 0x60, 0xc4, 0x71, 0xd8,
- 0x32, 0x5b, 0x7c, 0xae, 0xfc, 0x10, 0x4d, 0xb8, 0xd7, 0x22, 0xcc, 0xd7,
- 0xe7, 0x95, 0xd4, 0x46, 0x62, 0xba, 0x17, 0xa1, 0xae, 0xa6, 0xf2, 0xbd,
- 0x44, 0xc7, 0xc5, 0x2d, 0x9b, 0xb1, 0x6a, 0xd4, 0x87, 0x39, 0x61, 0x45,
- 0x90, 0x44, 0xaa, 0x24, 0x8b, 0xff, 0x7b, 0x6d, 0xa2, 0xcb, 0x5e, 0xf7,
- 0xaa, 0xc4, 0x47, 0xd6, 0x9e, 0x00, 0x12, 0xa5, 0x38, 0x03, 0xd2, 0xa3,
- 0xd6, 0x29, 0xb0, 0x87, 0x80, 0x66, 0xc0, 0x1e, 0x81, 0x7f, 0xd2, 0x09,
- 0x00, 0xc8, 0xdd, 0x55, 0x79, 0x79, 0xf8, 0x10, 0xc0, 0x83, 0xd0, 0xfb,
- 0x73, 0x2f, 0xce, 0x8d, 0xfe, 0x88, 0x93, 0xd4, 0x62, 0x4f, 0xf8, 0xe7,
- 0xee, 0xb4, 0x08, 0x9d, 0x83, 0x27, 0xc4, 0xfc, 0x35, 0x5d, 0x16, 0xf9,
- 0x27, 0x60, 0xb1, 0x8d, 0x2a, 0xf1, 0x92, 0x88, 0xc1, 0x57, 0x30, 0x5e,
- 0x1f, 0xb1, 0x62, 0x93, 0x28, 0xb4, 0x1c, 0xa3, 0x78, 0x6f, 0x5e, 0x4e,
- 0xa6, 0xe5, 0x9c, 0x02, 0xf3, 0xdc, 0x46, 0xdf, 0xa7, 0x1d, 0x85, 0x58,
- 0x8f, 0x04, 0xf6, 0x8b, 0xac, 0x21, 0x7b, 0x6f, 0xad, 0x4b, 0xba, 0xed,
- 0xe6, 0xbf, 0x44, 0x99, 0xa1, 0x05, 0xe1, 0x7d, 0xd7, 0x94, 0xb1, 0x64,
- 0x4f, 0xbd, 0x87, 0xae, 0x65, 0xb0, 0xbe, 0xb5, 0x5f, 0x3d, 0x7a, 0x76,
- 0xd9, 0x3d, 0x72, 0xeb, 0x83, 0xf7, 0x3c, 0x86, 0x41, 0xb0, 0x04, 0xfd,
- 0xae, 0xba, 0x45, 0xde, 0x75, 0x28, 0xa2, 0x82, 0x82, 0x8b, 0xbb, 0x48,
- 0x01, 0xaa, 0xb5, 0xe4, 0xf0, 0x4c, 0xe8, 0xef, 0xea, 0xfe, 0xb5, 0xca,
- 0x80, 0x80, 0x4c, 0x29, 0x9f, 0xd1, 0xe6, 0xdf, 0xd1, 0xb0, 0xe4, 0x2c,
- 0x84, 0xcd, 0xba, 0xea, 0x12, 0x2c, 0xea, 0x28, 0x47, 0x03, 0xa1, 0x09,
- 0xfa, 0x37, 0x78, 0x50, 0xa4, 0xa4, 0x60, 0x67, 0x10, 0xbc, 0xfd, 0x03,
- 0xf5, 0xc5, 0x0b, 0x1c, 0xdd, 0x50, 0xc9, 0x51, 0xed, 0x57, 0xc5, 0x1b,
- 0xb1, 0x5d, 0x54, 0x56, 0x63, 0x51, 0x1e, 0x63, 0x7e, 0xa4, 0xec, 0xb8,
- 0xe8, 0x67, 0xa2, 0x46, 0x31, 0x41, 0x1e, 0xa5, 0xc8, 0x10, 0x3f, 0x37,
- 0x01, 0x6c, 0x6c, 0x89, 0x43, 0x5e, 0x58, 0xae, 0x8d, 0x2a, 0xe9, 0x78,
- 0xdd, 0x13, 0x67, 0x26, 0xa4, 0x05, 0x79, 0x5e, 0x72, 0x5d, 0x34, 0xcd,
- 0xb2, 0xd8, 0x32, 0xca, 0xba, 0x96, 0x91, 0xa7, 0x16, 0x89, 0x5b, 0xdb,
- 0xd5, 0x90, 0x0f, 0x58, 0xa2, 0x57, 0x9d, 0x26, 0xcd, 0xfb, 0x71, 0x13,
- 0x45, 0x92, 0x63, 0x2b, 0x55, 0x12, 0x36, 0x72, 0x71, 0x6f, 0xab, 0xda,
- 0x69, 0x4e, 0x78, 0x5e, 0xf8, 0xdb, 0x3d, 0xb0, 0xf6, 0x58, 0x36, 0x89,
- 0x54, 0x32, 0xdb, 0x5b, 0xe8, 0x5a, 0x33, 0xeb, 0xda, 0xf1, 0xbe, 0x33,
- 0xf4, 0xbf, 0xc3, 0x38, 0xf7, 0xed, 0x80, 0xea, 0xfb, 0xbe, 0x5b, 0x02,
- 0xd4, 0x7e, 0x9b, 0xfa, 0xa9, 0xe9, 0x9c, 0xd2, 0x33, 0x40, 0x0a, 0x08,
- 0x12, 0x89, 0x88, 0x61, 0x78, 0x12, 0xb9, 0x1a, 0x38, 0xac, 0x54, 0xb0,
- 0xec, 0xe3, 0xbe, 0x84, 0x4e, 0xa2, 0xa5, 0x86, 0x44, 0xa4, 0x09, 0xdd,
- 0x9d, 0x6d, 0x96, 0x22, 0x31, 0x61, 0x73, 0xbc, 0x88, 0x91, 0x49, 0xfd,
- 0x4b, 0x27, 0xdf, 0x87, 0x64, 0x5a, 0x78, 0xa0, 0x6d, 0x35, 0x1e, 0xa2,
- 0xf7, 0xf7, 0x49, 0x6b, 0xa3, 0x84, 0xe7, 0xc2, 0x62, 0x9b, 0x1c, 0xd3,
- 0x1b, 0x61, 0x63, 0xff, 0x8e, 0x56, 0x88, 0xfb, 0xd7, 0xab, 0xb6, 0x85,
- 0xda, 0xb5, 0xc1, 0xce, 0x92, 0xbd, 0x27, 0xbc, 0xc9, 0x48, 0xce, 0x1d,
- 0x4a, 0x25, 0x09, 0x52, 0xdb, 0x55, 0xd1, 0x4c, 0x7a, 0xd7, 0xb3, 0x72,
- 0x3c, 0x36, 0xc3, 0xee, 0x79, 0x6a, 0xa9, 0xf9, 0x72, 0xe0, 0x3e, 0xf3,
- 0xfb, 0x61, 0x5d, 0xf1, 0x7d, 0x86, 0x94, 0xb0, 0x5f, 0x00, 0x57, 0xb2,
- 0x66, 0x41, 0xc9, 0xf7, 0x95, 0x6e, 0x35, 0x72, 0xd3, 0x08, 0xb8, 0x55,
- 0xb6, 0x06, 0x0d, 0xcc, 0x03, 0x2b, 0x4b, 0x52, 0x20, 0xfd, 0x54, 0x3b,
- 0xc8, 0x30, 0xa1, 0x64, 0x15, 0xd2, 0xcd, 0x91, 0xbb, 0x43, 0x70, 0x49,
- 0xb5, 0x9f, 0xbc, 0x0e, 0xdd, 0xa9, 0x98, 0x85, 0xf6, 0x80, 0x7a, 0xff,
- 0x45, 0x7f, 0xec, 0xf5, 0xe9, 0xbf, 0xfb, 0xff, 0xdd, 0x83, 0xc7, 0xf5,
- 0x60, 0x67, 0xe7, 0xee, 0xee, 0x6e, 0x28, 0x2c, 0xe6, 0x43, 0xb3, 0x64,
- 0x1b, 0x61, 0xda, 0x0e, 0xd1, 0x28, 0xad, 0xf8, 0xc0, 0x65, 0xd2, 0xcb,
- 0xe7, 0xd7, 0x3f, 0xed, 0x0d, 0xf6, 0x76, 0x77, 0x77, 0x7f, 0x19, 0x2e,
- 0x68, 0x8a, 0xaf, 0xd0, 0xac, 0xf9, 0xaf, 0xdf, 0xec, 0x0e, 0xf7, 0x64,
- 0x67, 0x23, 0x5e, 0x13, 0x04, 0xbf, 0xb4, 0x14, 0x0c, 0x05, 0x73, 0x62,
- 0xf3, 0x56, 0x3e, 0xf0, 0xc4, 0x0c, 0x87, 0x80, 0xd2, 0xd5, 0x49, 0xb0,
- 0x5c, 0xa0, 0x86, 0x7c, 0xa6, 0xcf, 0x9e, 0xec, 0xef, 0x27, 0xac, 0x72,
- 0x70, 0x6e, 0x09, 0xc7, 0x21, 0x29, 0xad, 0x58, 0x0a, 0x79, 0xf2, 0x6d,
- 0x36, 0x21, 0x7e, 0xa5, 0x8a, 0x6b, 0x04, 0x06, 0x25, 0xe3, 0x2c, 0xc2,
- 0x07, 0xfb, 0xd6, 0x5c, 0x95, 0x04, 0xbb, 0x2d, 0xa7, 0xf7, 0xae, 0x61,
- 0xb3, 0xcb, 0x2b, 0x92, 0xae, 0x54, 0x8a, 0xcb, 0x2b, 0x3b, 0x9f, 0xd6,
- 0x31, 0xbd, 0xcd, 0xe6, 0x89, 0xe0, 0x9a, 0x03, 0x9b, 0x5f, 0x41, 0xf3,
- 0x8b, 0x8a, 0x2f, 0x20, 0xe2, 0x5a, 0x56, 0x52, 0x46, 0x00, 0x31, 0xca,
- 0xbb, 0xf4, 0xbe, 0x75, 0xdd, 0x9b, 0x19, 0x7f, 0x69, 0xfe, 0xb3, 0xaa,
- 0x02, 0x74, 0x8a, 0xad, 0x84, 0x11, 0x36, 0x93, 0x9b, 0x80, 0x9e, 0x16,
- 0x02, 0x9c, 0x94, 0xf7, 0x1b, 0x33, 0x1a, 0xcb, 0xfe, 0xba, 0xa2, 0xc8,
- 0x92, 0x97, 0x54, 0x67, 0x1a, 0x25, 0x2e, 0x6d, 0xd4, 0x2c, 0xe6, 0xba,
- 0xab, 0x2c, 0x15, 0x57, 0x15, 0xcb, 0xb3, 0xb5, 0x89, 0x00, 0xf7, 0xca,
- 0x6b, 0x4d, 0xfa, 0x9b, 0xdc, 0x64, 0x73, 0x91, 0x98, 0x5b, 0x8a, 0x76,
- 0xea, 0xc9, 0x26, 0xec, 0x85, 0x97, 0x5a, 0xef, 0x4a, 0x7e, 0x63, 0x06,
- 0xb3, 0x2d, 0x49, 0x73, 0xf6, 0x9e, 0x93, 0x3a, 0x03, 0xd7, 0x4b, 0xb2,
- 0x1b, 0xc7, 0xa9, 0x5c, 0x28, 0x4a, 0x63, 0xbd, 0x0a, 0x94, 0x48, 0x42,
- 0x31, 0xab, 0x70, 0x8f, 0x91, 0x07, 0x66, 0x20, 0xda, 0x8f, 0x5c, 0xab,
- 0x88, 0x0d, 0x9b, 0x13, 0xfb, 0xfa, 0xe4, 0xe8, 0x12, 0x19, 0x6c, 0x7d,
- 0x40, 0xdd, 0xfb, 0x48, 0x5b, 0x0b, 0x2b, 0x41, 0x9c, 0xc3, 0x43, 0x82,
- 0x8d, 0x2a, 0x95, 0xf2, 0x52, 0x87, 0x8e, 0xe9, 0xd4, 0x16, 0xe8, 0x27,
- 0x1e, 0x9f, 0x78, 0x0c, 0xf6, 0xd7, 0xd2, 0x13, 0x2d, 0xa6, 0xe8, 0xe9,
- 0xb3, 0xe1, 0x2e, 0x8f, 0x91, 0xa6, 0x50, 0x62, 0xdf, 0x92, 0x68, 0x01,
- 0x47, 0x52, 0x2d, 0xbc, 0x95, 0xe9, 0x0a, 0xce, 0x5d, 0xed, 0x4e, 0x3f,
- 0x61, 0x9a, 0x56, 0xce, 0x83, 0xd6, 0xdf, 0x7a, 0x40, 0xa7, 0xb5, 0xba,
- 0xa9, 0x5f, 0xf7, 0x9b, 0xb6, 0x65, 0x87, 0x5d, 0x93, 0xa2, 0x01, 0xa5,
- 0x4d, 0x91, 0x12, 0x92, 0x84, 0x68, 0x09, 0x5d, 0x54, 0x7f, 0x11, 0x1f,
- 0x56, 0x93, 0x15, 0x7d, 0x57, 0xd8, 0xa1, 0xa4, 0x5b, 0x40, 0xae, 0x2c,
- 0xc9, 0x1b, 0x68, 0x55, 0x43, 0x8b, 0x69, 0x28, 0x41, 0xcd, 0x8c, 0xc1,
- 0xd7, 0x52, 0xd0, 0x92, 0x35, 0xe5, 0x58, 0xde, 0x06, 0x2d, 0xe5, 0xb6,
- 0x02, 0xd4, 0xd8, 0x72, 0x55, 0x95, 0x73, 0x48, 0x0e, 0xc3, 0x84, 0xd7,
- 0x5d, 0xfa, 0xcb, 0x45, 0x49, 0xe9, 0x2a, 0x09, 0xcb, 0xb5, 0x64, 0x05,
- 0xe8, 0x09, 0x84, 0xe1, 0x85, 0x45, 0xba, 0x9e, 0x40, 0xda, 0x09, 0x30,
- 0xf7, 0xe0, 0xa1, 0xea, 0x7d, 0x41, 0x7e, 0xf0, 0x57, 0x87, 0xbd, 0xd6,
- 0x89, 0x8c, 0x95, 0x86, 0xa8, 0x59, 0xba, 0xb5, 0x6d, 0x19, 0x91, 0x69,
- 0x24, 0xf7, 0xb3, 0x4f, 0x0d, 0xdf, 0xfc, 0x57, 0x28, 0xf2, 0x58, 0x3c,
- 0xd9, 0x4f, 0xea, 0x7b, 0xa3, 0x46, 0xcc, 0xfd, 0x49, 0xe8, 0x56, 0xf5,
- 0x8c, 0x7a, 0xff, 0x5b, 0xa5, 0x70, 0x58, 0x6e, 0xbd, 0xa7, 0x57, 0x0e,
- 0xf1, 0x8a, 0x94, 0xce, 0x50, 0xa8, 0xcd, 0x23, 0x4a, 0xc5, 0x96, 0x5a,
- 0xb7, 0x2a, 0x19, 0xcf, 0xd2, 0xe2, 0xa3, 0xad, 0x6d, 0xc9, 0x2d, 0xf5,
- 0xa9, 0x00, 0x1b, 0xa7, 0x81, 0xb9, 0x1f, 0x0a, 0xf6, 0x06, 0x37, 0x63,
- 0xa7, 0xb9, 0xbf, 0x2d, 0x49, 0x33, 0x9d, 0xa7, 0x15, 0xe5, 0x07, 0x61,
- 0xce, 0x04, 0xb7, 0xb8, 0xb2, 0x1a, 0x2d, 0xea, 0x96, 0xda, 0xc2, 0xa5,
- 0xe1, 0x15, 0xc6, 0x75, 0xe6, 0x99, 0xb4, 0x43, 0xc1, 0x9f, 0x2b, 0x4a,
- 0xae, 0xfc, 0x7e, 0xe1, 0xc4, 0xa5, 0xae, 0x84, 0x91, 0xda, 0xe6, 0xbf,
- 0x07, 0x1a, 0xf3, 0x58, 0x25, 0xbf, 0xed, 0xed, 0x61, 0x8b, 0x8a, 0xda,
- 0x28, 0x89, 0x5f, 0x25, 0x8e, 0x15, 0x3c, 0x17, 0x9d, 0x89, 0x65, 0x57,
- 0x0d, 0x93, 0x33, 0x67, 0x50, 0x16, 0x7d, 0x30, 0x5a, 0x36, 0xd5, 0x44,
- 0xcc, 0x49, 0xfc, 0x7d, 0xa0, 0x25, 0x9f, 0x63, 0x33, 0x80, 0xaa, 0x29,
- 0x84, 0x68, 0xba, 0xb7, 0xd7, 0x40, 0xab, 0x77, 0x7d, 0x57, 0x06, 0x6f,
- 0x06, 0x9a, 0xad, 0x92, 0xea, 0x76, 0x49, 0x3d, 0x87, 0x00, 0x54, 0xc9,
- 0x83, 0x88, 0xd7, 0xc4, 0x43, 0x93, 0x22, 0x81, 0xb9, 0x08, 0x83, 0x3c,
- 0x5e, 0x4b, 0x00, 0x73, 0x66, 0xee, 0x45, 0x0e, 0x35, 0xbb, 0x72, 0xf0,
- 0x46, 0xa4, 0x95, 0x45, 0x3f, 0x20, 0x67, 0xa1, 0x70, 0x21, 0xfb, 0x9c,
- 0x08, 0xce, 0x33, 0x97, 0x22, 0x99, 0x99, 0xf5, 0x35, 0xf3, 0x7b, 0xba,
- 0x37, 0xfd, 0x2f, 0x3f, 0x50, 0xcd, 0x8f, 0xcb, 0x0d, 0xe8, 0x62, 0x98,
- 0x5d, 0xd8, 0xe7, 0x24, 0x9c, 0xe1, 0x0a, 0x75, 0x86, 0xa5, 0xc1, 0x77,
- 0xc6, 0x86, 0xcf, 0xaa, 0xd2, 0x08, 0x92, 0xef, 0x9f, 0x29, 0xd0, 0x46,
- 0xaa, 0x83, 0xca, 0x9d, 0x25, 0x6b, 0x79, 0x6f, 0xeb, 0x95, 0x47, 0x5d,
- 0x29, 0x2c, 0x23, 0xf5, 0x4d, 0xb9, 0xb4, 0xd8, 0x94, 0x2b, 0xba, 0xcb,
- 0x42, 0xd7, 0x99, 0xe9, 0x23, 0x8d, 0x2c, 0xc4, 0xed, 0xb4, 0x4a, 0xd9,
- 0x02, 0x39, 0xbe, 0x9c, 0x90, 0xfe, 0x43, 0x4e, 0x1f, 0x2a, 0x65, 0x3a,
- 0x6e, 0x52, 0xae, 0xa4, 0x68, 0x7b, 0x7e, 0x99, 0x93, 0x63, 0x60, 0x28,
- 0x5b, 0x22, 0x8a, 0xdb, 0x96, 0xcb, 0xcf, 0x91, 0xc0, 0x76, 0xe2, 0x86,
- 0xa4, 0x6d, 0xd4, 0x37, 0x74, 0x5f, 0xd3, 0x3d, 0x02, 0x63, 0x70, 0x23,
- 0x4e, 0x6a, 0x4a, 0x93, 0xf6, 0xee, 0xf2, 0xf4, 0x6d, 0xbf, 0x73, 0x12,
- 0xe4, 0xe2, 0xf3, 0xea, 0x00, 0xcb, 0xd6, 0x54, 0xee, 0x83, 0x30, 0xed,
- 0x53, 0x16, 0xb6, 0x9f, 0xd8, 0x0c, 0x12, 0x4e, 0x3b, 0xa6, 0xa9, 0xeb,
- 0x4b, 0x94, 0xba, 0x92, 0xdc, 0x04, 0xb5, 0x0f, 0x79, 0x5e, 0x43, 0x8f,
- 0x27, 0x21, 0xd5, 0x6a, 0xf8, 0x0e, 0x60, 0x52, 0x1b, 0xb9, 0x63, 0xb6,
- 0xa3, 0x57, 0xfb, 0x27, 0xdc, 0xd7, 0x65, 0xeb, 0xd0, 0xf8, 0x0b, 0x46,
- 0xdb, 0x90, 0xa9, 0x9f, 0x93, 0xd7, 0xe5, 0x5d, 0x31, 0x38, 0xa5, 0x04,
- 0xb3, 0xe4, 0xb4, 0xbc, 0x26, 0xab, 0xe9, 0x5d, 0xdc, 0xba, 0x7f, 0x7f,
- 0xfe, 0x2e, 0xd9, 0x22, 0xe9, 0x9c, 0x9c, 0x5b, 0x5a, 0x21, 0x7a, 0x74,
- 0x5b, 0xb4, 0xd0, 0x9a, 0x6f, 0x2e, 0xe9, 0x4d, 0x3f, 0x39, 0xfe, 0xf1,
- 0xf0, 0xed, 0xf9, 0xe9, 0xf1, 0xcf, 0x2b, 0x40, 0x02, 0xf4, 0xe3, 0xaf,
- 0x3c, 0xcd, 0x1c, 0x9e, 0x7c, 0x8a, 0x7b, 0x9a, 0x9e, 0xdc, 0xaf, 0x92,
- 0x05, 0x7c, 0x7c, 0x74, 0x0b, 0x8e, 0x46, 0xe7, 0x27, 0x03, 0x65, 0x04,
- 0xe2, 0x82, 0x51, 0x79, 0x41, 0x4a, 0x34, 0x1f, 0x60, 0x25, 0xed, 0xfe,
- 0x2e, 0x0c, 0x5a, 0xd8, 0xf3, 0xd0, 0x4f, 0xde, 0x29, 0x40, 0xa5, 0x8f,
- 0x45, 0x27, 0x29, 0xfd, 0x3a, 0xbf, 0x46, 0xe4, 0xa1, 0xc3, 0xef, 0x43,
- 0xbb, 0x43, 0x4c, 0xae, 0x80, 0x6e, 0xcb, 0x48, 0x1f, 0x0d, 0x27, 0xd5,
- 0xd9, 0x8c, 0x9d, 0x5c, 0x2b, 0xa5, 0x28, 0x70, 0x78, 0xbc, 0x8a, 0x00,
- 0x02, 0x07, 0x21, 0x15, 0x01, 0x06, 0x8f, 0xad, 0xd4, 0x13, 0xd5, 0x95,
- 0x77, 0x08, 0x4b, 0x0f, 0xb9, 0x73, 0xac, 0x70, 0x38, 0x30, 0xf6, 0xfb,
- 0x32, 0x39, 0xe8, 0xfd, 0x81, 0x17, 0x89, 0xef, 0x11, 0x8c, 0xd4, 0x7e,
- 0xb0, 0x9c, 0x50, 0xd6, 0x7f, 0xcc, 0xd9, 0xf8, 0xec, 0xda, 0x54, 0xc7,
- 0x0c, 0x7c, 0xa2, 0xe6, 0xa4, 0x8b, 0xda, 0x37, 0x5e, 0x5e, 0x5f, 0x47,
- 0x32, 0xf6, 0xa9, 0x40, 0x54, 0x96, 0xe1, 0x7a, 0x36, 0x5a, 0xcc, 0x66,
- 0x9d, 0xb0, 0x9f, 0xd7, 0xf4, 0xbf, 0x87, 0xf8, 0x95, 0xb2, 0xa5, 0x94,
- 0xd3, 0x1e, 0x57, 0x38, 0x66, 0x57, 0x75, 0x4d, 0x00, 0xc3, 0xb0, 0x39,
- 0x8e, 0xd0, 0x6d, 0x7e, 0xb9, 0xa9, 0xb4, 0xe7, 0x46, 0xe1, 0xe7, 0xdb,
- 0x17, 0x9a, 0x4e, 0x8f, 0x55, 0x9d, 0x31, 0x57, 0x1d, 0xeb, 0x27, 0x9b,
- 0x2f, 0x37, 0xe5, 0xb9, 0x5e, 0xf4, 0x22, 0xe7, 0x77, 0x38, 0x12, 0xc4,
- 0x0a, 0xf0, 0xc4, 0xfa, 0xca, 0x48, 0x49, 0xc8, 0xa7, 0xd3, 0xac, 0x10,
- 0xd7, 0x09, 0xd5, 0xec, 0x11, 0x12, 0xaf, 0xbe, 0xdc, 0x2c, 0xdd, 0x8b,
- 0x09, 0x5d, 0xd7, 0x9e, 0x73, 0x5f, 0x37, 0xff, 0x4d, 0x7b, 0xe0, 0x15,
- 0xb8, 0x23, 0xd7, 0xb5, 0x2b, 0x36, 0x23, 0x5f, 0x5d, 0x75, 0x52, 0x10,
- 0x1f, 0x81, 0x09, 0x05, 0x7d, 0x49, 0x2d, 0x48, 0x91, 0xd4, 0xac, 0xe2,
- 0xf6, 0x3b, 0xc9, 0x17, 0x88, 0x7f, 0x84, 0x6e, 0xae, 0xc6, 0x92, 0xd6,
- 0x51, 0xcb, 0x9b, 0x15, 0x55, 0x23, 0xe0, 0x1a, 0xb4, 0x54, 0x98, 0x67,
- 0xc5, 0xf7, 0xd5, 0x03, 0xe8, 0x36, 0x1e, 0xa7, 0x8b, 0x2a, 0x02, 0x96,
- 0xac, 0x33, 0x3c, 0x98, 0x15, 0xf0, 0x05, 0xab, 0x05, 0xd0, 0x0f, 0x09,
- 0x0b, 0xb8, 0x52, 0x8a, 0x32, 0xa4, 0xdb, 0x28, 0x45, 0x3b, 0xa6, 0xa6,
- 0x08, 0xd6, 0x28, 0x55, 0xb2, 0x97, 0x4f, 0xd5, 0x2e, 0xa3, 0x23, 0x3e,
- 0x4f, 0x70, 0x48, 0x47, 0x13, 0x57, 0x44, 0xed, 0xa6, 0x79, 0x72, 0x13,
- 0x15, 0xe4, 0xfe, 0x38, 0xaf, 0xb9, 0x1f, 0xa0, 0x09, 0x51, 0x51, 0x51,
- 0xf7, 0xf9, 0xf7, 0x72, 0xaa, 0x22, 0x38, 0xda, 0xd7, 0x12, 0x60, 0xf1,
- 0xa3, 0x16, 0x92, 0x0b, 0xc2, 0xee, 0x25, 0xd1, 0x64, 0x35, 0x8c, 0xab,
- 0xc1, 0xe5, 0x1c, 0x5e, 0xe0, 0x7a, 0x18, 0xad, 0x82, 0x5c, 0xc1, 0x7d,
- 0x5a, 0x64, 0x7a, 0xab, 0xb3, 0x1b, 0x16, 0x01, 0x17, 0x7d, 0xbf, 0x14,
- 0x0a, 0xb5, 0xbe, 0x17, 0x21, 0x8e, 0x84, 0xe0, 0x70, 0x7f, 0x3c, 0xb1,
- 0xa5, 0xbb, 0xcd, 0xa3, 0x55, 0x5a, 0x71, 0xf5, 0xc4, 0xe2, 0xa3, 0x42,
- 0x8b, 0xa8, 0xf1, 0xec, 0x53, 0x36, 0x59, 0x36, 0xed, 0x1c, 0x07, 0x5f,
- 0xf9, 0x52, 0x22, 0x7f, 0x74, 0x6b, 0x0b, 0x47, 0x41, 0x8d, 0x96, 0x73,
- 0xa5, 0x5e, 0x38, 0xe8, 0x6d, 0x4b, 0xb8, 0x8f, 0xc2, 0x40, 0x96, 0x91,
- 0x21, 0x16, 0xc7, 0xd3, 0x3e, 0x57, 0x19, 0xfb, 0xdd, 0x5c, 0x48, 0x3b,
- 0xfa, 0x79, 0x2e, 0x3f, 0x1e, 0xf9, 0xf6, 0x1b, 0xf6, 0xd0, 0x78, 0x9f,
- 0xb6, 0x25, 0xab, 0xc4, 0x79, 0x53, 0x07, 0x47, 0x39, 0xf8, 0x32, 0xaa,
- 0x47, 0x0e, 0x93, 0x43, 0x5b, 0xf9, 0x55, 0x5f, 0xd5, 0xf9, 0x0f, 0x9c,
- 0x66, 0x27, 0xe7, 0xb7, 0xcf, 0x3d, 0x9f, 0x27, 0xdd, 0x79, 0xf8, 0x91,
- 0x95, 0xf8, 0xc1, 0x28, 0x3e, 0x56, 0xe3, 0xa7, 0xe6, 0x8f, 0xef, 0xe8,
- 0x0f, 0x12, 0xab, 0x64, 0x62, 0x32, 0x6f, 0x12, 0x7b, 0xeb, 0xc2, 0xad,
- 0x4d, 0x59, 0xaf, 0xf2, 0x87, 0x2c, 0x3a, 0x30, 0xec, 0x94, 0x8a, 0x42,
- 0x2c, 0x4b, 0x8e, 0xf0, 0x02, 0xca, 0xaf, 0xb6, 0xd3, 0xd7, 0xf4, 0xb0,
- 0x38, 0xbe, 0x17, 0xa4, 0x40, 0x4c, 0xba, 0xd3, 0x87, 0x67, 0x62, 0xc4,
- 0x82, 0xbc, 0x8c, 0x25, 0x08, 0x99, 0xa9, 0xfa, 0x3b, 0x39, 0xb4, 0x6d,
- 0xaa, 0x22, 0xd5, 0x2e, 0x9e, 0x5b, 0x40, 0x38, 0x41, 0x43, 0x5d, 0xdc,
- 0x9f, 0x7d, 0x98, 0x74, 0xcc, 0x58, 0x9c, 0x85, 0x48, 0x2d, 0xcb, 0x85,
- 0xb4, 0x6a, 0xc8, 0xb8, 0xdc, 0xe5, 0x8f, 0x90, 0x57, 0x70, 0xf5, 0x7b,
- 0xaf, 0x91, 0x1e, 0x27, 0x07, 0x9e, 0x8f, 0xc2, 0x92, 0x8b, 0x3b, 0xeb,
- 0x62, 0xbb, 0x14, 0x61, 0x7e, 0x58, 0x6c, 0x45, 0x56, 0x4c, 0x56, 0xf4,
- 0x93, 0xaa, 0x84, 0x32, 0xb3, 0x3a, 0xa4, 0xc2, 0x47, 0x8d, 0x68, 0xce,
- 0xb3, 0x39, 0x05, 0x48, 0xec, 0xbd, 0xc8, 0x3c, 0x2d, 0xec, 0x12, 0xa0,
- 0x8f, 0x0d, 0xe2, 0xcd, 0x4d, 0x49, 0x7f, 0xa3, 0x2b, 0x96, 0x61, 0x3e,
- 0xff, 0x12, 0x44, 0xc5, 0xea, 0xfb, 0x62, 0x72, 0xf3, 0xfa, 0xdd, 0x28,
- 0xfe, 0x7a, 0x38, 0x38, 0x3c, 0x6f, 0xf4, 0x10, 0xda, 0x0c, 0x52, 0x41,
- 0x1b, 0x34, 0x65, 0x46, 0xc9, 0x3b, 0xf4, 0x7e, 0x17, 0x6f, 0xae, 0xf5,
- 0x82, 0xf5, 0x17, 0x91, 0x62, 0xc1, 0x42, 0x5c, 0x34, 0x4f, 0xa0, 0x87,
- 0x07, 0x29, 0x1d, 0x05, 0xd4, 0xb5, 0x0a, 0x14, 0x68, 0x7b, 0xa6, 0x29,
- 0xaa, 0x80, 0x02, 0xb6, 0x68, 0xb2, 0xf2, 0x80, 0x4a, 0xdd, 0x7d, 0x8d,
- 0xaa, 0x0a, 0xfa, 0xc7, 0xaf, 0x59, 0xe6, 0x53, 0xaa, 0x80, 0x1c, 0x09,
- 0x42, 0xf9, 0x33, 0xd4, 0x82, 0x8d, 0x78, 0x31, 0x42, 0xb3, 0x57, 0x67,
- 0xf4, 0x3a, 0x6f, 0xd3, 0xbe, 0xec, 0x56, 0xfc, 0xa8, 0x5a, 0x35, 0x24,
- 0x33, 0x29, 0xfb, 0xdf, 0x7c, 0x1d, 0xde, 0x9e, 0xaf, 0xdf, 0xad, 0xf8,
- 0x1c, 0xfd, 0x66, 0xa0, 0xe9, 0x22, 0xa2, 0x11, 0x78, 0x2a, 0x7d, 0x38,
- 0x17, 0x71, 0x06, 0xdf, 0xf6, 0x2f, 0x1f, 0x92, 0x12, 0xe6, 0x09, 0xf9,
- 0x63, 0xed, 0x83, 0x02, 0x76, 0x8d, 0x7f, 0x8a, 0x50, 0xb0, 0x5b, 0x0c,
- 0x04, 0x4b, 0x2e, 0x38, 0xd8, 0x77, 0x2e, 0x9a, 0xf0, 0x76, 0x64, 0x89,
- 0x56, 0x82, 0x94, 0x9d, 0x19, 0x94, 0xc4, 0x58, 0x47, 0x48, 0x2e, 0xec,
- 0xf3, 0x1f, 0x3b, 0xfb, 0x16, 0xc2, 0x64, 0x73, 0x7e, 0x70, 0x48, 0xcd,
- 0x05, 0x1e, 0x2a, 0x08, 0x45, 0xfe, 0x69, 0x84, 0xb8, 0xf3, 0x8a, 0xdd,
- 0x8c, 0x00, 0x35, 0x47, 0xa6, 0xed, 0x1c, 0x50, 0x47, 0x55, 0x13, 0x8b,
- 0xf6, 0x64, 0xc4, 0x4e, 0x9e, 0x87, 0x36, 0x53, 0x1e, 0x41, 0x5d, 0xad,
- 0xa3, 0x56, 0x7b, 0x6b, 0x94, 0x24, 0xba, 0x5c, 0x1f, 0x3e, 0xc6, 0x76,
- 0xdf, 0xd8, 0x77, 0x92, 0xad, 0xb1, 0xb9, 0xb1, 0x3d, 0xaa, 0x04, 0x92,
- 0x37, 0x4f, 0x81, 0xec, 0x8e, 0x37, 0xf7, 0xec, 0xf3, 0x67, 0x4f, 0xb7,
- 0xb7, 0xfb, 0x89, 0x96, 0x78, 0x26, 0x10, 0xc5, 0x98, 0x12, 0x4c, 0x72,
- 0x92, 0x5b, 0x35, 0x2b, 0xb3, 0x66, 0x82, 0x6f, 0xe0, 0x7b, 0xf5, 0x1c,
- 0x31, 0xf1, 0xe6, 0xe8, 0x1e, 0xd3, 0x57, 0x69, 0x11, 0xc9, 0x04, 0x87,
- 0x44, 0xb7, 0x66, 0x70, 0xaa, 0x32, 0xb1, 0x76, 0x9e, 0xf9, 0x95, 0x52,
- 0x01, 0xb1, 0x24, 0xe7, 0x87, 0xa2, 0x70, 0x06, 0x42, 0x8a, 0xae, 0xc6,
- 0x7a, 0x08, 0x18, 0x3c, 0xe7, 0x6b, 0x8f, 0xfe, 0xa0, 0xfd, 0x7c, 0xa3,
- 0x25, 0x0b, 0xcf, 0x97, 0xe3, 0x99, 0xb9, 0x81, 0x46, 0x54, 0xf4, 0xf7,
- 0x53, 0x72, 0x9a, 0x4b, 0xf5, 0x4f, 0xb1, 0x15, 0x14, 0x48, 0xb7, 0xea,
- 0xce, 0xe1, 0x81, 0x23, 0xcd, 0x1a, 0x5b, 0xad, 0x05, 0x28, 0x77, 0x49,
- 0x7a, 0xac, 0xb7, 0xf5, 0x16, 0xfc, 0xad, 0x7a, 0x79, 0x35, 0x58, 0x35,
- 0xb0, 0x4f, 0x59, 0xed, 0x99, 0x71, 0x83, 0x3b, 0x52, 0x10, 0x41, 0x87,
- 0x40, 0xae, 0xe9, 0xe4, 0x25, 0xab, 0x82, 0xab, 0xab, 0xef, 0x69, 0x5a,
- 0xaa, 0xaf, 0x34, 0x42, 0xff, 0x86, 0x1b, 0x37, 0xbd, 0x22, 0xa0, 0x29,
- 0xa3, 0xea, 0x66, 0x19, 0x0a, 0x5f, 0x93, 0x20, 0x0b, 0x80, 0xd4, 0xb6,
- 0x80, 0xb8, 0x98, 0xf7, 0x89, 0x78, 0x29, 0xc4, 0x27, 0x0b, 0xbc, 0x54,
- 0x0a, 0x8a, 0x0b, 0x78, 0x6b, 0x98, 0x59, 0x81, 0x5d, 0xc3, 0x66, 0x00,
- 0xd3, 0x98, 0x05, 0xd6, 0x76, 0xda, 0x6b, 0xda, 0x6b, 0xcd, 0x6e, 0x2d,
- 0xf9, 0x4a, 0xe8, 0x64, 0x89, 0x55, 0x45, 0x9c, 0x99, 0xc9, 0x20, 0xe3,
- 0x35, 0xe9, 0x71, 0x7f, 0x28, 0x61, 0x81, 0xee, 0x10, 0x8d, 0x88, 0x02,
- 0x51, 0xa3, 0x1a, 0x3e, 0xeb, 0xc8, 0xd2, 0x3e, 0x6c, 0xef, 0x34, 0x12,
- 0x22, 0x15, 0x9d, 0xef, 0x2b, 0x05, 0xe6, 0xf4, 0x34, 0x9e, 0xdb, 0x32,
- 0xee, 0x6d, 0x73, 0x76, 0x56, 0x22, 0xb9, 0xaf, 0x1c, 0xe4, 0x46, 0xe9,
- 0x51, 0x5a, 0x35, 0xd3, 0xe8, 0xa0, 0x17, 0x57, 0x7c, 0xed, 0x1c, 0xa0,
- 0x44, 0x00, 0xac, 0xd0, 0x96, 0x85, 0xa6, 0x5f, 0x51, 0x83, 0x9c, 0xf0,
- 0xba, 0x4d, 0xde, 0x2c, 0x43, 0xe9, 0x28, 0x51, 0x3f, 0x64, 0x0a, 0xc3,
- 0xd3, 0x4c, 0x2b, 0xe1, 0xd2, 0x79, 0x61, 0x8e, 0x11, 0x7e, 0x8f, 0x0a,
- 0x7c, 0xd5, 0x89, 0x3d, 0xcd, 0xc8, 0x81, 0x9c, 0x95, 0x77, 0x01, 0xe4,
- 0x97, 0xdc, 0xa9, 0xae, 0x77, 0xed, 0x1c, 0x0e, 0xd3, 0xc0, 0x9f, 0xff,
- 0x4b, 0x7f, 0xf9, 0x81, 0x26, 0xeb, 0xbf, 0x75, 0xb2, 0xa4, 0xdb, 0x69,
- 0x90, 0xb0, 0x0a, 0x3b, 0xf8, 0xcf, 0x98, 0x94, 0xbf, 0x12, 0x4a, 0x85,
- 0x67, 0x86, 0xa8, 0x22, 0xd0, 0xdc, 0x9f, 0x87, 0x56, 0xdf, 0xd5, 0x26,
- 0x28, 0xfd, 0x8e, 0xad, 0xfa, 0xf1, 0x7d, 0xe0, 0x3b, 0xa2, 0x3d, 0xf8,
- 0x73, 0xd1, 0x07, 0xed, 0xa5, 0x31, 0xbd, 0x28, 0x5f, 0x9e, 0x4b, 0xb8,
- 0xf1, 0x32, 0xfe, 0x5c, 0x09, 0xf3, 0x83, 0x31, 0x3a, 0x4c, 0xc7, 0xc9,
- 0x20, 0xe3, 0x9f, 0x87, 0x16, 0x00, 0x21, 0x68, 0x0e, 0xb0, 0x1a, 0x7f,
- 0x1e, 0xd4, 0xf7, 0xf3, 0x71, 0x39, 0x93, 0x8d, 0x4e, 0xc3, 0x35, 0x7d,
- 0xd6, 0x9f, 0xf1, 0xb2, 0x20, 0xda, 0x31, 0xf0, 0xb2, 0xb7, 0xfb, 0x51,
- 0x6a, 0x6e, 0x32, 0x51, 0xca, 0xc9, 0x04, 0x59, 0x38, 0x04, 0xfe, 0x36,
- 0xdb, 0xfd, 0xcf, 0x9a, 0xdb, 0x44, 0xc1, 0x38, 0xae, 0x41, 0x36, 0xd5,
- 0xe0, 0xa7, 0x38, 0x6a, 0x57, 0xe6, 0xbe, 0x44, 0x37, 0x8f, 0xb7, 0x3a,
- 0xd6, 0xb6, 0x88, 0x65, 0xbe, 0xd3, 0x09, 0x35, 0x1d, 0xfd, 0x80, 0x64,
- 0x1b, 0xd9, 0x77, 0x47, 0xfc, 0xb3, 0xc1, 0x25, 0x7e, 0xa6, 0x58, 0x04,
- 0xc9, 0xb4, 0xa4, 0xe8, 0xb6, 0xa4, 0x42, 0xf6, 0xc3, 0x9c, 0xae, 0x24,
- 0x06, 0x70, 0x42, 0xc5, 0xd8, 0x22, 0xbc, 0xaf, 0xf4, 0x30, 0x7d, 0x60,
- 0xba, 0x09, 0x63, 0xf3, 0xaf, 0x6f, 0x0d, 0x45, 0x0e, 0x66, 0x4d, 0x3e,
- 0x4f, 0x05, 0x12, 0xc4, 0x18, 0x20, 0xbb, 0x8d, 0x95, 0x15, 0x06, 0x08,
- 0x51, 0xb3, 0xdf, 0x86, 0x0f, 0x35, 0x47, 0x17, 0xa2, 0x62, 0xdf, 0x05,
- 0x3d, 0x41, 0xbe, 0x27, 0x73, 0xe5, 0xe8, 0xfd, 0xdb, 0x10, 0x35, 0x0a,
- 0xc1, 0x36, 0xa8, 0xe5, 0x07, 0xc6, 0x5a, 0x6a, 0x7e, 0xb2, 0x78, 0x94,
- 0x38, 0xe4, 0x73, 0xd6, 0x4f, 0x5c, 0x84, 0x50, 0xa1, 0x51, 0x09, 0x05,
- 0x13, 0xd7, 0x37, 0x67, 0x23, 0x8d, 0xd6, 0xbd, 0x7f, 0x42, 0x9e, 0x2e,
- 0xc4, 0x85, 0x97, 0xec, 0x23, 0xcb, 0x29, 0x1b, 0x60, 0x4e, 0x5e, 0xcd,
- 0x48, 0xac, 0x2e, 0x89, 0x88, 0x58, 0x04, 0x98, 0xfe, 0xd3, 0x8b, 0x58,
- 0xb2, 0xe3, 0x67, 0xe0, 0x45, 0x2a, 0x87, 0x5a, 0x25, 0x7c, 0x7d, 0x73,
- 0xab, 0x4b, 0x96, 0x5f, 0x35, 0x8b, 0x0f, 0x28, 0xe0, 0xfb, 0x81, 0xb0,
- 0x7e, 0x58, 0x33, 0xf5, 0xb9, 0xe3, 0x07, 0x98, 0x59, 0xce, 0xed, 0x5c,
- 0x2e, 0xa8, 0x1d, 0x6c, 0xf2, 0x59, 0xc9, 0x06, 0xcd, 0x43, 0xc3, 0x68,
- 0xa3, 0xea, 0x7c, 0x0e, 0x81, 0xad, 0x76, 0x19, 0x9c, 0xa7, 0x41, 0xc7,
- 0x28, 0x88, 0xff, 0x01, 0xd1, 0x3f, 0xbb, 0x99, 0xcc, 0x75, 0x93, 0x55,
- 0xf9, 0xc4, 0xaf, 0x09, 0x87, 0x07, 0xb0, 0xa5, 0x98, 0x1c, 0x8d, 0xc2,
- 0x81, 0x51, 0x16, 0xc8, 0xce, 0xff, 0xc1, 0x3b, 0x2a, 0x25, 0xf0, 0xc8,
- 0xed, 0x67, 0x41, 0x63, 0x89, 0xc4, 0x6b, 0x09, 0x9d, 0xe0, 0xa2, 0xb8,
- 0x27, 0x0f, 0x8c, 0x13, 0x34, 0xb3, 0xfb, 0x4c, 0xd7, 0x33, 0xcb, 0xd3,
- 0xda, 0x76, 0x90, 0x47, 0x60, 0x6b, 0x30, 0x73, 0x80, 0xe4, 0x26, 0x60,
- 0xf2, 0x0c, 0xcf, 0x21, 0xc3, 0x78, 0xe8, 0xd6, 0x1f, 0xae, 0x98, 0x19,
- 0x86, 0x5f, 0x8a, 0x0c, 0x70, 0x53, 0xc3, 0x53, 0x22, 0x7a, 0x4e, 0x77,
- 0x52, 0x62, 0xb8, 0xc1, 0xa4, 0x8b, 0x89, 0x57, 0x72, 0x9c, 0x2d, 0x76,
- 0x6d, 0xa7, 0xc2, 0x1a, 0xbe, 0x2d, 0xd8, 0x30, 0xd5, 0x91, 0x94, 0x4f,
- 0xe7, 0xa1, 0xe6, 0x20, 0x86, 0x3a, 0x0b, 0xbe, 0xbf, 0x6a, 0xc1, 0x55,
- 0xa1, 0x95, 0x61, 0xd1, 0xcf, 0xac, 0x53, 0xc3, 0x1f, 0x54, 0x62, 0x65,
- 0xd0, 0xec, 0x3e, 0x89, 0x32, 0x0d, 0x77, 0xfe, 0xcf, 0xff, 0xfc, 0xb3,
- 0xdd, 0xc8, 0x41, 0x00, 0x1a, 0xf3, 0x43, 0xbe, 0xf0, 0x84, 0x97, 0x57,
- 0x57, 0xdb, 0x22, 0xbc, 0x18, 0xb4, 0x49, 0x27, 0xc2, 0x83, 0x7d, 0xd1,
- 0x29, 0x7f, 0x68, 0x1a, 0x26, 0x48, 0xe1, 0x4c, 0xd8, 0x74, 0xf6, 0xf2,
- 0x6c, 0x07, 0xaa, 0x25, 0x89, 0x21, 0x7d, 0x72, 0x8e, 0x9a, 0xe1, 0xeb,
- 0x9b, 0x83, 0x0b, 0xc9, 0x1f, 0xd2, 0xfe, 0x8b, 0x95, 0x43, 0x82, 0x1d,
- 0xa2, 0x43, 0xe2, 0xee, 0xfb, 0x6c, 0xe3, 0x82, 0xaf, 0x67, 0x00, 0x4b,
- 0xbb, 0x9b, 0xeb, 0xfb, 0xe0, 0x8d, 0xe1, 0xc1, 0x9e, 0x98, 0x6f, 0x7d,
- 0xb0, 0x6c, 0xb5, 0xe6, 0x9a, 0xe6, 0x4f, 0xd3, 0xb7, 0x8d, 0x5e, 0xe0,
- 0x78, 0x6c, 0x51, 0x4f, 0x57, 0x76, 0x2a, 0x77, 0x25, 0xae, 0xcf, 0x26,
- 0x11, 0xf5, 0xb6, 0xb3, 0xbf, 0x9e, 0x44, 0xfb, 0xa0, 0x55, 0xf9, 0x6a,
- 0xdb, 0x07, 0xd3, 0x05, 0xf7, 0x43, 0xd9, 0x5f, 0x74, 0x09, 0x9a, 0x63,
- 0x23, 0xb5, 0x32, 0x95, 0x89, 0xe9, 0xb7, 0xed, 0xf3, 0xb0, 0x1f, 0x38,
- 0x4c, 0x1f, 0xea, 0x7a, 0x46, 0x9b, 0x3d, 0xbf, 0xba, 0x37, 0x9d, 0xaa,
- 0x57, 0x66, 0xd9, 0xfb, 0x77, 0x29, 0x3f, 0xa7, 0x0b, 0xe6, 0x59, 0x96,
- 0x9b, 0x35, 0x9c, 0x7f, 0x8b, 0x8c, 0xd0, 0x0c, 0xcc, 0x94, 0xfa, 0xc0,
- 0x8c, 0x81, 0x48, 0x15, 0x9f, 0x77, 0x01, 0x31, 0x91, 0xa1, 0x56, 0x6f,
- 0x18, 0x52, 0xad, 0x5a, 0x18, 0x4d, 0x0f, 0x0e, 0xbe, 0xd5, 0x12, 0x35,
- 0xe2, 0x62, 0xc0, 0xed, 0x09, 0xa1, 0xcc, 0xae, 0x60, 0x42, 0x74, 0xfe,
- 0x3f, 0xb0, 0x58, 0x41, 0xe0, 0x56, 0xab, 0xd1, 0xda, 0x8a, 0xcb, 0xa9,
- 0xec, 0x0e, 0x0d, 0xbd, 0x0e, 0x4e, 0xe9, 0x5e, 0x9c, 0x45, 0x88, 0x60,
- 0x93, 0x10, 0xb9, 0xc0, 0x85, 0x3f, 0x00, 0x6a, 0x75, 0x8b, 0xbd, 0x55,
- 0x4a, 0x8a, 0x1e, 0x57, 0x49, 0xc6, 0x2f, 0x56, 0xfb, 0x22, 0xad, 0xaf,
- 0x2f, 0x6b, 0xb6, 0x2d, 0x96, 0x47, 0xb5, 0x36, 0x81, 0x2c, 0x80, 0xc9,
- 0x0b, 0x77, 0xc0, 0x84, 0x38, 0xf2, 0x81, 0xdb, 0x49, 0x1f, 0xda, 0x36,
- 0xc2, 0x92, 0xc7, 0xb5, 0x63, 0x60, 0xea, 0x5c, 0x83, 0xe4, 0xa4, 0xec,
- 0x6c, 0x25, 0x73, 0xbf, 0x44, 0x66, 0x8e, 0xee, 0x55, 0x2b, 0xb4, 0x2e,
- 0xdd, 0x55, 0xdb, 0x16, 0x5d, 0xff, 0xf0, 0x01, 0x5f, 0x21, 0xa4, 0x3a,
- 0x72, 0xe8, 0xa1, 0x3b, 0x32, 0x2a, 0x1a, 0x64, 0x0c, 0x2a, 0xa5, 0xbc,
- 0x31, 0xac, 0x92, 0x52, 0x7f, 0x94, 0x90, 0x12, 0x30, 0x61, 0xcb, 0xa6,
- 0x03, 0xba, 0x4c, 0x7e, 0xb1, 0x55, 0x3b, 0x42, 0x49, 0xca, 0x3e, 0x9a,
- 0x5a, 0xcf, 0xfa, 0x76, 0x8c, 0x73, 0xa6, 0xab, 0xd1, 0x99, 0x1d, 0xec,
- 0x5f, 0x5a, 0x88, 0xdb, 0x3e, 0x78, 0x36, 0x88, 0xb4, 0xe7, 0x83, 0x65,
- 0x36, 0xe7, 0x08, 0x07, 0xca, 0xf9, 0xa6, 0x73, 0x73, 0xad, 0x43, 0x18,
- 0x30, 0xfd, 0x12, 0x9f, 0x5f, 0x92, 0x5c, 0xfa, 0x74, 0xc4, 0x99, 0x85,
- 0xd6, 0x34, 0x58, 0xba, 0xae, 0x35, 0x4d, 0xba, 0xb2, 0x4d, 0x21, 0xe6,
- 0xf8, 0xc0, 0x49, 0x23, 0x2e, 0x85, 0xe8, 0x17, 0xf5, 0x10, 0xcb, 0x9c,
- 0xf2, 0x27, 0xd7, 0x8c, 0xc0, 0x33, 0x9d, 0xd7, 0x7f, 0xd1, 0x17, 0x11,
- 0xf1, 0x4f, 0x0b, 0x9a, 0x3a, 0x79, 0xdc, 0xd4, 0xad, 0x84, 0xac, 0x83,
- 0xd4, 0xdd, 0xad, 0x03, 0xb5, 0x95, 0x52, 0xc4, 0xfd, 0xda, 0xa3, 0x9d,
- 0xe7, 0x52, 0x00, 0xce, 0xbc, 0x31, 0xb2, 0xb3, 0x5e, 0x56, 0x5c, 0x6c,
- 0xf9, 0x61, 0x75, 0x4f, 0x3d, 0x38, 0xb6, 0x3d, 0xa2, 0xd9, 0x6a, 0xf3,
- 0xe1, 0xaf, 0xe8, 0x95, 0x1d, 0x22, 0x26, 0x57, 0xbb, 0xa5, 0x38, 0xf2,
- 0xdf, 0xa9, 0x57, 0xdc, 0xda, 0x63, 0xfa, 0xf4, 0x8f, 0xde, 0x6b, 0xdd,
- 0x9b, 0x8c, 0x39, 0xbf, 0xf5, 0x86, 0x79, 0x94, 0xb0, 0x5f, 0x7f, 0x95,
- 0xb5, 0x6e, 0xab, 0x87, 0xcf, 0xec, 0xaa, 0xab, 0x6c, 0x2f, 0x26, 0x42,
- 0x48, 0x3a, 0x7c, 0x48, 0x17, 0x0b, 0x11, 0x3b, 0x0f, 0x8f, 0x9d, 0x89,
- 0x8c, 0xb8, 0x74, 0x1d, 0x15, 0x4f, 0x90, 0xda, 0xf3, 0x4d, 0x59, 0x7e,
- 0x4c, 0x04, 0x5a, 0xc2, 0x00, 0x2b, 0x0a, 0x65, 0xae, 0x6f, 0x8e, 0x8b,
- 0x9c, 0xf3, 0xe3, 0x44, 0x5b, 0x3d, 0x1a, 0x7d, 0xbb, 0x93, 0x35, 0x13,
- 0x2b, 0x03, 0x77, 0x1c, 0x68, 0x8a, 0xcd, 0xb2, 0x87, 0x6e, 0x26, 0x08,
- 0x61, 0xd4, 0xb0, 0xa1, 0x79, 0xb0, 0x2e, 0xc6, 0xc7, 0x4e, 0x43, 0xdb,
- 0x42, 0xf9, 0x83, 0x06, 0x4a, 0x44, 0x90, 0x89, 0xfd, 0x12, 0xd7, 0x49,
- 0xce, 0x5a, 0x7d, 0xdf, 0x7a, 0x68, 0x9f, 0x8b, 0x71, 0xd3, 0x1e, 0x63,
- 0x74, 0x44, 0x64, 0x77, 0x13, 0x5a, 0x62, 0xb9, 0xf8, 0xdf, 0xb0, 0xb0,
- 0xc8, 0x2c, 0x70, 0xb1, 0x38, 0xa0, 0x4b, 0x1e, 0xee, 0xf2, 0x82, 0x4c,
- 0x5c, 0xb6, 0x62, 0x1f, 0xee, 0xb3, 0x74, 0x1a, 0x0a, 0x6f, 0xa4, 0xdb,
- 0xe8, 0x35, 0x63, 0x6d, 0x7f, 0x45, 0x9f, 0x39, 0xbb, 0x4e, 0xfa, 0x80,
- 0x2e, 0xc3, 0x65, 0x28, 0x24, 0x98, 0x40, 0x41, 0x5f, 0xe7, 0xc5, 0x63,
- 0x7c, 0x3f, 0x16, 0xe2, 0xc0, 0x98, 0x81, 0x6c, 0x60, 0x5b, 0x95, 0xcc,
- 0x2e, 0x8e, 0x62, 0x50, 0x7a, 0xff, 0x83, 0x62, 0x22, 0x15, 0x1a, 0x4a,
- 0x12, 0x15, 0x9e, 0x3f, 0x74, 0xa2, 0x1e, 0x0b, 0x02, 0x41, 0xe4, 0x93,
- 0x25, 0xa5, 0x35, 0x47, 0x2a, 0x32, 0x06, 0x5e, 0x0e, 0xa3, 0x03, 0x70,
- 0x3a, 0xc3, 0x2d, 0xc5, 0x34, 0x57, 0xac, 0x85, 0xd5, 0xf5, 0x56, 0x6c,
- 0x90, 0xbc, 0x91, 0x79, 0x26, 0x52, 0xd6, 0xd9, 0xcc, 0xea, 0x86, 0x0f,
- 0x8a, 0x29, 0x23, 0xe2, 0x16, 0xb5, 0x97, 0x22, 0x8b, 0x6d, 0xc2, 0x1b,
- 0xb5, 0xaf, 0x87, 0xa3, 0x9f, 0x3c, 0x7a, 0x2b, 0x08, 0x1d, 0x9d, 0xcc,
- 0xad, 0x47, 0xab, 0x47, 0x56, 0x11, 0x13, 0x6c, 0xd2, 0x2f, 0xd3, 0x89,
- 0xaa, 0xfb, 0x0f, 0xf5, 0x2e, 0xe5, 0x4a, 0x2c, 0xed, 0x49, 0x60, 0x0c,
- 0x46, 0xeb, 0x92, 0x61, 0x68, 0xc9, 0x63, 0x44, 0x3c, 0x67, 0x3c, 0x33,
- 0x34, 0x58, 0x33, 0xa5, 0xfc, 0xf9, 0xaa, 0x87, 0x8f, 0xd7, 0x4a, 0xa3,
- 0x46, 0x1a, 0xfa, 0x8a, 0x9e, 0x3f, 0xfe, 0xf8, 0xfc, 0x31, 0x22, 0x8e,
- 0x31, 0x3e, 0xa4, 0xa9, 0x44, 0x0e, 0xcf, 0x38, 0x7b, 0xac, 0x81, 0x4c,
- 0x8c, 0x8f, 0x9d, 0x63, 0xd4, 0x15, 0x10, 0x8a, 0x68, 0x9b, 0xd5, 0xe5,
- 0xc3, 0x9a, 0x81, 0xac, 0x40, 0x0b, 0xfd, 0x4b, 0xf4, 0xb3, 0x4c, 0x40,
- 0x4b, 0x16, 0xe6, 0x8c, 0x8e, 0x0f, 0x87, 0x05, 0x1e, 0xf4, 0x38, 0x51,
- 0x21, 0xdb, 0xe8, 0x12, 0x88, 0xae, 0xd8, 0xd2, 0xdf, 0xc2, 0x79, 0xd6,
- 0xc4, 0x56, 0xc9, 0x34, 0x07, 0x3c, 0xf1, 0x31, 0xdb, 0x88, 0xbc, 0x61,
- 0x91, 0xd3, 0x0a, 0x5a, 0x5f, 0x55, 0xd5, 0xf9, 0xcb, 0x36, 0x05, 0x03,
- 0x1e, 0x35, 0x4a, 0x85, 0x02, 0x83, 0x25, 0x19, 0xfc, 0xca, 0x85, 0x00,
- 0xdb, 0x84, 0xb4, 0x8c, 0xc1, 0x43, 0xbe, 0x58, 0xf5, 0x5a, 0x13, 0x00,
- 0x0f, 0xe9, 0xb9, 0xb3, 0xa9, 0x57, 0x80, 0x53, 0x0c, 0x55, 0x4b, 0x44,
- 0x7b, 0xb0, 0xbe, 0x39, 0xa5, 0xb0, 0xfe, 0x03, 0x19, 0xcc, 0x3e, 0xa5,
- 0xe6, 0x14, 0x44, 0x41, 0xe9, 0x75, 0x8a, 0x8b, 0xc8, 0x26, 0x86, 0x5a,
- 0xa7, 0x7a, 0xbb, 0xec, 0x5b, 0xbb, 0xaa, 0x4b, 0xdd, 0x94, 0x41, 0x2e,
- 0x0f, 0x29, 0x7b, 0x14, 0x73, 0xc4, 0x6d, 0x61, 0xac, 0xac, 0x94, 0x53,
- 0xf2, 0x0a, 0x23, 0x12, 0x1a, 0xf6, 0x3e, 0x8b, 0xaf, 0x9e, 0xba, 0x92,
- 0x8f, 0x97, 0x0d, 0xc2, 0xd4, 0x8e, 0x19, 0x2d, 0x02, 0x4a, 0x97, 0x64,
- 0x31, 0x7c, 0xcd, 0xfa, 0x3f, 0x3f, 0x4d, 0xaf, 0x87, 0x65, 0x95, 0xd3,
- 0x8d, 0x03, 0xcc, 0x9d, 0xb6, 0x46, 0x5b, 0xbf, 0x0f, 0x79, 0x42, 0x36,
- 0x45, 0xac, 0x39, 0x89, 0xbc, 0x24, 0x4a, 0x73, 0xd6, 0x6e, 0x77, 0x8e,
- 0xcd, 0x8a, 0x00, 0x8c, 0x6d, 0xd3, 0x95, 0xf7, 0x8b, 0x45, 0x28, 0x25,
- 0xcb, 0x26, 0x71, 0xf5, 0xce, 0x14, 0x33, 0x60, 0x87, 0xec, 0xc6, 0x4a,
- 0xb1, 0xb1, 0xbb, 0xb4, 0x42, 0xbe, 0x68, 0xe0, 0xa1, 0xc8, 0xeb, 0x7a,
- 0x89, 0x05, 0x7b, 0x73, 0x72, 0x7a, 0x6c, 0x41, 0x41, 0xff, 0x6b, 0x67,
- 0x48, 0x13, 0x5e, 0x4d, 0x02, 0x08, 0x14, 0x27, 0x6a, 0x79, 0x59, 0x77,
- 0x92, 0xc9, 0xf5, 0x5d, 0x9f, 0x6b, 0x43, 0xe1, 0xc7, 0xad, 0x34, 0xae,
- 0xe3, 0x77, 0xdf, 0x9f, 0x5c, 0x9c, 0xbd, 0x7b, 0x7b, 0xfc, 0xce, 0x7a,
- 0x7b, 0xe9, 0x50, 0xc4, 0x78, 0x8f, 0xeb, 0x30, 0xe8, 0x9b, 0x53, 0xbc,
- 0xe0, 0x0e, 0x99, 0x36, 0xcc, 0x3e, 0x6e, 0xc6, 0x29, 0xff, 0x1a, 0xfa,
- 0xcd, 0x79, 0x0f, 0xa9, 0xc7, 0x97, 0xe2, 0xf0, 0x0b, 0xb2, 0xf7, 0xa7,
- 0x14, 0x7a, 0x1b, 0xb2, 0x8f, 0xd8, 0xd6, 0xd6, 0x23, 0xea, 0xe5, 0x4f,
- 0x93, 0x4c, 0x6a, 0x0b, 0x53, 0x82, 0xc6, 0x86, 0x9d, 0x12, 0x8e, 0x12,
- 0xb9, 0x60, 0x5a, 0xab, 0x13, 0x6e, 0x73, 0xbf, 0xe7, 0x44, 0xc2, 0x38,
- 0x87, 0x33, 0x03, 0xc0, 0x1b, 0x57, 0x9b, 0x97, 0xb3, 0x3d, 0xd5, 0x39,
- 0xaf, 0xb4, 0xeb, 0x1e, 0x84, 0xce, 0x65, 0xe1, 0xfa, 0x65, 0x00, 0xbb,
- 0x71, 0x3f, 0x6f, 0x14, 0x3f, 0xa9, 0x0b, 0xe1, 0x60, 0x67, 0xe7, 0x17,
- 0x54, 0xa0, 0xfc, 0x52, 0x4a, 0x50, 0x86, 0xd4, 0x6a, 0xb5, 0xd7, 0x11,
- 0x11, 0xb9, 0x5e, 0x0a, 0x0f, 0xed, 0x5b, 0x3b, 0x9d, 0x70, 0x0e, 0x7e,
- 0x38, 0xbf, 0x38, 0xfb, 0xf1, 0x2f, 0xbf, 0xf3, 0x27, 0x3c, 0xac, 0xce,
- 0x4f, 0x04, 0x61, 0xd3, 0xc6, 0x7f, 0xf9, 0x4d, 0x5f, 0x5b, 0xfb, 0xb9,
- 0x76, 0xfb, 0xfd, 0x76, 0xa1, 0xe4, 0x20, 0x41, 0x09, 0x19, 0x92, 0x5c,
- 0x17, 0x42, 0xf3, 0x25, 0x9d, 0xd5, 0x6b, 0x01, 0x34, 0x7c, 0xc3, 0xd5,
- 0x3e, 0x09, 0x04, 0xd4, 0xdd, 0x34, 0xa4, 0x93, 0x1c, 0x72, 0xda, 0x9e,
- 0x03, 0x40, 0x6a, 0xea, 0x26, 0xa5, 0x67, 0x72, 0x02, 0x27, 0x00, 0x7d,
- 0x76, 0x3e, 0x0e, 0x4f, 0x4f, 0x7f, 0xfb, 0x24, 0x68, 0x25, 0xd1, 0xf6,
- 0x34, 0xa0, 0x90, 0x9f, 0x1d, 0xd0, 0xc0, 0x6a, 0xa9, 0x7a, 0x04, 0xd6,
- 0x31, 0xdc, 0xbd, 0x3b, 0x93, 0xde, 0xbc, 0x84, 0x7a, 0x3c, 0xa8, 0x33,
- 0xa3, 0xd4, 0x52, 0xe1, 0x74, 0x4b, 0xd7, 0x49, 0x1d, 0xab, 0x77, 0x18,
- 0x77, 0x16, 0xb0, 0x87, 0xfa, 0x0f, 0x31, 0x28, 0x8d, 0xe7, 0x93, 0x73,
- 0x8a, 0x80, 0xfa, 0x2e, 0x2d, 0xf9, 0x07, 0x57, 0x14, 0x95, 0xd2, 0xb2,
- 0x57, 0x49, 0xa4, 0x64, 0x21, 0xa7, 0x60, 0xd3, 0x7d, 0x5b, 0xe5, 0xf5,
- 0x47, 0x60, 0xe2, 0xe9, 0x84, 0x42, 0xeb, 0xd5, 0x24, 0x59, 0x52, 0x7a,
- 0xd1, 0xa7, 0x21, 0xe7, 0xf1, 0xbb, 0x74, 0xa4, 0xbc, 0x8e, 0xf5, 0x0e,
- 0x95, 0x1f, 0xf8, 0x2a, 0x26, 0xe7, 0x1a, 0xbb, 0x26, 0xd3, 0x56, 0x6e,
- 0x8c, 0x50, 0x9e, 0x32, 0xae, 0xa5, 0xb6, 0xc9, 0xbc, 0xb1, 0xdc, 0xcf,
- 0xbe, 0xe6, 0xf4, 0xd9, 0x5a, 0xc0, 0x79, 0x53, 0x67, 0xb3, 0xab, 0x15,
- 0xfc, 0xdf, 0xbe, 0xc0, 0xf0, 0x1c, 0xc1, 0x92, 0x49, 0x6b, 0xeb, 0xaa,
- 0xba, 0x0d, 0x4e, 0x19, 0xef, 0x70, 0x38, 0x87, 0x5e, 0x1c, 0xdd, 0x89,
- 0x12, 0x89, 0xe6, 0x0d, 0x01, 0x11, 0x92, 0xd8, 0x6a, 0x18, 0x1e, 0x80,
- 0x80, 0x3b, 0x91, 0x36, 0x2c, 0xe9, 0x02, 0x08, 0x04, 0x2f, 0xfb, 0x2b,
- 0x56, 0x86, 0xfd, 0x7c, 0x79, 0x0b, 0x6f, 0x1a, 0x7c, 0x4a, 0x34, 0x53,
- 0x9f, 0x57, 0xcd, 0xcf, 0xd5, 0x0f, 0xa3, 0x72, 0xe6, 0xb1, 0x48, 0x63,
- 0x29, 0xfc, 0x22, 0x82, 0x38, 0x6f, 0x08, 0x1f, 0xd9, 0xe0, 0xce, 0xe5,
- 0x47, 0x41, 0x69, 0x11, 0xc2, 0xcc, 0xff, 0x98, 0xde, 0x91, 0x63, 0x96,
- 0x99, 0x1a, 0x1e, 0xd3, 0x41, 0xc7, 0x58, 0x93, 0xc5, 0x42, 0x33, 0x71,
- 0x70, 0x0f, 0x36, 0x1c, 0x22, 0x7e, 0xae, 0xaa, 0x6f, 0x37, 0x9b, 0xd7,
- 0xe5, 0xd6, 0x79, 0xf1, 0xd8, 0x93, 0x2e, 0x92, 0x52, 0xfc, 0xf2, 0x99,
- 0x70, 0x95, 0x09, 0x42, 0xdc, 0x02, 0xb7, 0xe5, 0x80, 0x25, 0x42, 0xa1,
- 0x4a, 0xad, 0x0a, 0x6d, 0x88, 0x84, 0x3e, 0x82, 0x9c, 0xe1, 0xc9, 0xac,
- 0xc4, 0xb5, 0x33, 0x26, 0xec, 0x71, 0x06, 0xc2, 0x7a, 0x3e, 0xf8, 0xe6,
- 0xbf, 0x97, 0x67, 0x47, 0x67, 0xa7, 0xe6, 0x2f, 0xc7, 0x6f, 0x4e, 0x7e,
- 0x74, 0xba, 0x01, 0xe7, 0x82, 0xbb, 0x04, 0x1f, 0x8e, 0xae, 0x6a, 0xc1,
- 0x5e, 0x5f, 0x28, 0x33, 0x40, 0x2c, 0x20, 0x1a, 0x61, 0x04, 0xd8, 0x86,
- 0x9b, 0x36, 0x95, 0x76, 0x52, 0x73, 0xb7, 0x55, 0x3f, 0x57, 0x58, 0x4e,
- 0x48, 0x97, 0xe6, 0x56, 0x2d, 0x20, 0xdd, 0x4d, 0xf5, 0x49, 0x4b, 0xd0,
- 0x41, 0xbf, 0xf2, 0xf5, 0x87, 0xb6, 0x88, 0xe4, 0x4e, 0x21, 0x52, 0x9f,
- 0x5f, 0x59, 0xa3, 0xca, 0xaf, 0x15, 0xaa, 0x89, 0x29, 0xc2, 0xcd, 0x4e,
- 0x41, 0x6b, 0x47, 0x96, 0x48, 0xba, 0x6e, 0xdf, 0x1b, 0xa4, 0xaa, 0xbd,
- 0x4d, 0x95, 0x41, 0x3c, 0x02, 0xfe, 0xd2, 0x4a, 0xa8, 0xef, 0xec, 0x0b,
- 0xda, 0x10, 0xae, 0xb9, 0xf6, 0x98, 0x64, 0x02, 0x04, 0x66, 0x85, 0xf0,
- 0x3b, 0xa9, 0xf3, 0x1e, 0x9b, 0x86, 0xec, 0xd9, 0x68, 0xce, 0x15, 0xe7,
- 0x7a, 0xd0, 0x1f, 0xae, 0x13, 0x2a, 0x58, 0x2f, 0xbd, 0x1a, 0xa5, 0x7c,
- 0x2f, 0x68, 0xc0, 0x82, 0x7c, 0x21, 0x81, 0x8a, 0xf9, 0x49, 0x55, 0xfe,
- 0xb6, 0xde, 0x51, 0xaf, 0xf9, 0x74, 0x38, 0x01, 0x01, 0x74, 0x95, 0x8b,
- 0xf4, 0xae, 0x6b, 0x83, 0xf4, 0xc2, 0xbf, 0x2d, 0xf3, 0xdb, 0x14, 0x09,
- 0x3a, 0x54, 0x59, 0x5a, 0x2a, 0xfb, 0x76, 0xda, 0x48, 0x7f, 0x53, 0x23,
- 0x69, 0xbb, 0x95, 0x67, 0xbf, 0xa5, 0x91, 0x67, 0x9d, 0x36, 0x6e, 0x7e,
- 0x53, 0x23, 0x03, 0xbd, 0x26, 0x8c, 0x7a, 0xfc, 0xe3, 0xc9, 0x65, 0x72,
- 0x74, 0xf6, 0xda, 0x1d, 0xb0, 0x4b, 0xa8, 0x2a, 0xd8, 0x02, 0xb4, 0xf7,
- 0xc6, 0xcb, 0x82, 0x76, 0x21, 0x49, 0x0f, 0xae, 0x0b, 0x48, 0x6d, 0x01,
- 0x1c, 0x0b, 0xb4, 0x46, 0xad, 0xb9, 0x3f, 0x79, 0xc5, 0xd4, 0x1f, 0x84,
- 0xc0, 0xf0, 0xc9, 0x14, 0xf9, 0xd1, 0x39, 0xb1, 0x8a, 0x5c, 0xeb, 0x3d,
- 0x4c, 0x67, 0x92, 0xa8, 0xa5, 0xd2, 0x4a, 0x33, 0xf3, 0xc6, 0x29, 0x31,
- 0x87, 0x14, 0x9c, 0x62, 0x46, 0xd8, 0xfe, 0xa6, 0x65, 0xaa, 0x3b, 0x22,
- 0x92, 0x80, 0xf3, 0xd3, 0xa8, 0xd1, 0x79, 0xa3, 0x5d, 0xf1, 0x51, 0x67,
- 0x7b, 0x8a, 0x9a, 0x6e, 0x6d, 0x77, 0xa9, 0xd5, 0x82, 0x7b, 0x90, 0xe0,
- 0xb1, 0x20, 0x1c, 0x82, 0x30, 0x21, 0xfd, 0xb8, 0x70, 0xe8, 0x67, 0x2e,
- 0xd7, 0x18, 0x5c, 0x51, 0xb6, 0x09, 0xfb, 0x9d, 0x7d, 0xfe, 0xe3, 0x8d,
- 0xd1, 0xd6, 0x19, 0x24, 0x23, 0x18, 0xa4, 0xfc, 0xef, 0x9e, 0xae, 0xfe,
- 0xc4, 0xaa, 0x66, 0x66, 0xf0, 0x33, 0x14, 0x42, 0x9c, 0xf2, 0xb1, 0xa8,
- 0xef, 0xcd, 0xfd, 0xfe, 0x09, 0xb6, 0x39, 0x19, 0x52, 0x42, 0x9f, 0xe2,
- 0xde, 0x7c, 0x2a, 0x0a, 0x9a, 0xa5, 0x69, 0x29, 0x2b, 0x6b, 0x9a, 0x3a,
- 0x48, 0x89, 0xef, 0xbe, 0xb0, 0xf9, 0xa6, 0x98, 0x40, 0x33, 0x2f, 0x54,
- 0x9c, 0x71, 0x23, 0x1a, 0xf2, 0xd7, 0xb7, 0xcd, 0x87, 0x13, 0xcd, 0x5f,
- 0xa5, 0x0f, 0x20, 0xe0, 0xe7, 0x2a, 0xef, 0x58, 0x8a, 0x0d, 0xf3, 0x3d,
- 0x4c, 0xda, 0x20, 0x5a, 0xa3, 0xe2, 0xd2, 0xcf, 0x68, 0x53, 0x23, 0x64,
- 0x5a, 0x62, 0x1a, 0xfb, 0x5c, 0xe5, 0x87, 0x0a, 0xc5, 0x9a, 0xdf, 0xdc,
- 0x6b, 0xbd, 0x9f, 0xb4, 0x40, 0xf2, 0x56, 0x17, 0x43, 0xaa, 0x0b, 0x23,
- 0x99, 0x2d, 0x2e, 0x8d, 0xe4, 0x19, 0xff, 0x71, 0xa4, 0x7a, 0x9c, 0xab,
- 0x5a, 0xaf, 0x2a, 0x1c, 0x6e, 0x3c, 0xb9, 0x75, 0x44, 0xe8, 0xf2, 0xad,
- 0x37, 0xc1, 0xd5, 0xc4, 0xf0, 0xec, 0x60, 0x36, 0xea, 0x8e, 0xef, 0xf3,
- 0x79, 0xe7, 0x3b, 0xfa, 0x19, 0x66, 0x53, 0xb9, 0xb4, 0xac, 0x2e, 0xdd,
- 0x48, 0x03, 0x35, 0x1f, 0xb6, 0xf6, 0x59, 0x77, 0x8b, 0xa8, 0xd7, 0x9f,
- 0x38, 0xf7, 0x4a, 0x3f, 0xfe, 0xf7, 0xb9, 0x78, 0x28, 0x32, 0xca, 0x04,
- 0x13, 0x7d, 0xba, 0xca, 0x16, 0x33, 0x91, 0xa1, 0xf2, 0x13, 0x04, 0x19,
- 0xe1, 0x65, 0xc0, 0x54, 0x4f, 0xb4, 0x97, 0x46, 0x49, 0xf6, 0x0d, 0xc4,
- 0x17, 0xf2, 0x59, 0x23, 0x87, 0x59, 0x9f, 0x30, 0x9b, 0xa1, 0xc8, 0xed,
- 0xc6, 0x93, 0x1a, 0xa2, 0xf8, 0x11, 0xa1, 0xe2, 0xcc, 0x5d, 0x55, 0xda,
- 0x7f, 0xeb, 0x1b, 0x21, 0xc9, 0x14, 0x5f, 0x67, 0xce, 0xc7, 0x8c, 0xf1,
- 0x2e, 0x2b, 0xce, 0x85, 0x74, 0xd4, 0x6a, 0x40, 0x1d, 0xa7, 0x45, 0xc3,
- 0x03, 0xae, 0x88, 0x0e, 0x6b, 0x98, 0xbc, 0x0d, 0xc1, 0x46, 0xe5, 0x55,
- 0x23, 0xe9, 0xcc, 0x84, 0x67, 0xe3, 0xd9, 0xb9, 0x49, 0x8b, 0xeb, 0x8c,
- 0x1d, 0x32, 0x1e, 0x33, 0x1c, 0x57, 0xa0, 0x91, 0xcb, 0xd1, 0x9c, 0x7a,
- 0x28, 0x35, 0x45, 0xa4, 0x77, 0x5d, 0x32, 0xe2, 0xbd, 0x5d, 0x3b, 0x0f,
- 0x18, 0xd6, 0xa2, 0x01, 0xe6, 0x9f, 0x26, 0xe2, 0x07, 0xb0, 0x81, 0xdd,
- 0xa5, 0x5c, 0x7f, 0x4e, 0x4b, 0xb4, 0x3a, 0x43, 0x46, 0x17, 0x8a, 0x12,
- 0x7d, 0x42, 0x80, 0x2d, 0xb0, 0x1e, 0x29, 0xbb, 0xda, 0x18, 0x20, 0xc8,
- 0x39, 0x63, 0x72, 0x7b, 0xf5, 0x61, 0x9c, 0x5b, 0x51, 0xc9, 0x21, 0x39,
- 0xe8, 0xdc, 0x94, 0x6e, 0xb0, 0xc2, 0x4f, 0x43, 0x94, 0x31, 0x5e, 0xe4,
- 0x9f, 0x12, 0x0b, 0x98, 0xa3, 0xd4, 0x1b, 0xcf, 0x9e, 0x1b, 0xcf, 0x1d,
- 0x76, 0xca, 0xf9, 0xe1, 0x68, 0xa4, 0xfb, 0xe4, 0x28, 0xdc, 0x12, 0x12,
- 0x58, 0x02, 0x7b, 0x85, 0xa4, 0x9e, 0x86, 0x0a, 0xa4, 0xb4, 0xd1, 0x09,
- 0x48, 0xef, 0xb1, 0x78, 0x7b, 0xcd, 0x62, 0x3a, 0x3e, 0xdc, 0xbb, 0xd6,
- 0x24, 0xb2, 0x67, 0xbb, 0x43, 0xad, 0x10, 0xaf, 0xfe, 0x8d, 0x69, 0xc5,
- 0x34, 0x23, 0xc7, 0x53, 0xb9, 0x9d, 0xc9, 0x41, 0x6c, 0xa4, 0x4f, 0xbb,
- 0xa6, 0xec, 0xde, 0x93, 0xc8, 0xa0, 0xbf, 0xe7, 0x51, 0xf5, 0xff, 0x91,
- 0x41, 0x7f, 0x1f, 0x19, 0xf4, 0x53, 0xfb, 0x2d, 0xfe, 0xd4, 0xfe, 0xfe,
- 0x67, 0x82, 0x80, 0x67, 0xcf, 0xdd, 0x2c, 0x71, 0x1f, 0x93, 0xaf, 0xf1,
- 0x88, 0xcd, 0x83, 0x03, 0x25, 0x2b, 0xcd, 0x02, 0x0b, 0xd7, 0x1e, 0x5e,
- 0xef, 0x53, 0xcf, 0xdc, 0xb0, 0x8c, 0x42, 0x4e, 0xed, 0x91, 0xae, 0xcf,
- 0x72, 0x26, 0x10, 0x3f, 0x6a, 0xe2, 0x11, 0x46, 0xe6, 0x8e, 0xd0, 0x36,
- 0x2b, 0xb0, 0x06, 0xda, 0x0d, 0xef, 0x3b, 0xcf, 0xad, 0x73, 0x65, 0x67,
- 0x9f, 0x37, 0x25, 0x95, 0x60, 0x91, 0xc2, 0xdd, 0xd8, 0x9a, 0xd3, 0xac,
- 0x31, 0x6b, 0xe2, 0xfc, 0x82, 0x9c, 0xc8, 0x74, 0x55, 0xa5, 0xa0, 0x39,
- 0x45, 0xb1, 0xf0, 0xe1, 0x0a, 0x2e, 0x5d, 0x36, 0x62, 0xcc, 0xf9, 0xbc,
- 0xce, 0x0a, 0xb2, 0x1d, 0xa0, 0x14, 0x88, 0x33, 0x8d, 0xbc, 0xb3, 0x28,
- 0xcd, 0x7e, 0x65, 0x1d, 0xb8, 0x5a, 0x2e, 0xbc, 0x1f, 0xcc, 0x10, 0x0f,
- 0xb1, 0xa5, 0x33, 0xc4, 0x69, 0x99, 0xf6, 0x3e, 0xb3, 0xf3, 0x66, 0x57,
- 0x82, 0xfc, 0x5d, 0x4c, 0xbc, 0x30, 0xf4, 0xaf, 0x08, 0x11, 0x27, 0x5e,
- 0x58, 0x48, 0x99, 0xfb, 0x83, 0x7d, 0x29, 0x6f, 0xbb, 0xaf, 0xb0, 0x3c,
- 0x3e, 0x27, 0x69, 0x27, 0x7c, 0x97, 0xc3, 0xe4, 0x0c, 0xde, 0xb9, 0x16,
- 0xc3, 0x2f, 0xe7, 0x6d, 0xa4, 0x2e, 0x17, 0xaf, 0xbd, 0x75, 0x5f, 0x78,
- 0x6b, 0xac, 0xdd, 0x52, 0xac, 0xc4, 0x8e, 0x08, 0x5a, 0xc7, 0x14, 0xa6,
- 0x3e, 0xe8, 0x2c, 0xb9, 0x38, 0xbe, 0xbc, 0x00, 0xd6, 0x8b, 0x44, 0x40,
- 0x50, 0x3e, 0x22, 0xad, 0xb6, 0x2d, 0x2f, 0xa4, 0xc8, 0x33, 0xa7, 0x94,
- 0x38, 0x11, 0xc1, 0xe4, 0x41, 0x76, 0xc5, 0xf9, 0x9f, 0xfa, 0x1e, 0xe7,
- 0x2a, 0x98, 0x35, 0xe7, 0x29, 0x77, 0x61, 0xd2, 0x36, 0xad, 0xd1, 0xfe,
- 0xbe, 0xc3, 0xac, 0xa0, 0x26, 0x20, 0xdf, 0x73, 0x82, 0x40, 0x1e, 0x0a,
- 0x14, 0x42, 0x41, 0xfb, 0x89, 0x65, 0xf2, 0x66, 0xcd, 0x82, 0x51, 0xbc,
- 0x21, 0x30, 0xd4, 0x7e, 0x5c, 0xd5, 0x00, 0xd5, 0x16, 0x3d, 0x54, 0x3b,
- 0x3e, 0xe9, 0xc9, 0x50, 0x4e, 0xad, 0x7a, 0xba, 0x1b, 0x21, 0x2d, 0x4f,
- 0xc7, 0x46, 0xac, 0x8a, 0x6a, 0x27, 0x39, 0x18, 0x78, 0x85, 0xbd, 0xa9,
- 0x50, 0x37, 0x6b, 0xb2, 0x3e, 0x06, 0x57, 0xe4, 0xde, 0xa4, 0x19, 0x0b,
- 0xcd, 0x8c, 0x7d, 0x96, 0x32, 0x3f, 0x20, 0x29, 0x44, 0xe6, 0xac, 0x2d,
- 0x5b, 0x38, 0x5f, 0x44, 0x6b, 0xce, 0xa5, 0x0a, 0xaa, 0x45, 0xaa, 0xa5,
- 0x78, 0xc5, 0x83, 0x9e, 0x05, 0x12, 0x7c, 0xff, 0x59, 0x64, 0x47, 0x24,
- 0xa3, 0xcb, 0xb3, 0x0b, 0x65, 0xd8, 0x0c, 0x6f, 0x68, 0x00, 0x4c, 0xe8,
- 0x09, 0xcb, 0x60, 0xd1, 0x0f, 0x99, 0x4c, 0xa6, 0x36, 0xed, 0xda, 0x52,
- 0x08, 0x7a, 0x5f, 0x65, 0x19, 0x80, 0x62, 0x35, 0x32, 0xb6, 0xef, 0x25,
- 0xcf, 0x5a, 0xe9, 0x32, 0xf5, 0x64, 0x7a, 0x2f, 0xf1, 0x41, 0x3b, 0xe3,
- 0x13, 0xcc, 0x69, 0xc1, 0x28, 0xde, 0xc4, 0x09, 0xc2, 0x44, 0xb7, 0x29,
- 0xe0, 0x49, 0x5b, 0x1f, 0xab, 0xbb, 0x17, 0xf9, 0x10, 0x9d, 0x39, 0x46,
- 0x54, 0x96, 0xf1, 0x32, 0x48, 0xe7, 0x42, 0x42, 0x99, 0x36, 0x24, 0x54,
- 0x30, 0x67, 0xa8, 0xec, 0x21, 0xe8, 0x0e, 0x81, 0x06, 0x6b, 0x8e, 0x4d,
- 0x59, 0x4d, 0x85, 0x96, 0x4b, 0x2e, 0x4f, 0x35, 0x1f, 0x9c, 0xda, 0xed,
- 0xdd, 0xfc, 0xe7, 0x67, 0x17, 0x97, 0x89, 0xbd, 0xf8, 0xf1, 0x6d, 0xfc,
- 0xa8, 0x73, 0x84, 0xa8, 0x66, 0x01, 0xbc, 0x79, 0x0e, 0xf1, 0x1f, 0xb8,
- 0x2a, 0xc5, 0x44, 0x68, 0xb4, 0x09, 0x6d, 0x83, 0xfc, 0x0f, 0x15, 0xb0,
- 0x7d, 0xc2, 0x7e, 0xe6, 0xc9, 0x1c, 0x49, 0xad, 0xa1, 0x0b, 0x27, 0x5e,
- 0xf3, 0xcc, 0x29, 0xb9, 0x4f, 0xf6, 0x22, 0xbb, 0x83, 0x6c, 0xeb, 0x8b,
- 0xe3, 0xd1, 0x25, 0xcf, 0x1a, 0xfd, 0x2d, 0xe8, 0x39, 0xa7, 0x73, 0xca,
- 0x0f, 0x03, 0xcb, 0xc5, 0xee, 0x0e, 0x8a, 0x59, 0x1a, 0xf3, 0x03, 0xed,
- 0xdb, 0xdc, 0x61, 0x6f, 0xce, 0x9e, 0x78, 0xf8, 0x34, 0x48, 0x4e, 0xd9,
- 0x2b, 0x38, 0xe4, 0xf8, 0x41, 0x4f, 0x3e, 0xd2, 0x33, 0xea, 0x19, 0x1f,
- 0x8a, 0x16, 0x03, 0xf2, 0x93, 0xa7, 0x9e, 0xb4, 0xa0, 0xdb, 0x4a, 0x1a,
- 0x38, 0xd1, 0x12, 0x73, 0xf4, 0xc3, 0x81, 0x6e, 0x17, 0x5c, 0x19, 0xbc,
- 0x31, 0xf8, 0x39, 0xd7, 0xce, 0x33, 0xcb, 0x11, 0xa0, 0x0a, 0x83, 0xd7,
- 0x15, 0xfa, 0xb1, 0xc2, 0x82, 0xa0, 0xbc, 0x75, 0xb6, 0xdd, 0x13, 0xde,
- 0xed, 0x5f, 0xa7, 0x53, 0x87, 0x73, 0xe3, 0xa1, 0x7b, 0x17, 0x2b, 0x69,
- 0x5c, 0x79, 0xb1, 0xcc, 0xa0, 0xa9, 0xa5, 0xd5, 0x8c, 0xd8, 0xd6, 0x8d,
- 0x1c, 0x61, 0x5f, 0x0b, 0xbd, 0x16, 0x48, 0xdd, 0xd2, 0xe7, 0xf6, 0x78,
- 0x22, 0xb7, 0xd0, 0xc9, 0xe9, 0xb1, 0x5b, 0x29, 0xa6, 0x6a, 0xc7, 0x29,
- 0x76, 0x1a, 0x3f, 0x95, 0x85, 0xb5, 0x57, 0xc5, 0x30, 0x39, 0xa7, 0x7a,
- 0x9f, 0xd0, 0x9e, 0xea, 0xff, 0x70, 0xad, 0xf1, 0x41, 0x81, 0x77, 0xde,
- 0x5c, 0x9e, 0x30, 0x55, 0xf2, 0xc2, 0x2c, 0x2c, 0x7e, 0x42, 0x7f, 0xf5,
- 0x68, 0x85, 0x83, 0xe1, 0xbe, 0x70, 0x2f, 0xd7, 0x66, 0x28, 0xc6, 0x68,
- 0xef, 0x3e, 0xf2, 0x54, 0xf6, 0x95, 0xb1, 0xe8, 0xd1, 0x04, 0x7d, 0x00,
- 0xb2, 0x99, 0xce, 0xb3, 0xd4, 0x6b, 0x98, 0x72, 0x0b, 0x57, 0xfa, 0x8c,
- 0x1a, 0x35, 0xfc, 0x9c, 0x6b, 0x8a, 0x2f, 0x84, 0xc3, 0xb1, 0xad, 0xe1,
- 0x41, 0xb0, 0x52, 0x52, 0xe7, 0x4c, 0x5b, 0x05, 0x49, 0xdb, 0x99, 0x45,
- 0x67, 0xdb, 0x10, 0x31, 0xc9, 0xcb, 0xb1, 0x1e, 0x1c, 0x1a, 0x49, 0x77,
- 0x72, 0x3b, 0xc5, 0x4b, 0x9f, 0xf2, 0x4e, 0xb4, 0xdb, 0xc6, 0xde, 0x61,
- 0xad, 0xde, 0x09, 0x9e, 0x55, 0xf8, 0xc4, 0xc8, 0x91, 0x40, 0xb1, 0x02,
- 0x73, 0xc5, 0xfb, 0x26, 0xc0, 0xd3, 0x67, 0xae, 0xa9, 0x2b, 0xca, 0xc2,
- 0xb3, 0x6d, 0x39, 0xf9, 0xe3, 0xea, 0x18, 0xe4, 0xf6, 0x31, 0xb1, 0x1a,
- 0xf9, 0x1e, 0x1b, 0x47, 0x88, 0xb5, 0xfc, 0x39, 0xe1, 0xcd, 0x70, 0x59,
- 0x92, 0x19, 0x5c, 0xdc, 0x3b, 0xb8, 0xf6, 0x90, 0x23, 0xce, 0xec, 0x4d,
- 0xe3, 0x5a, 0x11, 0xf2, 0x1b, 0xe1, 0xda, 0xbe, 0x11, 0x6f, 0x0d, 0x55,
- 0xcc, 0x0b, 0x28, 0x82, 0x97, 0x73, 0x41, 0x7d, 0x7a, 0x5f, 0xfa, 0x5c,
- 0x5c, 0x1b, 0x94, 0xd4, 0x5b, 0x58, 0x5e, 0x1b, 0x3b, 0x12, 0x33, 0xd1,
- 0x62, 0x39, 0x5b, 0x86, 0x18, 0xb3, 0x79, 0x00, 0x47, 0xac, 0x3d, 0xce,
- 0xde, 0x08, 0x2f, 0x1d, 0x2e, 0x63, 0x51, 0x7a, 0xd5, 0xcb, 0x50, 0x7a,
- 0xac, 0x42, 0x34, 0xe1, 0xf2, 0x1c, 0xff, 0x4a, 0xb9, 0x27, 0x42, 0x77,
- 0x79, 0x95, 0xfd, 0x15, 0xea, 0xe4, 0xd0, 0x56, 0x47, 0xd3, 0x78, 0x73,
- 0x5a, 0x2c, 0x53, 0xcf, 0xa6, 0x7f, 0xfa, 0x42, 0xfc, 0x56, 0xe2, 0x17,
- 0xd1, 0xca, 0xba, 0xdd, 0xd0, 0xe3, 0xb3, 0x3d, 0xeb, 0xc1, 0x24, 0x90,
- 0xa5, 0x64, 0x0e, 0xf8, 0x50, 0x4b, 0xe2, 0x1f, 0x1d, 0x7d, 0x9b, 0xbc,
- 0x7d, 0xfd, 0x8c, 0xc0, 0x3e, 0xd7, 0x59, 0xb5, 0x30, 0x56, 0x8b, 0x33,
- 0xcc, 0xcf, 0xbe, 0xf3, 0x1a, 0xdb, 0x77, 0xee, 0x50, 0xb9, 0x66, 0x73,
- 0x39, 0xbd, 0x64, 0x31, 0x98, 0xf5, 0xa3, 0x4c, 0xd5, 0x6b, 0x4d, 0x3a,
- 0x67, 0x9f, 0x18, 0xb2, 0xda, 0x85, 0x07, 0x88, 0xd5, 0x96, 0xae, 0x43,
- 0xbb, 0x2d, 0xc0, 0x9e, 0x3d, 0x71, 0x02, 0xac, 0xba, 0x5f, 0x50, 0x7d,
- 0x83, 0xe2, 0x9a, 0xac, 0x83, 0xc8, 0x89, 0x7a, 0xc6, 0x42, 0xf3, 0x88,
- 0xcf, 0x3d, 0xa9, 0xb2, 0xe1, 0x6b, 0x50, 0xd2, 0xe1, 0x45, 0xf5, 0xde,
- 0x7b, 0xe6, 0xfb, 0x16, 0x88, 0x9f, 0x12, 0x30, 0x2a, 0x66, 0xa5, 0x87,
- 0x9e, 0xe2, 0x3d, 0xfb, 0xdc, 0x3e, 0x4b, 0x9e, 0xa4, 0xbc, 0xf0, 0xaa,
- 0x88, 0xac, 0x78, 0x43, 0x14, 0x60, 0x35, 0x13, 0x34, 0xb5, 0x8f, 0xb5,
- 0x1e, 0x6f, 0xee, 0xbd, 0x57, 0x5e, 0xb4, 0x5d, 0x27, 0xa0, 0x17, 0xb7,
- 0x5b, 0x13, 0x83, 0x42, 0xf1, 0x3a, 0xcf, 0xd9, 0xc2, 0xb7, 0xf4, 0x39,
- 0x21, 0x67, 0x5b, 0xeb, 0xa9, 0x42, 0x30, 0xf3, 0xe9, 0x19, 0xf4, 0xac,
- 0xf3, 0xde, 0x3f, 0x3a, 0x5c, 0x95, 0x36, 0x82, 0xdd, 0xee, 0x7d, 0x64,
- 0x4f, 0xce, 0x0c, 0x95, 0x7c, 0xbc, 0x2e, 0xf2, 0xbf, 0x6b, 0xc2, 0x39,
- 0xdd, 0xce, 0x5a, 0x01, 0xc6, 0x7b, 0x7c, 0x5f, 0x04, 0x06, 0xd7, 0xfa,
- 0x83, 0x50, 0xa4, 0xc0, 0xaa, 0x7b, 0xe0, 0x89, 0xec, 0x5a, 0x2e, 0x72,
- 0x09, 0x0b, 0x00, 0x65, 0x6a, 0x29, 0xac, 0x9f, 0xb5, 0x80, 0xd8, 0xcf,
- 0x9f, 0x8a, 0xde, 0xa5, 0x0a, 0x32, 0xdd, 0xbc, 0x34, 0x11, 0x33, 0xb0,
- 0xdd, 0x75, 0xc5, 0xf4, 0x73, 0xb9, 0xf6, 0x64, 0x29, 0x6d, 0x15, 0x18,
- 0x5b, 0x51, 0x87, 0xfe, 0x7a, 0x97, 0x17, 0x02, 0x8d, 0x0e, 0x5e, 0x7f,
- 0xbe, 0xc2, 0x1f, 0x59, 0xf3, 0x9d, 0x79, 0x8c, 0xbd, 0xe4, 0x3d, 0xff,
- 0x99, 0xcb, 0x78, 0x75, 0xbc, 0x89, 0xca, 0x11, 0xd7, 0xf7, 0x3c, 0x10,
- 0xf6, 0x20, 0x89, 0x17, 0x85, 0x8f, 0xc0, 0x34, 0x5a, 0x92, 0xe3, 0xca,
- 0x7e, 0x7e, 0x56, 0x5e, 0x27, 0x3e, 0xdd, 0xc5, 0x73, 0xde, 0x52, 0x6f,
- 0x40, 0x17, 0xaf, 0xe7, 0x00, 0x95, 0x13, 0xbd, 0x1c, 0x4b, 0xf7, 0xf4,
- 0x0b, 0xd9, 0x1b, 0x7a, 0x5f, 0x5a, 0x93, 0x75, 0xd5, 0x1b, 0x9f, 0xed,
- 0xfa, 0x0a, 0xeb, 0x94, 0x22, 0xb6, 0x9c, 0x78, 0xbd, 0xf2, 0x05, 0xde,
- 0x19, 0x27, 0x33, 0x2a, 0x79, 0x3c, 0xd3, 0x42, 0xca, 0xca, 0x12, 0xe7,
- 0x1e, 0xdb, 0x6f, 0x09, 0xdd, 0x4b, 0x5f, 0x7d, 0x4a, 0x4e, 0x5e, 0x7b,
- 0x0f, 0x3e, 0x71, 0x03, 0x4c, 0x67, 0xa4, 0x0d, 0xdc, 0xb3, 0xbb, 0xaa,
- 0x96, 0x12, 0xce, 0xde, 0xa3, 0xbc, 0x33, 0xde, 0x95, 0xcc, 0x67, 0x84,
- 0xf9, 0x0f, 0x9e, 0xe1, 0xed, 0x70, 0x74, 0x63, 0x6e, 0xb5, 0x49, 0x03,
- 0xc4, 0x68, 0xa1, 0x71, 0xaf, 0xee, 0xda, 0x7f, 0xf6, 0x7c, 0xcd, 0xb3,
- 0x72, 0x69, 0xd6, 0xf6, 0xaa, 0xf7, 0xde, 0xfb, 0x2c, 0x3c, 0xe6, 0x6a,
- 0x12, 0x28, 0xb0, 0x5d, 0x4e, 0x5a, 0xb2, 0x45, 0xb9, 0xb5, 0xff, 0xa1,
- 0xfe, 0xc1, 0x8a, 0xa8, 0xda, 0xea, 0xff, 0xf0, 0xfb, 0xfb, 0xb9, 0x8f,
- 0x8e, 0x67, 0xcf, 0x60, 0x95, 0x21, 0x70, 0x30, 0x69, 0xf1, 0xb5, 0x3b,
- 0xf4, 0x10, 0x66, 0xc7, 0x6b, 0x81, 0xd7, 0xdc, 0xe8, 0x11, 0xcb, 0xc2,
- 0x49, 0x0e, 0x36, 0x02, 0x25, 0x99, 0x7d, 0xea, 0x53, 0xfa, 0x91, 0xcc,
- 0x17, 0x5f, 0x94, 0xe7, 0x49, 0xdd, 0xed, 0x1c, 0x83, 0xfa, 0x66, 0xc9,
- 0x56, 0xb7, 0x1d, 0x91, 0x73, 0xb3, 0x79, 0xaf, 0xed, 0x3b, 0xe9, 0x25,
- 0xd7, 0x3e, 0xa7, 0x28, 0x1c, 0x51, 0x36, 0x0d, 0x9b, 0xe6, 0x96, 0xc4,
- 0x1b, 0xae, 0xf2, 0xaa, 0x64, 0xcf, 0x21, 0xd1, 0x23, 0x6c, 0xa5, 0x71,
- 0xe0, 0xa6, 0x60, 0xcd, 0xbd, 0xcf, 0x88, 0x6a, 0x43, 0xf0, 0x27, 0xb3,
- 0x4a, 0x37, 0xd9, 0xe4, 0xa3, 0x1e, 0x19, 0xdb, 0x46, 0xe4, 0xad, 0xa7,
- 0x76, 0x6a, 0x69, 0xf7, 0x9d, 0x5f, 0x1c, 0x77, 0x8d, 0x00, 0xf7, 0x28,
- 0xef, 0x9a, 0x8b, 0xcb, 0xd1, 0xf9, 0x01, 0xf5, 0x97, 0x83, 0x89, 0xe6,
- 0x40, 0x1c, 0x8d, 0xb2, 0xbf, 0x49, 0x66, 0x52, 0xed, 0x9e, 0x7e, 0xbe,
- 0xe2, 0xe9, 0x91, 0xb8, 0xf8, 0x4e, 0xa6, 0x24, 0x7d, 0xcd, 0x3a, 0xf8,
- 0x2f, 0x7d, 0x26, 0x78, 0x4f, 0x75, 0xf5, 0xb3, 0x23, 0x8c, 0x7a, 0x06,
- 0x69, 0x48, 0x61, 0x67, 0xf7, 0xf0, 0xe7, 0xce, 0x5f, 0x73, 0xb3, 0x2c,
- 0x3e, 0x5a, 0x7d, 0x51, 0x28, 0xca, 0x74, 0x81, 0xdd, 0x0b, 0x2f, 0xf4,
- 0x68, 0x78, 0xde, 0x50, 0x8b, 0x89, 0xea, 0x8b, 0x97, 0x42, 0x8b, 0x36,
- 0x73, 0x14, 0xd4, 0xc8, 0xd7, 0xa5, 0x37, 0x07, 0x2f, 0x76, 0xed, 0xf5,
- 0x2b, 0x64, 0x27, 0x1f, 0xb3, 0x7b, 0xb7, 0xeb, 0x14, 0x7f, 0xb1, 0xc8,
- 0x0b, 0x72, 0x42, 0xb8, 0x47, 0x5c, 0x03, 0x7b, 0xad, 0x4b, 0xa0, 0xab,
- 0x6e, 0xd4, 0x4d, 0xda, 0x2c, 0xbd, 0x2b, 0xe6, 0x05, 0xef, 0x9d, 0x11,
- 0xc5, 0x22, 0xe7, 0xb2, 0x5f, 0xf3, 0x42, 0x7d, 0x6e, 0x1d, 0x47, 0x9a,
- 0xbe, 0xf4, 0xe3, 0x8f, 0x7c, 0x8f, 0x58, 0x1e, 0x2e, 0x89, 0x65, 0xd9,
- 0xfa, 0x2b, 0x46, 0xee, 0x32, 0x37, 0x2b, 0x1d, 0x61, 0x44, 0x80, 0xaa,
- 0x8c, 0x4a, 0xc4, 0x29, 0x5f, 0x09, 0x0e, 0x4f, 0xac, 0x1e, 0x1c, 0x15,
- 0xf2, 0x46, 0x18, 0x8f, 0x80, 0x9d, 0xf0, 0x7f, 0x16, 0xe4, 0x7f, 0x13,
- 0x7f, 0x98, 0xe9, 0xc1, 0xe1, 0xfb, 0xcb, 0x6f, 0xcf, 0x2e, 0x46, 0xc9,
- 0x0e, 0xa5, 0x43, 0x5f, 0x5e, 0x9c, 0x7c, 0xfd, 0xfe, 0xd2, 0xfc, 0x53,
- 0x5b, 0x7a, 0x9d, 0x16, 0xb9, 0xb9, 0x9d, 0xcc, 0x70, 0xb2, 0xc2, 0x6c,
- 0x96, 0x6b, 0xad, 0x93, 0xc2, 0xac, 0xb0, 0xe6, 0x3e, 0x2e, 0x2b, 0xae,
- 0x95, 0x05, 0x3a, 0x8a, 0x9b, 0x72, 0xe6, 0xd5, 0xd2, 0x25, 0x3f, 0x36,
- 0xa1, 0xff, 0x4a, 0x67, 0x3b, 0xe7, 0x9d, 0x6c, 0x6e, 0x85, 0xf4, 0x24,
- 0x97, 0xdf, 0x1e, 0xbe, 0xfb, 0x6e, 0xa4, 0x14, 0xfa, 0x3f, 0xfc, 0xf0,
- 0x43, 0x37, 0xe4, 0xeb, 0x57, 0xc0, 0xdd, 0xd8, 0x18, 0x1d, 0x1f, 0x27,
- 0x87, 0xa7, 0xa3, 0xb3, 0x0d, 0x47, 0x02, 0xb0, 0xb5, 0x47, 0xe4, 0x40,
- 0xd7, 0x59, 0x63, 0xfe, 0xb2, 0xb1, 0x71, 0x7a, 0x78, 0x49, 0xc6, 0xb1,
- 0x94, 0xa3, 0xa6, 0x79, 0x26, 0x42, 0x8f, 0x74, 0x76, 0x47, 0xfc, 0x85,
- 0x57, 0x39, 0x50, 0xf6, 0x44, 0xde, 0x07, 0x1c, 0x72, 0x97, 0xd4, 0xd3,
- 0x5c, 0x70, 0x77, 0x44, 0xb3, 0x22, 0x58, 0x39, 0x02, 0x01, 0x9b, 0x21,
- 0x29, 0xc0, 0x61, 0x23, 0x71, 0x1e, 0x32, 0xe6, 0xde, 0xcf, 0xc6, 0x5c,
- 0x8d, 0xbc, 0xcf, 0x90, 0x57, 0x84, 0xc8, 0x3c, 0xe2, 0x8b, 0x15, 0x43,
- 0x38, 0x21, 0x3e, 0xda, 0xe4, 0xfd, 0xe8, 0xf0, 0x9b, 0x63, 0x7a, 0xf6,
- 0x9b, 0xac, 0x71, 0x33, 0x0b, 0xf7, 0x1a, 0xbe, 0xf2, 0x2e, 0x6b, 0xea,
- 0x49, 0xba, 0xc8, 0x36, 0xa9, 0x4f, 0xe3, 0x81, 0x54, 0x7f, 0x70, 0x8d,
- 0xb3, 0xe9, 0xe0, 0x8a, 0x56, 0x14, 0xf2, 0x3c, 0xca, 0x4b, 0xf8, 0xed,
- 0x5e, 0x1c, 0x1f, 0xbe, 0x7e, 0x7b, 0xac, 0x05, 0xed, 0xf9, 0x9a, 0x37,
- 0x8d, 0xde, 0x94, 0xf3, 0xcc, 0x8b, 0xaf, 0x90, 0x2a, 0xb1, 0x34, 0x6d,
- 0x98, 0xdf, 0x98, 0x39, 0x5d, 0xf1, 0x39, 0x57, 0xcb, 0x02, 0xcf, 0x0e,
- 0xaf, 0xf2, 0x1d, 0x6e, 0x5d, 0xbf, 0x97, 0xda, 0x39, 0x11, 0x86, 0x1b,
- 0x55, 0xaf, 0xd9, 0xff, 0x01, 0xbf, 0xc9, 0xe7, 0xbb, 0xbb, 0xbb, 0x6b,
- 0xc6, 0x01, 0xeb, 0x43, 0x2e, 0x69, 0x33, 0x94, 0x03, 0x7a, 0x7c, 0xc7,
- 0xb5, 0xef, 0x7a, 0x4c, 0xdb, 0x0d, 0xeb, 0x76, 0x45, 0xe6, 0x3b, 0xae,
- 0xf6, 0xbc, 0xc9, 0xe2, 0x5d, 0x9e, 0x94, 0xa5, 0x2b, 0xa3, 0xec, 0x4f,
- 0x0e, 0x6a, 0x8d, 0xe7, 0x8d, 0x52, 0xfd, 0xe1, 0x0d, 0xee, 0xb8, 0x31,
- 0x98, 0x40, 0x6f, 0x56, 0xdd, 0x77, 0x9b, 0xa4, 0xdf, 0x00, 0x58, 0x34,
- 0x69, 0x86, 0x65, 0x75, 0xbd, 0x33, 0x3f, 0x80, 0x06, 0x64, 0x1e, 0x7a,
- 0x43, 0xf0, 0xea, 0xc4, 0x68, 0xd2, 0x96, 0xb9, 0xa4, 0xa6, 0x89, 0x2d,
- 0xcd, 0xd5, 0xf7, 0x88, 0x7e, 0xfd, 0x8a, 0x59, 0x60, 0xd6, 0xa9, 0x2b,
- 0x1d, 0xb9, 0x56, 0xe0, 0x8c, 0x7c, 0x84, 0xf6, 0x1f, 0xbc, 0x93, 0x43,
- 0x23, 0x0b, 0xcc, 0x57, 0x88, 0xff, 0x0c, 0x5b, 0xc4, 0xfc, 0xb5, 0x22,
- 0xc8, 0x4d, 0xf3, 0x09, 0x62, 0x5a, 0x4a, 0xde, 0x72, 0xaa, 0x2a, 0xe1,
- 0x3f, 0x16, 0x46, 0xd3, 0x32, 0x06, 0x54, 0xca, 0xec, 0x17, 0x23, 0xaa,
- 0xbe, 0x41, 0x42, 0xe4, 0x5a, 0x26, 0x0e, 0x38, 0x52, 0x6a, 0xb8, 0xfb,
- 0xcd, 0xc1, 0x00, 0xfb, 0xa7, 0xb6, 0xbb, 0xe5, 0x11, 0x1f, 0xf7, 0x06,
- 0xc5, 0xb3, 0x5f, 0xc8, 0xad, 0xee, 0xed, 0x9d, 0x91, 0xe9, 0x45, 0xf0,
- 0xad, 0xa5, 0x2b, 0xda, 0x5b, 0xf3, 0xe7, 0xfc, 0x22, 0x2b, 0x66, 0x35,
- 0x76, 0x00, 0x31, 0x7e, 0xf4, 0x37, 0x8e, 0xce, 0xe5, 0x6f, 0x84, 0xc5,
- 0xcc, 0x6f, 0x69, 0xf0, 0x74, 0x23, 0x24, 0xc9, 0x16, 0x5d, 0x19, 0xaa,
- 0x15, 0x03, 0xda, 0x09, 0xeb, 0x16, 0x15, 0x94, 0x7c, 0xeb, 0x64, 0x4d,
- 0x0f, 0x0f, 0xcc, 0xd4, 0xd0, 0x0d, 0xf4, 0xbf, 0x76, 0x86, 0x75, 0x7d,
- 0xb3, 0x93, 0x4f, 0x3f, 0x54, 0x75, 0x9a, 0xfc, 0xbc, 0xd1, 0xc9, 0xe4,
- 0xed, 0x0e, 0xe2, 0x7f, 0x61, 0x06, 0x7f, 0xd5, 0x4c, 0xad, 0x1e, 0xc5,
- 0x1f, 0x31, 0x82, 0xc1, 0x80, 0x5a, 0xd5, 0x2f, 0x7d, 0x30, 0x0f, 0x7c,
- 0xb0, 0x14, 0xd3, 0xbf, 0x61, 0x74, 0x11, 0x51, 0x68, 0x06, 0xc9, 0xcc,
- 0xa3, 0x46, 0xb6, 0xc4, 0x37, 0xba, 0x16, 0x4e, 0xf9, 0x69, 0x7f, 0x77,
- 0x77, 0xef, 0x60, 0xef, 0xf3, 0x17, 0xbb, 0x07, 0x7b, 0x7b, 0x7b, 0xfb,
- 0x07, 0x7b, 0x07, 0x07, 0xfb, 0xbb, 0xbf, 0xec, 0xf4, 0x56, 0x4d, 0xdd,
- 0xdb, 0xaf, 0x57, 0x34, 0x68, 0x46, 0xdd, 0x63, 0x34, 0xe6, 0xcf, 0x76,
- 0xf4, 0x18, 0xd5, 0xb4, 0x97, 0xd4, 0xf3, 0x31, 0x21, 0xf7, 0xf8, 0x70,
- 0xfa, 0x83, 0xa9, 0x8d, 0xe2, 0x9d, 0x79, 0x03, 0x7a, 0x7d, 0xf6, 0xc3,
- 0xbb, 0xd3, 0xb3, 0xc3, 0xd7, 0xc9, 0xe5, 0x59, 0x72, 0x08, 0x37, 0x61,
- 0x44, 0x4e, 0x82, 0x9a, 0x94, 0x10, 0xf9, 0x5c, 0x52, 0xc6, 0x2b, 0xad,
- 0x26, 0x3e, 0x2d, 0x0b, 0x9d, 0x45, 0x27, 0xba, 0xfd, 0x2c, 0x61, 0x06,
- 0x52, 0x4b, 0xa8, 0x06, 0xff, 0xe0, 0x8d, 0xf0, 0x98, 0x2f, 0xf7, 0x19,
- 0xc8, 0xe1, 0x2c, 0x7d, 0x74, 0x47, 0x4f, 0x3e, 0x90, 0x43, 0x89, 0xc6,
- 0xbe, 0x04, 0x02, 0xa1, 0xf2, 0x2e, 0xd9, 0x62, 0x80, 0x97, 0x2b, 0x07,
- 0xc6, 0x95, 0xe6, 0x3a, 0xa8, 0x38, 0x5b, 0xb3, 0x49, 0x30, 0x36, 0x50,
- 0x77, 0x48, 0x87, 0xdd, 0x0e, 0x06, 0x78, 0xb6, 0x72, 0x48, 0xe6, 0x32,
- 0xcf, 0x3e, 0x61, 0xd4, 0x6d, 0xd9, 0xcb, 0xbc, 0x97, 0x6e, 0x74, 0x60,
- 0xf7, 0x52, 0xdf, 0x45, 0x5e, 0x69, 0x97, 0x81, 0x83, 0x8c, 0x7c, 0x8e,
- 0xbe, 0xa3, 0x22, 0xd9, 0x7d, 0x82, 0x7e, 0xe3, 0xdf, 0xe3, 0x3b, 0x36,
- 0xdb, 0x99, 0x3b, 0xf0, 0x7e, 0x74, 0xf2, 0xee, 0x1b, 0x44, 0xd1, 0x7f,
- 0x38, 0xbb, 0x78, 0x3d, 0x32, 0xcd, 0x1a, 0x79, 0x85, 0xc6, 0x2f, 0x4b,
- 0x92, 0x84, 0xd2, 0x2b, 0x3e, 0x97, 0xf4, 0xe9, 0x7f, 0xe7, 0xed, 0xd4,
- 0xf7, 0xab, 0x1a, 0xcc, 0x7d, 0xfb, 0x88, 0xca, 0x59, 0xc5, 0x6f, 0x0d,
- 0x6f, 0x37, 0x7e, 0x35, 0x4f, 0x27, 0x37, 0x64, 0xd0, 0xf3, 0x66, 0x05,
- 0x54, 0x7b, 0x87, 0x72, 0x89, 0x76, 0xc8, 0x4e, 0xdb, 0x69, 0x4a, 0x6c,
- 0x47, 0xb4, 0x52, 0x56, 0x3e, 0x0f, 0xbf, 0xe7, 0xcd, 0x31, 0x7b, 0xfd,
- 0x6a, 0x96, 0x5e, 0xe3, 0x83, 0xe1, 0x31, 0xf0, 0x3e, 0x26, 0x9f, 0x7f,
- 0xec, 0x27, 0xe9, 0xda, 0x40, 0x7b, 0x27, 0xd8, 0x00, 0xc8, 0xff, 0x42,
- 0x8d, 0x2e, 0x09, 0x52, 0xb1, 0xfe, 0x88, 0x82, 0x81, 0x84, 0x08, 0x23,
- 0x28, 0x6a, 0xb7, 0xd8, 0x12, 0x4a, 0xe2, 0x32, 0xcb, 0xbb, 0x51, 0xbf,
- 0x1d, 0x8a, 0x5c, 0xaa, 0x95, 0xa0, 0x25, 0x4f, 0x27, 0xaf, 0x1d, 0xac,
- 0xdd, 0xd5, 0x9e, 0xe6, 0x29, 0xa7, 0xce, 0x10, 0xca, 0x93, 0xd3, 0x32,
- 0x04, 0x64, 0x48, 0xa3, 0xef, 0x51, 0xf1, 0x04, 0x42, 0x3a, 0xf5, 0x70,
- 0xc5, 0xc1, 0xc9, 0xa6, 0xa4, 0x74, 0x2e, 0xba, 0x6e, 0x94, 0xfd, 0x62,
- 0x9a, 0x52, 0x19, 0x0e, 0x86, 0x3b, 0x08, 0xcf, 0x8b, 0xb1, 0xbe, 0x38,
- 0xe1, 0xa5, 0xa7, 0x78, 0x29, 0x6e, 0x25, 0xaf, 0x99, 0x2d, 0xc7, 0x96,
- 0x37, 0xa3, 0xcb, 0x8b, 0xbe, 0xce, 0x7e, 0x52, 0xae, 0xbf, 0xa2, 0xf7,
- 0xa4, 0xf3, 0x74, 0xd2, 0x1d, 0x67, 0xf4, 0x71, 0x23, 0xc0, 0x79, 0xe7,
- 0x68, 0x7c, 0xdd, 0x95, 0xa9, 0x6d, 0x4d, 0x9b, 0xd2, 0x32, 0x73, 0x73,
- 0x24, 0x99, 0x9d, 0xd3, 0xd6, 0xce, 0xe0, 0x06, 0x60, 0x6b, 0xf6, 0x16,
- 0xb0, 0xf8, 0x7c, 0x57, 0x70, 0x2f, 0x75, 0x35, 0x49, 0xbc, 0x69, 0x63,
- 0x94, 0xa9, 0x7b, 0xcf, 0xac, 0x11, 0x35, 0xc5, 0xc8, 0x72, 0x32, 0xb7,
- 0xec, 0x15, 0xc2, 0x35, 0xbc, 0x5d, 0x71, 0x16, 0xe1, 0x9f, 0x5f, 0x16,
- 0xc6, 0x52, 0x49, 0x05, 0x01, 0xc4, 0xb2, 0xe4, 0x1a, 0x62, 0x9d, 0x9f,
- 0xc3, 0x96, 0x6c, 0xc9, 0x10, 0x0e, 0xa0, 0x7e, 0xc1, 0x20, 0x3f, 0xdb,
- 0x5c, 0x4b, 0x74, 0x78, 0x59, 0x2a, 0x7c, 0xeb, 0xe8, 0xdc, 0xd1, 0x6c,
- 0xdd, 0x2f, 0x08, 0xb6, 0x4c, 0x78, 0x10, 0xaf, 0x84, 0xa5, 0xf2, 0x3a,
- 0x83, 0x60, 0x3d, 0xfb, 0x44, 0x2c, 0xc7, 0x32, 0x36, 0x67, 0x13, 0x5a,
- 0xad, 0x5e, 0xc6, 0x4b, 0xad, 0xe1, 0xe7, 0x90, 0x85, 0x34, 0xdb, 0x44,
- 0x80, 0x46, 0x36, 0x97, 0x64, 0x72, 0xb0, 0x1a, 0xa8, 0x96, 0xa4, 0xad,
- 0x9b, 0x4a, 0x1a, 0x93, 0xb9, 0x85, 0x99, 0x80, 0xdc, 0x16, 0x39, 0x47,
- 0x9c, 0x36, 0x65, 0x7b, 0x13, 0x4a, 0xb0, 0xf7, 0x61, 0xe4, 0x8c, 0xd1,
- 0xb9, 0x68, 0x61, 0x94, 0x5b, 0xa3, 0x5c, 0x8e, 0xdd, 0xc2, 0xd2, 0x1e,
- 0x01, 0xba, 0x97, 0x9a, 0x3c, 0x0a, 0x2b, 0xfb, 0x69, 0x8d, 0x0b, 0x6f,
- 0xf6, 0x04, 0x89, 0x6b, 0x04, 0x0a, 0x72, 0xe6, 0x96, 0xb5, 0xdd, 0x39,
- 0x66, 0xb6, 0x3e, 0xca, 0x85, 0xb8, 0x81, 0xbc, 0x84, 0x50, 0xdc, 0x88,
- 0xe4, 0x5d, 0x2d, 0x6f, 0x1e, 0x16, 0x35, 0x61, 0x97, 0xd4, 0xf4, 0x9b,
- 0xdd, 0xb3, 0x34, 0xc8, 0x8b, 0xf5, 0x42, 0x47, 0x3a, 0xf1, 0xa8, 0x0f,
- 0x63, 0xac, 0xa0, 0x3a, 0xaf, 0x39, 0x0a, 0xe3, 0x40, 0xab, 0x8c, 0xfa,
- 0x00, 0x41, 0x48, 0x87, 0xed, 0x17, 0x68, 0x15, 0x3f, 0xd7, 0x06, 0x07,
- 0x9e, 0xc1, 0x2a, 0x07, 0xc9, 0xd7, 0x69, 0x9d, 0x4f, 0xfa, 0x52, 0x8c,
- 0x43, 0x8a, 0x73, 0xd0, 0x1b, 0xb6, 0x60, 0x47, 0xb2, 0xc5, 0x3c, 0xcf,
- 0xdb, 0xc3, 0xe4, 0x07, 0xad, 0xae, 0x62, 0x8c, 0x48, 0x2e, 0x1a, 0x91,
- 0x4f, 0x50, 0x48, 0x47, 0x20, 0x27, 0x7c, 0xf6, 0x64, 0x7f, 0x8a, 0x2f,
- 0x1f, 0xec, 0xec, 0xf8, 0x88, 0xe3, 0x9e, 0xc4, 0xaa, 0xa6, 0xf5, 0x47,
- 0x1b, 0x38, 0xc3, 0x5a, 0x89, 0x28, 0x42, 0xb6, 0x26, 0xeb, 0xd2, 0x6c,
- 0xe4, 0x0b, 0xbc, 0x06, 0x61, 0xb5, 0x42, 0x41, 0xb6, 0x1e, 0x90, 0x8d,
- 0xdd, 0xb5, 0xb5, 0xc5, 0xb7, 0xd9, 0x8a, 0x74, 0xd8, 0x99, 0x56, 0x44,
- 0x0d, 0x06, 0x66, 0xc2, 0x68, 0x6a, 0x44, 0x80, 0x9e, 0x5d, 0x1e, 0xff,
- 0x4b, 0x72, 0xd8, 0x8d, 0xb3, 0xd3, 0xcd, 0xa4, 0x62, 0x58, 0xca, 0x17,
- 0xdb, 0x0d, 0x86, 0xbe, 0x33, 0x8c, 0x95, 0xd9, 0x58, 0x53, 0x2c, 0xff,
- 0x86, 0x64, 0x66, 0x3b, 0xa7, 0x72, 0x5d, 0x4a, 0x46, 0x0e, 0xca, 0x3b,
- 0xda, 0x3a, 0x80, 0x88, 0x40, 0xdc, 0xb9, 0xea, 0x37, 0x5c, 0x4c, 0x20,
- 0x4f, 0x39, 0x33, 0xea, 0x93, 0x39, 0xd8, 0xa8, 0xbd, 0x08, 0x01, 0x8a,
- 0x3c, 0x08, 0x29, 0x6e, 0x49, 0x28, 0x75, 0x20, 0xcf, 0x1b, 0x29, 0x06,
- 0x20, 0x85, 0xd8, 0xbc, 0x42, 0x3a, 0xb6, 0x05, 0xda, 0xfd, 0x1f, 0xe8,
- 0xc8, 0x7d, 0xd0, 0x8b, 0x45, 0xae, 0x40, 0xee, 0xcb, 0x15, 0xdb, 0x41,
- 0xed, 0x2d, 0xab, 0xc7, 0x8e, 0x6f, 0xb3, 0x73, 0x05, 0xb1, 0x62, 0x21,
- 0xe8, 0x0a, 0x00, 0xc4, 0x04, 0x01, 0x76, 0xdc, 0xa9, 0x2a, 0x35, 0xfd,
- 0x8b, 0x09, 0x74, 0xa7, 0x74, 0x47, 0x70, 0xf1, 0x6e, 0x21, 0x3b, 0xe5,
- 0x6c, 0x07, 0xd3, 0x6a, 0x3b, 0xd5, 0x0b, 0x04, 0xc9, 0x98, 0x55, 0xea,
- 0xc5, 0xe8, 0xec, 0xe8, 0xbb, 0x51, 0x2b, 0xd5, 0xcc, 0xb4, 0x86, 0x0f,
- 0x69, 0xc9, 0xaa, 0xce, 0x86, 0x36, 0xd2, 0xf0, 0xa4, 0xe9, 0x88, 0x27,
- 0x4b, 0x23, 0xea, 0xe1, 0x9b, 0xdf, 0x28, 0x42, 0x5f, 0x9b, 0xa5, 0xca,
- 0x2e, 0x93, 0xcc, 0x63, 0x41, 0x2e, 0xca, 0x0d, 0xef, 0xe6, 0xe3, 0xfd,
- 0x53, 0xd6, 0x2a, 0x13, 0x99, 0x25, 0x97, 0xeb, 0x69, 0x8c, 0x33, 0x26,
- 0xb9, 0x22, 0x06, 0x4b, 0xac, 0x22, 0xf5, 0x0f, 0x27, 0x90, 0x77, 0xe6,
- 0x1c, 0x9b, 0x7b, 0xc3, 0xed, 0x6e, 0xba, 0x83, 0x56, 0x8d, 0x33, 0xe7,
- 0x42, 0xa1, 0xd6, 0xbd, 0xee, 0x4a, 0x87, 0x16, 0x52, 0xb5, 0x86, 0x74,
- 0x2b, 0xed, 0x35, 0xad, 0x0e, 0x34, 0xdb, 0xc2, 0xea, 0x59, 0xba, 0xe8,
- 0x7e, 0x1a, 0x02, 0x64, 0xca, 0x34, 0x99, 0xdf, 0x4b, 0x52, 0x92, 0xe8,
- 0x06, 0xc4, 0x09, 0x03, 0xaf, 0xc4, 0xe7, 0x9f, 0x07, 0xba, 0xe0, 0x27,
- 0xfb, 0xf4, 0x81, 0xf9, 0xb5, 0xe7, 0xfd, 0x98, 0x11, 0x26, 0x85, 0xbc,
- 0x0d, 0xd0, 0x43, 0xad, 0x0b, 0x24, 0x62, 0x61, 0x78, 0x55, 0xe2, 0xf8,
- 0x8b, 0x36, 0x8c, 0x13, 0xec, 0xb2, 0xbe, 0x93, 0xfb, 0x1b, 0x6c, 0x5e,
- 0x73, 0x47, 0xd3, 0x9a, 0xb1, 0x4d, 0x2b, 0x0c, 0x33, 0x15, 0x93, 0xdd,
- 0xde, 0x7a, 0x5a, 0xb3, 0xd1, 0xdc, 0x87, 0x74, 0xa9, 0x92, 0x11, 0x30,
- 0x2a, 0xa5, 0x61, 0x9a, 0x64, 0xe9, 0x8c, 0xdd, 0x1d, 0x9d, 0x7d, 0x64,
- 0x4b, 0xb1, 0x39, 0x19, 0xf1, 0x7e, 0x75, 0x77, 0xde, 0xff, 0x96, 0xee,
- 0x1c, 0x26, 0x6b, 0x53, 0xfc, 0x30, 0x41, 0x92, 0xe6, 0xa7, 0x04, 0xe0,
- 0x25, 0x76, 0xb5, 0xea, 0x3d, 0x3c, 0x47, 0xa8, 0x85, 0x34, 0x6e, 0x93,
- 0x03, 0x87, 0x8e, 0x89, 0xa2, 0xe4, 0xa7, 0x61, 0xd4, 0x50, 0xfb, 0x7d,
- 0xed, 0xca, 0x63, 0xbb, 0x7b, 0xe2, 0xa7, 0xc5, 0xb5, 0x34, 0x13, 0x6c,
- 0x78, 0x49, 0x78, 0xdb, 0x1b, 0xee, 0xfa, 0xfa, 0x95, 0x4d, 0xa6, 0xad,
- 0x90, 0x18, 0xd7, 0x20, 0x91, 0xce, 0xa9, 0x28, 0x34, 0x12, 0x38, 0x89,
- 0x3b, 0xaf, 0xc9, 0xcf, 0xf6, 0x98, 0x55, 0xc3, 0x9c, 0x24, 0x61, 0xad,
- 0xa4, 0xe4, 0xea, 0x6c, 0xbe, 0x40, 0xb6, 0x54, 0xac, 0xbc, 0x2f, 0xce,
- 0xd1, 0x53, 0x77, 0xa4, 0x9e, 0xd9, 0xe5, 0x96, 0x3e, 0x72, 0x3e, 0x8a,
- 0x14, 0xbf, 0xe3, 0x94, 0x10, 0x28, 0x9f, 0x59, 0xc6, 0x2d, 0x35, 0x2b,
- 0x13, 0xa4, 0x8f, 0xda, 0x95, 0x07, 0x68, 0x3f, 0xe3, 0xb2, 0xb5, 0x95,
- 0x5a, 0x85, 0x6d, 0x5e, 0x90, 0xcc, 0xd4, 0x2a, 0x61, 0xbe, 0x23, 0x92,
- 0x06, 0xcc, 0x25, 0x19, 0x4a, 0xd9, 0xd1, 0xb9, 0x66, 0x47, 0x37, 0x6d,
- 0x2d, 0xe5, 0x68, 0x76, 0xa1, 0x3a, 0xab, 0x9e, 0x99, 0x76, 0x67, 0xb9,
- 0xe9, 0xd0, 0x26, 0x68, 0x9c, 0xb4, 0x4a, 0x97, 0xc8, 0x42, 0xdd, 0xc2,
- 0x96, 0x50, 0xa5, 0x5d, 0x02, 0x2b, 0xe4, 0x71, 0xed, 0x0a, 0x5d, 0xbe,
- 0x06, 0xfa, 0xc9, 0xe0, 0x7f, 0xc8, 0xcc, 0x90, 0x7a, 0x4e, 0x30, 0x33,
- 0x30, 0x6e, 0x2d, 0x3c, 0xd6, 0x15, 0x41, 0xb6, 0x42, 0xe0, 0x13, 0x86,
- 0x54, 0xc7, 0x61, 0x0b, 0x31, 0x68, 0x9a, 0x1e, 0xe4, 0x9f, 0x8e, 0x3d,
- 0xcf, 0xba, 0x95, 0xc9, 0x44, 0x54, 0x70, 0x73, 0x1b, 0xae, 0xa6, 0x2f,
- 0x80, 0x85, 0x41, 0x87, 0xed, 0x45, 0xf6, 0x35, 0x51, 0x6b, 0x1f, 0x95,
- 0xa9, 0x3f, 0xad, 0x6a, 0xcb, 0x6d, 0x68, 0x4f, 0x79, 0xf3, 0x5b, 0x57,
- 0x06, 0x17, 0x3c, 0x18, 0x98, 0x17, 0x06, 0xef, 0xc5, 0x9d, 0xf1, 0x15,
- 0x7f, 0x61, 0x48, 0xf2, 0x4c, 0xbe, 0x70, 0x8e, 0x82, 0x90, 0xfa, 0xc0,
- 0x81, 0xbc, 0x44, 0x55, 0x12, 0x7a, 0xe2, 0xc9, 0x69, 0xcf, 0x0a, 0x3f,
- 0xaf, 0x55, 0x14, 0x3a, 0xf5, 0x95, 0x71, 0xc8, 0xf8, 0xaf, 0xfc, 0xae,
- 0x18, 0x8f, 0xf7, 0xd4, 0xc4, 0x90, 0xf3, 0x35, 0xc4, 0xf7, 0xb2, 0xbf,
- 0xb7, 0xc3, 0x9d, 0xd1, 0xb2, 0xc8, 0xd0, 0xeb, 0x64, 0x4b, 0x3a, 0xcc,
- 0x08, 0x0e, 0x02, 0xca, 0x95, 0xb9, 0x81, 0x53, 0x8a, 0x09, 0x61, 0x7d,
- 0xe6, 0x04, 0x90, 0x50, 0x7e, 0x75, 0xba, 0x9a, 0xcc, 0x5d, 0xcb, 0xc4,
- 0x98, 0xa5, 0xac, 0xcf, 0x86, 0x5b, 0xa0, 0xbe, 0x55, 0xf9, 0xcc, 0x56,
- 0x1a, 0xdc, 0xfa, 0x56, 0x53, 0x46, 0x11, 0x95, 0x14, 0x05, 0x8c, 0xef,
- 0x6c, 0x0e, 0x76, 0x5e, 0x2b, 0xb2, 0xc2, 0xec, 0xe8, 0x8b, 0xc3, 0x77,
- 0xdf, 0x1c, 0x43, 0x13, 0x80, 0x6c, 0xa7, 0x03, 0x9a, 0xd3, 0x6e, 0x9f,
- 0x2e, 0x27, 0x30, 0x85, 0xcc, 0x8c, 0x01, 0x26, 0x57, 0x0f, 0x25, 0x45,
- 0x9f, 0xf3, 0x5f, 0x52, 0xd9, 0xbc, 0x58, 0x6e, 0x01, 0xbf, 0x6d, 0x24,
- 0xea, 0x51, 0x85, 0x06, 0x01, 0xa8, 0x74, 0xc5, 0xee, 0xd7, 0x7a, 0x39,
- 0x5e, 0xa0, 0x04, 0x10, 0xec, 0x33, 0x27, 0x66, 0xd4, 0xcf, 0x32, 0x6c,
- 0x9f, 0xc5, 0x0d, 0x4d, 0x8d, 0xb2, 0x36, 0x7d, 0x05, 0x9b, 0x7e, 0xe8,
- 0x7b, 0xd5, 0x98, 0x8f, 0x65, 0x6f, 0x77, 0xd7, 0x51, 0xe5, 0xa5, 0xb6,
- 0xc1, 0x40, 0x5a, 0x56, 0xc9, 0xee, 0xe0, 0xc5, 0x8b, 0x55, 0x82, 0xd0,
- 0x36, 0x0a, 0x0a, 0x8e, 0x67, 0x8f, 0x6e, 0x73, 0x40, 0x8f, 0xae, 0x6a,
- 0x33, 0x62, 0xd1, 0xa0, 0xb4, 0xa1, 0x00, 0x0f, 0x6b, 0xab, 0xb5, 0x88,
- 0x87, 0x87, 0xa3, 0x35, 0x88, 0x83, 0xd9, 0x92, 0x78, 0x98, 0xca, 0x8d,
- 0xc4, 0xda, 0x1f, 0xa0, 0xac, 0x51, 0x67, 0xd0, 0x82, 0xb0, 0x87, 0xb9,
- 0x0d, 0xf9, 0x3e, 0x6a, 0x62, 0x3c, 0x03, 0x7e, 0xc5, 0x14, 0x5d, 0x85,
- 0xa3, 0x51, 0x95, 0xe0, 0xfd, 0x39, 0xf9, 0xff, 0x4e, 0xde, 0x7d, 0xc3,
- 0xee, 0x10, 0x63, 0xdb, 0xc3, 0x97, 0xbe, 0xd3, 0xb1, 0xf4, 0xdf, 0x4b,
- 0xe5, 0x76, 0x2a, 0x4c, 0x46, 0x58, 0x0f, 0x2e, 0x93, 0x90, 0x17, 0x52,
- 0x2e, 0xdd, 0xae, 0xfe, 0x0a, 0x5f, 0xe5, 0x65, 0x32, 0xf0, 0x94, 0x13,
- 0x21, 0xbc, 0x23, 0xcd, 0x64, 0x7e, 0xaf, 0x96, 0x91, 0x7c, 0x01, 0xad,
- 0x6b, 0x64, 0xc6, 0x36, 0xcb, 0x76, 0x2e, 0x9b, 0xe7, 0xd8, 0x41, 0x81,
- 0x6e, 0x12, 0xf9, 0x24, 0x7f, 0x06, 0xe7, 0xbb, 0xa3, 0x89, 0x3c, 0xae,
- 0x2b, 0x2d, 0x57, 0x67, 0x9b, 0x6d, 0x9b, 0x34, 0xab, 0xbe, 0xfa, 0x7e,
- 0xba, 0x6e, 0x48, 0xae, 0x63, 0xe8, 0x4b, 0x75, 0x5a, 0x6d, 0xb0, 0xf8,
- 0x97, 0xe5, 0x3f, 0xde, 0xcf, 0x35, 0x3d, 0xa4, 0x83, 0x4a, 0x37, 0x55,
- 0x31, 0x75, 0x3e, 0x0d, 0xe9, 0x71, 0x34, 0x10, 0x72, 0xc9, 0xef, 0xf3,
- 0xa7, 0xd3, 0xf8, 0xe7, 0xf8, 0x7d, 0x9d, 0x9a, 0xc8, 0x01, 0x20, 0x95,
- 0x56, 0x08, 0x11, 0x2d, 0x65, 0x81, 0xda, 0x32, 0xa4, 0x85, 0x43, 0x72,
- 0xe4, 0x6d, 0xb5, 0x64, 0x23, 0x11, 0x8e, 0x14, 0xd0, 0x25, 0xd2, 0x1e,
- 0x02, 0x2f, 0x0f, 0x2e, 0xaf, 0x8f, 0xc0, 0x91, 0x9a, 0xe7, 0x97, 0x45,
- 0x91, 0x91, 0x91, 0x8a, 0x6a, 0xa6, 0x39, 0xdb, 0x0b, 0x7d, 0x7b, 0x8a,
- 0xaa, 0xa5, 0xd4, 0x17, 0x07, 0x98, 0xc1, 0x74, 0x3e, 0xad, 0x6f, 0x80,
- 0x32, 0xb4, 0xae, 0xa8, 0x50, 0xbd, 0xc2, 0xe7, 0xb9, 0x5d, 0xd2, 0xa7,
- 0x58, 0x99, 0x82, 0x72, 0xdd, 0x9a, 0x8a, 0xf6, 0x0c, 0x6c, 0x6c, 0x90,
- 0x13, 0x7e, 0x87, 0x5c, 0xf1, 0xa3, 0x70, 0x02, 0xd5, 0x97, 0xbe, 0xd6,
- 0x1f, 0xef, 0x62, 0x0c, 0x0f, 0x78, 0xe6, 0x3d, 0xef, 0xc9, 0x63, 0x4f,
- 0x1c, 0xeb, 0xef, 0x91, 0xb8, 0x22, 0x0e, 0x9d, 0x27, 0xc8, 0xa2, 0x5b,
- 0xbd, 0xed, 0x4d, 0xf3, 0x6d, 0x01, 0x38, 0x7d, 0x60, 0x99, 0xa1, 0x56,
- 0x4b, 0x67, 0xb9, 0x38, 0x4b, 0xed, 0xfc, 0xfd, 0xa5, 0x50, 0x98, 0xa9,
- 0x78, 0xf7, 0x6b, 0x58, 0xf9, 0xc5, 0x6a, 0x21, 0xcd, 0x48, 0xb7, 0x60,
- 0xf3, 0x17, 0xb1, 0x6e, 0x4e, 0xbe, 0xc4, 0x37, 0x31, 0x42, 0xee, 0x60,
- 0xdf, 0x66, 0xd9, 0x9c, 0x9f, 0x8d, 0x2e, 0xc9, 0x8d, 0x80, 0xab, 0x4f,
- 0xed, 0xd1, 0xef, 0x8f, 0x2f, 0xbe, 0x3e, 0x1b, 0x1d, 0x9b, 0xf5, 0x78,
- 0x7d, 0xfc, 0xf5, 0x7b, 0x92, 0x5a, 0xb4, 0x3b, 0xd8, 0xf5, 0x4c, 0x19,
- 0x38, 0xe2, 0xff, 0xa2, 0x7a, 0xc2, 0x48, 0xc4, 0xc3, 0x36, 0x65, 0x3d,
- 0x48, 0xeb, 0xc8, 0x5a, 0x15, 0x8f, 0xeb, 0xe1, 0xce, 0x32, 0xf6, 0x55,
- 0xe6, 0xc8, 0x57, 0x60, 0xea, 0x28, 0x49, 0x75, 0x42, 0x05, 0x4d, 0x98,
- 0x97, 0x72, 0x94, 0x98, 0xbe, 0xbd, 0x3e, 0x70, 0x4e, 0xcd, 0x5b, 0xf6,
- 0x4c, 0xcb, 0xe1, 0x73, 0x35, 0x3f, 0xc1, 0x63, 0x85, 0xcd, 0x7b, 0x64,
- 0xf5, 0x68, 0x61, 0x72, 0x9a, 0x95, 0x7c, 0x6b, 0xa2, 0x4c, 0x25, 0xb5,
- 0x8d, 0x7b, 0x3c, 0x6f, 0x70, 0x85, 0xb3, 0x41, 0x21, 0x25, 0x33, 0x6b,
- 0xde, 0xdc, 0x5c, 0x1f, 0x98, 0xa0, 0x6a, 0x99, 0x57, 0x2e, 0xb5, 0xce,
- 0xb8, 0x7c, 0x06, 0xdf, 0xda, 0x12, 0x0f, 0x67, 0x68, 0xb0, 0xd0, 0xc7,
- 0x6d, 0x89, 0x11, 0x7c, 0x87, 0x71, 0x0a, 0x35, 0x3e, 0xd7, 0x9c, 0xb4,
- 0x3c, 0xca, 0x34, 0xf3, 0x7e, 0xfd, 0x1f, 0xde, 0x3a, 0xb7, 0xab, 0x45,
- 0xcf, 0x25, 0x8f, 0x14, 0x8c, 0x1b, 0x50, 0x04, 0x24, 0xf5, 0x09, 0xfd,
- 0xee, 0x54, 0xd2, 0x71, 0x0a, 0x0a, 0x9f, 0x5d, 0x4a, 0x3e, 0xf0, 0x4c,
- 0xc8, 0xd5, 0x45, 0x2a, 0x55, 0x9b, 0x95, 0x00, 0x93, 0xcb, 0x3b, 0x62,
- 0xe1, 0x2a, 0xa8, 0x3d, 0x5a, 0x52, 0x84, 0x04, 0x78, 0xf3, 0x85, 0xe7,
- 0x9d, 0x5b, 0xc7, 0x7f, 0x71, 0x46, 0xbd, 0xc0, 0xc9, 0xc6, 0xc6, 0xc6,
- 0xeb, 0xe3, 0xcb, 0xc3, 0x93, 0xd3, 0xe3, 0xd7, 0xc9, 0xc9, 0xbb, 0x37,
- 0x67, 0x17, 0x6f, 0x0f, 0x2f, 0x05, 0x8e, 0xf1, 0xda, 0x7a, 0xe4, 0x5c,
- 0x75, 0x3f, 0xa9, 0x61, 0xe5, 0x79, 0xeb, 0xb0, 0x85, 0xcd, 0x2a, 0x9a,
- 0xc9, 0x40, 0x90, 0x9f, 0xa7, 0x21, 0x6b, 0xcd, 0xc1, 0x46, 0x22, 0x30,
- 0x0e, 0x57, 0x0e, 0x91, 0xf4, 0x82, 0x1d, 0x1b, 0x7b, 0x1f, 0xea, 0x74,
- 0x5a, 0xfe, 0x2e, 0xa2, 0xb9, 0x5e, 0xdb, 0x94, 0xad, 0x6e, 0xcb, 0x77,
- 0xa2, 0x2b, 0x45, 0x8d, 0x3d, 0x39, 0x38, 0xd9, 0xe1, 0xa2, 0xea, 0x5e,
- 0xa9, 0x0c, 0xad, 0x73, 0x04, 0x12, 0x18, 0x6a, 0xc7, 0x23, 0x6e, 0xba,
- 0x2a, 0x81, 0x2a, 0xf1, 0xdb, 0xb4, 0x74, 0x44, 0x58, 0x51, 0xa3, 0x05,
- 0x30, 0x8c, 0x07, 0x3f, 0xf1, 0xd7, 0x97, 0xf8, 0x80, 0x36, 0x08, 0x7d,
- 0xd6, 0x48, 0x91, 0x3e, 0xa2, 0xd6, 0xaa, 0xcd, 0x4a, 0xd9, 0xb3, 0x0e,
- 0xba, 0x2f, 0x2b, 0xb0, 0x35, 0x3a, 0x27, 0x1c, 0xc9, 0x7e, 0x53, 0x5b,
- 0x36, 0x5e, 0x6f, 0x34, 0xa6, 0xc1, 0x89, 0x10, 0x76, 0xd3, 0x5c, 0x6c,
- 0x6f, 0x70, 0x4d, 0x87, 0x42, 0xa9, 0x12, 0x2d, 0xda, 0xd4, 0x59, 0xfc,
- 0xf9, 0x8e, 0x57, 0x70, 0x14, 0xa7, 0xcd, 0x9d, 0x5b, 0x25, 0x58, 0x1f,
- 0xbc, 0x36, 0x0f, 0x4d, 0x97, 0xf3, 0x45, 0xbb, 0x9a, 0x3c, 0xfb, 0xf2,
- 0x74, 0x09, 0x59, 0x69, 0x83, 0xf2, 0x01, 0xc7, 0xcf, 0x1b, 0x99, 0x03,
- 0x1e, 0x07, 0xf6, 0x77, 0xa3, 0xa1, 0x40, 0x30, 0x88, 0xd8, 0xe8, 0x5d,
- 0xb7, 0x6c, 0x6c, 0x5b, 0x73, 0xc1, 0x84, 0x8c, 0xec, 0xb3, 0xdd, 0x3a,
- 0xb3, 0xa9, 0xc3, 0x1a, 0x61, 0xfe, 0xb7, 0x94, 0x76, 0x8e, 0xb6, 0xac,
- 0x34, 0x28, 0x57, 0x45, 0x18, 0x7c, 0x6c, 0x0d, 0xca, 0x7f, 0xb1, 0x0d,
- 0xe9, 0xf1, 0x25, 0xbd, 0x7e, 0xda, 0xb1, 0xac, 0x75, 0x7b, 0x20, 0x52,
- 0xdc, 0xc8, 0x93, 0x7b, 0x2d, 0xb0, 0x42, 0x5c, 0x9e, 0x80, 0x1b, 0x91,
- 0xb3, 0x14, 0xa4, 0x07, 0x22, 0x29, 0x11, 0x10, 0xd3, 0xed, 0xbb, 0x44,
- 0xd9, 0x90, 0xf2, 0x23, 0xd9, 0xf2, 0x5a, 0x2a, 0xd8, 0x4b, 0xd7, 0x63,
- 0x14, 0x99, 0x30, 0x2c, 0x42, 0xe8, 0x15, 0x1b, 0x9a, 0x59, 0xac, 0x2f,
- 0x29, 0xde, 0x11, 0xd2, 0x7f, 0x8b, 0xe6, 0x0a, 0x04, 0x92, 0xa8, 0xf8,
- 0x92, 0xa5, 0x35, 0x0c, 0x2a, 0x24, 0xed, 0xf0, 0x9d, 0x61, 0xdd, 0xb0,
- 0x8e, 0x2c, 0xd0, 0x2b, 0xa0, 0x08, 0x11, 0x3d, 0x4d, 0x5e, 0xd2, 0xb3,
- 0x44, 0xc2, 0x64, 0x49, 0x7e, 0x00, 0xd2, 0xb7, 0xad, 0x68, 0x80, 0xc3,
- 0x34, 0x03, 0xa4, 0xb5, 0x40, 0x4f, 0xcf, 0xe9, 0x81, 0x54, 0x35, 0xfc,
- 0x9e, 0x2b, 0x76, 0xd5, 0x5b, 0xdc, 0x98, 0x6f, 0xf4, 0x92, 0x6b, 0xb2,
- 0x91, 0xc6, 0xa6, 0xeb, 0x81, 0x00, 0x9d, 0xf2, 0xe3, 0xaf, 0x2e, 0xd2,
- 0xab, 0x34, 0x9b, 0xfd, 0x79, 0x7f, 0x77, 0x94, 0x5e, 0x2f, 0x67, 0xe9,
- 0xbf, 0xe2, 0xc5, 0x57, 0x4f, 0x9e, 0xec, 0xef, 0x7e, 0xf6, 0xf9, 0x6e,
- 0xaf, 0x8b, 0x3e, 0x70, 0x0c, 0x26, 0x40, 0xd8, 0x80, 0x75, 0x87, 0xe4,
- 0x2e, 0xbe, 0x33, 0x9c, 0x5c, 0xe7, 0x30, 0xea, 0x48, 0x51, 0x92, 0x39,
- 0x48, 0xd9, 0x9a, 0x84, 0x98, 0xe4, 0x1c, 0x65, 0xb3, 0x83, 0x6b, 0xb3,
- 0xaf, 0xff, 0xb4, 0x77, 0xc0, 0xa2, 0xec, 0x1a, 0xce, 0xf7, 0x94, 0x77,
- 0x6c, 0xf2, 0x32, 0x2f, 0xcc, 0x0d, 0xf4, 0x65, 0xd2, 0xa4, 0xd7, 0x76,
- 0xaf, 0xa2, 0x05, 0xac, 0x86, 0x5d, 0xce, 0x06, 0x21, 0xea, 0x99, 0xc2,
- 0xa2, 0x4f, 0xa4, 0xee, 0xdc, 0x26, 0x79, 0x3f, 0x7a, 0xec, 0xfe, 0xe8,
- 0xa1, 0x03, 0x7d, 0x5b, 0x6c, 0x7c, 0x30, 0xd5, 0x4e, 0x0d, 0xf1, 0x77,
- 0x90, 0x7c, 0xa4, 0x4c, 0x1a, 0xd9, 0x5b, 0x70, 0x5a, 0xbd, 0x2d, 0x41,
- 0xc6, 0x7e, 0xb2, 0xbc, 0xd5, 0x85, 0xd4, 0x61, 0x31, 0x93, 0x97, 0xea,
- 0xd0, 0xd9, 0xfb, 0xf2, 0x15, 0xd6, 0x6e, 0xef, 0xcb, 0x7f, 0xb5, 0x3f,
- 0xdb, 0x97, 0x9f, 0xed, 0x7f, 0xf9, 0xaf, 0xc3, 0x21, 0xfa, 0x47, 0x8b,
- 0xb9, 0xa9, 0xbf, 0xde, 0x14, 0xfa, 0xa0, 0x54, 0x4e, 0x1b, 0xff, 0x8b,
- 0x2c, 0x6c, 0xae, 0x5b, 0x86, 0x65, 0xe9, 0xe9, 0x97, 0xfd, 0x09, 0xe9,
- 0x4b, 0xf0, 0xd3, 0x8a, 0x98, 0xbc, 0xf6, 0xd9, 0x09, 0xeb, 0xd8, 0xfc,
- 0xd8, 0x90, 0x05, 0xda, 0x11, 0xc4, 0x23, 0x5e, 0xfe, 0x37, 0xda, 0x54,
- 0xff, 0xb6, 0x91, 0x48, 0x20, 0x72, 0x91, 0x55, 0x46, 0x0d, 0xa6, 0xd8,
- 0x84, 0xee, 0x30, 0xa6, 0x99, 0x62, 0xea, 0x6c, 0x6a, 0x99, 0x12, 0x3b,
- 0xe8, 0xba, 0xf2, 0xaa, 0x70, 0xfd, 0xbb, 0x90, 0x97, 0xf0, 0xda, 0x6c,
- 0x24, 0xf6, 0x19, 0x4e, 0x80, 0x31, 0xea, 0x40, 0x43, 0x07, 0x19, 0xcf,
- 0xfe, 0xf9, 0xc7, 0x1f, 0x45, 0xf7, 0x31, 0x7f, 0x91, 0x9e, 0xdf, 0x18,
- 0xb1, 0x31, 0x35, 0x92, 0x68, 0x8e, 0xb2, 0x3e, 0x52, 0x38, 0x4d, 0x6e,
- 0xe7, 0x2b, 0x19, 0x29, 0x37, 0x62, 0x96, 0xf6, 0x70, 0x74, 0x74, 0x72,
- 0x02, 0x70, 0x27, 0x26, 0xf5, 0x98, 0x25, 0x0e, 0xb6, 0xd1, 0x16, 0xd0,
- 0x18, 0x0e, 0x41, 0xe8, 0xef, 0x52, 0x5a, 0x3b, 0x2c, 0x3b, 0x36, 0xaa,
- 0x69, 0x4c, 0x6d, 0x65, 0x59, 0x4a, 0x6c, 0x2f, 0x56, 0x48, 0x5e, 0xf5,
- 0xf8, 0xc1, 0xeb, 0xbc, 0x27, 0xf1, 0x26, 0xfe, 0x49, 0xcf, 0xf1, 0xa3,
- 0xf1, 0x7a, 0x60, 0xd1, 0x5e, 0xb1, 0x96, 0x93, 0xff, 0x3d, 0x7b, 0xb5,
- 0xb7, 0x1b, 0x7f, 0x02, 0x01, 0x56, 0x62, 0x86, 0x7c, 0xe5, 0x62, 0x77,
- 0xeb, 0x9e, 0xcf, 0xa7, 0xfc, 0xb4, 0x14, 0x1e, 0x47, 0x0d, 0xb8, 0x57,
- 0xbd, 0x31, 0x5d, 0x86, 0xf4, 0xff, 0x57, 0xf4, 0x03, 0xc1, 0x25, 0x79,
- 0xb6, 0x5e, 0x8e, 0xe7, 0x79, 0xab, 0xc3, 0x3b, 0x34, 0xc0, 0x2f, 0x69,
- 0xc0, 0x3f, 0x64, 0x76, 0x77, 0x64, 0xa4, 0x85, 0xb1, 0x9a, 0xb6, 0x79,
- 0x55, 0x96, 0xe3, 0xb4, 0xda, 0x94, 0xc8, 0x8b, 0xf6, 0x73, 0x73, 0x6f,
- 0xff, 0xc9, 0xd3, 0x67, 0x9b, 0x43, 0x51, 0xa9, 0x70, 0x9a, 0x1b, 0x9f,
- 0x8a, 0x84, 0x9b, 0xb0, 0x0c, 0x1a, 0x0c, 0xa2, 0x46, 0xea, 0x7e, 0x2c,
- 0x0e, 0x4a, 0x02, 0x87, 0x3e, 0xf7, 0x8a, 0xbf, 0xf6, 0xaf, 0xf4, 0x9d,
- 0x57, 0xf8, 0xc4, 0xbf, 0xe6, 0xd3, 0x57, 0x76, 0x84, 0xff, 0x4a, 0x63,
- 0x79, 0x25, 0x83, 0x30, 0xeb, 0xaa, 0xe9, 0x85, 0xf5, 0xf6, 0x46, 0x54,
- 0x04, 0x45, 0x17, 0x57, 0x17, 0x71, 0x03, 0x83, 0x06, 0xd8, 0x60, 0x30,
- 0xe5, 0x40, 0x05, 0x14, 0x4b, 0x97, 0x5b, 0xb7, 0xf3, 0x69, 0x60, 0x5a,
- 0x19, 0x50, 0x2b, 0x03, 0x27, 0x5b, 0x41, 0xe8, 0x39, 0xa0, 0x85, 0xe8,
- 0x4b, 0x72, 0xe5, 0x0c, 0x0e, 0x11, 0xb9, 0xb5, 0xcb, 0x12, 0xf1, 0xfa,
- 0xa3, 0x6f, 0x4e, 0x36, 0x05, 0x23, 0xc3, 0x16, 0x5d, 0x3f, 0xe6, 0x4a,
- 0xb6, 0x68, 0xc0, 0x49, 0xba, 0xa0, 0xd3, 0xbf, 0xa1, 0x9c, 0xc5, 0x29,
- 0x41, 0x3e, 0xe8, 0xbb, 0x9c, 0x09, 0x6d, 0x3e, 0x26, 0x17, 0xc4, 0x8c,
- 0x9c, 0xd3, 0x15, 0x53, 0x8d, 0x7a, 0xcd, 0x98, 0x79, 0xa9, 0x05, 0xfb,
- 0x81, 0xf0, 0xcc, 0xc2, 0x26, 0x52, 0x0e, 0xde, 0xd8, 0xf8, 0xa4, 0x4d,
- 0xdc, 0x93, 0x47, 0xcd, 0xaf, 0x58, 0x9e, 0xa8, 0x88, 0xe8, 0x0d, 0xb5,
- 0xac, 0x3b, 0xef, 0x04, 0x5f, 0x7a, 0x20, 0x99, 0x7f, 0x9c, 0x49, 0xfa,
- 0x25, 0x7b, 0x38, 0x58, 0x87, 0x23, 0xf9, 0xf9, 0xd2, 0xd6, 0x53, 0xfc,
- 0x32, 0x01, 0xf5, 0x38, 0xbf, 0x25, 0x21, 0x42, 0xf1, 0x15, 0xb1, 0x7b,
- 0x15, 0x2f, 0x6d, 0xb8, 0x1a, 0x8e, 0x3c, 0x23, 0x0e, 0x38, 0x23, 0x77,
- 0xb8, 0xcf, 0xa9, 0x3a, 0xbe, 0x17, 0xbf, 0x00, 0xb5, 0xb0, 0xf9, 0x05,
- 0x0e, 0xc1, 0x4b, 0x5a, 0x06, 0xfc, 0xfa, 0xcb, 0xcd, 0x0d, 0x5b, 0x4e,
- 0xcc, 0x2a, 0xd9, 0x9d, 0x58, 0x2f, 0x6f, 0x50, 0x7f, 0x3c, 0x1e, 0x5f,
- 0x02, 0x2b, 0x4e, 0xc4, 0xcf, 0x82, 0x9a, 0x21, 0x46, 0xf1, 0x99, 0x4d,
- 0xa5, 0x18, 0xb3, 0xf5, 0x25, 0x73, 0xe3, 0x19, 0x51, 0xdc, 0x90, 0xa2,
- 0xb7, 0x49, 0xc0, 0x52, 0xbc, 0xb7, 0x69, 0xf9, 0x73, 0xe1, 0xde, 0x84,
- 0xc0, 0xab, 0x32, 0xad, 0x11, 0xbc, 0x21, 0xc9, 0xf6, 0x4e, 0xf1, 0xf6,
- 0x07, 0x56, 0x7b, 0xf7, 0xbc, 0x4b, 0x5f, 0x64, 0xca, 0xa2, 0xe0, 0x88,
- 0xbc, 0xa1, 0xbc, 0x60, 0xf9, 0xe8, 0x2b, 0x9a, 0xee, 0xbd, 0xe1, 0x75,
- 0x7e, 0xc5, 0x93, 0x61, 0x44, 0xe4, 0x75, 0xb6, 0x63, 0xfe, 0xd9, 0x37,
- 0x3f, 0xdf, 0x27, 0x05, 0x8a, 0xfe, 0xf2, 0x04, 0xd0, 0x29, 0xff, 0x9a,
- 0xf6, 0xce, 0x86, 0x3d, 0x17, 0xf4, 0x97, 0xdc, 0x5e, 0xcf, 0x12, 0x80,
- 0x91, 0x5e, 0x0e, 0x94, 0xd2, 0x16, 0x49, 0x73, 0xaa, 0x15, 0xfa, 0xf8,
- 0x0f, 0xb2, 0x89, 0xc8, 0x7a, 0x5c, 0x52, 0xb6, 0x8a, 0xc5, 0x79, 0x08,
- 0xe6, 0x41, 0x74, 0x6a, 0x52, 0x91, 0x73, 0xf1, 0xa4, 0x50, 0x76, 0x0f,
- 0x6e, 0xd6, 0xec, 0x6e, 0xbb, 0xef, 0x83, 0x62, 0x8d, 0x78, 0xbf, 0xa5,
- 0x5c, 0x79, 0xe2, 0x13, 0x71, 0x99, 0x96, 0xf4, 0xf9, 0x2d, 0x29, 0xbd,
- 0xe9, 0xe5, 0x10, 0x63, 0x99, 0xf3, 0xee, 0x0a, 0xb6, 0xab, 0x57, 0x32,
- 0xe6, 0x2e, 0xaf, 0x9b, 0x6d, 0xfa, 0x4c, 0x36, 0x63, 0xf2, 0x34, 0xa9,
- 0x5b, 0xab, 0x5f, 0x55, 0xd6, 0x34, 0x7c, 0x68, 0xd3, 0x3f, 0xfb, 0xe5,
- 0xa4, 0xc9, 0x8c, 0x59, 0x8a, 0x64, 0x03, 0x96, 0x73, 0xc7, 0x73, 0x66,
- 0xad, 0xc6, 0x16, 0x9e, 0x0d, 0xf8, 0xf6, 0x14, 0xed, 0x65, 0xf0, 0x66,
- 0x98, 0x9c, 0x02, 0xdc, 0x5d, 0xa7, 0x4c, 0xce, 0xa3, 0x37, 0xac, 0xee,
- 0x06, 0xb3, 0x75, 0x58, 0x5d, 0xde, 0xe0, 0x9a, 0xa2, 0x44, 0x74, 0xa1,
- 0x5b, 0x0a, 0xdc, 0xa4, 0xce, 0x3e, 0x64, 0xfd, 0x42, 0xf4, 0x91, 0x3e,
- 0xdc, 0xd6, 0xf6, 0x39, 0xb8, 0xe7, 0xd9, 0x45, 0x87, 0xb4, 0x2e, 0xbb,
- 0x61, 0xbd, 0x46, 0x18, 0x5f, 0x25, 0xba, 0xa2, 0x27, 0xd6, 0xed, 0x21,
- 0x60, 0xf4, 0x63, 0xc6, 0xfe, 0x11, 0x62, 0x5c, 0x20, 0x8e, 0x20, 0x84,
- 0x6f, 0x4d, 0x6b, 0xd8, 0x65, 0x54, 0x56, 0x94, 0xb6, 0x51, 0x0f, 0x26,
- 0xde, 0x2c, 0xb3, 0x76, 0x30, 0xaf, 0x55, 0x69, 0x91, 0xe1, 0x70, 0x9b,
- 0x08, 0x23, 0xb3, 0x8d, 0xac, 0x51, 0x27, 0xa9, 0x5f, 0xe9, 0xad, 0xf9,
- 0x0b, 0x79, 0x0e, 0xc7, 0x95, 0x59, 0xf5, 0xac, 0xe2, 0xab, 0x81, 0xe1,
- 0x3c, 0x5e, 0x8d, 0xd5, 0x6f, 0x2f, 0xdf, 0x9e, 0x26, 0x4a, 0x72, 0x74,
- 0xe5, 0xb4, 0x3a, 0x05, 0x51, 0x62, 0x88, 0xe2, 0xc4, 0x60, 0x7d, 0x48,
- 0x9e, 0xe2, 0x5b, 0x8e, 0xe7, 0x96, 0xf2, 0xdf, 0x13, 0x9a, 0x9c, 0xd6,
- 0x91, 0xf5, 0x9e, 0xe0, 0x57, 0x37, 0x98, 0x7a, 0x6d, 0x93, 0xa6, 0x60,
- 0xb3, 0x9f, 0x6c, 0x52, 0x57, 0xe9, 0x17, 0x9b, 0x98, 0x4f, 0xfc, 0xd8,
- 0x9b, 0xbe, 0xcd, 0x61, 0xe4, 0x14, 0xd2, 0x33, 0xaf, 0xbe, 0x6a, 0xcd,
- 0x12, 0x7e, 0xae, 0x4d, 0xbd, 0xe2, 0xd4, 0x8e, 0x40, 0x3d, 0xd6, 0x77,
- 0xbd, 0xf6, 0x5f, 0x1d, 0x95, 0x44, 0x46, 0x4b, 0x35, 0x5c, 0x1d, 0x22,
- 0x75, 0x62, 0x7f, 0x96, 0x23, 0x17, 0x36, 0x68, 0xe8, 0xe1, 0x53, 0x7c,
- 0xa9, 0xa2, 0xc8, 0xa2, 0x35, 0x59, 0xba, 0xf1, 0x16, 0x50, 0xc9, 0x6b,
- 0x56, 0x33, 0x67, 0x13, 0xed, 0xae, 0x84, 0x43, 0x00, 0x32, 0x67, 0x6f,
- 0x88, 0xdc, 0x48, 0x47, 0x9e, 0x6f, 0x1b, 0xb0, 0x76, 0x76, 0x0f, 0x13,
- 0xda, 0xb3, 0x00, 0x5a, 0xb5, 0xbe, 0x75, 0x96, 0x63, 0xb2, 0x6b, 0x91,
- 0x4f, 0x28, 0xbb, 0xc6, 0x88, 0xae, 0x69, 0x79, 0x4d, 0x92, 0xab, 0x6f,
- 0x0e, 0x1a, 0xfd, 0x09, 0xec, 0xf0, 0xbe, 0x7c, 0x94, 0x3b, 0x8c, 0xb3,
- 0xc2, 0xa1, 0x16, 0xfd, 0xf7, 0x0a, 0x34, 0xe9, 0x1b, 0xf2, 0x5a, 0x4e,
- 0xa4, 0x6d, 0xdb, 0x34, 0xaf, 0x87, 0x69, 0xdf, 0xfe, 0xc2, 0xff, 0x96,
- 0x4e, 0x4e, 0x2a, 0x2d, 0x73, 0x2d, 0x5d, 0x29, 0x35, 0x3c, 0xbb, 0xb7,
- 0x75, 0xc4, 0xe0, 0x8b, 0x22, 0x12, 0x7c, 0xbe, 0xb7, 0x66, 0x92, 0xb0,
- 0xb7, 0xf9, 0xd5, 0x26, 0xc3, 0xf9, 0x37, 0x5f, 0x6e, 0x42, 0x82, 0x91,
- 0x5c, 0x9a, 0x8f, 0x33, 0xa4, 0x95, 0xc9, 0xe5, 0xb4, 0xc9, 0xb7, 0xe2,
- 0x80, 0x75, 0x07, 0x61, 0xa5, 0x74, 0x07, 0x04, 0xd7, 0xb2, 0xb3, 0xf8,
- 0x7c, 0x9c, 0x23, 0x2c, 0x7a, 0x57, 0xe1, 0x97, 0xd8, 0xaa, 0xc7, 0x0d,
- 0x63, 0x5a, 0xe4, 0xd2, 0x85, 0x5a, 0x06, 0x0e, 0x14, 0xa2, 0x05, 0x12,
- 0x8f, 0xe4, 0xb2, 0x58, 0x50, 0xd6, 0xfb, 0xa4, 0x81, 0x63, 0x84, 0xcf,
- 0xd2, 0x30, 0x79, 0x5f, 0xc0, 0xf3, 0x76, 0x93, 0x91, 0x5d, 0x9b, 0x57,
- 0x93, 0xe5, 0x9c, 0xbc, 0x0a, 0x13, 0xf2, 0x65, 0xe1, 0xe2, 0x61, 0xf5,
- 0xa0, 0x15, 0x49, 0xf7, 0x3b, 0xcc, 0x7e, 0x0c, 0xf6, 0x6d, 0xcb, 0x77,
- 0x81, 0x1a, 0x21, 0xac, 0x94, 0xf8, 0xae, 0xa1, 0x15, 0x58, 0x2e, 0x14,
- 0x11, 0x40, 0x14, 0xc4, 0x3b, 0x7e, 0x73, 0x7c, 0x71, 0x71, 0x7c, 0x41,
- 0xf3, 0x7d, 0xd8, 0x29, 0xd8, 0xa6, 0x4c, 0xd9, 0x2e, 0x2a, 0xa8, 0x08,
- 0x5d, 0xdf, 0xa9, 0xa2, 0x09, 0x44, 0x24, 0x0a, 0x85, 0x17, 0x15, 0x16,
- 0x04, 0xb3, 0xff, 0x70, 0x45, 0x0c, 0xdf, 0x13, 0x08, 0x84, 0xb6, 0xf5,
- 0xf0, 0x03, 0xb1, 0x04, 0x5f, 0x61, 0x4b, 0xb7, 0x70, 0x2d, 0x54, 0x52,
- 0x23, 0x61, 0xa9, 0xb9, 0xf6, 0x37, 0x59, 0x4b, 0x4d, 0x1d, 0x0a, 0xa8,
- 0x36, 0x93, 0xb8, 0xf7, 0xcc, 0xba, 0x12, 0x30, 0xe4, 0x2b, 0x3a, 0xa3,
- 0x64, 0x3b, 0x61, 0x32, 0xea, 0x66, 0xb9, 0xc8, 0xa7, 0xd6, 0x31, 0x6b,
- 0x7e, 0x6e, 0xd4, 0xbf, 0x84, 0x4f, 0x79, 0xad, 0xb0, 0x14, 0x04, 0x20,
- 0xd5, 0x6f, 0xe0, 0x3b, 0xc6, 0x3a, 0xe5, 0xcc, 0x13, 0xe4, 0xa8, 0x31,
- 0xbe, 0x4b, 0xb9, 0xef, 0xdb, 0x59, 0xe3, 0xb2, 0xf7, 0x33, 0x38, 0x04,
- 0x49, 0x5a, 0x28, 0x52, 0xc6, 0x97, 0x0c, 0xe4, 0x76, 0x9a, 0x3b, 0x68,
- 0xba, 0x2b, 0x7f, 0x7c, 0x81, 0x64, 0xd1, 0xea, 0x20, 0xf9, 0xa9, 0xce,
- 0x27, 0xbf, 0xb8, 0xcb, 0x03, 0x99, 0x3a, 0x6d, 0x7a, 0x2a, 0x4c, 0x9d,
- 0x4c, 0x94, 0x18, 0xc3, 0x9c, 0xa4, 0xfd, 0x7e, 0x74, 0x7c, 0x91, 0x1c,
- 0x7e, 0x43, 0xa4, 0xef, 0xff, 0xe0, 0x02, 0xd3, 0x73, 0x72, 0x3b, 0x6c,
- 0x08, 0x77, 0x82, 0x30, 0x96, 0x64, 0x53, 0xbf, 0x58, 0xf1, 0xb0, 0xb5,
- 0xb2, 0xb9, 0x96, 0xb8, 0xf0, 0xe8, 0x25, 0x5a, 0x6b, 0x48, 0x9e, 0xbd,
- 0x07, 0x56, 0xf1, 0x31, 0x6b, 0x48, 0x87, 0xcc, 0x5f, 0x45, 0xe6, 0x3a,
- 0xe2, 0xe8, 0x81, 0xae, 0x8d, 0xf4, 0xbe, 0x0e, 0xcc, 0x4e, 0x5e, 0xa5,
- 0xc3, 0x64, 0xf3, 0x6d, 0xf9, 0x77, 0xa3, 0x0c, 0xa4, 0x3b, 0x4f, 0x86,
- 0xbb, 0xc9, 0xd6, 0x0f, 0x79, 0xf1, 0xe2, 0xd9, 0x17, 0xc9, 0xc9, 0xf6,
- 0x66, 0x0b, 0x77, 0xcf, 0x55, 0x67, 0xc6, 0x69, 0xf1, 0xd1, 0x2e, 0xd9,
- 0x19, 0x4e, 0x36, 0xe3, 0xdf, 0xc4, 0xf9, 0x50, 0x73, 0xc5, 0x87, 0x95,
- 0x2d, 0x22, 0xa5, 0x53, 0x20, 0xfc, 0xc9, 0xf7, 0x92, 0x99, 0xfc, 0x04,
- 0x56, 0xbe, 0x79, 0x6a, 0x4a, 0x53, 0xf7, 0xe2, 0x59, 0xd0, 0xc4, 0x53,
- 0xdb, 0xc6, 0x7b, 0x6e, 0xe3, 0x57, 0x36, 0xb1, 0x3f, 0xdc, 0xdd, 0x4f,
- 0xb6, 0xce, 0x46, 0x3b, 0xfb, 0xb6, 0x85, 0xb0, 0x89, 0x7d, 0x34, 0x41,
- 0x0f, 0xb5, 0x5f, 0x7e, 0x4a, 0xdf, 0xff, 0x29, 0x2b, 0x7e, 0x49, 0xb6,
- 0x7e, 0xdc, 0xdb, 0x33, 0x0d, 0x7c, 0x91, 0x1c, 0x9e, 0xfc, 0x98, 0x3c,
- 0x1d, 0x9a, 0xc6, 0xde, 0xa5, 0xb7, 0xd2, 0x9c, 0x50, 0x44, 0x8f, 0xd0,
- 0x88, 0xf9, 0x7d, 0xd0, 0xc6, 0xb3, 0x4e, 0x1b, 0xa7, 0xc6, 0x2e, 0xfc,
- 0x64, 0xae, 0x95, 0xdd, 0xe1, 0x93, 0xfd, 0x24, 0x7f, 0xf6, 0xf9, 0x73,
- 0x6d, 0x48, 0xda, 0xc0, 0xef, 0xdb, 0x8e, 0x45, 0x26, 0x42, 0x31, 0xaa,
- 0xce, 0xf1, 0x27, 0x23, 0xd0, 0x20, 0x22, 0x2a, 0x72, 0xea, 0xdd, 0xa4,
- 0xd5, 0x54, 0xb6, 0x1b, 0xd5, 0xa3, 0x31, 0x2b, 0x25, 0x55, 0x03, 0x32,
- 0x78, 0x18, 0xcd, 0xc5, 0x79, 0x10, 0x74, 0x87, 0x6c, 0x53, 0x7d, 0xf4,
- 0x8b, 0xe4, 0xed, 0xe8, 0xe4, 0xd8, 0x8c, 0x68, 0xd7, 0x74, 0xcd, 0xcd,
- 0x21, 0x77, 0x08, 0xbf, 0xc2, 0xe4, 0xbe, 0x00, 0xf9, 0xac, 0xb4, 0xa1,
- 0x3a, 0x37, 0x63, 0x4e, 0xcd, 0xa6, 0x33, 0x17, 0x77, 0x8d, 0xef, 0x12,
- 0x7a, 0x64, 0x70, 0x78, 0x4d, 0x26, 0x04, 0x5f, 0xb5, 0xf8, 0xf4, 0x77,
- 0x65, 0x61, 0x8e, 0x49, 0x55, 0x56, 0x04, 0x72, 0xda, 0x6c, 0x69, 0x0b,
- 0xdf, 0xbd, 0x3e, 0xe6, 0x64, 0xf9, 0xb7, 0x69, 0x61, 0x64, 0x24, 0x11,
- 0x5e, 0xd5, 0x1f, 0x29, 0x54, 0xcf, 0x91, 0x17, 0x7e, 0xff, 0xf4, 0xbe,
- 0xf8, 0x64, 0xd6, 0xf1, 0xb3, 0xe1, 0x1e, 0xa1, 0xab, 0xc9, 0xea, 0x7d,
- 0xf3, 0xd6, 0xfc, 0x7b, 0xef, 0xe9, 0x66, 0x42, 0xbf, 0x6a, 0x5b, 0xf0,
- 0x7a, 0x5e, 0x37, 0x8e, 0xce, 0xce, 0xbe, 0x3b, 0x61, 0xac, 0xc6, 0x91,
- 0x78, 0x40, 0x49, 0xb9, 0xb2, 0x56, 0x31, 0x4b, 0x57, 0x63, 0xbd, 0xb9,
- 0xc4, 0x22, 0xc4, 0xcd, 0x3e, 0x66, 0xd9, 0x02, 0xe9, 0xbd, 0x1d, 0x89,
- 0xd0, 0x88, 0x8c, 0xb6, 0x30, 0x24, 0x52, 0x7f, 0x3a, 0xd4, 0x9c, 0x4d,
- 0x6d, 0xbd, 0xad, 0xe3, 0x7b, 0x4b, 0xc8, 0x91, 0xba, 0xe2, 0xc4, 0xe8,
- 0xa2, 0x4d, 0x2c, 0x50, 0x6f, 0x31, 0x56, 0x98, 0x0a, 0x1f, 0x89, 0xed,
- 0xbb, 0x39, 0x32, 0xda, 0x3d, 0x77, 0xfa, 0x40, 0x1c, 0xac, 0x9b, 0x5e,
- 0x19, 0x01, 0x68, 0xb4, 0xc8, 0xac, 0x61, 0x34, 0x19, 0x19, 0x08, 0x82,
- 0x71, 0xb7, 0x8c, 0xf1, 0x29, 0xdc, 0x72, 0xe6, 0xd6, 0x7c, 0x77, 0xf8,
- 0xf6, 0xf8, 0xd5, 0xf7, 0x87, 0xa7, 0xef, 0x8f, 0xcd, 0x2b, 0xb9, 0xf9,
- 0xd8, 0x96, 0x43, 0xdb, 0xa1, 0x8f, 0xf3, 0x7c, 0x52, 0xce, 0x28, 0x20,
- 0xb4, 0xf9, 0xc5, 0xe6, 0x06, 0x23, 0xc1, 0x93, 0x1e, 0xbd, 0xb5, 0xc7,
- 0xaf, 0x99, 0x7d, 0x41, 0xff, 0xda, 0xe7, 0x7f, 0xed, 0x7f, 0xd1, 0xdb,
- 0x6e, 0x0d, 0x3a, 0xb0, 0x92, 0xaf, 0x50, 0x9f, 0x14, 0x65, 0x25, 0x51,
- 0x89, 0x1b, 0x69, 0x16, 0x3c, 0x2b, 0x3d, 0x0d, 0xa7, 0xe8, 0xdd, 0x46,
- 0xcf, 0x6e, 0x8d, 0xef, 0x7d, 0x1b, 0xbc, 0x47, 0x2f, 0xbd, 0x82, 0x82,
- 0xd1, 0xdb, 0xee, 0x5b, 0x95, 0x03, 0x51, 0x6d, 0x6a, 0x43, 0x9b, 0x60,
- 0x92, 0xc8, 0x64, 0xab, 0xc7, 0x7f, 0x79, 0xf5, 0xfa, 0xf0, 0xf2, 0x98,
- 0x5e, 0xd0, 0xcf, 0x2b, 0x9d, 0xbe, 0x66, 0x3c, 0x50, 0x7f, 0xb6, 0x24,
- 0x8a, 0xfc, 0x8a, 0x06, 0xd4, 0xdb, 0xe6, 0xb0, 0x03, 0xe2, 0xdf, 0x9d,
- 0x7e, 0x95, 0x85, 0x62, 0xac, 0x5d, 0x02, 0x7a, 0xad, 0xe0, 0x92, 0xad,
- 0x1e, 0xff, 0xae, 0xb7, 0xad, 0x1e, 0x5c, 0x29, 0x88, 0x23, 0x91, 0xc5,
- 0x29, 0xf2, 0x21, 0x82, 0x24, 0x58, 0x46, 0x8f, 0xb9, 0xf5, 0x91, 0xb8,
- 0x02, 0x7b, 0x9c, 0xbc, 0xc2, 0x0a, 0x76, 0xe1, 0x25, 0xc3, 0x9d, 0x7c,
- 0x4c, 0x65, 0xb9, 0xb7, 0xff, 0xe4, 0x0b, 0xcc, 0xe7, 0xab, 0xde, 0x8e,
- 0xb9, 0x1b, 0x7a, 0x5f, 0xd0, 0xa7, 0xf3, 0xc6, 0x2b, 0x0f, 0x28, 0x9f,
- 0x21, 0x7b, 0x4a, 0x76, 0x14, 0x23, 0x5b, 0x68, 0xd5, 0x3d, 0xde, 0x1e,
- 0x4c, 0xe8, 0x1d, 0x27, 0x74, 0x29, 0xd3, 0x8d, 0xc6, 0xf9, 0xb1, 0x5e,
- 0xa8, 0x6b, 0x86, 0x8a, 0x2d, 0xec, 0xd4, 0xc5, 0xe7, 0xfc, 0xfb, 0xa3,
- 0xcf, 0xef, 0xf2, 0x18, 0x85, 0x19, 0x88, 0xbe, 0x39, 0xbf, 0xd7, 0x9c,
- 0x2f, 0x7c, 0x0b, 0x3a, 0x39, 0xaf, 0x59, 0xa0, 0x19, 0x8f, 0xc5, 0xb7,
- 0xa3, 0xc6, 0x08, 0x74, 0x02, 0x23, 0x5a, 0xee, 0xa1, 0x28, 0x01, 0x18,
- 0xe0, 0xe3, 0x21, 0xf4, 0xce, 0x4e, 0xc7, 0xb9, 0xd1, 0x84, 0x6d, 0x16,
- 0x8b, 0x67, 0x95, 0xdb, 0xa9, 0xd7, 0xe3, 0x97, 0x7b, 0x9c, 0x4b, 0x74,
- 0x51, 0xf2, 0x5c, 0xd6, 0xd6, 0x87, 0x84, 0xc0, 0xa0, 0x3c, 0xdb, 0x5e,
- 0xa7, 0x4e, 0xea, 0x18, 0x86, 0xc1, 0x26, 0x3d, 0xdb, 0xc7, 0x46, 0xd4,
- 0x14, 0x59, 0xb5, 0x16, 0x0b, 0x11, 0x89, 0x1b, 0x61, 0x88, 0x7e, 0x41,
- 0x00, 0xf3, 0xce, 0x70, 0x38, 0xb4, 0xe6, 0x0e, 0x62, 0x5e, 0x12, 0x2e,
- 0x22, 0x36, 0x3b, 0x9f, 0x26, 0x18, 0x73, 0xbc, 0x05, 0x65, 0x1e, 0x0a,
- 0xf5, 0xb6, 0x60, 0x64, 0xc4, 0x4f, 0x60, 0x8f, 0x86, 0xe7, 0xe3, 0xd8,
- 0x94, 0xcf, 0x6e, 0x2a, 0x1d, 0xc3, 0xc7, 0xd8, 0x22, 0xac, 0xe9, 0x1b,
- 0xfb, 0x1e, 0xa5, 0x4e, 0x92, 0x95, 0x53, 0xa5, 0x9d, 0x0b, 0xda, 0xc1,
- 0x84, 0xf5, 0xe6, 0x7a, 0x7e, 0xf7, 0xb6, 0x3e, 0x92, 0x76, 0xa5, 0xcf,
- 0x30, 0x01, 0x12, 0x72, 0xe5, 0x1d, 0xa8, 0x07, 0x40, 0x70, 0x40, 0x30,
- 0x91, 0x82, 0xdd, 0x03, 0x7a, 0x83, 0x2c, 0xac, 0xda, 0x2c, 0xed, 0x08,
- 0x6b, 0x34, 0xd9, 0xcc, 0xd0, 0xfd, 0xfb, 0x8e, 0x59, 0x7a, 0x03, 0xa5,
- 0x9b, 0x32, 0xb1, 0x9e, 0x4d, 0x57, 0x11, 0xa1, 0x92, 0xc1, 0x3b, 0x77,
- 0x15, 0x01, 0xc3, 0x06, 0x4c, 0xd5, 0xa2, 0x39, 0x83, 0x2a, 0x3d, 0x84,
- 0xac, 0x63, 0x5d, 0x68, 0x7b, 0xa2, 0x2d, 0xda, 0xb8, 0x76, 0x67, 0x6e,
- 0xdc, 0xad, 0xdc, 0x16, 0x5d, 0x66, 0x46, 0xd9, 0xbb, 0xcc, 0xa4, 0x18,
- 0x4e, 0xee, 0x25, 0xe9, 0x9d, 0xb9, 0x7a, 0x8a, 0x8c, 0xa0, 0x94, 0x00,
- 0x25, 0xc0, 0x2b, 0x73, 0xea, 0xf9, 0x19, 0x1d, 0x77, 0xb6, 0x94, 0xd1,
- 0x4a, 0x5d, 0x1d, 0xad, 0x64, 0x8b, 0x0d, 0x0d, 0x66, 0x4b, 0x56, 0x87,
- 0x1e, 0x29, 0xe0, 0xe5, 0x9c, 0x48, 0x4b, 0x45, 0x53, 0x57, 0xf3, 0x9c,
- 0x7a, 0x6e, 0x44, 0xf4, 0x48, 0xf6, 0x4d, 0x0e, 0x08, 0x21, 0xf9, 0x39,
- 0x18, 0x02, 0xa1, 0xb3, 0x95, 0x16, 0x53, 0xef, 0x23, 0x36, 0x94, 0x2c,
- 0xee, 0x27, 0x42, 0xe2, 0x16, 0x03, 0xd0, 0x4b, 0x68, 0xf4, 0x56, 0xcc,
- 0xab, 0xeb, 0x6b, 0xb6, 0xda, 0x92, 0xee, 0xd0, 0xe2, 0x9b, 0xec, 0x94,
- 0x66, 0x85, 0x00, 0xcb, 0xf7, 0xab, 0x66, 0xf3, 0xd2, 0x16, 0x5b, 0x14,
- 0xaf, 0x4b, 0x6b, 0x33, 0x6b, 0xf8, 0x90, 0xd7, 0xad, 0xb1, 0xf9, 0x51,
- 0xc8, 0xa5, 0x68, 0x87, 0x7b, 0xcf, 0x2e, 0x36, 0x50, 0x23, 0xa7, 0x70,
- 0xdc, 0x09, 0xba, 0xe8, 0xe0, 0xdd, 0x73, 0x60, 0x11, 0x07, 0x1a, 0xbd,
- 0xb3, 0xa8, 0x28, 0x6c, 0xd7, 0x64, 0x9c, 0x3a, 0x93, 0x6b, 0x23, 0x69,
- 0x79, 0x7b, 0xa9, 0x70, 0xd7, 0x49, 0x21, 0x72, 0xa8, 0xbc, 0xcd, 0x1c,
- 0xf1, 0xa3, 0x73, 0x38, 0x3a, 0xf2, 0x61, 0x39, 0xfd, 0x56, 0x98, 0x74,
- 0x62, 0xb1, 0x56, 0x5e, 0x61, 0x90, 0x9d, 0x59, 0x19, 0x26, 0x5e, 0x93,
- 0xec, 0x2a, 0x29, 0x5b, 0xdc, 0xd4, 0xe8, 0x9b, 0x84, 0x98, 0xb5, 0x45,
- 0xde, 0x23, 0x4c, 0xde, 0xe2, 0x99, 0x26, 0x5c, 0x5f, 0x4a, 0xab, 0x39,
- 0x58, 0x38, 0x9d, 0x0b, 0xd5, 0xea, 0x28, 0x7b, 0x76, 0x91, 0x7a, 0x5a,
- 0x37, 0x03, 0x9b, 0x00, 0x7b, 0x80, 0x14, 0x3a, 0x1b, 0x6d, 0xbf, 0x94,
- 0x75, 0xc2, 0x4e, 0x86, 0x07, 0xad, 0x23, 0x48, 0x83, 0x33, 0x67, 0xd1,
- 0x14, 0x48, 0x19, 0x21, 0xa6, 0x5e, 0x82, 0x00, 0x0c, 0xc6, 0x1b, 0x9c,
- 0x1a, 0x34, 0x98, 0xa8, 0x44, 0x5f, 0xcf, 0x2d, 0x30, 0x6e, 0x1d, 0xcc,
- 0x87, 0xce, 0xe9, 0xf9, 0xc5, 0xd9, 0x37, 0x17, 0xc7, 0xa3, 0x51, 0xf2,
- 0xf6, 0xf8, 0x92, 0x6d, 0xfd, 0x4b, 0x46, 0xc9, 0x5d, 0xa3, 0xbc, 0x38,
- 0x62, 0x0d, 0xca, 0xcd, 0xa4, 0xe8, 0x10, 0x75, 0x24, 0x20, 0x3d, 0x89,
- 0xaa, 0x66, 0xe3, 0x76, 0x64, 0x23, 0x7e, 0x26, 0xe0, 0xba, 0x1b, 0x78,
- 0xfb, 0x01, 0x3f, 0x42, 0x40, 0xd2, 0x3a, 0xcf, 0x9d, 0x1b, 0x15, 0x8a,
- 0x31, 0x03, 0x92, 0x6c, 0x7a, 0xa0, 0x73, 0xa1, 0xd3, 0x95, 0x6d, 0xfe,
- 0xc4, 0xf0, 0xfe, 0x6c, 0x66, 0x53, 0x2a, 0x05, 0xfe, 0xd9, 0x18, 0xbf,
- 0xb2, 0x29, 0xfe, 0x9c, 0xfc, 0x68, 0xda, 0x9c, 0x1a, 0xe3, 0x55, 0xaa,
- 0x22, 0x8f, 0x50, 0x0d, 0xd9, 0x51, 0x2f, 0xe7, 0x5e, 0xbd, 0xef, 0x84,
- 0xb3, 0x01, 0xab, 0x07, 0x4a, 0x91, 0x82, 0xd6, 0x85, 0xe9, 0x8c, 0x04,
- 0xfe, 0x66, 0xbf, 0x2c, 0xe5, 0xe8, 0x92, 0xe4, 0x34, 0xbb, 0x42, 0x71,
- 0x1e, 0x7c, 0xce, 0x34, 0xb7, 0x4b, 0x1c, 0xd5, 0x7b, 0x6f, 0xe9, 0x47,
- 0xbb, 0xc9, 0x93, 0xcf, 0x9f, 0xef, 0x7e, 0xce, 0x7f, 0xd5, 0xff, 0xbe,
- 0x78, 0xba, 0x2b, 0x64, 0xf9, 0xe6, 0x5f, 0x4f, 0x0f, 0x9e, 0xee, 0x1d,
- 0x10, 0x6d, 0xe3, 0xee, 0xc1, 0xae, 0xf9, 0xff, 0x4f, 0xe5, 0x27, 0xc4,
- 0x4d, 0xf9, 0x62, 0xff, 0xf3, 0xcf, 0x00, 0x5c, 0xa1, 0xfd, 0x31, 0x33,
- 0x1f, 0x19, 0x34, 0xe5, 0x00, 0xec, 0x51, 0xd0, 0x7c, 0xfe, 0xdc, 0xf6,
- 0x44, 0x12, 0xbe, 0x9f, 0x2a, 0xa5, 0xd3, 0xc0, 0x6d, 0x99, 0x58, 0xf5,
- 0xaa, 0x32, 0xd9, 0x8c, 0x5f, 0xdc, 0xd2, 0x0e, 0x43, 0xde, 0xe6, 0x62,
- 0x8b, 0xa0, 0x63, 0x6b, 0xbd, 0xc3, 0x98, 0x70, 0x8f, 0xf9, 0xed, 0xd7,
- 0x7e, 0x5a, 0x73, 0xbe, 0x37, 0xc0, 0xe7, 0x26, 0x4b, 0x25, 0xef, 0x4d,
- 0xb4, 0xa2, 0x9f, 0x5f, 0x7b, 0xbc, 0x53, 0xb0, 0xfb, 0xd7, 0x7e, 0x8f,
- 0x3d, 0x57, 0xf4, 0x96, 0xec, 0x86, 0x24, 0xfc, 0x9a, 0x4d, 0x1b, 0x88,
- 0x7c, 0xab, 0xb5, 0x79, 0x36, 0xdc, 0xf2, 0xbb, 0x99, 0xf2, 0xca, 0x81,
- 0xdb, 0x74, 0x2b, 0x2e, 0xbc, 0x1d, 0x19, 0x72, 0xd0, 0xdc, 0xfb, 0x85,
- 0xdf, 0xde, 0x63, 0x9a, 0x73, 0x23, 0xc2, 0x0e, 0xb6, 0x2b, 0x37, 0xf0,
- 0x16, 0x27, 0x67, 0x0c, 0x9a, 0x2d, 0xae, 0xaa, 0x7c, 0xa1, 0xb6, 0xec,
- 0x35, 0x5e, 0xb5, 0x5b, 0x76, 0xc0, 0x6f, 0x88, 0xce, 0x69, 0x53, 0xd8,
- 0x50, 0xd2, 0x16, 0x57, 0x3c, 0x3f, 0xaf, 0x3b, 0x3b, 0xf8, 0x14, 0xed,
- 0x46, 0xef, 0x7b, 0xf2, 0x0d, 0x9c, 0x27, 0x7b, 0xe8, 0xd6, 0x0e, 0xcd,
- 0xc1, 0xe0, 0xb5, 0xae, 0x27, 0x43, 0xae, 0xa0, 0x7c, 0xc7, 0x8e, 0xa4,
- 0x7b, 0x0e, 0x48, 0x73, 0xdb, 0x9c, 0x7f, 0xfb, 0xcc, 0xc0, 0x0a, 0x4e,
- 0xfd, 0x03, 0xa3, 0xd2, 0x92, 0x4a, 0x3b, 0x6c, 0xab, 0x08, 0x1b, 0xfc,
- 0xc9, 0x22, 0xac, 0x70, 0x99, 0x31, 0x02, 0x8d, 0x9a, 0xa2, 0xf9, 0x9c,
- 0xf9, 0x69, 0xaf, 0x56, 0xda, 0x8d, 0xd3, 0xaa, 0x55, 0x44, 0x61, 0x43,
- 0x8a, 0x70, 0xcc, 0x89, 0x7a, 0x0e, 0x99, 0x89, 0xac, 0x47, 0xfc, 0xcb,
- 0xc6, 0xc6, 0xe8, 0xfc, 0xf8, 0xf8, 0x75, 0x72, 0x7a, 0xf2, 0xf6, 0xe4,
- 0xd2, 0xd3, 0xc2, 0xed, 0xed, 0xa1, 0x9e, 0x56, 0x2d, 0x30, 0xd8, 0x99,
- 0x0e, 0xc7, 0xc4, 0x2c, 0xe5, 0x5e, 0xe4, 0xfe, 0x9e, 0x67, 0x92, 0xf0,
- 0x30, 0xeb, 0xbe, 0x07, 0x7b, 0x1b, 0x24, 0x4c, 0x54, 0xa6, 0xdd, 0xd3,
- 0xe2, 0x6a, 0xa3, 0xd1, 0x98, 0xde, 0x0d, 0x98, 0x08, 0x60, 0xf0, 0x17,
- 0xc1, 0x69, 0xb4, 0xd5, 0x25, 0x21, 0x95, 0xb5, 0xd9, 0x37, 0x02, 0x43,
- 0xed, 0xf4, 0x8a, 0xe6, 0x36, 0x63, 0x14, 0xb4, 0xe7, 0x96, 0x03, 0xc2,
- 0xee, 0x2e, 0x03, 0x31, 0xc1, 0x3c, 0xe7, 0xb4, 0x48, 0x1f, 0xfe, 0x8b,
- 0xca, 0x26, 0x72, 0xe3, 0x41, 0x8e, 0xfb, 0x5f, 0xf4, 0x4e, 0x87, 0xc5,
- 0xbe, 0xea, 0xb7, 0x6a, 0x2e, 0xd9, 0x68, 0x26, 0xa0, 0x48, 0x9e, 0xec,
- 0xda, 0xcc, 0x82, 0x05, 0x64, 0x8e, 0xe8, 0xf7, 0xf4, 0xb1, 0xbd, 0xc4,
- 0x28, 0x21, 0x4b, 0x52, 0xe5, 0xab, 0x65, 0x11, 0x5c, 0x77, 0x7f, 0xe1,
- 0x77, 0xcd, 0xf8, 0x9f, 0xef, 0xe2, 0x7a, 0xbb, 0x4a, 0xab, 0x81, 0x51,
- 0xb7, 0xee, 0x07, 0xea, 0x52, 0xe5, 0x1d, 0x21, 0xd0, 0x60, 0xf6, 0xf7,
- 0x64, 0xae, 0x14, 0x6a, 0x47, 0x45, 0x74, 0xe9, 0x21, 0x25, 0xe2, 0x92,
- 0x33, 0x39, 0x00, 0x34, 0x74, 0x4a, 0xca, 0x55, 0x0f, 0xa7, 0x53, 0x70,
- 0x1c, 0xe1, 0xb0, 0xae, 0xa2, 0x93, 0x51, 0x94, 0x2c, 0x00, 0xb1, 0x4a,
- 0xad, 0xe6, 0x34, 0x4c, 0x19, 0x4b, 0xa8, 0x4f, 0xcf, 0x93, 0xbd, 0xcf,
- 0x69, 0x1c, 0x8f, 0x1b, 0xcf, 0x9b, 0xb2, 0x9a, 0xd8, 0xf4, 0x5f, 0xd8,
- 0x08, 0x5e, 0x2e, 0x28, 0x67, 0x30, 0xa0, 0x1a, 0x1f, 0xcf, 0xae, 0xe2,
- 0x57, 0x81, 0xaf, 0x23, 0xa3, 0x44, 0xe2, 0xe9, 0x70, 0x47, 0x21, 0xc0,
- 0xcd, 0x6a, 0x11, 0xdd, 0x35, 0x32, 0x2f, 0x5e, 0x11, 0xdb, 0xca, 0xe6,
- 0x8a, 0xf2, 0x34, 0x90, 0x4b, 0xc4, 0xec, 0xb5, 0xbb, 0x7c, 0x0a, 0x55,
- 0xda, 0x51, 0xcf, 0x99, 0xf5, 0xe2, 0xcd, 0xc7, 0xb0, 0x66, 0xc4, 0x2c,
- 0x11, 0xec, 0xb4, 0x3d, 0x13, 0x05, 0x86, 0xa6, 0xb5, 0x84, 0x47, 0x61,
- 0x0b, 0xfa, 0x03, 0xa5, 0x22, 0xbb, 0xb8, 0x00, 0xd9, 0x4f, 0x24, 0x9a,
- 0x7b, 0xee, 0x2b, 0x04, 0xeb, 0x6f, 0x9a, 0x99, 0x3a, 0x13, 0xde, 0xda,
- 0x8d, 0xdd, 0x1e, 0x33, 0x91, 0xaa, 0x78, 0xc3, 0xde, 0xdb, 0x35, 0x4a,
- 0xeb, 0xac, 0xb4, 0xdb, 0x4a, 0x36, 0x55, 0x68, 0x89, 0x62, 0x58, 0x03,
- 0xcc, 0xce, 0xde, 0xee, 0x77, 0xab, 0x67, 0x1d, 0xc4, 0xf5, 0x6b, 0x5f,
- 0xde, 0x7f, 0xba, 0x66, 0xd1, 0xce, 0x2a, 0x18, 0xe3, 0x99, 0xc2, 0x15,
- 0xa1, 0x08, 0xba, 0xc8, 0x4b, 0xb0, 0x6c, 0x66, 0xe3, 0x67, 0xd7, 0x29,
- 0x8a, 0x43, 0xaf, 0xe9, 0xbd, 0xa6, 0x6f, 0x74, 0xba, 0xf2, 0x56, 0x00,
- 0xd4, 0xfc, 0xcb, 0x9a, 0xdc, 0x62, 0x0b, 0x90, 0xe2, 0x39, 0xdb, 0xd5,
- 0x66, 0x7e, 0x33, 0x8d, 0x82, 0xf7, 0x36, 0x4b, 0xce, 0x7e, 0x5b, 0x48,
- 0xe8, 0xee, 0xa9, 0xb2, 0xeb, 0x25, 0x93, 0x56, 0x94, 0x6c, 0xeb, 0x13,
- 0x4f, 0xb5, 0x9c, 0x57, 0x23, 0x9b, 0x09, 0x3e, 0xc4, 0xfb, 0x09, 0x82,
- 0x77, 0x92, 0xaa, 0xca, 0x2a, 0xf5, 0x9d, 0x3b, 0x17, 0x03, 0x39, 0x65,
- 0x27, 0xe5, 0x5c, 0x0a, 0xc4, 0xf2, 0xf1, 0x2a, 0xbc, 0x1c, 0x7c, 0x26,
- 0x62, 0x1c, 0x22, 0x29, 0x97, 0x37, 0x8a, 0x15, 0xf6, 0x94, 0x01, 0x46,
- 0xd1, 0xb0, 0x86, 0xc3, 0x02, 0x68, 0xa0, 0x2f, 0xbb, 0x16, 0x2d, 0xd9,
- 0x4f, 0x91, 0xc4, 0xaf, 0x95, 0x10, 0x93, 0xa9, 0xf3, 0xc9, 0xd9, 0x7f,
- 0x74, 0xf6, 0xee, 0xcd, 0xc9, 0x37, 0x96, 0x75, 0x88, 0x85, 0x78, 0x8b,
- 0x0d, 0x83, 0xdd, 0xc7, 0x7e, 0xa4, 0x5b, 0xea, 0xee, 0x0a, 0x50, 0xd6,
- 0x88, 0xa7, 0x0f, 0xfe, 0x0f, 0x20, 0x40, 0x8a, 0x27, 0xe4, 0x20, 0x67,
- 0xaa, 0x8e, 0x7a, 0xdb, 0xb9, 0x1b, 0x3a, 0xac, 0x72, 0x9c, 0x50, 0x91,
- 0x56, 0xcd, 0x72, 0x61, 0x41, 0x84, 0x5e, 0xdd, 0x5e, 0x21, 0xd6, 0xd6,
- 0xac, 0xf1, 0xe5, 0x82, 0x45, 0x93, 0xe4, 0x7e, 0xb6, 0xbc, 0xb9, 0x7c,
- 0x07, 0x90, 0x3b, 0x41, 0x68, 0x4f, 0xe4, 0x02, 0x08, 0x70, 0x39, 0x33,
- 0x62, 0xe2, 0xf4, 0xa1, 0xed, 0x1a, 0xbf, 0x99, 0xa6, 0xf5, 0x0d, 0x0f,
- 0x14, 0x97, 0x46, 0xce, 0x88, 0x6a, 0xc4, 0xda, 0xd2, 0x29, 0x19, 0xea,
- 0x0e, 0x8c, 0x63, 0x81, 0xba, 0x2e, 0x3e, 0x64, 0x4b, 0x9c, 0x39, 0x7c,
- 0x92, 0x66, 0x9c, 0xa6, 0x08, 0x55, 0x22, 0xd6, 0x89, 0x9f, 0xbc, 0xa2,
- 0xb0, 0xcc, 0x01, 0xf1, 0xcb, 0xcf, 0x99, 0xfb, 0xcd, 0xcf, 0x14, 0x15,
- 0x29, 0xe9, 0x48, 0xe0, 0x4f, 0xae, 0xbc, 0xe4, 0x33, 0xc6, 0x09, 0xea,
- 0xa6, 0x63, 0x1f, 0x31, 0x39, 0x58, 0x36, 0xff, 0xb4, 0x39, 0xa8, 0xef,
- 0xe7, 0xe3, 0x72, 0xa6, 0x39, 0x12, 0x96, 0xeb, 0x41, 0x1f, 0xf2, 0x6b,
- 0xdf, 0x25, 0x1c, 0xa9, 0x6d, 0x3c, 0xb7, 0xa4, 0xc3, 0x4a, 0xb9, 0xfe,
- 0x73, 0x69, 0x23, 0x84, 0x87, 0x74, 0x14, 0xa0, 0xe1, 0x21, 0x19, 0xcf,
- 0x55, 0x19, 0xa5, 0x12, 0x8b, 0xd9, 0x7e, 0x98, 0xa9, 0xf6, 0xd0, 0x29,
- 0xe2, 0x57, 0x2e, 0xc9, 0xc3, 0x81, 0x72, 0x22, 0x46, 0xdd, 0xe9, 0x09,
- 0xf9, 0x05, 0x06, 0x48, 0x6f, 0xf3, 0x2f, 0x04, 0x40, 0xef, 0x51, 0xd1,
- 0x70, 0xfd, 0x11, 0xd3, 0xd5, 0x9f, 0xd9, 0xa1, 0xc8, 0x71, 0xbf, 0xbf,
- 0xe8, 0xc7, 0xf5, 0xd1, 0xce, 0xd4, 0x9b, 0xfd, 0x94, 0x56, 0xd7, 0x42,
- 0xa8, 0x27, 0x91, 0x34, 0x18, 0x89, 0xb6, 0xca, 0x8d, 0x75, 0x4c, 0x92,
- 0x52, 0x62, 0x51, 0x33, 0x50, 0x9f, 0x96, 0x9c, 0xfe, 0x27, 0xc9, 0x51,
- 0xec, 0x92, 0xb4, 0x1b, 0xd1, 0x93, 0x38, 0x7f, 0xb2, 0x58, 0x94, 0xd4,
- 0xdd, 0x65, 0x5a, 0xad, 0xc2, 0xf9, 0x67, 0xe5, 0x32, 0xf3, 0x5e, 0x23,
- 0x27, 0x1e, 0x2c, 0xe1, 0x4c, 0x1c, 0x27, 0xfc, 0x29, 0xe8, 0x12, 0x44,
- 0x41, 0x23, 0xc5, 0x3c, 0x5d, 0x13, 0xfc, 0xfb, 0x57, 0x52, 0xb4, 0xcc,
- 0x9c, 0x67, 0x21, 0x35, 0x11, 0xa6, 0xbf, 0xcf, 0x77, 0xc5, 0xfd, 0xd6,
- 0x08, 0x5c, 0xb5, 0x4e, 0x0e, 0x2f, 0x8e, 0x8d, 0x66, 0x7b, 0x5d, 0x80,
- 0x4e, 0xa2, 0x68, 0x34, 0xff, 0x2d, 0x2b, 0xa4, 0x4e, 0x5a, 0xa1, 0xe7,
- 0x83, 0x3e, 0x78, 0xe7, 0xbd, 0x49, 0x9b, 0x49, 0x80, 0x01, 0x9c, 0x6a,
- 0xed, 0xb6, 0xdc, 0x44, 0x69, 0x82, 0x21, 0x75, 0x88, 0xd1, 0x80, 0xb7,
- 0x14, 0x85, 0x48, 0xcc, 0xa7, 0x4a, 0xa5, 0x08, 0x3e, 0x0f, 0xc4, 0xba,
- 0xcf, 0x0d, 0xac, 0x73, 0x8d, 0x53, 0xed, 0xb2, 0x06, 0xfe, 0xa6, 0x1c,
- 0x9a, 0xf2, 0xad, 0x56, 0xd8, 0xd3, 0x6d, 0xa7, 0x7e, 0xdc, 0x65, 0xf4,
- 0x37, 0xdc, 0x33, 0xa4, 0x8b, 0x74, 0xf5, 0x82, 0xcc, 0x82, 0xe1, 0xd9,
- 0x7b, 0x3d, 0xf5, 0x94, 0x5f, 0xce, 0xd6, 0xbb, 0xc9, 0x66, 0x0b, 0x76,
- 0x4c, 0x0b, 0x69, 0x8f, 0xf8, 0x75, 0xd8, 0x1c, 0x98, 0x6e, 0xd8, 0x6a,
- 0xa4, 0x80, 0x0b, 0x8f, 0x89, 0xd8, 0xe8, 0x23, 0x2b, 0x00, 0xbe, 0x7c,
- 0x8a, 0xfa, 0x76, 0xff, 0x64, 0x47, 0xeb, 0xfa, 0x60, 0x7f, 0x49, 0x3f,
- 0x7a, 0x65, 0x89, 0xe8, 0xa8, 0x17, 0x43, 0xfa, 0x10, 0x44, 0x2a, 0x62,
- 0xa6, 0xf4, 0x17, 0xfc, 0x18, 0xa8, 0x37, 0x65, 0x26, 0x85, 0xd4, 0xb1,
- 0x6c, 0x57, 0xa5, 0xc4, 0x54, 0x5d, 0x47, 0x38, 0xb0, 0x07, 0x09, 0x3d,
- 0xf6, 0x55, 0xe3, 0xc1, 0x77, 0x3b, 0x5a, 0xf2, 0x9c, 0xfc, 0x37, 0x94,
- 0xeb, 0xab, 0x07, 0xbe, 0xce, 0x5a, 0x35, 0xd2, 0x6d, 0x52, 0x4f, 0x6f,
- 0xd0, 0x33, 0x73, 0xb1, 0x39, 0x9b, 0x39, 0x81, 0xaf, 0x8f, 0xd1, 0xaa,
- 0x22, 0xff, 0xcd, 0x29, 0x4c, 0x22, 0xbb, 0xa8, 0xc6, 0xc6, 0x7d, 0x2b,
- 0x1b, 0x81, 0xaa, 0xd6, 0x51, 0xb2, 0x8e, 0xe5, 0xe0, 0x42, 0x46, 0x07,
- 0x40, 0x02, 0xb7, 0x79, 0xad, 0xc1, 0x47, 0xb3, 0xb7, 0x27, 0x8c, 0x89,
- 0x68, 0x98, 0x3b, 0x20, 0x6b, 0x26, 0xde, 0x54, 0x66, 0x93, 0x9b, 0x92,
- 0x31, 0xb5, 0x66, 0xd2, 0xbc, 0xa4, 0xcc, 0x5e, 0xf2, 0x3f, 0x65, 0x0f,
- 0x7c, 0xe7, 0xf2, 0xeb, 0x68, 0x23, 0x0c, 0x99, 0x32, 0x72, 0xe8, 0x36,
- 0xc4, 0xf1, 0x8f, 0x97, 0x17, 0x87, 0xc9, 0xb7, 0xc7, 0x87, 0xaf, 0x8f,
- 0x2f, 0x46, 0x9d, 0x4b, 0x5f, 0xe0, 0x1f, 0xac, 0xa1, 0x91, 0x13, 0x18,
- 0xaa, 0xb1, 0x72, 0x04, 0xc0, 0x26, 0x4a, 0xe7, 0x2a, 0xf5, 0xcc, 0xe6,
- 0xa1, 0x83, 0x64, 0xce, 0x07, 0x19, 0x44, 0x1c, 0x2d, 0x00, 0x9f, 0x71,
- 0x0d, 0x61, 0x63, 0xdb, 0x98, 0x18, 0x09, 0x45, 0x20, 0x06, 0x75, 0x99,
- 0xfb, 0xc9, 0x2d, 0x8e, 0x56, 0xcf, 0x5d, 0x26, 0xd3, 0x52, 0xf3, 0xf6,
- 0xda, 0x2b, 0xf7, 0xad, 0x4b, 0xcd, 0xf6, 0xc4, 0x96, 0x5c, 0x32, 0xe2,
- 0x35, 0xec, 0xfd, 0x38, 0x30, 0xdf, 0x1d, 0x98, 0xc9, 0x1f, 0x10, 0xef,
- 0xe2, 0x7d, 0x56, 0xf7, 0x3a, 0x2e, 0xc0, 0xf6, 0xe7, 0x21, 0xa3, 0xaf,
- 0xc3, 0x93, 0xf4, 0x6d, 0xb4, 0x25, 0x3a, 0x5d, 0x33, 0x2a, 0x97, 0xd4,
- 0xb5, 0x20, 0x70, 0xa9, 0x7a, 0x4a, 0xb2, 0x9c, 0xa0, 0x20, 0x13, 0x45,
- 0x00, 0x4a, 0xce, 0xcc, 0x14, 0x3c, 0x18, 0x3a, 0x22, 0x43, 0x80, 0xae,
- 0x63, 0xce, 0x1e, 0x5f, 0xea, 0x33, 0xa6, 0x5e, 0x66, 0x8f, 0x99, 0xe9,
- 0x96, 0x3c, 0xe4, 0xdf, 0x0f, 0x08, 0x80, 0x08, 0x06, 0xbf, 0x6e, 0xc5,
- 0x47, 0xc5, 0x19, 0x2a, 0x25, 0x1c, 0xa5, 0x39, 0xea, 0x83, 0xdd, 0xf3,
- 0x0a, 0xdd, 0xa7, 0x4f, 0x6a, 0xc1, 0x10, 0x79, 0x97, 0x51, 0x60, 0x64,
- 0xd4, 0xc3, 0xbf, 0xc9, 0x35, 0x74, 0xe9, 0x1d, 0xd5, 0x57, 0xbd, 0xb4,
- 0x1d, 0x7f, 0x33, 0xa3, 0x52, 0x1b, 0xd0, 0xe3, 0xf6, 0xb9, 0x2c, 0xf9,
- 0xb6, 0xac, 0x71, 0x17, 0x84, 0x8f, 0xd3, 0x25, 0x1f, 0x9b, 0x7e, 0xbc,
- 0x21, 0xf1, 0x2d, 0xcb, 0xe7, 0xba, 0xb1, 0xa1, 0xd9, 0x4f, 0xe7, 0x87,
- 0x97, 0xdf, 0x22, 0xba, 0x8a, 0x2d, 0xfc, 0x1a, 0xe4, 0x26, 0x1a, 0x53,
- 0x0b, 0xb3, 0xa7, 0xac, 0x01, 0xc7, 0xfa, 0xaf, 0x72, 0x28, 0xaa, 0x3e,
- 0x89, 0xe8, 0x5d, 0xce, 0x40, 0xa4, 0x19, 0xd7, 0x2d, 0x86, 0x8c, 0x6e,
- 0x95, 0x65, 0x04, 0xf4, 0xdd, 0xa6, 0xc6, 0x59, 0xbc, 0xe5, 0x26, 0xe7,
- 0xac, 0x6f, 0xf2, 0x98, 0xb0, 0xe9, 0x49, 0x99, 0x23, 0x8b, 0xc7, 0x27,
- 0x09, 0xc6, 0x2f, 0x28, 0x29, 0x99, 0x03, 0x50, 0xd3, 0x32, 0x4e, 0x51,
- 0xe8, 0x1d, 0xe9, 0xaf, 0xe6, 0xf7, 0xc3, 0x90, 0x2b, 0x27, 0xf9, 0x7a,
- 0xd9, 0xb4, 0xc5, 0x4a, 0x87, 0xaa, 0xd8, 0x6a, 0x96, 0x55, 0x59, 0x36,
- 0x5e, 0x1f, 0xa0, 0xfd, 0xa4, 0x8d, 0x9c, 0x68, 0xe6, 0xa2, 0xe4, 0xbe,
- 0x50, 0x53, 0x85, 0xe8, 0xdd, 0xbe, 0x62, 0x98, 0x8e, 0xeb, 0x72, 0xb6,
- 0x6c, 0x3c, 0xf4, 0xf5, 0xaf, 0xeb, 0xb3, 0xd7, 0xe9, 0xad, 0x93, 0xa1,
- 0xf2, 0x72, 0x16, 0xcc, 0x26, 0x67, 0x2c, 0x7d, 0xa3, 0x5e, 0x22, 0xd8,
- 0x58, 0x95, 0x45, 0xbb, 0x24, 0x1c, 0x80, 0xde, 0xdb, 0x1b, 0x1b, 0x23,
- 0x5d, 0x6c, 0x62, 0x66, 0x0d, 0x17, 0xfd, 0x07, 0x68, 0x93, 0xd4, 0x07,
- 0x0e, 0x16, 0x4c, 0xcc, 0x5f, 0x94, 0xaf, 0x2d, 0xe3, 0x35, 0x85, 0x08,
- 0xe7, 0x35, 0xce, 0xeb, 0xf6, 0xa0, 0xf0, 0x2b, 0x1b, 0xae, 0xd0, 0x54,
- 0xb0, 0xcb, 0x52, 0x29, 0xfa, 0x25, 0x5c, 0xe7, 0x36, 0x44, 0x2b, 0x71,
- 0x3d, 0x4a, 0x06, 0x4d, 0x97, 0x80, 0x56, 0xc3, 0xb6, 0x70, 0x5c, 0xea,
- 0xe4, 0xce, 0xff, 0xda, 0x49, 0xfa, 0x5c, 0xac, 0x20, 0xc2, 0xaf, 0xb3,
- 0x4c, 0xfe, 0x3f, 0x00, 0x5e, 0x09, 0x13, 0x2f, 0xb5, 0x39, 0x6c, 0x73,
- 0xbd, 0x0e, 0x8d, 0x09, 0x75, 0x53, 0x4d, 0xdc, 0xee, 0x37, 0xda, 0x41,
- 0x76, 0x47, 0xf6, 0x8b, 0xda, 0x08, 0xc2, 0xec, 0xc1, 0x05, 0xa9, 0x2d,
- 0x57, 0x12, 0x98, 0x31, 0xae, 0xac, 0x57, 0x8f, 0xca, 0xab, 0x72, 0x0d,
- 0x52, 0x56, 0xeb, 0x51, 0x5d, 0x49, 0xc3, 0xa6, 0x1b, 0x49, 0xcb, 0x6e,
- 0xa7, 0xea, 0x84, 0xfc, 0xa7, 0x26, 0x1d, 0x09, 0xb0, 0x4b, 0xb6, 0xbf,
- 0x57, 0xb1, 0x4f, 0x6a, 0x1f, 0x23, 0xb5, 0x49, 0x10, 0xa7, 0x8c, 0xa6,
- 0xd3, 0x70, 0xa4, 0x76, 0x52, 0xb5, 0x00, 0x8a, 0x56, 0x82, 0x81, 0x52,
- 0x48, 0x42, 0x08, 0x49, 0x46, 0x74, 0xc3, 0x9c, 0x5f, 0x4d, 0xb5, 0x25,
- 0xd5, 0x92, 0xd1, 0x2b, 0x55, 0xd3, 0x38, 0xec, 0x4a, 0xb9, 0xee, 0xcb,
- 0xdd, 0x8f, 0x7c, 0x79, 0x44, 0xe6, 0xa8, 0xa2, 0xa6, 0xaf, 0x12, 0xe8,
- 0x90, 0xa4, 0xc0, 0x2f, 0x83, 0x37, 0x7c, 0x40, 0x8a, 0x43, 0x6c, 0x5e,
- 0x53, 0x96, 0x87, 0xb8, 0xa4, 0x84, 0x76, 0x04, 0xfe, 0xaf, 0x9b, 0x5c,
- 0x70, 0xa5, 0x3c, 0xeb, 0xed, 0xa2, 0xaa, 0xf0, 0xf0, 0x6d, 0x24, 0x7e,
- 0x54, 0xd5, 0x02, 0x1f, 0x86, 0xe1, 0x81, 0x19, 0x5a, 0x02, 0x54, 0xb9,
- 0x44, 0x4e, 0xfc, 0xf4, 0x6f, 0x46, 0x61, 0x58, 0xac, 0xf3, 0x23, 0xbf,
- 0xee, 0x7f, 0x92, 0x40, 0xac, 0x45, 0xc2, 0x09, 0x24, 0xc2, 0xea, 0x46,
- 0x17, 0xca, 0xfe, 0x1e, 0x0c, 0x53, 0xc6, 0x6c, 0x80, 0x52, 0x54, 0x5b,
- 0x68, 0xd5, 0x65, 0xf3, 0x26, 0x7f, 0xbb, 0x2f, 0xb3, 0x64, 0x93, 0xe3,
- 0x25, 0xc4, 0xcc, 0x7a, 0xa1, 0x17, 0x77, 0x6a, 0x15, 0x84, 0xe3, 0x84,
- 0xeb, 0xba, 0xa9, 0x96, 0x93, 0xa6, 0x5d, 0x16, 0xd6, 0xed, 0x30, 0x5b,
- 0x7c, 0x8e, 0xe7, 0xb8, 0xf4, 0x6d, 0xfb, 0x93, 0x73, 0x31, 0xef, 0xd9,
- 0xfa, 0xa0, 0x9e, 0x6d, 0xa5, 0xad, 0x24, 0x17, 0x5b, 0x92, 0xd4, 0xff,
- 0xee, 0xb6, 0xdd, 0x65, 0x83, 0x73, 0x9b, 0xfc, 0xde, 0x66, 0x2a, 0x42,
- 0x76, 0x82, 0x77, 0xf7, 0x8a, 0x22, 0x06, 0xc5, 0xa3, 0x4a, 0x84, 0x27,
- 0x11, 0x6a, 0x0d, 0xb9, 0x2c, 0x37, 0x2c, 0x97, 0xa1, 0xe9, 0xd2, 0x40,
- 0xa0, 0xaa, 0x1c, 0xfd, 0xdd, 0x31, 0x13, 0xa9, 0x85, 0x7f, 0x6c, 0xd1,
- 0xab, 0xda, 0xf1, 0x21, 0x76, 0x70, 0xaa, 0x60, 0x53, 0xb2, 0xfa, 0xa1,
- 0xf0, 0xba, 0xc9, 0xfc, 0x0d, 0x93, 0xd7, 0x72, 0x28, 0xe4, 0x0b, 0x5d,
- 0x75, 0x22, 0xbc, 0x1b, 0xcf, 0x99, 0xb5, 0x24, 0xd8, 0x47, 0xaf, 0xd5,
- 0xa7, 0x0a, 0x91, 0x83, 0xb9, 0x21, 0xcb, 0x46, 0x17, 0xc9, 0xcc, 0xab,
- 0x7e, 0xc2, 0x74, 0x81, 0x46, 0xbc, 0x39, 0xcb, 0x76, 0x37, 0xbd, 0xaa,
- 0x5d, 0x5b, 0x0c, 0xfa, 0x2f, 0x61, 0xfd, 0x58, 0x5e, 0x41, 0xf6, 0x5e,
- 0x10, 0xb8, 0x6d, 0x3b, 0xd2, 0x15, 0xd3, 0xc4, 0xaf, 0xed, 0xcc, 0xde,
- 0x8b, 0xfd, 0xe1, 0xde, 0xf3, 0xcf, 0x87, 0xbb, 0xc3, 0xbd, 0x5d, 0x92,
- 0x2f, 0xd4, 0x15, 0xaf, 0x73, 0x3c, 0x2f, 0x91, 0x4f, 0xb5, 0xde, 0x0b,
- 0xbf, 0xf9, 0xee, 0xf8, 0xf2, 0x87, 0xb3, 0x8b, 0xef, 0x92, 0x93, 0x77,
- 0x97, 0xc7, 0x17, 0x6f, 0x0e, 0x8f, 0x1e, 0xcb, 0xad, 0xef, 0xbb, 0xad,
- 0xbd, 0x12, 0xe6, 0x99, 0x9b, 0x98, 0xd0, 0x37, 0xe8, 0xe6, 0x2c, 0x6b,
- 0x6e, 0x76, 0x0f, 0xf6, 0xd6, 0xb2, 0x47, 0x47, 0xdc, 0x83, 0xee, 0x7d,
- 0x1d, 0xd4, 0x1e, 0x0d, 0x6a, 0x75, 0x2b, 0x96, 0x45, 0x71, 0xc4, 0xd8,
- 0x2a, 0x8b, 0xcb, 0x85, 0x98, 0x47, 0x51, 0x24, 0x90, 0xa7, 0x8a, 0x60,
- 0x1f, 0x33, 0x4f, 0x2d, 0x97, 0x78, 0x13, 0x3e, 0x18, 0xc1, 0xa0, 0x8b,
- 0xcc, 0xdd, 0xe0, 0x72, 0xe1, 0x8d, 0xb8, 0x53, 0x98, 0x79, 0x76, 0x0a,
- 0x15, 0x4f, 0xa5, 0xb2, 0xe4, 0xae, 0xd1, 0x6e, 0x91, 0x9a, 0xa5, 0xcc,
- 0x0d, 0x38, 0xb5, 0x79, 0x22, 0x96, 0x30, 0x60, 0x23, 0xf1, 0xf4, 0x74,
- 0xf4, 0xb5, 0x5d, 0xf1, 0xdd, 0x87, 0xcf, 0x76, 0x68, 0x52, 0x6b, 0xc5,
- 0x35, 0x63, 0x60, 0x2d, 0xd7, 0xe8, 0x91, 0x74, 0x04, 0xa7, 0xc1, 0xeb,
- 0x0d, 0x7f, 0x0a, 0x0a, 0x15, 0xf1, 0x99, 0x81, 0xc9, 0xb1, 0x45, 0x66,
- 0xcc, 0x77, 0x14, 0x72, 0x27, 0x58, 0xff, 0xd3, 0x0a, 0x14, 0xd4, 0x7a,
- 0xdd, 0xe2, 0x13, 0x4c, 0xb8, 0x46, 0x89, 0xff, 0x3a, 0xab, 0xda, 0x40,
- 0x67, 0x4e, 0xab, 0xf4, 0x0e, 0xd5, 0x56, 0x72, 0xc7, 0x0e, 0xba, 0xd1,
- 0x2e, 0xb6, 0x45, 0x8a, 0x93, 0x9b, 0xf3, 0xe4, 0xfc, 0xf8, 0xed, 0x40,
- 0x4b, 0x1e, 0x9b, 0xbf, 0xb3, 0x33, 0x4a, 0xa9, 0x20, 0x39, 0xb7, 0x67,
- 0x91, 0x15, 0x8a, 0xa5, 0x81, 0x4c, 0x14, 0xf0, 0x8f, 0x3f, 0x00, 0x3a,
- 0x34, 0x96, 0x2c, 0x52, 0x20, 0xa3, 0x8a, 0xb9, 0xe4, 0xdc, 0xc2, 0x2e,
- 0x83, 0x26, 0xad, 0xa7, 0x00, 0x96, 0x93, 0x2d, 0x0b, 0xd2, 0xa5, 0xef,
- 0x01, 0x89, 0x0a, 0xd4, 0x80, 0x85, 0x09, 0x94, 0x5a, 0xfd, 0xef, 0xfc,
- 0xbb, 0xa3, 0xd1, 0x9f, 0xf6, 0xf6, 0xa5, 0x3b, 0xdb, 0x6a, 0x15, 0x90,
- 0xac, 0xea, 0xe6, 0xcf, 0x43, 0x5c, 0xfb, 0x7d, 0xd4, 0x14, 0x6b, 0x1c,
- 0x70, 0x2c, 0xc6, 0x96, 0x4d, 0x0c, 0xda, 0x6e, 0x65, 0x06, 0x01, 0xf9,
- 0x75, 0x6f, 0x55, 0x4c, 0x5b, 0xc2, 0x97, 0x42, 0x22, 0xa8, 0xf6, 0x24,
- 0xf5, 0x96, 0x1a, 0x0b, 0xf5, 0x4b, 0x0b, 0xfd, 0x11, 0xb7, 0x2c, 0xad,
- 0x6d, 0xd6, 0x92, 0x64, 0xc5, 0x70, 0x96, 0xee, 0x9a, 0xd3, 0x7c, 0xbb,
- 0xdf, 0x12, 0xa5, 0xab, 0xdc, 0xec, 0xca, 0xdd, 0xe3, 0x3e, 0x83, 0x03,
- 0x20, 0xe8, 0xf5, 0xa9, 0x56, 0x74, 0x2b, 0x5c, 0xc9, 0x12, 0x7a, 0xfa,
- 0xcc, 0x2c, 0x94, 0x39, 0x59, 0x4c, 0xb1, 0x40, 0x42, 0xa1, 0x9c, 0x91,
- 0xe9, 0x62, 0x1f, 0x79, 0x5d, 0x51, 0x91, 0x97, 0x05, 0xe3, 0x48, 0xdf,
- 0x0d, 0x93, 0x6f, 0xb3, 0x82, 0x72, 0xdc, 0x09, 0x71, 0xa7, 0xb9, 0x57,
- 0xc0, 0x05, 0x52, 0x49, 0x49, 0x94, 0xd8, 0x3b, 0xcd, 0x52, 0xa1, 0xcf,
- 0x34, 0xb2, 0xae, 0x66, 0x0b, 0x57, 0xcb, 0x4b, 0xa5, 0x84, 0xce, 0x13,
- 0xae, 0x4f, 0xcb, 0x4b, 0xc1, 0x7c, 0xce, 0xd4, 0xc0, 0x56, 0x9b, 0x03,
- 0x13, 0xd5, 0x0b, 0xd0, 0x9c, 0x1c, 0x73, 0xc4, 0x9a, 0xc4, 0xab, 0x7c,
- 0x03, 0xe6, 0x6b, 0xf2, 0x16, 0xb2, 0xc5, 0xe5, 0x84, 0xca, 0xb4, 0xba,
- 0x21, 0xd7, 0x47, 0x6d, 0xae, 0x9b, 0xb4, 0x98, 0xdc, 0x0f, 0xa7, 0x46,
- 0x97, 0x25, 0xe7, 0xd9, 0x70, 0xf9, 0x71, 0xc7, 0x3b, 0xa6, 0x24, 0xf2,
- 0x6f, 0x38, 0x9d, 0xbf, 0xed, 0xf8, 0xd6, 0xd2, 0xc5, 0x21, 0xcb, 0x57,
- 0xda, 0x3a, 0x13, 0xb4, 0x25, 0x18, 0x15, 0xa9, 0xc7, 0x73, 0x25, 0x1f,
- 0xd6, 0x71, 0x62, 0xc9, 0x88, 0xa9, 0x85, 0xe1, 0x22, 0x9b, 0x1f, 0xd8,
- 0x6c, 0x64, 0x95, 0x0f, 0x52, 0x00, 0xc3, 0x1a, 0x16, 0x9e, 0x93, 0xb6,
- 0xc8, 0xae, 0x67, 0xa2, 0x50, 0xf8, 0xa6, 0x8b, 0x6d, 0x22, 0x92, 0x02,
- 0xc2, 0x06, 0x8f, 0x14, 0x3f, 0x82, 0xc6, 0x6e, 0xf6, 0x61, 0x23, 0x90,
- 0x5a, 0x7e, 0xb8, 0x22, 0x85, 0xde, 0x35, 0x22, 0x24, 0x1f, 0xe0, 0x45,
- 0x26, 0x65, 0x58, 0x5c, 0x3c, 0x8a, 0x44, 0x92, 0xf0, 0x13, 0x71, 0xb6,
- 0x62, 0x87, 0x80, 0x71, 0x5d, 0x50, 0xd1, 0x08, 0x7e, 0x6a, 0x79, 0x60,
- 0x3e, 0x2b, 0xe6, 0xd7, 0xb7, 0x4f, 0xc8, 0xe3, 0x7d, 0x79, 0x3a, 0xd2,
- 0xa8, 0x48, 0x91, 0xdd, 0x79, 0x5b, 0x8b, 0xab, 0x04, 0xc8, 0xfe, 0x23,
- 0x07, 0x10, 0xb3, 0x1f, 0x83, 0xed, 0x00, 0x3d, 0x61, 0xa9, 0xe0, 0xc2,
- 0x64, 0x2e, 0xf9, 0x41, 0x27, 0x41, 0x60, 0xc4, 0xd4, 0x15, 0xad, 0x64,
- 0xc6, 0xca, 0x90, 0x25, 0x65, 0x21, 0x9a, 0x3d, 0xa3, 0x2c, 0x3d, 0xe9,
- 0x27, 0x83, 0x7d, 0x50, 0xdd, 0xec, 0xb5, 0x27, 0x31, 0x6d, 0x98, 0xd1,
- 0x8f, 0xda, 0x30, 0x2d, 0x69, 0x2b, 0x22, 0x0e, 0xb6, 0x64, 0x4b, 0xdf,
- 0x9a, 0xf7, 0xe9, 0x8f, 0x7d, 0x19, 0xd0, 0xed, 0x1e, 0x10, 0xdb, 0x4c,
- 0x31, 0x39, 0xbb, 0x0f, 0x55, 0x86, 0xfd, 0xb5, 0xab, 0x8a, 0xdc, 0x88,
- 0xbb, 0xdc, 0x72, 0x3d, 0x73, 0x7d, 0x03, 0xb8, 0x42, 0x85, 0xbd, 0x53,
- 0x3b, 0x60, 0xa6, 0x50, 0x9c, 0xdc, 0x45, 0x72, 0xbb, 0xaf, 0xb1, 0x66,
- 0xfa, 0x8d, 0xce, 0x1b, 0x3b, 0xeb, 0x9d, 0x10, 0x09, 0xd2, 0x16, 0x09,
- 0xe5, 0xe6, 0xed, 0x5a, 0xca, 0x7a, 0x32, 0x7b, 0xd6, 0x48, 0x91, 0x96,
- 0x94, 0x29, 0x0b, 0x71, 0x2b, 0x70, 0xca, 0x3b, 0x53, 0xc7, 0x93, 0x01,
- 0xef, 0xc1, 0x9c, 0x80, 0xfc, 0xf6, 0x10, 0x91, 0x27, 0x85, 0x4d, 0x94,
- 0x10, 0x57, 0x3e, 0xd8, 0xf4, 0xb0, 0xfc, 0x37, 0x39, 0x3b, 0x26, 0x80,
- 0x35, 0xc5, 0x75, 0x6e, 0x4e, 0xfe, 0x66, 0x62, 0x0e, 0xd3, 0x92, 0x24,
- 0x7e, 0x63, 0xcb, 0xaa, 0x8d, 0x98, 0x85, 0x73, 0xd3, 0x17, 0x73, 0x83,
- 0x2f, 0x69, 0x28, 0xf5, 0xa6, 0x1b, 0xbb, 0xb0, 0x91, 0xb7, 0x07, 0x22,
- 0x71, 0x0e, 0x2d, 0x24, 0x76, 0x5e, 0x69, 0xa9, 0xf4, 0xcd, 0xe3, 0x4f,
- 0xa4, 0xe3, 0x6c, 0xca, 0x97, 0xf8, 0xd7, 0x9c, 0xd3, 0x8f, 0x39, 0x3a,
- 0x3f, 0x79, 0xc7, 0xd5, 0xbf, 0xed, 0x59, 0xc8, 0x88, 0x25, 0x71, 0x83,
- 0xcb, 0xcc, 0xa3, 0x3f, 0xa9, 0xd2, 0xb5, 0xb3, 0xe3, 0x88, 0xf6, 0x0c,
- 0xed, 0xf1, 0x5c, 0xbe, 0x75, 0xb1, 0xe4, 0xaf, 0x6f, 0xd2, 0x3d, 0x57,
- 0xd7, 0xb3, 0xcd, 0x4e, 0x55, 0x5b, 0xbb, 0x26, 0x9d, 0x0b, 0xc5, 0x7a,
- 0xa4, 0x26, 0x53, 0xa7, 0xe0, 0x27, 0x89, 0xb4, 0xd2, 0x92, 0x73, 0xfd,
- 0x4e, 0xa6, 0xa3, 0xef, 0x0a, 0xff, 0x53, 0x32, 0xdc, 0x31, 0x1f, 0xac,
- 0x77, 0xf4, 0xc5, 0xc5, 0xc7, 0x49, 0x6d, 0x6e, 0x38, 0x4a, 0xeb, 0xfd,
- 0x09, 0x06, 0x39, 0x96, 0xc3, 0xf4, 0x78, 0xfa, 0x4b, 0x32, 0x98, 0xcc,
- 0x30, 0xbe, 0x04, 0xe5, 0xb3, 0x7f, 0x32, 0x2b, 0x4f, 0x4f, 0xfc, 0x62,
- 0xd7, 0xf0, 0x4d, 0x4e, 0xe7, 0xed, 0x53, 0x5f, 0x87, 0x7e, 0xc6, 0x06,
- 0x03, 0x53, 0xd1, 0x26, 0x87, 0xd3, 0x5b, 0x4a, 0xba, 0x9b, 0xca, 0x3f,
- 0x69, 0x3c, 0xc7, 0x05, 0x2a, 0x8f, 0x62, 0xa4, 0xe9, 0x98, 0x0b, 0x8d,
- 0x7f, 0x9f, 0x1b, 0xa3, 0xe3, 0xa8, 0xa3, 0x5f, 0x50, 0xfe, 0x1f, 0x75,
- 0x10, 0x6f, 0x79, 0xbf, 0xd4, 0x64, 0x8e, 0xbe, 0xe4, 0x2c, 0x38, 0x68,
- 0x29, 0x49, 0x67, 0x5a, 0xba, 0x61, 0xf2, 0x35, 0xc5, 0x38, 0xab, 0xcc,
- 0x23, 0x6a, 0x95, 0x8b, 0x8f, 0x2b, 0xf4, 0xd1, 0x62, 0xa4, 0xcc, 0x3f,
- 0x31, 0xb4, 0x23, 0x09, 0x72, 0x60, 0xec, 0x98, 0xec, 0x6f, 0xda, 0x83,
- 0x43, 0xbf, 0x34, 0xa5, 0xdd, 0x0c, 0x45, 0xf3, 0x25, 0x92, 0x60, 0x28,
- 0x1e, 0x85, 0x24, 0xf7, 0x90, 0x2f, 0xcc, 0x69, 0xa6, 0x89, 0xfd, 0xa5,
- 0xcf, 0xa6, 0xa2, 0x9e, 0x63, 0x34, 0xa5, 0x1a, 0x81, 0xdd, 0x12, 0xb8,
- 0xc3, 0x5d, 0xaf, 0x8f, 0x6e, 0x8c, 0x68, 0xce, 0x6c, 0x57, 0x47, 0xec,
- 0xd2, 0xd3, 0x2e, 0x8e, 0xe8, 0x8e, 0xd2, 0x45, 0xb0, 0xbf, 0xd4, 0xec,
- 0x48, 0x68, 0xa1, 0x3b, 0x2c, 0xbb, 0xec, 0xde, 0xe5, 0xd9, 0x6d, 0x0f,
- 0x81, 0x92, 0x1a, 0x47, 0xef, 0xdf, 0x52, 0x15, 0x12, 0x14, 0xa4, 0xbe,
- 0xbc, 0x38, 0x7c, 0x37, 0x7a, 0xc3, 0xae, 0xf1, 0xcb, 0xd2, 0x2b, 0x75,
- 0x2d, 0x71, 0x05, 0x8d, 0x1f, 0x5b, 0x46, 0xb7, 0x3b, 0x2e, 0x8d, 0xa1,
- 0x78, 0x7a, 0xa9, 0x83, 0xdd, 0xef, 0x52, 0xe3, 0x73, 0x11, 0x6d, 0x9a,
- 0x0d, 0xea, 0xda, 0xd6, 0x68, 0xdb, 0x2a, 0x42, 0xb5, 0x5f, 0x3f, 0xcd,
- 0x15, 0xa1, 0x57, 0x12, 0x67, 0x79, 0x88, 0xa6, 0xe5, 0x48, 0x3b, 0xa3,
- 0x3f, 0xe5, 0xbb, 0x77, 0x25, 0x6f, 0xe8, 0x91, 0x31, 0x15, 0x07, 0x52,
- 0x54, 0xc6, 0x51, 0xa7, 0x39, 0x77, 0x2a, 0xdf, 0xbd, 0xc2, 0xba, 0x67,
- 0x1b, 0xf7, 0xf3, 0x3e, 0xb5, 0xe9, 0xad, 0x7f, 0xdb, 0xdb, 0x8e, 0x37,
- 0x7f, 0xf9, 0x6b, 0x9b, 0x8f, 0xf7, 0x5d, 0x6d, 0x33, 0x97, 0x52, 0xb4,
- 0xf5, 0x6f, 0xfb, 0xdb, 0x6b, 0x47, 0xe4, 0x67, 0x45, 0xba, 0x6f, 0x9a,
- 0x37, 0xa8, 0xb3, 0xc9, 0x2b, 0x3e, 0x66, 0x56, 0x67, 0xb2, 0x08, 0x1d,
- 0x8f, 0x1a, 0xb8, 0x45, 0xd8, 0x41, 0xb0, 0x6d, 0xab, 0xa9, 0xbb, 0xc0,
- 0x9b, 0x64, 0x97, 0x9c, 0xfc, 0x3f, 0xc7, 0x3e, 0xe3, 0x63, 0xb1, 0xd9,
- 0xf8, 0x57, 0x14, 0xb1, 0x03, 0xd4, 0xe5, 0x10, 0xdf, 0xde, 0x5f, 0xf3,
- 0x6d, 0x37, 0x3a, 0xcf, 0x2d, 0x41, 0x51, 0x6c, 0x82, 0xc1, 0x29, 0x71,
- 0xb5, 0x7c, 0xc7, 0x7e, 0x7b, 0xdd, 0xf7, 0x2e, 0x4f, 0xde, 0x1e, 0x13,
- 0xc1, 0xf5, 0xeb, 0x13, 0xe2, 0x89, 0x1b, 0x09, 0x53, 0xa3, 0x7a, 0x20,
- 0x2c, 0x79, 0xae, 0x5f, 0xd8, 0x84, 0xc3, 0xbb, 0x16, 0x6d, 0x66, 0x25,
- 0x87, 0x5d, 0x09, 0xfa, 0xb4, 0x60, 0xa0, 0x6b, 0xcd, 0xb4, 0x3c, 0xb9,
- 0x1a, 0xbc, 0x2d, 0xa7, 0xb0, 0x92, 0x07, 0x23, 0x40, 0x05, 0xcd, 0x5b,
- 0xe6, 0x87, 0xef, 0x8b, 0x79, 0xeb, 0xc7, 0xc3, 0x48, 0xa6, 0xee, 0xc6,
- 0xaa, 0xfa, 0x39, 0x7f, 0xdf, 0x19, 0x0c, 0xa8, 0x33, 0x03, 0x86, 0x75,
- 0x49, 0x70, 0xa7, 0xc5, 0xcf, 0xa1, 0xa2, 0xc5, 0x4c, 0x50, 0x3e, 0xbb,
- 0x67, 0x20, 0x42, 0xea, 0xe0, 0x63, 0x2e, 0x7b, 0xf3, 0x9a, 0x32, 0xc8,
- 0x9c, 0x8b, 0x8f, 0x9d, 0x78, 0x1b, 0x3e, 0xcf, 0x28, 0x0c, 0xa9, 0xec,
- 0xce, 0xe1, 0x9f, 0xa4, 0x1a, 0x73, 0xb9, 0xb8, 0xc7, 0x28, 0xef, 0x5a,
- 0xd0, 0x8a, 0x68, 0x7c, 0xf5, 0xef, 0xfc, 0x4e, 0xab, 0x62, 0x94, 0xd0,
- 0x41, 0x7b, 0x3b, 0x50, 0x7e, 0x22, 0x05, 0x96, 0xce, 0x2a, 0xef, 0xba,
- 0x92, 0x6e, 0x6b, 0x21, 0x3a, 0x8f, 0x83, 0xd4, 0xa3, 0x4c, 0x6d, 0xf7,
- 0xd3, 0xe7, 0x6b, 0x2d, 0x29, 0xf5, 0xf5, 0x75, 0x69, 0x83, 0x63, 0x46,
- 0xec, 0x2c, 0xda, 0xf5, 0x8e, 0xb3, 0x44, 0x93, 0xbc, 0x39, 0x87, 0x7f,
- 0x73, 0xb0, 0x89, 0x12, 0x0a, 0x79, 0x11, 0x19, 0xcc, 0xe0, 0xd7, 0x8f,
- 0x26, 0x08, 0xbd, 0x26, 0xbd, 0x2b, 0x22, 0xc2, 0xa0, 0x38, 0x56, 0x8f,
- 0x3b, 0xc0, 0x3c, 0x31, 0xbc, 0xb9, 0xcc, 0x05, 0x41, 0x72, 0x4d, 0x0d,
- 0x49, 0x36, 0xaa, 0x2d, 0x32, 0xd6, 0x3a, 0xc9, 0xd9, 0x2b, 0x49, 0x82,
- 0x74, 0xb9, 0x98, 0x02, 0x94, 0xc1, 0x70, 0xd4, 0xff, 0x24, 0xfe, 0xea,
- 0xea, 0x3e, 0xd9, 0xdb, 0xef, 0x27, 0xfb, 0xbb, 0x7b, 0xfb, 0x91, 0x31,
- 0xf4, 0xfe, 0x93, 0x40, 0x51, 0xfb, 0xf8, 0x75, 0xef, 0xb1, 0xa3, 0x70,
- 0xf9, 0x0c, 0xb8, 0x49, 0x24, 0xf3, 0xd7, 0x08, 0x1f, 0x8a, 0xcf, 0x82,
- 0x33, 0x19, 0x45, 0x90, 0xc1, 0x3c, 0x87, 0x6b, 0x8b, 0x9d, 0x84, 0x5a,
- 0x0e, 0xd3, 0x56, 0xf9, 0x9a, 0xa2, 0xe8, 0x0d, 0xd7, 0xa1, 0x05, 0xf2,
- 0xc5, 0x7a, 0x4a, 0xd3, 0x0a, 0x55, 0x3b, 0xdb, 0x6b, 0x94, 0x37, 0xba,
- 0x2c, 0x04, 0xad, 0xa1, 0xb5, 0x31, 0xfb, 0xfd, 0xf5, 0xc9, 0xd1, 0xa5,
- 0x52, 0x13, 0x5e, 0x91, 0xf2, 0x54, 0xdd, 0x3f, 0xae, 0x6e, 0xe2, 0xda,
- 0x67, 0xa6, 0x07, 0x37, 0x99, 0x51, 0xa3, 0x8b, 0xf1, 0xf2, 0xfa, 0xe0,
- 0xaf, 0x69, 0x75, 0x5d, 0x16, 0x0f, 0x3d, 0x3f, 0x45, 0x42, 0xd9, 0x81,
- 0x91, 0x50, 0x7b, 0x2f, 0xf6, 0x9e, 0x20, 0xff, 0x7b, 0x96, 0xa3, 0x76,
- 0x0f, 0x09, 0x88, 0xcd, 0xf9, 0x26, 0x13, 0x6c, 0x20, 0x4d, 0xc2, 0xb2,
- 0x6a, 0x14, 0xd3, 0x4d, 0xbe, 0xee, 0x53, 0xff, 0xd9, 0xa9, 0x3c, 0xcb,
- 0xa9, 0xe7, 0x9b, 0x92, 0xab, 0xb0, 0x49, 0x69, 0x9a, 0xcb, 0xc5, 0x66,
- 0x9b, 0xcd, 0xfd, 0x81, 0xb1, 0xd2, 0x27, 0x6c, 0x99, 0xc8, 0x23, 0xcb,
- 0x51, 0x8f, 0x0c, 0xa2, 0x2a, 0x4b, 0x3f, 0xba, 0xaa, 0xc8, 0x8e, 0x7d,
- 0x43, 0x43, 0x1e, 0x17, 0x6f, 0x8e, 0x98, 0x6c, 0x54, 0xf3, 0xa5, 0x30,
- 0xd5, 0x89, 0x75, 0x4d, 0x6d, 0x53, 0x2f, 0x1f, 0xf8, 0x3e, 0xe5, 0x36,
- 0x1c, 0x4c, 0xc7, 0x8f, 0x78, 0xc8, 0x9c, 0x3b, 0x26, 0x8b, 0x3b, 0x6c,
- 0x57, 0xc9, 0x21, 0x43, 0x0d, 0xa5, 0x3e, 0xb4, 0xfc, 0xf1, 0x16, 0x57,
- 0x7f, 0xe5, 0x88, 0x03, 0x75, 0x4d, 0x0b, 0x4b, 0xab, 0x77, 0xc7, 0xf4,
- 0x9b, 0x0a, 0xb2, 0xbe, 0x3e, 0x3c, 0xf7, 0x0c, 0x5d, 0x18, 0x92, 0xce,
- 0xa9, 0x47, 0xcf, 0x91, 0xa1, 0x83, 0x0a, 0xeb, 0x52, 0x38, 0xa9, 0xef,
- 0x4c, 0x94, 0x06, 0x72, 0x92, 0x74, 0x23, 0x00, 0xe4, 0x4b, 0xb9, 0x4f,
- 0xe0, 0x7f, 0x42, 0xe1, 0x81, 0xd9, 0x34, 0x45, 0x20, 0x54, 0x6e, 0x21,
- 0xca, 0x80, 0x38, 0x2b, 0x34, 0x8b, 0xb9, 0xdf, 0xa9, 0xb2, 0x60, 0x7e,
- 0x8c, 0xef, 0xe0, 0x8a, 0x3e, 0x37, 0x4a, 0x38, 0x68, 0x5c, 0x46, 0xaf,
- 0xbf, 0xa3, 0x1e, 0x4b, 0x50, 0x07, 0x5a, 0x9b, 0xfa, 0xb2, 0x6d, 0x24,
- 0x4a, 0xad, 0x46, 0x75, 0x5e, 0xa9, 0x6f, 0x91, 0x9a, 0xbb, 0x7d, 0x32,
- 0xe4, 0x3f, 0xf7, 0x6d, 0x25, 0x62, 0x3c, 0x06, 0x9c, 0xe7, 0x95, 0xd6,
- 0x39, 0x9e, 0x67, 0x54, 0x78, 0x37, 0xaf, 0xe7, 0x0e, 0x96, 0x72, 0x25,
- 0xaf, 0xbb, 0xea, 0x77, 0xa2, 0x44, 0x52, 0x68, 0x01, 0xfd, 0x40, 0x6f,
- 0x73, 0xc1, 0x75, 0x99, 0x5d, 0xf6, 0x29, 0x91, 0x74, 0x14, 0xc9, 0xbb,
- 0x91, 0x22, 0x27, 0x78, 0x8c, 0xf2, 0xab, 0xef, 0x75, 0x29, 0xf8, 0xa6,
- 0x31, 0xcb, 0x90, 0xd6, 0x1f, 0xcd, 0xa5, 0xc0, 0x50, 0x04, 0x33, 0x8f,
- 0xb9, 0x04, 0xf3, 0xc9, 0x7d, 0x95, 0x33, 0x24, 0x88, 0x1c, 0x69, 0x60,
- 0x74, 0x6a, 0x6d, 0x3d, 0xbe, 0x4c, 0xc9, 0x76, 0x9e, 0xd5, 0x19, 0x53,
- 0x25, 0x82, 0x10, 0x88, 0x62, 0x7f, 0xb4, 0xf5, 0x60, 0x33, 0x29, 0xa6,
- 0x16, 0xe2, 0x8c, 0x76, 0xe9, 0xfe, 0xfe, 0xb3, 0x67, 0xfd, 0xa4, 0x47,
- 0x7e, 0x47, 0xf4, 0x89, 0x36, 0xf4, 0x1b, 0x08, 0x9e, 0x5e, 0xb4, 0x18,
- 0xee, 0x4e, 0x75, 0x35, 0xa1, 0xff, 0xd1, 0x7b, 0x5a, 0x03, 0xf2, 0x52,
- 0x12, 0x71, 0xa8, 0x9b, 0x08, 0xb2, 0x5a, 0xba, 0x1c, 0xde, 0x69, 0xf4,
- 0xbb, 0x13, 0xeb, 0x5a, 0xa2, 0x38, 0xd2, 0x22, 0x2b, 0x17, 0x1a, 0x30,
- 0x9e, 0x4b, 0x75, 0x0f, 0x7c, 0xdf, 0x8b, 0xb2, 0x21, 0xc4, 0xcf, 0x08,
- 0x39, 0xe1, 0x45, 0xa8, 0x97, 0xe3, 0x81, 0x24, 0x08, 0xb3, 0xa1, 0x99,
- 0x9b, 0xc3, 0x3c, 0xa7, 0x45, 0x10, 0x0f, 0x7e, 0x20, 0xa4, 0xbf, 0x4e,
- 0x7a, 0xb2, 0xdd, 0xe8, 0x8f, 0x21, 0xe2, 0xbd, 0xd9, 0x84, 0x86, 0x51,
- 0xbe, 0x92, 0x7f, 0xfc, 0xc7, 0x7f, 0x98, 0x66, 0xff, 0x83, 0x5a, 0x79,
- 0xf5, 0x6f, 0x75, 0x73, 0xe3, 0x3d, 0xd3, 0x93, 0x33, 0x70, 0xe2, 0xa2,
- 0xdd, 0x40, 0xb0, 0x81, 0x24, 0x16, 0x79, 0x6c, 0x6f, 0x4f, 0x45, 0x48,
- 0xf7, 0xbd, 0xf1, 0xe5, 0xc8, 0x30, 0x64, 0xbf, 0xa9, 0x05, 0x90, 0x7c,
- 0x4d, 0x91, 0xe8, 0x8c, 0x32, 0xd3, 0xcd, 0x22, 0x80, 0x58, 0x70, 0xdb,
- 0x41, 0x4a, 0x58, 0xbe, 0xc3, 0x37, 0xca, 0xd5, 0xe1, 0x3a, 0xd5, 0xae,
- 0xee, 0xf4, 0xa6, 0xe0, 0x53, 0x8c, 0x75, 0x32, 0xbf, 0x4a, 0x67, 0xe5,
- 0xb5, 0x1d, 0x71, 0xac, 0xbe, 0xcc, 0xaf, 0x1a, 0x7b, 0xcf, 0x6f, 0x48,
- 0xdf, 0xf4, 0xe3, 0xeb, 0x8f, 0x6c, 0x85, 0x70, 0x02, 0xf6, 0x68, 0x02,
- 0xfe, 0x1a, 0xd6, 0x13, 0x13, 0xf2, 0x60, 0x63, 0xa9, 0xa8, 0x20, 0xd9,
- 0xd1, 0x83, 0x6e, 0x4f, 0x3e, 0x41, 0x77, 0x27, 0x74, 0x04, 0x3a, 0x05,
- 0x6e, 0x9c, 0xac, 0xb0, 0xca, 0x8d, 0xd4, 0x2e, 0x11, 0xdd, 0x24, 0x33,
- 0xf2, 0x2a, 0x37, 0x67, 0x01, 0x17, 0x20, 0x7d, 0x87, 0xe6, 0x0c, 0xa1,
- 0xc9, 0x8c, 0x09, 0x69, 0xc6, 0x5c, 0x1e, 0x6c, 0x30, 0x28, 0x9a, 0xd9,
- 0x9c, 0xa9, 0x96, 0xa7, 0x28, 0x15, 0xa6, 0x19, 0x1a, 0x79, 0x11, 0x92,
- 0x0c, 0xb6, 0xe7, 0x99, 0x5f, 0xfd, 0xc7, 0x66, 0xc9, 0x17, 0x7a, 0x5c,
- 0x81, 0x93, 0xda, 0xd9, 0x71, 0xc4, 0x8d, 0x8e, 0x1c, 0x8d, 0x7c, 0xa1,
- 0x83, 0x42, 0xaa, 0x97, 0x01, 0xda, 0x6f, 0x45, 0x93, 0xb0, 0x8f, 0xf9,
- 0x90, 0x55, 0xcd, 0x34, 0x22, 0x4a, 0x68, 0x72, 0xbe, 0x19, 0xf9, 0x9e,
- 0x01, 0x94, 0x5c, 0x27, 0x5b, 0xa3, 0xd1, 0xf9, 0xc9, 0x8e, 0x16, 0x3f,
- 0xdb, 0xd8, 0x38, 0x7e, 0xf7, 0xfd, 0xc9, 0xc5, 0xd9, 0xbb, 0xb7, 0xc7,
- 0xef, 0x2e, 0x93, 0xef, 0x0f, 0x2f, 0x4e, 0x0e, 0xbf, 0x3e, 0x15, 0xf2,
- 0x05, 0x1a, 0x26, 0x61, 0xce, 0xd8, 0x14, 0xec, 0xf0, 0x07, 0x7b, 0x79,
- 0x71, 0xd1, 0xaa, 0x33, 0x9d, 0x82, 0xda, 0x1f, 0x84, 0xfc, 0x1e, 0x86,
- 0xf1, 0x07, 0x14, 0xd0, 0xea, 0x93, 0x2d, 0xf4, 0x41, 0x6b, 0x69, 0x91,
- 0x2d, 0x7f, 0xef, 0xa5, 0xf3, 0x13, 0x1c, 0x8e, 0xc4, 0x99, 0x0a, 0x73,
- 0x57, 0x45, 0xd2, 0x96, 0x65, 0xf9, 0x86, 0x19, 0x21, 0xb4, 0x46, 0x8d,
- 0xbe, 0x0a, 0xf9, 0xc1, 0xba, 0x8e, 0xeb, 0xc3, 0xe1, 0xe9, 0xa9, 0xfb,
- 0xd4, 0xfa, 0xf2, 0x45, 0xc2, 0x06, 0xc6, 0xb9, 0x84, 0x68, 0x94, 0xe2,
- 0xd4, 0xd7, 0xa5, 0x63, 0xf2, 0x2f, 0xee, 0x7d, 0xd2, 0x7e, 0xfa, 0x98,
- 0xd9, 0x2e, 0x5b, 0x4c, 0xe3, 0x42, 0xa0, 0x85, 0x26, 0xab, 0xf2, 0xfa,
- 0x63, 0x3f, 0xd9, 0xfc, 0xb7, 0x4d, 0x29, 0x58, 0x0f, 0x9a, 0x69, 0x2e,
- 0x8e, 0xb4, 0xed, 0x3a, 0xf5, 0xee, 0xcc, 0xf5, 0x49, 0xe2, 0xf0, 0xb6,
- 0x03, 0xf6, 0x45, 0x87, 0xa2, 0xa8, 0x55, 0xbd, 0x06, 0x7c, 0xd9, 0x3d,
- 0x2e, 0x15, 0x44, 0x2c, 0x3b, 0x85, 0xc8, 0x47, 0x8a, 0xb3, 0x46, 0xdf,
- 0x85, 0x13, 0x21, 0x9d, 0x78, 0x6c, 0xe2, 0x18, 0x6b, 0x41, 0x9e, 0x37,
- 0x5b, 0xd5, 0x4d, 0x9d, 0xd3, 0x66, 0xaa, 0xa7, 0x42, 0xb8, 0x98, 0x6a,
- 0xcb, 0x92, 0xca, 0x8c, 0x54, 0x71, 0x1b, 0x81, 0xf2, 0x9c, 0x8c, 0xa9,
- 0x00, 0xda, 0x87, 0x66, 0xa6, 0x71, 0xf2, 0xd9, 0x89, 0xd4, 0xf2, 0xee,
- 0x22, 0x26, 0xd4, 0xc9, 0xfd, 0x94, 0x58, 0x47, 0xd9, 0xfa, 0x99, 0xac,
- 0xab, 0x04, 0xa1, 0x98, 0x5f, 0x9b, 0x67, 0x1f, 0x2c, 0x18, 0xec, 0xce,
- 0xd4, 0x99, 0x04, 0x60, 0xd2, 0x7f, 0xbd, 0x87, 0xdc, 0x24, 0x8e, 0xb5,
- 0x58, 0x52, 0x44, 0xa2, 0x1c, 0xc2, 0x1c, 0x3b, 0x5c, 0x7a, 0xf6, 0x89,
- 0xb9, 0x84, 0xec, 0x2e, 0x73, 0x3b, 0x81, 0x0b, 0xdf, 0x09, 0x0c, 0xbd,
- 0xdb, 0x63, 0x2d, 0x6a, 0x95, 0x6a, 0x11, 0x25, 0xc4, 0xcd, 0x58, 0xe5,
- 0x82, 0xd2, 0xd4, 0x1d, 0x0e, 0x9c, 0x86, 0x0c, 0x78, 0x6e, 0x75, 0xba,
- 0xd3, 0x70, 0x4f, 0xf1, 0x04, 0xcb, 0x5a, 0x54, 0x28, 0xdc, 0x21, 0x9f,
- 0x76, 0xb4, 0x2c, 0x15, 0x40, 0x06, 0x94, 0x10, 0x54, 0x19, 0x29, 0x5a,
- 0xaf, 0xae, 0xfe, 0x34, 0x44, 0x6c, 0xfa, 0xe2, 0x08, 0xe5, 0x13, 0x0a,
- 0x2a, 0xa0, 0xea, 0xca, 0xde, 0x20, 0x79, 0xa0, 0xc8, 0x9a, 0x8a, 0x32,
- 0x72, 0x0b, 0xb1, 0x42, 0x00, 0xc8, 0x87, 0x91, 0x9e, 0x5e, 0x97, 0x6a,
- 0x80, 0xa7, 0x16, 0x35, 0x63, 0x8b, 0x03, 0x7a, 0x46, 0xbd, 0x65, 0x0e,
- 0xb4, 0x82, 0x0b, 0xf8, 0x1a, 0x8d, 0x10, 0x12, 0xbe, 0x94, 0x0e, 0x99,
- 0x16, 0x7b, 0xaf, 0x3d, 0x6e, 0x06, 0x97, 0xbe, 0x44, 0x92, 0x9c, 0xb3,
- 0x74, 0x94, 0xca, 0x0f, 0xf4, 0x89, 0xca, 0xe5, 0x00, 0xa4, 0x33, 0xba,
- 0x45, 0x0f, 0xa2, 0x49, 0x01, 0xad, 0xa3, 0x49, 0x0d, 0x5e, 0x19, 0x79,
- 0x35, 0xa3, 0x0c, 0x52, 0xd5, 0x3b, 0xd2, 0x64, 0x9c, 0x5f, 0x33, 0x27,
- 0x08, 0x11, 0x50, 0xd0, 0xb9, 0x04, 0xc5, 0x63, 0x39, 0xcf, 0xe8, 0x70,
- 0x80, 0xc0, 0x11, 0xc6, 0xfb, 0x4d, 0x39, 0xf3, 0x59, 0x06, 0x75, 0x24,
- 0xb2, 0xfa, 0x36, 0xf6, 0x81, 0xd8, 0xe7, 0x92, 0xe6, 0x51, 0xe1, 0xa8,
- 0x52, 0x49, 0x40, 0xc0, 0xb9, 0x14, 0x54, 0x03, 0x57, 0x6a, 0x81, 0x54,
- 0x40, 0xe5, 0x52, 0xc0, 0x3c, 0x68, 0xe2, 0x02, 0x6d, 0x5c, 0x38, 0xd2,
- 0xa9, 0x24, 0xeb, 0x96, 0x2d, 0x05, 0x40, 0xad, 0x4c, 0x98, 0xa1, 0x99,
- 0xc4, 0x0c, 0x43, 0x4a, 0xda, 0xb5, 0xbb, 0x64, 0xb1, 0x84, 0x3b, 0xcf,
- 0xec, 0x09, 0xea, 0xb4, 0x99, 0xa9, 0x2d, 0x4f, 0xcd, 0x28, 0xcc, 0x16,
- 0xe1, 0xc7, 0xd8, 0x83, 0x24, 0xff, 0x1a, 0xd8, 0xb2, 0x83, 0x02, 0x3c,
- 0xd9, 0x76, 0xc0, 0x23, 0x36, 0x03, 0x48, 0x3e, 0x4c, 0xa4, 0xf0, 0x2b,
- 0x20, 0x3a, 0x54, 0xb5, 0x16, 0x84, 0x70, 0xad, 0xe0, 0x43, 0xa2, 0x09,
- 0x77, 0xb3, 0x99, 0x57, 0x0b, 0x80, 0xfd, 0x91, 0x69, 0x60, 0x7c, 0x90,
- 0x9c, 0x18, 0xb2, 0xcc, 0x65, 0xe8, 0x1f, 0xf3, 0x86, 0x7b, 0x03, 0x91,
- 0xa4, 0x12, 0x32, 0xcf, 0x3a, 0x31, 0x0d, 0xef, 0x0a, 0x51, 0x78, 0x8c,
- 0xaf, 0x86, 0x4a, 0xe9, 0x9b, 0x3c, 0x9d, 0xb3, 0xf1, 0xe8, 0x76, 0xdf,
- 0xfc, 0x9e, 0x61, 0xc7, 0x1b, 0x1b, 0x47, 0xef, 0x47, 0x97, 0x67, 0x6f,
- 0x93, 0xb3, 0xf7, 0x97, 0xe7, 0xef, 0x2f, 0x45, 0x4f, 0x1d, 0x73, 0xd2,
- 0x06, 0x43, 0x97, 0x58, 0x77, 0xd6, 0xc5, 0x9c, 0x0b, 0xc0, 0x07, 0x18,
- 0xb3, 0x12, 0xb4, 0xa2, 0x1e, 0xa3, 0x98, 0x4d, 0xca, 0x04, 0xd7, 0x1e,
- 0x53, 0x8b, 0x63, 0xca, 0xef, 0xcc, 0x94, 0x23, 0xa1, 0x1e, 0x9e, 0x7c,
- 0xcd, 0xf1, 0x84, 0xdf, 0x43, 0xcf, 0x5a, 0xbb, 0xac, 0xd4, 0x7d, 0xdb,
- 0x8f, 0x01, 0x74, 0x4e, 0x9b, 0xc1, 0xcd, 0xaf, 0x6e, 0xcb, 0xce, 0x5d,
- 0xe7, 0xfb, 0xf5, 0x31, 0xdd, 0x52, 0x1b, 0x57, 0x23, 0x50, 0x0a, 0xab,
- 0x07, 0xd6, 0xb0, 0x9d, 0x59, 0xec, 0x27, 0x38, 0x37, 0xa5, 0x19, 0xe1,
- 0x8d, 0x4d, 0x89, 0x21, 0x18, 0x21, 0xa0, 0xc0, 0x8c, 0xa0, 0x22, 0xcc,
- 0x2d, 0xbb, 0x0c, 0x8a, 0xec, 0x8e, 0x14, 0x9f, 0x40, 0xa7, 0xbe, 0x4b,
- 0x36, 0x7f, 0xc8, 0xfc, 0x06, 0xff, 0xfc, 0x5f, 0x94, 0xb7, 0xfd, 0x41,
- 0x7f, 0xf2, 0xdf, 0xfc, 0xc9, 0x9f, 0x8b, 0x4d, 0x08, 0xcc, 0x36, 0x54,
- 0xe6, 0xbb, 0xe3, 0x8b, 0xaf, 0x8f, 0x2f, 0xce, 0x46, 0x90, 0x07, 0xea,
- 0xef, 0x0e, 0xf7, 0xfa, 0xc7, 0xac, 0x1a, 0x67, 0x55, 0x29, 0x25, 0xef,
- 0xf4, 0x5f, 0xcf, 0x76, 0xbe, 0x19, 0x8d, 0x0e, 0xcf, 0x4f, 0x6c, 0x51,
- 0x29, 0x9b, 0x41, 0xca, 0x3e, 0x92, 0x82, 0x73, 0x9c, 0x69, 0xfc, 0xfa,
- 0x8a, 0xd9, 0x17, 0x93, 0x8f, 0x9c, 0x59, 0x10, 0x80, 0x52, 0x34, 0xb0,
- 0x46, 0x68, 0x14, 0x49, 0x2c, 0xa6, 0x86, 0x95, 0x09, 0xce, 0x2f, 0x0c,
- 0xc1, 0x15, 0x1c, 0x28, 0x18, 0xd8, 0xb7, 0x10, 0xdc, 0x8f, 0xd5, 0x78,
- 0x60, 0x76, 0xfb, 0x47, 0xad, 0xb1, 0xce, 0x89, 0x50, 0x46, 0x54, 0x72,
- 0x86, 0x84, 0x73, 0x36, 0x7e, 0xcc, 0x8b, 0xbc, 0xd9, 0xf9, 0x48, 0xe7,
- 0x83, 0x0a, 0x1e, 0xcd, 0x86, 0x2c, 0xdd, 0xf9, 0x40, 0x29, 0xec, 0x9d,
- 0x44, 0xec, 0x3a, 0x76, 0x1a, 0xf3, 0x35, 0x5b, 0xa5, 0x94, 0x1d, 0xde,
- 0xe6, 0x27, 0x4f, 0x2d, 0x4d, 0x9f, 0x68, 0xfe, 0x40, 0xca, 0x5e, 0x99,
- 0xbb, 0x6a, 0x71, 0x37, 0x95, 0x4b, 0x04, 0x2c, 0xf5, 0xac, 0x5c, 0x8a,
- 0x0c, 0xef, 0x46, 0xa8, 0xa9, 0x92, 0x2a, 0x32, 0xb6, 0x24, 0x1f, 0x25,
- 0x19, 0xcf, 0xd2, 0xe2, 0x23, 0xf4, 0x07, 0x68, 0x04, 0x74, 0xf7, 0x29,
- 0xf9, 0x1c, 0x55, 0xb8, 0x05, 0x20, 0x41, 0xf8, 0x60, 0x60, 0xf2, 0xcd,
- 0x48, 0xb8, 0xdd, 0x73, 0x30, 0xcf, 0x72, 0xec, 0x79, 0xa1, 0x77, 0x1c,
- 0x27, 0x37, 0x09, 0xe4, 0x3b, 0x3e, 0x3e, 0x35, 0x17, 0x93, 0xcd, 0x32,
- 0x83, 0x8f, 0x2e, 0x9b, 0x51, 0x2c, 0x48, 0x21, 0x81, 0x9c, 0x58, 0x9d,
- 0x43, 0x90, 0xb1, 0xf4, 0xd0, 0x5a, 0x07, 0x08, 0x20, 0x63, 0xbb, 0x20,
- 0x7f, 0xbc, 0xb6, 0x15, 0x81, 0x44, 0x72, 0xb3, 0x10, 0x03, 0x3b, 0xb0,
- 0x2b, 0x10, 0xe4, 0x97, 0xaa, 0x12, 0xbc, 0xed, 0x91, 0x03, 0x04, 0xda,
- 0xda, 0x7d, 0xdc, 0x09, 0x67, 0x84, 0x5a, 0x88, 0x41, 0x2b, 0xbd, 0x6d,
- 0xe5, 0x32, 0xf1, 0xeb, 0x31, 0x2f, 0x20, 0x93, 0x1a, 0x4e, 0x25, 0xe0,
- 0x69, 0xf9, 0xc0, 0x34, 0x67, 0xa1, 0x9d, 0x27, 0xa0, 0x1d, 0x67, 0x38,
- 0x10, 0x45, 0x6f, 0x66, 0x8d, 0x75, 0x54, 0xd4, 0xcc, 0xb0, 0x06, 0xa5,
- 0x6b, 0x0a, 0x91, 0x53, 0xb5, 0xa8, 0xaa, 0x7d, 0x78, 0x3e, 0x53, 0xd6,
- 0x94, 0xd6, 0xc8, 0x64, 0xeb, 0xdf, 0x5a, 0xb3, 0x83, 0x77, 0x74, 0x5d,
- 0x94, 0x83, 0xf1, 0x12, 0x8e, 0x19, 0xaf, 0xa6, 0x1e, 0x27, 0x71, 0x97,
- 0x57, 0xac, 0x79, 0xf0, 0xef, 0x29, 0x20, 0x0d, 0x7a, 0x0c, 0x8e, 0x51,
- 0x23, 0x5f, 0xba, 0xcd, 0xb4, 0x65, 0xf9, 0x95, 0x38, 0x09, 0xc9, 0x15,
- 0xfb, 0xb6, 0x03, 0x94, 0x45, 0xb6, 0x4e, 0x1a, 0xcf, 0xa6, 0xe9, 0x77,
- 0x52, 0x2e, 0x1a, 0x5b, 0x9b, 0xe2, 0x12, 0x6a, 0x42, 0x26, 0x15, 0x1b,
- 0x34, 0x97, 0x42, 0x33, 0xb7, 0x6e, 0x1b, 0xaa, 0x02, 0xc7, 0xd4, 0x30,
- 0xe9, 0x8c, 0x4b, 0xea, 0xac, 0xbc, 0x4a, 0xf8, 0x30, 0x35, 0x97, 0x97,
- 0x7f, 0x39, 0x3f, 0x7e, 0xa5, 0x6f, 0xae, 0x5b, 0x33, 0x66, 0x4c, 0x04,
- 0x68, 0x2e, 0x13, 0x86, 0x62, 0xaf, 0x8e, 0xbd, 0xd9, 0x64, 0x83, 0x46,
- 0xc1, 0x3c, 0xfc, 0x99, 0x41, 0xf2, 0xe3, 0xeb, 0x93, 0xd1, 0xf9, 0xe9,
- 0xd9, 0xd1, 0xab, 0x97, 0x3f, 0xaa, 0x48, 0xfe, 0x92, 0x62, 0x84, 0xac,
- 0xa7, 0xd9, 0x9f, 0x39, 0x46, 0x17, 0x79, 0xef, 0xdd, 0xf1, 0x0f, 0x1f,
- 0x8c, 0x3d, 0xf6, 0x8a, 0xea, 0x3a, 0xf4, 0x6f, 0xd3, 0x99, 0xbc, 0x44,
- 0xfa, 0x69, 0x44, 0xb7, 0x1b, 0xb6, 0x29, 0x38, 0xbb, 0x13, 0x6b, 0x4b,
- 0x09, 0xbb, 0x44, 0xa5, 0x7b, 0xc5, 0xd1, 0x7a, 0x55, 0xe3, 0xd2, 0x56,
- 0x5e, 0x7d, 0xa4, 0xf0, 0xb7, 0xbb, 0xfe, 0x37, 0x1b, 0x06, 0x55, 0x13,
- 0x86, 0xc8, 0x87, 0xe6, 0x00, 0xb8, 0x2e, 0xbf, 0x71, 0x80, 0x7e, 0xe1,
- 0x4f, 0xaf, 0xc8, 0x8f, 0x66, 0x09, 0x68, 0xa5, 0x9a, 0x3c, 0x40, 0x2f,
- 0xc2, 0x52, 0x2b, 0xd4, 0x6b, 0x84, 0xa1, 0xd7, 0x74, 0x1a, 0x95, 0x63,
- 0xa2, 0xc2, 0xd8, 0xbe, 0xa4, 0x5a, 0xd7, 0x1a, 0xc5, 0xb3, 0xce, 0x8f,
- 0x2f, 0x46, 0x27, 0xa3, 0x4b, 0x32, 0x5c, 0xa5, 0xc8, 0xaa, 0x04, 0xa1,
- 0xb4, 0x02, 0x2e, 0x48, 0x5b, 0xda, 0x84, 0xc3, 0x7e, 0x61, 0x9f, 0xd6,
- 0x89, 0xb6, 0x62, 0xae, 0x9d, 0xc5, 0x4d, 0x37, 0x00, 0xa7, 0x86, 0x93,
- 0x22, 0xca, 0xb4, 0xd9, 0xe9, 0x95, 0x1e, 0xe0, 0x52, 0xb6, 0x46, 0xa7,
- 0xbe, 0x0d, 0x6a, 0x53, 0x61, 0x75, 0x66, 0xf9, 0xd8, 0xab, 0x6a, 0xdf,
- 0xc6, 0x90, 0x10, 0x3c, 0x49, 0x28, 0x7a, 0xfc, 0x23, 0xa4, 0x01, 0x31,
- 0x47, 0x8d, 0x20, 0x75, 0xb7, 0xe5, 0x5a, 0x93, 0xb4, 0x66, 0x3f, 0x81,
- 0xdd, 0xba, 0xa5, 0x60, 0xb4, 0xa8, 0x9e, 0x66, 0x7f, 0xea, 0xa1, 0xd0,
- 0x85, 0xf5, 0x0d, 0x84, 0xd5, 0x22, 0xb2, 0x49, 0x28, 0xe7, 0x9c, 0x8a,
- 0x4a, 0xfe, 0x49, 0xa3, 0xb5, 0x80, 0x5a, 0x03, 0x40, 0x41, 0x19, 0x59,
- 0xa0, 0x82, 0x88, 0xea, 0x78, 0x4d, 0x39, 0xac, 0xa0, 0xd6, 0x9b, 0x92,
- 0xbe, 0x05, 0x17, 0xbc, 0xff, 0x31, 0xbd, 0x4e, 0x69, 0x06, 0xc7, 0x4b,
- 0xbf, 0x6a, 0xa3, 0xed, 0x3d, 0x17, 0x10, 0xc2, 0xc4, 0x03, 0x22, 0x9d,
- 0x56, 0xf0, 0x64, 0x34, 0x52, 0x2a, 0x42, 0x0d, 0x1f, 0xc1, 0x3b, 0x0f,
- 0xdb, 0x2c, 0x5e, 0xba, 0x2f, 0xd5, 0x08, 0x5b, 0x37, 0xa3, 0x5e, 0x99,
- 0x57, 0xda, 0xbe, 0x55, 0xa6, 0xc0, 0x45, 0x76, 0x2a, 0xd6, 0x14, 0x71,
- 0x2c, 0x26, 0xf6, 0x32, 0xa6, 0xac, 0x43, 0x02, 0x18, 0x54, 0xc2, 0x90,
- 0x66, 0xc4, 0x1f, 0x85, 0x96, 0x50, 0x1b, 0x16, 0x45, 0xd3, 0x29, 0xec,
- 0xae, 0xec, 0x99, 0x2e, 0x8f, 0x83, 0xa7, 0xdb, 0xdb, 0x56, 0x1c, 0x5f,
- 0xbb, 0x97, 0x0f, 0x5a, 0x86, 0x0c, 0x5d, 0xac, 0x3e, 0x27, 0x5c, 0xa6,
- 0xc8, 0xef, 0xd3, 0xc0, 0x8e, 0x97, 0x27, 0x5e, 0x4b, 0xf6, 0xbd, 0xc5,
- 0xa7, 0x40, 0xe0, 0xb5, 0x0a, 0x64, 0xd3, 0xe8, 0x5a, 0xd8, 0x00, 0xa3,
- 0x5f, 0x2e, 0x50, 0xed, 0x6c, 0x22, 0x35, 0x24, 0x80, 0xda, 0xb7, 0x0d,
- 0xea, 0x25, 0xe2, 0x26, 0xcb, 0xcc, 0xea, 0xdb, 0xf7, 0xa7, 0x97, 0x27,
- 0xe7, 0x3e, 0xfe, 0x20, 0xf9, 0xe1, 0xe4, 0xf2, 0x5b, 0xa3, 0xb5, 0x8f,
- 0x4e, 0xde, 0x7d, 0x73, 0x4a, 0x41, 0xde, 0xb7, 0x6f, 0x0f, 0xdf, 0x11,
- 0xbd, 0xc8, 0x3b, 0x40, 0x9b, 0x0f, 0x61, 0x38, 0x90, 0x38, 0x32, 0x53,
- 0x4c, 0x7b, 0x87, 0x88, 0x27, 0xfa, 0x61, 0xac, 0xb1, 0x73, 0xfc, 0xb8,
- 0x00, 0x7a, 0xd1, 0x9e, 0xa4, 0x0d, 0x94, 0xb3, 0x87, 0x65, 0x70, 0x4f,
- 0x6e, 0x5c, 0x1c, 0x5b, 0x32, 0xb6, 0x68, 0xa2, 0xbb, 0xc5, 0x23, 0x90,
- 0xe4, 0xcc, 0x1a, 0x3a, 0x70, 0x34, 0x7c, 0x77, 0xbb, 0xf8, 0x25, 0x56,
- 0xd4, 0x52, 0x4f, 0xc3, 0x8e, 0x31, 0x3a, 0x53, 0x21, 0x76, 0x0d, 0xdf,
- 0x97, 0xed, 0xa4, 0x23, 0xf3, 0x45, 0x74, 0x09, 0x40, 0xa2, 0xd2, 0x39,
- 0xd2, 0xc9, 0xe2, 0x24, 0xa3, 0xf9, 0xe2, 0xd4, 0xbf, 0x50, 0x87, 0xad,
- 0xf2, 0x80, 0x8a, 0x0f, 0xbe, 0x2e, 0x33, 0x77, 0x72, 0x07, 0x67, 0xda,
- 0x8c, 0xc6, 0x7f, 0x60, 0x86, 0xf1, 0xe5, 0x32, 0x20, 0xb9, 0x36, 0x30,
- 0x4b, 0xb2, 0x6d, 0x4b, 0x82, 0x89, 0xd9, 0x7f, 0xc0, 0x6a, 0xa5, 0x25,
- 0x57, 0xd7, 0x4a, 0x9a, 0xa6, 0x39, 0x6d, 0x59, 0xb0, 0x68, 0x48, 0xc8,
- 0x90, 0xbc, 0x46, 0x19, 0x33, 0xa4, 0xa5, 0x3e, 0xd6, 0xa2, 0x65, 0xe0,
- 0xfb, 0xee, 0x4c, 0x83, 0x93, 0x9a, 0xd7, 0x6a, 0x6b, 0x34, 0x3a, 0xe8,
- 0x04, 0xaa, 0x20, 0xc2, 0x5d, 0x91, 0x11, 0xca, 0x81, 0xfe, 0xfa, 0xd7,
- 0xc5, 0xb5, 0x9f, 0xf2, 0xca, 0x35, 0xe0, 0x17, 0xb1, 0x95, 0x15, 0x26,
- 0x77, 0x56, 0x8b, 0xa4, 0xee, 0x64, 0xab, 0x07, 0x52, 0x4c, 0x72, 0x6f,
- 0xd5, 0x07, 0xe5, 0xf7, 0xfb, 0xe1, 0xef, 0xf7, 0x39, 0xc8, 0x70, 0x72,
- 0x7e, 0xfb, 0xdc, 0x32, 0x20, 0x33, 0x91, 0x83, 0xaf, 0xbe, 0xa9, 0x52,
- 0x40, 0x3b, 0x8c, 0x1e, 0x15, 0x97, 0x39, 0xcb, 0x44, 0x0e, 0xfe, 0x11,
- 0x84, 0x74, 0x59, 0x21, 0x41, 0x1d, 0x8f, 0x20, 0xba, 0xc2, 0xb8, 0x7f,
- 0x78, 0x9e, 0x20, 0xa7, 0xe8, 0xba, 0x32, 0x0d, 0x9a, 0xdf, 0x3f, 0xb5,
- 0xc9, 0x38, 0x4e, 0xa6, 0xa1, 0x9e, 0xa2, 0xa4, 0x43, 0x0e, 0xf2, 0xc5,
- 0xad, 0x16, 0xe4, 0x36, 0x7f, 0x7d, 0x6e, 0x6b, 0x69, 0xd5, 0xad, 0x20,
- 0x75, 0x8b, 0x6d, 0x5c, 0x85, 0x3f, 0x3a, 0x07, 0x1f, 0x18, 0x49, 0x06,
- 0x67, 0x64, 0x74, 0xfa, 0x95, 0xb5, 0x33, 0x32, 0xbc, 0x8a, 0xc2, 0xc8,
- 0xfa, 0x9a, 0x21, 0x35, 0x1e, 0xf2, 0xc8, 0x13, 0x2e, 0x7e, 0xa5, 0x0f,
- 0x59, 0xf5, 0x9f, 0xf6, 0x77, 0x77, 0xf7, 0x0e, 0xf6, 0x3e, 0x7f, 0xb1,
- 0x7b, 0xb0, 0xb7, 0xb7, 0xb7, 0x7f, 0xb0, 0x77, 0x70, 0xb0, 0xbf, 0xfb,
- 0xcb, 0x0e, 0xf9, 0x8f, 0x6e, 0xf3, 0xec, 0x4e, 0x23, 0xd3, 0xec, 0xe7,
- 0xc3, 0xb6, 0xae, 0x9b, 0x7b, 0x06, 0x03, 0xb0, 0xa7, 0x0f, 0xfb, 0x5a,
- 0x35, 0x1f, 0x4b, 0x2b, 0xc3, 0x39, 0x33, 0x4c, 0x21, 0xb9, 0x70, 0xa9,
- 0xe6, 0x38, 0x83, 0x1e, 0xcd, 0x3d, 0x7a, 0xf5, 0xb7, 0x25, 0x8d, 0x74,
- 0x4c, 0xea, 0x00, 0x74, 0x9a, 0xda, 0x26, 0xf6, 0x5e, 0xcf, 0xca, 0xf1,
- 0x18, 0xa9, 0x4b, 0x36, 0xb7, 0x7d, 0x98, 0x10, 0x97, 0xf2, 0x47, 0xde,
- 0x12, 0x12, 0x3a, 0x04, 0xaa, 0x98, 0x0f, 0xba, 0x9b, 0x1d, 0xe7, 0xd9,
- 0x33, 0x3b, 0x60, 0x52, 0x52, 0x5d, 0x11, 0x78, 0xba, 0xcd, 0x24, 0x55,
- 0x36, 0xe7, 0x2d, 0xb9, 0xca, 0x3e, 0xdf, 0x3d, 0x38, 0xa0, 0xd2, 0x3f,
- 0x7f, 0xde, 0xeb, 0x0b, 0x20, 0xdc, 0xcf, 0x72, 0xe9, 0xdb, 0xeb, 0x89,
- 0xdb, 0x20, 0xf3, 0xc3, 0x1f, 0x67, 0xb1, 0x9c, 0x67, 0x95, 0x31, 0x44,
- 0xa8, 0xce, 0x33, 0x10, 0xd1, 0xf0, 0x18, 0x32, 0xc7, 0x22, 0x18, 0x99,
- 0x3a, 0xd9, 0x38, 0x74, 0x23, 0x30, 0x57, 0xb4, 0x65, 0xa1, 0x60, 0xbe,
- 0x30, 0x37, 0x44, 0xdb, 0x36, 0xca, 0x5f, 0x01, 0xac, 0xc9, 0xb9, 0x6c,
- 0x9c, 0xc5, 0xc7, 0xf7, 0xad, 0x48, 0x06, 0x1c, 0xae, 0x82, 0xab, 0x0f,
- 0xd3, 0xe3, 0xac, 0xc3, 0xc3, 0x63, 0xe2, 0x29, 0xb7, 0x92, 0xc0, 0xf7,
- 0x93, 0x37, 0xd8, 0xfd, 0x67, 0x7b, 0xbf, 0x30, 0x5e, 0x99, 0x0e, 0x84,
- 0x9b, 0x35, 0x0d, 0xbe, 0xf8, 0x29, 0x5a, 0xba, 0x91, 0xb6, 0xb2, 0xe1,
- 0xf5, 0x50, 0xb5, 0x0a, 0xf1, 0x36, 0xf6, 0xfd, 0xac, 0x11, 0xae, 0x53,
- 0xc0, 0x35, 0xc5, 0x61, 0xa7, 0xa9, 0x43, 0xc9, 0x77, 0xd5, 0xea, 0xc0,
- 0x6c, 0xe5, 0xb8, 0xb7, 0xc7, 0x97, 0x87, 0xe6, 0xf2, 0xf8, 0x2e, 0x34,
- 0xf4, 0xdf, 0x66, 0xc6, 0x2a, 0xa7, 0xc5, 0xde, 0xc2, 0x79, 0xb8, 0xb5,
- 0xec, 0xe0, 0x34, 0x77, 0x4f, 0x93, 0x2d, 0x0a, 0x51, 0x3e, 0xfb, 0xfc,
- 0xd9, 0xd3, 0x6d, 0x2e, 0xc5, 0xc2, 0xaf, 0x65, 0x94, 0x20, 0x06, 0xaf,
- 0xa4, 0xb0, 0x53, 0x91, 0x03, 0xdf, 0x8a, 0xa4, 0xf7, 0x17, 0x27, 0x7c,
- 0xa4, 0x6f, 0x98, 0x44, 0x84, 0x8d, 0xde, 0x2e, 0x9b, 0x24, 0xee, 0x5b,
- 0x4f, 0xc9, 0x98, 0xe7, 0xc4, 0x74, 0x0a, 0xf2, 0x05, 0xba, 0x18, 0x2d,
- 0xf9, 0x07, 0x6e, 0x58, 0x73, 0x40, 0x4b, 0xd4, 0x12, 0x95, 0xba, 0x6f,
- 0xe8, 0x0c, 0xa8, 0x51, 0x89, 0x99, 0x59, 0xf6, 0x99, 0xb5, 0xc0, 0xc8,
- 0x0e, 0x62, 0x79, 0xc4, 0xd2, 0xbf, 0xc3, 0xc6, 0xbf, 0xcd, 0x90, 0x1f,
- 0x28, 0x85, 0xb4, 0x0d, 0xcd, 0x83, 0x8a, 0x1d, 0xa7, 0x1e, 0xb7, 0xd2,
- 0x51, 0x9d, 0xb6, 0xe9, 0x91, 0xba, 0x29, 0x9f, 0x93, 0x88, 0x22, 0x3b,
- 0x85, 0x8c, 0x67, 0x69, 0xe0, 0x59, 0xcc, 0x5b, 0x2e, 0x1f, 0x21, 0xd3,
- 0x00, 0xa9, 0x05, 0x72, 0x0e, 0xe6, 0xe6, 0x3a, 0xaa, 0xee, 0x45, 0xc3,
- 0x86, 0x99, 0x60, 0x4b, 0x1f, 0x76, 0x10, 0x41, 0x4c, 0x1b, 0xe3, 0xa7,
- 0xd2, 0x58, 0xd6, 0x24, 0x35, 0x9a, 0x5b, 0x1d, 0x68, 0x89, 0xfd, 0xc1,
- 0x5c, 0x7f, 0xe5, 0x01, 0xe6, 0xfc, 0xfc, 0x52, 0xfd, 0xbb, 0x3e, 0xe7,
- 0x61, 0xa9, 0xd3, 0xee, 0xc0, 0x56, 0x74, 0x8d, 0x19, 0x75, 0x81, 0x9f,
- 0xb4, 0xd6, 0xcf, 0x16, 0x7a, 0xb2, 0xb3, 0xb3, 0xbd, 0xa2, 0x37, 0xf2,
- 0xeb, 0xd8, 0xd7, 0xcf, 0x41, 0x4a, 0xe4, 0xa5, 0x74, 0x9b, 0x35, 0x6f,
- 0x37, 0x4e, 0x53, 0x9b, 0xd7, 0xb4, 0x92, 0x53, 0x01, 0xc6, 0xb3, 0x1b,
- 0x55, 0xcd, 0x2b, 0xee, 0xbc, 0x0a, 0xaf, 0xf6, 0x20, 0x04, 0x8b, 0xa7,
- 0x24, 0x71, 0x5c, 0x00, 0x9e, 0x51, 0x01, 0xc3, 0xe4, 0x90, 0x76, 0x43,
- 0xeb, 0xc3, 0x5e, 0x97, 0xd5, 0x9f, 0xab, 0x75, 0x0f, 0x54, 0x89, 0xb5,
- 0xee, 0xbc, 0xbe, 0xf7, 0x4b, 0x55, 0xf3, 0x94, 0x13, 0xc4, 0x3a, 0x7b,
- 0xc7, 0x19, 0xf3, 0x1f, 0x59, 0xc9, 0xe9, 0xf1, 0x99, 0xe7, 0x45, 0xab,
- 0xa6, 0xaf, 0x34, 0x02, 0xa4, 0x8b, 0x1d, 0x04, 0xa8, 0x52, 0x2b, 0xa5,
- 0xe0, 0xf6, 0xeb, 0x7c, 0x82, 0x82, 0x44, 0xb2, 0x5a, 0x58, 0xb1, 0xb6,
- 0x9b, 0x98, 0x41, 0x0a, 0x63, 0xde, 0x5e, 0xad, 0xf9, 0xe8, 0xf3, 0x8e,
- 0x67, 0x14, 0x93, 0x85, 0x54, 0x90, 0xc0, 0x38, 0x3c, 0x39, 0x25, 0x58,
- 0xec, 0xa9, 0x31, 0xf1, 0x46, 0xaa, 0x2a, 0x01, 0x26, 0x0e, 0xc0, 0x6e,
- 0x91, 0x93, 0xba, 0xde, 0xb7, 0x05, 0x87, 0x34, 0x5b, 0x12, 0x76, 0x0b,
- 0x85, 0x58, 0xd9, 0xf4, 0x17, 0x92, 0x50, 0xb3, 0x5a, 0x46, 0x5f, 0xaa,
- 0xd9, 0x69, 0x0b, 0x02, 0x6e, 0x2a, 0x4d, 0x71, 0x9b, 0xcd, 0xca, 0x05,
- 0x4c, 0x6a, 0x16, 0xd3, 0xa8, 0x77, 0x56, 0x65, 0xb3, 0xec, 0x56, 0xbc,
- 0xab, 0x4c, 0x67, 0xfc, 0x8d, 0x20, 0x16, 0xb8, 0x36, 0x71, 0x23, 0x59,
- 0x2d, 0x01, 0x2a, 0x82, 0x3e, 0xba, 0xc3, 0xac, 0x50, 0x8e, 0xec, 0x87,
- 0xbe, 0xef, 0x8a, 0x70, 0x98, 0x19, 0xb2, 0x45, 0x1c, 0x06, 0x64, 0xe4,
- 0x0a, 0xb8, 0xfd, 0x7d, 0x2d, 0x7c, 0x2e, 0xdd, 0x6c, 0x11, 0x76, 0x16,
- 0x6a, 0x79, 0x4b, 0xf6, 0xbe, 0xf7, 0x95, 0x26, 0x9d, 0x43, 0x06, 0x74,
- 0xf3, 0xf4, 0xc9, 0x53, 0x8b, 0x96, 0xae, 0x8c, 0x45, 0x46, 0x05, 0x71,
- 0xfa, 0x9c, 0x3a, 0x8e, 0xcd, 0x51, 0xce, 0xcc, 0x3f, 0x01, 0xa8, 0x64,
- 0x88, 0xb5, 0x79, 0x96, 0xe2, 0xcd, 0x1e, 0xa6, 0x9d, 0x30, 0x37, 0x48,
- 0x87, 0x92, 0x7f, 0xa1, 0xa9, 0x6a, 0x09, 0x36, 0xf1, 0x3e, 0xdf, 0x86,
- 0x14, 0xe7, 0x6d, 0x26, 0x43, 0xdb, 0x7b, 0x41, 0xfd, 0x70, 0xff, 0x5f,
- 0xf3, 0x54, 0xd2, 0x20, 0x58, 0x0f, 0x29, 0x2b, 0x9d, 0x5e, 0x5e, 0x86,
- 0x31, 0x57, 0x23, 0xfd, 0x7a, 0x49, 0xf1, 0x47, 0x5b, 0xc0, 0x8b, 0x7a,
- 0x31, 0xa7, 0xbb, 0x28, 0xe3, 0xc2, 0xbf, 0xb6, 0x71, 0x32, 0xe9, 0x96,
- 0x66, 0x79, 0xb9, 0xf5, 0xd3, 0xf2, 0x8e, 0xaa, 0x16, 0x5f, 0x5d, 0xe5,
- 0x13, 0x8a, 0xfd, 0x3b, 0xd6, 0x70, 0x92, 0xf1, 0xfc, 0xe0, 0x5c, 0xab,
- 0xaf, 0x99, 0xb1, 0x25, 0x8b, 0xe5, 0x78, 0x66, 0x2e, 0x6b, 0xcd, 0x67,
- 0x31, 0xa7, 0x0a, 0xb3, 0x64, 0xac, 0x2d, 0x34, 0xc7, 0xf4, 0x86, 0x30,
- 0x38, 0x3b, 0x39, 0x14, 0x08, 0x97, 0x56, 0x50, 0xc1, 0xe7, 0x28, 0xdf,
- 0x4c, 0x89, 0x06, 0xf3, 0xb2, 0xd0, 0x74, 0xb8, 0x65, 0xcd, 0x74, 0xb2,
- 0x88, 0xe6, 0x70, 0x95, 0xac, 0x04, 0x4f, 0x4a, 0xd1, 0x06, 0x31, 0xcd,
- 0xf1, 0x86, 0x3f, 0x98, 0xe9, 0x60, 0x71, 0xb3, 0xd0, 0x95, 0x56, 0x85,
- 0x88, 0xb5, 0x25, 0x49, 0xc0, 0xc2, 0xd1, 0x3b, 0xff, 0xf6, 0x7c, 0x98,
- 0x1c, 0x53, 0x4b, 0xdc, 0x27, 0x51, 0x74, 0xe1, 0xa3, 0x31, 0xbf, 0x33,
- 0x83, 0xbd, 0xa6, 0x0b, 0xec, 0xac, 0xa2, 0x7f, 0xa1, 0x35, 0xf9, 0x25,
- 0xbb, 0x65, 0xf1, 0xdb, 0xf6, 0x57, 0x4d, 0x43, 0x9a, 0x66, 0x71, 0x8e,
- 0xbf, 0x9b, 0xb3, 0x62, 0xd4, 0x2f, 0xbb, 0x4c, 0xee, 0x0b, 0x65, 0xd5,
- 0x22, 0xdf, 0xe2, 0x37, 0x13, 0xa3, 0x95, 0x41, 0xb7, 0x5a, 0xdc, 0x63,
- 0xfd, 0x3c, 0xe1, 0xc8, 0xfa, 0x27, 0x37, 0xe0, 0x6d, 0x2d, 0xd9, 0x7e,
- 0x16, 0xc0, 0xcb, 0x07, 0xab, 0x62, 0xda, 0xa9, 0x2a, 0x13, 0xb8, 0x73,
- 0x29, 0x81, 0x69, 0xf6, 0x68, 0xd4, 0x59, 0xe7, 0xbc, 0x7a, 0xf6, 0x9b,
- 0xfe, 0x82, 0xcc, 0x6e, 0xea, 0x8b, 0xd1, 0x5a, 0xcc, 0x12, 0x0c, 0x37,
- 0xfe, 0xbf, 0x8c, 0x2c, 0x35, 0xbb, 0x09, 0x16, 0x03, 0x00,
+ 0xe3, 0x74, 0x3c, 0xbb, 0x4b, 0x6e, 0xd2, 0x8f, 0x19, 0x8d, 0x77, 0x61,
+ 0xf6, 0x29, 0xcd, 0x80, 0xb9, 0x36, 0x66, 0x90, 0x63, 0x22, 0x18, 0xa6,
+ 0xe5, 0x72, 0x6c, 0x84, 0xcb, 0xdf, 0x97, 0x65, 0xc3, 0x13, 0x93, 0x7e,
+ 0x2c, 0xf3, 0x69, 0xeb, 0x2e, 0xbe, 0xc9, 0x48, 0xa0, 0xd1, 0x87, 0x71,
+ 0x49, 0x19, 0x81, 0x4a, 0x3d, 0xc5, 0x41, 0xcb, 0x1b, 0xba, 0xee, 0x8c,
+ 0x28, 0x4c, 0x67, 0x75, 0x99, 0x24, 0xd7, 0x25, 0x9d, 0x12, 0x08, 0x60,
+ 0x6c, 0x73, 0xb3, 0x28, 0x37, 0x29, 0xdd, 0x6a, 0xe6, 0x02, 0xb3, 0xe7,
+ 0xa0, 0xca, 0x20, 0x8b, 0xb1, 0x52, 0xe9, 0xac, 0xcf, 0xb7, 0x17, 0xbd,
+ 0x23, 0x53, 0x95, 0x6c, 0xfe, 0xdb, 0x66, 0x3f, 0xd9, 0xfc, 0xf7, 0x4d,
+ 0xec, 0x87, 0xcd, 0x3f, 0x6f, 0xba, 0x75, 0x36, 0xca, 0xd8, 0xc7, 0x7c,
+ 0x9a, 0xf1, 0x96, 0x38, 0x39, 0xff, 0xf8, 0x34, 0xf9, 0x07, 0xe9, 0x0e,
+ 0x46, 0xd6, 0x66, 0x9f, 0x74, 0x43, 0xea, 0xd8, 0xcc, 0xdb, 0x89, 0x11,
+ 0xba, 0xe9, 0x82, 0x94, 0x88, 0xac, 0x9a, 0x98, 0xdd, 0x9b, 0x5e, 0x9b,
+ 0xfd, 0x6a, 0xee, 0x62, 0x6d, 0x8e, 0xda, 0xa7, 0x57, 0x78, 0x58, 0x46,
+ 0x40, 0x26, 0x45, 0x3a, 0x37, 0x27, 0xe2, 0x94, 0x7a, 0x94, 0x17, 0xe1,
+ 0x62, 0xfe, 0x78, 0x95, 0x7d, 0xbe, 0x7b, 0x70, 0xf0, 0xe8, 0x4f, 0xfb,
+ 0x4f, 0xb2, 0xe6, 0x66, 0xf7, 0xe7, 0x1d, 0xfb, 0xc8, 0xc9, 0x15, 0xa6,
+ 0x5d, 0xb7, 0x9f, 0x76, 0xc2, 0xdc, 0xf2, 0xf6, 0x96, 0x30, 0xef, 0x9b,
+ 0xbf, 0x67, 0x57, 0xf9, 0xa7, 0xbe, 0xea, 0x4b, 0x7c, 0xe6, 0x52, 0xb3,
+ 0xd5, 0xcc, 0xfa, 0x91, 0x88, 0xd0, 0xe6, 0xae, 0x97, 0x59, 0x6d, 0x66,
+ 0xf2, 0xf6, 0x26, 0x6d, 0x12, 0xdb, 0x00, 0xaf, 0xec, 0x3c, 0xbf, 0xbe,
+ 0x69, 0x92, 0xdb, 0x94, 0x2e, 0x9b, 0x93, 0x86, 0x9b, 0xa0, 0x5b, 0xde,
+ 0x5c, 0x31, 0x57, 0xa9, 0xb9, 0x2b, 0x68, 0x0d, 0x71, 0xa5, 0x8f, 0x9d,
+ 0x86, 0xd1, 0x98, 0x6d, 0xce, 0x0b, 0xe2, 0xd4, 0xa9, 0x71, 0x5a, 0xd3,
+ 0xa1, 0x2d, 0x8c, 0x70, 0x68, 0x8c, 0x8e, 0xb0, 0xa4, 0x7f, 0xdd, 0x18,
+ 0x2d, 0x00, 0x73, 0x20, 0x1d, 0xc5, 0x45, 0xf9, 0x8a, 0x96, 0x93, 0xd6,
+ 0xc6, 0x5e, 0x5e, 0x66, 0x91, 0xfa, 0xb2, 0xcc, 0xf6, 0x8d, 0xda, 0x1c,
+ 0x38, 0x23, 0x99, 0xec, 0xce, 0xe8, 0x91, 0x90, 0xed, 0xf1, 0x38, 0xd1,
+ 0xc7, 0xb4, 0x26, 0x45, 0x81, 0xd5, 0x01, 0xd3, 0x79, 0x6f, 0xb0, 0x66,
+ 0xd2, 0xd2, 0x0f, 0xa4, 0x92, 0x74, 0x14, 0x1f, 0xbc, 0x36, 0x2d, 0xcd,
+ 0x26, 0x33, 0xbd, 0x35, 0xc2, 0x98, 0x46, 0x46, 0x22, 0x16, 0xb3, 0x82,
+ 0x4d, 0x6e, 0xda, 0xa4, 0x1f, 0xe6, 0x0d, 0xdd, 0x31, 0xd0, 0x61, 0x4d,
+ 0x7f, 0xcd, 0xa4, 0x40, 0x11, 0x35, 0x82, 0xda, 0x1b, 0x3f, 0xae, 0x47,
+ 0xf3, 0x6c, 0xf2, 0xd1, 0x68, 0x29, 0x46, 0x21, 0xcd, 0xec, 0x5b, 0xb8,
+ 0xcf, 0x27, 0xa4, 0x1b, 0xcd, 0xcc, 0x79, 0x99, 0x94, 0x55, 0x45, 0xfa,
+ 0x3e, 0xad, 0xe0, 0x98, 0x85, 0xe8, 0x3c, 0x33, 0x6a, 0x84, 0x3f, 0x9d,
+ 0x39, 0x5d, 0x68, 0x46, 0xbe, 0x18, 0xbd, 0x04, 0x12, 0xc4, 0xe8, 0x0f,
+ 0x90, 0xf9, 0x18, 0x38, 0x7a, 0x47, 0x6d, 0x4f, 0x26, 0xd9, 0xa2, 0xa9,
+ 0x63, 0x63, 0xd2, 0x05, 0x37, 0xdd, 0xa9, 0x32, 0x9a, 0x79, 0x5f, 0xe9,
+ 0xc2, 0xbc, 0xda, 0x4b, 0x1f, 0x7a, 0x97, 0xea, 0x31, 0x46, 0x0f, 0xab,
+ 0xed, 0xac, 0x35, 0xd8, 0x1b, 0x46, 0x8c, 0x61, 0xce, 0xe7, 0xd4, 0x51,
+ 0x7a, 0xb8, 0xe6, 0x93, 0x0a, 0xd1, 0x4c, 0x0b, 0xc9, 0x9a, 0x36, 0x7f,
+ 0x97, 0xae, 0x2e, 0x33, 0x9f, 0xb6, 0x71, 0xf3, 0x55, 0xbb, 0xa6, 0xf4,
+ 0x79, 0x52, 0xf1, 0xcd, 0x4d, 0x3e, 0xad, 0x6f, 0x8c, 0xf2, 0x55, 0xcb,
+ 0xc9, 0xce, 0xe7, 0x66, 0xcf, 0x7c, 0xa4, 0xf5, 0x5d, 0x64, 0xd9, 0x74,
+ 0x98, 0x9c, 0x5d, 0x91, 0x54, 0xad, 0x4c, 0xa7, 0x1b, 0xfc, 0x9a, 0x6e,
+ 0x15, 0x33, 0x6f, 0x53, 0x28, 0xf1, 0xf6, 0x68, 0x71, 0x57, 0xbc, 0xdb,
+ 0x01, 0x92, 0x3c, 0x35, 0x3f, 0x31, 0xbd, 0x9d, 0xb5, 0xaf, 0x20, 0x9c,
+ 0x43, 0x23, 0xbd, 0xa9, 0x7b, 0xe3, 0x2c, 0xc1, 0x4e, 0x1c, 0x67, 0xcd,
+ 0x6d, 0x96, 0xd9, 0xe6, 0xea, 0xcc, 0x5c, 0x7b, 0xb4, 0x68, 0xac, 0xf9,
+ 0x41, 0x18, 0xd2, 0xd4, 0x9e, 0x5f, 0x9c, 0x7d, 0x73, 0x71, 0x3c, 0x1a,
+ 0x25, 0x6f, 0x8e, 0x2f, 0x8f, 0x2f, 0x5a, 0x33, 0x5d, 0x94, 0xd5, 0x1c,
+ 0x2b, 0x3a, 0xcd, 0xeb, 0xc5, 0x2c, 0xbd, 0xa3, 0xa5, 0x36, 0x23, 0xb9,
+ 0xae, 0xe8, 0x64, 0xcd, 0x33, 0xba, 0x15, 0xa6, 0x4b, 0x48, 0x32, 0x73,
+ 0x1d, 0x99, 0xe5, 0x13, 0x8d, 0x97, 0x84, 0x09, 0xd4, 0xe4, 0xe2, 0xda,
+ 0xcd, 0xb4, 0x91, 0x38, 0x72, 0x93, 0xd2, 0x55, 0x6a, 0xd7, 0x83, 0x54,
+ 0x4f, 0x18, 0x37, 0x7d, 0xf7, 0x33, 0x9e, 0x26, 0xbe, 0xda, 0xcc, 0x9e,
+ 0xcd, 0xe7, 0x10, 0x76, 0xe6, 0x4f, 0xa7, 0x6d, 0x66, 0x57, 0x46, 0xd5,
+ 0x36, 0xb7, 0x2b, 0x5b, 0x0a, 0xdd, 0x3e, 0x69, 0x6f, 0xad, 0x7e, 0x6c,
+ 0xb6, 0x21, 0x89, 0x66, 0x6a, 0x90, 0xbb, 0xc2, 0x5f, 0xb0, 0x42, 0xcc,
+ 0xe8, 0x24, 0x24, 0xfb, 0xe4, 0xb1, 0x05, 0x75, 0x21, 0x33, 0x2b, 0x3b,
+ 0xe5, 0xe6, 0xeb, 0xe5, 0x15, 0x0e, 0x72, 0xb2, 0x65, 0x34, 0xf3, 0x37,
+ 0xc6, 0x5a, 0x32, 0x16, 0x4b, 0x3f, 0x39, 0xdf, 0xc6, 0x7b, 0x7b, 0xbb,
+ 0xfb, 0x8f, 0x59, 0x10, 0x0c, 0xb5, 0xb9, 0x57, 0x9e, 0x20, 0xde, 0xfb,
+ 0x40, 0xcb, 0xcb, 0x0f, 0x51, 0xe3, 0xc3, 0x64, 0xef, 0x0d, 0xff, 0xe4,
+ 0xf1, 0xe7, 0x4f, 0x3e, 0x7b, 0x2a, 0x3f, 0x6c, 0x6f, 0x70, 0xdb, 0x7f,
+ 0xec, 0x0e, 0x58, 0x7e, 0x64, 0x0a, 0x9a, 0x9e, 0x98, 0xd1, 0xcd, 0xf3,
+ 0xc2, 0x1c, 0x13, 0x73, 0xac, 0x44, 0x56, 0xd1, 0x7e, 0x36, 0x9d, 0xbf,
+ 0x62, 0xc9, 0x26, 0xeb, 0xda, 0x36, 0x29, 0xcd, 0xcb, 0x66, 0xcb, 0x1a,
+ 0x59, 0x6e, 0x17, 0x89, 0xd5, 0x84, 0x86, 0x3a, 0x92, 0x8e, 0x49, 0xc0,
+ 0x92, 0x5d, 0x65, 0x14, 0xe0, 0x2c, 0xfa, 0x35, 0x7b, 0x2b, 0x9a, 0x37,
+ 0x4c, 0xdf, 0xcc, 0x9d, 0x48, 0xd7, 0x5c, 0x38, 0xef, 0x46, 0x14, 0x40,
+ 0x42, 0xde, 0xe6, 0x35, 0x44, 0xc3, 0x6d, 0xb9, 0x9c, 0x19, 0x2b, 0x86,
+ 0x1e, 0x58, 0x2e, 0xf0, 0x82, 0xf9, 0xd4, 0xc2, 0xc9, 0x00, 0xa3, 0xb1,
+ 0xd0, 0xde, 0xe9, 0xb6, 0x62, 0xba, 0x66, 0xfe, 0xb9, 0x30, 0x5b, 0x89,
+ 0xbb, 0x33, 0xec, 0xde, 0x10, 0x90, 0x7d, 0xc1, 0x4e, 0xa4, 0x33, 0x0f,
+ 0xa1, 0x7d, 0x7e, 0x36, 0xba, 0x24, 0x0d, 0xe0, 0xfc, 0xdd, 0xa5, 0x69,
+ 0xc8, 0xa8, 0x00, 0x75, 0x63, 0x36, 0x25, 0xbd, 0x58, 0x64, 0x30, 0x21,
+ 0xb5, 0x39, 0xb3, 0xf7, 0x72, 0x08, 0x2a, 0xa8, 0x35, 0xfa, 0x49, 0xee,
+ 0x23, 0xdb, 0xd8, 0x74, 0x04, 0xd5, 0xc2, 0xe6, 0x3b, 0xdc, 0xbe, 0x93,
+ 0x6c, 0x7d, 0xb9, 0x6d, 0xf6, 0xec, 0xa0, 0xb4, 0xb3, 0x33, 0x18, 0xc8,
+ 0xab, 0xe6, 0xdb, 0x75, 0x3e, 0xcf, 0x67, 0x69, 0xe5, 0x75, 0x9d, 0x25,
+ 0x2a, 0x9d, 0x4f, 0x2b, 0x57, 0x26, 0x66, 0xd7, 0xa0, 0xdb, 0xce, 0x94,
+ 0xa4, 0x39, 0x84, 0x54, 0x72, 0x4b, 0x35, 0x25, 0x85, 0x00, 0x1a, 0xf3,
+ 0x22, 0xb7, 0x53, 0x47, 0x6b, 0x46, 0xe2, 0xaa, 0x35, 0x51, 0xdd, 0x75,
+ 0x0b, 0x26, 0x8e, 0x6e, 0x24, 0x78, 0x2a, 0xec, 0xd4, 0x25, 0xbd, 0x71,
+ 0x5a, 0xf5, 0x12, 0x2b, 0x8b, 0xf9, 0x6c, 0xd2, 0x09, 0xa9, 0xb2, 0xeb,
+ 0xa5, 0x19, 0x41, 0xc2, 0xb3, 0x4b, 0x23, 0xfd, 0xa3, 0x37, 0x52, 0x6d,
+ 0x60, 0x30, 0xa6, 0x47, 0xf2, 0x9a, 0xcd, 0xcc, 0x2b, 0x63, 0xb7, 0xd0,
+ 0xa1, 0x51, 0xfd, 0x15, 0x1a, 0x8d, 0xec, 0x98, 0xc8, 0x86, 0xf1, 0xf4,
+ 0x5a, 0x73, 0x54, 0x9a, 0xcc, 0x08, 0x1a, 0x88, 0x7f, 0x7a, 0x72, 0x60,
+ 0x96, 0x6c, 0x30, 0xa8, 0xcd, 0xfc, 0x93, 0xee, 0xbd, 0x10, 0x9b, 0xfe,
+ 0x0c, 0x0e, 0x13, 0xeb, 0x5b, 0x39, 0x13, 0x1d, 0x18, 0xd7, 0x26, 0xbf,
+ 0x0b, 0x11, 0x6a, 0x14, 0xd5, 0x5b, 0xf3, 0xe1, 0xd4, 0x2c, 0x99, 0x39,
+ 0x70, 0x6f, 0x68, 0xa2, 0xd8, 0x37, 0x92, 0x58, 0xb5, 0x19, 0x3b, 0x23,
+ 0xa7, 0x73, 0x9f, 0x3a, 0x5d, 0x66, 0x3a, 0xcd, 0xe9, 0xb7, 0xe6, 0x7c,
+ 0x99, 0x1b, 0x6e, 0x99, 0xc1, 0xf6, 0x90, 0x49, 0x9d, 0xbb, 0xc9, 0x84,
+ 0x19, 0x5b, 0xdf, 0x94, 0x64, 0x26, 0xf6, 0x58, 0x16, 0x0f, 0xe8, 0x5b,
+ 0x3d, 0xdc, 0xe7, 0xf3, 0x44, 0xbf, 0x25, 0x9f, 0x32, 0xe3, 0x98, 0xfa,
+ 0xba, 0x59, 0xdf, 0x5c, 0x34, 0x77, 0x9e, 0x91, 0x00, 0x59, 0xcd, 0x7d,
+ 0xaf, 0xac, 0xc2, 0x63, 0xae, 0xd4, 0x05, 0x29, 0x53, 0x22, 0xc3, 0x71,
+ 0x19, 0xe2, 0xc8, 0xd6, 0xdc, 0xb5, 0xbe, 0x99, 0x5b, 0x7a, 0xf2, 0xfa,
+ 0x46, 0x1f, 0xf5, 0x2e, 0xd6, 0xd4, 0x0c, 0x8e, 0x2e, 0x07, 0xb2, 0xa7,
+ 0xa7, 0x2a, 0xf7, 0xcb, 0x8a, 0x85, 0xd9, 0xac, 0x34, 0x7b, 0xb9, 0xc7,
+ 0x2a, 0xab, 0x74, 0x9b, 0x7a, 0x4d, 0xbd, 0xa4, 0x19, 0x67, 0x3f, 0x53,
+ 0x69, 0xd7, 0xc6, 0x76, 0x5a, 0xe6, 0xab, 0xbe, 0xb7, 0x6b, 0x6e, 0xa2,
+ 0x46, 0x98, 0x23, 0x73, 0x75, 0xd6, 0xb4, 0x8f, 0x75, 0xe6, 0xb1, 0xbd,
+ 0xcd, 0x55, 0xb7, 0xd9, 0xf0, 0x79, 0x84, 0x8d, 0xd5, 0x99, 0xf9, 0x1a,
+ 0xdb, 0x47, 0x2e, 0x32, 0x3b, 0x32, 0x33, 0xa2, 0x69, 0x9e, 0x62, 0x9f,
+ 0xf0, 0xd2, 0x40, 0x19, 0x71, 0x16, 0x61, 0x44, 0x0f, 0xbe, 0xeb, 0x1a,
+ 0x74, 0xb3, 0x99, 0x7f, 0x25, 0x69, 0x9f, 0x06, 0x67, 0x66, 0xec, 0xa7,
+ 0x18, 0xc7, 0xe0, 0x63, 0x42, 0xc7, 0xcf, 0x98, 0x0d, 0x74, 0x16, 0x07,
+ 0x67, 0xa7, 0x1f, 0xbd, 0x63, 0x44, 0x96, 0x7b, 0x41, 0x7a, 0x4a, 0x1f,
+ 0xde, 0x91, 0x71, 0x59, 0x1a, 0x33, 0xd9, 0x0d, 0x8d, 0xee, 0x83, 0xac,
+ 0xa0, 0xdd, 0x2e, 0x2b, 0x6a, 0x44, 0xc2, 0xc2, 0xca, 0xdb, 0x3b, 0x63,
+ 0x2e, 0xa5, 0xd7, 0x69, 0x6e, 0xf7, 0x9b, 0x9c, 0x8c, 0x69, 0xa2, 0x0f,
+ 0x17, 0xa5, 0x3c, 0x4f, 0x4b, 0x45, 0x2a, 0x90, 0xc8, 0xad, 0x65, 0xcd,
+ 0xc7, 0xc7, 0x8c, 0xca, 0x48, 0x1e, 0xc8, 0x0e, 0x69, 0x97, 0xd4, 0x46,
+ 0x6d, 0x6e, 0x0c, 0x45, 0x99, 0x74, 0x4e, 0x08, 0x5f, 0x68, 0x90, 0xa6,
+ 0xc5, 0xde, 0x30, 0x79, 0x5d, 0xde, 0x66, 0xf0, 0x15, 0x42, 0xbf, 0xcf,
+ 0xc9, 0xdb, 0x65, 0x54, 0xc1, 0xdb, 0x2c, 0x99, 0x1b, 0xd5, 0xd3, 0xcc,
+ 0x26, 0xb4, 0x0f, 0xfc, 0xcc, 0x33, 0x0f, 0xcd, 0x0e, 0xbf, 0xe5, 0x59,
+ 0xb2, 0xa3, 0xb0, 0x4b, 0x79, 0xc5, 0x47, 0x22, 0xd9, 0x82, 0x7a, 0x33,
+ 0xa1, 0xd9, 0x5a, 0x34, 0x6e, 0x14, 0x76, 0x42, 0x6e, 0xd3, 0xda, 0x3b,
+ 0x5c, 0x19, 0x4c, 0xd3, 0xe4, 0xb3, 0xe1, 0xde, 0xb3, 0xe1, 0xee, 0x90,
+ 0x4c, 0x91, 0xec, 0x63, 0x5e, 0x2e, 0x6b, 0x5a, 0x4f, 0xea, 0x89, 0x77,
+ 0x3a, 0xc9, 0x27, 0x45, 0xcb, 0x7b, 0x7d, 0x3d, 0x63, 0xc5, 0x67, 0xa7,
+ 0xbc, 0xba, 0x4a, 0x3c, 0xe5, 0xa8, 0xca, 0x16, 0x6c, 0x03, 0xd1, 0xdc,
+ 0xc8, 0x81, 0x63, 0xa1, 0x1a, 0x1a, 0xc9, 0x43, 0xe7, 0xbe, 0x18, 0x0c,
+ 0xd2, 0x71, 0xdd, 0x90, 0x39, 0x35, 0x58, 0x16, 0xf9, 0xa7, 0x41, 0x5d,
+ 0x4e, 0x3e, 0x98, 0x65, 0x79, 0xbe, 0x48, 0x9b, 0x9b, 0x2f, 0x3b, 0x4e,
+ 0xe1, 0x2d, 0xba, 0x4d, 0xb6, 0x93, 0xe4, 0x88, 0x15, 0x4b, 0x9a, 0x8b,
+ 0x8a, 0x4f, 0x9c, 0x59, 0x4f, 0x69, 0x25, 0x79, 0x67, 0x5a, 0x31, 0xbb,
+ 0x79, 0x6e, 0x96, 0x35, 0xe1, 0xc6, 0xfa, 0x2a, 0x4c, 0x3b, 0xcd, 0xc1,
+ 0xe5, 0x48, 0x17, 0x09, 0x3c, 0x77, 0xe6, 0xf0, 0x94, 0xd5, 0x87, 0x21,
+ 0xf9, 0x48, 0x8c, 0xd5, 0x78, 0x40, 0x1b, 0xba, 0x31, 0x62, 0xac, 0xe1,
+ 0x79, 0xaf, 0x45, 0x08, 0x53, 0xb7, 0x58, 0x26, 0x3b, 0x29, 0xa5, 0xf3,
+ 0xa9, 0x3d, 0x90, 0xcf, 0x26, 0x6a, 0x6f, 0xc8, 0xd6, 0xdb, 0xfc, 0xca,
+ 0x58, 0x80, 0x37, 0xbc, 0xf0, 0x68, 0x8c, 0xc7, 0x68, 0xf6, 0xe8, 0xb5,
+ 0xb1, 0x21, 0x8a, 0xa6, 0xd3, 0x9c, 0xf9, 0x2a, 0x5d, 0xd6, 0x74, 0xcf,
+ 0xb0, 0xb9, 0x8b, 0x6d, 0x22, 0x3e, 0x20, 0x6b, 0x81, 0x0e, 0x37, 0x3a,
+ 0xaf, 0x1d, 0xea, 0xaa, 0x7e, 0x36, 0x7c, 0xf2, 0xc8, 0x2c, 0xaa, 0x3f,
+ 0xd1, 0xc5, 0x1d, 0xf9, 0x4e, 0xe3, 0x93, 0x7a, 0x69, 0xee, 0xd2, 0x9a,
+ 0xd5, 0x13, 0x73, 0x86, 0xaf, 0xf2, 0xeb, 0x65, 0x95, 0xf1, 0xa5, 0x06,
+ 0x77, 0xab, 0x7a, 0x59, 0xe9, 0x9e, 0xb8, 0x29, 0xe1, 0x9c, 0x34, 0xf2,
+ 0x25, 0x9b, 0x5d, 0xf5, 0xbb, 0xb3, 0x40, 0x1a, 0x1d, 0x6d, 0x01, 0x0c,
+ 0x11, 0x9b, 0xc8, 0x68, 0x6e, 0x68, 0xac, 0xc8, 0xe4, 0x5e, 0x9f, 0x9b,
+ 0x09, 0x4e, 0xc8, 0x3b, 0x97, 0x4c, 0x66, 0x69, 0x3e, 0x87, 0xb9, 0x23,
+ 0xde, 0xa7, 0x61, 0xa7, 0xb9, 0x4b, 0x51, 0xc7, 0xa1, 0x89, 0x8f, 0xc9,
+ 0x1a, 0xa8, 0x6a, 0x12, 0x56, 0x34, 0x09, 0xa9, 0x2a, 0x13, 0xac, 0x6b,
+ 0xdf, 0x64, 0x93, 0x0f, 0xba, 0x9a, 0x7a, 0x0b, 0x0f, 0x3a, 0xcd, 0x91,
+ 0xdb, 0x15, 0x26, 0x87, 0x79, 0x6a, 0x69, 0xd6, 0x74, 0x51, 0xd6, 0x75,
+ 0x4e, 0x1e, 0x05, 0xd2, 0x90, 0x97, 0x13, 0x28, 0xce, 0x64, 0x62, 0x7f,
+ 0x32, 0x2b, 0xa9, 0x5b, 0x22, 0x31, 0x7b, 0xac, 0x98, 0x0e, 0x9a, 0x2a,
+ 0x5f, 0xac, 0xea, 0x1d, 0x5f, 0x19, 0xed, 0x3b, 0xbb, 0x16, 0x23, 0x06,
+ 0xf6, 0x01, 0x5b, 0x0c, 0x93, 0xa4, 0x33, 0x9b, 0x9d, 0xe6, 0x78, 0x6e,
+ 0xfb, 0x64, 0x22, 0xe7, 0x46, 0x84, 0xb2, 0xfe, 0x08, 0x0f, 0x90, 0xd1,
+ 0x16, 0xe5, 0x2c, 0x1b, 0xc5, 0x36, 0x9f, 0xe0, 0x5e, 0xc8, 0xaf, 0x33,
+ 0x72, 0x6f, 0x9b, 0xe3, 0xdd, 0xcc, 0xcc, 0x6d, 0xe1, 0x09, 0x0a, 0xbb,
+ 0xe2, 0x45, 0x76, 0x5d, 0x36, 0x24, 0xa0, 0x83, 0x6d, 0xf2, 0x0e, 0x1b,
+ 0xdf, 0xee, 0x09, 0xd5, 0x84, 0xfc, 0x6b, 0x2a, 0x67, 0x15, 0xc5, 0x7c,
+ 0x9a, 0x35, 0x21, 0x31, 0xc2, 0xea, 0xc6, 0xec, 0xc0, 0xee, 0xaa, 0x9b,
+ 0xd6, 0x26, 0x19, 0xd4, 0x51, 0xdc, 0xa5, 0x7a, 0x95, 0xab, 0x0e, 0x34,
+ 0x26, 0x93, 0x8d, 0xcc, 0xe3, 0xdb, 0x7c, 0x92, 0xa9, 0x87, 0x42, 0xdc,
+ 0x76, 0xb3, 0x3c, 0xdc, 0xfb, 0xf3, 0x65, 0x0d, 0xab, 0x89, 0xd5, 0x14,
+ 0x32, 0x28, 0x6f, 0x73, 0x52, 0x63, 0x4e, 0xae, 0xe4, 0xac, 0xd2, 0x2d,
+ 0xca, 0xe7, 0x23, 0xad, 0x72, 0x58, 0xcf, 0xa6, 0x39, 0xe9, 0xa7, 0x67,
+ 0xe4, 0xa8, 0xdd, 0xe6, 0xfa, 0x8d, 0xf7, 0x45, 0xb3, 0x73, 0x1a, 0x1d,
+ 0x0c, 0xc9, 0xab, 0x34, 0x9f, 0x45, 0xe6, 0x09, 0x0a, 0xaa, 0xb1, 0x48,
+ 0x6f, 0xb2, 0x4a, 0xd6, 0x60, 0x49, 0x93, 0x4e, 0xa1, 0x88, 0xe0, 0xe9,
+ 0x51, 0x96, 0xb1, 0x8a, 0x05, 0x7d, 0xec, 0xd3, 0x9d, 0x9d, 0x5e, 0xdc,
+ 0x63, 0xbc, 0x76, 0xf2, 0x77, 0x5e, 0x3e, 0xef, 0x78, 0xa6, 0xd4, 0x6a,
+ 0xba, 0x20, 0x9f, 0x7b, 0xf7, 0x84, 0x92, 0x36, 0x4a, 0x61, 0x9b, 0x6d,
+ 0x75, 0xaa, 0x65, 0xe2, 0x52, 0xb4, 0xe1, 0x0e, 0x08, 0x07, 0x8a, 0x2e,
+ 0xc8, 0x11, 0xe6, 0x76, 0x44, 0x53, 0xea, 0x34, 0x67, 0x54, 0x33, 0xf2,
+ 0x13, 0xc2, 0x08, 0x6f, 0xed, 0x58, 0x63, 0x10, 0x57, 0xd6, 0xe9, 0x4e,
+ 0x4e, 0x30, 0x9a, 0x6f, 0xd5, 0x3d, 0x71, 0x66, 0xf1, 0x52, 0xa7, 0x39,
+ 0xd2, 0x86, 0x49, 0x75, 0x30, 0x87, 0x26, 0xa7, 0xfd, 0x88, 0x4d, 0xa0,
+ 0x7e, 0x57, 0xb3, 0x7d, 0xd9, 0x33, 0xa6, 0x72, 0x95, 0x95, 0x0d, 0x74,
+ 0xf7, 0x6a, 0x96, 0x5e, 0x9b, 0x7d, 0xd7, 0x69, 0x2e, 0xbf, 0x36, 0x36,
+ 0x2e, 0x47, 0x3f, 0xea, 0xd2, 0xdc, 0x1e, 0x34, 0x6e, 0xb1, 0xf7, 0x8d,
+ 0xb9, 0x67, 0xb6, 0xd9, 0x6c, 0x09, 0x09, 0x78, 0x66, 0x06, 0x38, 0x1a,
+ 0xbd, 0xde, 0xf6, 0x05, 0x1c, 0xe6, 0xf7, 0x21, 0xe2, 0x0d, 0xf2, 0x09,
+ 0xa6, 0x49, 0xf2, 0x35, 0xd6, 0xa4, 0x2b, 0xe5, 0x78, 0xa5, 0x23, 0x93,
+ 0xa7, 0x13, 0x41, 0x2e, 0xa2, 0xa1, 0x08, 0x00, 0x48, 0x00, 0x4c, 0x93,
+ 0x7a, 0xab, 0x78, 0x87, 0x93, 0x17, 0x81, 0xaf, 0x69, 0xf3, 0xb7, 0x65,
+ 0xbd, 0x24, 0xc3, 0xbd, 0xd3, 0xdc, 0xc2, 0x08, 0xb2, 0xc6, 0x18, 0x6f,
+ 0x46, 0x22, 0x2d, 0x0b, 0xfa, 0xd3, 0x6a, 0x17, 0x39, 0xf4, 0x5c, 0x5a,
+ 0x92, 0x8a, 0x9c, 0x83, 0x64, 0x21, 0xd8, 0xbb, 0xd9, 0x88, 0x16, 0x69,
+ 0xb9, 0xbb, 0xb4, 0x70, 0x9f, 0x50, 0xa4, 0x04, 0x62, 0x67, 0x9a, 0x53,
+ 0x94, 0x8d, 0x0e, 0xde, 0x0a, 0x29, 0xbe, 0x55, 0x2f, 0x8d, 0x9c, 0x21,
+ 0xad, 0x8a, 0x85, 0x48, 0x20, 0x40, 0x54, 0xc8, 0x18, 0x05, 0xce, 0x93,
+ 0x26, 0xdb, 0xbf, 0xf5, 0x31, 0xc1, 0xc2, 0xf9, 0x2b, 0x39, 0x31, 0xfa,
+ 0xac, 0xd1, 0x54, 0x9f, 0xd3, 0x7e, 0x0b, 0xb4, 0x80, 0xcb, 0xd3, 0x51,
+ 0x6c, 0x41, 0xdb, 0x8e, 0x7b, 0x7a, 0x9f, 0x44, 0x2e, 0xf9, 0x57, 0xd8,
+ 0xdf, 0x54, 0x92, 0xb6, 0xe4, 0x39, 0xef, 0x7d, 0x47, 0xc8, 0x22, 0x23,
+ 0x2f, 0x3f, 0x1b, 0x12, 0x1c, 0x15, 0x24, 0x31, 0x66, 0xd4, 0xa8, 0x86,
+ 0xd4, 0x08, 0xeb, 0x5b, 0x3a, 0x3a, 0xf4, 0xdb, 0x85, 0x33, 0xa9, 0xbb,
+ 0x41, 0xbc, 0xdf, 0x6f, 0xd5, 0xdb, 0x56, 0x92, 0x99, 0x56, 0xce, 0x8f,
+ 0xdf, 0x40, 0xb1, 0x4f, 0xcd, 0xc6, 0x79, 0xab, 0x7e, 0x1c, 0x0d, 0xfa,
+ 0x8d, 0x97, 0xf9, 0xac, 0xe5, 0x2c, 0x75, 0xb6, 0x08, 0x22, 0x6e, 0xbc,
+ 0xaf, 0xd0, 0x35, 0x76, 0xfb, 0xe7, 0xf0, 0x9b, 0x75, 0x77, 0x59, 0x73,
+ 0xb7, 0x10, 0x97, 0xdf, 0xb2, 0x6e, 0x59, 0xd6, 0x7a, 0x3b, 0xcf, 0x1a,
+ 0x28, 0x1f, 0xa4, 0xf0, 0x7b, 0x6d, 0x06, 0x2b, 0x84, 0x6e, 0xd1, 0x65,
+ 0x70, 0x5d, 0xe4, 0xff, 0x10, 0xdf, 0x42, 0x56, 0x7c, 0xcc, 0xab, 0xb2,
+ 0x20, 0x55, 0xc5, 0xd8, 0x04, 0x55, 0x0e, 0xe1, 0x4c, 0xea, 0xae, 0x11,
+ 0x1f, 0x9b, 0x47, 0xef, 0x2e, 0x4e, 0xdf, 0x1f, 0x1d, 0xbe, 0xff, 0xfa,
+ 0xdd, 0xdb, 0x97, 0xa7, 0xc7, 0x9b, 0xdd, 0x43, 0x7d, 0xc5, 0x62, 0x81,
+ 0x0e, 0x4a, 0x4d, 0x0a, 0x19, 0x4e, 0x88, 0xe9, 0x22, 0xb7, 0x7c, 0x9d,
+ 0x7f, 0x34, 0x62, 0x0d, 0xaa, 0x15, 0x9c, 0x97, 0xf8, 0x1b, 0xcc, 0x7d,
+ 0x99, 0xf0, 0x4e, 0x73, 0x63, 0x73, 0x1f, 0x9b, 0x4e, 0xf3, 0xe9, 0x93,
+ 0xc1, 0xeb, 0x49, 0x11, 0x73, 0x46, 0x3b, 0x18, 0x8c, 0x8c, 0x96, 0x98,
+ 0x2e, 0x13, 0x52, 0xe9, 0x3c, 0xed, 0xd9, 0xf3, 0x63, 0x2e, 0x1b, 0xa3,
+ 0x3c, 0xaa, 0xe7, 0xd4, 0x58, 0x67, 0xe5, 0x07, 0x0d, 0xbf, 0x1a, 0xcd,
+ 0xf3, 0x30, 0xb2, 0xdc, 0x35, 0xaf, 0x0b, 0x4f, 0xc5, 0x26, 0xb5, 0x64,
+ 0xf6, 0xef, 0x40, 0x3a, 0x39, 0xa9, 0x1a, 0xa3, 0xf6, 0x65, 0x39, 0x0e,
+ 0x86, 0x86, 0x97, 0x48, 0x2d, 0x86, 0xd7, 0xa2, 0xab, 0x9f, 0x18, 0xa3,
+ 0xf0, 0x8e, 0xe6, 0x80, 0x1a, 0x19, 0x66, 0x9f, 0x32, 0x9c, 0x3c, 0x79,
+ 0xeb, 0x68, 0x59, 0xe1, 0x2c, 0x7f, 0x6f, 0x74, 0x12, 0x92, 0x80, 0x2f,
+ 0xe1, 0xf6, 0x30, 0x2f, 0xe8, 0x43, 0xe6, 0xb2, 0xe9, 0x5e, 0x7c, 0xe5,
+ 0x8c, 0x02, 0x4e, 0x29, 0x4c, 0x4c, 0x38, 0x04, 0xce, 0x0f, 0x2f, 0x5f,
+ 0x07, 0x73, 0x42, 0x62, 0xde, 0x61, 0x1d, 0x64, 0x2b, 0xc2, 0x30, 0xaa,
+ 0x1b, 0x39, 0x20, 0x6f, 0x47, 0xa3, 0x04, 0x91, 0xf4, 0x59, 0x3e, 0xae,
+ 0x52, 0xfa, 0x26, 0xfd, 0x98, 0x7e, 0x6a, 0xb6, 0x75, 0xa7, 0xb9, 0xf3,
+ 0x6f, 0x8f, 0x46, 0x7f, 0xdc, 0xdb, 0x33, 0xca, 0xdf, 0x74, 0x69, 0xe6,
+ 0x65, 0xcb, 0xbc, 0x52, 0xd4, 0xe6, 0x64, 0xce, 0x87, 0x75, 0xb9, 0x8d,
+ 0xcb, 0x1b, 0x1a, 0x1f, 0xae, 0x87, 0xf4, 0xa3, 0xb9, 0x75, 0xb1, 0x93,
+ 0x78, 0x8e, 0x69, 0x3f, 0x77, 0xd5, 0x74, 0x5e, 0x60, 0x05, 0x1a, 0x18,
+ 0x89, 0x61, 0xee, 0xed, 0xd9, 0x5d, 0x30, 0x8a, 0xad, 0xfc, 0x6c, 0x24,
+ 0x61, 0xfa, 0x74, 0x62, 0xfe, 0x4a, 0x36, 0xd4, 0x36, 0x8d, 0xad, 0x7d,
+ 0xc6, 0x74, 0x5c, 0x23, 0xd6, 0x4a, 0x2f, 0xc9, 0xc5, 0x09, 0x74, 0x41,
+ 0x28, 0x17, 0x8a, 0xee, 0xf1, 0x72, 0x08, 0x0e, 0x74, 0x76, 0x9c, 0x4e,
+ 0x3e, 0xdc, 0xa6, 0xd5, 0x94, 0x1d, 0x26, 0x66, 0xcf, 0x8c, 0xf3, 0x59,
+ 0xde, 0xdc, 0xf1, 0xed, 0xd1, 0x1d, 0x05, 0x87, 0x8e, 0x68, 0x0a, 0xcd,
+ 0x49, 0xba, 0x36, 0xb6, 0x10, 0x69, 0xa1, 0x64, 0x21, 0x9a, 0x83, 0xe1,
+ 0xe9, 0xfa, 0x50, 0x95, 0x1a, 0xab, 0xea, 0xd8, 0x6f, 0x77, 0x9a, 0x83,
+ 0xfb, 0x89, 0x4e, 0x12, 0xba, 0xe9, 0x76, 0xaf, 0x0a, 0x42, 0x5f, 0x4c,
+ 0xe9, 0x06, 0x4a, 0xea, 0x3b, 0x73, 0xdb, 0xcf, 0x93, 0x88, 0xaa, 0x08,
+ 0x60, 0x45, 0xf2, 0x6d, 0x76, 0x67, 0x0c, 0x8b, 0xbc, 0x70, 0xb2, 0x92,
+ 0x7d, 0x44, 0x19, 0x59, 0xaa, 0xac, 0x93, 0xe6, 0xea, 0x67, 0xcc, 0xc4,
+ 0x55, 0xcc, 0x37, 0x49, 0x68, 0x59, 0xf1, 0xfb, 0xaa, 0x8f, 0x53, 0x13,
+ 0x9b, 0x75, 0x4b, 0x28, 0xe3, 0x4b, 0xe1, 0x22, 0x8e, 0xcc, 0xcf, 0x8d,
+ 0x75, 0x37, 0xdb, 0xf9, 0x3e, 0x2f, 0x68, 0xb2, 0x78, 0x15, 0x2f, 0x57,
+ 0xad, 0x03, 0x2f, 0x84, 0x3c, 0x9b, 0xe4, 0xdd, 0x0b, 0xf1, 0x7b, 0x39,
+ 0xe9, 0xc9, 0x67, 0x08, 0x80, 0x26, 0x84, 0x98, 0x90, 0xfb, 0x49, 0xa1,
+ 0x15, 0x9f, 0x0d, 0x9f, 0xee, 0x22, 0x38, 0x4a, 0xbf, 0x1a, 0x76, 0xbe,
+ 0xd4, 0x55, 0x73, 0x5b, 0xeb, 0x6f, 0x97, 0x3f, 0xb2, 0xfa, 0xd1, 0x05,
+ 0xff, 0xa2, 0x2b, 0x16, 0x45, 0xfb, 0x62, 0xbf, 0xaf, 0xaf, 0x7b, 0xcb,
+ 0x95, 0x26, 0xdd, 0xdf, 0x34, 0xca, 0x6b, 0x59, 0xc1, 0xaa, 0xae, 0x4a,
+ 0xb3, 0xf0, 0x32, 0x8d, 0x5d, 0xe1, 0xc1, 0x8b, 0xbd, 0x45, 0xf3, 0x6d,
+ 0x85, 0xbb, 0xe9, 0x26, 0x4f, 0xce, 0x76, 0xec, 0xd4, 0x07, 0x3a, 0x0a,
+ 0xbc, 0x53, 0x1c, 0xeb, 0x27, 0xef, 0x7e, 0xcd, 0xc7, 0x7c, 0x96, 0xd6,
+ 0x0d, 0xcc, 0x37, 0x6c, 0x31, 0x71, 0x02, 0xb5, 0xaf, 0x6b, 0x88, 0xec,
+ 0xe7, 0x46, 0xa6, 0xfd, 0xf3, 0xb7, 0x35, 0x4b, 0x46, 0x48, 0xc2, 0xf0,
+ 0x02, 0x93, 0x6d, 0xd9, 0xba, 0xb5, 0xdf, 0xe8, 0xf5, 0x4c, 0x9d, 0xb0,
+ 0x8e, 0xaa, 0x05, 0x87, 0x55, 0x59, 0x93, 0x64, 0x8f, 0x5b, 0x68, 0x19,
+ 0x90, 0xd3, 0x44, 0x1c, 0x33, 0x07, 0xbd, 0x64, 0x2b, 0x1b, 0x5e, 0x9b,
+ 0xf6, 0x7a, 0xd4, 0xce, 0xde, 0x01, 0xfd, 0x77, 0x1f, 0xff, 0x7d, 0xd4,
+ 0x53, 0x00, 0x94, 0x7f, 0xaa, 0xe8, 0x6a, 0xef, 0x5e, 0x4c, 0x12, 0xb5,
+ 0xa0, 0xab, 0x5e, 0xee, 0x7a, 0xb9, 0xeb, 0xe8, 0x0a, 0x8c, 0xcb, 0x21,
+ 0x56, 0x64, 0x4f, 0xfb, 0x11, 0x65, 0xd3, 0x4d, 0x04, 0xd4, 0x08, 0xb8,
+ 0x01, 0xc6, 0xe4, 0xe1, 0x33, 0x63, 0x9b, 0x18, 0x65, 0x11, 0xce, 0x16,
+ 0x8e, 0x01, 0x02, 0x4d, 0xf0, 0xbe, 0xca, 0x6e, 0xd2, 0xda, 0xec, 0xbd,
+ 0x65, 0x83, 0xad, 0x18, 0xd9, 0xbd, 0xb3, 0xdc, 0x7a, 0xb7, 0xe4, 0xc3,
+ 0x43, 0x6b, 0x0b, 0xca, 0x2a, 0xb2, 0x9f, 0x78, 0x56, 0xde, 0xea, 0x13,
+ 0x03, 0x41, 0x24, 0xc5, 0x74, 0x04, 0xb3, 0x9a, 0x00, 0x35, 0xd1, 0x63,
+ 0x7e, 0xbc, 0x6f, 0x4e, 0x8a, 0x25, 0xc1, 0xa5, 0xcc, 0xe6, 0xbf, 0x32,
+ 0x33, 0x46, 0x46, 0xde, 0x0c, 0xeb, 0x46, 0xe6, 0x2c, 0x7a, 0x1d, 0x28,
+ 0x9b, 0xa2, 0xf4, 0xe5, 0x57, 0xe2, 0xe3, 0x92, 0x7f, 0xe3, 0x72, 0x15,
+ 0x55, 0xac, 0xe6, 0x98, 0x60, 0x57, 0x0f, 0xbb, 0x7f, 0x6b, 0xab, 0xac,
+ 0xb4, 0x27, 0x43, 0x06, 0xcb, 0x6e, 0x65, 0xdd, 0xd7, 0x62, 0x7c, 0xc4,
+ 0x7c, 0x1a, 0xa6, 0x57, 0x7c, 0x4c, 0x7f, 0xfd, 0x21, 0x31, 0x3d, 0x1e,
+ 0x90, 0x47, 0x69, 0x59, 0x3f, 0xe0, 0x8c, 0x78, 0xf2, 0x97, 0xdf, 0xb1,
+ 0x3e, 0x35, 0x8e, 0x7d, 0xfa, 0x13, 0xd0, 0xdd, 0x85, 0x77, 0x9e, 0x5f,
+ 0xeb, 0xc8, 0x3b, 0x59, 0x23, 0x6e, 0xe8, 0x42, 0xbc, 0x26, 0x5b, 0xe9,
+ 0x87, 0x74, 0x98, 0x9c, 0x1d, 0x8d, 0xce, 0xe9, 0x13, 0x66, 0x6b, 0x14,
+ 0xd7, 0xa6, 0x17, 0xa7, 0xa3, 0x4e, 0x73, 0xd9, 0xa7, 0x26, 0x2b, 0xea,
+ 0x16, 0x84, 0x6f, 0xe5, 0x34, 0xab, 0xaf, 0x55, 0x41, 0x08, 0xd2, 0x59,
+ 0x63, 0xfc, 0x23, 0x7a, 0x48, 0xc1, 0x30, 0x8a, 0x54, 0x27, 0x7c, 0xd4,
+ 0x82, 0x0f, 0x2d, 0xcc, 0x86, 0x9f, 0x6e, 0x5b, 0xef, 0x4d, 0x5f, 0xf7,
+ 0x82, 0x0d, 0xaa, 0xd4, 0xcb, 0x6b, 0x32, 0x48, 0x6a, 0x35, 0x23, 0xed,
+ 0x17, 0xcc, 0x6c, 0x04, 0xba, 0x94, 0x0e, 0xdb, 0x9c, 0x09, 0x3e, 0x36,
+ 0xc6, 0x82, 0x22, 0xbc, 0x09, 0xf4, 0xa5, 0xa2, 0x74, 0xad, 0x92, 0xd1,
+ 0x04, 0x6c, 0x5d, 0x8e, 0x30, 0xc4, 0x24, 0x33, 0xfa, 0xe8, 0x34, 0xa2,
+ 0x0f, 0xf0, 0xa2, 0xa8, 0x0d, 0x75, 0x25, 0x78, 0xba, 0x88, 0x4b, 0x08,
+ 0x0d, 0x4d, 0x58, 0x5f, 0xa3, 0x5d, 0x0f, 0x77, 0x6e, 0x4e, 0xfe, 0x6f,
+ 0xd2, 0x9e, 0xd9, 0x7a, 0xa7, 0xf6, 0xec, 0xd9, 0xff, 0xa6, 0x58, 0x9a,
+ 0x89, 0x8f, 0x5c, 0xcc, 0xa4, 0x61, 0xd1, 0x3d, 0x43, 0x13, 0xb8, 0xce,
+ 0xd7, 0xf7, 0x78, 0xaf, 0xed, 0xeb, 0xc3, 0x66, 0x33, 0xd6, 0x40, 0x96,
+ 0x3c, 0xa7, 0xff, 0xde, 0x2b, 0x95, 0x11, 0xe0, 0xc7, 0xf3, 0x12, 0x15,
+ 0x62, 0xd9, 0x29, 0xee, 0x99, 0xa4, 0x2d, 0xa0, 0x83, 0x7b, 0x11, 0xdb,
+ 0x6d, 0x48, 0x62, 0xaf, 0x9f, 0xbc, 0x24, 0xd8, 0xea, 0xf1, 0xdb, 0x6f,
+ 0xb0, 0x07, 0xce, 0xf7, 0xf6, 0xe1, 0x83, 0xb7, 0xa6, 0xc4, 0x14, 0x1f,
+ 0xa9, 0xd9, 0xb7, 0xc0, 0x31, 0xb4, 0x50, 0x0b, 0xc6, 0x9d, 0xd0, 0x87,
+ 0x14, 0xa5, 0xe0, 0x09, 0x30, 0x16, 0xd3, 0xdf, 0xef, 0xfe, 0x0a, 0xac,
+ 0xd2, 0xe3, 0xbe, 0xcc, 0xa0, 0xf8, 0x6a, 0x3e, 0x64, 0x77, 0xee, 0x6f,
+ 0x98, 0x55, 0x6f, 0xaa, 0xdd, 0xc3, 0xcf, 0xbd, 0x49, 0xfa, 0xf1, 0x80,
+ 0x70, 0x1c, 0x46, 0x61, 0x9d, 0xfe, 0xfc, 0xeb, 0x6e, 0xc4, 0xf8, 0xcc,
+ 0x47, 0xfc, 0x2f, 0x70, 0x7d, 0x29, 0x62, 0x82, 0x03, 0xa4, 0x2c, 0xdf,
+ 0x05, 0x34, 0x4c, 0x78, 0x62, 0xda, 0xf0, 0x69, 0xc1, 0x1a, 0x09, 0x49,
+ 0x6a, 0x86, 0xc9, 0x00, 0x36, 0x13, 0x28, 0x11, 0xe5, 0x2c, 0xb8, 0xeb,
+ 0x5a, 0x56, 0x2c, 0x94, 0xfb, 0x7d, 0xb9, 0xdd, 0x60, 0xd9, 0xc9, 0x1d,
+ 0xc4, 0x0a, 0x75, 0xf7, 0x38, 0x58, 0xf5, 0x9a, 0x15, 0x30, 0xef, 0x66,
+ 0x4c, 0xbc, 0x97, 0x11, 0x10, 0x44, 0xf7, 0x58, 0x55, 0x1a, 0xca, 0xf2,
+ 0x66, 0x51, 0x5b, 0xc0, 0xac, 0xae, 0xce, 0xae, 0x59, 0x76, 0x72, 0x3e,
+ 0xd9, 0x79, 0xeb, 0x73, 0xa4, 0x85, 0x97, 0xd9, 0x88, 0xb9, 0x2a, 0x17,
+ 0x65, 0x8d, 0x51, 0x82, 0xdd, 0x33, 0xad, 0x71, 0x59, 0x71, 0x4e, 0x89,
+ 0x03, 0x05, 0xdb, 0x4a, 0xf7, 0x15, 0x6f, 0x3f, 0x32, 0x4b, 0x7b, 0xde,
+ 0x94, 0xf4, 0x62, 0x4b, 0xd1, 0x70, 0x88, 0x48, 0x8e, 0x50, 0xfe, 0x91,
+ 0xa6, 0x4e, 0xf7, 0x8e, 0xf3, 0x75, 0xb6, 0xb5, 0xe0, 0xb2, 0xa0, 0x3f,
+ 0x0b, 0xf2, 0x91, 0xfd, 0x21, 0xb2, 0x21, 0xa3, 0x7b, 0x91, 0xdc, 0xe5,
+ 0x12, 0x3e, 0x83, 0x02, 0x43, 0x50, 0x31, 0xc1, 0xea, 0x46, 0xec, 0xa2,
+ 0x98, 0x75, 0xa7, 0xca, 0x87, 0x1a, 0x71, 0x9e, 0x65, 0x17, 0x18, 0x3e,
+ 0x81, 0x96, 0x69, 0x7e, 0x4b, 0x81, 0x77, 0xde, 0xbb, 0xe4, 0x8e, 0xcd,
+ 0x27, 0x1f, 0x80, 0xaf, 0x92, 0x1b, 0xca, 0x1f, 0x9f, 0xa2, 0x9b, 0x18,
+ 0x97, 0x17, 0x59, 0x02, 0x18, 0x96, 0xe4, 0x27, 0xa6, 0x3d, 0x49, 0xb7,
+ 0x73, 0x5e, 0xb0, 0xce, 0xb6, 0xd2, 0xe5, 0x60, 0xfa, 0xfa, 0xfe, 0xe5,
+ 0xc9, 0x45, 0xb2, 0x45, 0x2a, 0x78, 0x57, 0xc7, 0xd1, 0xeb, 0x7d, 0x27,
+ 0x6b, 0x26, 0x3b, 0x8b, 0x0f, 0xf9, 0x8e, 0xb1, 0x3c, 0xa7, 0xe3, 0x6d,
+ 0x6b, 0x4f, 0xe1, 0x73, 0xd8, 0x84, 0x6a, 0xa5, 0xaa, 0x99, 0x0a, 0x3b,
+ 0xb5, 0x7b, 0x1a, 0x3c, 0xbb, 0x95, 0xf3, 0x00, 0x9c, 0xb9, 0x8a, 0x69,
+ 0x62, 0xa7, 0x0e, 0x60, 0x41, 0x1c, 0x43, 0x4e, 0xc8, 0x1f, 0x9b, 0xb1,
+ 0xab, 0xda, 0x18, 0xdc, 0xdd, 0xb3, 0xca, 0x18, 0x31, 0xf1, 0xea, 0xb0,
+ 0x37, 0x47, 0x81, 0x4d, 0x72, 0x5d, 0x38, 0xa5, 0xaf, 0x4f, 0x90, 0x34,
+ 0x9a, 0x94, 0x05, 0x5d, 0x49, 0x53, 0x72, 0x09, 0x76, 0x9b, 0x83, 0xa1,
+ 0xd1, 0x1b, 0xee, 0xf4, 0x12, 0x0b, 0xc2, 0x33, 0xb3, 0xcc, 0x28, 0x53,
+ 0x8b, 0x7a, 0x34, 0x5b, 0xec, 0x6a, 0x59, 0xb3, 0x9b, 0x9b, 0x3c, 0x2c,
+ 0x76, 0xbd, 0x86, 0x31, 0x81, 0xea, 0x2d, 0xa7, 0xd5, 0xb9, 0x8c, 0x6e,
+ 0x8c, 0x73, 0x65, 0x4d, 0xf7, 0xb1, 0xed, 0x14, 0x96, 0xaa, 0xf7, 0x53,
+ 0x2f, 0xf1, 0x40, 0x5c, 0x2d, 0x67, 0x64, 0xee, 0x60, 0x16, 0xde, 0x25,
+ 0x60, 0x6e, 0x64, 0x7b, 0x82, 0xa7, 0xd9, 0x2c, 0x9f, 0xe7, 0x30, 0xbe,
+ 0xfc, 0x2e, 0x04, 0x4b, 0xd1, 0xee, 0xd2, 0x4f, 0x61, 0x97, 0x14, 0x18,
+ 0x99, 0xd2, 0xaf, 0x4d, 0x97, 0xe0, 0x1e, 0x63, 0xdc, 0x5a, 0xdc, 0x80,
+ 0x6e, 0x77, 0xc8, 0x42, 0x2b, 0xd7, 0x44, 0xd7, 0xec, 0x59, 0x5a, 0xa5,
+ 0xc6, 0x3b, 0xff, 0x88, 0x1e, 0x7a, 0x16, 0x68, 0xc9, 0xe2, 0xc3, 0xa4,
+ 0xde, 0xdb, 0xeb, 0x5e, 0x74, 0xb5, 0xdb, 0x51, 0x62, 0xca, 0xa7, 0x76,
+ 0x63, 0xbe, 0xbb, 0x38, 0x49, 0xb6, 0x08, 0x4a, 0xff, 0xd9, 0x93, 0xbd,
+ 0xfd, 0x6d, 0x3f, 0xfe, 0xae, 0x02, 0x20, 0xbc, 0x37, 0xef, 0xe0, 0xa5,
+ 0xf2, 0x0f, 0xe0, 0xac, 0x9c, 0xa4, 0xa2, 0x71, 0xb8, 0xa6, 0xa7, 0xd9,
+ 0xc7, 0x7c, 0x42, 0x99, 0x0c, 0x46, 0xf1, 0x03, 0x5a, 0x6c, 0x9c, 0x99,
+ 0x4e, 0x06, 0x33, 0xee, 0x70, 0x8f, 0xdc, 0x7b, 0x63, 0x22, 0x59, 0x4d,
+ 0x99, 0xd0, 0xa5, 0x66, 0x0f, 0x34, 0x32, 0x77, 0x7e, 0xaf, 0x25, 0x70,
+ 0x90, 0xae, 0x70, 0x0b, 0xd1, 0xb8, 0x38, 0xcf, 0x00, 0x3a, 0x46, 0xdf,
+ 0xc5, 0x82, 0x06, 0x03, 0x99, 0x2c, 0x11, 0xbd, 0xfa, 0x31, 0xf2, 0x77,
+ 0xa7, 0xdd, 0x05, 0x94, 0x3e, 0xf5, 0xe8, 0x16, 0x29, 0x70, 0xb9, 0xa7,
+ 0xae, 0x51, 0x3b, 0xfb, 0xbe, 0x26, 0xd4, 0x6e, 0xb5, 0x6b, 0x1c, 0xe1,
+ 0x1b, 0x49, 0xcf, 0x68, 0x2e, 0xf1, 0x26, 0xff, 0x45, 0xfe, 0xa6, 0xb6,
+ 0xf8, 0x94, 0xe5, 0xa1, 0xb5, 0x17, 0x17, 0xe2, 0x98, 0x15, 0x05, 0x95,
+ 0xb7, 0xe9, 0x3a, 0x67, 0xc0, 0x8e, 0x5e, 0x42, 0xb8, 0x85, 0xd4, 0xf9,
+ 0xc8, 0x4e, 0x20, 0x23, 0x3c, 0xe1, 0xf4, 0xf9, 0x20, 0x3e, 0x1f, 0x28,
+ 0xc5, 0xb8, 0xb8, 0xd8, 0xf9, 0xda, 0x35, 0x81, 0xf4, 0xe2, 0x37, 0x4b,
+ 0x34, 0x29, 0xa7, 0x1d, 0x93, 0x9d, 0x26, 0xc1, 0xbb, 0xf0, 0x20, 0xfd,
+ 0x38, 0x7a, 0x09, 0x89, 0x17, 0x77, 0x6b, 0xd3, 0x4e, 0x65, 0x5f, 0xfb,
+ 0x2f, 0x92, 0x81, 0x31, 0xe7, 0x1a, 0x44, 0xe0, 0xaf, 0x92, 0x80, 0x0f,
+ 0x73, 0x3f, 0x1d, 0x05, 0x17, 0x77, 0x6d, 0x75, 0x22, 0x4f, 0x65, 0x0b,
+ 0x6e, 0xa3, 0x54, 0x01, 0x03, 0xc6, 0xb4, 0x21, 0x94, 0x15, 0x42, 0x4b,
+ 0x70, 0x6c, 0xb7, 0x17, 0x19, 0x69, 0x45, 0x5b, 0xa7, 0x1c, 0xbc, 0x4c,
+ 0xce, 0x5f, 0xfd, 0x20, 0x22, 0x73, 0x95, 0xfb, 0xe9, 0x0b, 0x0b, 0xa3,
+ 0x31, 0x46, 0x05, 0x41, 0x7a, 0x72, 0x81, 0xc7, 0x89, 0xa3, 0x88, 0xc3,
+ 0xe4, 0xe6, 0xd6, 0xf3, 0x92, 0x08, 0xcc, 0x94, 0x77, 0x67, 0xed, 0xb9,
+ 0x3c, 0x0d, 0x19, 0x61, 0xfa, 0xf6, 0xe5, 0x4f, 0xf2, 0x13, 0x9a, 0x1b,
+ 0xf3, 0x8f, 0xe6, 0x66, 0x39, 0x1f, 0x9b, 0x75, 0x2d, 0x9a, 0x2f, 0x7b,
+ 0x1c, 0x86, 0xbd, 0x92, 0x69, 0x5d, 0x6b, 0x6f, 0xb5, 0x37, 0x5a, 0x6b,
+ 0xd2, 0xd0, 0x7c, 0xbf, 0x0d, 0xbe, 0xea, 0xb1, 0x63, 0x3b, 0x68, 0xee,
+ 0x9d, 0xd9, 0x9e, 0x3f, 0xbd, 0xf9, 0xeb, 0x4f, 0xcf, 0x1e, 0x3d, 0x4e,
+ 0x3f, 0x4b, 0x27, 0x4f, 0xaf, 0x3e, 0x4f, 0x9f, 0x4c, 0x9f, 0x7c, 0xf6,
+ 0x6c, 0xff, 0xf3, 0x27, 0xe9, 0x67, 0x8f, 0xaf, 0xd2, 0xa7, 0x7b, 0xd9,
+ 0xde, 0xb3, 0xab, 0xfd, 0x47, 0xd3, 0xe9, 0x55, 0xf6, 0xf9, 0xf4, 0xb3,
+ 0xb4, 0x37, 0x84, 0xf9, 0xa5, 0x5d, 0x0e, 0x45, 0xad, 0x84, 0xe0, 0x4c,
+ 0xef, 0x47, 0xaf, 0x0f, 0x07, 0x7b, 0xc9, 0x4d, 0xf6, 0x49, 0x0f, 0x18,
+ 0x3b, 0x37, 0x2d, 0x36, 0x29, 0x13, 0x3f, 0xce, 0x6a, 0x1b, 0x5b, 0xd3,
+ 0xa9, 0x08, 0x5b, 0x4a, 0xbe, 0x12, 0x68, 0xc0, 0x3c, 0x79, 0x3a, 0x9b,
+ 0x8c, 0x3e, 0xb2, 0x6b, 0x76, 0xa0, 0x0e, 0x7c, 0x1a, 0x57, 0xf7, 0xf0,
+ 0x9f, 0x9a, 0x77, 0x66, 0x6f, 0xd2, 0x89, 0x51, 0x92, 0xcc, 0x8c, 0xc8,
+ 0x83, 0x23, 0x63, 0xda, 0x1a, 0x31, 0xdd, 0x4f, 0xe4, 0x2f, 0xe4, 0x30,
+ 0xf6, 0xda, 0xf8, 0xa6, 0x2a, 0x97, 0x8b, 0xf3, 0x72, 0x96, 0x4f, 0xee,
+ 0xd6, 0x35, 0xe7, 0x3f, 0xd6, 0xfa, 0xc5, 0x31, 0x8b, 0xf0, 0xbc, 0xce,
+ 0xfe, 0x85, 0xa6, 0x95, 0x27, 0x8e, 0x1f, 0x60, 0x5b, 0x0d, 0x26, 0xf9,
+ 0xe2, 0x86, 0x02, 0xbf, 0xcf, 0x81, 0x85, 0xa2, 0x38, 0x0d, 0xff, 0x20,
+ 0x6e, 0x53, 0x8d, 0xe4, 0x28, 0xd6, 0xb2, 0x9e, 0xfa, 0xb6, 0x68, 0x5c,
+ 0xb9, 0x26, 0x0a, 0xa9, 0x9b, 0x4a, 0xf0, 0x77, 0x79, 0xe0, 0xc7, 0x73,
+ 0x1f, 0xe2, 0x63, 0xae, 0xda, 0x36, 0x3b, 0x2f, 0xe4, 0x57, 0xc3, 0xe4,
+ 0x02, 0xa1, 0xf3, 0xe5, 0x82, 0x71, 0xe0, 0xf0, 0xf4, 0xf2, 0xef, 0x3a,
+ 0xcd, 0xa1, 0xf3, 0xb2, 0x63, 0xd8, 0x10, 0x31, 0x33, 0xfa, 0xee, 0xe2,
+ 0xf4, 0xa0, 0x3b, 0x4f, 0x48, 0xc9, 0xa8, 0x0f, 0x76, 0x76, 0x10, 0xff,
+ 0xb9, 0x49, 0x3f, 0x7d, 0x1a, 0xd6, 0xd9, 0xce, 0xb4, 0x9c, 0xd4, 0x3b,
+ 0x75, 0x3d, 0xd3, 0xd9, 0x68, 0x67, 0x48, 0xfd, 0x0e, 0xde, 0xdc, 0x72,
+ 0x0e, 0x69, 0x95, 0x4d, 0x07, 0x75, 0x1d, 0xc0, 0x85, 0x46, 0x47, 0x0a,
+ 0x46, 0x38, 0x2e, 0x18, 0x78, 0x8c, 0x7b, 0x6e, 0x60, 0x66, 0x77, 0x34,
+ 0x7a, 0x9d, 0xe8, 0xcb, 0x98, 0x5e, 0x0b, 0x90, 0xb1, 0x50, 0x9d, 0x7e,
+ 0x44, 0x0d, 0x4b, 0x45, 0x60, 0x7f, 0xe1, 0x3b, 0x74, 0x48, 0x9d, 0x2e,
+ 0xf9, 0x0f, 0x41, 0xf8, 0xe7, 0xcd, 0x5a, 0xb0, 0xd3, 0xd3, 0x8e, 0x03,
+ 0xc4, 0x0e, 0x22, 0x0e, 0x08, 0x50, 0x27, 0x58, 0x9a, 0xb8, 0x27, 0x9d,
+ 0x47, 0xa8, 0x9b, 0xc2, 0x6b, 0x76, 0xef, 0x75, 0x59, 0x99, 0xcb, 0x63,
+ 0x5e, 0xc7, 0xbc, 0xa0, 0x7a, 0xca, 0x6b, 0xf5, 0xf6, 0xd6, 0xe4, 0xaa,
+ 0x65, 0xaf, 0xec, 0xb2, 0xf0, 0x3e, 0x60, 0x96, 0x12, 0x58, 0xaf, 0xa1,
+ 0x5d, 0xb0, 0x78, 0xb0, 0x4b, 0x97, 0xaf, 0xe3, 0x47, 0x13, 0x47, 0x5a,
+ 0x02, 0x79, 0x5e, 0x78, 0x51, 0x10, 0x5c, 0xca, 0xa6, 0xcb, 0xfd, 0x58,
+ 0xef, 0xb0, 0xce, 0x55, 0x86, 0x8b, 0x82, 0x14, 0x89, 0xaa, 0x2a, 0x3d,
+ 0xcd, 0x76, 0xf0, 0x2d, 0x2c, 0x4c, 0x73, 0x45, 0xe6, 0xd7, 0x1a, 0x70,
+ 0xef, 0x1e, 0x5f, 0xd9, 0xfe, 0x74, 0xc1, 0x34, 0x80, 0x79, 0x4a, 0xe6,
+ 0x2c, 0x5d, 0x09, 0xe6, 0x08, 0x30, 0xe4, 0x44, 0x60, 0x6c, 0x0c, 0x13,
+ 0x6a, 0x25, 0x0c, 0x07, 0xc7, 0x81, 0xd2, 0x23, 0xdc, 0xe3, 0x04, 0xaf,
+ 0xd2, 0xc3, 0x89, 0xe6, 0xc5, 0x87, 0xe1, 0x76, 0x67, 0x42, 0xaa, 0x19,
+ 0xdc, 0x05, 0xe6, 0x99, 0xee, 0x25, 0x0b, 0x64, 0xa2, 0x55, 0xfc, 0x62,
+ 0xd9, 0x80, 0xdd, 0xf1, 0x28, 0x4a, 0x59, 0xa7, 0x37, 0x47, 0xfe, 0x69,
+ 0x0a, 0x08, 0x74, 0xec, 0x62, 0x2f, 0xbd, 0xb0, 0x2d, 0x35, 0x18, 0x84,
+ 0x71, 0x38, 0x09, 0x0d, 0xd0, 0x74, 0x4d, 0xea, 0x80, 0x61, 0x64, 0xc4,
+ 0x90, 0xb9, 0xf5, 0x08, 0x9c, 0x4b, 0x59, 0xc7, 0xb3, 0xd2, 0x69, 0x59,
+ 0x66, 0xf7, 0x19, 0x81, 0x88, 0xc4, 0xad, 0x61, 0x20, 0xbc, 0x39, 0x7d,
+ 0x83, 0x81, 0x28, 0x9c, 0x86, 0xc4, 0x57, 0xb8, 0x7a, 0x3f, 0x66, 0xb0,
+ 0x34, 0x39, 0x6a, 0xee, 0x84, 0x1a, 0xad, 0x5f, 0xcc, 0x3f, 0x24, 0x00,
+ 0x66, 0xce, 0x09, 0xcb, 0x91, 0xed, 0x28, 0xf9, 0x71, 0x8c, 0xc7, 0x56,
+ 0xf7, 0x76, 0x5d, 0xf6, 0xa5, 0xa9, 0x19, 0xc5, 0xc4, 0x2b, 0xe9, 0x63,
+ 0x77, 0x47, 0xd9, 0xdc, 0xb7, 0x96, 0x45, 0x92, 0xd6, 0x0e, 0xd6, 0x5c,
+ 0x87, 0xd1, 0x4b, 0x37, 0x99, 0x31, 0x13, 0x36, 0x80, 0x88, 0xa3, 0x23,
+ 0x55, 0xa6, 0x5f, 0x28, 0xca, 0x6e, 0xa7, 0xb4, 0x1f, 0x83, 0xd0, 0xa1,
+ 0x63, 0x61, 0xd0, 0x5e, 0x07, 0x14, 0x0e, 0x6d, 0x57, 0x39, 0x7e, 0xe3,
+ 0x65, 0xee, 0x01, 0xb8, 0x71, 0x4a, 0x8b, 0x00, 0xf1, 0x17, 0xb2, 0xfd,
+ 0x9c, 0xec, 0x96, 0xae, 0x2b, 0xbb, 0x98, 0xcc, 0x4a, 0x85, 0x91, 0x9b,
+ 0xf7, 0x39, 0x13, 0x71, 0x48, 0x01, 0x49, 0x76, 0x84, 0xc8, 0x0a, 0xc8,
+ 0x2f, 0xfa, 0x22, 0x2b, 0xae, 0x54, 0x97, 0xe8, 0x36, 0xc7, 0x76, 0x69,
+ 0x37, 0x6b, 0xd7, 0x19, 0x8f, 0x07, 0x49, 0xf2, 0xd3, 0x4f, 0xfd, 0x84,
+ 0x8c, 0xe2, 0x9f, 0x1a, 0xf3, 0x3f, 0xb3, 0xd1, 0x7e, 0xe2, 0xc4, 0x8d,
+ 0x9f, 0x3e, 0x1a, 0x33, 0xaf, 0x1b, 0x20, 0x48, 0x27, 0x1f, 0xea, 0x19,
+ 0x45, 0x8a, 0x58, 0xad, 0x6e, 0x7b, 0xe0, 0x38, 0x4b, 0x14, 0xf9, 0x60,
+ 0x1c, 0x0e, 0xf1, 0x81, 0x60, 0x50, 0x2c, 0x43, 0x97, 0xe1, 0x72, 0x5e,
+ 0x88, 0x35, 0xc2, 0xfb, 0x10, 0x47, 0x1c, 0x72, 0x7f, 0xf3, 0x8f, 0x9b,
+ 0x6e, 0xcf, 0xf4, 0xd5, 0x9b, 0xdf, 0xa8, 0x5c, 0x8d, 0x1c, 0x27, 0x3d,
+ 0xf8, 0x9a, 0x53, 0x09, 0xf3, 0x92, 0x43, 0xa3, 0x46, 0x6e, 0x9e, 0x91,
+ 0x2b, 0x9d, 0x33, 0x63, 0x4a, 0x67, 0x29, 0x52, 0x82, 0xd0, 0xe2, 0xe6,
+ 0xae, 0x26, 0xd4, 0x46, 0x4c, 0xda, 0x84, 0xa7, 0x64, 0xb8, 0x52, 0xc8,
+ 0x35, 0x0a, 0x02, 0x82, 0x8d, 0x45, 0xbb, 0xa0, 0x25, 0x22, 0x4d, 0x77,
+ 0x36, 0x07, 0x9b, 0x36, 0xf0, 0x25, 0x48, 0x99, 0x00, 0x5c, 0xac, 0x12,
+ 0xc1, 0x03, 0x1f, 0x06, 0x9f, 0xf4, 0x00, 0x71, 0xa5, 0x0f, 0x77, 0x74,
+ 0xf9, 0xbe, 0x94, 0xb0, 0xa7, 0xd1, 0x7b, 0xf9, 0xbe, 0xc8, 0x99, 0x88,
+ 0x77, 0x09, 0xb0, 0x48, 0x20, 0x2b, 0xb4, 0x01, 0xb8, 0x3e, 0x5c, 0x2c,
+ 0x68, 0x30, 0x00, 0xf5, 0xc2, 0x82, 0xe9, 0x12, 0x68, 0x77, 0x00, 0x71,
+ 0x70, 0x47, 0xc9, 0x31, 0x8b, 0x00, 0x9b, 0xa6, 0x50, 0x40, 0xcd, 0x3f,
+ 0xa5, 0x83, 0x4c, 0x39, 0xfa, 0xb7, 0x85, 0xe4, 0x58, 0x8f, 0x4a, 0xb8,
+ 0x60, 0x26, 0xc0, 0x2e, 0x08, 0x50, 0x46, 0xd2, 0x6c, 0x22, 0x26, 0x1f,
+ 0x5d, 0x76, 0x81, 0xc2, 0x43, 0xfd, 0x79, 0x91, 0xf4, 0x56, 0xab, 0x3d,
+ 0xbd, 0xee, 0x1b, 0x40, 0x40, 0x3a, 0x7f, 0xa6, 0xa4, 0x10, 0xa3, 0x23,
+ 0x5b, 0x02, 0xa1, 0x1b, 0xfc, 0x9d, 0xf1, 0xb1, 0x9c, 0xe5, 0x22, 0x57,
+ 0xe9, 0x36, 0x03, 0x84, 0xeb, 0x00, 0x21, 0x53, 0x79, 0xf8, 0x2a, 0x6f,
+ 0x7f, 0x38, 0x84, 0x52, 0x0e, 0x2f, 0x37, 0x6e, 0x29, 0xbe, 0xd5, 0xbc,
+ 0xa7, 0xbb, 0xf2, 0xc7, 0xbe, 0x4d, 0x20, 0x7c, 0xfa, 0x9e, 0x78, 0x9f,
+ 0xf5, 0x8a, 0xb0, 0xb6, 0xc2, 0x62, 0x06, 0xea, 0x02, 0x85, 0xff, 0x43,
+ 0xff, 0x09, 0x66, 0x67, 0x6f, 0xdb, 0x26, 0x8c, 0x81, 0x7f, 0x80, 0x91,
+ 0xd9, 0xa2, 0x12, 0xf4, 0x6e, 0x4a, 0x46, 0x11, 0xf5, 0x0e, 0x28, 0x97,
+ 0x89, 0x81, 0xd1, 0x3c, 0x46, 0xcd, 0x0c, 0xef, 0x34, 0x07, 0x8c, 0xd6,
+ 0xeb, 0xb3, 0x37, 0xc7, 0x6d, 0x04, 0x2e, 0x7e, 0x12, 0xf3, 0xb4, 0x1a,
+ 0x79, 0xf5, 0xca, 0xc8, 0x17, 0xde, 0x03, 0x69, 0xa0, 0xba, 0xf1, 0xde,
+ 0x32, 0xdd, 0xba, 0xce, 0x9a, 0xc5, 0xed, 0x32, 0x9f, 0x6e, 0x6d, 0xd3,
+ 0x1e, 0x21, 0xfc, 0xfd, 0x00, 0x69, 0x1f, 0x6c, 0x00, 0xd6, 0xc9, 0x16,
+ 0x6b, 0xe3, 0x55, 0xd6, 0x2c, 0xab, 0x82, 0xbd, 0xe3, 0xd4, 0xf7, 0x30,
+ 0xd8, 0x2d, 0x57, 0x9a, 0xef, 0x09, 0x10, 0x1a, 0x11, 0x06, 0x2f, 0x71,
+ 0x83, 0xdb, 0x24, 0x04, 0x14, 0x1a, 0x81, 0x85, 0xc7, 0x58, 0x82, 0x7b,
+ 0xca, 0x9f, 0x89, 0xe4, 0xf0, 0xfc, 0xfc, 0xe5, 0xe1, 0xe5, 0xa1, 0x1d,
+ 0x1b, 0x2e, 0x62, 0x48, 0x16, 0xa8, 0xc3, 0x46, 0x24, 0x91, 0x76, 0x44,
+ 0x4f, 0x6e, 0xfe, 0xe9, 0xdd, 0xe8, 0xf8, 0xa2, 0xbb, 0xb0, 0xe7, 0x17,
+ 0x67, 0xc4, 0xd1, 0xf2, 0xa7, 0x9f, 0x0e, 0x29, 0x86, 0x2e, 0x11, 0xc0,
+ 0x97, 0x69, 0x93, 0x6e, 0x06, 0xa7, 0x7a, 0x7f, 0x9b, 0xfa, 0x77, 0x6b,
+ 0xfb, 0x77, 0x25, 0x97, 0x19, 0x4c, 0xfa, 0xe4, 0x3d, 0x2d, 0x68, 0x35,
+ 0x51, 0xf8, 0xad, 0x9d, 0x0d, 0x4c, 0x00, 0xd0, 0xb3, 0xab, 0x07, 0x52,
+ 0x3a, 0x49, 0xa6, 0x10, 0x32, 0x9d, 0xac, 0x99, 0xb1, 0xa7, 0xb3, 0xc9,
+ 0xb2, 0xd1, 0x2d, 0x8f, 0xfd, 0x45, 0x89, 0xad, 0xdd, 0x79, 0x09, 0x96,
+ 0xc7, 0x45, 0x4c, 0x58, 0x0a, 0x20, 0xaf, 0xda, 0x6c, 0x34, 0x40, 0xa4,
+ 0x87, 0xd2, 0x5b, 0x96, 0x62, 0x31, 0x88, 0x42, 0xc6, 0x31, 0x14, 0xe4,
+ 0x59, 0x73, 0x97, 0x82, 0x09, 0xf9, 0xa3, 0x39, 0x8d, 0x83, 0xe4, 0x58,
+ 0x12, 0x80, 0x30, 0x70, 0xf3, 0x83, 0xe0, 0xa1, 0xc6, 0xda, 0x0a, 0x22,
+ 0xec, 0xe3, 0xb2, 0xc2, 0xe3, 0x1e, 0xe8, 0x75, 0x95, 0x67, 0xce, 0xf6,
+ 0x33, 0x0f, 0x51, 0xb7, 0x69, 0xd2, 0x61, 0x2a, 0xf5, 0x22, 0x60, 0xa7,
+ 0x41, 0x7a, 0x4d, 0xdb, 0xcb, 0x3c, 0x6a, 0xb4, 0x68, 0x63, 0x21, 0xd1,
+ 0xbf, 0x76, 0xf6, 0x86, 0xbb, 0xbd, 0xb0, 0xf3, 0x74, 0x58, 0xc0, 0x1b,
+ 0x61, 0x43, 0x68, 0x24, 0x0d, 0x9b, 0xb2, 0xbc, 0xb7, 0x7f, 0x2c, 0xc2,
+ 0x8c, 0x1e, 0xba, 0x30, 0xed, 0x47, 0xbb, 0x32, 0x38, 0x0b, 0xf0, 0xc5,
+ 0x84, 0xd8, 0xad, 0x54, 0x28, 0x1a, 0x99, 0x58, 0x94, 0xb7, 0x34, 0x12,
+ 0xb3, 0xd5, 0x66, 0xb3, 0x16, 0xc1, 0x47, 0x2f, 0x3e, 0xcd, 0x05, 0xb8,
+ 0x74, 0xb2, 0xee, 0x6c, 0x47, 0xc3, 0xd4, 0xaa, 0x64, 0xfa, 0x9a, 0x9c,
+ 0x05, 0xbb, 0xc2, 0x64, 0xb4, 0x3b, 0xc1, 0xcf, 0xaf, 0x36, 0x52, 0x2e,
+ 0x90, 0x7b, 0x33, 0x1f, 0x86, 0x31, 0x50, 0x2c, 0xc8, 0x80, 0x1a, 0x21,
+ 0xed, 0xf3, 0x39, 0xa7, 0xef, 0x06, 0x86, 0xfb, 0x9b, 0xf4, 0x53, 0x3e,
+ 0x5f, 0xce, 0xf1, 0x31, 0xda, 0xdb, 0xf2, 0x98, 0x04, 0x0f, 0xe0, 0x42,
+ 0x64, 0x2c, 0x0a, 0x36, 0xf9, 0x66, 0x9d, 0x78, 0xe6, 0x7b, 0xec, 0x92,
+ 0x31, 0x57, 0xf2, 0xd0, 0x0d, 0xaf, 0x00, 0x82, 0x93, 0xa2, 0x0b, 0x75,
+ 0xc7, 0xf4, 0x37, 0xda, 0x42, 0x4a, 0x00, 0x83, 0xba, 0xb4, 0xc8, 0x9c,
+ 0x88, 0x38, 0xe7, 0xfc, 0x71, 0xd1, 0xe1, 0x3c, 0xa4, 0x6a, 0x56, 0xe5,
+ 0xe5, 0xd4, 0x9e, 0x1b, 0x52, 0x12, 0xf3, 0x62, 0x69, 0xe6, 0x99, 0x1d,
+ 0xc7, 0x8d, 0x85, 0xc0, 0x07, 0x00, 0x07, 0xa0, 0xea, 0x47, 0x48, 0x96,
+ 0x50, 0xf0, 0xe9, 0x67, 0xc3, 0x47, 0xfb, 0xc3, 0xdd, 0x7e, 0xcb, 0x7a,
+ 0x97, 0x34, 0x7b, 0x73, 0xba, 0x26, 0xf9, 0xdc, 0xa6, 0xe0, 0x0d, 0xff,
+ 0x65, 0x5e, 0x1a, 0x4a, 0x3e, 0x1c, 0xcc, 0xd3, 0x4f, 0x58, 0xbe, 0xe8,
+ 0xb2, 0x96, 0xc9, 0xf3, 0xd7, 0x67, 0xa3, 0xcb, 0xbd, 0x83, 0xf3, 0xb3,
+ 0x0b, 0xf3, 0x5f, 0xfa, 0xfb, 0x3e, 0xfe, 0xbe, 0x1f, 0x58, 0x8f, 0xaf,
+ 0x04, 0x3b, 0xab, 0xc9, 0x3a, 0xd0, 0x50, 0xa0, 0xd1, 0xf0, 0x6c, 0x26,
+ 0x5e, 0x43, 0xe4, 0x2f, 0x85, 0x18, 0x9c, 0xd8, 0x14, 0xaf, 0xee, 0x12,
+ 0x7b, 0x9f, 0x52, 0x00, 0x9d, 0x3a, 0x1a, 0x7c, 0x80, 0x60, 0xde, 0xa8,
+ 0x36, 0x25, 0xe9, 0xc1, 0x9a, 0x78, 0xdc, 0x75, 0xd1, 0x72, 0x6a, 0xa7,
+ 0xe4, 0xe7, 0x28, 0x85, 0x17, 0x80, 0x60, 0xed, 0x5f, 0x4d, 0x66, 0x46,
+ 0xd3, 0xcf, 0x08, 0x38, 0x32, 0xcd, 0x38, 0x9a, 0x42, 0x3f, 0x89, 0x19,
+ 0x20, 0xe6, 0xf8, 0x49, 0xc2, 0x42, 0x17, 0x4e, 0xc8, 0x3b, 0x52, 0x43,
+ 0x38, 0xa6, 0x37, 0xa6, 0x8f, 0x79, 0x7d, 0x23, 0xd3, 0x51, 0x64, 0x4d,
+ 0xb7, 0x39, 0xa6, 0xd6, 0xf2, 0x3d, 0x56, 0xc8, 0x5b, 0x46, 0x06, 0xf2,
+ 0xdb, 0xb3, 0xcb, 0x24, 0xbd, 0xba, 0xd2, 0x74, 0x69, 0xca, 0x48, 0x20,
+ 0x8d, 0x75, 0x67, 0xc1, 0x37, 0x19, 0x42, 0xd1, 0xa1, 0xe4, 0x63, 0x7d,
+ 0xe4, 0xf2, 0x74, 0xb4, 0x43, 0xfe, 0x2a, 0x46, 0xbc, 0x8d, 0xde, 0x9e,
+ 0xf4, 0x5b, 0x1e, 0x69, 0x1f, 0xe7, 0xb2, 0x4d, 0x37, 0x65, 0x5c, 0xa1,
+ 0x48, 0xbd, 0xbb, 0xd0, 0x91, 0x70, 0x10, 0x82, 0x0e, 0x4b, 0xda, 0x13,
+ 0x67, 0x48, 0x0f, 0x4b, 0xdb, 0x4b, 0x34, 0x44, 0x0a, 0xfb, 0x77, 0xbe,
+ 0x08, 0xf1, 0x69, 0xf0, 0xc5, 0xf6, 0x41, 0x4d, 0x41, 0x4a, 0x47, 0x8f,
+ 0x6c, 0x12, 0x1a, 0x16, 0x86, 0xd4, 0x1b, 0x72, 0xb3, 0xfb, 0x3d, 0xb4,
+ 0x8a, 0x46, 0xcd, 0xdf, 0xa9, 0x4d, 0x6c, 0xda, 0x71, 0x16, 0x03, 0xf6,
+ 0xf3, 0x87, 0xbc, 0xc6, 0x13, 0xdb, 0xbc, 0xe9, 0x98, 0xcd, 0x53, 0xd3,
+ 0xdd, 0x41, 0x02, 0xa6, 0xac, 0xf2, 0x6b, 0x02, 0x05, 0x74, 0x53, 0xc7,
+ 0x5c, 0x47, 0x02, 0x37, 0x14, 0x29, 0x63, 0x75, 0xd3, 0xf3, 0x5c, 0x06,
+ 0x4d, 0x00, 0xcd, 0x07, 0x48, 0xb4, 0x52, 0x7b, 0x46, 0xbb, 0x43, 0xf2,
+ 0xa7, 0x89, 0xe8, 0xf1, 0xac, 0xec, 0x99, 0xd1, 0xd1, 0xbd, 0xe3, 0x22,
+ 0x3e, 0x9a, 0xfa, 0xa3, 0x67, 0x09, 0xe4, 0x20, 0x27, 0x8d, 0x0a, 0x70,
+ 0x8e, 0x11, 0x75, 0x9b, 0x63, 0x12, 0x2b, 0x23, 0x11, 0x34, 0xdb, 0xa3,
+ 0xb7, 0xb7, 0xff, 0xd9, 0x70, 0xd7, 0xfc, 0x3f, 0xb3, 0x28, 0xa2, 0x1f,
+ 0x31, 0x85, 0x0e, 0x33, 0x9f, 0xf0, 0xa7, 0xf8, 0xe9, 0x48, 0xdc, 0x4d,
+ 0xef, 0xa0, 0xb2, 0xba, 0xee, 0xc5, 0xe1, 0x4f, 0x32, 0xe8, 0xd6, 0xad,
+ 0x42, 0x6b, 0x69, 0x6f, 0x94, 0x74, 0x2a, 0x3f, 0xd1, 0x63, 0x5e, 0x2d,
+ 0x67, 0x11, 0x18, 0x9f, 0xe7, 0x36, 0x26, 0x05, 0x6d, 0xf6, 0x51, 0x9c,
+ 0xc6, 0xaf, 0x49, 0x3c, 0x71, 0x2a, 0xdf, 0xb0, 0x05, 0x82, 0x7a, 0xd6,
+ 0xf2, 0x01, 0x1e, 0x89, 0xd5, 0x06, 0xe1, 0x3c, 0x30, 0xe7, 0xe1, 0x79,
+ 0x79, 0x75, 0x55, 0x67, 0x4d, 0xf7, 0x0e, 0x3a, 0x92, 0x47, 0x76, 0x2e,
+ 0x40, 0xfb, 0xc6, 0x61, 0x1b, 0xc9, 0xb6, 0x49, 0xda, 0x64, 0x25, 0x89,
+ 0xa0, 0xce, 0x58, 0x72, 0x71, 0x73, 0xc3, 0x48, 0x86, 0x81, 0xff, 0x7b,
+ 0x45, 0x84, 0x70, 0xae, 0xb0, 0x52, 0x60, 0x20, 0xe3, 0x8a, 0xd9, 0x2d,
+ 0xe4, 0xb2, 0xeb, 0x72, 0x55, 0xe9, 0xa9, 0xf8, 0x90, 0x2f, 0x16, 0x64,
+ 0xe1, 0x30, 0xef, 0x13, 0x76, 0xae, 0x0d, 0x98, 0x21, 0x6e, 0x8b, 0xdd,
+ 0xac, 0xe8, 0x40, 0xa3, 0x27, 0x4f, 0xe4, 0xda, 0x1f, 0x67, 0xe6, 0xd8,
+ 0x66, 0xa1, 0xd6, 0x4e, 0xfd, 0xf1, 0xc8, 0x3e, 0x84, 0xa3, 0x60, 0x4a,
+ 0xc4, 0x1e, 0x45, 0xaa, 0x52, 0xe6, 0xca, 0x4b, 0x83, 0x97, 0xfc, 0xbf,
+ 0x18, 0x44, 0xd5, 0x65, 0x67, 0x59, 0x97, 0xdb, 0xe8, 0xe4, 0x7f, 0x1e,
+ 0x3b, 0x6a, 0x16, 0xcb, 0x7d, 0xc2, 0xb9, 0x2e, 0xb1, 0xcc, 0x21, 0xb3,
+ 0xa7, 0x06, 0x47, 0x66, 0xbd, 0x10, 0x63, 0xf2, 0xa0, 0x25, 0x65, 0x27,
+ 0x17, 0x03, 0xa6, 0x0f, 0x29, 0x13, 0x50, 0x88, 0x76, 0x28, 0x1b, 0x3a,
+ 0xb8, 0x1d, 0x98, 0xb9, 0x8f, 0x5d, 0x89, 0x32, 0x46, 0x1c, 0x90, 0x46,
+ 0x12, 0xe7, 0xfc, 0x84, 0x13, 0xd1, 0x17, 0x77, 0xf2, 0x82, 0xb4, 0x46,
+ 0xd6, 0x61, 0x82, 0x7c, 0x0c, 0x4d, 0x85, 0x65, 0x0e, 0x88, 0x65, 0xf3,
+ 0x2f, 0x8c, 0x95, 0x54, 0xb4, 0x7f, 0x41, 0xee, 0xe5, 0x6d, 0xea, 0x09,
+ 0x6f, 0x6a, 0x62, 0x30, 0x1c, 0xfc, 0xcd, 0x18, 0xda, 0xcf, 0xd5, 0x53,
+ 0xb1, 0x2a, 0x59, 0x5a, 0xfd, 0x1a, 0x94, 0x3f, 0x01, 0x3b, 0x0c, 0x7b,
+ 0xc3, 0xb2, 0x76, 0xe8, 0x54, 0xb3, 0x4b, 0x25, 0x85, 0x3a, 0x03, 0x7a,
+ 0xc4, 0xae, 0xac, 0xbf, 0x02, 0x15, 0x88, 0xa5, 0x86, 0xf0, 0xd2, 0x27,
+ 0x87, 0x14, 0x95, 0x9a, 0x71, 0x0b, 0x35, 0x03, 0x29, 0xa5, 0x0d, 0xb5,
+ 0x1b, 0xf2, 0xe0, 0xda, 0xcd, 0x8b, 0xc1, 0x3c, 0x9b, 0x03, 0xe3, 0xcd,
+ 0xcf, 0x22, 0x78, 0x46, 0x5c, 0x56, 0xb2, 0x1d, 0x79, 0x89, 0xd8, 0x12,
+ 0x6f, 0x04, 0x48, 0x01, 0xcd, 0x16, 0x9f, 0x0d, 0x63, 0x8f, 0x65, 0xc1,
+ 0x6e, 0x47, 0xf8, 0x0a, 0xf9, 0xe3, 0xe4, 0x22, 0xfb, 0x60, 0xd4, 0xe7,
+ 0xa2, 0x4f, 0x3f, 0x45, 0x2e, 0xaa, 0x97, 0x98, 0x48, 0xdd, 0x6d, 0x32,
+ 0x0e, 0x52, 0x64, 0x11, 0x75, 0xd6, 0x7b, 0x56, 0x1e, 0xf5, 0x3c, 0x29,
+ 0x6f, 0xb3, 0x46, 0xa0, 0x22, 0xdc, 0x79, 0x4d, 0xcc, 0x42, 0x72, 0xd7,
+ 0xc9, 0x55, 0xa7, 0x39, 0x90, 0x68, 0x65, 0x8d, 0xf3, 0x09, 0x41, 0xc0,
+ 0x32, 0x67, 0x28, 0x33, 0x07, 0x91, 0xdb, 0xb3, 0x6f, 0x8e, 0x41, 0x4f,
+ 0x5d, 0xb0, 0x3c, 0x82, 0x38, 0x54, 0x41, 0xbb, 0x43, 0x9e, 0xa2, 0x66,
+ 0x1a, 0xdb, 0x93, 0xac, 0xfe, 0xea, 0x81, 0x14, 0x42, 0x35, 0x1f, 0xfe,
+ 0x40, 0xd4, 0x50, 0x88, 0xd6, 0xbb, 0xaf, 0x29, 0x50, 0x85, 0x36, 0x7a,
+ 0x37, 0x1d, 0xd7, 0x25, 0x96, 0x12, 0x64, 0xa6, 0x9a, 0xaa, 0x73, 0x44,
+ 0x3b, 0x6a, 0xa4, 0xb0, 0x98, 0x46, 0xb7, 0x29, 0x76, 0x9a, 0x6d, 0x3f,
+ 0x8f, 0x68, 0x21, 0x1e, 0xde, 0x71, 0x30, 0x76, 0xdb, 0xd9, 0x91, 0x8a,
+ 0x44, 0x5d, 0xb3, 0xf2, 0x10, 0xed, 0x79, 0x73, 0xb1, 0x6c, 0x42, 0xb2,
+ 0x48, 0x72, 0x29, 0x78, 0x3a, 0xec, 0xa4, 0xf0, 0x14, 0xde, 0xde, 0x94,
+ 0x33, 0xb6, 0x8c, 0x83, 0x08, 0x8b, 0xcd, 0xfa, 0x05, 0xe5, 0x05, 0xc1,
+ 0x78, 0xe1, 0x58, 0xfe, 0x08, 0x84, 0x70, 0x2b, 0x4a, 0x62, 0x54, 0xbc,
+ 0x2c, 0xa5, 0x5c, 0x23, 0xc1, 0xc8, 0x27, 0x83, 0x8f, 0x61, 0x8e, 0xa4,
+ 0x39, 0xe7, 0xe3, 0xb2, 0xb6, 0xfb, 0x85, 0x72, 0x6b, 0xe9, 0x06, 0xb9,
+ 0x4d, 0x2b, 0x08, 0x66, 0xe1, 0x0e, 0x52, 0x5a, 0x45, 0x1f, 0x23, 0x48,
+ 0xda, 0x60, 0x37, 0xbf, 0x21, 0xa7, 0x7c, 0x74, 0xb3, 0x4d, 0x8c, 0x0e,
+ 0x40, 0x6e, 0x5a, 0xec, 0x1d, 0x6a, 0x52, 0x58, 0x81, 0x6e, 0x40, 0x10,
+ 0x2a, 0x49, 0xeb, 0xe6, 0x1c, 0xde, 0xd0, 0xb5, 0x9e, 0x37, 0xcb, 0xb4,
+ 0x79, 0x18, 0x40, 0x7b, 0x95, 0x6c, 0x62, 0xe1, 0xe4, 0x83, 0x19, 0x22,
+ 0xa1, 0x04, 0x6c, 0xdb, 0x15, 0x51, 0x43, 0x7f, 0x21, 0x9f, 0xd3, 0x59,
+ 0x5b, 0x21, 0x8f, 0xce, 0x41, 0x6f, 0x76, 0xd3, 0xe6, 0xc7, 0x41, 0x2a,
+ 0xae, 0x5c, 0x23, 0x9a, 0xed, 0xc6, 0x4d, 0xe9, 0x2d, 0x7f, 0x12, 0x89,
+ 0xe7, 0x23, 0xfe, 0x65, 0x7a, 0x31, 0xbb, 0x73, 0x0d, 0x7a, 0x59, 0xb2,
+ 0x0a, 0xe4, 0xf6, 0xb8, 0xc3, 0xec, 0x17, 0x02, 0x70, 0x52, 0x6f, 0x64,
+ 0x94, 0x6f, 0xfe, 0xe6, 0x41, 0x4f, 0xa9, 0x18, 0x2d, 0xb7, 0x8c, 0x08,
+ 0x0f, 0x49, 0xd3, 0xb2, 0x69, 0x1e, 0xe2, 0xb3, 0xa7, 0x53, 0xdf, 0x6d,
+ 0x8e, 0x78, 0x89, 0xf7, 0x5e, 0x7c, 0x77, 0x78, 0xfa, 0xee, 0x78, 0xef,
+ 0x8b, 0x84, 0xfe, 0xb5, 0xcf, 0xff, 0xda, 0xef, 0xc5, 0x56, 0xc9, 0xc8,
+ 0xa7, 0xcd, 0x17, 0x9b, 0x49, 0x7d, 0x37, 0x1f, 0x97, 0x33, 0xbb, 0x4e,
+ 0x32, 0x15, 0x1a, 0x2a, 0xeb, 0xcb, 0xe5, 0x6d, 0x93, 0xb6, 0xc5, 0x43,
+ 0xde, 0x95, 0xd4, 0xb5, 0x60, 0x0b, 0x55, 0xca, 0x20, 0x46, 0xe7, 0xa7,
+ 0x0f, 0x37, 0xc8, 0xb0, 0x56, 0xd1, 0x25, 0xd1, 0xba, 0x55, 0x78, 0x4f,
+ 0xdc, 0x45, 0x7a, 0x9e, 0xeb, 0x88, 0xc0, 0x10, 0xb2, 0x02, 0xde, 0xfd,
+ 0xf0, 0x89, 0x8b, 0xd3, 0x92, 0x65, 0x45, 0x20, 0xf8, 0x8d, 0x58, 0xc2,
+ 0x59, 0xb2, 0x34, 0xbc, 0xda, 0x02, 0xa9, 0xf2, 0x34, 0xb7, 0xc4, 0xd6,
+ 0x76, 0x27, 0xf4, 0x03, 0x9b, 0x55, 0x66, 0xc5, 0x2e, 0x86, 0x1e, 0xc4,
+ 0x1e, 0xe6, 0x63, 0xd1, 0x5a, 0x3c, 0xaa, 0xa2, 0x53, 0xda, 0x8c, 0x8a,
+ 0xc3, 0xb0, 0x19, 0xa2, 0x15, 0x78, 0x14, 0x9c, 0x27, 0x23, 0xf1, 0x98,
+ 0x70, 0x2d, 0xa7, 0x9e, 0x90, 0xd2, 0x79, 0x24, 0x9d, 0x70, 0xb5, 0x89,
+ 0xa3, 0xd9, 0x41, 0x14, 0x9d, 0x1c, 0xa7, 0xb4, 0x07, 0x52, 0xed, 0x08,
+ 0x59, 0xd2, 0x15, 0x9c, 0x46, 0xad, 0xac, 0x93, 0x2d, 0x23, 0xd7, 0xb7,
+ 0xfb, 0x5e, 0x2c, 0x56, 0x17, 0x50, 0x5c, 0x12, 0x8d, 0x8d, 0x9a, 0xae,
+ 0x88, 0x13, 0x5c, 0xde, 0xb4, 0x6e, 0x18, 0xd5, 0xf5, 0x34, 0xad, 0x99,
+ 0x63, 0xb0, 0x72, 0x65, 0x70, 0x33, 0xbc, 0x51, 0x09, 0xa6, 0x39, 0x4b,
+ 0x83, 0x39, 0xe3, 0xc4, 0x77, 0xa1, 0xc2, 0xa0, 0x88, 0xbe, 0xdd, 0xfa,
+ 0xe6, 0xfb, 0x77, 0xb3, 0x6c, 0x5b, 0x8d, 0x02, 0xbd, 0xe5, 0x76, 0xde,
+ 0x94, 0xff, 0x30, 0xfd, 0x4e, 0xe5, 0x23, 0xb1, 0xcb, 0x52, 0xee, 0xbe,
+ 0x95, 0x3d, 0x77, 0x82, 0x85, 0x93, 0xc3, 0x7d, 0x71, 0xd1, 0xb2, 0x8b,
+ 0x11, 0xe8, 0x25, 0x85, 0x0c, 0x98, 0xec, 0x60, 0xb5, 0x45, 0xad, 0x08,
+ 0xae, 0x66, 0x11, 0x24, 0x88, 0xec, 0x24, 0x97, 0xa5, 0x40, 0x71, 0xec,
+ 0x16, 0x93, 0xfb, 0xa6, 0x2b, 0xbb, 0xbb, 0xca, 0xd4, 0x8a, 0x1b, 0xe8,
+ 0xf8, 0x53, 0x56, 0x4d, 0x88, 0x66, 0x62, 0x62, 0x14, 0x52, 0x08, 0xd2,
+ 0x2b, 0x71, 0x4d, 0x51, 0x10, 0xce, 0xa6, 0x60, 0xf9, 0x1e, 0x35, 0xdc,
+ 0xbb, 0xba, 0xd3, 0x56, 0x6e, 0x32, 0x80, 0x1c, 0x26, 0x66, 0x63, 0x0c,
+ 0x2d, 0x23, 0x98, 0xde, 0x8c, 0x6d, 0x01, 0xa2, 0xb9, 0x64, 0x08, 0x25,
+ 0x04, 0x20, 0x33, 0xcc, 0xb0, 0xbe, 0xe8, 0xad, 0xa6, 0x6c, 0x17, 0xf4,
+ 0x85, 0xf9, 0x9d, 0x5c, 0x64, 0x88, 0xe8, 0x01, 0x40, 0x92, 0xb3, 0x1a,
+ 0x87, 0x68, 0x57, 0x07, 0xdc, 0x1d, 0x88, 0x94, 0x14, 0x77, 0x4a, 0xad,
+ 0xb3, 0x85, 0xfb, 0x92, 0xb5, 0x42, 0xa5, 0x60, 0x83, 0xca, 0x15, 0xa6,
+ 0x20, 0xcf, 0xca, 0x5b, 0x8a, 0xbf, 0xb4, 0x09, 0x11, 0xe7, 0xe5, 0x94,
+ 0xf7, 0xc3, 0xf8, 0xce, 0x52, 0xa7, 0x0f, 0x48, 0x49, 0xe2, 0xcf, 0x0e,
+ 0x35, 0xe4, 0x18, 0xdd, 0x01, 0x9a, 0x51, 0xd9, 0x4d, 0x39, 0x4a, 0x5d,
+ 0xc2, 0x51, 0xc3, 0x8e, 0x64, 0x56, 0x2c, 0x1c, 0x1b, 0x51, 0xec, 0x46,
+ 0xc3, 0x88, 0xc7, 0x25, 0xd1, 0x5c, 0x5a, 0xc0, 0x29, 0x71, 0x9c, 0x91,
+ 0x8f, 0xe7, 0x6a, 0xd9, 0x40, 0xfb, 0x57, 0xfb, 0xaf, 0x11, 0x4c, 0xb1,
+ 0x38, 0x8a, 0x82, 0x58, 0xe3, 0x07, 0xe6, 0xc2, 0x2a, 0x1b, 0xe5, 0x39,
+ 0x15, 0x0e, 0xc0, 0x06, 0x79, 0x9d, 0xa4, 0x6c, 0xc2, 0xfa, 0x05, 0xe5,
+ 0x9a, 0xf9, 0x2e, 0xa1, 0x92, 0xea, 0x9a, 0xe8, 0xb5, 0x80, 0x3f, 0x0d,
+ 0xa8, 0x35, 0x30, 0xd5, 0x84, 0xac, 0x71, 0x8b, 0xba, 0xc5, 0xe4, 0x37,
+ 0xe8, 0x85, 0x48, 0x13, 0xe2, 0xc4, 0x80, 0xc1, 0x3e, 0xd6, 0x77, 0xea,
+ 0x6d, 0xf2, 0x63, 0x44, 0x40, 0x97, 0x2d, 0xe5, 0x75, 0xc5, 0xa1, 0xfd,
+ 0xa7, 0x2d, 0x9a, 0xc0, 0xc2, 0xab, 0x6a, 0xe6, 0x14, 0x05, 0x2b, 0xab,
+ 0x45, 0xc1, 0x63, 0xca, 0x43, 0xe1, 0x95, 0xba, 0xf8, 0x1b, 0x4c, 0x8a,
+ 0xee, 0x28, 0x16, 0x53, 0xe8, 0x7c, 0xfa, 0x0e, 0xb4, 0x24, 0x8f, 0x1b,
+ 0xb0, 0x2e, 0xe5, 0x44, 0xa2, 0x79, 0x12, 0x34, 0x4e, 0xd2, 0xc4, 0x48,
+ 0x72, 0xba, 0x32, 0xc0, 0x0f, 0xb0, 0xb4, 0xa8, 0xab, 0xd8, 0x87, 0x33,
+ 0xf7, 0xe5, 0x83, 0x79, 0x11, 0x57, 0xf0, 0xc0, 0xec, 0xff, 0x3a, 0x16,
+ 0xa8, 0xd4, 0x6b, 0xdc, 0x48, 0xf9, 0xbf, 0x2d, 0x8b, 0x49, 0xe7, 0x9a,
+ 0x2a, 0xfb, 0x1e, 0x45, 0xa1, 0x44, 0x65, 0xed, 0x2d, 0xd1, 0xdd, 0xf8,
+ 0xf8, 0x90, 0xd0, 0xdf, 0x50, 0xf2, 0x27, 0xa5, 0x6a, 0xd0, 0x15, 0x37,
+ 0xf3, 0xd2, 0x44, 0x6f, 0x72, 0xb3, 0x42, 0xd5, 0xe4, 0x06, 0x1c, 0x02,
+ 0xf0, 0x23, 0x65, 0xea, 0x1c, 0x8d, 0xe3, 0x8c, 0xa4, 0x59, 0xd1, 0xc8,
+ 0x72, 0x12, 0x49, 0xc4, 0x12, 0x52, 0x16, 0x2a, 0xa8, 0x57, 0xf5, 0x33,
+ 0x84, 0x71, 0xdd, 0xd0, 0x9c, 0x67, 0xb3, 0x3a, 0xb3, 0xe8, 0x0f, 0xfb,
+ 0x8e, 0xbb, 0x2b, 0x61, 0x81, 0x17, 0xf0, 0xc9, 0x72, 0x3e, 0x50, 0x1e,
+ 0x3d, 0xe5, 0xe8, 0x89, 0x51, 0x76, 0xa4, 0x33, 0x64, 0x54, 0xd2, 0x3e,
+ 0xb9, 0x53, 0x8e, 0x19, 0x69, 0x41, 0x77, 0x9d, 0x72, 0xcc, 0x04, 0xb7,
+ 0x4f, 0x69, 0xe7, 0x4d, 0x78, 0x5b, 0x74, 0xaa, 0x72, 0xa5, 0xa0, 0xe6,
+ 0xad, 0x42, 0x5e, 0x0c, 0xd3, 0x1b, 0x2e, 0x8d, 0x40, 0xf1, 0xaf, 0xc1,
+ 0xe0, 0xaa, 0x59, 0x0c, 0xa2, 0x4b, 0x80, 0xb5, 0x6e, 0x6f, 0x81, 0xd9,
+ 0x95, 0x70, 0xf4, 0xbc, 0x51, 0x7a, 0xb2, 0x8f, 0x94, 0xb0, 0x93, 0x9c,
+ 0xbe, 0x62, 0x2f, 0xde, 0xd1, 0x05, 0xfd, 0x2d, 0xb7, 0x0c, 0x45, 0x43,
+ 0x1c, 0x0a, 0xaa, 0x75, 0xc0, 0xe9, 0xeb, 0x6f, 0xbe, 0xeb, 0xe6, 0x5c,
+ 0x6e, 0x9d, 0x8d, 0x76, 0x1e, 0x3d, 0xdb, 0xdd, 0x8e, 0x00, 0x94, 0xcd,
+ 0x37, 0x1c, 0x75, 0xdb, 0x67, 0xc3, 0xc7, 0xbb, 0xc3, 0xdd, 0xed, 0x4e,
+ 0x6f, 0x68, 0xba, 0xd7, 0x50, 0xa7, 0x28, 0xe1, 0xb4, 0xbd, 0x38, 0x00,
+ 0x3a, 0xb6, 0xec, 0x24, 0x0a, 0x92, 0xf6, 0x33, 0x47, 0x2f, 0xb2, 0x8f,
+ 0x66, 0xab, 0xc5, 0xac, 0xee, 0xe4, 0x34, 0xaf, 0xc5, 0xaa, 0xa1, 0xdb,
+ 0x4c, 0xef, 0x17, 0x4a, 0xcd, 0x6e, 0x43, 0x7f, 0xf1, 0x08, 0x5d, 0x98,
+ 0x8c, 0x75, 0x88, 0x44, 0x5b, 0x6a, 0xd3, 0xa9, 0x0a, 0x28, 0x3c, 0xc4,
+ 0xf4, 0x7f, 0x77, 0x4f, 0x8b, 0xe7, 0x39, 0xdc, 0x7b, 0x36, 0xfc, 0xcc,
+ 0x5f, 0x53, 0xd2, 0xf7, 0x07, 0x69, 0x3d, 0xc9, 0xf3, 0xb5, 0xc6, 0x8c,
+ 0xc2, 0x1b, 0xff, 0xb6, 0x04, 0x09, 0x99, 0xd9, 0xa6, 0x79, 0xca, 0xa1,
+ 0x5a, 0xc7, 0xdd, 0x18, 0x34, 0x4b, 0xfa, 0xaa, 0xd9, 0x62, 0xeb, 0xda,
+ 0x15, 0x03, 0x9e, 0xea, 0x57, 0x08, 0xdd, 0xac, 0xd5, 0x30, 0xeb, 0xae,
+ 0x2a, 0x65, 0xce, 0x02, 0xd3, 0x95, 0x2d, 0xaa, 0x30, 0x99, 0x8f, 0x80,
+ 0x98, 0x80, 0x37, 0xa7, 0x4d, 0x5d, 0xd2, 0x3c, 0xc5, 0x26, 0x15, 0xee,
+ 0x09, 0x10, 0x76, 0x5a, 0x33, 0xca, 0x9e, 0x7d, 0x01, 0x03, 0x7d, 0xe5,
+ 0x21, 0x77, 0x5a, 0x66, 0x50, 0x1a, 0x51, 0x06, 0x99, 0x6f, 0x3c, 0x41,
+ 0x78, 0x9c, 0xd3, 0xa6, 0x68, 0x20, 0xc2, 0xba, 0x0f, 0x9f, 0x07, 0x63,
+ 0x44, 0x84, 0x73, 0x9f, 0xe8, 0x87, 0xec, 0x6c, 0x45, 0xc8, 0xa5, 0xfa,
+ 0x66, 0x7c, 0x60, 0x33, 0xc4, 0x0e, 0x2a, 0xb2, 0x5b, 0x92, 0xc6, 0xb5,
+ 0xa8, 0x13, 0x55, 0x95, 0x93, 0xd3, 0xc8, 0x82, 0x0b, 0x58, 0x25, 0x23,
+ 0xb8, 0x25, 0x5d, 0xd0, 0xd3, 0x48, 0x22, 0xf7, 0x04, 0xa7, 0xb3, 0xb6,
+ 0x00, 0xed, 0x02, 0x7c, 0x7c, 0xc4, 0x2f, 0x17, 0xcc, 0x0d, 0x28, 0xd3,
+ 0xd1, 0x39, 0xe5, 0xe1, 0x6c, 0xda, 0xf0, 0x0f, 0xd2, 0xdc, 0x19, 0xcc,
+ 0xcc, 0xf4, 0x66, 0x65, 0xcb, 0xcc, 0xac, 0x57, 0x87, 0x4b, 0x76, 0x3e,
+ 0x0d, 0x6e, 0x6f, 0x6f, 0x07, 0x74, 0xe0, 0x08, 0x93, 0x23, 0x39, 0x15,
+ 0xc3, 0x16, 0x9f, 0x2e, 0x33, 0x4a, 0x61, 0x0e, 0x99, 0x2d, 0x25, 0x50,
+ 0x23, 0x1d, 0x3e, 0xaa, 0x1a, 0xe7, 0x0d, 0x92, 0xf7, 0x64, 0x73, 0xe1,
+ 0x35, 0x49, 0xa2, 0x93, 0xee, 0x40, 0xcb, 0x51, 0x2f, 0x54, 0xe4, 0xf4,
+ 0xb9, 0xb1, 0x10, 0xef, 0xd4, 0xa4, 0xc9, 0x28, 0x59, 0xdd, 0x7c, 0x62,
+ 0x7e, 0x90, 0x0c, 0x5e, 0x27, 0xbd, 0x23, 0x19, 0xed, 0xa5, 0x79, 0xe2,
+ 0xa0, 0x3d, 0x16, 0x7e, 0x38, 0x0c, 0xe6, 0x98, 0x77, 0xa3, 0xc6, 0x6e,
+ 0x47, 0x55, 0xb6, 0xfc, 0x79, 0x91, 0x83, 0x8c, 0x82, 0x13, 0x0e, 0x35,
+ 0xd3, 0x44, 0x3c, 0x75, 0x04, 0x7b, 0x61, 0x9f, 0x16, 0x73, 0x9e, 0x61,
+ 0xe8, 0x69, 0x2d, 0xc5, 0x49, 0xc6, 0x7c, 0xc2, 0xd7, 0x1c, 0xc7, 0x2a,
+ 0xbd, 0xbd, 0xff, 0x8c, 0x7b, 0x27, 0x51, 0x76, 0xef, 0x0c, 0x7e, 0x2e,
+ 0x8f, 0xa2, 0x95, 0x9c, 0x3b, 0x16, 0x6c, 0x19, 0xe9, 0xa9, 0x94, 0x06,
+ 0x70, 0x99, 0x53, 0x62, 0x9c, 0xf2, 0x5d, 0xf9, 0xd5, 0x9a, 0xa4, 0x33,
+ 0xe7, 0x11, 0x76, 0xa3, 0x68, 0x85, 0x3d, 0x3a, 0x3c, 0x8f, 0x18, 0x96,
+ 0xdd, 0x55, 0x0f, 0x10, 0x34, 0x6e, 0x74, 0x7d, 0x7b, 0x38, 0x65, 0x2f,
+ 0xb3, 0x57, 0xcf, 0x1b, 0xa6, 0x10, 0x82, 0xc6, 0x60, 0x9c, 0x1c, 0xe4,
+ 0xa0, 0xa3, 0x0a, 0xbe, 0x1e, 0x4b, 0xf4, 0xb6, 0xc8, 0x2a, 0xda, 0xe8,
+ 0x80, 0xbc, 0x0f, 0x14, 0xa9, 0x1c, 0xbb, 0xac, 0x8d, 0x40, 0x39, 0xfa,
+ 0xe6, 0x04, 0xd0, 0x6d, 0x23, 0x48, 0x0b, 0x61, 0x6c, 0xe0, 0xfe, 0x73,
+ 0x15, 0x18, 0x6b, 0xd8, 0x5e, 0xe7, 0x96, 0xa4, 0x2d, 0x4d, 0x5a, 0xa4,
+ 0xab, 0x1d, 0xbb, 0x23, 0x51, 0x03, 0x43, 0xc0, 0xa9, 0x62, 0x27, 0xc8,
+ 0xe1, 0xb5, 0xe1, 0xdd, 0xd4, 0xe5, 0x03, 0x44, 0xe7, 0x0b, 0x5f, 0x57,
+ 0x66, 0x91, 0xb4, 0x96, 0x08, 0x2e, 0x94, 0xb5, 0x00, 0x2b, 0xee, 0xf6,
+ 0x2b, 0x57, 0xd5, 0xc9, 0x42, 0xdc, 0x9b, 0x7c, 0x3e, 0x5e, 0xf4, 0x0a,
+ 0x6b, 0xe2, 0xea, 0x05, 0xe1, 0x23, 0x76, 0xea, 0x32, 0xdf, 0x6b, 0xc0,
+ 0x89, 0x57, 0xe4, 0x51, 0x8b, 0xb9, 0x6d, 0x55, 0xd5, 0x23, 0x1f, 0xf7,
+ 0x7f, 0xd0, 0x0d, 0x85, 0x7b, 0xd7, 0xc8, 0x3c, 0xd2, 0x3c, 0x34, 0x39,
+ 0xd2, 0x6f, 0x4d, 0xa9, 0xfc, 0x04, 0xf5, 0x1a, 0x6f, 0x8e, 0x6c, 0xc0,
+ 0x17, 0xa4, 0x2d, 0x7d, 0x25, 0xee, 0x2a, 0x73, 0x54, 0x95, 0x23, 0x9b,
+ 0xcd, 0x72, 0xce, 0x8c, 0x65, 0x4f, 0x90, 0xf0, 0x0e, 0xd1, 0x34, 0xc4,
+ 0x9b, 0xe3, 0x08, 0xa7, 0x37, 0x7b, 0xbc, 0xe3, 0x88, 0x89, 0xbb, 0xe6,
+ 0xca, 0x4a, 0x7f, 0xe8, 0x4e, 0xde, 0x8b, 0xfb, 0x67, 0xef, 0x97, 0x4e,
+ 0xdf, 0xfa, 0xd9, 0x63, 0x46, 0x7b, 0x45, 0xca, 0xbe, 0xf0, 0xdc, 0x74,
+ 0x00, 0x7b, 0xb0, 0xfd, 0x65, 0xdd, 0x75, 0x6d, 0x29, 0xe3, 0x19, 0x9a,
+ 0x2f, 0x7e, 0xab, 0x55, 0xc7, 0x66, 0x84, 0x55, 0x4f, 0x9d, 0x8f, 0x37,
+ 0xc7, 0x31, 0x45, 0xac, 0xbd, 0xcf, 0xbb, 0x28, 0x7a, 0x38, 0x5a, 0x80,
+ 0xe3, 0xca, 0xec, 0xff, 0x86, 0x37, 0xf3, 0x18, 0x30, 0xcf, 0x41, 0xbc,
+ 0x39, 0xcd, 0xfa, 0x13, 0x45, 0x3c, 0x18, 0xdf, 0x57, 0x7a, 0xf1, 0xdf,
+ 0x37, 0xb8, 0x96, 0x87, 0x10, 0xc8, 0x22, 0xb9, 0xe3, 0x2c, 0xc2, 0xcc,
+ 0xe2, 0x42, 0x22, 0x1e, 0x68, 0x9b, 0x7a, 0x69, 0x79, 0x20, 0xb9, 0xb0,
+ 0x8e, 0x6a, 0x05, 0xdb, 0xfd, 0xf6, 0x9c, 0x11, 0xcf, 0x1d, 0xee, 0x03,
+ 0x59, 0xe8, 0x78, 0x73, 0x39, 0x8c, 0x7d, 0x59, 0x3e, 0x22, 0xab, 0x8f,
+ 0x2e, 0xdf, 0xff, 0xcb, 0x86, 0xc8, 0x9e, 0x6d, 0x0e, 0xf5, 0x73, 0x85,
+ 0xad, 0x6b, 0xe6, 0x8d, 0x34, 0xdd, 0x02, 0xc8, 0x3e, 0x69, 0x95, 0x95,
+ 0x09, 0x54, 0x19, 0x38, 0x34, 0xfa, 0x08, 0xb8, 0xce, 0x10, 0x95, 0xce,
+ 0x99, 0xfc, 0xfa, 0x85, 0xd3, 0x67, 0x06, 0x34, 0xbc, 0x81, 0xec, 0xda,
+ 0x21, 0xf6, 0xe1, 0x9a, 0xcd, 0x6a, 0x37, 0x67, 0x7c, 0x5f, 0x06, 0x3b,
+ 0x70, 0xf5, 0xed, 0xa8, 0x14, 0xab, 0x72, 0xbd, 0xb7, 0x2e, 0xcb, 0xbd,
+ 0xcf, 0x5b, 0x97, 0xa5, 0x7b, 0x67, 0xdd, 0x35, 0x39, 0xca, 0x18, 0x93,
+ 0xe6, 0xfb, 0x31, 0xf1, 0x12, 0x67, 0x55, 0x53, 0x79, 0x83, 0x10, 0xdd,
+ 0x44, 0xaf, 0x06, 0x49, 0xc6, 0x0c, 0x2f, 0x72, 0xd1, 0x03, 0x76, 0x2e,
+ 0x53, 0xd4, 0x4c, 0x0c, 0xa4, 0x64, 0x5c, 0x95, 0xb7, 0x35, 0x34, 0x52,
+ 0xb5, 0x51, 0x53, 0x46, 0xc1, 0xde, 0x04, 0x50, 0x0c, 0x33, 0xbd, 0x33,
+ 0x4b, 0x05, 0xfb, 0xfa, 0xf2, 0xcd, 0x29, 0xd3, 0xdd, 0x73, 0x36, 0x2e,
+ 0x25, 0x1c, 0x49, 0x9f, 0x97, 0xe3, 0xb9, 0x59, 0x7f, 0xa3, 0xa0, 0x34,
+ 0x2c, 0xcd, 0x54, 0x40, 0x06, 0x29, 0xc3, 0x08, 0xe9, 0x49, 0x40, 0x78,
+ 0x11, 0x0b, 0xd4, 0x88, 0x2e, 0xe9, 0x02, 0xa1, 0xbe, 0x12, 0xfc, 0xcb,
+ 0xd5, 0x5d, 0x63, 0x2a, 0x03, 0x14, 0x03, 0x55, 0xea, 0x15, 0x2d, 0x05,
+ 0x3d, 0x12, 0x9c, 0x3e, 0x4f, 0x53, 0x43, 0x55, 0x26, 0xb0, 0x4a, 0x5b,
+ 0x27, 0x0d, 0x29, 0x5e, 0xb6, 0x24, 0x03, 0x38, 0xb2, 0xd2, 0xb6, 0xb2,
+ 0xd5, 0x15, 0x69, 0x4e, 0xf9, 0x72, 0xc5, 0x15, 0x7c, 0xfd, 0x8b, 0x54,
+ 0x11, 0x52, 0x89, 0x24, 0xa2, 0xb4, 0xac, 0xc8, 0xa7, 0xc7, 0x8a, 0x75,
+ 0x3f, 0x02, 0xbb, 0x17, 0x9d, 0x44, 0x9d, 0xfa, 0x36, 0xb4, 0xd9, 0xb2,
+ 0xf6, 0x94, 0x45, 0x9e, 0xda, 0xf6, 0x8e, 0x6f, 0x44, 0x4f, 0x64, 0x46,
+ 0x2a, 0x24, 0x53, 0x60, 0x35, 0xcd, 0x66, 0x33, 0xad, 0xa3, 0x48, 0x52,
+ 0x0a, 0x1f, 0x79, 0xa0, 0xe1, 0x45, 0x75, 0x6c, 0x57, 0x62, 0xa1, 0x76,
+ 0xac, 0xfa, 0x6a, 0x32, 0x83, 0x98, 0x0b, 0x54, 0x5c, 0xa0, 0xd5, 0x2f,
+ 0xdb, 0x2e, 0xaf, 0x41, 0x10, 0xfe, 0x15, 0x17, 0x58, 0xdf, 0x8b, 0xb3,
+ 0xe5, 0xe4, 0x84, 0xf2, 0xe3, 0x85, 0x2e, 0xb2, 0x3e, 0xcf, 0xaa, 0x6b,
+ 0xce, 0x44, 0x60, 0x3e, 0xd8, 0x28, 0x6b, 0x45, 0x9a, 0x78, 0xac, 0x6c,
+ 0x49, 0xf2, 0x6f, 0x03, 0xbe, 0x54, 0xe1, 0xad, 0x5a, 0x52, 0x50, 0x48,
+ 0xdc, 0xea, 0x9b, 0x83, 0x29, 0x8b, 0x95, 0x69, 0x5a, 0x98, 0x99, 0x30,
+ 0x27, 0x36, 0xc4, 0xc7, 0xcc, 0x66, 0x2f, 0x66, 0xe5, 0xb2, 0xbe, 0xdb,
+ 0x4c, 0xa4, 0xc2, 0x89, 0x14, 0x05, 0x68, 0x04, 0xcb, 0x03, 0x50, 0xd3,
+ 0xe4, 0x66, 0x59, 0x7c, 0xd0, 0x7b, 0x91, 0x92, 0x15, 0x6a, 0xf6, 0xd7,
+ 0x76, 0x9a, 0xdb, 0xf4, 0x3e, 0xf6, 0x6f, 0x7e, 0xdb, 0xd1, 0x59, 0x86,
+ 0x77, 0x97, 0x6d, 0xe7, 0x87, 0x19, 0xcf, 0x2e, 0x32, 0x13, 0xb3, 0x9c,
+ 0x93, 0x56, 0xc8, 0xce, 0x36, 0x48, 0xf7, 0x06, 0x73, 0xf0, 0x6a, 0xe4,
+ 0xc1, 0x41, 0x37, 0x20, 0x6f, 0x56, 0xe4, 0x9f, 0xb8, 0x12, 0xa5, 0x1c,
+ 0x57, 0x72, 0x4c, 0x79, 0x4c, 0x59, 0x62, 0x2b, 0x82, 0xf8, 0xd9, 0x6e,
+ 0xc3, 0xe4, 0xdc, 0xcc, 0x57, 0x40, 0x2d, 0x41, 0x91, 0x6c, 0xdb, 0x5c,
+ 0xea, 0x33, 0x9e, 0xca, 0xb5, 0x66, 0xb3, 0xf9, 0x01, 0x2e, 0xe7, 0x8c,
+ 0x81, 0xc4, 0x5a, 0xe8, 0x01, 0x4c, 0x87, 0xcd, 0x75, 0xe4, 0xa0, 0xa8,
+ 0x45, 0x6f, 0xbd, 0xef, 0x44, 0xb5, 0x4e, 0x44, 0x1e, 0x04, 0x6d, 0x50,
+ 0x93, 0x98, 0xe3, 0x17, 0x6a, 0x18, 0x77, 0xb5, 0x0f, 0x77, 0x7a, 0x69,
+ 0x3e, 0x20, 0x04, 0x2c, 0xef, 0x3a, 0xdd, 0x64, 0x1d, 0xa3, 0x8b, 0xf9,
+ 0x07, 0x9c, 0x58, 0x89, 0xf3, 0x32, 0xae, 0xc3, 0xa3, 0xf9, 0x67, 0xdb,
+ 0xbb, 0x6d, 0x9c, 0xd5, 0xd5, 0xbd, 0x82, 0x56, 0xfb, 0x60, 0x1d, 0x73,
+ 0xad, 0x13, 0x81, 0xfc, 0xfa, 0x09, 0x1c, 0x0f, 0x28, 0x15, 0xca, 0xea,
+ 0xde, 0xe0, 0x12, 0x3f, 0x61, 0x2f, 0xe2, 0x20, 0xb2, 0x81, 0x5a, 0x66,
+ 0x60, 0x36, 0xcb, 0xae, 0x79, 0xbc, 0xcf, 0x4f, 0x8f, 0xbf, 0x3b, 0x3e,
+ 0x0d, 0x2e, 0xb7, 0x6f, 0x46, 0xa3, 0x9d, 0x0f, 0x59, 0x35, 0x46, 0x41,
+ 0x49, 0x1a, 0x1e, 0xf9, 0x2c, 0xe9, 0x49, 0x0b, 0xc4, 0xf2, 0x64, 0xbe,
+ 0x96, 0x00, 0x83, 0x04, 0x86, 0x69, 0x15, 0xc2, 0x3a, 0xe4, 0x93, 0xc2,
+ 0xc7, 0x8e, 0xdc, 0x20, 0x41, 0xfc, 0xe1, 0x06, 0x9b, 0x54, 0xd9, 0x94,
+ 0xeb, 0x2d, 0x86, 0x58, 0x3f, 0xf0, 0x6d, 0x24, 0xc9, 0x4b, 0x2c, 0x33,
+ 0x43, 0xbe, 0x11, 0x6d, 0xb2, 0x83, 0x08, 0xde, 0x58, 0x20, 0xa7, 0x3d,
+ 0x79, 0x29, 0xdf, 0xac, 0xe9, 0x6c, 0xd0, 0x2c, 0x31, 0xd9, 0x1a, 0x1b,
+ 0x13, 0x67, 0xdf, 0x0e, 0x0e, 0x47, 0x83, 0x97, 0xc7, 0xa7, 0xc7, 0xdf,
+ 0x1c, 0x5e, 0x1e, 0x33, 0xe5, 0xb8, 0xb2, 0x10, 0xaf, 0x50, 0x94, 0xf4,
+ 0x66, 0xfe, 0x56, 0x26, 0x86, 0x6f, 0x6d, 0xe2, 0xad, 0xa7, 0x52, 0xb3,
+ 0x28, 0x27, 0xe1, 0xb8, 0x50, 0x53, 0xb2, 0x5f, 0x9a, 0x56, 0xc5, 0xd7,
+ 0xee, 0x46, 0x37, 0xd7, 0x95, 0x74, 0x35, 0x18, 0x41, 0x3a, 0xbb, 0xa5,
+ 0xa2, 0x52, 0xef, 0x0a, 0xc2, 0xbc, 0xe7, 0x36, 0xb7, 0x93, 0x47, 0xef,
+ 0xbb, 0x6e, 0xdc, 0xcc, 0xb6, 0x16, 0x18, 0xe4, 0xdc, 0x71, 0x8d, 0x45,
+ 0x73, 0xb3, 0x11, 0xeb, 0x7d, 0x89, 0x07, 0x3b, 0x1c, 0xe0, 0x43, 0x97,
+ 0x9c, 0x5d, 0x38, 0x7e, 0xf0, 0x08, 0x8d, 0x08, 0x0e, 0x4c, 0x3d, 0xb9,
+ 0xc9, 0xe6, 0x96, 0x20, 0x8b, 0xc0, 0x04, 0x08, 0x5a, 0x73, 0x2e, 0xa4,
+ 0x10, 0xf9, 0x40, 0x0e, 0x8c, 0x33, 0x18, 0xbe, 0x08, 0xa0, 0x7d, 0x0c,
+ 0x64, 0x3f, 0x90, 0x39, 0x54, 0x19, 0x80, 0x62, 0x22, 0x84, 0xad, 0x41,
+ 0xc2, 0xef, 0x10, 0x28, 0x40, 0x09, 0xf0, 0xc7, 0x43, 0xfa, 0x52, 0xf9,
+ 0xac, 0xab, 0x18, 0x58, 0x8e, 0x71, 0x8f, 0x25, 0x98, 0x7c, 0x5c, 0xf8,
+ 0x11, 0x84, 0xa9, 0xaa, 0xc5, 0xd4, 0xc3, 0x5f, 0xe2, 0x8c, 0xea, 0x7a,
+ 0xa3, 0xb0, 0xab, 0x38, 0xc4, 0x5c, 0x89, 0x73, 0x39, 0x0a, 0xaf, 0x5e,
+ 0x23, 0x34, 0x96, 0x7c, 0x78, 0x41, 0xb5, 0xcb, 0xc7, 0x59, 0xe8, 0xcf,
+ 0x79, 0x21, 0xed, 0x0f, 0xa5, 0x68, 0xc0, 0xda, 0xc0, 0x8d, 0x27, 0x34,
+ 0x5a, 0x65, 0x05, 0x88, 0xc6, 0x5d, 0xff, 0x1a, 0x16, 0x7f, 0xb0, 0x59,
+ 0x71, 0x83, 0x6c, 0x11, 0xb0, 0x6a, 0x6f, 0xbd, 0x52, 0xa2, 0x7c, 0xab,
+ 0x03, 0xfa, 0x95, 0xa2, 0xbc, 0xb2, 0x2e, 0xc7, 0xe7, 0x17, 0x5c, 0x1b,
+ 0xfa, 0x94, 0xfe, 0x22, 0x41, 0xb2, 0x3a, 0xc6, 0x4b, 0x27, 0x85, 0x3a,
+ 0x08, 0x3d, 0x92, 0x21, 0xca, 0x62, 0x63, 0xdf, 0x0a, 0x1a, 0x64, 0x9c,
+ 0xa8, 0xb0, 0xa1, 0xcb, 0x81, 0x88, 0x25, 0x99, 0x7a, 0xf5, 0x24, 0xd1,
+ 0x15, 0xea, 0x83, 0x50, 0x07, 0xa1, 0x17, 0x0c, 0x76, 0xd5, 0x60, 0xc6,
+ 0x19, 0xfd, 0x92, 0x14, 0x43, 0xd9, 0x40, 0x2b, 0xa6, 0xd1, 0xe5, 0x3e,
+ 0x51, 0x93, 0xf4, 0x56, 0x52, 0xa1, 0x12, 0x65, 0x6a, 0xfa, 0x31, 0x74,
+ 0xe3, 0xe4, 0x4f, 0xb0, 0x6f, 0x19, 0x74, 0x98, 0x61, 0xe8, 0x02, 0xf9,
+ 0xe4, 0x56, 0xf7, 0x57, 0x0c, 0x39, 0x03, 0x64, 0x2d, 0x36, 0xbe, 0x2f,
+ 0x74, 0x41, 0xcc, 0x69, 0x00, 0x70, 0x7f, 0x59, 0xf8, 0x25, 0x90, 0x5a,
+ 0x76, 0x42, 0xad, 0x88, 0xb1, 0xec, 0x4e, 0xa2, 0xdc, 0xac, 0xb8, 0x5d,
+ 0x49, 0x24, 0x31, 0x05, 0xdd, 0x30, 0x4c, 0x90, 0x31, 0x6b, 0x1a, 0x40,
+ 0xdf, 0xdd, 0xa4, 0x45, 0xe4, 0xd4, 0x99, 0x89, 0xb7, 0x15, 0x9d, 0x30,
+ 0x50, 0x59, 0xb6, 0x88, 0xb2, 0x4d, 0x7b, 0xa3, 0x4b, 0x37, 0x65, 0x0c,
+ 0x32, 0x23, 0xc2, 0x72, 0x0a, 0x41, 0x48, 0x57, 0x78, 0x72, 0x88, 0xdc,
+ 0x48, 0xf7, 0x5b, 0x19, 0xdb, 0x55, 0x2c, 0x5f, 0xbc, 0xc0, 0x48, 0x6b,
+ 0x0b, 0xae, 0x02, 0xfb, 0x59, 0x17, 0x3a, 0x52, 0x61, 0x3c, 0xa6, 0x5b,
+ 0xaa, 0x8f, 0xda, 0xce, 0x95, 0x61, 0xbd, 0x93, 0xaf, 0xfc, 0xa2, 0x0b,
+ 0x18, 0xc9, 0x38, 0x3f, 0xc2, 0x7c, 0x1b, 0xdd, 0x25, 0x8f, 0x8d, 0x0d,
+ 0x9e, 0xd2, 0xde, 0x09, 0xbe, 0xff, 0x12, 0x9d, 0x83, 0xe6, 0x89, 0x37,
+ 0x70, 0xec, 0x89, 0x13, 0xe8, 0x5a, 0x8c, 0x29, 0xd9, 0xcb, 0xe3, 0xcc,
+ 0x7c, 0x31, 0xa7, 0x12, 0x5e, 0x2d, 0x97, 0x7d, 0xf7, 0xfb, 0xb5, 0xd9,
+ 0x7f, 0x93, 0x1b, 0x35, 0xa7, 0xe8, 0xc5, 0x39, 0x29, 0x07, 0x5e, 0xe9,
+ 0x3b, 0xc6, 0x0a, 0xb0, 0x3e, 0x72, 0x0e, 0x01, 0x41, 0x91, 0x47, 0xa0,
+ 0x10, 0xc3, 0x08, 0xbe, 0x99, 0xc0, 0x89, 0xe5, 0x40, 0xd2, 0x47, 0xd3,
+ 0xfa, 0x63, 0xfc, 0x84, 0xd7, 0x1f, 0xa3, 0x27, 0x5c, 0xff, 0xc0, 0x49,
+ 0xf7, 0x0a, 0x12, 0xae, 0x3a, 0xeb, 0xa3, 0xef, 0x56, 0xf0, 0x38, 0x78,
+ 0x27, 0x5c, 0x47, 0x87, 0xdd, 0xee, 0x9d, 0x71, 0x3e, 0xe4, 0xb2, 0x46,
+ 0xf6, 0x98, 0xcb, 0x39, 0x8f, 0xba, 0xf2, 0xfd, 0x3a, 0xa2, 0x7c, 0xce,
+ 0xcd, 0xf7, 0xe5, 0x70, 0x9f, 0x1f, 0x8e, 0xbe, 0xeb, 0x1c, 0x6b, 0xef,
+ 0x20, 0xc7, 0xd2, 0xc8, 0x51, 0xdd, 0xaf, 0x52, 0x3e, 0x5c, 0x6a, 0x2b,
+ 0xba, 0xdf, 0xeb, 0x8f, 0x0f, 0xd9, 0xef, 0xa6, 0x23, 0xc1, 0x7e, 0x0f,
+ 0xe6, 0x78, 0xdd, 0x7e, 0xf7, 0x17, 0xaa, 0x75, 0x03, 0x65, 0x89, 0xbf,
+ 0xe3, 0x0b, 0xae, 0x02, 0x7c, 0x83, 0xea, 0xf5, 0xc1, 0x56, 0xc7, 0x4e,
+ 0xa7, 0xa0, 0x1f, 0xb6, 0x76, 0x88, 0xfd, 0x43, 0x3f, 0x7f, 0xc9, 0x46,
+ 0xc7, 0x0b, 0xc1, 0x3e, 0xd7, 0x15, 0xfd, 0xc5, 0x1b, 0x5d, 0x0e, 0x48,
+ 0xb0, 0xcf, 0x61, 0xb9, 0x9e, 0xf7, 0xbd, 0x0d, 0xee, 0xed, 0x5a, 0x3f,
+ 0x63, 0x3b, 0x32, 0x43, 0x96, 0x03, 0xc4, 0x5d, 0xc0, 0x8e, 0x81, 0x21,
+ 0xc2, 0xf8, 0xd1, 0xb7, 0x69, 0xb1, 0xd5, 0x24, 0xf4, 0xbc, 0xdb, 0x24,
+ 0x6d, 0x3f, 0x49, 0x01, 0x16, 0x97, 0xc0, 0x9a, 0x8d, 0x0d, 0x44, 0xb7,
+ 0x36, 0xac, 0x78, 0x3f, 0xf5, 0xdf, 0x2f, 0xc3, 0xd7, 0xe6, 0x81, 0xd2,
+ 0x4e, 0xc4, 0x12, 0xc9, 0xeb, 0x8c, 0x20, 0x19, 0x20, 0x02, 0xeb, 0x9e,
+ 0x53, 0x52, 0xf4, 0xa0, 0x10, 0x90, 0xaa, 0x32, 0xc8, 0x8b, 0x41, 0x08,
+ 0x57, 0x6e, 0x47, 0x84, 0x1b, 0xb0, 0xc6, 0x7a, 0x96, 0x1f, 0xa5, 0x14,
+ 0x92, 0xb2, 0x2b, 0x31, 0x89, 0x34, 0x91, 0x4c, 0x46, 0xf2, 0xdf, 0xe3,
+ 0xea, 0x8d, 0xe4, 0xbe, 0x46, 0x99, 0xcf, 0xda, 0x35, 0x59, 0x9a, 0xb2,
+ 0xe5, 0x34, 0x7b, 0xda, 0x61, 0x17, 0x9e, 0x16, 0xf5, 0xc0, 0xd5, 0x97,
+ 0x7e, 0x6e, 0xff, 0x1a, 0x58, 0x18, 0x2f, 0xdf, 0x8e, 0x3a, 0x2a, 0x45,
+ 0x9d, 0x71, 0x12, 0xc7, 0x35, 0xe4, 0x86, 0xf9, 0xbd, 0xcd, 0xbd, 0xaa,
+ 0x5d, 0x3d, 0x37, 0x69, 0x32, 0xb0, 0x70, 0xe8, 0x13, 0xc3, 0x4e, 0xf2,
+ 0xaa, 0x64, 0x0c, 0xa3, 0x24, 0x3a, 0xfc, 0x98, 0xe4, 0x4b, 0xf2, 0x7a,
+ 0x27, 0xd9, 0xe7, 0xe4, 0x21, 0x8a, 0x71, 0x0f, 0xf1, 0x05, 0x41, 0xfd,
+ 0xd4, 0xd2, 0xb2, 0x42, 0x92, 0x2e, 0xcc, 0x60, 0xb6, 0x14, 0x55, 0x91,
+ 0x78, 0x25, 0xb5, 0x63, 0x11, 0xa7, 0x2d, 0xe1, 0x32, 0x12, 0x78, 0xd7,
+ 0x76, 0x74, 0x8a, 0xa5, 0xa6, 0xb8, 0x4c, 0xe1, 0xe2, 0xe3, 0xe3, 0x01,
+ 0x3d, 0x9e, 0xa8, 0xb9, 0xc8, 0x3f, 0x7c, 0x8a, 0x1f, 0x0e, 0xbb, 0x13,
+ 0x1d, 0xd8, 0xd0, 0x52, 0xff, 0xd1, 0x7a, 0x4f, 0x97, 0xc5, 0x94, 0x2a,
+ 0x63, 0x50, 0xb7, 0xb5, 0xba, 0x01, 0x31, 0x18, 0xba, 0xe2, 0x32, 0x96,
+ 0xa8, 0xc8, 0x6c, 0xa1, 0xee, 0xe4, 0x1a, 0xe5, 0xa6, 0x6e, 0x2d, 0xfa,
+ 0xa3, 0x47, 0x91, 0x45, 0xb7, 0x3d, 0x7e, 0x2e, 0xc3, 0x8c, 0x2f, 0x79,
+ 0xf7, 0x72, 0x21, 0xf7, 0x19, 0xa4, 0xc0, 0xf3, 0x7c, 0x31, 0xd0, 0x37,
+ 0xf9, 0x02, 0x99, 0xa7, 0x1f, 0xe4, 0x62, 0x7f, 0x4c, 0xcb, 0x10, 0x19,
+ 0x24, 0x97, 0x8b, 0xf5, 0x03, 0x56, 0xb4, 0x6d, 0xec, 0xae, 0x11, 0x5d,
+ 0xab, 0xb1, 0x5c, 0xaa, 0x20, 0x6a, 0xe5, 0x6f, 0xc4, 0x72, 0xb3, 0x14,
+ 0x4e, 0xed, 0xfb, 0x62, 0x34, 0x0f, 0x03, 0xbd, 0xb0, 0xef, 0xde, 0xbb,
+ 0x7e, 0x6e, 0x3f, 0xac, 0x5b, 0x3f, 0x9d, 0xb3, 0xff, 0x33, 0xd6, 0xef,
+ 0xe9, 0xef, 0xb6, 0x7e, 0x4f, 0xff, 0x8f, 0x58, 0xbf, 0xa7, 0xff, 0xfc,
+ 0xfa, 0x3d, 0xee, 0xae, 0xdf, 0xd3, 0xff, 0x53, 0xd6, 0x4f, 0x0b, 0xa1,
+ 0xe9, 0xea, 0x65, 0xc1, 0xfa, 0xc1, 0x89, 0xc3, 0x19, 0x1d, 0x79, 0x2d,
+ 0xa5, 0xbd, 0x69, 0xba, 0xf5, 0x4d, 0x0e, 0xa8, 0x08, 0x2e, 0x91, 0x3d,
+ 0xd6, 0x0a, 0x8f, 0x05, 0x1f, 0x44, 0x9c, 0x4f, 0x59, 0x6a, 0x63, 0x29,
+ 0x0b, 0xdf, 0xc9, 0x79, 0x62, 0x3b, 0xe0, 0x2d, 0x83, 0xe3, 0xbe, 0x82,
+ 0x7e, 0x16, 0x75, 0x25, 0xd7, 0xe4, 0x5f, 0x34, 0x13, 0xc0, 0x69, 0x90,
+ 0xb5, 0xcb, 0xdf, 0x8d, 0x91, 0x5b, 0x99, 0xc9, 0x3b, 0x78, 0x4e, 0xf3,
+ 0x35, 0xe0, 0xc7, 0xbf, 0x8c, 0x26, 0xa5, 0xa1, 0xde, 0xac, 0xeb, 0x52,
+ 0x2c, 0x7c, 0xe0, 0x4d, 0xdd, 0x83, 0x97, 0x6d, 0x55, 0x49, 0x2e, 0x5d,
+ 0xc2, 0xc9, 0xe0, 0xfe, 0x25, 0x2b, 0x6f, 0x40, 0xb9, 0xf3, 0xfc, 0xdd,
+ 0x45, 0xe8, 0x7d, 0x33, 0x43, 0xb5, 0xe9, 0x79, 0x0c, 0x6a, 0xe7, 0x34,
+ 0x08, 0xb3, 0x5a, 0x03, 0x32, 0xef, 0x07, 0x20, 0x70, 0xa7, 0x13, 0x79,
+ 0xf6, 0x7a, 0x3b, 0xf1, 0x7c, 0x41, 0x88, 0x30, 0x44, 0x12, 0x1f, 0x91,
+ 0x20, 0xab, 0x69, 0xe0, 0x75, 0xdf, 0x5f, 0x5f, 0x17, 0xb0, 0xb1, 0x2a,
+ 0x8a, 0x84, 0xfe, 0xe4, 0xbd, 0x2a, 0x28, 0x45, 0x49, 0xca, 0x60, 0x5e,
+ 0x0b, 0x91, 0x1b, 0x31, 0x5e, 0xe8, 0x4d, 0x88, 0x6e, 0xfd, 0x8e, 0xd5,
+ 0x64, 0x5e, 0x42, 0x17, 0x5c, 0xce, 0x17, 0x92, 0xe2, 0x7b, 0x4f, 0x8a,
+ 0x23, 0x4c, 0xec, 0xed, 0xe4, 0x7b, 0xe4, 0x2f, 0xb2, 0x9f, 0x5d, 0xf2,
+ 0x7e, 0xd4, 0xea, 0xb6, 0xa9, 0x0e, 0x1a, 0xc4, 0x5a, 0xc1, 0x45, 0x16,
+ 0xa5, 0x85, 0xea, 0x24, 0xf0, 0x73, 0x6e, 0x8a, 0xb2, 0x9a, 0x93, 0xfc,
+ 0xf3, 0x74, 0x62, 0x65, 0x5f, 0xc5, 0x3c, 0xcb, 0x47, 0xa3, 0xa4, 0xd8,
+ 0xa4, 0x4c, 0x70, 0xce, 0x13, 0x75, 0x9a, 0x49, 0xfd, 0xcc, 0xeb, 0xa6,
+ 0xa9, 0xa1, 0x24, 0x3e, 0xd5, 0x2e, 0x6b, 0x49, 0x7b, 0x0f, 0x9e, 0xa5,
+ 0x18, 0x58, 0x5f, 0xb5, 0x57, 0x78, 0x02, 0x84, 0x41, 0xc3, 0x52, 0x24,
+ 0x15, 0x1f, 0x35, 0x0d, 0x86, 0x80, 0x30, 0xad, 0x7a, 0x31, 0x83, 0x71,
+ 0x98, 0xcc, 0xa6, 0x40, 0x69, 0x1e, 0xf1, 0x1f, 0xb0, 0xf8, 0x2b, 0xd2,
+ 0x24, 0x58, 0xf3, 0xf2, 0x3d, 0x0f, 0xc1, 0x49, 0xf1, 0x93, 0x30, 0x86,
+ 0x1b, 0xeb, 0x00, 0xd2, 0x8c, 0xbc, 0xbd, 0xc9, 0xfc, 0x84, 0x62, 0xcb,
+ 0xc6, 0xc8, 0xe1, 0x01, 0x76, 0xbf, 0x98, 0xc1, 0x09, 0x4e, 0x34, 0xa8,
+ 0xbd, 0x03, 0xce, 0x00, 0x99, 0xad, 0x9e, 0x70, 0x1c, 0x2d, 0x85, 0x85,
+ 0x35, 0xa5, 0x0d, 0x01, 0x1e, 0x9e, 0x7f, 0x61, 0x02, 0xaf, 0x87, 0x9b,
+ 0xf6, 0xa5, 0x42, 0x76, 0xcd, 0x91, 0xf1, 0x75, 0x18, 0xdd, 0x0e, 0x1d,
+ 0x19, 0xb3, 0x08, 0x5b, 0x42, 0x32, 0x18, 0xe6, 0x45, 0x53, 0x95, 0x8b,
+ 0xbb, 0xe4, 0x9b, 0x94, 0x86, 0x05, 0x65, 0x3a, 0xcd, 0xe6, 0x41, 0xfa,
+ 0x16, 0xd7, 0x22, 0x16, 0xdd, 0x96, 0xeb, 0x12, 0xeb, 0x08, 0xa1, 0x8d,
+ 0xf3, 0xb4, 0x18, 0x39, 0x60, 0xe6, 0x8b, 0xc2, 0x38, 0x92, 0x58, 0xc1,
+ 0xc0, 0xe4, 0xd1, 0xe8, 0x34, 0x34, 0x9f, 0xb4, 0xc6, 0xcf, 0xda, 0x74,
+ 0x7d, 0xb4, 0x36, 0xe8, 0x86, 0x24, 0xa4, 0xf1, 0xe7, 0xd1, 0xc3, 0x2c,
+ 0xe3, 0xce, 0x66, 0xca, 0x68, 0xa1, 0x94, 0xea, 0x93, 0xea, 0x6e, 0x41,
+ 0x26, 0xb9, 0xe4, 0xa7, 0xf2, 0xd9, 0xa3, 0xfe, 0x31, 0x1f, 0xea, 0xda,
+ 0x8c, 0xe0, 0x77, 0xb5, 0x47, 0x2b, 0x8e, 0xeb, 0x8b, 0x7c, 0x31, 0xc4,
+ 0x0f, 0x4c, 0xd4, 0x4f, 0x72, 0x9d, 0x91, 0xa4, 0x9f, 0x82, 0xeb, 0xc4,
+ 0xd1, 0xf5, 0x06, 0x84, 0x7e, 0xa8, 0xe0, 0xd5, 0x29, 0x14, 0x01, 0xdf,
+ 0x0d, 0x12, 0x9e, 0xa9, 0x18, 0x01, 0x62, 0x18, 0xdb, 0x7a, 0x9d, 0xca,
+ 0x1b, 0x9d, 0xda, 0xf2, 0x7a, 0x71, 0xd9, 0x3a, 0x02, 0x29, 0x91, 0x1f,
+ 0x14, 0x01, 0xd1, 0x0a, 0x03, 0x20, 0xf6, 0x76, 0x77, 0xef, 0x65, 0xd0,
+ 0x11, 0x03, 0x71, 0x2d, 0x91, 0x0e, 0xc9, 0x28, 0x8e, 0x2a, 0xd8, 0x74,
+ 0xef, 0x34, 0x97, 0x94, 0x9e, 0x2e, 0xe7, 0x98, 0xf9, 0xa4, 0x25, 0xb4,
+ 0x71, 0x47, 0x90, 0x65, 0x1d, 0x13, 0x4d, 0x81, 0x4e, 0xc7, 0x88, 0xb0,
+ 0x63, 0xf4, 0xb1, 0x3e, 0x68, 0xbd, 0x13, 0x2d, 0xb8, 0x4c, 0x1d, 0xa2,
+ 0x97, 0x44, 0xe7, 0x1b, 0x26, 0x5f, 0xdf, 0x39, 0x53, 0xd9, 0xf3, 0x10,
+ 0xa1, 0x57, 0x38, 0x61, 0xd2, 0xff, 0xe1, 0x3a, 0xda, 0xa2, 0x38, 0x4b,
+ 0xce, 0x1f, 0x58, 0xb0, 0xa0, 0x59, 0x23, 0x80, 0x16, 0x35, 0x5a, 0x05,
+ 0xd9, 0x46, 0xdc, 0x47, 0x64, 0x47, 0x9b, 0xd6, 0x41, 0xbd, 0x21, 0xaf,
+ 0x74, 0x10, 0x5f, 0x2a, 0x6b, 0xa9, 0x8d, 0xdb, 0x9c, 0x47, 0x6d, 0x8c,
+ 0xe6, 0x67, 0x6d, 0xcd, 0x80, 0xb2, 0x8e, 0x07, 0xc8, 0x2d, 0xee, 0x12,
+ 0x2a, 0x50, 0x3a, 0x32, 0xc9, 0x2e, 0x58, 0xf6, 0x65, 0xe1, 0xb9, 0x3c,
+ 0x88, 0x6b, 0x8b, 0x41, 0x31, 0x9a, 0x8d, 0xd4, 0xa1, 0x72, 0xf5, 0x05,
+ 0xab, 0x92, 0xd0, 0xeb, 0x49, 0x9f, 0x96, 0x1e, 0xb3, 0x93, 0x4d, 0x40,
+ 0xeb, 0xf8, 0x4e, 0xd8, 0x79, 0x12, 0xe1, 0x79, 0xe3, 0xe5, 0xf1, 0x7d,
+ 0xf0, 0x92, 0x47, 0x0d, 0xf0, 0x00, 0x14, 0x30, 0xd6, 0xd8, 0x8c, 0xa2,
+ 0xd0, 0x4f, 0xa4, 0x56, 0x37, 0x41, 0xaa, 0xcd, 0x4a, 0xc7, 0x35, 0x4a,
+ 0xe7, 0x7a, 0x67, 0x96, 0x49, 0x1e, 0x4b, 0xed, 0xe8, 0xd2, 0x48, 0x6c,
+ 0xc3, 0xdd, 0x6d, 0x9a, 0xac, 0x15, 0x2f, 0x15, 0x3a, 0x21, 0xbd, 0xe4,
+ 0x65, 0xf3, 0x20, 0xf1, 0xb7, 0xd4, 0x4b, 0xb8, 0x8c, 0xb5, 0xd3, 0x96,
+ 0xa1, 0x4c, 0x9e, 0x95, 0xc4, 0x6e, 0x72, 0x4f, 0x45, 0xb2, 0xc3, 0x25,
+ 0x30, 0x4d, 0xe4, 0x86, 0x09, 0x96, 0x07, 0xf9, 0xe1, 0xcb, 0xca, 0x0b,
+ 0x4f, 0xf7, 0x6e, 0x72, 0xb3, 0xae, 0x45, 0x0f, 0xf7, 0x69, 0xbd, 0x1c,
+ 0x33, 0x29, 0x67, 0x83, 0x0f, 0xc7, 0x00, 0xf8, 0x84, 0xb6, 0x74, 0x2e,
+ 0xd1, 0x78, 0x21, 0xee, 0x56, 0x14, 0xaa, 0x9f, 0xb4, 0x0e, 0x85, 0xaa,
+ 0x71, 0xdc, 0x35, 0x97, 0x9b, 0x1e, 0xad, 0x68, 0xc3, 0x3b, 0xc5, 0xa5,
+ 0xab, 0xd1, 0xe9, 0x47, 0xa1, 0xaa, 0xbe, 0x5f, 0x25, 0xc6, 0xe1, 0x5e,
+ 0xd2, 0x39, 0x79, 0x4e, 0xd8, 0x4c, 0xa0, 0x89, 0x8e, 0xab, 0x2b, 0x95,
+ 0x65, 0x34, 0x89, 0xb0, 0xeb, 0x0a, 0xf2, 0x2d, 0xbd, 0x43, 0x5e, 0x8e,
+ 0xfd, 0x34, 0x76, 0x78, 0x40, 0x91, 0x46, 0x74, 0x81, 0x25, 0x34, 0x6e,
+ 0xd9, 0xcb, 0xc4, 0x3e, 0x39, 0xa9, 0xf2, 0x45, 0xc3, 0x60, 0x00, 0x81,
+ 0x1f, 0xdf, 0xa7, 0x86, 0x5d, 0xcf, 0xca, 0x71, 0xca, 0xe7, 0xc4, 0x42,
+ 0x7f, 0xd4, 0xd1, 0xd8, 0xa2, 0xee, 0x05, 0xd3, 0xbc, 0xd9, 0x9e, 0x91,
+ 0x54, 0x38, 0x33, 0xe4, 0xc1, 0x01, 0xea, 0xa7, 0x53, 0x08, 0x72, 0xdd,
+ 0x07, 0xed, 0x27, 0x98, 0x20, 0x6f, 0x70, 0xd5, 0x97, 0x13, 0xac, 0x55,
+ 0x31, 0x81, 0x9c, 0xaa, 0xbd, 0x73, 0x15, 0xa8, 0x42, 0x60, 0x19, 0x98,
+ 0x2e, 0xb3, 0x36, 0x90, 0x6a, 0x53, 0x02, 0xb4, 0x52, 0xe1, 0x0d, 0x60,
+ 0x1e, 0x50, 0xf6, 0x83, 0xee, 0x97, 0x03, 0xa1, 0x51, 0x90, 0x10, 0x51,
+ 0xe5, 0x0a, 0xa8, 0xa7, 0x6f, 0x54, 0xfe, 0x5b, 0xe4, 0x30, 0x14, 0x74,
+ 0x33, 0xb9, 0xce, 0x29, 0x3e, 0xd5, 0x9b, 0x2b, 0xe6, 0x1d, 0xa8, 0xb2,
+ 0x41, 0x18, 0x57, 0xb0, 0xb5, 0x55, 0x78, 0x4d, 0xd6, 0xcc, 0x8c, 0x4f,
+ 0xba, 0xbd, 0xdf, 0x92, 0x6a, 0xf6, 0xd3, 0xf1, 0x2b, 0x0a, 0xa2, 0xad,
+ 0x26, 0x5d, 0x9e, 0xdc, 0xea, 0x5b, 0x66, 0xb3, 0x48, 0x7e, 0x58, 0x8a,
+ 0x88, 0x3f, 0xd8, 0x23, 0x95, 0xe8, 0x9a, 0xa5, 0x41, 0x3c, 0x04, 0x4a,
+ 0x27, 0x85, 0x20, 0x60, 0xb3, 0x3b, 0xa4, 0x6d, 0xf0, 0x9a, 0x43, 0x0b,
+ 0x15, 0x57, 0xbd, 0x6e, 0xa8, 0xac, 0x99, 0x78, 0xbf, 0x9c, 0x66, 0xe9,
+ 0x2c, 0x56, 0x3c, 0x82, 0x3a, 0x4c, 0xae, 0x53, 0x16, 0x6e, 0xc4, 0x22,
+ 0x52, 0x48, 0xa8, 0x42, 0x50, 0xc8, 0x0c, 0xc2, 0x2b, 0x24, 0x6f, 0x5a,
+ 0x7b, 0x88, 0x53, 0x15, 0x31, 0x0f, 0xa9, 0x9c, 0x0d, 0x1e, 0x40, 0x86,
+ 0xed, 0x44, 0x32, 0xf7, 0x21, 0x45, 0x5d, 0x92, 0x0a, 0xf4, 0xff, 0x37,
+ 0xa7, 0xf6, 0x01, 0xec, 0x00, 0x04, 0xce, 0xbb, 0xcd, 0x89, 0xfb, 0x92,
+ 0x33, 0x27, 0x71, 0xd1, 0x68, 0x62, 0x03, 0x75, 0x8c, 0xc1, 0x27, 0x24,
+ 0x26, 0xb7, 0xe5, 0x1c, 0x32, 0xc4, 0x81, 0x25, 0xc7, 0x22, 0x5c, 0xe9,
+ 0x8f, 0x99, 0x02, 0x87, 0x60, 0x5f, 0xf0, 0x02, 0x34, 0x36, 0xa1, 0x94,
+ 0x5a, 0x13, 0x39, 0xc3, 0x42, 0x66, 0x7f, 0x7f, 0x05, 0xb9, 0x88, 0x54,
+ 0x10, 0x97, 0x3d, 0x86, 0xc3, 0x5e, 0xa7, 0x57, 0x99, 0x52, 0x8b, 0x8a,
+ 0x00, 0x2f, 0x27, 0x66, 0x0a, 0x11, 0x1b, 0x05, 0x67, 0x0f, 0x69, 0x48,
+ 0x41, 0xe8, 0x94, 0xc5, 0x35, 0x49, 0x49, 0x7b, 0xed, 0xd2, 0x41, 0x50,
+ 0x30, 0x6d, 0x3d, 0xcb, 0x17, 0xd6, 0x33, 0xdc, 0x27, 0x2e, 0x64, 0x06,
+ 0xf5, 0x50, 0x1c, 0xe9, 0x36, 0xe4, 0xfd, 0xec, 0x14, 0x3a, 0x17, 0x8a,
+ 0xd8, 0x19, 0xa9, 0xff, 0x5b, 0x9d, 0xf6, 0x1f, 0xef, 0xee, 0xa1, 0xbb,
+ 0x8f, 0x77, 0x3f, 0xdb, 0x6e, 0xdf, 0xcd, 0xb3, 0x3a, 0x1b, 0x00, 0xd5,
+ 0x15, 0xd7, 0x51, 0x2f, 0x3b, 0x5e, 0x78, 0xe8, 0xa3, 0xf4, 0x92, 0x40,
+ 0xc1, 0xa6, 0xcb, 0x4a, 0xcd, 0x6d, 0xaa, 0xea, 0x47, 0x36, 0x63, 0x7d,
+ 0x43, 0xcc, 0x84, 0xc1, 0x5d, 0xef, 0xde, 0x61, 0x30, 0x09, 0xdd, 0x4a,
+ 0x3c, 0x53, 0x66, 0xf7, 0xd0, 0xbb, 0xb6, 0x0c, 0x9c, 0x4c, 0x06, 0x43,
+ 0xcd, 0xc8, 0x62, 0x0c, 0x59, 0xa2, 0x7d, 0x3a, 0x36, 0x4e, 0x49, 0xe1,
+ 0xb0, 0x59, 0xbb, 0x14, 0xaf, 0x95, 0x3c, 0xaf, 0x72, 0x63, 0xdf, 0xdf,
+ 0xa0, 0x84, 0x6f, 0x5d, 0xa7, 0xd7, 0x59, 0x98, 0x08, 0x6e, 0x44, 0x92,
+ 0x31, 0x9c, 0xb8, 0xae, 0x5c, 0x05, 0x96, 0x76, 0x42, 0x66, 0xf1, 0x79,
+ 0x90, 0xa4, 0x0e, 0x29, 0x3a, 0xb7, 0x44, 0x60, 0xca, 0x0e, 0x33, 0xb6,
+ 0x63, 0xf2, 0xda, 0xab, 0x88, 0xb8, 0xaa, 0x20, 0x22, 0x95, 0xe7, 0x02,
+ 0x87, 0x14, 0x17, 0xcb, 0xe1, 0x6a, 0x39, 0x01, 0x7e, 0x93, 0xbc, 0x2f,
+ 0x5b, 0xb4, 0xb8, 0x67, 0x23, 0x23, 0x84, 0x5c, 0xf5, 0x5e, 0x60, 0xe4,
+ 0xcc, 0xcf, 0x7e, 0x30, 0x1a, 0xe9, 0xf0, 0x99, 0xfd, 0xf1, 0xf6, 0xc3,
+ 0x2a, 0x28, 0xee, 0x77, 0x34, 0x34, 0x02, 0xab, 0x4a, 0x10, 0x00, 0x06,
+ 0xcb, 0x0b, 0xfe, 0xc7, 0x0a, 0x27, 0x04, 0xf2, 0x32, 0x93, 0x93, 0x37,
+ 0x87, 0xe0, 0x5c, 0x72, 0x2c, 0xc8, 0x3e, 0xa8, 0xcb, 0xcf, 0x63, 0x43,
+ 0x39, 0x49, 0x52, 0x58, 0xa3, 0x24, 0x78, 0x96, 0xb7, 0x96, 0x21, 0x76,
+ 0x2d, 0x5a, 0x72, 0x0e, 0x86, 0xcd, 0xa8, 0x62, 0x16, 0x9d, 0x02, 0x23,
+ 0x23, 0x4f, 0x33, 0x2e, 0x1c, 0x93, 0x6c, 0x7e, 0xb5, 0x19, 0xc9, 0x78,
+ 0xdb, 0x7c, 0xee, 0x51, 0x70, 0xd7, 0xae, 0x32, 0xd5, 0xe6, 0x17, 0x84,
+ 0xda, 0x25, 0xda, 0x11, 0xfe, 0xa6, 0xac, 0x01, 0x03, 0x50, 0x25, 0xcc,
+ 0xb8, 0x22, 0x89, 0x49, 0x38, 0xf4, 0xda, 0xc0, 0x1d, 0x2e, 0x0a, 0x4d,
+ 0xfc, 0xe4, 0x9d, 0x71, 0xab, 0x4e, 0xb7, 0x19, 0x64, 0xc4, 0x11, 0xb0,
+ 0x9d, 0xe9, 0x6c, 0xa4, 0x76, 0xb2, 0xab, 0xeb, 0xc9, 0x7d, 0xe2, 0xce,
+ 0xc0, 0x49, 0x38, 0x99, 0xe4, 0xa4, 0xbb, 0xe0, 0xe4, 0x9b, 0x5f, 0x5e,
+ 0x5f, 0x47, 0xd1, 0x45, 0x66, 0x0a, 0x68, 0xe1, 0x69, 0xcc, 0x57, 0x59,
+ 0xda, 0x40, 0xe3, 0xa0, 0x9b, 0x7e, 0x35, 0xba, 0xd8, 0x69, 0xf0, 0x91,
+ 0x67, 0xbc, 0x51, 0x3c, 0xf7, 0x73, 0x38, 0xe2, 0xbb, 0x00, 0x9b, 0x80,
+ 0xf7, 0x00, 0xb1, 0x5e, 0xe2, 0x67, 0xd6, 0x0b, 0x75, 0x95, 0x9a, 0x4d,
+ 0x71, 0x27, 0x11, 0xdd, 0x19, 0xb0, 0xf6, 0x2c, 0x41, 0xb2, 0xf9, 0xb2,
+ 0xbb, 0xc5, 0x67, 0x8a, 0x5d, 0x65, 0x88, 0x37, 0x15, 0xd7, 0x60, 0x34,
+ 0x70, 0xc2, 0x64, 0xf4, 0xc4, 0xe3, 0x67, 0x51, 0xe1, 0x89, 0x56, 0x97,
+ 0x70, 0x60, 0xef, 0xae, 0x6f, 0xc4, 0x87, 0x7e, 0x8b, 0xb2, 0xa2, 0x96,
+ 0x20, 0xd0, 0xeb, 0x92, 0xa0, 0xe0, 0x7b, 0x87, 0xfc, 0x84, 0xbf, 0xae,
+ 0x73, 0x10, 0x86, 0x84, 0x91, 0x44, 0x3b, 0x38, 0x24, 0x0c, 0xb9, 0x9f,
+ 0x10, 0xd9, 0x0b, 0x84, 0x4c, 0x99, 0x50, 0xd5, 0xb2, 0xfd, 0x47, 0x9f,
+ 0x7f, 0x3e, 0x8c, 0x72, 0x81, 0x72, 0x0a, 0xb3, 0xd9, 0x84, 0x34, 0x53,
+ 0x8e, 0x37, 0xb2, 0x6f, 0x19, 0x80, 0xe9, 0xfb, 0xb4, 0xc3, 0x98, 0x81,
+ 0x7f, 0x4e, 0x24, 0x3f, 0x24, 0x1c, 0x97, 0xb3, 0xd0, 0xc8, 0x47, 0xc4,
+ 0x6f, 0x4e, 0x8a, 0x85, 0x48, 0x31, 0x28, 0x58, 0x24, 0x35, 0xe6, 0xf9,
+ 0x0a, 0xa5, 0x2e, 0x13, 0x68, 0x1c, 0xa3, 0x28, 0x85, 0x3b, 0x4f, 0xa0,
+ 0x9c, 0x8c, 0x8b, 0x35, 0x7a, 0x03, 0x40, 0xe0, 0x0c, 0xb7, 0xe0, 0xe9,
+ 0xd8, 0x5c, 0x91, 0x32, 0xb9, 0x99, 0x68, 0xd0, 0x71, 0x9c, 0x59, 0x0e,
+ 0x02, 0x2e, 0x45, 0xd5, 0xe1, 0x89, 0xe1, 0xb4, 0xea, 0x82, 0xf2, 0xa6,
+ 0xa8, 0xea, 0x83, 0xf9, 0x40, 0xa7, 0x39, 0x64, 0x11, 0x5f, 0x67, 0x4d,
+ 0x98, 0xeb, 0xe3, 0x81, 0x6e, 0xd7, 0x34, 0x1e, 0xb3, 0x8c, 0x24, 0x55,
+ 0x29, 0x79, 0x2e, 0x1e, 0xfc, 0x64, 0x9a, 0x5f, 0xe9, 0x21, 0xb5, 0x95,
+ 0x12, 0xbe, 0xc2, 0x6a, 0x3c, 0x97, 0xa9, 0x97, 0xd4, 0xbd, 0xaf, 0xa2,
+ 0x24, 0x60, 0x82, 0xfc, 0x05, 0x23, 0x55, 0xd3, 0x18, 0xc5, 0xda, 0xc9,
+ 0x6e, 0xc0, 0xac, 0x41, 0x3e, 0x24, 0x40, 0x60, 0x9e, 0x60, 0x86, 0x4b,
+ 0xce, 0x62, 0xec, 0x9c, 0xcf, 0x6d, 0xa3, 0x52, 0xf6, 0x83, 0x90, 0xee,
+ 0xd4, 0x95, 0xd8, 0x4c, 0x28, 0x97, 0x37, 0xc9, 0x07, 0xf3, 0x74, 0x60,
+ 0xf7, 0xd0, 0xbb, 0xde, 0x3c, 0x85, 0x6b, 0xef, 0x47, 0xa1, 0x85, 0x75,
+ 0x82, 0xa7, 0xd8, 0x21, 0xa4, 0x7d, 0x97, 0xb9, 0x8c, 0xd4, 0x3a, 0x4d,
+ 0xbb, 0xae, 0x52, 0x1a, 0xaa, 0xcb, 0x76, 0xc6, 0xce, 0xba, 0x2e, 0x33,
+ 0xee, 0x25, 0xa8, 0x27, 0x74, 0x56, 0xc9, 0x63, 0xd9, 0x54, 0xcb, 0x09,
+ 0xa9, 0x96, 0x30, 0xcd, 0xf1, 0xa9, 0x58, 0x79, 0x2a, 0x29, 0x86, 0xe7,
+ 0x46, 0x8c, 0x22, 0x72, 0x58, 0x2f, 0xcc, 0xb2, 0x32, 0xe6, 0x09, 0x52,
+ 0x86, 0xba, 0xa6, 0x3a, 0xc8, 0x2a, 0x5a, 0x6e, 0x70, 0xef, 0x11, 0x3e,
+ 0xed, 0x1f, 0x12, 0xe4, 0x52, 0x3a, 0xe5, 0x54, 0x69, 0xc4, 0xe0, 0xed,
+ 0xc8, 0x88, 0xdb, 0x3e, 0x79, 0x49, 0xd5, 0x37, 0x63, 0xa8, 0x01, 0xda,
+ 0x84, 0x9b, 0x75, 0x0b, 0x00, 0xce, 0x17, 0x13, 0xe9, 0x73, 0x55, 0x76,
+ 0xbd, 0xa4, 0xcb, 0x0e, 0xd3, 0xb5, 0xa5, 0x1c, 0xa3, 0xfa, 0x44, 0xb2,
+ 0xc8, 0x03, 0xf9, 0x41, 0x42, 0x40, 0x0c, 0x3d, 0xae, 0xab, 0xb9, 0x2c,
+ 0xcc, 0xac, 0x35, 0x4b, 0x0a, 0x02, 0xce, 0x18, 0x1b, 0x67, 0xc4, 0xd8,
+ 0xdf, 0xe0, 0x07, 0x2c, 0x65, 0x06, 0xb8, 0x46, 0xc5, 0x34, 0x96, 0xb7,
+ 0x42, 0xc4, 0xa7, 0x08, 0xe3, 0x1b, 0xbd, 0x1b, 0xbc, 0x5f, 0x84, 0xe4,
+ 0x68, 0x54, 0x0a, 0x70, 0xd5, 0x35, 0xf2, 0xc9, 0x7c, 0x41, 0x51, 0xc2,
+ 0x09, 0x07, 0x09, 0xa0, 0xb1, 0x60, 0x56, 0x42, 0x14, 0x67, 0x01, 0xd2,
+ 0xc0, 0x44, 0xd5, 0x27, 0x9f, 0x4b, 0x92, 0x15, 0x30, 0x8a, 0x66, 0xd2,
+ 0x30, 0x39, 0x05, 0x48, 0xf8, 0x71, 0xd2, 0x9a, 0x53, 0x0c, 0xea, 0xb0,
+ 0x1a, 0x37, 0xee, 0x01, 0x56, 0xad, 0xff, 0x66, 0xad, 0x5e, 0x12, 0x7e,
+ 0x11, 0xa6, 0x21, 0x70, 0xab, 0x1e, 0x30, 0x4c, 0x02, 0xf5, 0xdd, 0x44,
+ 0xa6, 0xa9, 0xfd, 0xa1, 0x29, 0x44, 0xac, 0x25, 0x6e, 0x1a, 0xe9, 0x49,
+ 0xf3, 0xbe, 0x29, 0x67, 0x37, 0x46, 0x6f, 0xe3, 0x8c, 0x7d, 0x48, 0x6b,
+ 0x3e, 0x29, 0x96, 0x0d, 0xd2, 0x8a, 0x11, 0xd2, 0xaa, 0xaa, 0xd4, 0x08,
+ 0xcd, 0xbf, 0x2d, 0xae, 0x57, 0x10, 0x0f, 0x72, 0x09, 0x19, 0x63, 0x30,
+ 0x84, 0x85, 0xab, 0xb0, 0x0f, 0x07, 0xaf, 0x12, 0xe9, 0xcf, 0x8b, 0xaf,
+ 0x5a, 0xcd, 0x69, 0x7d, 0x07, 0x9f, 0xbe, 0x5c, 0xa8, 0x30, 0x26, 0xd7,
+ 0xf9, 0x3d, 0x93, 0xc0, 0xdc, 0xff, 0x16, 0xcc, 0x5b, 0xdf, 0x94, 0x99,
+ 0xac, 0x5c, 0x01, 0x3b, 0xd8, 0x96, 0x24, 0x32, 0xe3, 0xaa, 0xa3, 0x85,
+ 0x27, 0x54, 0xe9, 0x5d, 0xdd, 0x6d, 0x5c, 0xed, 0xff, 0x51, 0xde, 0x14,
+ 0xf4, 0x0f, 0xfa, 0x02, 0x7d, 0xe0, 0xc5, 0xde, 0x5e, 0xb4, 0xe7, 0x2b,
+ 0xfb, 0xcb, 0x1d, 0xd6, 0x1e, 0xd3, 0x7d, 0x24, 0xf0, 0x4c, 0x4f, 0xbc,
+ 0xb5, 0xec, 0xff, 0x21, 0x32, 0xcb, 0x42, 0x7f, 0x1b, 0xce, 0x0f, 0xa8,
+ 0xbb, 0xbc, 0x57, 0x19, 0xf9, 0x16, 0x48, 0x45, 0xf6, 0xd4, 0x93, 0x79,
+ 0x29, 0x79, 0x18, 0x5d, 0x55, 0x02, 0x1c, 0x31, 0xb4, 0x28, 0xab, 0x87,
+ 0xdf, 0xa3, 0x48, 0xcd, 0xdd, 0x8b, 0xe7, 0x37, 0xcb, 0xeb, 0x0c, 0xc2,
+ 0xb3, 0xf9, 0xd4, 0xf4, 0x1e, 0x34, 0x76, 0x57, 0x5f, 0x90, 0x03, 0xeb,
+ 0x8d, 0x87, 0x1b, 0x60, 0x02, 0x24, 0x5f, 0x8f, 0x60, 0xcf, 0x21, 0x99,
+ 0x4b, 0x5a, 0xa3, 0xbe, 0x9b, 0x7d, 0xc3, 0x1a, 0x69, 0x9f, 0xa7, 0x4d,
+ 0x08, 0x22, 0x5c, 0x4a, 0xfa, 0x9a, 0x11, 0xdc, 0x66, 0xe3, 0x17, 0x5f,
+ 0x91, 0x8b, 0xeb, 0x13, 0x88, 0xf6, 0x59, 0xb5, 0xa5, 0xc9, 0xdb, 0x01,
+ 0xef, 0x7e, 0xe2, 0x0d, 0x62, 0x23, 0x10, 0x47, 0xab, 0x9b, 0xf5, 0xb2,
+ 0x81, 0xbc, 0x26, 0xaf, 0xca, 0x72, 0x6d, 0x8b, 0xea, 0xc2, 0xc1, 0x9c,
+ 0x78, 0x50, 0x42, 0x06, 0xd8, 0xb9, 0x4c, 0x47, 0xde, 0x12, 0xb8, 0x6c,
+ 0x5a, 0x77, 0x66, 0x2c, 0xf9, 0x9c, 0x1c, 0x65, 0x52, 0xe5, 0x5b, 0xaf,
+ 0x9d, 0x17, 0x7d, 0x4e, 0xb6, 0x89, 0x96, 0x56, 0x71, 0x63, 0xe0, 0x03,
+ 0x89, 0x7d, 0x40, 0x7f, 0xfd, 0xc2, 0xbe, 0x4e, 0xff, 0x31, 0xe7, 0x19,
+ 0xd4, 0xd5, 0x6b, 0x46, 0x43, 0x08, 0x3c, 0x7d, 0x67, 0x07, 0x91, 0x28,
+ 0x5b, 0x86, 0x77, 0xb3, 0xcf, 0xda, 0xf6, 0x17, 0x9b, 0xf0, 0xe7, 0x6a,
+ 0x88, 0x18, 0x55, 0x8d, 0x20, 0xe5, 0xa6, 0x65, 0xa0, 0xdb, 0x12, 0x16,
+ 0x92, 0xcb, 0x1e, 0xa1, 0xf7, 0x2b, 0x3a, 0x4e, 0x3d, 0xd7, 0xae, 0xff,
+ 0xd4, 0xb3, 0x9d, 0xff, 0xa9, 0xe7, 0xba, 0xff, 0x53, 0xcf, 0x0d, 0xe0,
+ 0xa7, 0x1e, 0xb1, 0x36, 0xd2, 0x20, 0x02, 0x6b, 0xf1, 0x17, 0x2f, 0xfa,
+ 0x26, 0x7f, 0xd5, 0x7d, 0xd4, 0xfb, 0xa6, 0xf7, 0xc9, 0xde, 0xe6, 0xba,
+ 0x49, 0xf3, 0xc3, 0x44, 0x44, 0x72, 0x94, 0x76, 0xe7, 0xd0, 0x08, 0xec,
+ 0xd6, 0x34, 0xb9, 0x69, 0x21, 0x0b, 0x2d, 0xf0, 0x9a, 0x7b, 0x0f, 0xd0,
+ 0x8c, 0xbb, 0x12, 0x4e, 0x5e, 0x75, 0x02, 0x4b, 0xfa, 0xa8, 0xeb, 0xa0,
+ 0x15, 0x91, 0x83, 0xc2, 0xa4, 0xf6, 0xf5, 0xe0, 0x06, 0xfa, 0x1f, 0xe6,
+ 0x0b, 0x30, 0x02, 0xd0, 0x86, 0x9c, 0x6a, 0x30, 0xbd, 0x08, 0x2e, 0x0e,
+ 0x90, 0xe5, 0x82, 0x03, 0x98, 0x7c, 0x01, 0x5e, 0x71, 0xa6, 0x0f, 0x6f,
+ 0x89, 0x00, 0xc9, 0x3e, 0xcf, 0x51, 0xbb, 0xcb, 0x8c, 0x6a, 0xc6, 0x66,
+ 0xea, 0x0e, 0xdd, 0x0b, 0x40, 0x9e, 0xa2, 0xa0, 0x56, 0x0d, 0x3b, 0x5d,
+ 0x2c, 0x58, 0x29, 0x8b, 0xc5, 0xf3, 0xb0, 0x7a, 0x4b, 0x93, 0x36, 0x3e,
+ 0x2b, 0xab, 0xfa, 0x45, 0xaf, 0xa2, 0x62, 0xa8, 0xc9, 0x75, 0x65, 0xd4,
+ 0xd8, 0x2f, 0x68, 0x6b, 0x2d, 0xcd, 0x62, 0xb9, 0x73, 0xfa, 0x69, 0x30,
+ 0xbf, 0x33, 0xfd, 0xde, 0xfc, 0x45, 0x3b, 0xc3, 0x13, 0x69, 0x53, 0xc4,
+ 0xd1, 0x8d, 0x70, 0x9c, 0x27, 0x5d, 0x10, 0x01, 0x1f, 0x5d, 0xef, 0x50,
+ 0xca, 0xef, 0x5f, 0xc4, 0x38, 0xe1, 0x82, 0x81, 0x78, 0x92, 0x17, 0xf6,
+ 0xda, 0x8b, 0xb3, 0x6f, 0xbf, 0xd0, 0x06, 0x7e, 0xea, 0xfd, 0x30, 0xe0,
+ 0x9f, 0x22, 0xab, 0xf6, 0x20, 0x39, 0xfb, 0x96, 0x76, 0xf7, 0x2f, 0x13,
+ 0x60, 0xeb, 0x3e, 0xf0, 0x15, 0xff, 0x05, 0x3b, 0x7b, 0x5d, 0xb3, 0x97,
+ 0x0e, 0x7c, 0xf0, 0x82, 0xca, 0xfa, 0x22, 0xc9, 0x07, 0xa6, 0xf8, 0x62,
+ 0x41, 0xa9, 0x3b, 0x9a, 0x45, 0xda, 0x70, 0x16, 0x29, 0x6b, 0x97, 0xe3,
+ 0x92, 0x81, 0xf8, 0x4d, 0xc8, 0x20, 0x0d, 0x06, 0x5b, 0xac, 0x2d, 0x67,
+ 0xb5, 0x9b, 0x0d, 0x45, 0xde, 0x0b, 0xe8, 0xc4, 0x3a, 0xbb, 0xe4, 0x34,
+ 0x84, 0x02, 0xd7, 0x32, 0x79, 0x8e, 0x23, 0xd5, 0x02, 0x1c, 0x0b, 0x10,
+ 0xff, 0x0d, 0x9a, 0x99, 0xad, 0x58, 0x4d, 0x65, 0xc7, 0xd2, 0x2a, 0xd3,
+ 0x52, 0x32, 0x52, 0xe4, 0x8e, 0xeb, 0x99, 0x7d, 0x11, 0x8b, 0x08, 0x48,
+ 0xa0, 0x52, 0x60, 0xe0, 0x57, 0xe5, 0x4c, 0x6a, 0x9b, 0xd7, 0x66, 0xd7,
+ 0xf3, 0x02, 0xdb, 0xba, 0x72, 0x46, 0xe7, 0xa0, 0xa9, 0x90, 0x80, 0x85,
+ 0x7c, 0x36, 0xa2, 0x74, 0x48, 0x60, 0x91, 0x1d, 0x72, 0xa0, 0x90, 0x13,
+ 0x66, 0x2d, 0xde, 0xf8, 0x5f, 0x90, 0xe5, 0x3f, 0xce, 0xe0, 0x81, 0xb2,
+ 0x79, 0x92, 0x03, 0xf1, 0x11, 0x47, 0xdc, 0x38, 0x89, 0x3d, 0x37, 0x7a,
+ 0x70, 0x18, 0x11, 0xa1, 0xe9, 0x92, 0x44, 0xb9, 0xf4, 0x9a, 0x94, 0x42,
+ 0x01, 0x91, 0x6b, 0x09, 0x18, 0xba, 0x5e, 0xe2, 0x83, 0xc5, 0x19, 0x56,
+ 0x45, 0x22, 0x3c, 0x6d, 0xc9, 0x1f, 0xc5, 0xa5, 0xac, 0x8f, 0xa5, 0xa2,
+ 0x71, 0xc9, 0x62, 0x0d, 0x83, 0x17, 0x7e, 0x10, 0xc8, 0xce, 0x60, 0xef,
+ 0xc0, 0x2b, 0xe7, 0xc3, 0x3f, 0x8b, 0x37, 0xef, 0xb3, 0xa5, 0x68, 0xac,
+ 0xb8, 0x96, 0xe9, 0x5f, 0xd3, 0xfe, 0xbe, 0x6d, 0x7f, 0x23, 0x42, 0x50,
+ 0xc2, 0x14, 0x22, 0xf1, 0xcf, 0x12, 0x37, 0xa8, 0x62, 0xf0, 0xc4, 0x8d,
+ 0xea, 0x39, 0x34, 0x12, 0xf6, 0x25, 0xa8, 0x33, 0xc1, 0x16, 0xe6, 0x63,
+ 0x06, 0x93, 0x48, 0x19, 0x79, 0x64, 0x03, 0x4d, 0x99, 0x85, 0x89, 0x47,
+ 0x62, 0x26, 0xb2, 0x6b, 0x29, 0x4a, 0xed, 0x7a, 0xde, 0x5a, 0xe5, 0x9c,
+ 0x18, 0x4b, 0xa7, 0x07, 0xae, 0x0c, 0x24, 0xfc, 0x01, 0xea, 0xf7, 0xd0,
+ 0x3a, 0x5e, 0x9a, 0xce, 0x1a, 0x24, 0x16, 0xb6, 0x18, 0x81, 0x83, 0x4f,
+ 0x19, 0x61, 0xcc, 0x2c, 0x45, 0xb0, 0x53, 0xe4, 0x2c, 0x6c, 0x6d, 0x8a,
+ 0x6f, 0x85, 0x3e, 0x44, 0xd5, 0x13, 0x01, 0x55, 0xc2, 0x70, 0x53, 0x10,
+ 0x4b, 0xc8, 0x0c, 0x0c, 0x22, 0x7a, 0xc7, 0x01, 0x84, 0xbb, 0x3d, 0x15,
+ 0xcc, 0xa9, 0x03, 0x4a, 0x1d, 0x35, 0x9f, 0x99, 0xff, 0xaa, 0xc5, 0xa3,
+ 0x13, 0xda, 0xca, 0xde, 0x14, 0x4b, 0x63, 0x6c, 0xa0, 0x3a, 0xb4, 0x60,
+ 0x9a, 0x6c, 0xbe, 0xd8, 0xde, 0xb4, 0x43, 0x5b, 0x6d, 0x1a, 0x75, 0x4a,
+ 0x25, 0x3a, 0x9e, 0x73, 0xc6, 0x51, 0x99, 0xd6, 0xe1, 0x60, 0x9a, 0x13,
+ 0x10, 0x22, 0x1b, 0x60, 0x3d, 0xa3, 0x64, 0x73, 0xb5, 0xb2, 0x56, 0x90,
+ 0x99, 0x55, 0xe0, 0x7c, 0x32, 0x2d, 0x0a, 0x6f, 0xf2, 0x74, 0xd6, 0x10,
+ 0x54, 0x1e, 0xc9, 0x0c, 0x4c, 0x8c, 0x57, 0x1f, 0x78, 0x3a, 0x79, 0xe4,
+ 0x80, 0x52, 0x44, 0x07, 0xc5, 0x06, 0xc4, 0x33, 0xe2, 0x39, 0x36, 0xd6,
+ 0x29, 0xdf, 0x9b, 0x2f, 0xb6, 0xf8, 0xca, 0x72, 0x6e, 0x35, 0xef, 0xdb,
+ 0x9b, 0xc9, 0x4f, 0xf1, 0xcc, 0xd2, 0x84, 0xdf, 0xf5, 0xac, 0x04, 0xd9,
+ 0xb4, 0xf7, 0xbd, 0x91, 0x3c, 0x1f, 0x97, 0xd3, 0xbb, 0x2f, 0x11, 0x7f,
+ 0x92, 0x57, 0x9e, 0xef, 0xe0, 0x47, 0x1d, 0xa5, 0x79, 0x55, 0x43, 0x68,
+ 0xc5, 0x2c, 0x15, 0xfe, 0xfc, 0x8a, 0x1e, 0x57, 0x9b, 0x61, 0x33, 0x19,
+ 0x0e, 0x8d, 0x18, 0xaa, 0xe7, 0xa8, 0x5c, 0xb5, 0xe6, 0x6a, 0x61, 0x6a,
+ 0x38, 0x5c, 0xb2, 0xe3, 0xcc, 0xb1, 0xcb, 0xb0, 0x2d, 0x63, 0x8d, 0x6d,
+ 0xf1, 0x47, 0xf2, 0x6f, 0xab, 0x17, 0xc3, 0xe4, 0x50, 0x61, 0x33, 0x1b,
+ 0x11, 0x76, 0x1a, 0xf3, 0x28, 0xdf, 0x1f, 0x5e, 0x5a, 0xf6, 0xe7, 0xe3,
+ 0x5c, 0xfc, 0xed, 0xd3, 0xb2, 0x45, 0x52, 0x99, 0x30, 0xfd, 0x01, 0x5d,
+ 0xf1, 0x71, 0xe1, 0x6d, 0xf6, 0x4c, 0xc5, 0xf1, 0x22, 0x16, 0x11, 0xd6,
+ 0x8c, 0x91, 0xce, 0x0d, 0x8e, 0xe5, 0x9b, 0x2a, 0x4d, 0xfb, 0xc9, 0x67,
+ 0xfa, 0xb1, 0xee, 0xf5, 0x5c, 0xc0, 0x2b, 0xf1, 0x37, 0x30, 0xe4, 0x7e,
+ 0x3e, 0xa0, 0xa7, 0xbc, 0x2a, 0xaa, 0x96, 0x0e, 0xc1, 0x0d, 0x1b, 0xa1,
+ 0xb7, 0xbe, 0x14, 0x07, 0x9d, 0x86, 0xf4, 0x15, 0x79, 0xc1, 0xc5, 0x8d,
+ 0xf8, 0x5a, 0x18, 0xa7, 0x75, 0xf6, 0xf4, 0x31, 0x8f, 0x92, 0xa7, 0x4a,
+ 0x3c, 0x35, 0x2d, 0x97, 0x2c, 0x5f, 0x48, 0x55, 0x18, 0x11, 0xb4, 0x43,
+ 0xe4, 0x14, 0x5f, 0xd2, 0xd3, 0xa8, 0x60, 0x16, 0xa3, 0x61, 0xe9, 0x62,
+ 0x35, 0x3a, 0xe5, 0x75, 0x83, 0xd4, 0x9e, 0xcf, 0x9e, 0x7a, 0x1d, 0xbf,
+ 0xc7, 0x77, 0xe1, 0xce, 0x3b, 0x4e, 0xa0, 0x1c, 0x71, 0x19, 0x91, 0x37,
+ 0x04, 0x36, 0xde, 0xcd, 0x77, 0x83, 0x7e, 0x91, 0xe3, 0x83, 0xc9, 0xba,
+ 0x64, 0x84, 0xd6, 0xe1, 0x78, 0xdf, 0x79, 0xf2, 0x4f, 0xc3, 0x17, 0xba,
+ 0x7b, 0xba, 0x9f, 0x5e, 0xbb, 0xbb, 0x3d, 0x6b, 0x49, 0xdf, 0xe7, 0x4e,
+ 0xf0, 0x0e, 0xbf, 0x7f, 0x83, 0x53, 0x50, 0xe1, 0x6a, 0x59, 0xe1, 0x22,
+ 0x92, 0xc7, 0x58, 0x5f, 0xd0, 0x84, 0x21, 0x51, 0xd9, 0xdf, 0x1c, 0xbe,
+ 0x7d, 0x77, 0x78, 0xfa, 0xf0, 0x32, 0x3a, 0xad, 0xe2, 0x6c, 0xc3, 0xf5,
+ 0x55, 0xdd, 0x5c, 0x8e, 0x70, 0x8b, 0xc3, 0x50, 0xd2, 0x8c, 0x63, 0xe4,
+ 0x02, 0x01, 0x1c, 0x54, 0x98, 0x06, 0xba, 0x38, 0x3e, 0xca, 0xe0, 0xa2,
+ 0xdd, 0x45, 0xd0, 0x91, 0x38, 0x6f, 0x0e, 0x63, 0x72, 0x25, 0x70, 0xee,
+ 0x61, 0x3a, 0xd3, 0x5a, 0x6a, 0x19, 0xf6, 0xf4, 0x7d, 0x7a, 0xbd, 0x27,
+ 0x48, 0x6e, 0x9b, 0xb6, 0x1d, 0x53, 0x7f, 0x6c, 0x9e, 0xb9, 0x05, 0x65,
+ 0x69, 0xd1, 0x67, 0xb9, 0xdd, 0x5a, 0xee, 0xb8, 0xf2, 0xca, 0x43, 0x3d,
+ 0x77, 0xa3, 0x7e, 0x47, 0x47, 0xab, 0xf3, 0x5f, 0x7f, 0x4f, 0x96, 0xd1,
+ 0x0e, 0x3c, 0x1c, 0xd3, 0xe8, 0x44, 0xfd, 0xa0, 0x29, 0x39, 0x3b, 0xfc,
+ 0xb9, 0xf4, 0x2d, 0x3e, 0xab, 0xa6, 0x83, 0x7e, 0x90, 0x5b, 0x35, 0x5e,
+ 0x94, 0x69, 0x1d, 0x1d, 0x5f, 0x60, 0xb2, 0xce, 0x0f, 0x47, 0x23, 0x7b,
+ 0x31, 0xd6, 0x02, 0x56, 0xe8, 0x07, 0xb6, 0x19, 0xb4, 0x4a, 0xbf, 0x56,
+ 0xc8, 0x30, 0xb1, 0x15, 0x56, 0x05, 0xe8, 0x89, 0x78, 0x90, 0x31, 0x01,
+ 0x2f, 0x97, 0x73, 0x73, 0x68, 0x8c, 0x02, 0x3c, 0xdd, 0xac, 0x25, 0x3c,
+ 0xdb, 0xdd, 0x7c, 0x24, 0xbf, 0xa0, 0x58, 0xc9, 0x5a, 0xd3, 0xfe, 0xa3,
+ 0xb5, 0x1f, 0x69, 0x5c, 0x29, 0x75, 0xe1, 0x6c, 0x8f, 0x1a, 0xb6, 0x1f,
+ 0x77, 0xb0, 0xf7, 0x46, 0x27, 0x97, 0xc7, 0x66, 0xfa, 0xde, 0x5d, 0xbe,
+ 0xee, 0x49, 0xf8, 0xbb, 0x4b, 0x49, 0x01, 0x47, 0x3e, 0x95, 0x46, 0xfd,
+ 0x68, 0xd3, 0x56, 0x2b, 0xf6, 0xab, 0x18, 0xe3, 0x21, 0xa6, 0x90, 0xbb,
+ 0x8f, 0x0e, 0xd7, 0xac, 0xd2, 0x93, 0xe1, 0x93, 0xee, 0x2a, 0xad, 0xa6,
+ 0x79, 0x66, 0xe2, 0xdf, 0x60, 0xbb, 0x0b, 0x9b, 0x30, 0x61, 0xaa, 0x76,
+ 0x5c, 0xc5, 0x11, 0x04, 0xde, 0x40, 0x49, 0x03, 0x3c, 0x6f, 0xe4, 0xae,
+ 0x50, 0x0a, 0x3e, 0x2f, 0x56, 0x0e, 0xce, 0x63, 0xcb, 0xd1, 0x23, 0xee,
+ 0x5f, 0x0e, 0x91, 0x9a, 0x15, 0x4b, 0xab, 0xa9, 0xcd, 0xd1, 0x0c, 0x95,
+ 0x45, 0x45, 0x01, 0x52, 0x1d, 0x23, 0xb3, 0x05, 0xb4, 0x8e, 0x49, 0x2b,
+ 0x73, 0x36, 0xac, 0x4b, 0xe0, 0x52, 0x70, 0xe3, 0x24, 0xd4, 0x70, 0xaa,
+ 0xa3, 0xb4, 0x89, 0x65, 0x53, 0x5e, 0x8b, 0x8b, 0x8c, 0xf3, 0x26, 0xd3,
+ 0xbc, 0x0a, 0x8a, 0xe4, 0x39, 0xff, 0x19, 0xdf, 0xef, 0xb8, 0x7a, 0xab,
+ 0x72, 0xc6, 0xfe, 0x44, 0x79, 0x83, 0xe1, 0x9d, 0x9c, 0x79, 0xc2, 0xf9,
+ 0x10, 0x64, 0x36, 0x22, 0x2c, 0x0a, 0x73, 0x05, 0x45, 0xbf, 0xc3, 0x5a,
+ 0x55, 0x5b, 0xa3, 0x6d, 0xeb, 0x7a, 0xbd, 0x44, 0x94, 0x11, 0xad, 0x45,
+ 0x52, 0x8a, 0x3c, 0x46, 0x42, 0xd1, 0x35, 0x63, 0x94, 0x38, 0xde, 0xe9,
+ 0x0d, 0x0d, 0x28, 0x08, 0xeb, 0xc9, 0xed, 0x34, 0xae, 0x8d, 0xb1, 0x97,
+ 0x0b, 0xd0, 0x32, 0x98, 0x84, 0x9c, 0xc0, 0x74, 0xf4, 0xfd, 0x4b, 0xaf,
+ 0x42, 0x8d, 0xa2, 0xd7, 0x78, 0xbf, 0x88, 0x76, 0xba, 0x8a, 0x42, 0x2d,
+ 0x73, 0x10, 0xcc, 0x21, 0x02, 0xad, 0xd3, 0x2c, 0x5b, 0x58, 0x4a, 0xf0,
+ 0x1c, 0x19, 0x2f, 0x79, 0x8d, 0xc0, 0xaa, 0xd0, 0xb1, 0xa3, 0x06, 0xdb,
+ 0x8a, 0xde, 0x89, 0xe8, 0xb0, 0xd9, 0x96, 0xf4, 0x3f, 0xaa, 0xb8, 0x45,
+ 0xa1, 0xdd, 0xbd, 0xcf, 0x1e, 0x7d, 0x6e, 0xee, 0xe7, 0x3b, 0x70, 0x74,
+ 0xbb, 0x29, 0x63, 0x0e, 0xdd, 0xd5, 0xe4, 0x78, 0x62, 0xe1, 0x28, 0xf0,
+ 0x57, 0xb8, 0x0d, 0x92, 0x9a, 0x6c, 0x0a, 0xf8, 0xab, 0x24, 0xd3, 0x38,
+ 0xa4, 0x86, 0x31, 0x93, 0x28, 0x13, 0x26, 0x50, 0x3c, 0xcc, 0x13, 0xc3,
+ 0xc6, 0x86, 0xde, 0x06, 0xa6, 0xf2, 0x1e, 0x54, 0x7e, 0xcc, 0x88, 0x94,
+ 0x8b, 0xe3, 0xcb, 0x0b, 0xf3, 0xc7, 0xe8, 0xf2, 0xec, 0x62, 0x05, 0xa3,
+ 0x61, 0xc3, 0x9c, 0x19, 0x34, 0x69, 0x0a, 0x61, 0xc1, 0x34, 0xb7, 0xa9,
+ 0xce, 0x80, 0x91, 0x66, 0xb1, 0x53, 0x47, 0xd9, 0xb1, 0x3c, 0x92, 0xac,
+ 0x7a, 0xd8, 0x1a, 0xe8, 0x95, 0xb9, 0x1f, 0xd6, 0x0e, 0x8c, 0xd7, 0x7c,
+ 0xfd, 0x0e, 0xc1, 0x80, 0x69, 0x33, 0xd2, 0x88, 0xad, 0xa0, 0x47, 0x6f,
+ 0x8d, 0x05, 0x47, 0xd1, 0x00, 0x47, 0xff, 0xae, 0x65, 0x9d, 0x57, 0x30,
+ 0x59, 0x32, 0x60, 0xd7, 0x2f, 0x6d, 0xc2, 0x3e, 0xe7, 0x9e, 0x26, 0xe6,
+ 0xf7, 0x92, 0x2d, 0xf8, 0x93, 0x45, 0x37, 0xb9, 0x67, 0xff, 0x1a, 0x7d,
+ 0x68, 0xdb, 0x0d, 0xb8, 0x2e, 0xe7, 0x19, 0x3b, 0xfc, 0xe1, 0x16, 0xb2,
+ 0xc2, 0x89, 0xef, 0x16, 0xe6, 0x73, 0x4d, 0x62, 0xe4, 0x14, 0x96, 0x77,
+ 0x8b, 0x56, 0x79, 0xd3, 0x66, 0xf7, 0x97, 0xb2, 0x3b, 0x78, 0x5d, 0x32,
+ 0x63, 0xb6, 0x36, 0x20, 0x34, 0xdb, 0xd4, 0x5e, 0x79, 0x84, 0x5c, 0x6d,
+ 0xe1, 0xbd, 0xd7, 0x15, 0x32, 0xc4, 0x90, 0x10, 0x97, 0x2c, 0x28, 0x3e,
+ 0xd7, 0x62, 0x66, 0x50, 0xdc, 0x0d, 0x74, 0x09, 0xbf, 0xee, 0xe6, 0xb9,
+ 0x3c, 0x15, 0x8d, 0xb3, 0x21, 0x91, 0x90, 0x98, 0x35, 0xec, 0xde, 0x96,
+ 0x25, 0xe7, 0x98, 0xcd, 0xb2, 0x2b, 0x74, 0x5b, 0x3a, 0x5d, 0x28, 0x66,
+ 0x55, 0x71, 0x4b, 0x5c, 0x3d, 0xa3, 0x4e, 0xea, 0xfc, 0x9a, 0x5a, 0x59,
+ 0xbf, 0x39, 0xa1, 0x4d, 0xf2, 0xae, 0x10, 0x1a, 0x97, 0xc2, 0xd8, 0x17,
+ 0xc0, 0x44, 0x4c, 0xed, 0xa4, 0x11, 0xbf, 0x11, 0x41, 0xb9, 0xf8, 0xd2,
+ 0x9a, 0x96, 0xac, 0xd4, 0x83, 0x0b, 0x39, 0x64, 0xca, 0x83, 0x4b, 0x19,
+ 0x08, 0x03, 0xbd, 0x69, 0xa4, 0x3d, 0x67, 0x9d, 0x4c, 0x9a, 0xee, 0x48,
+ 0x41, 0xb9, 0x10, 0x0c, 0xf4, 0xdc, 0x5f, 0x34, 0x16, 0x69, 0x30, 0x80,
+ 0x9c, 0x2c, 0x68, 0x98, 0xf9, 0xa0, 0x45, 0x60, 0x21, 0x63, 0x8d, 0xa2,
+ 0xc8, 0x0b, 0xa1, 0x97, 0xd0, 0x22, 0xf2, 0x2d, 0xde, 0x06, 0x55, 0x03,
+ 0x87, 0x6b, 0x18, 0xc1, 0x7c, 0x9a, 0x87, 0xd6, 0x96, 0x6c, 0x27, 0xcf,
+ 0xb7, 0x47, 0xb7, 0x32, 0x0d, 0x17, 0x1b, 0xf4, 0x82, 0x96, 0x4c, 0x69,
+ 0x1c, 0x75, 0x6f, 0xe5, 0x45, 0x4e, 0xb4, 0x3e, 0x65, 0xb5, 0x43, 0xf9,
+ 0x2b, 0x44, 0x74, 0x97, 0x24, 0xe6, 0x7a, 0xe4, 0x0c, 0x42, 0x51, 0xdd,
+ 0x62, 0x85, 0x8c, 0xa1, 0x82, 0xb1, 0xb5, 0x69, 0x1a, 0x6f, 0x97, 0xa6,
+ 0xf5, 0x2a, 0xbc, 0xd1, 0x6d, 0xea, 0x71, 0x38, 0x0c, 0x63, 0x28, 0x79,
+ 0x46, 0x89, 0x00, 0x05, 0xd9, 0x56, 0xc7, 0xb4, 0x9e, 0xa7, 0x16, 0xe5,
+ 0xc0, 0xba, 0x42, 0xe5, 0x03, 0x32, 0x7f, 0x45, 0xe2, 0x9d, 0x16, 0x44,
+ 0x01, 0x57, 0x93, 0x99, 0x95, 0x3e, 0x23, 0x46, 0xda, 0x27, 0x13, 0x96,
+ 0x43, 0xfb, 0x6b, 0x75, 0xd6, 0x2c, 0x17, 0xe1, 0x3d, 0xef, 0x52, 0x41,
+ 0x6d, 0x8b, 0x38, 0xd7, 0x79, 0xe3, 0x77, 0x91, 0x28, 0x0e, 0xdc, 0xf4,
+ 0xfb, 0xac, 0xf6, 0x81, 0xf9, 0x4e, 0x9a, 0x40, 0x70, 0xbb, 0xaf, 0x4a,
+ 0xcb, 0xd7, 0xeb, 0x85, 0x0a, 0xeb, 0x26, 0x3d, 0xa3, 0x5f, 0xec, 0xf6,
+ 0xa0, 0x41, 0x6b, 0x65, 0x04, 0xe1, 0x0e, 0xd3, 0xb7, 0xcd, 0xbc, 0x78,
+ 0xfd, 0x0d, 0xcf, 0x8c, 0x66, 0xaa, 0x48, 0x86, 0x21, 0xad, 0xce, 0x16,
+ 0xd5, 0x70, 0xc7, 0xf9, 0xdd, 0xde, 0x58, 0x39, 0xf4, 0x35, 0xbd, 0xea,
+ 0xed, 0x3d, 0xdb, 0x1f, 0xee, 0x3d, 0xfd, 0x7c, 0xb8, 0x87, 0x0a, 0xb0,
+ 0x5e, 0xdf, 0x5c, 0x99, 0x52, 0xaf, 0xa1, 0x48, 0x1d, 0xdc, 0x64, 0x35,
+ 0x0d, 0x2e, 0x7f, 0x61, 0x7e, 0x37, 0xa4, 0xe7, 0x86, 0x5c, 0x8d, 0x26,
+ 0xf8, 0xc6, 0xdc, 0xe8, 0x34, 0x79, 0x11, 0x84, 0x45, 0x06, 0x0e, 0x69,
+ 0xc4, 0x7b, 0x71, 0x91, 0xd3, 0x36, 0x52, 0x6a, 0x4a, 0x6f, 0x9e, 0xb4,
+ 0x8a, 0x9e, 0x2d, 0x0c, 0x82, 0xd3, 0x19, 0xef, 0x91, 0x8a, 0xf4, 0x89,
+ 0xa8, 0x91, 0x4e, 0xaa, 0xdb, 0xef, 0x07, 0x62, 0xf3, 0x17, 0x5b, 0x7d,
+ 0xc4, 0xa7, 0x62, 0x0f, 0x5d, 0x97, 0x47, 0x07, 0x7c, 0x4b, 0x5d, 0xca,
+ 0x1e, 0x61, 0x60, 0xe1, 0x07, 0x5b, 0x99, 0x35, 0x5a, 0x95, 0x58, 0x9b,
+ 0x03, 0x11, 0x91, 0xcb, 0xd1, 0xb1, 0xe5, 0xdf, 0xb4, 0x65, 0x8d, 0xa5,
+ 0x77, 0xb9, 0x95, 0x2c, 0xe7, 0x11, 0x0b, 0x69, 0x6d, 0x8e, 0xde, 0xf9,
+ 0xcb, 0x5f, 0x9c, 0x44, 0xe2, 0x72, 0xe4, 0xa8, 0x81, 0xf1, 0x04, 0xfc,
+ 0xa6, 0x1c, 0xba, 0x66, 0x36, 0xfd, 0xa4, 0x77, 0xf0, 0x23, 0x5c, 0xc5,
+ 0x3f, 0x0f, 0x7e, 0x34, 0xff, 0xfe, 0xb9, 0xe7, 0x91, 0x5c, 0x31, 0x55,
+ 0x96, 0xc2, 0x4b, 0x36, 0xda, 0x87, 0xb9, 0x9f, 0xb4, 0xab, 0xb9, 0x42,
+ 0x37, 0xb8, 0x3c, 0x3a, 0xe7, 0xe3, 0x58, 0x71, 0x1c, 0x1c, 0xfb, 0x99,
+ 0x24, 0x11, 0x14, 0x7b, 0x12, 0xe2, 0xa8, 0x45, 0x61, 0x76, 0x8a, 0x9d,
+ 0x4b, 0xda, 0x32, 0xa9, 0xf7, 0x52, 0x5f, 0x23, 0x43, 0xa4, 0x35, 0x56,
+ 0x5c, 0xf8, 0xc7, 0x28, 0xb9, 0xd7, 0xe4, 0x68, 0x91, 0xa4, 0xf2, 0x21,
+ 0x55, 0x64, 0x56, 0x85, 0x5a, 0x7e, 0xa6, 0xcd, 0x11, 0xe7, 0x56, 0x0d,
+ 0x2a, 0x99, 0x5b, 0xd3, 0xb5, 0xbe, 0x90, 0xc7, 0x72, 0xea, 0x44, 0xa3,
+ 0x0c, 0x87, 0x05, 0x59, 0x2c, 0x2a, 0x76, 0xab, 0xbc, 0xfe, 0x40, 0x63,
+ 0x94, 0x3c, 0x20, 0xc6, 0x10, 0x6d, 0x78, 0x5a, 0x37, 0xfa, 0xa6, 0x9c,
+ 0x5e, 0x04, 0x02, 0x54, 0x27, 0xa5, 0x37, 0xc5, 0xee, 0x9a, 0xd0, 0xf5,
+ 0x57, 0xc6, 0x81, 0x28, 0x19, 0x96, 0x3c, 0x56, 0x65, 0x0f, 0xe0, 0x68,
+ 0x13, 0x90, 0xcc, 0xb9, 0x51, 0x78, 0xed, 0x1e, 0xf1, 0xf8, 0x92, 0x28,
+ 0xd1, 0x9c, 0xd6, 0x91, 0xae, 0xc1, 0xed, 0xee, 0xf5, 0x45, 0x25, 0x5e,
+ 0xc8, 0x7d, 0xcc, 0xbc, 0x4d, 0x96, 0x75, 0x8c, 0x5c, 0x76, 0xa4, 0x1d,
+ 0x4c, 0x2b, 0xd3, 0x0d, 0x70, 0x3c, 0x23, 0x65, 0x9e, 0x8f, 0x08, 0x05,
+ 0x7f, 0x55, 0xb9, 0xdb, 0x88, 0x1a, 0x0d, 0x38, 0x71, 0x4e, 0x2b, 0x9d,
+ 0xb1, 0xa7, 0xbd, 0xd6, 0x49, 0xa7, 0x3f, 0x8d, 0xd8, 0xd6, 0xb2, 0x64,
+ 0xb7, 0x05, 0x8a, 0x0b, 0x27, 0xa1, 0x65, 0x83, 0xee, 0xcf, 0x63, 0x04,
+ 0xb7, 0xde, 0xed, 0xba, 0xbf, 0x1b, 0xfa, 0x54, 0xa8, 0x64, 0x32, 0x26,
+ 0x79, 0x90, 0x2f, 0xee, 0x9f, 0x40, 0x5a, 0x36, 0x25, 0xed, 0x6d, 0x89,
+ 0x18, 0x7b, 0xd5, 0xd4, 0xcb, 0xeb, 0x6b, 0x50, 0x55, 0x84, 0xb0, 0x3d,
+ 0x24, 0x35, 0x4a, 0x56, 0x81, 0x14, 0x04, 0x30, 0x12, 0x1d, 0x3d, 0xd7,
+ 0xd9, 0x70, 0x99, 0x93, 0x22, 0x79, 0x6a, 0x57, 0xda, 0x63, 0x65, 0x76,
+ 0x2d, 0x15, 0x84, 0xd3, 0x73, 0xee, 0x27, 0x83, 0x55, 0xd9, 0xc0, 0x16,
+ 0x2d, 0xef, 0x0a, 0xc5, 0x00, 0xf6, 0xab, 0xc2, 0x11, 0x6e, 0x87, 0xd5,
+ 0x62, 0x70, 0xad, 0xf7, 0x91, 0x9c, 0x6d, 0x96, 0x6d, 0x8a, 0xc2, 0x4b,
+ 0xcc, 0xad, 0xc7, 0xe4, 0x68, 0x95, 0x65, 0x9b, 0x62, 0x15, 0x53, 0x44,
+ 0x53, 0xf7, 0x02, 0xbd, 0xc2, 0x84, 0xac, 0x73, 0x11, 0x38, 0xa9, 0xe8,
+ 0x2b, 0x4e, 0x8f, 0x87, 0xfb, 0xc1, 0xd2, 0xd6, 0xb3, 0xc1, 0x64, 0x32,
+ 0x19, 0x40, 0x25, 0x78, 0xce, 0x7a, 0xca, 0x8e, 0xe8, 0x09, 0x2b, 0xdc,
+ 0x07, 0xa3, 0x4c, 0x66, 0xfc, 0xe8, 0xe8, 0x48, 0x54, 0x9a, 0xcb, 0x9b,
+ 0x8e, 0x72, 0x61, 0x99, 0xa0, 0x44, 0xb9, 0x8a, 0x55, 0x0b, 0xac, 0x6f,
+ 0x96, 0xcd, 0x14, 0xd5, 0x84, 0x49, 0x68, 0xa8, 0x14, 0xb6, 0x89, 0xb4,
+ 0x1d, 0xbe, 0x4e, 0xaa, 0xeb, 0xde, 0xb7, 0x88, 0x45, 0x6a, 0x3b, 0xc8,
+ 0x34, 0x5c, 0x70, 0x0d, 0x11, 0xbc, 0x28, 0x6d, 0x77, 0x6b, 0x95, 0x72,
+ 0x57, 0x7d, 0x4a, 0x2d, 0xed, 0x60, 0x1d, 0x43, 0xb9, 0x69, 0x2b, 0xf8,
+ 0x6c, 0x9a, 0x0b, 0x66, 0x36, 0x95, 0x6f, 0x75, 0xdb, 0xbe, 0x67, 0x3d,
+ 0x64, 0xaa, 0xdb, 0x4b, 0xf2, 0x74, 0xe5, 0x92, 0x44, 0x27, 0x9f, 0x0c,
+ 0x2c, 0x9a, 0xf6, 0xad, 0x23, 0x90, 0x7d, 0x1e, 0xc9, 0x91, 0x38, 0xba,
+ 0x21, 0x64, 0x17, 0xe8, 0x2f, 0x4c, 0x97, 0x6b, 0x16, 0x03, 0x72, 0xab,
+ 0x8c, 0x46, 0xa7, 0x3b, 0x97, 0xa7, 0xa3, 0x00, 0x10, 0x7f, 0x47, 0xde,
+ 0x63, 0x2e, 0x42, 0xdd, 0xf2, 0x7e, 0xf2, 0x14, 0x81, 0x5c, 0xb9, 0xbc,
+ 0x6a, 0xef, 0x70, 0xfe, 0x4a, 0x94, 0x87, 0x64, 0x59, 0x68, 0xa6, 0x8c,
+ 0xbd, 0xc6, 0x8b, 0xac, 0x40, 0xa6, 0x39, 0xdd, 0xe6, 0x38, 0x01, 0x40,
+ 0xca, 0xd6, 0xc9, 0xdb, 0xc3, 0x4b, 0xca, 0x7e, 0x69, 0x04, 0xfc, 0x41,
+ 0xde, 0xa0, 0x00, 0xae, 0x2f, 0x7c, 0xad, 0x96, 0xe1, 0x32, 0x9d, 0xb8,
+ 0x7a, 0x22, 0xaa, 0xb7, 0xf3, 0xf2, 0xd5, 0xba, 0xf1, 0xd6, 0x4d, 0xbf,
+ 0x99, 0x52, 0xb9, 0x1f, 0xba, 0x7b, 0xbe, 0xbb, 0x1a, 0x7b, 0xd1, 0xd5,
+ 0xe0, 0x09, 0x88, 0x1f, 0x87, 0x0b, 0x11, 0xe6, 0x3a, 0xd1, 0x1a, 0x74,
+ 0x93, 0xee, 0xcf, 0xca, 0xeb, 0x9c, 0x9c, 0x82, 0x58, 0x2f, 0xec, 0x6b,
+ 0x2d, 0xa3, 0xde, 0x95, 0xc1, 0x3c, 0x3b, 0x35, 0x67, 0xea, 0xb4, 0xd3,
+ 0xae, 0xf8, 0x88, 0xd0, 0x4d, 0x61, 0xe7, 0xd4, 0x96, 0x32, 0xd2, 0x1c,
+ 0xc9, 0x30, 0x05, 0x11, 0x74, 0x8d, 0xf9, 0xc4, 0x58, 0x0b, 0x13, 0xc2,
+ 0x85, 0x20, 0x5f, 0xb0, 0x6e, 0xc3, 0x6f, 0xf3, 0x16, 0x3d, 0xa4, 0x3a,
+ 0x4b, 0xeb, 0xe5, 0x22, 0x9a, 0x23, 0x24, 0x23, 0x5c, 0xeb, 0x92, 0x7f,
+ 0xda, 0xba, 0x3e, 0xbe, 0x21, 0xe3, 0xec, 0x3a, 0xb8, 0x76, 0x2d, 0x55,
+ 0x45, 0x84, 0x8f, 0x0f, 0xda, 0x2a, 0x38, 0x00, 0xa4, 0x48, 0xb0, 0x4f,
+ 0x89, 0x4e, 0xc6, 0xd6, 0x60, 0xda, 0x8f, 0xf2, 0xd9, 0xf7, 0xbb, 0x15,
+ 0xc1, 0x98, 0x2d, 0xb0, 0x4d, 0x23, 0xdd, 0xa2, 0xeb, 0x51, 0x10, 0x70,
+ 0xa7, 0xb9, 0x6f, 0x8e, 0x5d, 0xf9, 0x81, 0x0e, 0xa7, 0x4f, 0xab, 0x34,
+ 0x01, 0x43, 0x75, 0x28, 0x24, 0x75, 0x4b, 0xc5, 0x4c, 0x6f, 0x57, 0xd8,
+ 0x3b, 0xac, 0xcf, 0x5e, 0x3a, 0x36, 0x73, 0x3e, 0x1f, 0x5a, 0xf2, 0x41,
+ 0x45, 0x16, 0x51, 0xc2, 0x68, 0xe0, 0xfe, 0xdf, 0x37, 0x5d, 0x81, 0x9d,
+ 0xe1, 0x4a, 0xfe, 0xbe, 0xbc, 0x68, 0xd7, 0xeb, 0xd5, 0xf9, 0x71, 0x91,
+ 0xa8, 0xbe, 0xeb, 0xb4, 0xfd, 0x76, 0x9c, 0x9b, 0xfb, 0x9e, 0x1e, 0xbd,
+ 0x3e, 0x3e, 0x7c, 0x69, 0xd9, 0x06, 0x7e, 0x5d, 0x84, 0x87, 0x1d, 0x24,
+ 0xea, 0x27, 0x03, 0xe0, 0x1e, 0xc4, 0x04, 0x2b, 0x9c, 0x24, 0xd6, 0x11,
+ 0x36, 0xce, 0xb8, 0x8e, 0xc2, 0x52, 0xbd, 0x26, 0x58, 0x1f, 0xdd, 0xaa,
+ 0xd8, 0x2d, 0x46, 0x65, 0xab, 0x33, 0x3e, 0x23, 0x2b, 0xcb, 0x09, 0xac,
+ 0x74, 0x93, 0xf8, 0xb8, 0x04, 0x71, 0x5f, 0x93, 0xd2, 0xcc, 0xc9, 0x57,
+ 0xde, 0x56, 0xbe, 0xc6, 0x56, 0x9e, 0x95, 0xe3, 0xf2, 0xea, 0x6a, 0xcd,
+ 0xfd, 0xce, 0xc4, 0x8d, 0x48, 0x92, 0xe2, 0x2d, 0xd3, 0xa3, 0x69, 0xa4,
+ 0xf7, 0xc6, 0x4c, 0xec, 0x59, 0x99, 0xc3, 0xd6, 0x93, 0xcc, 0x05, 0x29,
+ 0x64, 0x1f, 0x5c, 0x3d, 0x7e, 0xee, 0xba, 0x1a, 0x10, 0x6a, 0xef, 0x21,
+ 0x7d, 0x9f, 0x7d, 0x33, 0x0a, 0x21, 0xb2, 0xd4, 0xf8, 0x75, 0xf2, 0x9f,
+ 0xff, 0xf5, 0xe3, 0xcf, 0x91, 0xfa, 0x00, 0xe4, 0xfd, 0xbb, 0xe1, 0xd4,
+ 0x43, 0xf3, 0xb4, 0xb2, 0x4a, 0x5b, 0x16, 0x77, 0x86, 0xa0, 0x70, 0x70,
+ 0xa3, 0xa9, 0xb3, 0xd9, 0xd5, 0xd0, 0xc3, 0x5b, 0x86, 0x17, 0x23, 0x29,
+ 0x4c, 0xfa, 0x41, 0x94, 0x7c, 0xa3, 0x6c, 0x71, 0xce, 0xf0, 0x25, 0x56,
+ 0x6d, 0xd4, 0xd9, 0x71, 0x80, 0x6a, 0xcb, 0xb9, 0xcb, 0x2b, 0x11, 0x49,
+ 0x36, 0xd0, 0x4a, 0x24, 0xdd, 0xf8, 0xfa, 0xbb, 0x8b, 0x13, 0xeb, 0xf7,
+ 0xf4, 0xe5, 0xf2, 0x8d, 0xd9, 0xa9, 0x77, 0x83, 0xec, 0x2e, 0x1b, 0x1b,
+ 0x39, 0x51, 0x2b, 0x3f, 0xc4, 0x60, 0x5e, 0x27, 0xcf, 0xe7, 0x66, 0x87,
+ 0xe7, 0x2b, 0x98, 0x3d, 0x5e, 0xd3, 0x6b, 0x89, 0xbe, 0x66, 0x99, 0x45,
+ 0xaf, 0xcb, 0xca, 0xcc, 0xd0, 0x5c, 0x12, 0x76, 0x25, 0x6b, 0xb9, 0xed,
+ 0xd9, 0x48, 0x90, 0x81, 0x12, 0xf8, 0x06, 0x3e, 0x3e, 0x16, 0xad, 0x1b,
+ 0x34, 0x69, 0x1e, 0x85, 0x17, 0x14, 0xf6, 0x65, 0x3a, 0x23, 0xc5, 0xde,
+ 0x58, 0xdc, 0x64, 0xba, 0xd7, 0x7d, 0xd9, 0x52, 0x95, 0xb2, 0xbb, 0x45,
+ 0x99, 0x06, 0x6c, 0x9e, 0x22, 0xac, 0x2c, 0x12, 0x3b, 0xfe, 0x88, 0x6c,
+ 0x29, 0x50, 0x9f, 0x97, 0x4d, 0x8a, 0x00, 0x87, 0xf3, 0xaa, 0x03, 0x60,
+ 0x9f, 0x68, 0xe2, 0x90, 0xad, 0x94, 0xcc, 0x91, 0x6b, 0xa1, 0x5e, 0xdf,
+ 0x2d, 0x6b, 0xed, 0xe6, 0xe0, 0x50, 0xce, 0xd3, 0xa9, 0xcd, 0xb5, 0xf7,
+ 0x49, 0xfd, 0x90, 0xa7, 0x98, 0x52, 0xe2, 0x64, 0x36, 0x1b, 0x4a, 0x79,
+ 0x6a, 0x00, 0xae, 0x5c, 0x9b, 0x10, 0xb9, 0x5d, 0x80, 0x49, 0x4d, 0x98,
+ 0x01, 0x4e, 0x97, 0x15, 0xef, 0x3e, 0x32, 0xcf, 0xc5, 0x0d, 0x11, 0x0d,
+ 0xfc, 0x5e, 0x0a, 0xad, 0xce, 0x35, 0x7c, 0x00, 0x62, 0x43, 0x80, 0xc8,
+ 0x18, 0x05, 0xb8, 0x98, 0xad, 0x84, 0xde, 0x06, 0xde, 0x82, 0x64, 0x08,
+ 0x2f, 0xf8, 0xb1, 0x2c, 0x78, 0xa7, 0x39, 0x0a, 0xbc, 0x3c, 0x7d, 0xf2,
+ 0xe4, 0x09, 0x07, 0x5e, 0x7a, 0x27, 0xf8, 0xf0, 0xc5, 0xf1, 0xd1, 0xd9,
+ 0x9b, 0x37, 0xc7, 0x6f, 0x5f, 0x1e, 0xbf, 0x54, 0xb0, 0xb1, 0x37, 0x12,
+ 0xb7, 0x3b, 0xc2, 0x11, 0x11, 0x82, 0xd0, 0xcc, 0xf3, 0xde, 0x93, 0xdd,
+ 0xc1, 0xfe, 0x93, 0xdd, 0xc4, 0xec, 0xc5, 0xd4, 0x26, 0xb2, 0xa5, 0xb3,
+ 0x94, 0x5c, 0x02, 0x37, 0x4b, 0xa3, 0xac, 0x11, 0xe9, 0x66, 0x43, 0xc4,
+ 0x1c, 0xf0, 0xc3, 0x92, 0xeb, 0x27, 0x6b, 0xc8, 0x88, 0x0e, 0x34, 0xa0,
+ 0x74, 0x3a, 0xec, 0x59, 0xfe, 0x34, 0x17, 0xbd, 0x14, 0xed, 0x07, 0x1b,
+ 0x74, 0x7f, 0x97, 0x3e, 0x34, 0x4c, 0x5e, 0x19, 0xfd, 0xe3, 0xaa, 0xfc,
+ 0xc4, 0x7b, 0xf1, 0xe8, 0xc6, 0xa8, 0xa5, 0x59, 0x18, 0xb7, 0x6c, 0xbf,
+ 0x4f, 0xaf, 0x3f, 0xe2, 0xd7, 0xff, 0x85, 0x01, 0xfb, 0x27, 0xcf, 0xda,
+ 0xc6, 0xa5, 0x39, 0xc8, 0x20, 0x6c, 0xd7, 0x9c, 0xc5, 0x15, 0x5c, 0xad,
+ 0x23, 0x36, 0xc9, 0x5f, 0x1f, 0x9e, 0xd3, 0xd3, 0xc6, 0x34, 0x3f, 0xfb,
+ 0xe1, 0xaf, 0x2e, 0x0f, 0xf4, 0xe3, 0x9e, 0x22, 0x1d, 0x25, 0xd5, 0x15,
+ 0xd5, 0xec, 0x8a, 0x30, 0x02, 0xee, 0xd4, 0x59, 0x6b, 0x14, 0xea, 0x25,
+ 0x23, 0x37, 0x2a, 0x18, 0x48, 0x4a, 0xca, 0xf1, 0xe1, 0x32, 0x53, 0xb2,
+ 0x72, 0x55, 0x1d, 0x63, 0x4a, 0xa9, 0xd8, 0x99, 0x0c, 0x36, 0xf2, 0x4f,
+ 0x20, 0x9c, 0xa3, 0x43, 0x96, 0x17, 0x53, 0x2e, 0xf1, 0xda, 0xf6, 0xd5,
+ 0x36, 0xd5, 0x32, 0xeb, 0x38, 0x52, 0x23, 0x1a, 0xd6, 0x7d, 0x34, 0x1d,
+ 0x8b, 0x2a, 0x9f, 0xa7, 0x55, 0xce, 0xb5, 0xdd, 0x69, 0xd3, 0xdf, 0x72,
+ 0x11, 0x4a, 0x06, 0x1c, 0x21, 0x38, 0x66, 0x69, 0x20, 0xa9, 0x33, 0x69,
+ 0x84, 0x07, 0x3d, 0x9f, 0xc8, 0x39, 0x63, 0x4a, 0x24, 0x89, 0x62, 0xf2,
+ 0x0c, 0xae, 0x5b, 0xbb, 0xa7, 0x6d, 0xc7, 0xc0, 0x49, 0x5f, 0x74, 0x8c,
+ 0x68, 0xe2, 0x2e, 0x69, 0xbe, 0xaf, 0x4e, 0x4e, 0x8f, 0xb7, 0x93, 0x57,
+ 0x59, 0x23, 0x59, 0x51, 0x0a, 0x49, 0x26, 0x3d, 0xe0, 0x0f, 0xd0, 0xbb,
+ 0x2c, 0x87, 0xa0, 0x64, 0x16, 0x47, 0xeb, 0x93, 0xb3, 0x85, 0x03, 0x05,
+ 0x44, 0x33, 0xac, 0x78, 0x4b, 0x62, 0x88, 0x14, 0xb0, 0x53, 0x1c, 0x9a,
+ 0x06, 0x40, 0x65, 0x37, 0x90, 0x1f, 0x2d, 0xac, 0x7f, 0xca, 0xfc, 0x10,
+ 0x0a, 0x93, 0x96, 0x75, 0x2f, 0x7d, 0x9c, 0x01, 0xf5, 0x5b, 0x70, 0xd2,
+ 0x1c, 0x31, 0xcc, 0xeb, 0xc5, 0x8c, 0x64, 0x44, 0x8c, 0x1d, 0x66, 0x26,
+ 0xb9, 0x53, 0xc0, 0x4d, 0xd3, 0x71, 0xe0, 0x3a, 0xec, 0x62, 0x0b, 0x41,
+ 0xca, 0xd2, 0x78, 0xbd, 0x89, 0x7b, 0xad, 0x13, 0x47, 0xc0, 0x14, 0xfe,
+ 0x73, 0xe7, 0xab, 0x28, 0x71, 0x99, 0x54, 0x9e, 0x40, 0x31, 0x5a, 0x79,
+ 0xc1, 0x8c, 0x58, 0xcb, 0x93, 0xcb, 0xc5, 0xaf, 0xca, 0x68, 0x6b, 0x27,
+ 0xc4, 0xb4, 0x5a, 0xec, 0x87, 0xc4, 0xda, 0xc1, 0x7f, 0x95, 0x02, 0x48,
+ 0xaa, 0x56, 0x50, 0xea, 0xb8, 0xbb, 0x74, 0x32, 0xef, 0xa3, 0x75, 0xb4,
+ 0xd2, 0x18, 0x8b, 0x6a, 0x29, 0x76, 0xcb, 0x2a, 0x16, 0xc1, 0xfb, 0x53,
+ 0xc5, 0xf7, 0x6b, 0x87, 0xe9, 0xb1, 0x1b, 0x61, 0x9a, 0x86, 0x83, 0x85,
+ 0x13, 0xcf, 0xea, 0x48, 0x50, 0xc0, 0x25, 0xd6, 0xd9, 0xf8, 0x1f, 0x17,
+ 0x2c, 0x65, 0x87, 0xa7, 0x62, 0x13, 0xfa, 0x92, 0x0e, 0xf6, 0x89, 0x9f,
+ 0x99, 0xdd, 0x45, 0x54, 0x28, 0xf9, 0xba, 0x2f, 0x97, 0xba, 0xaa, 0xbc,
+ 0xfd, 0x46, 0x69, 0x39, 0x77, 0xc4, 0x40, 0x0d, 0x75, 0x48, 0x9a, 0x3b,
+ 0x2e, 0x42, 0x97, 0x81, 0x36, 0xa9, 0xa9, 0xf2, 0xc9, 0x87, 0x9c, 0x3c,
+ 0xa4, 0x75, 0xb3, 0x84, 0x9e, 0x97, 0x16, 0x7e, 0x2f, 0x2d, 0x33, 0xfb,
+ 0xb4, 0xc4, 0x4c, 0xc7, 0x55, 0x52, 0x52, 0x9b, 0xc8, 0x93, 0x40, 0x84,
+ 0xa9, 0xda, 0x1b, 0x1e, 0x8d, 0x3d, 0x2b, 0xb6, 0xfe, 0x29, 0xa5, 0x50,
+ 0x62, 0x65, 0x17, 0x11, 0x1a, 0xe7, 0x0c, 0xa5, 0x8c, 0xe1, 0x0b, 0xbc,
+ 0x15, 0x7a, 0xb2, 0xcd, 0x2a, 0x63, 0x2a, 0xf9, 0xa1, 0x31, 0x50, 0xe7,
+ 0x94, 0x43, 0x00, 0x54, 0xae, 0x0c, 0x59, 0xa6, 0xc7, 0x88, 0xbb, 0xeb,
+ 0xfc, 0x63, 0x14, 0x87, 0xa1, 0x1d, 0x03, 0x8a, 0x43, 0x7b, 0xa1, 0x08,
+ 0x65, 0x17, 0xf0, 0x16, 0x97, 0x35, 0x31, 0x08, 0x06, 0x8e, 0x6b, 0x7b,
+ 0x82, 0x67, 0xa4, 0xc6, 0x12, 0x19, 0x58, 0xc1, 0xa5, 0x6f, 0x5f, 0x1b,
+ 0x75, 0xe8, 0xa0, 0x67, 0x09, 0xd0, 0xe1, 0x70, 0x65, 0x7e, 0x71, 0x7f,
+ 0xe7, 0x48, 0x31, 0xe6, 0x41, 0xb4, 0x9c, 0x17, 0x6b, 0xf3, 0x8d, 0xca,
+ 0x2d, 0x9b, 0xa0, 0x13, 0x82, 0xa0, 0x6d, 0xc2, 0x4c, 0x1f, 0xd4, 0x28,
+ 0x37, 0x21, 0xc1, 0x3b, 0x75, 0xe9, 0x87, 0xc1, 0x11, 0x3e, 0x3e, 0x78,
+ 0x8d, 0xf6, 0xbe, 0xe8, 0x59, 0x4f, 0x70, 0xf7, 0x57, 0x07, 0x61, 0x09,
+ 0x5e, 0xdf, 0x9f, 0xc8, 0xbb, 0xa4, 0x5e, 0x56, 0x9a, 0xac, 0x04, 0xb8,
+ 0x89, 0xf4, 0x12, 0xb4, 0x71, 0xd3, 0xe9, 0x8e, 0x5d, 0x74, 0xc6, 0xd6,
+ 0xad, 0xaa, 0xfd, 0x6a, 0xee, 0x95, 0x05, 0x48, 0x78, 0xa6, 0x83, 0xf2,
+ 0x6a, 0x00, 0x40, 0xb5, 0x91, 0xfe, 0x1f, 0x08, 0xae, 0xe4, 0x9d, 0x3a,
+ 0xd0, 0x8a, 0x80, 0x2a, 0x7b, 0x3a, 0x8d, 0xe9, 0xeb, 0x9c, 0xfb, 0x48,
+ 0xaa, 0x88, 0x6c, 0x7c, 0xcd, 0xcc, 0xe0, 0xc5, 0x3c, 0x10, 0x77, 0x3d,
+ 0x5e, 0xb7, 0xa5, 0xa3, 0x88, 0xd1, 0x6b, 0x6d, 0xa5, 0xa9, 0x3e, 0xab,
+ 0xf4, 0x18, 0x34, 0x0c, 0xbb, 0x39, 0xfb, 0x78, 0xe1, 0x98, 0x5e, 0x2e,
+ 0xa0, 0xc7, 0x12, 0xfd, 0x66, 0xe0, 0x94, 0xd1, 0xac, 0x12, 0xd6, 0x07,
+ 0x9e, 0x0c, 0x77, 0xfb, 0x41, 0x20, 0xbf, 0x81, 0x07, 0xa0, 0x70, 0x28,
+ 0x22, 0x58, 0xba, 0x90, 0x91, 0x83, 0x68, 0x42, 0x6e, 0xdd, 0xdc, 0x91,
+ 0xb4, 0xb6, 0x09, 0xb8, 0xe0, 0x0c, 0x77, 0x99, 0x12, 0x0e, 0xf6, 0x83,
+ 0x39, 0x14, 0xc1, 0x89, 0xc4, 0xdb, 0x18, 0x63, 0xa9, 0x60, 0xba, 0xbe,
+ 0x1a, 0x74, 0xab, 0x87, 0xda, 0x22, 0x62, 0x7e, 0xba, 0x87, 0x57, 0x0e,
+ 0x6c, 0xa5, 0x03, 0x0a, 0xc4, 0xf7, 0x87, 0x5a, 0x5a, 0x67, 0x60, 0x26,
+ 0x55, 0x6a, 0xa5, 0x0e, 0x32, 0xfa, 0x21, 0xd3, 0x7c, 0x28, 0x0d, 0x68,
+ 0x7d, 0xcf, 0x9c, 0x3d, 0xfa, 0x8c, 0xe6, 0xcc, 0x56, 0x02, 0xd0, 0x9a,
+ 0x37, 0xee, 0x82, 0xc0, 0xb6, 0xf5, 0xce, 0x52, 0x77, 0xce, 0x48, 0xae,
+ 0x90, 0x24, 0x80, 0xa9, 0xcf, 0xfe, 0x4c, 0x34, 0xb1, 0x12, 0x80, 0xbc,
+ 0x02, 0x19, 0x8c, 0x63, 0xf3, 0x8a, 0xb4, 0xfd, 0xc1, 0x5b, 0xb3, 0x0c,
+ 0x07, 0xc9, 0x7f, 0x94, 0x19, 0x27, 0xb9, 0xde, 0x93, 0xe3, 0xfa, 0xfd,
+ 0xe1, 0xc5, 0xdb, 0x93, 0xb7, 0xdf, 0x1c, 0xb8, 0x1c, 0x30, 0xc8, 0x3c,
+ 0x71, 0x5f, 0xb4, 0xe1, 0x16, 0xae, 0x0a, 0x1e, 0x3d, 0x92, 0xc7, 0x8a,
+ 0xbb, 0x58, 0x8d, 0x67, 0xc0, 0xd2, 0x99, 0x9d, 0x9a, 0x55, 0xc6, 0x11,
+ 0x13, 0xb6, 0x50, 0x6d, 0xaa, 0x45, 0x5f, 0xeb, 0xa9, 0x71, 0x68, 0xbf,
+ 0x29, 0x03, 0x83, 0x54, 0x9c, 0x28, 0xa7, 0x70, 0xa2, 0xcc, 0xca, 0x56,
+ 0x71, 0x27, 0xda, 0x9d, 0x33, 0xec, 0x82, 0xd2, 0xdf, 0x08, 0x5e, 0x8d,
+ 0xa6, 0x10, 0x7b, 0xc2, 0xb9, 0x33, 0xa8, 0x08, 0x8d, 0x6b, 0x02, 0xb6,
+ 0x8e, 0x96, 0xb3, 0xe1, 0x9a, 0x14, 0x35, 0x16, 0xad, 0xce, 0xe1, 0x83,
+ 0x70, 0x73, 0xb2, 0xc2, 0x5c, 0xc6, 0x65, 0xc6, 0x84, 0xd0, 0xe9, 0x92,
+ 0x0f, 0x0d, 0x13, 0x9b, 0xc9, 0x4f, 0x5d, 0x26, 0x87, 0x9d, 0x83, 0x7b,
+ 0x80, 0xcd, 0x36, 0x6f, 0x20, 0x82, 0x89, 0x46, 0x44, 0xd0, 0xc9, 0x2c,
+ 0xf3, 0x27, 0xdd, 0x26, 0x51, 0x02, 0x93, 0x59, 0xe6, 0x32, 0x99, 0xac,
+ 0xba, 0x73, 0xc3, 0xea, 0xce, 0x6c, 0x11, 0xf0, 0xf4, 0x11, 0x1e, 0x9d,
+ 0x7e, 0x21, 0x73, 0x4b, 0x61, 0x2d, 0x5c, 0xc1, 0x6a, 0xac, 0xb4, 0x58,
+ 0xf1, 0x6c, 0xc9, 0x45, 0xc5, 0xf7, 0x87, 0x57, 0x2a, 0x11, 0x45, 0x65,
+ 0x4c, 0x55, 0xe6, 0xe7, 0xcc, 0x98, 0xaf, 0x9b, 0x49, 0x5e, 0x2c, 0xc7,
+ 0xf3, 0xe9, 0x93, 0xe4, 0xb9, 0xf9, 0x4f, 0xa0, 0x67, 0x01, 0x58, 0x9a,
+ 0x8c, 0x8e, 0xc8, 0xd4, 0x20, 0x1c, 0x0c, 0xdd, 0x1a, 0xcc, 0x96, 0xe3,
+ 0x15, 0x7e, 0x78, 0xb4, 0x6f, 0x3a, 0xfb, 0x29, 0x55, 0x6e, 0xcc, 0xa9,
+ 0x59, 0xc0, 0x06, 0xf8, 0xb4, 0x15, 0x84, 0x43, 0x0e, 0xc6, 0x47, 0x0b,
+ 0xbe, 0xb7, 0xff, 0x79, 0x42, 0x79, 0x0a, 0x6f, 0x5e, 0x3e, 0x49, 0x26,
+ 0x37, 0xd9, 0xe4, 0x43, 0xbd, 0x9c, 0x5b, 0x38, 0x24, 0x4d, 0x29, 0x19,
+ 0x0c, 0xd4, 0xcf, 0x80, 0xd2, 0xc7, 0x74, 0x7c, 0x96, 0x4f, 0x28, 0x5d,
+ 0xd0, 0x47, 0x96, 0x52, 0xcd, 0xe9, 0x3a, 0xeb, 0x98, 0x33, 0xee, 0xe6,
+ 0x00, 0xa6, 0x80, 0x81, 0x37, 0x91, 0xb0, 0x86, 0x99, 0x03, 0xf3, 0xf9,
+ 0x9a, 0x4b, 0x45, 0xaf, 0x75, 0xe6, 0x7e, 0xd6, 0xf2, 0x87, 0xef, 0x62,
+ 0x29, 0xcd, 0xf9, 0xde, 0x1b, 0xee, 0xae, 0xa8, 0xed, 0x0e, 0x08, 0x8b,
+ 0x06, 0x02, 0xa9, 0x87, 0xb0, 0x06, 0x48, 0xc7, 0xa7, 0xfe, 0x99, 0xf7,
+ 0x7c, 0x2d, 0x4c, 0x61, 0xcc, 0x66, 0x22, 0x57, 0xe0, 0xbf, 0xcc, 0xbd,
+ 0x22, 0x4e, 0x93, 0x6c, 0xda, 0x6a, 0x6a, 0xad, 0xa1, 0xe4, 0xd7, 0xf2,
+ 0xe2, 0xee, 0xee, 0x89, 0xf7, 0x9f, 0xfe, 0xd5, 0x8a, 0xb7, 0xc8, 0xaf,
+ 0x7f, 0xe5, 0x68, 0xf6, 0x7e, 0x41, 0xc2, 0xc0, 0x6e, 0xdf, 0x7d, 0x6f,
+ 0xd7, 0x96, 0x26, 0xe3, 0x0e, 0xb9, 0x49, 0xef, 0x34, 0x17, 0x32, 0xa0,
+ 0xe3, 0x05, 0x4a, 0xba, 0x28, 0xab, 0x01, 0xe9, 0x84, 0xb3, 0x6c, 0x1a,
+ 0x5c, 0xd1, 0xd1, 0xee, 0x1b, 0x65, 0xa3, 0x5e, 0x2a, 0x7d, 0x09, 0x45,
+ 0x12, 0x10, 0xaa, 0x60, 0xae, 0x2d, 0x57, 0x30, 0x24, 0x06, 0x1c, 0xa7,
+ 0x67, 0x76, 0xf6, 0x9d, 0x1f, 0x91, 0x7f, 0x40, 0x93, 0x9a, 0xbc, 0x5b,
+ 0x5c, 0x57, 0x29, 0x05, 0x51, 0x28, 0x4b, 0xcb, 0x12, 0xc1, 0xa3, 0x77,
+ 0xc9, 0xaa, 0xde, 0x39, 0x46, 0x2a, 0x0d, 0x06, 0x23, 0x7b, 0xb0, 0xd6,
+ 0xef, 0xd4, 0x94, 0x96, 0x09, 0xad, 0x92, 0x8b, 0x86, 0x25, 0x42, 0xdb,
+ 0xae, 0x9d, 0x8c, 0x51, 0xce, 0x9a, 0x97, 0x98, 0x9b, 0xb4, 0xd4, 0x56,
+ 0x5a, 0x78, 0x6e, 0x22, 0xd3, 0x66, 0x75, 0x52, 0x4b, 0xb8, 0x39, 0x32,
+ 0xf3, 0x80, 0xcf, 0x8f, 0x17, 0x57, 0x94, 0x84, 0x0e, 0xdd, 0x5c, 0x10,
+ 0x77, 0x88, 0x2e, 0xc7, 0x83, 0x29, 0xf1, 0x03, 0x56, 0xa9, 0x9c, 0x1d,
+ 0x33, 0x9a, 0x50, 0xc9, 0x63, 0x19, 0x3e, 0x6c, 0x73, 0xef, 0xf6, 0xa3,
+ 0xbd, 0xa3, 0xdd, 0xe6, 0x6f, 0xfe, 0x16, 0x45, 0xdb, 0xb3, 0xc8, 0xe6,
+ 0xfa, 0x55, 0x67, 0x61, 0x7f, 0x5d, 0xf4, 0xcd, 0x28, 0xf1, 0xe9, 0x6c,
+ 0x51, 0x0c, 0xf5, 0x0b, 0x0f, 0x9a, 0x9f, 0xee, 0x32, 0xdb, 0x02, 0x02,
+ 0xbf, 0x6e, 0x7e, 0xba, 0x73, 0xe3, 0xcb, 0x32, 0x7f, 0x7e, 0xba, 0x6b,
+ 0xb9, 0xb6, 0x1c, 0x01, 0xe7, 0x3f, 0x6b, 0x41, 0xee, 0x01, 0x27, 0x76,
+ 0xc5, 0xf2, 0x19, 0x84, 0xaf, 0x53, 0x28, 0xcc, 0xfa, 0xc9, 0x09, 0x53,
+ 0xf4, 0x22, 0x88, 0x2e, 0x2f, 0x9f, 0x72, 0x56, 0x98, 0xf8, 0x61, 0x1c,
+ 0x4a, 0x3c, 0x92, 0x42, 0x9a, 0x4f, 0x88, 0x1f, 0x68, 0xc6, 0x20, 0x2d,
+ 0xf2, 0x02, 0x41, 0x8b, 0xb3, 0xf5, 0x18, 0x96, 0xf0, 0x7d, 0x25, 0x87,
+ 0x0b, 0x4a, 0xee, 0x32, 0x52, 0xea, 0x93, 0x6a, 0xc6, 0x91, 0xe8, 0x8f,
+ 0xb9, 0xd5, 0x4b, 0x80, 0xe0, 0x15, 0x2c, 0xda, 0xe9, 0x0e, 0x35, 0xcc,
+ 0x1c, 0x5e, 0x33, 0x02, 0x47, 0x57, 0x9a, 0xe6, 0xb7, 0x4f, 0x15, 0xd7,
+ 0xaf, 0x03, 0x92, 0xf0, 0xf1, 0x5d, 0x13, 0x49, 0x5d, 0x00, 0x49, 0x19,
+ 0x4d, 0xc3, 0x56, 0x2d, 0xd0, 0xa8, 0xc7, 0x4f, 0x87, 0xbb, 0xdb, 0x7d,
+ 0x2a, 0x35, 0xbc, 0xc0, 0x24, 0x10, 0xb8, 0xdc, 0x5e, 0xf7, 0x94, 0x5b,
+ 0x91, 0x5f, 0x93, 0x05, 0x25, 0x98, 0xe5, 0x00, 0xe5, 0xfd, 0x8f, 0x4c,
+ 0x11, 0x39, 0x0a, 0x77, 0x11, 0xda, 0xc4, 0x76, 0x5a, 0x55, 0xde, 0x47,
+ 0xe1, 0x22, 0xb8, 0x4b, 0xba, 0x3e, 0x4e, 0x71, 0xa2, 0xd0, 0xc7, 0x55,
+ 0x06, 0x2a, 0x33, 0xb7, 0x55, 0xc0, 0x6c, 0xe9, 0x52, 0xa1, 0x9c, 0x17,
+ 0x17, 0x74, 0xc4, 0xb7, 0x12, 0x79, 0x79, 0x02, 0x7b, 0x5b, 0xbf, 0x02,
+ 0xb3, 0x08, 0x8a, 0xa7, 0x48, 0x3d, 0x32, 0x5c, 0xfa, 0x4a, 0xe5, 0xdf,
+ 0x3d, 0xb9, 0x53, 0xf0, 0x40, 0xb3, 0x76, 0xe0, 0x28, 0x4f, 0x5b, 0x07,
+ 0x4e, 0x69, 0x4a, 0x87, 0xc3, 0x61, 0x24, 0x23, 0xfb, 0x63, 0x9e, 0xdd,
+ 0xb6, 0xbc, 0x43, 0xd2, 0xad, 0xbe, 0xa5, 0xfb, 0x67, 0x9b, 0xe4, 0x23,
+ 0xcd, 0x90, 0x69, 0x72, 0x5c, 0xda, 0xa2, 0xd6, 0x6b, 0x0e, 0xb2, 0xff,
+ 0xb4, 0x37, 0xcd, 0x1f, 0x78, 0x9a, 0xeb, 0x58, 0x0e, 0x13, 0x13, 0x7c,
+ 0x3a, 0x76, 0xf2, 0x3e, 0xa9, 0xe8, 0xd5, 0x5d, 0x02, 0x1a, 0x7a, 0xa7,
+ 0xb8, 0x40, 0xae, 0x30, 0x66, 0x36, 0xaf, 0x99, 0x5f, 0x93, 0xa9, 0x31,
+ 0x22, 0x41, 0x0d, 0xfe, 0xce, 0xb0, 0x7d, 0xe5, 0x8b, 0xe7, 0xc6, 0xd6,
+ 0x5a, 0xaf, 0xca, 0x09, 0x19, 0x47, 0x28, 0x5f, 0x2b, 0xbc, 0xda, 0x64,
+ 0x1b, 0x44, 0x62, 0xe4, 0xb2, 0x1e, 0x1e, 0x0f, 0xbf, 0x17, 0xd2, 0x75,
+ 0xc5, 0x11, 0x12, 0x1d, 0x60, 0x34, 0x2c, 0x11, 0x34, 0xd2, 0x1a, 0xc6,
+ 0xf8, 0x4e, 0x8b, 0xfa, 0x58, 0xc7, 0x80, 0x2d, 0x50, 0x17, 0xe8, 0x7b,
+ 0x5e, 0x4e, 0x55, 0xe2, 0x78, 0x61, 0x7c, 0x6f, 0x8b, 0x65, 0x6e, 0x92,
+ 0x0f, 0xd4, 0x1e, 0xe5, 0x6b, 0x40, 0x7f, 0xee, 0x55, 0x96, 0xcf, 0x28,
+ 0x93, 0x8c, 0x2a, 0x48, 0x44, 0x97, 0x98, 0x8d, 0x70, 0x4e, 0xdb, 0xa6,
+ 0x1a, 0x26, 0x4b, 0x8a, 0x8f, 0xe2, 0xf8, 0x4b, 0xd6, 0xa5, 0x24, 0x5a,
+ 0x76, 0xb3, 0xf1, 0x2d, 0xab, 0x11, 0xcd, 0xfd, 0xf0, 0x26, 0xfd, 0xf4,
+ 0x69, 0x58, 0x67, 0x3b, 0x66, 0xd7, 0xd6, 0x3b, 0x75, 0x3d, 0xa3, 0x8f,
+ 0xd6, 0x20, 0x10, 0x5a, 0x5b, 0x1e, 0xcd, 0xd8, 0xaf, 0x3a, 0xbf, 0x22,
+ 0x8c, 0x27, 0x29, 0xbd, 0xda, 0x12, 0xb6, 0xae, 0x3e, 0x1a, 0x97, 0x3b,
+ 0xe8, 0xa2, 0xdb, 0x98, 0x40, 0x95, 0x1c, 0x07, 0x7e, 0x82, 0x18, 0x4b,
+ 0x06, 0x07, 0x22, 0xb0, 0xcd, 0x78, 0xc4, 0xd0, 0x44, 0x99, 0x5a, 0xad,
+ 0x82, 0x23, 0x27, 0x72, 0x56, 0x7d, 0xef, 0x7d, 0x59, 0x39, 0xd8, 0xae,
+ 0xb9, 0x21, 0x1c, 0x37, 0x04, 0x6a, 0x8a, 0xa0, 0x1a, 0x7a, 0x84, 0xb5,
+ 0x64, 0x95, 0x21, 0xed, 0x0d, 0x8d, 0xe0, 0xcd, 0x07, 0x8e, 0x25, 0xeb,
+ 0xf6, 0xf6, 0x76, 0xb8, 0xce, 0x92, 0xfe, 0xa7, 0x43, 0x35, 0xed, 0xe6,
+ 0xce, 0x8a, 0xe4, 0x34, 0x2f, 0x96, 0x9f, 0x3c, 0x8a, 0x02, 0x5b, 0xd8,
+ 0x42, 0xdd, 0xc4, 0xc9, 0x77, 0x17, 0xaf, 0x6c, 0x1d, 0xd5, 0x44, 0x73,
+ 0xc3, 0xe1, 0x8b, 0xa8, 0x23, 0x5e, 0xd3, 0x2c, 0xc7, 0xe6, 0x61, 0xfa,
+ 0xd3, 0xa3, 0xc3, 0xf3, 0xf7, 0x6f, 0x8f, 0x2f, 0xdf, 0x5f, 0x1c, 0x7e,
+ 0x4f, 0x53, 0xc8, 0x58, 0x0c, 0x73, 0x5f, 0x91, 0x8f, 0xaa, 0x2a, 0x4b,
+ 0x23, 0x61, 0xdf, 0x94, 0xa8, 0x65, 0x0c, 0x7e, 0x80, 0x58, 0x05, 0x0a,
+ 0xcb, 0x7a, 0xc2, 0xfd, 0xa4, 0xce, 0x1c, 0x78, 0x7b, 0x90, 0xe6, 0xeb,
+ 0x83, 0xb1, 0x1c, 0xb2, 0xd9, 0xb0, 0xac, 0xae, 0x69, 0x17, 0xee, 0xbc,
+ 0x14, 0xf9, 0x19, 0x6d, 0x6e, 0x47, 0x82, 0x6f, 0xc4, 0xa2, 0xf3, 0xb1,
+ 0xba, 0xa2, 0x94, 0xfb, 0x75, 0x35, 0xca, 0xfd, 0x12, 0x57, 0xde, 0xd6,
+ 0x7c, 0x0c, 0x01, 0xb8, 0xf8, 0xf8, 0x78, 0x9d, 0x31, 0xd0, 0xb4, 0x14,
+ 0x28, 0xad, 0x2e, 0x84, 0xca, 0x42, 0xf4, 0x03, 0x3f, 0xa6, 0x9a, 0x71,
+ 0x8c, 0xa4, 0x1f, 0x49, 0xda, 0x05, 0x37, 0x74, 0x69, 0x53, 0xa0, 0x91,
+ 0x94, 0x41, 0xb1, 0xe0, 0xd5, 0x52, 0xdb, 0x53, 0x83, 0xba, 0x46, 0xc7,
+ 0x6a, 0x63, 0xe5, 0x69, 0xa8, 0x4b, 0x52, 0xd5, 0x2e, 0x6f, 0xcc, 0x4f,
+ 0x65, 0xcc, 0x4f, 0xff, 0xb9, 0x31, 0x3f, 0xfd, 0xf5, 0x63, 0x7e, 0xfc,
+ 0x1b, 0x8f, 0xf9, 0x71, 0x74, 0xcc, 0xde, 0x57, 0x06, 0x7f, 0xa3, 0x31,
+ 0xff, 0x6d, 0x59, 0x7c, 0x18, 0x98, 0xee, 0xd2, 0x2d, 0x2c, 0x35, 0x7c,
+ 0xea, 0xb8, 0xca, 0xdc, 0x2a, 0x1b, 0x41, 0x8e, 0x26, 0x8f, 0x28, 0xd3,
+ 0x2b, 0x49, 0x94, 0x4a, 0x9a, 0x21, 0x47, 0x9c, 0x56, 0x96, 0x56, 0xf6,
+ 0x9c, 0x91, 0x39, 0xe5, 0xa8, 0xd5, 0x13, 0xb2, 0x6c, 0x80, 0x93, 0xea,
+ 0x49, 0x77, 0x12, 0x6d, 0xb8, 0x67, 0x07, 0x1a, 0x63, 0x77, 0xa4, 0xea,
+ 0xd6, 0x4c, 0xf7, 0xcd, 0x45, 0x7e, 0x6d, 0x64, 0xc6, 0x15, 0xf7, 0xa5,
+ 0xca, 0xef, 0xe0, 0x31, 0xd1, 0x96, 0x73, 0xe1, 0x03, 0x0a, 0x65, 0xc6,
+ 0xe5, 0xdd, 0x82, 0x9a, 0x4b, 0xc6, 0x95, 0xb9, 0x80, 0x01, 0x08, 0xe1,
+ 0x9a, 0xd3, 0xda, 0xc3, 0xa4, 0xdb, 0x39, 0xeb, 0x7a, 0xbb, 0xc9, 0xee,
+ 0x36, 0x03, 0x85, 0x61, 0x32, 0x2b, 0x49, 0xe2, 0x90, 0x5e, 0xb7, 0x46,
+ 0x13, 0x19, 0xbb, 0x02, 0x4a, 0x7c, 0x5f, 0x74, 0x2a, 0x2a, 0xf9, 0xf7,
+ 0xc6, 0x87, 0x2c, 0x5b, 0xa4, 0x33, 0xa4, 0x83, 0x53, 0x34, 0x6e, 0x55,
+ 0xd9, 0x97, 0xf6, 0xc6, 0xa8, 0xb3, 0x46, 0x2f, 0x5d, 0xbc, 0xd5, 0x46,
+ 0x49, 0x40, 0xd8, 0xf1, 0x6a, 0x12, 0xb2, 0x3b, 0xc9, 0xa7, 0x01, 0x83,
+ 0x86, 0xe8, 0xa7, 0x1a, 0x90, 0xb3, 0x9d, 0x20, 0xd5, 0x64, 0x2c, 0xd4,
+ 0x05, 0x40, 0xe2, 0x51, 0xeb, 0xca, 0x84, 0x84, 0xe0, 0xf1, 0xc7, 0x9c,
+ 0x90, 0x23, 0x9d, 0xe6, 0xba, 0xef, 0x83, 0x16, 0xa5, 0xc5, 0x00, 0x6e,
+ 0x19, 0x3b, 0x29, 0x38, 0x23, 0x17, 0x20, 0xb9, 0xa1, 0x50, 0x84, 0x2e,
+ 0xd8, 0x52, 0xca, 0x00, 0xca, 0x43, 0xbc, 0x3c, 0x3a, 0x7f, 0xff, 0xed,
+ 0xf1, 0xf1, 0xf9, 0xc9, 0xcb, 0xd3, 0x63, 0x39, 0x31, 0xf6, 0x47, 0x6f,
+ 0x2f, 0xbf, 0x3b, 0xd5, 0xaa, 0x47, 0x3a, 0x3f, 0xc1, 0x86, 0x17, 0xfa,
+ 0x6a, 0x11, 0xcb, 0x7d, 0x54, 0x77, 0x29, 0x9a, 0xe4, 0xf0, 0xe4, 0x07,
+ 0xa3, 0xb6, 0x9e, 0x0f, 0xde, 0xfd, 0x10, 0xd0, 0xea, 0xb7, 0xd0, 0xd0,
+ 0xf1, 0x22, 0xd3, 0x66, 0x13, 0xc2, 0x76, 0x74, 0x63, 0x5f, 0x85, 0x0c,
+ 0xf9, 0x8d, 0xaf, 0x41, 0xd3, 0xdc, 0xb2, 0xb0, 0x1a, 0x03, 0xbf, 0xa8,
+ 0x95, 0x2b, 0x3c, 0xf4, 0xc5, 0xd3, 0x5d, 0x2d, 0x0a, 0xb4, 0xd6, 0x87,
+ 0xf6, 0x79, 0xdb, 0x66, 0xfc, 0x90, 0xdd, 0x81, 0x86, 0x2c, 0x79, 0x4e,
+ 0xff, 0x5d, 0x51, 0xb4, 0xe9, 0xbc, 0xca, 0x3f, 0x92, 0x02, 0x68, 0x1e,
+ 0xe6, 0x28, 0x03, 0x3d, 0x3b, 0xb4, 0x35, 0xac, 0x24, 0xd0, 0x41, 0xad,
+ 0x20, 0x14, 0x8a, 0x56, 0x69, 0x67, 0x04, 0xc1, 0x32, 0x62, 0x73, 0x20,
+ 0x7f, 0x8c, 0x6d, 0x2d, 0x37, 0x5b, 0xe7, 0xe5, 0xf1, 0x45, 0x3f, 0x39,
+ 0x3f, 0x7e, 0xc3, 0x70, 0xea, 0xe3, 0xb7, 0xdf, 0x08, 0xef, 0x95, 0x96,
+ 0x6a, 0x1a, 0x32, 0xc8, 0x30, 0xc4, 0x14, 0x79, 0x73, 0x62, 0x5e, 0x07,
+ 0x80, 0xaa, 0xae, 0xcd, 0xed, 0xfa, 0x3b, 0x92, 0x3e, 0xf0, 0xd0, 0x9e,
+ 0x9b, 0xff, 0xc4, 0xa6, 0xca, 0xd8, 0x11, 0xaf, 0xb7, 0xc3, 0xd9, 0x12,
+ 0xb5, 0xcc, 0x46, 0x73, 0xc5, 0x24, 0xa0, 0xd9, 0xe0, 0x09, 0x33, 0x33,
+ 0x12, 0xc6, 0x15, 0x75, 0x86, 0x0a, 0xe1, 0x76, 0x92, 0xe2, 0x8b, 0x12,
+ 0x14, 0x22, 0x23, 0xd6, 0x7c, 0xad, 0x4f, 0xdb, 0x12, 0x84, 0xba, 0x6e,
+ 0x2e, 0xa2, 0x19, 0x7d, 0x55, 0x2e, 0xf9, 0x2e, 0xce, 0x1d, 0x6f, 0x54,
+ 0xaa, 0x69, 0x3e, 0x45, 0xca, 0xb0, 0xf9, 0x48, 0x59, 0x4d, 0x23, 0x0c,
+ 0xaa, 0x34, 0xf1, 0x7a, 0x67, 0xb0, 0xbf, 0x43, 0x71, 0x42, 0x5a, 0xbd,
+ 0x6b, 0x96, 0x8f, 0x2b, 0xa3, 0x72, 0x39, 0xda, 0x79, 0x29, 0xc6, 0xb5,
+ 0xf8, 0x30, 0xa9, 0xf7, 0xf6, 0x22, 0xd5, 0xb3, 0x35, 0x7d, 0xa6, 0xaf,
+ 0x78, 0xaf, 0xf3, 0x6f, 0x8f, 0x46, 0x7f, 0xdc, 0xdb, 0x03, 0xbc, 0x6e,
+ 0x8b, 0x60, 0x50, 0x9f, 0x3d, 0xd9, 0xdb, 0xdf, 0x8e, 0x69, 0x7c, 0x41,
+ 0x68, 0x98, 0x0a, 0xa8, 0xa5, 0x49, 0x6b, 0x47, 0x21, 0x44, 0x22, 0x70,
+ 0x5a, 0xdb, 0xf4, 0x34, 0x23, 0x9c, 0x89, 0x59, 0x03, 0x75, 0x87, 0x03,
+ 0x93, 0x13, 0x44, 0xef, 0x2c, 0xd9, 0x46, 0x8f, 0x7b, 0x7f, 0xd0, 0xb3,
+ 0xdb, 0xc0, 0xc7, 0x26, 0x22, 0x84, 0xe9, 0xf5, 0x5a, 0x36, 0x68, 0x37,
+ 0x06, 0xe0, 0x8f, 0x0b, 0x60, 0x19, 0xc7, 0x66, 0x92, 0xb1, 0x3b, 0xcf,
+ 0x56, 0x2e, 0xf3, 0xef, 0x54, 0x14, 0xda, 0x6c, 0x42, 0x48, 0x82, 0xf4,
+ 0xa9, 0xc7, 0x2b, 0x4e, 0x3b, 0x34, 0x75, 0x8d, 0xda, 0xd9, 0xf7, 0x4e,
+ 0xb4, 0xdf, 0x68, 0x08, 0x10, 0xe3, 0x6f, 0x24, 0x3d, 0x73, 0xde, 0xe2,
+ 0x4d, 0xfe, 0xae, 0x87, 0xa8, 0x1a, 0x27, 0xcf, 0x67, 0xe6, 0xc5, 0xd9,
+ 0x8a, 0xa4, 0x8e, 0x63, 0xae, 0xf4, 0xf2, 0xad, 0xb1, 0xee, 0xb3, 0xaa,
+ 0xac, 0xbb, 0x65, 0x3f, 0xa4, 0x90, 0x37, 0x23, 0xfc, 0xd0, 0x8e, 0x86,
+ 0xdc, 0x03, 0xe6, 0xa8, 0x06, 0xe6, 0xb2, 0x30, 0x0b, 0xb7, 0xc9, 0x1f,
+ 0x36, 0x81, 0x82, 0xdf, 0xec, 0x27, 0x9b, 0x54, 0xda, 0x84, 0xfe, 0x44,
+ 0x5d, 0x6f, 0xaa, 0x42, 0x90, 0xa7, 0xb3, 0x4d, 0x2a, 0x37, 0xd1, 0xe5,
+ 0xaf, 0x95, 0x9d, 0xb6, 0x39, 0xa4, 0xd4, 0x06, 0x06, 0x58, 0xd3, 0x81,
+ 0xe6, 0x9c, 0xbe, 0x34, 0x91, 0xbe, 0x28, 0x6e, 0x90, 0x0e, 0xa6, 0x23,
+ 0x9a, 0xa8, 0x83, 0x12, 0x1c, 0xb6, 0xb9, 0x36, 0x3f, 0xc7, 0x2a, 0xe4,
+ 0xda, 0x6f, 0x7c, 0xaf, 0xf0, 0x32, 0xfc, 0xc2, 0x7a, 0xa9, 0x5e, 0x91,
+ 0xdb, 0x4e, 0x73, 0xba, 0x56, 0xfe, 0x3a, 0xeb, 0xfb, 0xd1, 0x4a, 0x88,
+ 0x87, 0x92, 0x82, 0xd8, 0x8e, 0xb0, 0x82, 0x0b, 0x9b, 0xc0, 0xf2, 0x53,
+ 0x36, 0xe5, 0x24, 0xb3, 0xca, 0x2f, 0xfe, 0x4e, 0x7f, 0x0b, 0x41, 0x31,
+ 0x18, 0x2a, 0x88, 0xeb, 0xb5, 0xdb, 0x03, 0x36, 0xb7, 0x8f, 0x12, 0x71,
+ 0x1f, 0x00, 0x71, 0x7f, 0x5b, 0x11, 0x3f, 0x5f, 0xe1, 0x78, 0x3e, 0x67,
+ 0xd9, 0x4a, 0xa6, 0x16, 0xe5, 0xf0, 0x33, 0x8b, 0x34, 0x93, 0xb2, 0x5a,
+ 0x0a, 0x68, 0xa9, 0xb4, 0x4f, 0x03, 0x09, 0x07, 0xaa, 0x89, 0x4f, 0xef,
+ 0xfd, 0xe1, 0xde, 0xbc, 0xfd, 0xfb, 0xd6, 0xce, 0xe9, 0xe0, 0xb1, 0x5c,
+ 0xdc, 0x07, 0x13, 0x12, 0x75, 0x12, 0x48, 0x80, 0x44, 0x1d, 0xe0, 0x16,
+ 0x79, 0x6e, 0xe4, 0x69, 0x16, 0x30, 0xb2, 0x8c, 0x5a, 0x49, 0xbc, 0x52,
+ 0x71, 0x50, 0x93, 0x33, 0xf0, 0x9e, 0x2d, 0x87, 0xea, 0x6a, 0x47, 0x63,
+ 0xef, 0x0f, 0xe0, 0xbe, 0xea, 0x6a, 0x9d, 0xc4, 0x93, 0xef, 0x52, 0x00,
+ 0x71, 0x6a, 0xc1, 0x38, 0xa5, 0x4c, 0x1a, 0x0a, 0xb4, 0xe3, 0xe9, 0x20,
+ 0xdf, 0xb1, 0x40, 0xb8, 0x60, 0x0a, 0x04, 0x54, 0xd7, 0x0c, 0xa4, 0x05,
+ 0xe5, 0xbc, 0x6e, 0x82, 0xcd, 0x29, 0xfb, 0x31, 0xb1, 0x24, 0xb6, 0xab,
+ 0x74, 0xf0, 0x24, 0x2e, 0xc0, 0xe0, 0x2c, 0x73, 0xa2, 0x03, 0xdd, 0x7e,
+ 0x6c, 0x9a, 0xb8, 0xcd, 0xa7, 0xcd, 0x0d, 0x8a, 0x41, 0xa8, 0x29, 0x53,
+ 0x4b, 0xe2, 0x29, 0xf9, 0x95, 0xf3, 0x30, 0x9f, 0x62, 0x1c, 0xf7, 0xb8,
+ 0xc9, 0x82, 0x61, 0x52, 0x13, 0x66, 0x61, 0x21, 0xdf, 0x1a, 0xd6, 0x01,
+ 0x5e, 0xe8, 0x1d, 0xd6, 0xcd, 0x2c, 0xff, 0x40, 0x6a, 0x4e, 0xd1, 0x15,
+ 0xd5, 0x79, 0x08, 0xec, 0x2b, 0x4d, 0x7b, 0x18, 0xea, 0x09, 0xa1, 0x3d,
+ 0xbc, 0xf9, 0x81, 0x89, 0x98, 0xbf, 0xdd, 0xd4, 0xa2, 0x86, 0xc4, 0xad,
+ 0xe5, 0x21, 0xb3, 0x49, 0x96, 0x27, 0x1f, 0xf2, 0x59, 0x19, 0xf5, 0x81,
+ 0x1b, 0xa5, 0x60, 0x73, 0xce, 0x2d, 0xbc, 0xd9, 0x54, 0xcf, 0x26, 0xe5,
+ 0xe4, 0x5e, 0xa7, 0xf2, 0x7b, 0xce, 0xc8, 0xdf, 0xbc, 0xe6, 0x87, 0xbe,
+ 0x71, 0x0f, 0x75, 0x9a, 0x23, 0x37, 0x3b, 0xbb, 0xd5, 0x15, 0x8f, 0x51,
+ 0x1f, 0x10, 0xf0, 0xf7, 0xdb, 0x7e, 0xf2, 0x68, 0x8e, 0x45, 0xd9, 0xfb,
+ 0x26, 0x26, 0xb8, 0xb8, 0x44, 0x65, 0x5d, 0xda, 0x54, 0xcc, 0xc1, 0x5f,
+ 0xc9, 0x46, 0xc2, 0x84, 0xf1, 0xbe, 0xb4, 0x19, 0x06, 0x8c, 0x73, 0xf6,
+ 0x11, 0x17, 0x5d, 0x65, 0x86, 0x96, 0x6a, 0x41, 0x4a, 0xfd, 0x34, 0x53,
+ 0x66, 0xda, 0x39, 0x7c, 0x91, 0x14, 0x6d, 0x5f, 0x48, 0xce, 0x35, 0x6d,
+ 0xd7, 0x81, 0xe5, 0xba, 0xab, 0x67, 0xf4, 0x00, 0xea, 0xb3, 0x94, 0x01,
+ 0x38, 0x6f, 0xb6, 0x80, 0x45, 0x63, 0x4b, 0x28, 0x79, 0x9d, 0xa2, 0x7c,
+ 0xa9, 0x49, 0x22, 0x4e, 0x99, 0xdf, 0xf1, 0x4a, 0x9c, 0xf5, 0x71, 0x3e,
+ 0xeb, 0x66, 0x40, 0x7e, 0x87, 0x58, 0xd0, 0xe6, 0xfc, 0xec, 0xfc, 0xd1,
+ 0xb6, 0xcf, 0xbc, 0x26, 0x89, 0xb7, 0x5c, 0x6e, 0x0c, 0x98, 0x01, 0x9b,
+ 0x94, 0xdb, 0x57, 0x71, 0xc3, 0xe9, 0x1f, 0xa1, 0x9f, 0x79, 0x22, 0xb4,
+ 0x44, 0x24, 0x5c, 0xf0, 0x45, 0xf8, 0xe8, 0x1d, 0x00, 0xd9, 0xab, 0xc2,
+ 0xe5, 0x0e, 0xa6, 0x72, 0x70, 0x6d, 0x84, 0xdc, 0x05, 0xb0, 0x40, 0x24,
+ 0xed, 0x7f, 0x80, 0xa4, 0x92, 0x36, 0x8b, 0x3d, 0x91, 0xd4, 0x06, 0xbd,
+ 0x4c, 0xda, 0xc9, 0xd6, 0x1e, 0x24, 0x40, 0xb2, 0x37, 0xdc, 0x93, 0x88,
+ 0x20, 0x68, 0x92, 0x0d, 0x28, 0x2c, 0x5c, 0x38, 0x95, 0xdc, 0x9b, 0xb4,
+ 0x6b, 0x99, 0xc5, 0x73, 0xb8, 0xb2, 0x0c, 0xb1, 0xe5, 0x52, 0x6f, 0x99,
+ 0x50, 0x52, 0x2e, 0x27, 0x4d, 0xde, 0x9e, 0x8e, 0x2e, 0xfd, 0xa0, 0x0f,
+ 0xf4, 0xb0, 0x00, 0x0d, 0xd7, 0x66, 0x0f, 0xf2, 0xd0, 0x03, 0xa7, 0x27,
+ 0xa3, 0xcb, 0x61, 0x8c, 0x25, 0xfc, 0xc0, 0x88, 0x55, 0x60, 0xb8, 0xfd,
+ 0x24, 0x6c, 0x5b, 0xbe, 0x9d, 0xa6, 0x9e, 0x23, 0x5a, 0x1c, 0xe2, 0xcd,
+ 0x2b, 0x3f, 0xe1, 0xb8, 0xdb, 0x9c, 0xe9, 0xe2, 0x17, 0x8c, 0x74, 0x13,
+ 0x94, 0x9c, 0x86, 0x74, 0xea, 0xe5, 0x78, 0xe0, 0xd1, 0x75, 0xb1, 0xbe,
+ 0x83, 0xda, 0x30, 0x66, 0xf7, 0x9a, 0x1b, 0xea, 0x43, 0x68, 0x14, 0x6e,
+ 0xf1, 0x86, 0xc2, 0xfc, 0x08, 0xcd, 0x5a, 0xcb, 0x39, 0x3d, 0x49, 0x32,
+ 0x50, 0x3b, 0xc2, 0x2b, 0x44, 0xcf, 0x3e, 0x78, 0x53, 0xd1, 0x54, 0x74,
+ 0x66, 0x52, 0xca, 0x89, 0xb5, 0x61, 0xaf, 0x14, 0x66, 0xb3, 0x5b, 0x6e,
+ 0x5d, 0x60, 0x31, 0xdc, 0x82, 0x6e, 0xd3, 0xd5, 0x59, 0xc6, 0xfe, 0x21,
+ 0xdb, 0xed, 0x95, 0x6c, 0x93, 0xf9, 0x94, 0xc9, 0xd6, 0xea, 0x36, 0xdb,
+ 0x1a, 0xa7, 0xd3, 0x92, 0xd0, 0xe1, 0xb2, 0x13, 0xa4, 0xba, 0xad, 0x5a,
+ 0x49, 0x76, 0xa2, 0xb5, 0xf0, 0x4d, 0x83, 0x1f, 0x18, 0x34, 0x87, 0xc8,
+ 0x56, 0x7f, 0x15, 0x0d, 0x50, 0xb8, 0x8d, 0xb4, 0x04, 0xc8, 0xbb, 0x93,
+ 0x97, 0xa7, 0x76, 0xb6, 0x64, 0x76, 0x80, 0xc1, 0xb2, 0x63, 0x25, 0x5c,
+ 0xb4, 0x8a, 0x4d, 0xac, 0xc9, 0x66, 0x58, 0xd3, 0x24, 0xff, 0x3b, 0xd0,
+ 0x14, 0xd0, 0x5d, 0xaf, 0x00, 0x05, 0xae, 0x52, 0x76, 0x75, 0x73, 0x84,
+ 0x34, 0x07, 0x43, 0x8b, 0x16, 0x51, 0xa2, 0xa9, 0xe0, 0x13, 0xfb, 0x21,
+ 0x86, 0x72, 0x5f, 0x95, 0x59, 0xe7, 0xe7, 0xe5, 0xef, 0xb5, 0x59, 0xf4,
+ 0x40, 0xa8, 0x29, 0x9c, 0x37, 0xe6, 0x4a, 0xda, 0x41, 0x62, 0x4c, 0xa0,
+ 0x5e, 0x40, 0x3b, 0x73, 0x10, 0x1a, 0xe1, 0x70, 0x50, 0x9c, 0x77, 0x25,
+ 0xe9, 0x34, 0x5b, 0xaf, 0x2e, 0xce, 0xde, 0x0c, 0x2e, 0xcf, 0x50, 0x6b,
+ 0x59, 0x0a, 0x5c, 0x24, 0x11, 0x8d, 0x93, 0xdf, 0xab, 0xfd, 0x92, 0xd1,
+ 0x6d, 0x04, 0xd2, 0x56, 0xbd, 0xad, 0x15, 0x9d, 0x71, 0xa9, 0xa0, 0x7b,
+ 0xfa, 0x56, 0x40, 0x9a, 0x5f, 0xb0, 0x2e, 0x92, 0xa2, 0x3a, 0x1f, 0x79,
+ 0x0b, 0x27, 0x5e, 0xe8, 0x09, 0xef, 0xab, 0xec, 0x1e, 0x2f, 0xeb, 0xbb,
+ 0x44, 0xb2, 0x96, 0x88, 0x1a, 0x0b, 0xd6, 0x54, 0xe8, 0xd0, 0xb7, 0x85,
+ 0x5f, 0x2d, 0x1d, 0x06, 0x25, 0x73, 0x70, 0x72, 0x40, 0x53, 0x9a, 0x03,
+ 0x9c, 0x56, 0x55, 0x79, 0xab, 0x57, 0x97, 0x64, 0x15, 0x9a, 0xae, 0xd3,
+ 0x22, 0x55, 0x77, 0x2b, 0xb9, 0x03, 0x84, 0x17, 0x47, 0x0b, 0xd7, 0xae,
+ 0x55, 0x00, 0x9f, 0xb4, 0xf3, 0xb9, 0x15, 0x3f, 0x38, 0x68, 0xaa, 0x65,
+ 0x1d, 0x56, 0xc1, 0x16, 0x4f, 0xf1, 0x29, 0x09, 0x4a, 0x42, 0x1c, 0xba,
+ 0x17, 0xfa, 0x42, 0xdc, 0x45, 0xf4, 0x0e, 0x28, 0x30, 0x64, 0xa1, 0xfd,
+ 0xf0, 0xd8, 0x31, 0xee, 0xf5, 0x2f, 0xc1, 0x19, 0x16, 0x46, 0x4f, 0xd2,
+ 0xe9, 0x67, 0x33, 0x87, 0x3a, 0x14, 0xc0, 0x4d, 0xde, 0x70, 0xe9, 0x37,
+ 0xc5, 0x05, 0x82, 0xb3, 0x07, 0xe2, 0x80, 0x7e, 0x1a, 0x68, 0x93, 0xca,
+ 0xc1, 0x91, 0x53, 0xf6, 0xf3, 0x74, 0x39, 0xc1, 0x32, 0x51, 0x90, 0x8e,
+ 0x2a, 0xcb, 0x8d, 0x99, 0x1e, 0x50, 0x13, 0x88, 0xa9, 0x69, 0x07, 0xb9,
+ 0x64, 0x9f, 0x4b, 0x57, 0xcf, 0x4a, 0xf8, 0x31, 0x57, 0x2b, 0x87, 0xd4,
+ 0x49, 0x2a, 0x1b, 0x94, 0xb1, 0x6a, 0x59, 0x05, 0xc5, 0x26, 0x8b, 0xab,
+ 0x52, 0x0b, 0x76, 0x86, 0x02, 0x8b, 0x88, 0x9a, 0xc1, 0x4c, 0x2b, 0x58,
+ 0x1d, 0x22, 0x50, 0xa3, 0x0d, 0x8c, 0x38, 0xf9, 0xd7, 0xe4, 0xe5, 0xee,
+ 0xb4, 0xb7, 0xbd, 0xc6, 0xa3, 0xbc, 0x54, 0x74, 0xae, 0xb7, 0x7a, 0xad,
+ 0x05, 0x89, 0xaf, 0xdc, 0x49, 0x2b, 0x7f, 0x9a, 0xd1, 0x14, 0xde, 0x8c,
+ 0xcb, 0xb9, 0x06, 0xbf, 0x17, 0x49, 0x01, 0x72, 0x77, 0x26, 0x84, 0x9f,
+ 0x8c, 0x88, 0xa7, 0xd4, 0x96, 0x12, 0x6b, 0x12, 0xfd, 0x68, 0xb2, 0xa5,
+ 0xe9, 0x44, 0x16, 0xcf, 0x7e, 0x2a, 0xbf, 0x3a, 0xb0, 0x49, 0x4f, 0x24,
+ 0xd5, 0x3a, 0xcd, 0x3d, 0xfa, 0xe1, 0x87, 0x76, 0xf1, 0xcf, 0xed, 0x55,
+ 0x89, 0xd6, 0x02, 0x6c, 0x9e, 0x96, 0x0a, 0x45, 0x44, 0x87, 0x83, 0xe4,
+ 0x0c, 0xdd, 0x76, 0x44, 0x6d, 0x0e, 0x1c, 0x28, 0xbb, 0x60, 0xc4, 0x57,
+ 0x64, 0x8c, 0xc0, 0x1b, 0x45, 0xec, 0xb7, 0x50, 0x17, 0x48, 0xc1, 0x3e,
+ 0x89, 0x00, 0x93, 0x20, 0x72, 0x15, 0x2b, 0xc1, 0x61, 0x10, 0xa0, 0x1a,
+ 0xfd, 0xe9, 0xaa, 0x5b, 0xe8, 0xdf, 0x1b, 0x8a, 0x08, 0xf0, 0x7d, 0xb0,
+ 0xbe, 0x42, 0xa9, 0x4d, 0xe7, 0x12, 0xbc, 0x24, 0x6e, 0x7c, 0xa6, 0x32,
+ 0x27, 0xec, 0xdb, 0xa4, 0xca, 0xc4, 0xdf, 0xa0, 0xa5, 0x27, 0x82, 0xc0,
+ 0x2f, 0x11, 0x42, 0xf0, 0xe1, 0x41, 0x8e, 0x42, 0xea, 0x9d, 0x17, 0x47,
+ 0xeb, 0xd5, 0x59, 0x31, 0x41, 0xf2, 0x46, 0x4a, 0xa2, 0x97, 0x60, 0x72,
+ 0x43, 0xc5, 0x0f, 0xb0, 0x13, 0x95, 0xec, 0xda, 0x92, 0xca, 0x95, 0x7c,
+ 0xe3, 0xfc, 0x45, 0x4f, 0xee, 0xd0, 0x8f, 0x37, 0xd2, 0x2e, 0x88, 0x45,
+ 0x2d, 0x55, 0x98, 0xd0, 0xba, 0x10, 0x85, 0x24, 0xa5, 0xaa, 0x6a, 0x21,
+ 0x1c, 0xf2, 0xef, 0x6a, 0x5c, 0x9b, 0x15, 0x6a, 0xe4, 0x38, 0xdb, 0xaa,
+ 0xd4, 0xc1, 0xc5, 0xa3, 0x47, 0x96, 0x50, 0x37, 0xf0, 0x54, 0x3a, 0xfa,
+ 0x23, 0x76, 0x6f, 0x19, 0xb3, 0x74, 0x80, 0xc7, 0xea, 0x55, 0x08, 0x11,
+ 0x21, 0xb8, 0x45, 0x11, 0x5c, 0xa6, 0xec, 0xf7, 0xe7, 0x4c, 0x1d, 0x65,
+ 0x36, 0xa3, 0x5e, 0xb2, 0x15, 0x84, 0xfb, 0xfd, 0x9b, 0xe3, 0xcb, 0xee,
+ 0xd1, 0xf2, 0x83, 0x7d, 0xc8, 0x5d, 0x37, 0xff, 0x3e, 0x7f, 0x77, 0xb9,
+ 0xed, 0x4a, 0x9c, 0xcb, 0x76, 0xf5, 0x91, 0xce, 0x92, 0x05, 0x15, 0x96,
+ 0xed, 0xe3, 0x7c, 0x71, 0x91, 0x53, 0x90, 0x0d, 0xf6, 0x64, 0x90, 0x97,
+ 0xe5, 0xd1, 0xee, 0x9e, 0xb1, 0xa4, 0x76, 0xf7, 0x51, 0xeb, 0xf4, 0xd1,
+ 0xee, 0x23, 0x9b, 0x62, 0xab, 0x4f, 0x05, 0xd7, 0xc2, 0x94, 0x5f, 0x84,
+ 0xd3, 0x04, 0xfb, 0xfe, 0xd1, 0xa7, 0x4f, 0xf8, 0x71, 0xbf, 0xcb, 0x2c,
+ 0xa3, 0x84, 0xc0, 0x3e, 0xbd, 0x7e, 0xfc, 0xe6, 0xf7, 0x66, 0x1c, 0xa1,
+ 0xb8, 0x65, 0xc1, 0x79, 0x64, 0xa8, 0x26, 0x4b, 0x39, 0xe9, 0xc3, 0xd5,
+ 0x55, 0x55, 0xbc, 0x12, 0x51, 0xc2, 0xbe, 0xe3, 0x97, 0x45, 0x32, 0xdb,
+ 0xc5, 0xe7, 0x33, 0x90, 0x0c, 0xf7, 0x40, 0x38, 0xd3, 0x33, 0xc2, 0x06,
+ 0x62, 0x66, 0xe1, 0x93, 0x9b, 0x23, 0x5b, 0xaf, 0x4f, 0x06, 0x62, 0xae,
+ 0x3a, 0x11, 0x48, 0x0e, 0x92, 0x1d, 0x3a, 0x22, 0x48, 0x02, 0x1e, 0x10,
+ 0xb6, 0xc3, 0x9c, 0x0a, 0xcc, 0xb0, 0xfe, 0x75, 0x5f, 0xf0, 0x1d, 0xfc,
+ 0xaf, 0x47, 0xed, 0xbb, 0x92, 0x5c, 0xc4, 0xda, 0xe8, 0x73, 0xf9, 0x4b,
+ 0xe0, 0xaf, 0x44, 0x91, 0x4b, 0xe8, 0xc7, 0xa8, 0x4b, 0xb0, 0xdd, 0xf2,
+ 0xa1, 0xa0, 0x0d, 0xdb, 0x31, 0xd1, 0x53, 0xa4, 0x7c, 0x30, 0x0b, 0xe9,
+ 0xb5, 0xc2, 0x63, 0xb8, 0xaa, 0xf0, 0x94, 0x6a, 0x83, 0xf2, 0x01, 0x37,
+ 0x74, 0xb8, 0xe7, 0xa4, 0x03, 0x2e, 0x25, 0xd5, 0xea, 0xc6, 0xd1, 0x50,
+ 0x6e, 0x2d, 0x20, 0x58, 0xba, 0x5f, 0xd5, 0xe1, 0x2e, 0x7d, 0xec, 0x74,
+ 0x27, 0x39, 0x6c, 0x50, 0x8c, 0x14, 0xbe, 0xb0, 0xd0, 0x4c, 0xa5, 0xa9,
+ 0xe8, 0xf3, 0x54, 0xa0, 0xc8, 0x2f, 0x95, 0x69, 0x50, 0x6c, 0x64, 0x6b,
+ 0x26, 0x38, 0x7c, 0xc1, 0x44, 0xa2, 0x82, 0xae, 0x88, 0xdc, 0x69, 0x02,
+ 0xad, 0xf0, 0xc6, 0xa9, 0xfd, 0x35, 0x27, 0x91, 0x2e, 0x57, 0x52, 0xfd,
+ 0xa5, 0x14, 0xe9, 0xe3, 0x3e, 0xfe, 0xf6, 0x64, 0xf7, 0x19, 0xaf, 0xe8,
+ 0xc9, 0xf1, 0xe5, 0xab, 0xae, 0x43, 0xaf, 0x32, 0x1b, 0x8a, 0xff, 0x3b,
+ 0xc8, 0xd2, 0xea, 0xc6, 0x18, 0x18, 0x44, 0xc4, 0x31, 0x20, 0xb2, 0xf7,
+ 0xc1, 0xee, 0x6e, 0x0c, 0x6c, 0xf1, 0x3b, 0xa6, 0x1e, 0x3f, 0x7a, 0xdc,
+ 0x8e, 0xc3, 0x91, 0x5a, 0x3f, 0xa0, 0xe9, 0x5e, 0x4d, 0x19, 0xd9, 0xde,
+ 0x5e, 0xa9, 0x6a, 0xcf, 0xf2, 0xb8, 0x68, 0x4e, 0xfa, 0x7d, 0xcb, 0x3d,
+ 0x6a, 0xf7, 0x43, 0xac, 0x08, 0x42, 0xf7, 0xae, 0x52, 0x40, 0x91, 0xb9,
+ 0xe8, 0x71, 0x2b, 0x35, 0x77, 0xdb, 0x09, 0xd7, 0x2f, 0xe3, 0x32, 0x43,
+ 0x8d, 0x2b, 0x27, 0x1d, 0xcd, 0xbf, 0xac, 0x25, 0xf7, 0xa4, 0xca, 0x88,
+ 0xd0, 0x87, 0x15, 0x3f, 0x29, 0xd7, 0x72, 0x3f, 0x29, 0x11, 0xa6, 0xa0,
+ 0x9a, 0x2c, 0x24, 0x17, 0x89, 0xff, 0x4d, 0x97, 0x71, 0x0b, 0xf4, 0xba,
+ 0xff, 0x24, 0x32, 0x71, 0xb8, 0xb2, 0x7f, 0xe5, 0xc4, 0x39, 0xf5, 0x88,
+ 0x7d, 0x78, 0x5c, 0x21, 0x46, 0xe9, 0x22, 0x43, 0xb2, 0x98, 0x5a, 0x6b,
+ 0x8a, 0xfe, 0xe2, 0xb1, 0xd0, 0x6c, 0x0f, 0xd7, 0x91, 0x9b, 0xb9, 0xb7,
+ 0x7e, 0xe5, 0x58, 0xfa, 0x8e, 0x62, 0x9f, 0xee, 0x8f, 0xb9, 0x14, 0x14,
+ 0x82, 0xaf, 0x01, 0x51, 0xc8, 0x2e, 0xe9, 0x40, 0xb6, 0xc8, 0x30, 0x78,
+ 0x8f, 0x30, 0xc4, 0xdf, 0xdc, 0xd6, 0x4e, 0x25, 0x5b, 0x51, 0x93, 0x6a,
+ 0xcc, 0x35, 0x9a, 0x2f, 0x28, 0x8f, 0xbc, 0x8e, 0xfa, 0x5a, 0x5a, 0x95,
+ 0xc3, 0x31, 0x99, 0xea, 0x96, 0xed, 0xcb, 0x45, 0x26, 0xaf, 0xeb, 0x1c,
+ 0x5b, 0x79, 0x95, 0x86, 0xb9, 0x95, 0x64, 0xb2, 0xa3, 0x0d, 0xbb, 0x58,
+ 0xa5, 0x4b, 0xd0, 0xe4, 0xc6, 0xcb, 0x15, 0x0a, 0x80, 0xd7, 0x8f, 0x24,
+ 0xf5, 0xf7, 0x36, 0xe3, 0x14, 0x75, 0xcb, 0x6f, 0x7d, 0x77, 0xf1, 0xea,
+ 0xaf, 0x6a, 0x7f, 0x43, 0x2f, 0x0d, 0xad, 0xe1, 0x4e, 0x87, 0xc7, 0x99,
+ 0x07, 0xe0, 0x93, 0x5c, 0xe2, 0xd6, 0xbc, 0xbb, 0x7f, 0x44, 0xb0, 0xde,
+ 0xcc, 0x99, 0x99, 0x6c, 0x51, 0xa8, 0xcd, 0x3c, 0x36, 0x12, 0xa3, 0xee,
+ 0xd1, 0xf0, 0x09, 0x7c, 0x22, 0xaf, 0x8e, 0x9e, 0x3c, 0xda, 0xdf, 0x33,
+ 0x76, 0xeb, 0x56, 0x47, 0x5a, 0x6c, 0x6f, 0x3c, 0x68, 0xb6, 0xed, 0x7a,
+ 0x67, 0x9f, 0x16, 0xb4, 0xf7, 0xb6, 0x8e, 0x7f, 0x38, 0x7f, 0xdb, 0x1e,
+ 0x1f, 0x8f, 0x28, 0x08, 0xa6, 0xae, 0x1a, 0xa1, 0xd3, 0x05, 0x5a, 0xed,
+ 0x2b, 0x0e, 0x11, 0xa5, 0x52, 0x23, 0xe1, 0xca, 0x57, 0x55, 0x4e, 0x5a,
+ 0x6e, 0x8f, 0x26, 0xa4, 0x77, 0x5a, 0x16, 0x53, 0x73, 0xf5, 0x9f, 0x11,
+ 0x01, 0x54, 0x46, 0x78, 0xa0, 0x7b, 0x47, 0xb7, 0xfa, 0x98, 0xbc, 0xe9,
+ 0xe3, 0xa8, 0x14, 0x21, 0x2c, 0xe5, 0x0d, 0x7e, 0x08, 0xea, 0x4d, 0x4a,
+ 0x91, 0xe7, 0xdc, 0xa3, 0xa5, 0xe4, 0x75, 0xa1, 0x14, 0x49, 0xfb, 0xb4,
+ 0x7d, 0x42, 0xe5, 0x0b, 0x78, 0x7d, 0x9e, 0xc3, 0xa9, 0xbd, 0x2a, 0x1e,
+ 0xc2, 0xd2, 0x52, 0x23, 0x22, 0xec, 0x27, 0xda, 0x52, 0xd7, 0xfe, 0xb6,
+ 0x57, 0x4e, 0x18, 0xd4, 0x70, 0x1c, 0xef, 0x20, 0xcd, 0x2d, 0x22, 0x73,
+ 0xf1, 0x98, 0xb3, 0x2c, 0x72, 0x0b, 0x65, 0x97, 0x6c, 0x3c, 0x42, 0xea,
+ 0x52, 0x4e, 0x71, 0xbf, 0xcd, 0x8c, 0x15, 0xf3, 0x83, 0x23, 0xee, 0x8f,
+ 0x3a, 0x4f, 0x69, 0x31, 0x6d, 0x65, 0x63, 0x51, 0x4e, 0x2c, 0xdb, 0x3f,
+ 0xd9, 0x27, 0x14, 0xef, 0x33, 0x4a, 0xe2, 0xd3, 0x47, 0xe1, 0x7d, 0xa4,
+ 0x95, 0x83, 0x45, 0xbb, 0xab, 0x7c, 0x1d, 0x80, 0x2f, 0x69, 0x51, 0x7c,
+ 0xfb, 0xd1, 0x58, 0x44, 0x2c, 0x2c, 0xc5, 0x91, 0x09, 0xb1, 0xcf, 0x3a,
+ 0xb1, 0x09, 0x3f, 0x16, 0x81, 0x2a, 0xc1, 0x14, 0x8d, 0x90, 0x48, 0x43,
+ 0x68, 0xaa, 0x78, 0xd1, 0x89, 0xd5, 0xe1, 0x89, 0x35, 0x01, 0x89, 0xae,
+ 0x11, 0x6a, 0xc3, 0x13, 0xad, 0xcd, 0xf7, 0xe4, 0xf3, 0xc8, 0xe6, 0x7b,
+ 0x7b, 0x76, 0x79, 0x7c, 0x20, 0xf4, 0x31, 0x4a, 0xa9, 0xa0, 0x86, 0x02,
+ 0xe3, 0xc9, 0xb8, 0x86, 0x30, 0xa7, 0x16, 0xd1, 0x25, 0xab, 0xab, 0xde,
+ 0x8f, 0x1d, 0x79, 0x00, 0xbb, 0xe9, 0x98, 0xb0, 0xa7, 0xb7, 0x59, 0xc9,
+ 0xbf, 0x88, 0x84, 0x51, 0xb1, 0x0d, 0x78, 0x3f, 0xd1, 0xfa, 0x87, 0x09,
+ 0xf6, 0xc8, 0xc2, 0x46, 0x62, 0x33, 0xdf, 0xb7, 0xc1, 0x16, 0xe2, 0xab,
+ 0x8c, 0x4d, 0x2e, 0x8b, 0xbe, 0x9b, 0x50, 0x1d, 0xbf, 0xb0, 0xf8, 0x1c,
+ 0xa2, 0x74, 0xaf, 0xa4, 0x84, 0x31, 0x2c, 0x12, 0x4b, 0xe2, 0xb6, 0xee,
+ 0x8a, 0x73, 0xc1, 0xc4, 0xee, 0xa1, 0x12, 0xf3, 0x8c, 0xfc, 0x80, 0x5f,
+ 0xae, 0xa4, 0x50, 0x69, 0xbc, 0xf3, 0xa4, 0xfb, 0xc4, 0x9c, 0x23, 0xb5,
+ 0xd3, 0xc8, 0xae, 0xb4, 0x46, 0x8a, 0x50, 0x21, 0x84, 0x21, 0x6c, 0x88,
+ 0xc0, 0xb6, 0x63, 0xc4, 0x95, 0xda, 0x56, 0x75, 0x0d, 0x68, 0x1b, 0x9a,
+ 0x59, 0x0d, 0x5a, 0x72, 0x21, 0xdd, 0x38, 0xcf, 0x1f, 0xae, 0x0b, 0xaf,
+ 0x13, 0x75, 0xd2, 0x23, 0x24, 0xc9, 0xb8, 0x5e, 0x56, 0xd3, 0xe5, 0xdc,
+ 0x48, 0x2e, 0x3f, 0x79, 0x00, 0x9a, 0x1f, 0xac, 0x5a, 0x00, 0x74, 0x22,
+ 0xb1, 0x82, 0x27, 0xbb, 0xad, 0xc6, 0x86, 0x18, 0xb8, 0xbf, 0xfe, 0xe6,
+ 0x99, 0xc1, 0x9e, 0x75, 0xc5, 0xe6, 0x48, 0x93, 0x14, 0xbe, 0xa0, 0xdf,
+ 0x2f, 0xd8, 0x34, 0xef, 0xcb, 0x4a, 0xad, 0x85, 0x20, 0xbe, 0xd1, 0x00,
+ 0x30, 0x3d, 0x94, 0x17, 0x8a, 0x2e, 0x63, 0x7d, 0x89, 0xe3, 0x79, 0x4a,
+ 0x8c, 0x68, 0xce, 0x67, 0x49, 0x71, 0x74, 0x17, 0x06, 0x8f, 0xd4, 0x69,
+ 0xa6, 0x94, 0xb5, 0xc4, 0x11, 0xa9, 0x89, 0x53, 0x9f, 0xce, 0x86, 0x2c,
+ 0x0f, 0xcd, 0x3d, 0xfc, 0x6e, 0x63, 0xca, 0x04, 0x4d, 0xfe, 0x56, 0x8e,
+ 0xc5, 0x19, 0x43, 0xf6, 0x63, 0x8c, 0x16, 0xe2, 0x0a, 0xc0, 0xf7, 0xa5,
+ 0xd9, 0x6b, 0xd3, 0x25, 0xfb, 0x57, 0xa9, 0x43, 0x02, 0xa2, 0xe6, 0xc2,
+ 0xa3, 0x14, 0xfa, 0x48, 0xae, 0xc1, 0xd4, 0xc6, 0x28, 0x4e, 0x65, 0x44,
+ 0x0e, 0x53, 0x1b, 0xf7, 0xbb, 0xc9, 0xff, 0xe9, 0x84, 0xbc, 0x22, 0xa6,
+ 0x71, 0x49, 0xb2, 0x65, 0x4a, 0x27, 0x87, 0x36, 0x4f, 0x27, 0xcd, 0x52,
+ 0x26, 0xbe, 0xdb, 0xbb, 0x52, 0xbd, 0xa5, 0xe6, 0x5d, 0x90, 0x0d, 0x03,
+ 0x8f, 0x34, 0x31, 0xfb, 0x2f, 0x9d, 0xdc, 0xa9, 0xce, 0xe0, 0xae, 0x58,
+ 0xa1, 0x0c, 0x73, 0xd4, 0xc4, 0xc1, 0x60, 0x6d, 0x27, 0x28, 0xee, 0x99,
+ 0xd7, 0x2b, 0x8a, 0x03, 0xfc, 0xa6, 0xd6, 0x8a, 0x5f, 0xe2, 0x85, 0x9d,
+ 0xcf, 0x4a, 0x6d, 0xd6, 0x3a, 0xf0, 0x59, 0x93, 0xd2, 0x2c, 0xdf, 0x9f,
+ 0xd1, 0xdd, 0xf8, 0xac, 0xbc, 0x1c, 0x23, 0x04, 0x7f, 0x3b, 0x25, 0xc7,
+ 0x20, 0x22, 0xae, 0xf5, 0x4d, 0x4e, 0x42, 0x6d, 0xe2, 0x8d, 0x7c, 0x45,
+ 0xaa, 0xd0, 0x43, 0x64, 0x69, 0xee, 0x11, 0x5b, 0x9b, 0x8f, 0x19, 0x3b,
+ 0x96, 0x3c, 0xf9, 0xfc, 0xc9, 0xe3, 0xed, 0xa4, 0x03, 0x21, 0xdc, 0x8e,
+ 0x15, 0x9c, 0xc2, 0x89, 0x13, 0x0a, 0x6f, 0x68, 0x37, 0x39, 0xd5, 0x65,
+ 0xe3, 0xcc, 0x6f, 0x71, 0x70, 0xe6, 0x5c, 0xa3, 0x85, 0x5c, 0xed, 0xa8,
+ 0x76, 0xc4, 0xa2, 0x39, 0x40, 0x12, 0xd0, 0xc7, 0x32, 0x7e, 0x79, 0x0b,
+ 0x72, 0x3e, 0xad, 0x9d, 0x08, 0x77, 0x49, 0x3d, 0x4c, 0x20, 0x0d, 0x55,
+ 0x4d, 0x41, 0x70, 0xdb, 0xc8, 0x55, 0x8d, 0xe6, 0x90, 0x32, 0x74, 0x1c,
+ 0xca, 0xaa, 0x28, 0x20, 0x37, 0x54, 0x0f, 0xb8, 0xf4, 0x6e, 0x07, 0xf6,
+ 0x90, 0x70, 0x5a, 0x16, 0x5f, 0x3f, 0x31, 0x32, 0x54, 0x73, 0x25, 0xe2,
+ 0x7a, 0xa4, 0xeb, 0xac, 0x3d, 0x8f, 0x4c, 0xae, 0x47, 0x3b, 0x45, 0xdf,
+ 0x17, 0xa8, 0x94, 0xac, 0x09, 0xb3, 0x3a, 0x06, 0xd7, 0xf2, 0x5c, 0x8b,
+ 0x91, 0xb0, 0x02, 0x52, 0x0a, 0xce, 0x81, 0x1d, 0x1e, 0x5a, 0x8d, 0x5c,
+ 0xa0, 0xbe, 0xab, 0x58, 0x1c, 0xd4, 0x19, 0x92, 0x6a, 0xba, 0x79, 0xab,
+ 0x67, 0x2b, 0x53, 0x53, 0x74, 0xb7, 0x29, 0xaf, 0x43, 0x37, 0x23, 0x45,
+ 0xff, 0x6e, 0x77, 0x65, 0x98, 0x8c, 0xc6, 0x5f, 0xed, 0x4c, 0xc4, 0x8a,
+ 0xde, 0xc3, 0x9e, 0x62, 0x06, 0x26, 0x38, 0x53, 0x06, 0x21, 0x99, 0x4c,
+ 0xb2, 0x85, 0x0e, 0xef, 0xec, 0x6c, 0xdf, 0xdf, 0x69, 0x79, 0xf2, 0xbe,
+ 0x4e, 0x9e, 0xb3, 0x7b, 0xc3, 0x23, 0x2d, 0xbf, 0xf2, 0xfa, 0x40, 0xdf,
+ 0xcc, 0x01, 0x68, 0xa7, 0x0d, 0xc4, 0x70, 0x42, 0x86, 0xd0, 0x90, 0x22,
+ 0x41, 0xc9, 0xc5, 0x91, 0xbc, 0x17, 0xc1, 0xa7, 0xf1, 0x00, 0xdb, 0x63,
+ 0x17, 0xe3, 0x97, 0xb9, 0xa1, 0x44, 0x84, 0x10, 0x48, 0x0a, 0x64, 0x3d,
+ 0x87, 0x66, 0x13, 0x86, 0x5a, 0xa7, 0xeb, 0x96, 0x37, 0x38, 0x18, 0xba,
+ 0x79, 0x3f, 0xf1, 0xdc, 0xed, 0x7c, 0x0a, 0xd5, 0x13, 0xc1, 0x6e, 0xf9,
+ 0x48, 0x5a, 0x83, 0x3e, 0x6d, 0xb1, 0x96, 0x5c, 0xc7, 0x77, 0x18, 0x70,
+ 0x6e, 0xf2, 0x93, 0x5e, 0x35, 0xe6, 0x70, 0x77, 0xfa, 0xae, 0x52, 0x69,
+ 0xd0, 0x48, 0xd4, 0x0f, 0x6e, 0xcc, 0xcc, 0x78, 0xc9, 0xf5, 0x82, 0x85,
+ 0xf0, 0xc0, 0x26, 0x49, 0xa6, 0x55, 0xe8, 0x7d, 0x47, 0xdf, 0xec, 0xfe,
+ 0xe6, 0xb2, 0xd8, 0xa0, 0x75, 0x18, 0xf3, 0x4f, 0x5b, 0x93, 0xd9, 0xe7,
+ 0x33, 0x0a, 0x4a, 0x85, 0x98, 0xc6, 0x8e, 0x22, 0x5d, 0x61, 0xda, 0xb6,
+ 0x9d, 0xc3, 0xb5, 0x60, 0x3c, 0x8b, 0xc6, 0x83, 0xbf, 0x57, 0xf0, 0x78,
+ 0xe1, 0x3d, 0xab, 0x1e, 0x37, 0x6d, 0xb4, 0xed, 0x71, 0xf8, 0xac, 0xed,
+ 0x71, 0xb0, 0x19, 0xe8, 0x2b, 0xc8, 0xbe, 0x00, 0xc3, 0xac, 0x93, 0xb7,
+ 0xfa, 0x58, 0xb2, 0x35, 0x3a, 0x7f, 0x7b, 0xfc, 0xcd, 0xd9, 0xf6, 0x7d,
+ 0x9e, 0xca, 0xb6, 0xfc, 0xb7, 0xe3, 0x4a, 0x15, 0x2f, 0x2c, 0xdd, 0x87,
+ 0x8d, 0xf2, 0xcd, 0x68, 0x34, 0x38, 0x3c, 0x3f, 0x41, 0x51, 0xb5, 0x91,
+ 0xf9, 0x73, 0x05, 0xdf, 0xef, 0x10, 0x74, 0xd3, 0x83, 0xef, 0x24, 0xed,
+ 0xb3, 0x56, 0xb8, 0x20, 0xfc, 0x80, 0x28, 0xc2, 0x0e, 0xe5, 0x41, 0x94,
+ 0x3c, 0x9b, 0xc7, 0x8f, 0xe6, 0xbb, 0x86, 0xcf, 0xf9, 0xc9, 0x0e, 0x3e,
+ 0x45, 0x9f, 0xc4, 0x80, 0x56, 0x38, 0x11, 0x96, 0x61, 0x3d, 0x35, 0xd2,
+ 0x7c, 0x00, 0x36, 0x85, 0x80, 0x56, 0x1c, 0xb7, 0xb1, 0xff, 0xe8, 0x3a,
+ 0x71, 0x81, 0xbb, 0x78, 0xd6, 0x0c, 0x39, 0xc4, 0x28, 0x2d, 0x42, 0x28,
+ 0xc8, 0xbb, 0x0e, 0x38, 0x18, 0x6a, 0xcc, 0xb3, 0x84, 0xda, 0xd9, 0x23,
+ 0x8d, 0xb2, 0x76, 0x5d, 0x23, 0x9b, 0x83, 0x65, 0x92, 0x1c, 0x6c, 0x72,
+ 0x74, 0x29, 0x2b, 0xca, 0xe5, 0xf5, 0x0d, 0x9b, 0x59, 0x6d, 0x5f, 0x04,
+ 0x64, 0xb9, 0x46, 0x61, 0x2d, 0x3f, 0xb8, 0xe9, 0x64, 0x58, 0x09, 0xb2,
+ 0xb6, 0x8c, 0x3f, 0x74, 0x0c, 0x28, 0x48, 0xc4, 0xea, 0x0d, 0xc3, 0x2f,
+ 0xa6, 0xff, 0x12, 0x96, 0xdd, 0x35, 0x1a, 0xc8, 0x98, 0x03, 0xa8, 0x70,
+ 0xa6, 0x15, 0xcd, 0x6c, 0x2e, 0x7f, 0x4d, 0x8b, 0x3b, 0x38, 0x4d, 0xc5,
+ 0x8b, 0x8f, 0xd4, 0x4d, 0xbb, 0xa7, 0xdb, 0x1b, 0xbd, 0xa9, 0x26, 0x5c,
+ 0xd5, 0x1e, 0x60, 0x54, 0xce, 0xd9, 0x5c, 0xb7, 0x67, 0x51, 0x4f, 0x79,
+ 0x6e, 0xae, 0x69, 0x18, 0x78, 0x83, 0xa2, 0xaf, 0xad, 0xf4, 0x8d, 0x51,
+ 0x2c, 0xe1, 0x32, 0x51, 0x84, 0x65, 0x13, 0x44, 0x44, 0x11, 0x2a, 0x8e,
+ 0x6d, 0x19, 0xf3, 0xa1, 0x9c, 0x2d, 0x1b, 0xe8, 0x02, 0xe4, 0x1a, 0xa5,
+ 0xbc, 0x98, 0x6d, 0x57, 0x68, 0x03, 0xad, 0x26, 0x1e, 0x14, 0x35, 0x49,
+ 0x8e, 0x42, 0x08, 0xbf, 0xab, 0x86, 0x37, 0x74, 0x81, 0x00, 0x8e, 0x26,
+ 0x8a, 0x97, 0x82, 0x66, 0x96, 0xdb, 0x42, 0x53, 0x0b, 0x00, 0x94, 0x3e,
+ 0x96, 0xf1, 0xa2, 0xcd, 0x66, 0xfd, 0x74, 0xad, 0x5a, 0xb3, 0xa3, 0x3e,
+ 0x76, 0x12, 0xdd, 0x2d, 0xc8, 0xba, 0xd3, 0x1a, 0xa3, 0x69, 0x5c, 0xab,
+ 0x30, 0xcb, 0x8a, 0x1a, 0x18, 0xd3, 0x29, 0x19, 0xdf, 0xd9, 0x8f, 0xf1,
+ 0x77, 0x52, 0xa0, 0x7a, 0xac, 0x22, 0xfc, 0x50, 0x1e, 0x15, 0xb7, 0x18,
+ 0xc3, 0x75, 0xa0, 0x94, 0xf6, 0x97, 0x3a, 0x4d, 0x7f, 0x97, 0x31, 0x02,
+ 0x8d, 0x97, 0x18, 0xab, 0xd1, 0x5a, 0x64, 0xd6, 0xf2, 0xbb, 0x35, 0x94,
+ 0x68, 0x22, 0x86, 0x78, 0x22, 0xd8, 0xc0, 0x14, 0x52, 0xb7, 0xa3, 0x52,
+ 0xf5, 0x88, 0xbc, 0x6e, 0x29, 0x57, 0x6f, 0xe3, 0x97, 0xbd, 0x6f, 0xd8,
+ 0x2c, 0x9e, 0x72, 0x7d, 0x81, 0x45, 0xb7, 0x3a, 0xc3, 0x07, 0x4c, 0x88,
+ 0x1b, 0xbf, 0xfb, 0x61, 0x60, 0xd9, 0xd9, 0xb8, 0x71, 0x3d, 0x11, 0x0e,
+ 0xa8, 0xa1, 0xec, 0xc2, 0xad, 0xf7, 0xf2, 0x17, 0x3a, 0x03, 0xdf, 0xe7,
+ 0x85, 0xd1, 0x0c, 0xeb, 0x6d, 0xdd, 0x9c, 0x42, 0x41, 0x10, 0x9e, 0xdd,
+ 0x6a, 0xb3, 0x36, 0x96, 0x98, 0x91, 0x38, 0x0e, 0xb2, 0x47, 0x8a, 0x33,
+ 0x87, 0x6d, 0x02, 0x51, 0xe4, 0xd5, 0xd1, 0xbb, 0x5b, 0x04, 0xa9, 0x2f,
+ 0x13, 0x2b, 0x74, 0xd0, 0x06, 0x68, 0x30, 0x8d, 0x59, 0x50, 0xe4, 0x9f,
+ 0x86, 0x36, 0xc8, 0x8f, 0x7b, 0x83, 0xc9, 0x2b, 0x9c, 0xdf, 0xcb, 0x08,
+ 0xc2, 0x48, 0xf1, 0x68, 0x48, 0xb6, 0x6e, 0x20, 0x8b, 0x66, 0x17, 0xe3,
+ 0xdc, 0x7a, 0xb2, 0x9d, 0x5c, 0x35, 0x8b, 0xad, 0xbd, 0x6d, 0x66, 0x49,
+ 0x96, 0xf2, 0xbd, 0xa5, 0xbb, 0xee, 0x43, 0x5f, 0x0e, 0xa1, 0x0c, 0x71,
+ 0x42, 0x5d, 0x5d, 0x09, 0xd4, 0xc0, 0x43, 0xee, 0xdd, 0x95, 0x9c, 0x60,
+ 0x9e, 0x30, 0x5b, 0xef, 0xd3, 0xe6, 0x36, 0x76, 0x9d, 0xcb, 0x00, 0xff,
+ 0x2c, 0x88, 0x27, 0x10, 0x79, 0x89, 0xc6, 0x82, 0x70, 0x45, 0x17, 0xa5,
+ 0xe2, 0x8c, 0x24, 0x2d, 0x9b, 0x99, 0x9b, 0x4d, 0x07, 0x24, 0x43, 0xae,
+ 0xab, 0xd2, 0x5c, 0x91, 0x55, 0x84, 0x4c, 0x4d, 0x6c, 0x8a, 0x4b, 0xe4,
+ 0xe1, 0x7c, 0xcc, 0xab, 0xb2, 0x00, 0x63, 0xdd, 0xc7, 0xb4, 0xca, 0x11,
+ 0xee, 0xef, 0xbd, 0x3e, 0x7b, 0x73, 0xdc, 0xf3, 0x5d, 0x23, 0x57, 0xb9,
+ 0x78, 0xd3, 0xb1, 0x7e, 0x5d, 0x5f, 0xb5, 0xae, 0x66, 0xcc, 0x75, 0x68,
+ 0xae, 0x74, 0xa3, 0xe5, 0xb0, 0x2d, 0xf5, 0x51, 0x0f, 0x13, 0xa9, 0xf6,
+ 0x36, 0x5a, 0x6e, 0xd4, 0x49, 0x01, 0x04, 0x48, 0x29, 0x2f, 0xdd, 0x65,
+ 0x21, 0x18, 0x07, 0xae, 0x04, 0x35, 0x0e, 0x51, 0x67, 0xa1, 0xf4, 0x4b,
+ 0x49, 0x25, 0x5e, 0xb9, 0x29, 0x52, 0xf4, 0x79, 0x03, 0x60, 0x69, 0x63,
+ 0x00, 0xf9, 0xcd, 0xf9, 0x1d, 0x59, 0x36, 0x9b, 0xed, 0x0b, 0x70, 0xb3,
+ 0x26, 0x63, 0xbc, 0xd9, 0xd4, 0xe9, 0x05, 0x70, 0xd4, 0xc9, 0xf8, 0xb0,
+ 0xc0, 0xe7, 0x8a, 0x6f, 0xf3, 0xae, 0xe6, 0x4f, 0xb8, 0xd6, 0xb9, 0x71,
+ 0x77, 0xfa, 0x0e, 0xf8, 0xf4, 0x05, 0xa5, 0xe4, 0x43, 0xea, 0x9a, 0xd4,
+ 0x25, 0x77, 0xb5, 0x6b, 0x83, 0xb6, 0x41, 0x05, 0xc4, 0x62, 0x1e, 0xfa,
+ 0x16, 0xcd, 0xe7, 0xcb, 0x49, 0xde, 0x8a, 0x80, 0x5b, 0x87, 0x9f, 0xd0,
+ 0x50, 0x70, 0x8a, 0x0a, 0x6b, 0x4a, 0x85, 0x57, 0x29, 0x30, 0xa1, 0x26,
+ 0x57, 0xb0, 0xd7, 0x99, 0xab, 0x1b, 0x80, 0x2a, 0xcb, 0x82, 0x47, 0xc8,
+ 0xd4, 0x84, 0x7c, 0x9e, 0x16, 0x67, 0x29, 0x5f, 0xeb, 0xfb, 0xd9, 0xd0,
+ 0x41, 0x0d, 0x62, 0xb1, 0x86, 0x1d, 0x32, 0xc5, 0x2a, 0x27, 0xcc, 0xea,
+ 0xc8, 0xbc, 0x80, 0x96, 0xf1, 0x49, 0xa9, 0x11, 0x43, 0x25, 0xd9, 0x4e,
+ 0xa7, 0xfa, 0xb8, 0x91, 0xc0, 0x64, 0xfe, 0xc6, 0x36, 0x8d, 0x0d, 0x65,
+ 0x63, 0x3b, 0xb2, 0xd6, 0x41, 0x2c, 0xf7, 0x4a, 0xda, 0x1a, 0x35, 0xb1,
+ 0xed, 0xa1, 0x34, 0x63, 0x13, 0xbe, 0xee, 0x7a, 0x59, 0x7d, 0x44, 0xd6,
+ 0xaa, 0x14, 0x7a, 0x61, 0xa4, 0xb0, 0x5b, 0x94, 0x38, 0x6c, 0x02, 0x82,
+ 0xdd, 0xf5, 0x90, 0x50, 0x9c, 0xd5, 0x52, 0x38, 0x9d, 0xbf, 0xe1, 0x5e,
+ 0xd8, 0x0e, 0x5a, 0x73, 0x87, 0x08, 0x4c, 0x58, 0x95, 0x0d, 0x30, 0xfb,
+ 0x65, 0x0d, 0x26, 0xc6, 0xa6, 0x4a, 0x27, 0xee, 0x2f, 0x83, 0xb4, 0x9e,
+ 0xe4, 0xb9, 0x16, 0x0e, 0xa1, 0x50, 0x61, 0x46, 0xe8, 0xd8, 0x38, 0xbf,
+ 0x8d, 0xf5, 0xdb, 0x5b, 0xc2, 0xfe, 0x69, 0xc9, 0x9e, 0x5e, 0x06, 0xa0,
+ 0x70, 0xe5, 0x75, 0xc0, 0x59, 0x90, 0x29, 0x27, 0x71, 0xc4, 0x58, 0x2d,
+ 0x15, 0x4d, 0xbc, 0x59, 0x61, 0xdf, 0x1a, 0x13, 0x7c, 0xcf, 0xb7, 0xc1,
+ 0x75, 0x12, 0x06, 0x54, 0x9a, 0xaf, 0x6e, 0xd8, 0x9e, 0xbc, 0xbd, 0xdd,
+ 0x1f, 0xae, 0x29, 0xa7, 0xee, 0x07, 0x83, 0x9e, 0x76, 0x2c, 0x14, 0x66,
+ 0x6b, 0x8a, 0xd9, 0x27, 0xa3, 0xed, 0x56, 0x91, 0xb5, 0xc3, 0xd3, 0xf3,
+ 0xb7, 0x09, 0x28, 0xb2, 0x40, 0xc6, 0x5b, 0xd4, 0x5c, 0x67, 0x89, 0x7f,
+ 0xcc, 0x7a, 0x32, 0x2c, 0xe6, 0x24, 0x84, 0x7e, 0x2a, 0x0b, 0x39, 0xac,
+ 0x88, 0x30, 0xe9, 0x89, 0xb1, 0x6e, 0x45, 0xe2, 0xe5, 0x3b, 0xb2, 0x94,
+ 0x57, 0x23, 0xa3, 0x3b, 0x1c, 0xf3, 0xc9, 0x21, 0x7f, 0x58, 0x25, 0xed,
+ 0xf8, 0xce, 0xe5, 0x25, 0xb5, 0xdf, 0xb5, 0x14, 0x61, 0x65, 0x22, 0x84,
+ 0x60, 0x81, 0x50, 0x6f, 0x32, 0xcb, 0x46, 0x26, 0xc6, 0x9d, 0xa5, 0xd6,
+ 0xd3, 0x52, 0x29, 0x8c, 0xd7, 0x00, 0xf1, 0x84, 0xa6, 0xb8, 0xc7, 0x75,
+ 0x0a, 0x4b, 0x49, 0x60, 0x26, 0xb6, 0x58, 0x14, 0x01, 0x23, 0x81, 0x9d,
+ 0xf1, 0x24, 0xb4, 0x46, 0x03, 0xd4, 0xf1, 0xfa, 0x44, 0x31, 0xed, 0x2c,
+ 0xd5, 0x68, 0x59, 0xb3, 0xc4, 0x6f, 0xfb, 0xfc, 0xd1, 0xf1, 0x92, 0x64,
+ 0x44, 0xe7, 0x1b, 0xb2, 0xc0, 0xac, 0x3b, 0xf1, 0x13, 0xf4, 0x3d, 0xf1,
+ 0x82, 0x31, 0x13, 0x12, 0x25, 0x75, 0x66, 0xe9, 0xdc, 0x68, 0x07, 0x85,
+ 0x66, 0x0e, 0x90, 0x03, 0x98, 0xe0, 0x9d, 0xdd, 0xa9, 0x5c, 0xa6, 0x22,
+ 0xb3, 0x5a, 0xd8, 0xa8, 0x4e, 0x42, 0x01, 0x7f, 0x86, 0x00, 0x6d, 0x7e,
+ 0xf3, 0xb1, 0x24, 0x31, 0xbc, 0x0e, 0x29, 0x02, 0x6c, 0x36, 0x07, 0x71,
+ 0xb4, 0xce, 0x1c, 0x93, 0xd1, 0x72, 0x13, 0xb6, 0xe6, 0xac, 0x99, 0x80,
+ 0xc9, 0xcd, 0xb2, 0xf8, 0x60, 0xba, 0x10, 0x26, 0x34, 0x2b, 0xf6, 0x97,
+ 0x18, 0xd5, 0xb9, 0x50, 0x23, 0xfd, 0xc5, 0xf2, 0x13, 0x70, 0x0b, 0xc4,
+ 0x83, 0xfb, 0x91, 0xfc, 0x79, 0x61, 0xb1, 0xef, 0x58, 0xef, 0xa6, 0xf6,
+ 0x84, 0xa4, 0x8d, 0x9b, 0xc0, 0x28, 0xbe, 0x5d, 0xd7, 0xd9, 0x95, 0x38,
+ 0x36, 0xfb, 0x11, 0x37, 0x8b, 0x28, 0x9c, 0x1c, 0xd2, 0x56, 0x0a, 0x28,
+ 0xa4, 0x28, 0x29, 0xee, 0x2b, 0x10, 0x88, 0x4b, 0x6c, 0x7c, 0xb2, 0xdc,
+ 0xf0, 0x4d, 0xda, 0x0f, 0x7e, 0x99, 0x93, 0x48, 0x4f, 0xda, 0xd9, 0xf5,
+ 0xab, 0xf6, 0x01, 0xeb, 0x2a, 0xf0, 0x67, 0x99, 0x4d, 0xe0, 0x92, 0xf1,
+ 0x05, 0x96, 0x62, 0x55, 0x37, 0xaa, 0x45, 0xe8, 0xd7, 0x40, 0x8b, 0x48,
+ 0x2e, 0x97, 0xdb, 0x95, 0x15, 0x76, 0x93, 0xcd, 0xe9, 0xa8, 0x8a, 0x3c,
+ 0xf8, 0x17, 0xce, 0x92, 0x1b, 0x88, 0x37, 0x51, 0xf6, 0x87, 0x9d, 0x49,
+ 0x2a, 0x1e, 0x24, 0x0f, 0xdf, 0x1a, 0xf1, 0x43, 0xd2, 0xd0, 0x13, 0x86,
+ 0x6f, 0x59, 0x22, 0xa9, 0x20, 0x74, 0x23, 0x0d, 0x12, 0xab, 0x7f, 0x8d,
+ 0x14, 0xa4, 0xe6, 0x09, 0x6f, 0x7f, 0xfe, 0x36, 0x4c, 0xfb, 0xf6, 0x2a,
+ 0x1a, 0xdc, 0x2f, 0x07, 0xad, 0x05, 0x2f, 0x3f, 0x5b, 0xe1, 0xe1, 0xfa,
+ 0xf5, 0x42, 0xb0, 0xcd, 0x04, 0x18, 0x97, 0x81, 0x45, 0x4b, 0x04, 0x8a,
+ 0x56, 0xff, 0xbb, 0x09, 0x41, 0xfa, 0xa2, 0x74, 0x39, 0x9f, 0xc6, 0x59,
+ 0x18, 0x74, 0x6d, 0xa5, 0x08, 0xa1, 0x44, 0x2e, 0x68, 0x35, 0x94, 0xff,
+ 0xe5, 0xe4, 0xa5, 0xd9, 0x64, 0xa4, 0xb3, 0x52, 0x6d, 0xda, 0xaf, 0x57,
+ 0x2d, 0x2e, 0xca, 0x9d, 0x6b, 0x84, 0x17, 0x76, 0x3e, 0x55, 0x76, 0xf7,
+ 0xa9, 0xb9, 0x88, 0xa9, 0x6f, 0xe8, 0x6d, 0x76, 0x8e, 0xbe, 0x6b, 0x61,
+ 0x83, 0xb8, 0x5f, 0x02, 0x4c, 0x6a, 0xc0, 0x4b, 0x19, 0xbd, 0x6a, 0x59,
+ 0x35, 0x58, 0x6b, 0x29, 0x50, 0x22, 0x35, 0x74, 0xaa, 0x8c, 0xfa, 0xdc,
+ 0xee, 0x70, 0x40, 0x36, 0xc7, 0xde, 0xec, 0x3a, 0x33, 0x07, 0x91, 0x53,
+ 0x87, 0xc6, 0x55, 0xf9, 0x21, 0xe3, 0x5d, 0x07, 0xf3, 0x02, 0xec, 0x49,
+ 0xac, 0x4b, 0x89, 0x53, 0xd6, 0xc8, 0xb9, 0xa9, 0x85, 0x30, 0x46, 0xf4,
+ 0x59, 0x2a, 0x87, 0x26, 0xb4, 0x0b, 0x4e, 0x1a, 0xe6, 0x8e, 0xf5, 0x40,
+ 0xd9, 0xc1, 0x79, 0xb9, 0x26, 0x44, 0xd5, 0x16, 0x3f, 0xf9, 0x76, 0x13,
+ 0x30, 0x17, 0xe2, 0xca, 0xc3, 0xef, 0x9f, 0x7d, 0xf1, 0xd4, 0xac, 0x3e,
+ 0xf9, 0x76, 0xd5, 0xfd, 0x93, 0x1f, 0x59, 0xd1, 0x87, 0x57, 0x39, 0x33,
+ 0x7b, 0x09, 0x9e, 0xb0, 0xe4, 0xb9, 0xd9, 0x54, 0xec, 0x13, 0xa3, 0x98,
+ 0x56, 0xd7, 0xdd, 0x85, 0x6a, 0x7d, 0x03, 0x35, 0x3d, 0xa6, 0x8c, 0xea,
+ 0x81, 0xc9, 0x46, 0x9a, 0x38, 0xa7, 0x39, 0x4c, 0x5d, 0xfd, 0x4c, 0xa1,
+ 0xe5, 0xee, 0xb3, 0x92, 0x64, 0x76, 0x4c, 0xe4, 0x90, 0x3b, 0x47, 0x0e,
+ 0xa7, 0xc5, 0x42, 0x0f, 0xa7, 0xe5, 0x01, 0xf7, 0x4e, 0x5e, 0x3b, 0x45,
+ 0xf3, 0xcf, 0x84, 0x0a, 0x36, 0x5a, 0x6d, 0x43, 0xb0, 0x30, 0x7c, 0x2b,
+ 0x50, 0x3b, 0xb9, 0x6e, 0x95, 0x4d, 0x1c, 0xe1, 0xbc, 0x6f, 0xcb, 0x2b,
+ 0x43, 0xd5, 0x0c, 0x7c, 0xdd, 0x80, 0x39, 0xc3, 0x93, 0x63, 0x32, 0x5a,
+ 0x22, 0x16, 0x21, 0x7b, 0x2e, 0x72, 0x9b, 0x78, 0x97, 0x0b, 0xdf, 0x30,
+ 0x23, 0xb8, 0xc4, 0xc2, 0x4e, 0x15, 0x9c, 0xc5, 0x83, 0xb7, 0x74, 0x77,
+ 0xe1, 0xa9, 0xa7, 0x1e, 0x31, 0xfe, 0x49, 0xcc, 0x34, 0xfd, 0x81, 0x2d,
+ 0x58, 0xd5, 0x02, 0xcf, 0xb0, 0x91, 0x02, 0xed, 0x98, 0xf3, 0x88, 0x63,
+ 0x83, 0x4d, 0xbc, 0xc7, 0xfc, 0x57, 0x0e, 0x3e, 0xdf, 0xed, 0x8b, 0x88,
+ 0xa2, 0x70, 0x97, 0xff, 0x0c, 0x0a, 0xb1, 0x87, 0x7a, 0x04, 0x3d, 0x66,
+ 0x7e, 0x6a, 0x9f, 0x0c, 0x65, 0xa0, 0x10, 0x5f, 0x3e, 0x79, 0x44, 0x31,
+ 0xef, 0xb8, 0x4f, 0x89, 0x2f, 0x5a, 0xdf, 0x8b, 0x60, 0xdd, 0x08, 0x75,
+ 0x0c, 0xfc, 0xe9, 0x9d, 0x2d, 0xbb, 0x1a, 0x27, 0x12, 0x2f, 0xdd, 0xac,
+ 0xb9, 0xba, 0x7c, 0xc4, 0x23, 0x31, 0xcd, 0xeb, 0x88, 0x13, 0x83, 0xf1,
+ 0x6c, 0xb2, 0xe1, 0x6c, 0xc9, 0x31, 0x14, 0x57, 0xe1, 0xad, 0x8d, 0x55,
+ 0x34, 0x07, 0xa6, 0x87, 0xd2, 0x08, 0xda, 0x6b, 0x33, 0xfb, 0x6b, 0xcf,
+ 0xc9, 0xb3, 0xe1, 0xe3, 0xd6, 0x39, 0x69, 0x66, 0xf3, 0xc1, 0xed, 0xf8,
+ 0x9e, 0xd8, 0xc7, 0xe5, 0xe9, 0x9b, 0x64, 0xbe, 0x44, 0x51, 0x6f, 0xe1,
+ 0xf1, 0xbd, 0x9b, 0x65, 0xea, 0x86, 0x26, 0x07, 0x0f, 0xfb, 0x0a, 0x6f,
+ 0xc0, 0xee, 0x18, 0x42, 0xba, 0xa3, 0x40, 0x5b, 0x9b, 0x46, 0x2a, 0x76,
+ 0xbf, 0xf0, 0xd6, 0x51, 0x93, 0xec, 0xcf, 0x5e, 0x2c, 0x66, 0x79, 0x34,
+ 0xd3, 0x47, 0x81, 0xb6, 0xd9, 0xa7, 0x6c, 0xb2, 0x44, 0x9c, 0x9a, 0xd4,
+ 0x43, 0xa2, 0x80, 0x5a, 0xef, 0x40, 0xf7, 0x9c, 0xe6, 0xe2, 0x26, 0x37,
+ 0x3f, 0xe8, 0x4e, 0x46, 0x77, 0xec, 0x3c, 0xf8, 0xc0, 0x7b, 0xc6, 0x29,
+ 0xef, 0xb1, 0xdf, 0x05, 0xb1, 0x62, 0xc0, 0xfb, 0xe9, 0x42, 0x34, 0x5b,
+ 0x2a, 0xbf, 0x2e, 0x58, 0xe9, 0x78, 0x93, 0x4f, 0xaa, 0xb2, 0x2e, 0xaf,
+ 0x18, 0xb8, 0xe6, 0x99, 0x48, 0x27, 0x27, 0xa3, 0xe4, 0x36, 0x1b, 0x6b,
+ 0x96, 0xec, 0x30, 0x74, 0x26, 0x43, 0x86, 0x50, 0x84, 0xa4, 0xca, 0xb3,
+ 0x86, 0xa6, 0x4c, 0x63, 0xa2, 0x7d, 0x2d, 0x80, 0x24, 0x9c, 0x2a, 0x50,
+ 0xe0, 0xa9, 0x8a, 0xdc, 0x8c, 0x2f, 0xa6, 0x45, 0x56, 0x46, 0x02, 0xe3,
+ 0xdc, 0x01, 0xbd, 0x56, 0x78, 0x9f, 0xe0, 0x0e, 0x1f, 0xa7, 0x35, 0x67,
+ 0xb4, 0xb0, 0x77, 0xc0, 0x88, 0x1d, 0xd2, 0x51, 0xc4, 0x71, 0xf9, 0x81,
+ 0x7c, 0x66, 0x41, 0xf2, 0xca, 0x38, 0xa3, 0x92, 0x76, 0x14, 0xee, 0x6f,
+ 0x7b, 0xef, 0x8a, 0x69, 0x59, 0x01, 0x90, 0xe4, 0x55, 0xc9, 0x40, 0x91,
+ 0xb9, 0x65, 0x85, 0x2c, 0x2c, 0x50, 0x90, 0x86, 0xf2, 0xf4, 0xf6, 0x86,
+ 0xe3, 0xb6, 0xba, 0x0a, 0x74, 0x39, 0x21, 0xf1, 0x96, 0x73, 0x7d, 0x84,
+ 0x88, 0x9d, 0xfa, 0xef, 0xae, 0x1b, 0x6f, 0x35, 0xa2, 0x74, 0x85, 0xb2,
+ 0x1e, 0x2e, 0xcb, 0x54, 0xdc, 0x33, 0x2f, 0xf3, 0xeb, 0x15, 0x95, 0x14,
+ 0x2d, 0xdf, 0x03, 0x2e, 0x27, 0x9c, 0x58, 0xf4, 0x46, 0xae, 0xcc, 0x8a,
+ 0xcf, 0x68, 0x12, 0x14, 0x08, 0x05, 0xc9, 0x4d, 0xe8, 0x89, 0x5d, 0xb1,
+ 0xfb, 0x56, 0xd1, 0x64, 0x78, 0x9a, 0x63, 0x27, 0xb0, 0x84, 0x9b, 0xa5,
+ 0xb1, 0xf5, 0xdd, 0x48, 0x81, 0xf9, 0x85, 0x31, 0xa5, 0x76, 0x57, 0xec,
+ 0x09, 0x88, 0xa9, 0x7c, 0xbe, 0x96, 0x17, 0x70, 0x52, 0x78, 0x31, 0xd9,
+ 0xb8, 0xd2, 0xb7, 0x8a, 0x0e, 0x1a, 0x21, 0xad, 0x08, 0x30, 0xc5, 0x8b,
+ 0xca, 0xda, 0x2a, 0xe2, 0xb4, 0x3c, 0xed, 0x90, 0x97, 0x7f, 0x74, 0x4b,
+ 0xfa, 0xc1, 0xfe, 0x60, 0x9c, 0xa5, 0x54, 0xb7, 0xe3, 0x79, 0x43, 0x0a,
+ 0x53, 0x3c, 0x51, 0x65, 0x45, 0x9e, 0xca, 0xd7, 0xfc, 0xe6, 0x25, 0x34,
+ 0x2d, 0x5a, 0xda, 0xb3, 0xc3, 0x77, 0x97, 0xaf, 0x93, 0x64, 0x9f, 0xb8,
+ 0xe1, 0x1f, 0x92, 0xa8, 0x02, 0x89, 0xd0, 0x6a, 0x45, 0x4f, 0x35, 0x1d,
+ 0xa8, 0xb2, 0xf8, 0xdb, 0xb2, 0x68, 0xd7, 0x04, 0x88, 0x39, 0xe9, 0x71,
+ 0x7f, 0xca, 0xd5, 0xcb, 0x99, 0xd3, 0x2d, 0x98, 0xb5, 0x16, 0x8d, 0xe1,
+ 0x15, 0x19, 0x0c, 0x30, 0xed, 0xe4, 0xeb, 0xba, 0x27, 0x9e, 0x59, 0xc7,
+ 0x19, 0x3b, 0xa4, 0xb7, 0xd2, 0x5d, 0xa5, 0x14, 0xd2, 0xc0, 0x69, 0x95,
+ 0x89, 0xa7, 0xbf, 0xe9, 0x56, 0x82, 0xbc, 0x78, 0x75, 0xd4, 0x69, 0xee,
+ 0xe9, 0x67, 0x4f, 0x76, 0x7f, 0x47, 0xb4, 0x5e, 0x49, 0xfe, 0x11, 0xf1,
+ 0x23, 0x44, 0x89, 0x74, 0xbe, 0xaf, 0x28, 0x8f, 0x55, 0x3d, 0x0d, 0xa5,
+ 0x3c, 0xe4, 0x67, 0xda, 0xd7, 0xcd, 0x94, 0x60, 0x5b, 0x96, 0x88, 0xa3,
+ 0x52, 0x75, 0xff, 0x3f, 0xff, 0x2b, 0xcc, 0xb3, 0xfd, 0xf1, 0x67, 0x76,
+ 0x16, 0x5f, 0xa1, 0x54, 0x9a, 0xc3, 0xfd, 0xab, 0x98, 0xa9, 0xdd, 0x8d,
+ 0x4c, 0x27, 0x7a, 0xf3, 0x8f, 0x9b, 0xb6, 0x9c, 0x09, 0x74, 0xfe, 0x68,
+ 0x96, 0xb6, 0x5e, 0x9e, 0xd2, 0x37, 0x5d, 0x58, 0x54, 0xc0, 0x4e, 0x3d,
+ 0x75, 0xc0, 0xa5, 0x58, 0x4a, 0x85, 0x8f, 0xe9, 0xaa, 0x72, 0x44, 0x5a,
+ 0x96, 0x43, 0x18, 0xbd, 0xd4, 0x5f, 0x4e, 0x5e, 0x72, 0x06, 0x59, 0xa1,
+ 0xff, 0xa4, 0x8a, 0x22, 0x9f, 0x39, 0x2f, 0x56, 0xf8, 0x2f, 0x05, 0x49,
+ 0xf4, 0x9f, 0x66, 0x05, 0xfa, 0xcd, 0x6d, 0xf9, 0x5f, 0x6d, 0x5f, 0xa6,
+ 0xd1, 0x30, 0xa8, 0xc7, 0xef, 0xff, 0xb8, 0x47, 0x09, 0x42, 0xbd, 0x6e,
+ 0x13, 0x0c, 0xf6, 0xb7, 0xab, 0x6a, 0x15, 0xa4, 0x75, 0x04, 0xbb, 0xfa,
+ 0x41, 0xca, 0x3e, 0xee, 0x93, 0xde, 0xf8, 0x5f, 0x43, 0xfa, 0xef, 0x8f,
+ 0x7b, 0x83, 0x27, 0x3f, 0xdb, 0x8f, 0xfe, 0x71, 0xef, 0xfd, 0x1f, 0xf7,
+ 0x7b, 0xd1, 0x2c, 0x3b, 0x47, 0x07, 0xe0, 0x41, 0x15, 0x49, 0x9d, 0x2d,
+ 0xee, 0x24, 0x6b, 0x43, 0x42, 0x8d, 0xae, 0x7e, 0x1a, 0x8a, 0xb4, 0x86,
+ 0x94, 0x49, 0xe4, 0xb9, 0xea, 0x68, 0xaa, 0x5a, 0x42, 0x4d, 0x85, 0xc3,
+ 0x6d, 0xc9, 0x2f, 0x8b, 0x57, 0x85, 0xd3, 0x01, 0x35, 0x9d, 0x20, 0x90,
+ 0x85, 0x45, 0xd6, 0xde, 0x1b, 0x44, 0xa0, 0xa2, 0xac, 0x1b, 0xe1, 0x6c,
+ 0x08, 0x3e, 0xca, 0xdc, 0x66, 0x69, 0xd2, 0x99, 0xf4, 0xf1, 0xd8, 0xfe,
+ 0xa4, 0xc8, 0x82, 0xbc, 0xac, 0xd4, 0xe6, 0x31, 0xb2, 0xfd, 0x66, 0xa5,
+ 0x82, 0x79, 0xd3, 0xc6, 0xaf, 0x25, 0xac, 0x85, 0xde, 0xbb, 0xf2, 0xbc,
+ 0x54, 0x25, 0xb6, 0x2b, 0x2d, 0xfe, 0xb6, 0xd4, 0xea, 0xc9, 0xee, 0x42,
+ 0x31, 0x2d, 0xe5, 0xb5, 0x0b, 0xc2, 0xe0, 0x67, 0x12, 0x80, 0x41, 0xc2,
+ 0x3f, 0x17, 0xf0, 0x2a, 0x63, 0x1e, 0x81, 0x74, 0x4c, 0xf5, 0xcd, 0x5a,
+ 0xd5, 0x62, 0x26, 0xa8, 0xec, 0x5a, 0xc3, 0x9e, 0x55, 0x02, 0xaa, 0xb4,
+ 0x5e, 0x31, 0x21, 0xfe, 0x54, 0x78, 0x93, 0x20, 0x13, 0x85, 0xc9, 0x59,
+ 0xe3, 0xd8, 0xe5, 0x2c, 0x59, 0x82, 0x91, 0x36, 0xd9, 0xc0, 0x4b, 0x93,
+ 0x45, 0x5a, 0x2e, 0x7e, 0xea, 0x41, 0xdd, 0x24, 0xbe, 0x37, 0x08, 0x82,
+ 0x92, 0x66, 0x13, 0x4d, 0xef, 0x8c, 0x24, 0x64, 0x6a, 0x56, 0x4b, 0xf5,
+ 0xa8, 0x1e, 0x02, 0x91, 0x35, 0x66, 0x9f, 0x6d, 0x0e, 0x36, 0x93, 0x2d,
+ 0xa4, 0xd2, 0xc3, 0xac, 0x4b, 0xa6, 0x69, 0x7d, 0xb3, 0x1d, 0xf3, 0x43,
+ 0x3a, 0xd7, 0x9f, 0x13, 0x54, 0x63, 0x71, 0x3d, 0xd0, 0x8d, 0xc9, 0x12,
+ 0x2a, 0x3a, 0x30, 0xbd, 0xaf, 0xcf, 0x10, 0x2f, 0x61, 0xbc, 0xe0, 0xc0,
+ 0xa6, 0xd7, 0x74, 0x7e, 0x36, 0x00, 0x07, 0x2d, 0xff, 0xfc, 0x3f, 0xc2,
+ 0x7b, 0x41, 0x9e, 0x64, 0xc8, 0xd7, 0x80, 0x73, 0xa2, 0xdc, 0x45, 0x4a,
+ 0xc1, 0xbc, 0xe4, 0xf9, 0xe2, 0xa6, 0x32, 0xda, 0x5f, 0x98, 0x7a, 0x35,
+ 0x7a, 0x9d, 0xc0, 0x13, 0x43, 0x45, 0x79, 0xf8, 0x19, 0xbb, 0x41, 0x3c,
+ 0x06, 0xc2, 0xdf, 0x91, 0x36, 0x8f, 0xd0, 0x24, 0x83, 0xb4, 0x1e, 0x04,
+ 0x9a, 0xce, 0xa5, 0x0f, 0xad, 0x25, 0xbd, 0x93, 0x8c, 0x11, 0x42, 0x31,
+ 0x52, 0x5c, 0xad, 0x98, 0xa0, 0xfc, 0x73, 0xb2, 0x33, 0x1c, 0xee, 0x90,
+ 0xc0, 0xda, 0x31, 0x7f, 0xb8, 0x62, 0x02, 0x00, 0xdd, 0x76, 0x8b, 0x21,
+ 0x99, 0x8d, 0x0e, 0xe8, 0x0a, 0xd8, 0x33, 0xa4, 0x76, 0xa0, 0x8b, 0xb3,
+ 0xd7, 0x7f, 0x5f, 0x02, 0x89, 0x5a, 0x19, 0x7d, 0xb2, 0xe2, 0xc4, 0xde,
+ 0x79, 0xeb, 0x8e, 0x0c, 0x4a, 0x10, 0xb1, 0x63, 0xbd, 0x16, 0x12, 0x89,
+ 0xe6, 0xa6, 0x93, 0x71, 0xc6, 0x28, 0x1a, 0xe0, 0x83, 0xf3, 0x46, 0xc9,
+ 0xbb, 0x90, 0x54, 0x9d, 0xae, 0xb5, 0xe7, 0x1e, 0xef, 0xb7, 0xfd, 0x1e,
+ 0x8b, 0xbc, 0x30, 0x16, 0x86, 0xd1, 0x8c, 0x41, 0xd2, 0x49, 0x50, 0xbc,
+ 0x30, 0xa5, 0x87, 0x9d, 0x69, 0x9d, 0x62, 0x34, 0x70, 0x27, 0xb3, 0x7c,
+ 0x73, 0xe5, 0xdd, 0x45, 0xc3, 0x06, 0xab, 0xa4, 0x84, 0xf3, 0xb7, 0x82,
+ 0xcb, 0x92, 0x3f, 0xb2, 0xcd, 0x37, 0xa6, 0x80, 0x75, 0xb1, 0x21, 0x32,
+ 0xbe, 0xdb, 0xa4, 0x4a, 0xd7, 0x18, 0xfe, 0x13, 0x02, 0x03, 0x41, 0x79,
+ 0x47, 0x6b, 0x31, 0xaf, 0x87, 0x75, 0x39, 0x58, 0x47, 0x89, 0x2b, 0xb8,
+ 0x44, 0x63, 0x26, 0x9e, 0x53, 0x33, 0xef, 0x2f, 0x8f, 0x2f, 0x44, 0x3d,
+ 0x81, 0x03, 0xc2, 0x15, 0xcb, 0x0c, 0x4b, 0xcc, 0x92, 0x21, 0xf3, 0xf4,
+ 0xb1, 0x2d, 0x6a, 0x5d, 0xdf, 0xa4, 0xfb, 0x4f, 0x9e, 0x4a, 0xb7, 0x95,
+ 0x44, 0x0b, 0xf7, 0xf6, 0x26, 0xff, 0x6a, 0x67, 0x87, 0xa3, 0xe6, 0x64,
+ 0x9a, 0x06, 0x72, 0x21, 0x95, 0xd2, 0xdc, 0x9b, 0x5f, 0x6c, 0x46, 0xf1,
+ 0x72, 0xaa, 0xb8, 0xb2, 0xf9, 0x4e, 0xce, 0x67, 0x60, 0xfa, 0xfc, 0xe2,
+ 0x0a, 0xfd, 0x56, 0xbd, 0x81, 0x44, 0xa8, 0x10, 0x02, 0xad, 0xa1, 0x55,
+ 0x77, 0x40, 0x58, 0x27, 0xb4, 0x3a, 0x53, 0xa2, 0xc9, 0xa9, 0x44, 0xe8,
+ 0xe9, 0xcf, 0x4f, 0xcd, 0x85, 0x42, 0x27, 0x21, 0xb3, 0x89, 0x60, 0xdf,
+ 0x68, 0x35, 0xbc, 0x86, 0x05, 0x04, 0x4a, 0x04, 0xd6, 0xc4, 0xf6, 0x47,
+ 0x1b, 0x4f, 0xa3, 0x2e, 0xec, 0x91, 0x41, 0x4f, 0xcd, 0x17, 0x82, 0x44,
+ 0x11, 0xdd, 0x17, 0x96, 0x7f, 0x13, 0x06, 0xbd, 0x87, 0x12, 0x74, 0xa7,
+ 0xc5, 0x5c, 0x07, 0x55, 0xd3, 0x21, 0xa6, 0x59, 0xcf, 0xce, 0x0c, 0x94,
+ 0xd8, 0x24, 0xcb, 0x99, 0x8f, 0xc9, 0xac, 0x2d, 0xc5, 0x7d, 0x82, 0x73,
+ 0x60, 0xb6, 0xc2, 0x0e, 0xed, 0x03, 0xb1, 0x35, 0x82, 0x42, 0x08, 0xe4,
+ 0x63, 0x7e, 0x36, 0xdc, 0x3d, 0x50, 0xa6, 0xd6, 0x7e, 0xf2, 0x4d, 0xb1,
+ 0xa4, 0x25, 0xa1, 0x51, 0x7f, 0x33, 0xfa, 0x36, 0xc8, 0xb7, 0xa2, 0x37,
+ 0x1e, 0x3f, 0xa2, 0x37, 0xde, 0x8e, 0xf8, 0xa9, 0xdb, 0x72, 0x76, 0x65,
+ 0xde, 0xdc, 0x39, 0xba, 0x4b, 0xcd, 0x1f, 0xb1, 0xc7, 0x3f, 0xa3, 0xc7,
+ 0xcd, 0xc6, 0x9b, 0x36, 0x41, 0x41, 0xeb, 0x44, 0x2a, 0xfa, 0x1c, 0x24,
+ 0xe7, 0xe5, 0x2c, 0xad, 0xe0, 0xf6, 0xe5, 0xcd, 0xb7, 0xa6, 0xc7, 0x8f,
+ 0x1f, 0x47, 0x7a, 0xdc, 0x5f, 0xd1, 0xa1, 0xe1, 0x3f, 0xdf, 0xa3, 0x33,
+ 0xf8, 0xfd, 0xe8, 0x6f, 0xe3, 0x74, 0xf2, 0x01, 0x5b, 0x11, 0xa0, 0x76,
+ 0xcb, 0x3d, 0xfc, 0x7b, 0x4a, 0x73, 0x26, 0x23, 0x78, 0x48, 0x81, 0xa3,
+ 0x0a, 0x7c, 0x6c, 0x0d, 0x72, 0xdc, 0x3f, 0xdb, 0x7f, 0xb4, 0xb7, 0xf3,
+ 0x74, 0xf8, 0x78, 0xb8, 0x6f, 0x41, 0x66, 0x66, 0x63, 0x7d, 0xa4, 0x72,
+ 0x1a, 0x14, 0xce, 0x5f, 0x55, 0x8d, 0x30, 0x2f, 0x4c, 0x3b, 0x1e, 0xf5,
+ 0x42, 0xcd, 0x8e, 0x23, 0x07, 0x2f, 0x21, 0xa2, 0x85, 0x3d, 0x3f, 0x5b,
+ 0x29, 0x56, 0x4d, 0x8e, 0xf8, 0x1b, 0xa8, 0x13, 0xe2, 0xeb, 0x30, 0xf6,
+ 0x3f, 0xcd, 0xc0, 0x38, 0x37, 0x26, 0x73, 0x53, 0x2e, 0xe1, 0x52, 0x27,
+ 0xff, 0x8d, 0xb2, 0xaf, 0x8b, 0x8e, 0xc4, 0x16, 0x32, 0x9d, 0xb1, 0x98,
+ 0x6f, 0x8c, 0x7b, 0xcf, 0x70, 0x5e, 0x8a, 0x0f, 0x79, 0x25, 0xc1, 0xc9,
+ 0x19, 0x4b, 0xf2, 0x90, 0x2b, 0x9f, 0x18, 0x73, 0xa6, 0x98, 0x98, 0x43,
+ 0xff, 0xda, 0x98, 0x1a, 0x1f, 0xc9, 0x6f, 0x1c, 0xab, 0x27, 0x2d, 0x49,
+ 0x8c, 0xea, 0xf7, 0x17, 0x8c, 0x83, 0x23, 0x47, 0x97, 0x1f, 0x70, 0xea,
+ 0x84, 0x26, 0xaf, 0x72, 0xca, 0xd7, 0x20, 0x4c, 0xfc, 0xb5, 0xfe, 0xae,
+ 0x36, 0x77, 0xa7, 0x10, 0x8c, 0x53, 0xfe, 0x12, 0xbb, 0xb8, 0x99, 0x64,
+ 0x8e, 0xa6, 0xd1, 0x65, 0xa3, 0xc5, 0x3c, 0x30, 0xeb, 0x3c, 0x74, 0x51,
+ 0x46, 0x0a, 0xfe, 0x57, 0xb7, 0xfa, 0xa3, 0x5c, 0x82, 0xb1, 0x0a, 0x6d,
+ 0x9d, 0x22, 0x79, 0xda, 0xea, 0xaf, 0xde, 0x65, 0x8f, 0x7e, 0xfb, 0x5d,
+ 0xb6, 0xff, 0xd0, 0x5d, 0xe6, 0x6d, 0x33, 0xf6, 0x04, 0xad, 0xd9, 0x68,
+ 0x66, 0x0a, 0xb9, 0x3c, 0x76, 0x7c, 0x97, 0x79, 0x9b, 0x6c, 0x7c, 0x17,
+ 0xdd, 0x62, 0xed, 0x3d, 0xe6, 0x36, 0xd9, 0xaa, 0x5d, 0x86, 0x6d, 0x66,
+ 0xf7, 0xd9, 0x3d, 0x1b, 0x8d, 0x1d, 0x6d, 0xeb, 0x77, 0x59, 0xa7, 0xb8,
+ 0xfa, 0x9a, 0x3d, 0xe6, 0x6f, 0x88, 0x07, 0xef, 0x32, 0xe7, 0xf5, 0x62,
+ 0xb9, 0x93, 0xac, 0xd8, 0x68, 0xfe, 0x3e, 0x5b, 0x59, 0x07, 0x70, 0xef,
+ 0x59, 0x6c, 0x97, 0x3d, 0x7a, 0xc8, 0x2e, 0x33, 0xeb, 0x39, 0xa3, 0xcb,
+ 0xb7, 0xb5, 0xcb, 0x1e, 0xff, 0xa2, 0x5d, 0xc6, 0xdb, 0x0c, 0xfb, 0x6c,
+ 0xe5, 0x46, 0xa3, 0x21, 0xb5, 0x53, 0x2f, 0x0f, 0xff, 0x59, 0x69, 0x91,
+ 0xb6, 0x1a, 0x0d, 0x12, 0x12, 0x7f, 0xd9, 0x1a, 0x76, 0xa6, 0xfa, 0x01,
+ 0x2b, 0xb6, 0xdf, 0x5e, 0xb1, 0xbd, 0x5f, 0xb6, 0x62, 0xfb, 0x9d, 0x18,
+ 0xa1, 0x51, 0xfd, 0xd8, 0x75, 0xfb, 0xa3, 0x7a, 0xd0, 0x0f, 0x76, 0x76,
+ 0x7e, 0x86, 0x23, 0xe2, 0x80, 0xee, 0xbe, 0x9f, 0x83, 0x02, 0xa9, 0x59,
+ 0x27, 0x69, 0x71, 0x74, 0x76, 0xf4, 0xed, 0x48, 0xfc, 0xbf, 0xa2, 0xc1,
+ 0xa8, 0x86, 0xc3, 0x9e, 0x32, 0xd0, 0x2e, 0x70, 0x39, 0xb3, 0x40, 0x6f,
+ 0x96, 0x2a, 0x8a, 0x83, 0x4f, 0x7d, 0xeb, 0x88, 0xa5, 0x54, 0xb8, 0x42,
+ 0x21, 0x83, 0x4c, 0x9f, 0xc6, 0x24, 0x4e, 0x30, 0xbe, 0xa5, 0xe9, 0x15,
+ 0x2c, 0x59, 0x7e, 0x5f, 0xc4, 0xf2, 0x2f, 0xdc, 0x2b, 0x5b, 0xcd, 0x4d,
+ 0x85, 0x14, 0x09, 0x3c, 0x26, 0xca, 0x7a, 0xa3, 0xc5, 0xd3, 0x56, 0xf6,
+ 0x4e, 0x7a, 0xf5, 0x1a, 0x24, 0xb3, 0x8b, 0x2a, 0x5b, 0x51, 0x97, 0xf8,
+ 0xf2, 0xc6, 0xfb, 0x6d, 0x58, 0x6f, 0xd5, 0x4d, 0x98, 0x50, 0xa6, 0x79,
+ 0xf3, 0x4d, 0xef, 0x05, 0xd9, 0xdd, 0xf9, 0xa7, 0x36, 0x8d, 0x4f, 0x3a,
+ 0x43, 0xf5, 0x51, 0x14, 0xd3, 0x50, 0x77, 0xbb, 0xb6, 0xc1, 0x30, 0xa0,
+ 0x8c, 0x2b, 0x62, 0xd4, 0x8f, 0x4d, 0x93, 0x01, 0x02, 0x13, 0xbf, 0x48,
+ 0xe9, 0x37, 0xf2, 0x8f, 0x27, 0xf4, 0x61, 0x38, 0x4e, 0xf9, 0x9f, 0x37,
+ 0xf8, 0x37, 0x7d, 0x52, 0x59, 0x99, 0xbc, 0x75, 0x9e, 0x44, 0x27, 0x5a,
+ 0x45, 0x29, 0xdb, 0xf0, 0xcc, 0x16, 0xf0, 0xb6, 0x74, 0xf9, 0x69, 0xfe,
+ 0x98, 0x5d, 0x19, 0xf2, 0x48, 0x5d, 0x02, 0x4f, 0x10, 0xa3, 0xe5, 0xc7,
+ 0x2b, 0x62, 0x02, 0x59, 0xe2, 0x93, 0x37, 0x6a, 0x2e, 0xbe, 0x5f, 0x46,
+ 0xcb, 0x85, 0x1d, 0x65, 0x09, 0xfa, 0xcc, 0xe4, 0x19, 0xc2, 0x65, 0xa9,
+ 0x42, 0x84, 0xf4, 0x7c, 0x6f, 0xf7, 0xf3, 0xd0, 0x73, 0xfb, 0x4e, 0xf3,
+ 0xc3, 0x1c, 0x7f, 0x21, 0xb0, 0x05, 0x40, 0x6a, 0x8f, 0x5d, 0x56, 0x44,
+ 0xec, 0xa3, 0x91, 0x14, 0x32, 0x18, 0xd3, 0xd3, 0x8c, 0xcd, 0xaf, 0x31,
+ 0xdb, 0xd1, 0x22, 0x28, 0xd2, 0x76, 0x49, 0x08, 0x72, 0x3e, 0xe4, 0x02,
+ 0xb0, 0x35, 0xba, 0x24, 0x07, 0xc8, 0x03, 0xf9, 0x4e, 0xa0, 0x0d, 0x8d,
+ 0xdb, 0x7c, 0xe5, 0xd8, 0xd1, 0xfe, 0xf4, 0x78, 0x97, 0xd6, 0x54, 0x1b,
+ 0x49, 0xb9, 0xd0, 0x3d, 0xef, 0xb9, 0x3f, 0x3d, 0x4a, 0x87, 0xff, 0x42,
+ 0x6e, 0xa3, 0x27, 0x6d, 0xb3, 0xfc, 0x8f, 0x7d, 0x3e, 0xe1, 0xd7, 0x44,
+ 0xbf, 0x32, 0x18, 0xa7, 0x55, 0x24, 0x1b, 0x41, 0xee, 0x6e, 0xe5, 0xed,
+ 0x50, 0xd6, 0x0b, 0x7d, 0x0b, 0xa9, 0x4d, 0xa9, 0x03, 0x98, 0xdb, 0x9f,
+ 0x27, 0x61, 0x73, 0x9e, 0xdb, 0xdb, 0xaf, 0xba, 0xda, 0x67, 0xbe, 0x29,
+ 0x8f, 0x6e, 0x2a, 0x9d, 0xf5, 0x29, 0x20, 0x16, 0x21, 0x25, 0x62, 0x75,
+ 0xaf, 0xf5, 0x11, 0x22, 0x8e, 0xba, 0xf5, 0xcc, 0x72, 0x66, 0x7d, 0xbf,
+ 0x82, 0xf7, 0xdb, 0x22, 0x19, 0xcc, 0xef, 0x29, 0xb0, 0x19, 0xd3, 0x3f,
+ 0xea, 0x49, 0x45, 0x25, 0x75, 0xa4, 0x0e, 0x01, 0x5a, 0x5a, 0x10, 0xeb,
+ 0x9e, 0xd1, 0x3d, 0xae, 0x33, 0xcd, 0x44, 0xb4, 0xe3, 0x56, 0xc2, 0x09,
+ 0xb0, 0x4c, 0x0c, 0x63, 0xf8, 0x5e, 0x07, 0xe0, 0x71, 0x85, 0x70, 0xcd,
+ 0x04, 0x31, 0x2d, 0x05, 0xbd, 0xae, 0x79, 0xa1, 0xb6, 0xa6, 0xc4, 0x82,
+ 0x0a, 0xba, 0xd5, 0x37, 0x79, 0xb7, 0xf2, 0xf5, 0xd6, 0xe0, 0x45, 0xf9,
+ 0x62, 0xb0, 0x2d, 0x9b, 0xbc, 0xfc, 0x68, 0x0c, 0x61, 0xb2, 0x85, 0xd0,
+ 0x55, 0x0a, 0x7a, 0xde, 0xc0, 0x6b, 0x23, 0xd7, 0x17, 0xd2, 0x1f, 0x09,
+ 0x85, 0x08, 0x7d, 0x0c, 0x7e, 0xf6, 0xa0, 0xd2, 0x08, 0x77, 0xac, 0xa2,
+ 0x88, 0xa7, 0x48, 0x3c, 0xf2, 0xf0, 0x98, 0xb9, 0xba, 0x62, 0x98, 0x14,
+ 0x52, 0x24, 0x29, 0x18, 0x2c, 0x0c, 0xc5, 0xec, 0x5c, 0x2e, 0x17, 0xed,
+ 0xdb, 0x89, 0xb2, 0x6d, 0x55, 0x3a, 0x3c, 0x57, 0xc1, 0xf2, 0xe5, 0xbd,
+ 0x58, 0x7a, 0x2b, 0x82, 0xae, 0xc4, 0x2f, 0x42, 0xc7, 0x0f, 0xb9, 0x15,
+ 0xcc, 0x6d, 0x3c, 0xb9, 0xc9, 0xe6, 0x52, 0x91, 0xe5, 0x17, 0xd6, 0x97,
+ 0xef, 0xf4, 0x89, 0x51, 0x66, 0x57, 0xcd, 0x62, 0x38, 0x2f, 0xff, 0x61,
+ 0xe6, 0x38, 0xa5, 0x12, 0x6f, 0xc1, 0xa1, 0xa0, 0x14, 0xc2, 0x82, 0x17,
+ 0x05, 0x12, 0x77, 0x59, 0x58, 0xd3, 0xd2, 0xe3, 0x67, 0x13, 0x0e, 0x6a,
+ 0xa4, 0x90, 0x27, 0x47, 0xa6, 0xc7, 0xc7, 0xef, 0xdf, 0xbd, 0x1d, 0xbd,
+ 0x3b, 0xef, 0x9e, 0xfd, 0xf3, 0xb3, 0x8b, 0xcb, 0xe3, 0x97, 0xef, 0xcf,
+ 0x2f, 0xce, 0x2e, 0xcf, 0x8e, 0xce, 0x4e, 0x93, 0xad, 0xbd, 0xed, 0xb5,
+ 0x19, 0x53, 0xd6, 0xab, 0xe1, 0x31, 0xf0, 0x69, 0xff, 0x59, 0x6a, 0xd9,
+ 0x2e, 0x6c, 0xd1, 0x78, 0xc2, 0xd6, 0xbe, 0x97, 0xbd, 0xd5, 0x62, 0x35,
+ 0x86, 0x6b, 0x03, 0xd7, 0x1b, 0xe4, 0x7a, 0x9a, 0x5c, 0x2f, 0xe9, 0x98,
+ 0xd8, 0x90, 0xb9, 0xa6, 0x93, 0xd4, 0x4d, 0x70, 0x19, 0x65, 0x99, 0x04,
+ 0xee, 0xbc, 0x64, 0x9b, 0xb5, 0x1e, 0xbe, 0x27, 0x5d, 0xad, 0x85, 0xd6,
+ 0x00, 0x2a, 0x98, 0xdb, 0x15, 0x75, 0x7c, 0x5b, 0xd8, 0x7d, 0xc1, 0x14,
+ 0x1d, 0x60, 0x78, 0xb6, 0xaf, 0x80, 0xfe, 0x5e, 0x02, 0x29, 0x65, 0x61,
+ 0x95, 0xba, 0x61, 0x72, 0x1e, 0x96, 0x2d, 0x92, 0x37, 0xa6, 0x59, 0x21,
+ 0xe5, 0x33, 0xa5, 0x1f, 0x88, 0xa3, 0xa1, 0xc6, 0x07, 0x47, 0x75, 0xcd,
+ 0x03, 0xf4, 0x5b, 0x6f, 0xae, 0x90, 0xc2, 0x99, 0x05, 0x4e, 0x68, 0x7e,
+ 0x9b, 0xd9, 0x2b, 0x6e, 0xbd, 0x3e, 0x51, 0x7b, 0xa4, 0x96, 0x81, 0x61,
+ 0x2f, 0x22, 0x63, 0x8f, 0x35, 0x4a, 0xc3, 0xe9, 0x32, 0x38, 0x93, 0xd0,
+ 0x60, 0x94, 0xb9, 0x65, 0xe4, 0x8f, 0xe5, 0x9e, 0x8d, 0xcc, 0x93, 0x48,
+ 0xee, 0xf2, 0x3e, 0xad, 0x7d, 0x9f, 0x37, 0xb4, 0x04, 0xa7, 0xd6, 0x60,
+ 0xf5, 0x1d, 0xae, 0xd0, 0x77, 0x72, 0xa1, 0x43, 0xe4, 0x7a, 0x77, 0xa3,
+ 0xf1, 0xba, 0xa2, 0x19, 0x93, 0xe6, 0x76, 0xe9, 0x4e, 0x2e, 0x6e, 0x1b,
+ 0x4d, 0x66, 0x97, 0x12, 0xa8, 0xc2, 0xe9, 0x4b, 0x54, 0x18, 0x46, 0x73,
+ 0x3f, 0xb0, 0x70, 0x25, 0xc2, 0xef, 0x24, 0x9c, 0x0a, 0xcf, 0x1e, 0xfe,
+ 0xd1, 0xd1, 0x79, 0x84, 0x8a, 0xc1, 0xcb, 0x8d, 0x67, 0x81, 0xab, 0x65,
+ 0x7e, 0x77, 0x87, 0xbb, 0xc9, 0xe8, 0xcd, 0xd7, 0xc2, 0x4e, 0xf8, 0xf5,
+ 0x88, 0xb9, 0x9e, 0x49, 0xc9, 0xd6, 0x37, 0x86, 0x71, 0x02, 0x28, 0x08,
+ 0x8f, 0x99, 0x84, 0x9b, 0xff, 0x92, 0xba, 0x5c, 0x33, 0x4e, 0xb2, 0xf1,
+ 0xf4, 0x31, 0xce, 0x9b, 0xd3, 0x71, 0xf7, 0xa3, 0xe9, 0xe4, 0x1c, 0x45,
+ 0xa1, 0x1a, 0xb7, 0xd1, 0x71, 0x0f, 0xd7, 0x53, 0x61, 0xed, 0x07, 0xe7,
+ 0xe1, 0x81, 0x27, 0xe1, 0x21, 0x47, 0x41, 0x54, 0x1a, 0x15, 0xe2, 0xdd,
+ 0xe9, 0x38, 0x6f, 0x6d, 0xd5, 0x8c, 0x72, 0x66, 0x18, 0x3a, 0x98, 0x5d,
+ 0x41, 0x87, 0x43, 0x36, 0x5b, 0x1f, 0xbf, 0x44, 0xfc, 0xcb, 0x02, 0x9c,
+ 0xe2, 0xbc, 0x48, 0x68, 0x24, 0x9d, 0xf8, 0x4a, 0xb1, 0x72, 0xa8, 0x75,
+ 0xe7, 0xe0, 0x2f, 0xa8, 0xa8, 0xca, 0x04, 0xb2, 0x5c, 0x4c, 0x49, 0x98,
+ 0x10, 0x0a, 0x22, 0x76, 0xcb, 0x35, 0xc2, 0xe5, 0x9d, 0xa5, 0x19, 0xe5,
+ 0xc7, 0xdd, 0x71, 0x6a, 0x5d, 0x60, 0xac, 0x41, 0x91, 0x9a, 0x92, 0x61,
+ 0xe0, 0x60, 0xdc, 0xba, 0xab, 0x51, 0x0c, 0xc9, 0x51, 0x62, 0x89, 0x66,
+ 0x14, 0xca, 0xc6, 0x41, 0x92, 0xbc, 0xcc, 0x8a, 0xbb, 0x76, 0x87, 0xfa,
+ 0xe0, 0xb3, 0x80, 0xe7, 0x36, 0x6f, 0x5c, 0xca, 0xb5, 0xd2, 0xfd, 0x5f,
+ 0x79, 0x5b, 0x25, 0xec, 0x52, 0xbb, 0xcf, 0x31, 0x09, 0xf0, 0xc2, 0x4e,
+ 0x83, 0x22, 0x60, 0xfc, 0xc9, 0xd8, 0x02, 0x73, 0x82, 0x06, 0xe9, 0xf0,
+ 0xc9, 0x87, 0x4c, 0x03, 0x58, 0xe1, 0x60, 0x1f, 0xd5, 0xcb, 0xf1, 0xdf,
+ 0xe8, 0xb8, 0xc2, 0x1a, 0x20, 0x2b, 0xbd, 0x52, 0x6e, 0x30, 0x05, 0xae,
+ 0x91, 0x83, 0xce, 0x3c, 0xc5, 0x81, 0xa5, 0xd0, 0x83, 0x4c, 0x95, 0x56,
+ 0x10, 0x3d, 0x54, 0x12, 0xec, 0xf6, 0x2e, 0x40, 0x9f, 0xa2, 0x09, 0x4b,
+ 0xd9, 0x8a, 0xcb, 0x57, 0xb7, 0xf8, 0xe0, 0x8a, 0xa4, 0x13, 0xe3, 0xa1,
+ 0x3a, 0xd7, 0x18, 0xcf, 0x26, 0x83, 0xf0, 0x2c, 0x24, 0x94, 0x1e, 0x5f,
+ 0xd9, 0x96, 0xca, 0xbc, 0xba, 0xff, 0x17, 0xfa, 0x23, 0x1c, 0x45, 0x2b,
+ 0x86, 0x42, 0xf3, 0xac, 0xa7, 0x9d, 0x1e, 0x87, 0xf8, 0xc0, 0xeb, 0xab,
+ 0x3e, 0xf0, 0xc2, 0x09, 0xd4, 0xf5, 0x6d, 0x43, 0xf6, 0x3c, 0xe4, 0x03,
+ 0xef, 0x0a, 0x25, 0x1c, 0xd3, 0xfd, 0xbd, 0xb0, 0x1c, 0xe8, 0xb7, 0x69,
+ 0x55, 0x00, 0xf2, 0xed, 0xdb, 0x14, 0xc4, 0x50, 0xb1, 0x90, 0x0a, 0x09,
+ 0xe9, 0x15, 0xa1, 0x65, 0xab, 0xcc, 0x11, 0xb6, 0x92, 0x17, 0x8c, 0x89,
+ 0x68, 0x84, 0x03, 0x5a, 0xb1, 0x9b, 0x8b, 0xb2, 0x61, 0x36, 0x6a, 0x82,
+ 0xd7, 0x92, 0xce, 0x50, 0x91, 0xb3, 0xcd, 0x9b, 0x64, 0x55, 0x36, 0xa9,
+ 0x35, 0xbb, 0x9b, 0xe0, 0x93, 0x5a, 0x2e, 0x50, 0xa9, 0x52, 0x90, 0x4f,
+ 0x12, 0x19, 0xf5, 0xe4, 0x8c, 0x7c, 0x91, 0x31, 0x52, 0x70, 0xe0, 0x58,
+ 0xe2, 0xea, 0x8f, 0x65, 0x4e, 0xbc, 0x33, 0x1b, 0xf6, 0x4a, 0x30, 0x7a,
+ 0x90, 0xdb, 0x25, 0x97, 0xf1, 0x8a, 0x0a, 0x0e, 0x98, 0x22, 0xb6, 0x8a,
+ 0xc3, 0xed, 0xa6, 0x75, 0x2b, 0x21, 0x27, 0x6f, 0x21, 0x78, 0x81, 0x60,
+ 0x30, 0xf6, 0x04, 0xb1, 0xa1, 0x99, 0x3d, 0x59, 0x70, 0x5c, 0x49, 0x0c,
+ 0x39, 0x95, 0x88, 0xd4, 0x3d, 0x60, 0xca, 0x0a, 0xb2, 0x1f, 0x26, 0x96,
+ 0x23, 0xa8, 0x4b, 0x39, 0xdd, 0xae, 0x1b, 0x6d, 0x6f, 0x55, 0x8b, 0xb3,
+ 0x74, 0x0a, 0xe3, 0xf0, 0x1e, 0x31, 0xfe, 0xe9, 0x4e, 0x91, 0x5d, 0xeb,
+ 0x95, 0x99, 0x05, 0x25, 0xdd, 0x12, 0x1f, 0x6b, 0xde, 0x60, 0xc5, 0x3a,
+ 0xc8, 0x52, 0x45, 0x5c, 0x4a, 0x9d, 0x8a, 0xf9, 0x32, 0x2c, 0x72, 0x27,
+ 0x91, 0x34, 0x0b, 0xa4, 0x61, 0xda, 0x25, 0xe8, 0x11, 0xe2, 0xf1, 0x60,
+ 0x0e, 0x7e, 0xd8, 0xbb, 0x52, 0x97, 0x00, 0xae, 0x1c, 0x04, 0xd7, 0xe2,
+ 0x3e, 0xb9, 0x1d, 0xcb, 0xb9, 0x62, 0x36, 0x4c, 0x31, 0x1d, 0x18, 0x21,
+ 0xb0, 0x58, 0xe3, 0xeb, 0xfe, 0xd4, 0xd7, 0x41, 0xb7, 0x20, 0xa9, 0x3e,
+ 0xc9, 0x03, 0xff, 0x84, 0x91, 0x6f, 0x32, 0x77, 0x21, 0xa4, 0xdb, 0xa8,
+ 0x04, 0x8f, 0x62, 0x33, 0x19, 0x83, 0xd6, 0x85, 0xb6, 0xc2, 0x4a, 0x66,
+ 0x7e, 0xcd, 0xb9, 0xc2, 0x04, 0xea, 0x84, 0xad, 0xc2, 0x21, 0xf1, 0xf4,
+ 0xc9, 0xcc, 0xbd, 0xe3, 0x94, 0x27, 0xb4, 0x89, 0x5c, 0xd6, 0x42, 0xc0,
+ 0xcc, 0xde, 0xb7, 0xd8, 0x28, 0x0a, 0xe6, 0x11, 0x2c, 0x48, 0xcc, 0xf2,
+ 0xce, 0xcf, 0xc9, 0xb5, 0xe4, 0x92, 0x13, 0xbb, 0x9d, 0x94, 0xb5, 0x8e,
+ 0xf9, 0x55, 0x20, 0x27, 0xf1, 0x21, 0xea, 0x58, 0xbe, 0x96, 0x5f, 0x60,
+ 0xc5, 0x62, 0xc4, 0xa8, 0x35, 0xa6, 0x1d, 0x9c, 0xa8, 0xfe, 0x9c, 0xcb,
+ 0xa3, 0xc7, 0xd1, 0x69, 0x23, 0x39, 0x6f, 0x5a, 0x44, 0x1d, 0x72, 0x5a,
+ 0xa1, 0x81, 0x9e, 0xa3, 0x8d, 0x8b, 0x05, 0x7d, 0x6a, 0xee, 0x71, 0x85,
+ 0xca, 0xf7, 0x10, 0x4b, 0x57, 0xf8, 0x87, 0x34, 0xec, 0xfe, 0xe9, 0x7e,
+ 0x6b, 0x46, 0x17, 0x13, 0xd2, 0xb4, 0x56, 0xab, 0x3d, 0x16, 0xed, 0xaf,
+ 0x3c, 0x37, 0x27, 0x7a, 0xdd, 0xa0, 0xf0, 0xd0, 0xaf, 0x19, 0x54, 0xab,
+ 0xe0, 0xbc, 0x8c, 0x41, 0xfa, 0xdc, 0x59, 0x11, 0xfe, 0xc8, 0xda, 0xb8,
+ 0xcf, 0x8a, 0x21, 0x98, 0x36, 0xd7, 0xd4, 0x77, 0xf5, 0x86, 0x61, 0x1f,
+ 0xfc, 0xa5, 0x23, 0xb9, 0x7f, 0x1a, 0xb1, 0x35, 0xe8, 0xbf, 0x3f, 0x1e,
+ 0xc0, 0xa5, 0x36, 0xfd, 0x79, 0x65, 0x3f, 0x8e, 0xfb, 0xd2, 0x97, 0xdf,
+ 0xa1, 0x1b, 0xf9, 0xe2, 0x86, 0xfc, 0x25, 0xcf, 0x63, 0xb9, 0x30, 0xde,
+ 0x44, 0xc8, 0x63, 0xbf, 0xfd, 0xf7, 0xab, 0x99, 0xa3, 0x9f, 0x59, 0xf3,
+ 0x7d, 0x79, 0xec, 0x37, 0xff, 0x3e, 0x9f, 0xdd, 0xf5, 0x97, 0x8b, 0x95,
+ 0x8a, 0x2f, 0x05, 0x71, 0xdc, 0x96, 0x38, 0xee, 0x56, 0xf9, 0x15, 0x42,
+ 0x51, 0x40, 0xcc, 0xa1, 0x54, 0x94, 0x6f, 0x45, 0x6b, 0x25, 0xf8, 0x62,
+ 0xf1, 0x37, 0x91, 0x60, 0x10, 0xcd, 0xe1, 0xe4, 0x48, 0xf1, 0x92, 0xe7,
+ 0xfc, 0xe7, 0xce, 0x57, 0xb1, 0x35, 0x52, 0xee, 0xd2, 0x63, 0xba, 0x06,
+ 0xb5, 0xdc, 0x09, 0xea, 0x67, 0x70, 0x42, 0xbf, 0xa8, 0xbc, 0xb6, 0xf6,
+ 0x03, 0x4d, 0x96, 0x42, 0x3a, 0xe8, 0xd5, 0x58, 0x8d, 0x15, 0x99, 0x21,
+ 0xc2, 0x75, 0x92, 0x09, 0xa6, 0x3e, 0x7f, 0x07, 0xe8, 0x21, 0xc5, 0x23,
+ 0xf3, 0x3e, 0x58, 0xaf, 0x2a, 0x98, 0xc5, 0xd9, 0x3a, 0x5e, 0xad, 0x4a,
+ 0xc7, 0x2f, 0xfa, 0xba, 0x2f, 0x35, 0x4e, 0x4c, 0x73, 0xb4, 0xad, 0x04,
+ 0xd8, 0xa8, 0xfb, 0x09, 0xcb, 0x19, 0x92, 0xb0, 0x30, 0x5e, 0x9d, 0x74,
+ 0xd3, 0x19, 0xe3, 0x67, 0x93, 0xa3, 0xb3, 0xb7, 0x6f, 0x8f, 0x8f, 0xba,
+ 0xb1, 0x5d, 0x90, 0x4b, 0x20, 0x45, 0x00, 0x1e, 0x5a, 0x51, 0xf5, 0x83,
+ 0x1a, 0x7b, 0xf8, 0x3a, 0x93, 0xa7, 0xdb, 0xf0, 0x0b, 0xf7, 0x00, 0xf5,
+ 0x77, 0x52, 0xe1, 0x50, 0xe5, 0x4c, 0x03, 0x8f, 0x5d, 0x93, 0x77, 0x40,
+ 0x24, 0xfd, 0x2a, 0xd8, 0x0f, 0xce, 0x1b, 0x01, 0xb7, 0x14, 0xd5, 0x5f,
+ 0x64, 0x0d, 0x14, 0x26, 0xa6, 0xf6, 0x00, 0xdd, 0x35, 0x26, 0xe3, 0x8e,
+ 0xe0, 0x8b, 0x25, 0x71, 0x2d, 0x34, 0x66, 0xec, 0x5e, 0x66, 0x3e, 0x2e,
+ 0xca, 0xe3, 0x18, 0x94, 0x57, 0x5c, 0xee, 0x73, 0x9e, 0x56, 0x1f, 0x28,
+ 0x36, 0xec, 0x65, 0x74, 0x20, 0xa3, 0x0f, 0x04, 0xc1, 0xd3, 0x69, 0x2c,
+ 0x55, 0x1c, 0x45, 0x83, 0x15, 0xc2, 0x8e, 0x8c, 0x31, 0xee, 0x90, 0x94,
+ 0xc8, 0x3b, 0xd0, 0x54, 0x3b, 0x7a, 0xbd, 0xc8, 0x6e, 0xe9, 0x33, 0xcc,
+ 0x90, 0x41, 0xf9, 0xde, 0x21, 0xdf, 0x3e, 0x73, 0x3c, 0xb3, 0x87, 0xfe,
+ 0x4e, 0x52, 0xcd, 0x69, 0xad, 0xe6, 0xcc, 0x68, 0x0f, 0xd2, 0x5c, 0x2a,
+ 0x12, 0xc5, 0x69, 0x1a, 0xc1, 0x5c, 0xbd, 0x56, 0xca, 0x3b, 0x0f, 0xef,
+ 0xa6, 0x4c, 0x1f, 0x7e, 0xfe, 0x05, 0x87, 0x6f, 0x24, 0x93, 0xc5, 0x23,
+ 0xc3, 0x5b, 0x15, 0x99, 0xc5, 0x7c, 0x63, 0x21, 0xc8, 0x5e, 0xa9, 0x1d,
+ 0x41, 0x8e, 0x54, 0xd3, 0xf3, 0x77, 0x7d, 0x70, 0x9e, 0x89, 0xca, 0x1a,
+ 0x86, 0x33, 0x84, 0xd8, 0x93, 0x2e, 0x1d, 0x2b, 0x98, 0x8a, 0xe0, 0x70,
+ 0x24, 0x8a, 0xb2, 0xeb, 0x25, 0xe7, 0xa4, 0x51, 0xe4, 0x1e, 0xc7, 0x35,
+ 0x50, 0x74, 0x01, 0x10, 0x45, 0xb2, 0x56, 0x5f, 0x4b, 0x94, 0xa3, 0xe0,
+ 0xf4, 0x94, 0x4a, 0x91, 0xea, 0xf4, 0x2b, 0xe1, 0x08, 0x3b, 0xf4, 0xe5,
+ 0x08, 0xe7, 0xc5, 0x62, 0xd9, 0x04, 0x61, 0x39, 0xa2, 0x5f, 0xe2, 0x94,
+ 0xfb, 0xaf, 0x06, 0x61, 0xc9, 0xa2, 0x74, 0xea, 0xaf, 0x2a, 0x44, 0x38,
+ 0xac, 0xff, 0xba, 0x31, 0x02, 0x60, 0xad, 0x97, 0xd6, 0xb7, 0x69, 0x9c,
+ 0x51, 0x23, 0x50, 0x6e, 0x8e, 0xa3, 0xba, 0xed, 0xba, 0x03, 0xf7, 0x42,
+ 0x77, 0x37, 0xd8, 0xb7, 0x54, 0x48, 0xac, 0x23, 0xd8, 0x00, 0x05, 0x60,
+ 0x47, 0xfe, 0x19, 0x3b, 0x87, 0xbc, 0x4f, 0xd9, 0xaa, 0x6b, 0xe9, 0x03,
+ 0x57, 0x51, 0xe2, 0x87, 0x7e, 0xfb, 0xbb, 0x69, 0x7d, 0x15, 0x7a, 0x77,
+ 0x39, 0xda, 0xe7, 0x7e, 0x8f, 0x1e, 0x44, 0xcb, 0xba, 0xb7, 0xbe, 0xfd,
+ 0xf0, 0xcf, 0x06, 0x5c, 0x74, 0xf7, 0xf8, 0xe5, 0xdc, 0xcd, 0x7b, 0x2f,
+ 0xd5, 0x22, 0xa4, 0x6e, 0x00, 0x1b, 0xf5, 0xee, 0xe4, 0xb5, 0xb7, 0xb0,
+ 0x4b, 0x2d, 0xf2, 0x2f, 0xe2, 0x48, 0xf8, 0x3b, 0xd6, 0x11, 0x09, 0xe7,
+ 0x3c, 0xec, 0x52, 0xbe, 0xf7, 0x12, 0x6e, 0x65, 0x66, 0x76, 0x51, 0x4b,
+ 0x36, 0x33, 0xeb, 0xe1, 0x13, 0x47, 0x69, 0x69, 0xbf, 0xa5, 0xc2, 0x82,
+ 0x74, 0xb0, 0x96, 0xba, 0x82, 0x4f, 0xb4, 0x26, 0xe1, 0x21, 0xf7, 0x52,
+ 0x30, 0x25, 0xdd, 0xf4, 0xae, 0xd6, 0x44, 0x85, 0xb3, 0xb0, 0x0e, 0x94,
+ 0xee, 0xb6, 0x27, 0x9e, 0xfa, 0xcd, 0x8f, 0xc5, 0xc3, 0x11, 0xd5, 0xf1,
+ 0x95, 0x59, 0x05, 0xaa, 0xa6, 0xe6, 0x98, 0xca, 0x79, 0x25, 0xa2, 0x9a,
+ 0xa0, 0x42, 0x1e, 0x9e, 0xda, 0xf3, 0x4c, 0xac, 0x02, 0x54, 0xff, 0xbf,
+ 0x11, 0x51, 0xdd, 0x82, 0x54, 0x93, 0x82, 0x05, 0x7e, 0xa3, 0x08, 0xaa,
+ 0xda, 0xe3, 0xc1, 0x60, 0x48, 0xf5, 0x3a, 0x44, 0xb5, 0x07, 0xa8, 0x5e,
+ 0x83, 0xa7, 0x66, 0xd2, 0xa4, 0x75, 0x88, 0xea, 0x5f, 0x09, 0xa9, 0x5e,
+ 0x81, 0xa8, 0xfe, 0xc5, 0x80, 0xea, 0xdf, 0x18, 0x51, 0xfd, 0x5b, 0x62,
+ 0x7b, 0x71, 0x7a, 0x68, 0x3d, 0xf2, 0x89, 0xe4, 0xaa, 0x3c, 0xbf, 0x9f,
+ 0x72, 0x34, 0xe0, 0x6b, 0xf3, 0xe2, 0xb6, 0xd2, 0x16, 0xab, 0x35, 0x56,
+ 0x7d, 0x0f, 0x08, 0x84, 0x64, 0xb3, 0x44, 0x10, 0x65, 0x7e, 0x54, 0xf5,
+ 0x51, 0xec, 0xac, 0xd7, 0xf5, 0x6c, 0x80, 0x1e, 0x50, 0x22, 0x69, 0x60,
+ 0x29, 0x3a, 0x49, 0xd3, 0x79, 0xee, 0xb7, 0x17, 0x3a, 0xcd, 0xac, 0xde,
+ 0x7b, 0xe4, 0xec, 0x75, 0xf9, 0xcb, 0x92, 0x92, 0x1c, 0x63, 0xb6, 0x3b,
+ 0xcb, 0x9f, 0x91, 0xc8, 0x18, 0x65, 0xae, 0xe0, 0xb7, 0xe0, 0x27, 0xcd,
+ 0x6c, 0xe9, 0x35, 0x1b, 0x95, 0xb0, 0xb5, 0x54, 0xc3, 0x6c, 0x15, 0x64,
+ 0x35, 0xfb, 0xe3, 0xc0, 0x25, 0x42, 0x79, 0x29, 0x2a, 0xb6, 0x6b, 0x1c,
+ 0xc2, 0xbd, 0xe1, 0x23, 0x4e, 0x7b, 0x55, 0xde, 0x0c, 0xe9, 0x67, 0x40,
+ 0x56, 0x83, 0x0e, 0x80, 0x31, 0x58, 0xcd, 0x3b, 0x2e, 0x6c, 0x24, 0xcf,
+ 0x0f, 0x93, 0x0b, 0x52, 0x1e, 0x8d, 0xb2, 0x8e, 0xd0, 0x21, 0xce, 0xb7,
+ 0x69, 0x3b, 0x91, 0xdf, 0xc7, 0x9a, 0x6b, 0xd3, 0x54, 0x9a, 0x1d, 0xf4,
+ 0xee, 0xe2, 0x34, 0x8c, 0xf6, 0x22, 0x82, 0x70, 0xb0, 0xb3, 0x03, 0xc0,
+ 0xd1, 0x4d, 0xfa, 0xe9, 0xd3, 0xb0, 0xce, 0x76, 0xa6, 0xe5, 0xa4, 0xde,
+ 0xa1, 0x15, 0xd4, 0xaf, 0xdf, 0x34, 0xf3, 0xd9, 0xef, 0x7e, 0x10, 0xcc,
+ 0x8a, 0xd2, 0xdd, 0xf6, 0x10, 0x15, 0xcf, 0x7f, 0xf4, 0xf7, 0xd8, 0x59,
+ 0x16, 0xd4, 0xf5, 0x9c, 0x11, 0x5b, 0x6b, 0x7b, 0x62, 0x1f, 0xfe, 0x3d,
+ 0x7a, 0x82, 0x6c, 0xe3, 0xa8, 0x54, 0x68, 0xf5, 0x01, 0x8f, 0xfd, 0x1e,
+ 0xdf, 0xff, 0xb8, 0xb7, 0xea, 0xb3, 0x28, 0x90, 0x88, 0x27, 0x7e, 0xc3,
+ 0x0f, 0xbf, 0xb3, 0x4e, 0x1a, 0x4e, 0xce, 0x7e, 0x4e, 0xff, 0x3d, 0xd0,
+ 0x19, 0x5e, 0x5b, 0x79, 0x69, 0x05, 0xa1, 0xb5, 0x57, 0xf7, 0x59, 0x9c,
+ 0x3f, 0x6b, 0xd9, 0x0f, 0x56, 0xd1, 0x1b, 0x30, 0xb9, 0x8d, 0x50, 0xdd,
+ 0x82, 0x81, 0x7c, 0x60, 0x99, 0x02, 0x59, 0x9b, 0x11, 0x76, 0x0e, 0xf6,
+ 0x2f, 0x1b, 0x3b, 0x5d, 0xf8, 0x62, 0xba, 0x14, 0x41, 0x56, 0xad, 0x03,
+ 0x4c, 0x20, 0x46, 0x8f, 0xc1, 0xb4, 0x08, 0x22, 0xe0, 0x61, 0xcf, 0x7a,
+ 0x89, 0x7b, 0x01, 0x56, 0x66, 0xc6, 0x6c, 0x72, 0xeb, 0x09, 0xbd, 0x21,
+ 0xae, 0x7c, 0x66, 0x95, 0x31, 0xbb, 0x91, 0x02, 0x78, 0xb2, 0xa0, 0x18,
+ 0x1c, 0xd3, 0xe3, 0xcc, 0xa5, 0xe3, 0xdb, 0xb3, 0x7e, 0x90, 0xf4, 0x06,
+ 0xef, 0x92, 0x83, 0xde, 0xef, 0x78, 0x37, 0x7a, 0xce, 0xba, 0x5f, 0x0d,
+ 0x3d, 0x5e, 0x0d, 0xc4, 0x6d, 0xa3, 0x31, 0x03, 0x1a, 0x81, 0x38, 0x04,
+ 0xf7, 0x8a, 0xa8, 0x85, 0xdf, 0x76, 0x17, 0x20, 0x82, 0x66, 0x25, 0xc4,
+ 0x0e, 0x03, 0x64, 0xec, 0xe8, 0x1a, 0xe4, 0xd4, 0x82, 0xa0, 0xc0, 0x0f,
+ 0xa1, 0xbd, 0x0b, 0x2a, 0xb5, 0x3a, 0x84, 0x6e, 0x0b, 0x93, 0xeb, 0x20,
+ 0xb9, 0x04, 0x01, 0x71, 0x80, 0x5c, 0x60, 0xd0, 0xd9, 0x93, 0x88, 0xda,
+ 0xf6, 0x81, 0x83, 0x0e, 0x1c, 0xac, 0xab, 0xe1, 0xb8, 0xe6, 0x5a, 0xf4,
+ 0x42, 0x9a, 0x8e, 0x33, 0x8d, 0xfc, 0x50, 0xf1, 0x60, 0x1a, 0xb6, 0x21,
+ 0x48, 0xb4, 0x3f, 0x0b, 0x0a, 0x62, 0x09, 0x5c, 0x5b, 0xd0, 0xc7, 0x36,
+ 0xc8, 0xfb, 0x31, 0x4f, 0xed, 0x35, 0xe3, 0xbe, 0xc5, 0x33, 0xea, 0x3e,
+ 0xb5, 0x2a, 0x5c, 0xc1, 0x4c, 0x13, 0x91, 0xec, 0xb4, 0xb7, 0xa3, 0x51,
+ 0x88, 0xca, 0x2d, 0x8c, 0x06, 0x57, 0x5e, 0x17, 0xf9, 0x3f, 0xa4, 0x46,
+ 0x49, 0x17, 0x4a, 0xd7, 0x82, 0x45, 0xb7, 0xe3, 0x96, 0x14, 0x4f, 0xee,
+ 0xae, 0x06, 0x30, 0x41, 0x2a, 0xa5, 0x00, 0x6d, 0x21, 0xea, 0x16, 0x9d,
+ 0x4a, 0x2e, 0x41, 0xce, 0x85, 0x28, 0x5a, 0xb1, 0x61, 0xe5, 0x89, 0xd8,
+ 0x08, 0xef, 0x5a, 0x9a, 0x03, 0x01, 0x9f, 0xc6, 0x8f, 0x4f, 0xf6, 0x2b,
+ 0x30, 0xcc, 0xa4, 0x78, 0xfc, 0x2a, 0x14, 0x73, 0x5b, 0xb3, 0xf4, 0x68,
+ 0x9d, 0xb2, 0x4f, 0x46, 0x5f, 0xa1, 0xc3, 0x11, 0xa3, 0x63, 0x12, 0x0f,
+ 0x5e, 0xa4, 0x96, 0x95, 0xef, 0xae, 0x05, 0x07, 0xfd, 0x03, 0xb8, 0x9d,
+ 0xa8, 0x9d, 0x26, 0x5a, 0xbf, 0x20, 0xc2, 0xec, 0x64, 0x5b, 0x7f, 0x00,
+ 0xa5, 0x13, 0x79, 0x3b, 0x95, 0x94, 0x57, 0xba, 0x0c, 0xbe, 0x7a, 0x2e,
+ 0x86, 0x98, 0x31, 0x0f, 0x13, 0x75, 0xcb, 0x1d, 0x49, 0x3e, 0xb0, 0xd1,
+ 0x7a, 0x6a, 0x0b, 0x2a, 0x78, 0x40, 0x16, 0xca, 0x58, 0xf3, 0x84, 0x1a,
+ 0x9e, 0x5b, 0x7a, 0x7b, 0x48, 0xac, 0x43, 0x94, 0xc7, 0x61, 0x09, 0x61,
+ 0xc8, 0xdc, 0x41, 0xc2, 0x90, 0xee, 0x89, 0xee, 0xd6, 0x72, 0x04, 0xc9,
+ 0xb6, 0x8b, 0x1c, 0x4c, 0x17, 0x47, 0xa8, 0xad, 0xfe, 0xe3, 0x78, 0xd0,
+ 0x91, 0xf3, 0x2c, 0x45, 0xe3, 0x43, 0x2e, 0x46, 0x9d, 0xa6, 0x66, 0x69,
+ 0xf4, 0x56, 0xa2, 0x4d, 0xe4, 0x6c, 0x06, 0xbb, 0x26, 0x7d, 0x92, 0x3e,
+ 0x2c, 0x72, 0xc5, 0x9d, 0x31, 0x58, 0xa8, 0x94, 0xed, 0x0e, 0xf6, 0x4e,
+ 0x1a, 0x59, 0x51, 0x3c, 0xfb, 0x77, 0x00, 0xbf, 0xff, 0x1a, 0xec, 0xfb,
+ 0xef, 0x0c, 0x7e, 0xf7, 0x6e, 0x0a, 0xba, 0x76, 0xc2, 0x7b, 0x02, 0xe8,
+ 0x11, 0xb2, 0x5b, 0x19, 0x2e, 0x72, 0x9b, 0x5a, 0xfe, 0xfe, 0x98, 0xd9,
+ 0x15, 0x3d, 0x49, 0xfd, 0x16, 0xda, 0xcf, 0x93, 0x20, 0x2a, 0x1f, 0x19,
+ 0x73, 0x4b, 0x95, 0x83, 0x22, 0xf4, 0x16, 0xe8, 0x00, 0xa5, 0xb1, 0x4e,
+ 0x33, 0xe1, 0xa5, 0xf9, 0x8b, 0xa3, 0xcf, 0xff, 0xbd, 0xf5, 0xf5, 0x3d,
+ 0x23, 0x9b, 0x9f, 0x7b, 0xf7, 0xf1, 0x97, 0x91, 0x0b, 0x39, 0xf0, 0xec,
+ 0x70, 0x2a, 0x0d, 0xbd, 0xda, 0x66, 0x7f, 0x8b, 0x08, 0xbd, 0xf8, 0x81,
+ 0x41, 0xcd, 0x3e, 0x66, 0xf8, 0x12, 0xf1, 0x46, 0xe8, 0x21, 0x7a, 0x79,
+ 0x85, 0x80, 0x13, 0x7e, 0x41, 0xe5, 0x16, 0x37, 0xf2, 0x7c, 0x9c, 0x35,
+ 0xb7, 0x04, 0xb3, 0xc7, 0x6c, 0xe8, 0x34, 0x7a, 0x32, 0xc0, 0xca, 0xc3,
+ 0x95, 0xb0, 0x80, 0xbe, 0x10, 0x3b, 0x92, 0x44, 0x61, 0xf2, 0x4a, 0x6b,
+ 0x3c, 0x6a, 0xf8, 0x2b, 0x38, 0x7e, 0xb1, 0x7a, 0x18, 0x2e, 0x92, 0xc7,
+ 0xdf, 0xa7, 0x79, 0xf1, 0x40, 0x8b, 0xad, 0x14, 0x05, 0x05, 0x78, 0xc8,
+ 0x83, 0xbe, 0x23, 0xd4, 0x1e, 0x63, 0x39, 0xb6, 0x31, 0x17, 0x51, 0x5b,
+ 0xcc, 0xe9, 0xe2, 0x7b, 0x7a, 0x56, 0x3b, 0x8c, 0x22, 0x31, 0x1d, 0xdc,
+ 0x8f, 0x91, 0xbc, 0x4b, 0x5e, 0x46, 0xef, 0x22, 0x45, 0x00, 0x82, 0xa7,
+ 0x42, 0x22, 0x77, 0x2c, 0x40, 0xec, 0x3c, 0xac, 0x3c, 0x16, 0xde, 0x30,
+ 0xe7, 0x19, 0x01, 0xc6, 0xe4, 0xb4, 0xe6, 0xca, 0xef, 0x40, 0xdf, 0x1a,
+ 0x20, 0xba, 0xe8, 0x44, 0x25, 0xdb, 0xd4, 0xf4, 0x91, 0x20, 0xa0, 0x43,
+ 0x1f, 0x4d, 0x17, 0xe6, 0x4b, 0x20, 0xa6, 0xa7, 0xeb, 0x6d, 0x9e, 0x72,
+ 0xdd, 0x28, 0x91, 0x7a, 0xde, 0x34, 0x74, 0x62, 0x95, 0x11, 0xf0, 0x69,
+ 0x58, 0x6b, 0x49, 0x8c, 0x08, 0x16, 0x4c, 0x02, 0x5c, 0x16, 0x57, 0x81,
+ 0x06, 0x25, 0xc5, 0xf5, 0x4d, 0xbb, 0x32, 0x4e, 0x73, 0x24, 0x04, 0xb0,
+ 0x85, 0x24, 0xaa, 0x75, 0x04, 0x76, 0x58, 0xab, 0xf8, 0xb2, 0x64, 0x75,
+ 0x8a, 0x13, 0x4d, 0xba, 0x7d, 0x17, 0x4c, 0x95, 0x16, 0xa8, 0x62, 0x77,
+ 0x36, 0x7d, 0x81, 0xeb, 0x4d, 0x86, 0x46, 0x83, 0x70, 0xab, 0xe8, 0x0b,
+ 0xc2, 0x30, 0x2a, 0xed, 0xdb, 0x32, 0x7e, 0xab, 0xa2, 0x44, 0xb1, 0x88,
+ 0x7a, 0x4b, 0x38, 0x88, 0x1f, 0x38, 0x12, 0x27, 0xd9, 0x1a, 0x51, 0xd1,
+ 0x86, 0xd1, 0xd1, 0xf9, 0x76, 0x72, 0xde, 0x71, 0xf1, 0x22, 0xd9, 0x82,
+ 0xee, 0x6c, 0x5f, 0xde, 0x4b, 0xd9, 0x24, 0xa6, 0x90, 0x5b, 0xed, 0x0e,
+ 0xcc, 0xe5, 0x2c, 0x5b, 0xa2, 0x44, 0x84, 0xe1, 0x7e, 0x73, 0xf9, 0xd7,
+ 0x19, 0xcb, 0x21, 0xf8, 0x52, 0x98, 0x3f, 0x41, 0x3c, 0x8f, 0xbe, 0x30,
+ 0x30, 0x36, 0x5d, 0x49, 0x29, 0x44, 0x5c, 0xa8, 0x44, 0x1c, 0xa4, 0xea,
+ 0xd8, 0x9c, 0x05, 0xc0, 0x33, 0x4c, 0x84, 0x02, 0x81, 0x3d, 0xa2, 0x18,
+ 0xa9, 0x18, 0x56, 0xf3, 0xed, 0xd7, 0xa1, 0xf2, 0xc6, 0xf6, 0xbe, 0xce,
+ 0x8a, 0xb0, 0x38, 0x00, 0x3e, 0x4a, 0xfa, 0x82, 0x6c, 0xe0, 0xe9, 0xb0,
+ 0x4b, 0x4b, 0xed, 0xb9, 0x70, 0xa5, 0x73, 0x39, 0xb0, 0xf8, 0xbc, 0xdf,
+ 0x57, 0x10, 0xd8, 0xb1, 0x2a, 0x49, 0x05, 0xc3, 0x48, 0xf0, 0x5e, 0x93,
+ 0xcb, 0xbc, 0xc1, 0x45, 0xba, 0xb8, 0xa3, 0xc9, 0x30, 0x8f, 0xd5, 0xf5,
+ 0xcd, 0xbe, 0x11, 0x4f, 0xfb, 0xc3, 0xcf, 0xd9, 0xc0, 0xbd, 0x31, 0x3a,
+ 0x41, 0x84, 0xed, 0x92, 0x23, 0xf9, 0x52, 0x5a, 0xb0, 0xd3, 0x9e, 0x28,
+ 0xfb, 0x43, 0x67, 0x5f, 0x0c, 0xfe, 0x07, 0xed, 0xb4, 0xbf, 0x2f, 0xc3,
+ 0x58, 0xca, 0x16, 0x6d, 0xa8, 0x84, 0xb6, 0xd5, 0x36, 0x17, 0xc2, 0xe2,
+ 0xb8, 0xef, 0x38, 0x6f, 0xc0, 0x3c, 0xad, 0xfc, 0x4a, 0xed, 0x83, 0x89,
+ 0x62, 0x31, 0x15, 0xde, 0x8a, 0x66, 0xfb, 0x0e, 0x93, 0xff, 0x41, 0x9f,
+ 0xd2, 0xb7, 0x19, 0xc7, 0x8e, 0xc0, 0xf4, 0xd7, 0xc7, 0xaf, 0xce, 0x2e,
+ 0x8e, 0xdb, 0x69, 0x58, 0x0d, 0x57, 0x26, 0x46, 0xe0, 0xb5, 0xdb, 0x3b,
+ 0x90, 0x46, 0x29, 0x8d, 0x00, 0xee, 0xc2, 0xbc, 0xc8, 0x09, 0x39, 0x9b,
+ 0x9c, 0x7f, 0xff, 0xd2, 0xf6, 0x2e, 0x87, 0x78, 0x7e, 0xe5, 0xd5, 0xd4,
+ 0xed, 0xf3, 0x4c, 0x77, 0x35, 0x08, 0xd2, 0x35, 0xa8, 0x70, 0x8b, 0x14,
+ 0x82, 0xb5, 0xfd, 0x43, 0xc0, 0x9b, 0x81, 0x0a, 0x9a, 0x84, 0x0c, 0x8a,
+ 0xe2, 0xba, 0xa6, 0xa4, 0x62, 0xdb, 0x68, 0xa0, 0x5e, 0xb3, 0x86, 0x01,
+ 0x66, 0x1e, 0x09, 0xec, 0xa7, 0x4c, 0xce, 0x44, 0x8c, 0x4d, 0xc3, 0x24,
+ 0xfc, 0x90, 0x06, 0xe8, 0xf1, 0x95, 0x18, 0xb2, 0x82, 0x2a, 0x15, 0xb3,
+ 0x3f, 0x9a, 0xaf, 0x55, 0xa2, 0xd8, 0xa7, 0x4d, 0x6b, 0x6b, 0xc4, 0xf4,
+ 0x99, 0x48, 0x4b, 0x5c, 0xef, 0xfe, 0x44, 0x46, 0xa2, 0x95, 0xe6, 0x9b,
+ 0x5b, 0xf5, 0x76, 0xbf, 0xd5, 0x55, 0xfb, 0x9b, 0x44, 0xed, 0xf4, 0xcd,
+ 0xbf, 0x6c, 0x3a, 0x8c, 0x3e, 0xd7, 0xba, 0x8a, 0xd7, 0x86, 0x73, 0xb5,
+ 0x82, 0xb6, 0xef, 0x43, 0xd3, 0xe8, 0x88, 0x57, 0xd9, 0x68, 0x12, 0x44,
+ 0x11, 0x80, 0x05, 0x4a, 0xf6, 0x51, 0xcc, 0x1b, 0xed, 0x73, 0xf9, 0x2b,
+ 0xcb, 0x41, 0xa8, 0x4d, 0xf5, 0x63, 0x34, 0x60, 0xe4, 0xf5, 0xa9, 0xda,
+ 0x35, 0x71, 0x2d, 0xb9, 0x1d, 0x42, 0x18, 0xca, 0x0e, 0xcd, 0xae, 0x61,
+ 0xda, 0xe0, 0xf5, 0x5d, 0xd1, 0xd0, 0x69, 0x85, 0x60, 0x09, 0x26, 0xad,
+ 0xc2, 0x85, 0x44, 0x7b, 0xc9, 0xed, 0xde, 0x1a, 0x69, 0xf4, 0xcf, 0x9e,
+ 0x3c, 0x23, 0x25, 0x02, 0x90, 0x11, 0x29, 0x9f, 0x23, 0x0c, 0xaa, 0x7d,
+ 0x3e, 0xaa, 0x21, 0xbb, 0xa8, 0xa8, 0x1e, 0xb6, 0x25, 0x29, 0x7a, 0x3a,
+ 0xce, 0x66, 0x5c, 0xb0, 0x67, 0xe4, 0x35, 0xb2, 0xde, 0xb6, 0x5c, 0x0d,
+ 0xc9, 0x1e, 0xb2, 0x7e, 0x62, 0x96, 0x21, 0xfd, 0x20, 0x29, 0xe1, 0x7c,
+ 0x18, 0xa2, 0x47, 0xb3, 0xaf, 0x5b, 0xc1, 0xeb, 0x97, 0xe5, 0x9c, 0x37,
+ 0x62, 0x3b, 0xab, 0xf2, 0xfa, 0x83, 0x39, 0x78, 0x7f, 0x96, 0xfc, 0xed,
+ 0x95, 0x39, 0xc5, 0xe4, 0x9a, 0xcc, 0x8b, 0x25, 0x33, 0xab, 0xda, 0x72,
+ 0xda, 0xda, 0xe2, 0x15, 0x1c, 0xe7, 0x44, 0xd6, 0x19, 0xcb, 0x63, 0xaa,
+ 0x9b, 0x72, 0x11, 0x54, 0xdf, 0x90, 0x0c, 0x74, 0xd9, 0x09, 0xe1, 0xad,
+ 0x49, 0x53, 0x05, 0x5e, 0x5a, 0xf1, 0x13, 0xaa, 0xf2, 0x34, 0x4c, 0xde,
+ 0x15, 0xd0, 0x6e, 0x64, 0x6b, 0xca, 0x55, 0x92, 0x17, 0x66, 0x2c, 0x66,
+ 0xac, 0x44, 0x64, 0x10, 0x11, 0x54, 0x90, 0x85, 0x6e, 0x6f, 0x25, 0x2a,
+ 0x4a, 0x3b, 0x21, 0x2d, 0x1c, 0x6d, 0x4b, 0x23, 0xcc, 0xb2, 0x2d, 0x79,
+ 0x15, 0xd6, 0xab, 0xe2, 0x52, 0x3b, 0x52, 0xd7, 0x1d, 0x6d, 0x53, 0xc8,
+ 0x32, 0x9b, 0xcd, 0x06, 0xcc, 0x63, 0x4c, 0xbc, 0xae, 0x64, 0x67, 0x70,
+ 0x82, 0x28, 0x20, 0x47, 0x7e, 0x02, 0x72, 0x70, 0xfb, 0x20, 0xcf, 0x75,
+ 0x88, 0xac, 0x0d, 0xa5, 0x5a, 0x10, 0xa0, 0xb2, 0xc6, 0x41, 0x28, 0x21,
+ 0xca, 0xb9, 0x66, 0x30, 0x3b, 0x7f, 0x57, 0xa1, 0x1b, 0x2b, 0x2e, 0x13,
+ 0x32, 0x03, 0x4e, 0x6e, 0xae, 0xab, 0x05, 0x57, 0xb9, 0x8a, 0x95, 0xe0,
+ 0xf2, 0x0c, 0x00, 0x7e, 0x52, 0xd7, 0xb6, 0xce, 0x1a, 0xee, 0x0a, 0xbf,
+ 0x7a, 0xf2, 0xb2, 0x55, 0x2d, 0x97, 0x66, 0x22, 0x56, 0xfc, 0xc5, 0x07,
+ 0xd0, 0x71, 0x1c, 0x19, 0x47, 0xd6, 0xdd, 0x2d, 0xb6, 0x35, 0x67, 0xed,
+ 0x8c, 0xef, 0xdc, 0x6f, 0xe2, 0xcd, 0x49, 0x1b, 0xac, 0xce, 0x72, 0x0b,
+ 0xda, 0x2c, 0xf6, 0x8a, 0xd6, 0x73, 0xa6, 0xdd, 0x40, 0xb5, 0xdb, 0xf5,
+ 0x23, 0x21, 0xac, 0xed, 0x66, 0x5e, 0x4e, 0x29, 0x0b, 0x27, 0xbb, 0x77,
+ 0x2e, 0xe8, 0x41, 0x9d, 0x0b, 0xc9, 0x5f, 0xaa, 0xfd, 0x71, 0xa1, 0x11,
+ 0xb3, 0x4b, 0x69, 0xe7, 0x89, 0x10, 0x8b, 0x37, 0xe7, 0x06, 0xaa, 0x55,
+ 0xe7, 0x32, 0x7e, 0xd9, 0x1f, 0x42, 0x91, 0x94, 0x93, 0xc6, 0x1b, 0x01,
+ 0x3d, 0x10, 0x6f, 0x8e, 0x85, 0x6f, 0x64, 0x64, 0x94, 0xd2, 0x02, 0xe3,
+ 0xf6, 0xbe, 0x91, 0xd1, 0x83, 0xc1, 0x2a, 0x9b, 0x1f, 0xb2, 0x48, 0xef,
+ 0x2c, 0x31, 0x2f, 0x4e, 0xbc, 0xb9, 0xf6, 0x02, 0xeb, 0x0a, 0xa3, 0x0f,
+ 0xb1, 0x05, 0x16, 0x1a, 0xd9, 0x50, 0x0b, 0x73, 0xa6, 0x3a, 0xcf, 0x8e,
+ 0x7d, 0x70, 0xe5, 0x02, 0xcb, 0x37, 0x82, 0x59, 0x98, 0x19, 0x09, 0x69,
+ 0xb4, 0xe0, 0x49, 0xf6, 0x1e, 0x7d, 0x6b, 0xd2, 0xea, 0x3a, 0x6b, 0xde,
+ 0xaf, 0x9f, 0x90, 0x99, 0x64, 0x92, 0xdf, 0xcd, 0x51, 0x36, 0xd6, 0xca,
+ 0x0a, 0x21, 0x78, 0x4c, 0x25, 0xb3, 0xda, 0x28, 0x81, 0x5c, 0x9a, 0xb7,
+ 0x59, 0x3d, 0x21, 0xde, 0xf7, 0x98, 0x73, 0x9e, 0xaf, 0xaa, 0x45, 0x99,
+ 0x73, 0x41, 0x76, 0x2b, 0x63, 0xbc, 0x3e, 0xc6, 0x78, 0x67, 0xd6, 0x05,
+ 0x5a, 0xe6, 0x1f, 0x28, 0x29, 0xc6, 0x2a, 0x0a, 0xef, 0x23, 0xfc, 0xfc,
+ 0xde, 0xe0, 0xf8, 0x69, 0x5d, 0x6d, 0x1e, 0x92, 0xd2, 0xd1, 0xbb, 0xf2,
+ 0x82, 0xee, 0x38, 0xaf, 0xd9, 0xc7, 0xed, 0x4f, 0xda, 0x33, 0xd9, 0xed,
+ 0xdf, 0xe2, 0x76, 0x6a, 0x89, 0x3c, 0x6e, 0xdd, 0x11, 0x52, 0x15, 0x00,
+ 0x68, 0x54, 0x2d, 0xe1, 0x49, 0x98, 0x13, 0x6e, 0xec, 0x4a, 0x69, 0x68,
+ 0x57, 0x4c, 0x05, 0xd8, 0x69, 0x03, 0x2d, 0x29, 0xf8, 0x78, 0x85, 0x5a,
+ 0xa4, 0x32, 0xbf, 0xb2, 0x1c, 0xab, 0x27, 0x47, 0x9e, 0x76, 0x5d, 0x64,
+ 0xf9, 0xee, 0x57, 0x1b, 0x77, 0x73, 0xa4, 0xc7, 0x61, 0x8d, 0xc0, 0x93,
+ 0xcf, 0x76, 0x45, 0xde, 0x34, 0x23, 0x1f, 0x31, 0xef, 0x05, 0xa0, 0x6c,
+ 0xee, 0x3f, 0x59, 0xdc, 0xf3, 0x95, 0x73, 0x5c, 0xcd, 0xef, 0x39, 0xe4,
+ 0xe6, 0x01, 0x37, 0x2a, 0xe6, 0x21, 0xb0, 0xa3, 0x0a, 0xce, 0xa5, 0x94,
+ 0x2a, 0x5d, 0x31, 0xf3, 0xab, 0x7a, 0xd0, 0xda, 0x85, 0xab, 0x7b, 0x22,
+ 0x4f, 0x46, 0xbb, 0xe3, 0x26, 0x97, 0x32, 0x1d, 0xef, 0x5c, 0xcf, 0xe2,
+ 0xcd, 0x49, 0x77, 0xdd, 0x5b, 0x32, 0x3d, 0x7d, 0xcf, 0x91, 0xca, 0x74,
+ 0xfe, 0xc6, 0xb8, 0x0c, 0xf7, 0x86, 0x1e, 0xf0, 0x5f, 0x24, 0x20, 0xc8,
+ 0x8a, 0x9f, 0x15, 0xbe, 0xdd, 0x4e, 0x5f, 0x34, 0x77, 0xef, 0x9a, 0xf4,
+ 0x03, 0x8f, 0x0b, 0xdc, 0x2e, 0x37, 0x57, 0x87, 0x44, 0xa8, 0x10, 0x10,
+ 0x2a, 0x40, 0x0b, 0x51, 0x0e, 0x46, 0x6c, 0x67, 0x10, 0x66, 0x4d, 0x89,
+ 0x68, 0x3f, 0xc4, 0x3a, 0x27, 0xfc, 0xcd, 0x84, 0x91, 0x36, 0x98, 0x56,
+ 0xf0, 0x46, 0x88, 0x22, 0xa2, 0xd5, 0x27, 0xeb, 0x4c, 0xac, 0x09, 0x79,
+ 0x9c, 0xb9, 0xfb, 0xc3, 0x92, 0x9b, 0x1d, 0xb8, 0x53, 0x3d, 0xf4, 0x9c,
+ 0x15, 0xcc, 0x78, 0x9b, 0x5d, 0x4f, 0xfd, 0x02, 0xb6, 0xde, 0xf0, 0xab,
+ 0x3e, 0x4f, 0xc1, 0xb5, 0x19, 0x3c, 0xfe, 0x88, 0x02, 0xfb, 0xa1, 0x35,
+ 0x43, 0x59, 0xa1, 0xfc, 0xf2, 0xed, 0xe4, 0x22, 0xa3, 0x44, 0xd6, 0x8f,
+ 0x24, 0x4c, 0xc7, 0x77, 0x0d, 0x3a, 0x68, 0x1a, 0xd8, 0xca, 0x87, 0xe6,
+ 0x3a, 0x64, 0x20, 0x37, 0xa9, 0x48, 0xc4, 0x89, 0x1d, 0xe8, 0x34, 0x66,
+ 0x67, 0x6c, 0x2b, 0x40, 0x4a, 0x29, 0x90, 0x76, 0xf6, 0x86, 0x7b, 0x46,
+ 0x19, 0x7f, 0xc5, 0x74, 0x43, 0xbe, 0x7a, 0x0d, 0xb8, 0x99, 0xf0, 0xf1,
+ 0xd2, 0xa7, 0xbb, 0xde, 0x88, 0x0b, 0xfa, 0x70, 0x1d, 0xba, 0xa8, 0xe1,
+ 0xe7, 0x76, 0x66, 0xcd, 0x6d, 0x7a, 0x17, 0x2a, 0xea, 0xbb, 0x83, 0xc7,
+ 0xcf, 0x9e, 0xb5, 0x6e, 0xf4, 0xda, 0xe3, 0x33, 0x7e, 0xb2, 0xbb, 0x8b,
+ 0xb1, 0x05, 0x79, 0xac, 0xe6, 0x17, 0x83, 0x67, 0x78, 0xb1, 0xfd, 0x5a,
+ 0x9d, 0x99, 0x25, 0x98, 0xae, 0x7e, 0x6f, 0x40, 0xbf, 0x89, 0x7c, 0x0e,
+ 0x5e, 0x97, 0x95, 0x6f, 0x3d, 0xa3, 0xcf, 0x45, 0xde, 0xc2, 0xc3, 0x3c,
+ 0x8d, 0xe5, 0xd5, 0x15, 0xb9, 0xbb, 0xe8, 0x49, 0xe5, 0x25, 0xb9, 0x4d,
+ 0xab, 0x69, 0x38, 0xdc, 0xdd, 0xfe, 0x60, 0x6f, 0xd5, 0x70, 0xc1, 0xc6,
+ 0x0c, 0xc0, 0x12, 0xad, 0x27, 0x59, 0x93, 0xc6, 0x96, 0xe0, 0xa4, 0x8e,
+ 0x6e, 0x43, 0x7b, 0xa6, 0x47, 0x7b, 0xcf, 0x9e, 0xf5, 0xa9, 0x67, 0x4f,
+ 0x9e, 0x3d, 0x5b, 0x99, 0xc4, 0xeb, 0x7d, 0xe6, 0xb6, 0x74, 0x4e, 0x2a,
+ 0x7a, 0xdd, 0x6d, 0x9a, 0x9a, 0x4c, 0x96, 0xf8, 0x77, 0xe8, 0x37, 0x2f,
+ 0x92, 0xb7, 0x67, 0x97, 0xc7, 0x9e, 0xfb, 0x06, 0xc7, 0x8b, 0xc3, 0x97,
+ 0x9e, 0x3d, 0x8a, 0x78, 0xf0, 0x02, 0xe5, 0x74, 0x60, 0x1a, 0x93, 0xad,
+ 0x15, 0xa2, 0x1c, 0x90, 0x60, 0xa0, 0x7e, 0xc3, 0x3f, 0x74, 0x3f, 0x77,
+ 0x86, 0xb2, 0x98, 0xd3, 0xfc, 0x3a, 0x6f, 0x7c, 0xd2, 0x9a, 0x2d, 0xb3,
+ 0xda, 0xdb, 0xf0, 0x84, 0x30, 0x30, 0x49, 0x42, 0x3b, 0x9b, 0x35, 0x01,
+ 0xf2, 0x19, 0xbb, 0xb8, 0x49, 0x86, 0xd1, 0x66, 0x00, 0x89, 0xcf, 0x66,
+ 0xd3, 0x5a, 0x2f, 0x42, 0x7e, 0x7c, 0x80, 0x07, 0xe5, 0xb4, 0xc0, 0x9e,
+ 0xe5, 0xaa, 0xbd, 0x29, 0x9c, 0xcb, 0xfc, 0xe9, 0xd5, 0xc1, 0x1d, 0x92,
+ 0x84, 0x8c, 0xc4, 0xd5, 0x64, 0x1a, 0x6a, 0xc7, 0x07, 0x37, 0x6e, 0xd6,
+ 0xce, 0x2d, 0x6a, 0x7d, 0x78, 0x45, 0x1c, 0xf0, 0x80, 0x88, 0xc2, 0x34,
+ 0x5b, 0x28, 0x08, 0xb0, 0x68, 0xb7, 0x63, 0xf6, 0xf2, 0x55, 0x7e, 0xbd,
+ 0xac, 0xe2, 0x70, 0xb9, 0xbf, 0xba, 0xd4, 0x0e, 0x65, 0xee, 0x4e, 0x6f,
+ 0x53, 0x4d, 0x29, 0x01, 0xd9, 0xba, 0x9e, 0x6b, 0xb5, 0x93, 0x35, 0x85,
+ 0x03, 0xbc, 0xea, 0x81, 0x5f, 0x8c, 0x4c, 0xe6, 0x2b, 0xa3, 0xcb, 0xc0,
+ 0x99, 0x20, 0x00, 0x13, 0x78, 0xff, 0xa4, 0xc4, 0x96, 0xa4, 0xd2, 0xa8,
+ 0xab, 0xdd, 0xac, 0x37, 0x5d, 0xa7, 0xa9, 0x4c, 0x41, 0x08, 0x52, 0xdb,
+ 0x9c, 0xb9, 0x40, 0x02, 0x3d, 0x09, 0x9f, 0xcc, 0x4d, 0xe9, 0x11, 0xf5,
+ 0x87, 0x89, 0xf6, 0x42, 0x15, 0x02, 0xe9, 0xc3, 0x4b, 0x34, 0x35, 0x4a,
+ 0xf4, 0xac, 0x4c, 0xa7, 0xe2, 0x5e, 0x71, 0xa1, 0x7d, 0xd6, 0x0e, 0x84,
+ 0x6f, 0x49, 0xd6, 0x36, 0xe0, 0x75, 0xa6, 0xa5, 0x96, 0x55, 0x26, 0x72,
+ 0x64, 0x29, 0x7e, 0xad, 0x9b, 0xb4, 0x2c, 0xac, 0x96, 0xc4, 0x72, 0xca,
+ 0x7c, 0x84, 0x79, 0x0d, 0xb6, 0x87, 0x11, 0x37, 0x00, 0x6d, 0x78, 0x5e,
+ 0x2d, 0x4b, 0x37, 0x8f, 0xd2, 0x75, 0x74, 0x49, 0x7a, 0x5e, 0x8f, 0x64,
+ 0x74, 0xf2, 0x3f, 0x8f, 0x7f, 0xcf, 0x10, 0x58, 0x95, 0xde, 0xda, 0x64,
+ 0xaf, 0xef, 0x99, 0xb0, 0x4f, 0x42, 0x53, 0x96, 0x5d, 0x20, 0x9d, 0x89,
+ 0x19, 0x4f, 0xa5, 0xbe, 0x71, 0x7b, 0x20, 0xc8, 0x29, 0x95, 0x29, 0xcd,
+ 0xc6, 0x0a, 0xf7, 0x36, 0xe5, 0xaa, 0xf8, 0xc4, 0x4d, 0x5c, 0x02, 0x66,
+ 0x8a, 0x44, 0x1d, 0x06, 0x16, 0xe9, 0x62, 0xda, 0x42, 0xe3, 0x73, 0x38,
+ 0x86, 0xc1, 0xa9, 0x13, 0x14, 0x9d, 0x03, 0x29, 0x1c, 0x75, 0xcb, 0xf4,
+ 0xf6, 0x9e, 0xd2, 0x60, 0x7e, 0x7e, 0x34, 0xaa, 0xc9, 0x56, 0x19, 0xc5,
+ 0xcb, 0xaa, 0xe4, 0xf9, 0xbb, 0x8b, 0xd3, 0x15, 0x49, 0x6e, 0x23, 0xac,
+ 0x02, 0x4d, 0x57, 0xef, 0x22, 0x03, 0x9b, 0x53, 0x95, 0x9c, 0xa7, 0xd7,
+ 0x59, 0xcf, 0x27, 0xd0, 0x52, 0x65, 0x11, 0x13, 0x20, 0x3e, 0x88, 0x98,
+ 0xa7, 0xc8, 0x67, 0xbf, 0x27, 0x31, 0xee, 0xa2, 0xd4, 0x7e, 0x66, 0xda,
+ 0xd5, 0x2c, 0x95, 0xd9, 0x5b, 0x56, 0xa8, 0x71, 0xff, 0x7d, 0xb4, 0x82,
+ 0x8c, 0xf8, 0x84, 0xda, 0xbc, 0x87, 0x0e, 0x50, 0x45, 0x01, 0x22, 0x14,
+ 0x39, 0xee, 0x7d, 0x41, 0x6e, 0xfa, 0x9e, 0xc7, 0xf5, 0x37, 0xc8, 0x62,
+ 0x74, 0xf0, 0x3c, 0x15, 0xcc, 0xd2, 0x66, 0xdd, 0x4a, 0xec, 0xf2, 0x6f,
+ 0xb9, 0xf9, 0xeb, 0x4c, 0x83, 0x44, 0x19, 0x31, 0x92, 0xd6, 0x91, 0xda,
+ 0xc9, 0x0a, 0x14, 0x65, 0x12, 0x4a, 0xb2, 0x01, 0x4f, 0xa5, 0x7f, 0x07,
+ 0x12, 0x91, 0x61, 0x45, 0xc8, 0x76, 0x4d, 0xc2, 0xe6, 0xdc, 0xf1, 0x71,
+ 0x16, 0x1b, 0x6c, 0x3a, 0xa3, 0xba, 0x14, 0xd6, 0x93, 0x45, 0xe3, 0x9c,
+ 0x96, 0x54, 0xca, 0x00, 0xe5, 0x8f, 0x0b, 0xeb, 0x74, 0x6e, 0xad, 0xec,
+ 0xef, 0x4e, 0xf6, 0xe6, 0x02, 0x45, 0x87, 0x7d, 0x29, 0xb6, 0x32, 0x30,
+ 0xbb, 0xa3, 0x90, 0xfc, 0x65, 0x6f, 0x59, 0xbd, 0xbd, 0xf7, 0x1f, 0xfd,
+ 0x28, 0xff, 0xfe, 0x0a, 0xce, 0x50, 0xaf, 0xbb, 0x0d, 0x32, 0x0b, 0xb0,
+ 0x61, 0xce, 0xfa, 0x9d, 0x0a, 0x00, 0x2e, 0xcd, 0x51, 0xee, 0xcb, 0xa8,
+ 0x6f, 0x71, 0xe0, 0xc5, 0xa9, 0x93, 0x23, 0xce, 0xb8, 0x1b, 0xbc, 0xcc,
+ 0xcd, 0x3d, 0x52, 0x33, 0x75, 0x0c, 0x3b, 0x06, 0x38, 0x65, 0xcc, 0x1e,
+ 0xc4, 0x24, 0xac, 0xf1, 0xa4, 0xf1, 0x14, 0x20, 0xe9, 0xec, 0x2b, 0x36,
+ 0xba, 0x63, 0xf6, 0xc4, 0x6a, 0x02, 0x43, 0xcb, 0x78, 0x6e, 0x95, 0x86,
+ 0xd4, 0x79, 0x2d, 0xa4, 0x20, 0x33, 0x13, 0xc3, 0xf3, 0xf9, 0x30, 0xb7,
+ 0x42, 0x64, 0x7e, 0x94, 0xd0, 0x05, 0x30, 0x1e, 0xc7, 0xb3, 0x22, 0xc5,
+ 0x50, 0x02, 0x73, 0xd3, 0x16, 0xa2, 0xe5, 0x9b, 0x29, 0xd8, 0x64, 0x04,
+ 0x94, 0xb1, 0x15, 0x29, 0x38, 0xc6, 0xc2, 0x34, 0x64, 0x9c, 0x52, 0x38,
+ 0x31, 0x0d, 0x0f, 0x3b, 0x9e, 0x71, 0x2d, 0xa6, 0xb1, 0x02, 0x65, 0xd8,
+ 0x1a, 0x15, 0xe0, 0x8e, 0xfe, 0xd6, 0xa3, 0x28, 0x42, 0x51, 0x0a, 0x33,
+ 0x47, 0x2c, 0xa6, 0x0f, 0x40, 0x91, 0x79, 0xc2, 0xbb, 0x07, 0x19, 0x40,
+ 0x92, 0xfc, 0x69, 0xe0, 0xca, 0x19, 0x6c, 0xdd, 0x65, 0x46, 0xc7, 0xb6,
+ 0x45, 0x0c, 0xd4, 0x98, 0x8a, 0xe4, 0xec, 0x25, 0x5c, 0xa6, 0xaf, 0x6e,
+ 0xa5, 0x13, 0xc0, 0x0c, 0xf1, 0x62, 0x90, 0x3c, 0xe5, 0x46, 0x13, 0x20,
+ 0xc8, 0xf8, 0xb2, 0xc8, 0x3e, 0x11, 0x0f, 0xf2, 0xea, 0xe6, 0x42, 0x45,
+ 0xfb, 0xfb, 0xc3, 0x8b, 0xb7, 0x27, 0x6f, 0xbf, 0x39, 0x48, 0x8e, 0x3f,
+ 0x65, 0xd5, 0x84, 0x4a, 0xca, 0xfe, 0x6d, 0x39, 0xcd, 0x27, 0x10, 0x14,
+ 0x52, 0xa8, 0xd3, 0x4f, 0xac, 0xa4, 0xea, 0xea, 0xe2, 0x65, 0xa5, 0x4b,
+ 0x37, 0x90, 0xef, 0x02, 0x46, 0xa5, 0x84, 0x7f, 0x63, 0x49, 0x95, 0xd7,
+ 0x4b, 0x6f, 0xfb, 0x4c, 0xb8, 0x80, 0x18, 0x02, 0x06, 0x88, 0xa6, 0xde,
+ 0xc8, 0x5c, 0x93, 0xeb, 0x35, 0x79, 0x79, 0x7a, 0x1a, 0xd2, 0x99, 0xa2,
+ 0xd0, 0x2d, 0x77, 0x9f, 0x13, 0x34, 0xd1, 0x84, 0xd9, 0xfc, 0x75, 0x3e,
+ 0x66, 0xd8, 0x13, 0xa9, 0x00, 0x5c, 0x3e, 0xcc, 0x13, 0x79, 0xf0, 0xad,
+ 0x98, 0xae, 0x74, 0x17, 0x19, 0x38, 0x59, 0xa0, 0x15, 0xb1, 0xc2, 0x79,
+ 0x35, 0x85, 0x3d, 0x64, 0x64, 0x64, 0x79, 0xd5, 0x90, 0x8e, 0xd4, 0xba,
+ 0x4d, 0xdb, 0xa5, 0x39, 0xd6, 0x46, 0x12, 0x6e, 0xd8, 0xd4, 0xf1, 0x31,
+ 0x11, 0x12, 0xbc, 0x04, 0x9b, 0x9f, 0xd9, 0x90, 0xac, 0x1c, 0xa2, 0xa6,
+ 0x4b, 0x2c, 0x8c, 0x36, 0xcd, 0x52, 0x5b, 0xa8, 0xb6, 0x26, 0x79, 0x19,
+ 0x0a, 0x8c, 0xdb, 0xac, 0x12, 0xf3, 0xd3, 0xa6, 0x7e, 0x1a, 0x71, 0x37,
+ 0x4c, 0x46, 0xa5, 0x79, 0x3e, 0xd4, 0xb2, 0x6c, 0xf1, 0xb3, 0x56, 0x1d,
+ 0x65, 0x74, 0xc7, 0x01, 0xbd, 0x50, 0x18, 0x06, 0xd1, 0xb9, 0xf6, 0x78,
+ 0x23, 0x85, 0x57, 0x69, 0xff, 0x8f, 0x33, 0xab, 0x54, 0xdc, 0x69, 0xfc,
+ 0x87, 0x36, 0x49, 0x6f, 0x60, 0x04, 0x6a, 0x8f, 0x66, 0x16, 0xe5, 0x60,
+ 0xbd, 0x96, 0xee, 0x29, 0x6a, 0xe8, 0xc3, 0xac, 0xbb, 0x03, 0xbe, 0xa7,
+ 0x56, 0x94, 0x5a, 0x9e, 0x9e, 0xfb, 0x54, 0x2a, 0xf6, 0xd8, 0x98, 0x2a,
+ 0xcb, 0xa4, 0x0c, 0xb5, 0x5d, 0x83, 0x50, 0x39, 0x9b, 0x14, 0xd6, 0x25,
+ 0xe3, 0x27, 0x38, 0xfb, 0xaf, 0xcb, 0x8d, 0xd3, 0x77, 0x1e, 0x06, 0xd2,
+ 0x0b, 0x82, 0x24, 0x5b, 0x63, 0xe7, 0x0d, 0xb7, 0x63, 0x40, 0x1f, 0x91,
+ 0x8b, 0x42, 0x65, 0x69, 0xd4, 0xeb, 0xe9, 0xbd, 0x92, 0x0f, 0x62, 0x2b,
+ 0x52, 0xf4, 0x88, 0x53, 0xd5, 0x3d, 0xaf, 0x38, 0x37, 0x07, 0x61, 0x92,
+ 0x5a, 0x30, 0x51, 0xe3, 0xc7, 0x35, 0x5d, 0x3e, 0x79, 0xd8, 0x9c, 0x97,
+ 0xa2, 0xb3, 0x5a, 0x08, 0x4b, 0xec, 0x26, 0x2f, 0x3e, 0x96, 0x1f, 0xf8,
+ 0xc6, 0x97, 0xea, 0xe3, 0x01, 0xe5, 0x81, 0x4f, 0x1e, 0x18, 0x45, 0xad,
+ 0xc9, 0xac, 0x4a, 0xdf, 0xf9, 0xc6, 0xf2, 0x80, 0xf0, 0x66, 0x30, 0x12,
+ 0x92, 0xb1, 0x89, 0x5b, 0xf6, 0x7a, 0xea, 0x34, 0x67, 0xcf, 0x52, 0x5f,
+ 0x2b, 0xfb, 0x26, 0xd9, 0xac, 0xce, 0xfa, 0x5e, 0x0e, 0x97, 0x5e, 0x36,
+ 0x7a, 0xdb, 0x00, 0x8d, 0xaa, 0x51, 0xcc, 0xd5, 0x37, 0xc9, 0x30, 0xd1,
+ 0xb9, 0xf7, 0xa7, 0xdb, 0x19, 0xb2, 0x88, 0x80, 0x72, 0xec, 0x69, 0x72,
+ 0x53, 0x96, 0xd1, 0x8b, 0xdb, 0xdd, 0x21, 0x50, 0x6a, 0x40, 0x64, 0xb0,
+ 0x42, 0x83, 0x68, 0xd7, 0x8c, 0x93, 0x6c, 0x85, 0xee, 0xd9, 0x53, 0x92,
+ 0x38, 0xd1, 0x07, 0x3d, 0x8a, 0xc6, 0xf6, 0xed, 0xc6, 0x1d, 0x0a, 0xee,
+ 0xe6, 0x18, 0xcc, 0x81, 0x7f, 0xd7, 0xb9, 0x8f, 0x9b, 0x56, 0xce, 0xbb,
+ 0x3f, 0x29, 0xd1, 0xcb, 0x8e, 0x11, 0x71, 0x0e, 0x27, 0x89, 0x7d, 0x03,
+ 0xc3, 0xa9, 0x68, 0x87, 0x35, 0xd0, 0xcf, 0xbc, 0x81, 0x00, 0xf9, 0xd3,
+ 0xfe, 0xee, 0x2a, 0x21, 0xcf, 0x8a, 0xac, 0xe6, 0x26, 0xd2, 0x71, 0xb4,
+ 0x06, 0x3a, 0x5f, 0x84, 0x8e, 0x2f, 0x80, 0x2e, 0x90, 0xe5, 0x22, 0x41,
+ 0x3d, 0x21, 0xaa, 0x46, 0xb5, 0x62, 0xfe, 0xa3, 0x96, 0xf1, 0xaf, 0xad,
+ 0x41, 0xb6, 0xaa, 0x08, 0x99, 0x93, 0x5f, 0x17, 0xde, 0x1a, 0x53, 0x4b,
+ 0xd1, 0xa4, 0x48, 0x96, 0x25, 0x9e, 0xbb, 0xc4, 0xd3, 0xda, 0x9d, 0xde,
+ 0x00, 0xeb, 0x1e, 0xc2, 0x8e, 0xd1, 0x08, 0x79, 0x28, 0x92, 0x8d, 0x5d,
+ 0x3b, 0x5f, 0x44, 0x04, 0x96, 0x3d, 0x04, 0x82, 0xf9, 0xa5, 0x5b, 0xca,
+ 0xc2, 0x76, 0x35, 0xf6, 0x1c, 0x6e, 0x5a, 0x4f, 0x96, 0xb2, 0x49, 0x9e,
+ 0x0a, 0x80, 0x14, 0x73, 0x42, 0xdf, 0x6a, 0x5f, 0x8d, 0xc0, 0xa6, 0x0d,
+ 0xa2, 0x3e, 0x7f, 0x65, 0x1b, 0x09, 0x69, 0xab, 0x60, 0x4d, 0x39, 0x4a,
+ 0xf0, 0x1e, 0xbf, 0xde, 0x4b, 0xb6, 0x48, 0xae, 0x6e, 0xab, 0xf6, 0x1a,
+ 0xc6, 0xfb, 0x5d, 0x81, 0x6f, 0x08, 0xe0, 0xb4, 0x0e, 0xc0, 0xbc, 0xd0,
+ 0x5f, 0x13, 0x63, 0xe8, 0x55, 0x46, 0x05, 0x58, 0xce, 0xd2, 0x8a, 0x64,
+ 0xbb, 0xf9, 0xe4, 0xd5, 0x72, 0x16, 0x33, 0x75, 0x70, 0xb6, 0x35, 0x46,
+ 0x64, 0xa6, 0xa8, 0x5e, 0x2a, 0xa3, 0xba, 0x63, 0x08, 0x11, 0xba, 0xb8,
+ 0x99, 0xe9, 0x11, 0x68, 0xd1, 0x67, 0x5c, 0x39, 0x2a, 0xba, 0x77, 0xe1,
+ 0x20, 0xc6, 0x9c, 0xa9, 0x8a, 0xc9, 0x96, 0x14, 0xf7, 0xad, 0xca, 0xae,
+ 0xa9, 0x4b, 0xae, 0x3a, 0x15, 0x4d, 0x01, 0xd5, 0x49, 0x36, 0xd7, 0x55,
+ 0xa7, 0xb9, 0xde, 0xd9, 0xf9, 0xe5, 0xc9, 0xd9, 0xdb, 0x51, 0xf2, 0xe7,
+ 0xde, 0xda, 0x04, 0xa5, 0x36, 0xb9, 0xec, 0x0f, 0x7d, 0xb7, 0x26, 0xc9,
+ 0x73, 0xf1, 0x36, 0xac, 0xb2, 0x8f, 0x3d, 0x1d, 0x7e, 0x62, 0xee, 0x6f,
+ 0x23, 0x60, 0xf5, 0x4d, 0x61, 0xe5, 0x92, 0xc5, 0xea, 0x64, 0xa0, 0x07,
+ 0xfa, 0xb2, 0x9f, 0xae, 0xef, 0xdb, 0xd1, 0x2c, 0xed, 0x9d, 0xd9, 0xd2,
+ 0x69, 0x7d, 0x85, 0x0c, 0x66, 0x0e, 0x09, 0x6b, 0xbf, 0x58, 0xa0, 0x8a,
+ 0xbc, 0x85, 0x69, 0xbe, 0x25, 0xed, 0x14, 0x0f, 0x6e, 0x49, 0x8d, 0x6f,
+ 0x56, 0xb5, 0xea, 0x10, 0x4d, 0xf8, 0xcd, 0xf1, 0xe5, 0xb6, 0xa4, 0x27,
+ 0xda, 0xfe, 0xc1, 0xdf, 0x25, 0x8a, 0x4f, 0x6a, 0x75, 0x33, 0x4d, 0x48,
+ 0x64, 0x4f, 0x86, 0xd1, 0x9f, 0x67, 0x69, 0x11, 0x4d, 0xc2, 0x22, 0x9d,
+ 0x96, 0x0a, 0x8f, 0x23, 0xdd, 0x55, 0x64, 0xb2, 0xfa, 0x50, 0xbc, 0x2a,
+ 0x22, 0xcc, 0xa8, 0x73, 0xfe, 0xee, 0x12, 0x0d, 0xbe, 0x3c, 0x3e, 0x3d,
+ 0xbe, 0x3c, 0xee, 0x5a, 0xef, 0x63, 0xa6, 0x21, 0x44, 0xf6, 0x4d, 0x93,
+ 0x4d, 0x6e, 0x8a, 0x72, 0x56, 0x5e, 0xe7, 0x52, 0x7b, 0x31, 0xf9, 0x3e,
+ 0x1b, 0xbf, 0x3c, 0xfc, 0x8e, 0x34, 0x0a, 0xf2, 0x3b, 0x9d, 0x5f, 0x9c,
+ 0x9d, 0xbf, 0x3a, 0x79, 0xfb, 0xb2, 0x9f, 0x1c, 0x9d, 0x9d, 0xff, 0xb5,
+ 0x9f, 0xbc, 0x39, 0xfb, 0xee, 0x38, 0x82, 0xba, 0x26, 0x8a, 0xf0, 0x48,
+ 0xe9, 0x77, 0xa9, 0x80, 0xc6, 0x17, 0x1a, 0x9b, 0xdf, 0xa8, 0xb8, 0xdc,
+ 0xb9, 0x48, 0x28, 0x2d, 0xa1, 0x2e, 0x45, 0xe2, 0x9a, 0xb9, 0xeb, 0x27,
+ 0xaf, 0x8f, 0x0f, 0x5f, 0xf6, 0x03, 0x12, 0xe7, 0x11, 0x8f, 0x8a, 0x46,
+ 0x67, 0x87, 0x0c, 0xea, 0x5f, 0xb6, 0x3f, 0xa0, 0x25, 0x70, 0xa8, 0x8b,
+ 0x8f, 0xac, 0xd9, 0xb0, 0x48, 0xae, 0x9e, 0xae, 0x42, 0x50, 0x08, 0x1b,
+ 0xf9, 0xca, 0x6a, 0xa7, 0xad, 0x4c, 0x10, 0x28, 0x6c, 0xaa, 0x6a, 0x4b,
+ 0x75, 0x6a, 0xa6, 0xda, 0x49, 0x80, 0xf7, 0xb7, 0xe9, 0x7e, 0xba, 0xe4,
+ 0x71, 0xae, 0x97, 0x7e, 0x2b, 0xc7, 0x1b, 0x02, 0x89, 0x5d, 0x90, 0xa9,
+ 0x94, 0x8a, 0x43, 0xed, 0x16, 0x02, 0x01, 0x8d, 0x98, 0xea, 0x58, 0x29,
+ 0x3e, 0xc3, 0xf4, 0x86, 0x96, 0xa2, 0x50, 0x2a, 0xa9, 0xb4, 0xd0, 0xee,
+ 0xd0, 0x14, 0xba, 0x6f, 0x4a, 0xed, 0x8c, 0x1f, 0xf8, 0xc7, 0x11, 0xdc,
+ 0x35, 0x57, 0x6f, 0xba, 0x32, 0x9b, 0x33, 0x63, 0x74, 0x15, 0xd6, 0xc9,
+ 0xb9, 0x07, 0x92, 0xc1, 0x89, 0x3a, 0x27, 0xd6, 0xa9, 0x59, 0x72, 0x60,
+ 0xc4, 0x41, 0x03, 0x9a, 0x1f, 0x75, 0x5c, 0xb5, 0xe5, 0x84, 0xab, 0x57,
+ 0xca, 0x67, 0xef, 0x2a, 0x90, 0x6d, 0xe0, 0x07, 0xd6, 0x75, 0xee, 0x0b,
+ 0x49, 0x81, 0x4d, 0xeb, 0xb8, 0x72, 0xdc, 0xa7, 0x8c, 0xd6, 0x6d, 0xfb,
+ 0xb5, 0xcc, 0x3d, 0x1b, 0x10, 0x33, 0xd1, 0x63, 0x46, 0x9a, 0x14, 0xe2,
+ 0x1a, 0xa5, 0x10, 0xdc, 0x80, 0xed, 0x69, 0x1f, 0x21, 0xac, 0x22, 0x54,
+ 0x15, 0x54, 0xed, 0x42, 0xbc, 0x42, 0x77, 0xab, 0xc2, 0xad, 0x3d, 0xeb,
+ 0x8f, 0x76, 0x3f, 0x39, 0x6f, 0x3b, 0x69, 0x14, 0x75, 0x32, 0x10, 0x46,
+ 0xe5, 0xb9, 0xb9, 0x0a, 0x43, 0x3f, 0xd3, 0xd6, 0xab, 0x15, 0xc2, 0xd1,
+ 0xf7, 0xdf, 0xda, 0x5c, 0x6c, 0x8b, 0x0e, 0x3f, 0x3d, 0x31, 0x47, 0x22,
+ 0x42, 0x6b, 0x32, 0x2d, 0x51, 0xc7, 0x15, 0x90, 0x83, 0x5c, 0xaf, 0x13,
+ 0x6a, 0x2b, 0xfc, 0x30, 0x15, 0x36, 0x8e, 0x7e, 0x19, 0x15, 0x8f, 0xef,
+ 0xf9, 0x74, 0xb0, 0x66, 0x17, 0xc7, 0x97, 0x17, 0xc3, 0x64, 0xcb, 0x67,
+ 0xec, 0x7c, 0x3a, 0xdc, 0x0d, 0xc3, 0x37, 0x54, 0x53, 0x79, 0x3b, 0xf1,
+ 0x3e, 0xeb, 0xbe, 0x8b, 0x72, 0xcb, 0xeb, 0xbf, 0x1b, 0xe2, 0x8e, 0x3d,
+ 0x96, 0x9e, 0xdd, 0xd8, 0xf7, 0xfc, 0xca, 0xcd, 0xad, 0x51, 0xd2, 0x2f,
+ 0xd6, 0x7c, 0xed, 0xf5, 0xf1, 0xe9, 0x79, 0x38, 0xca, 0xef, 0x2e, 0x5e,
+ 0xfd, 0xb5, 0x3d, 0xca, 0x47, 0x8f, 0x23, 0x5f, 0xfd, 0x2d, 0x5d, 0xeb,
+ 0x59, 0x5d, 0xce, 0x8c, 0xce, 0x82, 0xe4, 0x12, 0xe4, 0x96, 0x1c, 0x98,
+ 0x4b, 0x80, 0xb0, 0xe9, 0x3f, 0xf6, 0xe5, 0x2f, 0x3f, 0x0f, 0x87, 0xc3,
+ 0x2f, 0x43, 0xda, 0x69, 0x78, 0x6a, 0x28, 0xec, 0x25, 0x03, 0x4e, 0xe4,
+ 0x71, 0xc1, 0x65, 0x7a, 0xc6, 0x38, 0x12, 0x7a, 0x90, 0xc1, 0x44, 0x71,
+ 0x8c, 0x45, 0x9a, 0x07, 0x4e, 0xe9, 0x77, 0x16, 0x6c, 0xed, 0x32, 0xd0,
+ 0x20, 0x74, 0xc4, 0x88, 0x9b, 0xd9, 0xe3, 0xba, 0x45, 0x95, 0x1d, 0x39,
+ 0x8f, 0x30, 0x59, 0x19, 0xea, 0xb7, 0x3d, 0xc1, 0xdd, 0x47, 0xfe, 0x61,
+ 0x10, 0x5d, 0x11, 0x40, 0xc9, 0xde, 0xb7, 0x85, 0xde, 0x21, 0x32, 0x03,
+ 0x53, 0xfb, 0x56, 0x70, 0xe9, 0xda, 0x0c, 0xce, 0x23, 0x09, 0xaf, 0xc3,
+ 0x10, 0xc3, 0xc5, 0x82, 0x2a, 0x9e, 0x59, 0x33, 0xd9, 0xa1, 0x31, 0xd6,
+ 0x61, 0x65, 0x98, 0x98, 0x0f, 0xcc, 0xf2, 0xf1, 0xfb, 0x05, 0x69, 0xd9,
+ 0x0f, 0xed, 0x27, 0xe6, 0xb8, 0x7a, 0x35, 0x9e, 0xd6, 0x4e, 0xfd, 0x88,
+ 0xc4, 0xe2, 0xfd, 0xf2, 0x30, 0x2e, 0xa9, 0x05, 0xec, 0x57, 0x65, 0xdd,
+ 0xb4, 0x16, 0x1f, 0x2f, 0x90, 0x39, 0xd8, 0x24, 0x9c, 0x44, 0x17, 0xf1,
+ 0xb0, 0xb0, 0x88, 0xd6, 0xed, 0x64, 0x09, 0xa4, 0xdb, 0xb5, 0xe7, 0xd5,
+ 0x59, 0xa7, 0xd3, 0x26, 0xfd, 0xe8, 0xaa, 0xf3, 0xa4, 0x6b, 0xa3, 0x13,
+ 0x4c, 0x06, 0xad, 0xb6, 0x3c, 0x8d, 0xb4, 0x5e, 0x51, 0xb8, 0x47, 0x54,
+ 0x60, 0x6d, 0x98, 0xe4, 0x7c, 0x9b, 0xc4, 0xbf, 0x3d, 0x20, 0xf5, 0xc4,
+ 0x0f, 0x1e, 0x87, 0xd1, 0x84, 0x7c, 0xf1, 0xf1, 0x31, 0xdc, 0x37, 0x4f,
+ 0xfb, 0xfc, 0xaf, 0xa7, 0x2e, 0x51, 0xc3, 0x33, 0x51, 0x58, 0x89, 0x67,
+ 0x9d, 0xf7, 0xe4, 0x5c, 0x53, 0x4e, 0x03, 0xea, 0x79, 0x89, 0xc4, 0x49,
+ 0x7a, 0xbb, 0xe9, 0xa5, 0xaa, 0xef, 0xe6, 0x1d, 0xed, 0x2d, 0x09, 0x44,
+ 0x73, 0x72, 0x7f, 0x1c, 0x57, 0x54, 0xbe, 0xb0, 0xa9, 0x7f, 0x5e, 0x97,
+ 0xe0, 0x6b, 0x34, 0xde, 0xcf, 0x86, 0x61, 0x22, 0x55, 0xfc, 0x43, 0x16,
+ 0xca, 0xeb, 0xbe, 0x46, 0xf4, 0x36, 0x20, 0xc2, 0x23, 0xe0, 0xcb, 0x2d,
+ 0x4a, 0xb2, 0xac, 0xfc, 0xd0, 0xb3, 0xe1, 0x7d, 0x29, 0xa9, 0x12, 0xf4,
+ 0x90, 0x8b, 0xd3, 0xb3, 0x1c, 0xc9, 0x2b, 0x35, 0x95, 0x9f, 0x60, 0x2d,
+ 0x05, 0xe2, 0x54, 0x06, 0x8a, 0x08, 0x8e, 0xd2, 0x5a, 0xba, 0x7c, 0x22,
+ 0xe9, 0x68, 0xc9, 0x1f, 0xd3, 0x75, 0xa4, 0xc1, 0x54, 0xc6, 0xa8, 0x09,
+ 0x77, 0xf7, 0x49, 0x9b, 0x4d, 0xde, 0x9e, 0x61, 0x0a, 0xe9, 0xf1, 0x8f,
+ 0x8d, 0xc8, 0x50, 0xd8, 0x4b, 0x72, 0x4c, 0x89, 0x3a, 0x17, 0xc7, 0xaf,
+ 0xde, 0x8d, 0x8e, 0x5f, 0x72, 0x85, 0x9a, 0x58, 0x2d, 0x94, 0x1c, 0xa1,
+ 0x3f, 0x76, 0xaa, 0x9b, 0x46, 0x4b, 0x3e, 0x43, 0xd2, 0x97, 0xa0, 0x62,
+ 0x98, 0x00, 0x63, 0x8c, 0x41, 0x17, 0xe6, 0x56, 0xb0, 0xfa, 0x21, 0x2f,
+ 0xfe, 0x02, 0xc6, 0x07, 0x1e, 0xf5, 0x34, 0xa3, 0xd2, 0x3a, 0xcf, 0x19,
+ 0xc3, 0x11, 0x90, 0x38, 0xb9, 0x22, 0x3c, 0xf5, 0x2c, 0xcb, 0x16, 0x92,
+ 0x41, 0x37, 0x2f, 0x97, 0x05, 0xfb, 0xf3, 0xcc, 0xca, 0xa8, 0x17, 0x8b,
+ 0x9d, 0xa6, 0x09, 0x5a, 0x55, 0x4b, 0x30, 0x5d, 0x51, 0x05, 0x06, 0x74,
+ 0x4e, 0x09, 0xa0, 0xd3, 0x8e, 0x62, 0x30, 0x8d, 0xcc, 0xcc, 0x56, 0xde,
+ 0xf8, 0xfe, 0xdf, 0x15, 0x65, 0xa2, 0xa8, 0x30, 0x8d, 0xd1, 0xe8, 0xb9,
+ 0x3b, 0xe9, 0xec, 0xba, 0xac, 0x4c, 0x83, 0x73, 0x9b, 0xf6, 0x57, 0x01,
+ 0xb3, 0x53, 0x6f, 0xb7, 0x67, 0x35, 0x4c, 0x9f, 0x66, 0x1d, 0x18, 0x01,
+ 0xdc, 0x8c, 0x73, 0xa1, 0xe9, 0x40, 0xf3, 0x3c, 0x01, 0xbc, 0x49, 0xa1,
+ 0x2d, 0x16, 0xc2, 0x23, 0xc9, 0x60, 0xc6, 0x7c, 0xf0, 0x14, 0x06, 0x1b,
+ 0xf1, 0x1f, 0x59, 0x55, 0x76, 0xdd, 0x10, 0xaa, 0x6e, 0xc6, 0x7a, 0xfe,
+ 0xaf, 0xac, 0xc5, 0xb4, 0xb7, 0x1f, 0x3b, 0x01, 0xf3, 0xf4, 0x13, 0x9c,
+ 0x2b, 0x2b, 0xb7, 0x03, 0x43, 0x0d, 0x69, 0x3a, 0xe8, 0x31, 0xe0, 0x32,
+ 0xa8, 0x2a, 0x49, 0x63, 0x99, 0x95, 0xd4, 0x81, 0x4a, 0xc0, 0x1a, 0x6f,
+ 0xb5, 0xc5, 0xfb, 0x12, 0x60, 0x98, 0x78, 0x61, 0x6c, 0xaf, 0xe1, 0xe1,
+ 0x4a, 0x69, 0x98, 0x64, 0x77, 0x6c, 0x71, 0x59, 0x18, 0x7c, 0x6f, 0x9b,
+ 0x7e, 0x3c, 0x2b, 0x29, 0xbe, 0x56, 0x5b, 0xaf, 0x4d, 0x84, 0x22, 0x8c,
+ 0x54, 0xdb, 0x8a, 0x36, 0x22, 0xf0, 0x63, 0x16, 0x36, 0x82, 0xfa, 0x16,
+ 0x48, 0x88, 0xca, 0x27, 0xe2, 0xab, 0xd7, 0xda, 0x4a, 0x18, 0x07, 0xbf,
+ 0x19, 0x08, 0x12, 0x6e, 0x47, 0x2b, 0x35, 0x98, 0x26, 0xfa, 0x6d, 0x2a,
+ 0x57, 0xe9, 0x36, 0xd2, 0x0d, 0x91, 0x96, 0x80, 0x42, 0x48, 0x92, 0x6e,
+ 0x1e, 0xb1, 0xe9, 0xfb, 0x5a, 0x53, 0x03, 0xe9, 0x3b, 0x34, 0x1c, 0x58,
+ 0x47, 0x69, 0xe1, 0xf7, 0x15, 0x0b, 0x60, 0xda, 0xc8, 0xcb, 0x29, 0x12,
+ 0x7f, 0xb8, 0x36, 0x47, 0x58, 0x6e, 0x52, 0x2a, 0xab, 0x4b, 0x67, 0x36,
+ 0x91, 0xf6, 0xf8, 0x29, 0x9f, 0x2f, 0xe7, 0xcc, 0x11, 0xd9, 0x67, 0x0d,
+ 0x65, 0x30, 0xa7, 0x3b, 0x47, 0x17, 0x16, 0xf8, 0x38, 0xc6, 0x13, 0x75,
+ 0xf7, 0xbe, 0x0d, 0x98, 0x62, 0xdb, 0x4a, 0xbd, 0x70, 0x7a, 0x87, 0x69,
+ 0xfd, 0xb1, 0x50, 0xff, 0xed, 0x3b, 0x34, 0x79, 0x6e, 0x54, 0x90, 0x2f,
+ 0xc3, 0x4e, 0xa4, 0x9e, 0xe4, 0x60, 0xc1, 0x81, 0x9d, 0x49, 0x38, 0xdd,
+ 0x6c, 0xea, 0x59, 0x3f, 0xbc, 0xdd, 0xe0, 0x97, 0x92, 0x55, 0x5a, 0x2d,
+ 0xa3, 0xfa, 0x9e, 0x5b, 0x5b, 0xf6, 0x3c, 0x0d, 0xd5, 0x79, 0x2e, 0xf9,
+ 0x5a, 0x92, 0x8d, 0x7f, 0xcd, 0x24, 0x62, 0xcb, 0x45, 0x70, 0x5f, 0x5b,
+ 0x49, 0x61, 0xf5, 0x27, 0xf3, 0xf9, 0x5d, 0x81, 0x73, 0x88, 0x4d, 0x46,
+ 0xbe, 0x5e, 0x99, 0x63, 0x75, 0xbf, 0xc0, 0xb7, 0xb8, 0x52, 0xe4, 0x6d,
+ 0x93, 0x27, 0x28, 0xb8, 0x46, 0x98, 0x8f, 0x80, 0x59, 0x68, 0x0e, 0x68,
+ 0x52, 0x78, 0xf9, 0xfa, 0x9a, 0x6c, 0xf6, 0xf8, 0xd3, 0xa7, 0xf0, 0xb2,
+ 0x74, 0x66, 0x1c, 0x33, 0xdc, 0xb1, 0x8d, 0xf7, 0x78, 0xf7, 0x73, 0xfa,
+ 0xe7, 0x93, 0x4f, 0x1d, 0x53, 0x6f, 0x18, 0xa5, 0xa3, 0xd3, 0xe4, 0xd3,
+ 0x74, 0x5c, 0x72, 0xfc, 0x88, 0x27, 0x2c, 0xf5, 0x26, 0x53, 0x3d, 0xe0,
+ 0x22, 0x1b, 0x6e, 0x53, 0x2e, 0x56, 0x12, 0x06, 0xe6, 0x81, 0x25, 0x64,
+ 0xa5, 0xb9, 0xe1, 0xda, 0x9d, 0x1c, 0xe3, 0x43, 0xd1, 0x31, 0xa3, 0xad,
+ 0xd2, 0x64, 0xea, 0x5c, 0x69, 0xa3, 0xd3, 0x72, 0xc9, 0x41, 0xb8, 0x2c,
+ 0x88, 0xea, 0xe4, 0x3c, 0xfb, 0x74, 0xa8, 0xcc, 0xa5, 0x95, 0xa3, 0x94,
+ 0x3c, 0x9f, 0xec, 0x3a, 0xd9, 0x33, 0xcb, 0x90, 0x17, 0xcb, 0xc6, 0xb2,
+ 0x83, 0xe1, 0x83, 0xba, 0x43, 0xa3, 0xb3, 0x4f, 0x92, 0xde, 0x5e, 0x2c,
+ 0x22, 0x0d, 0x6a, 0x2f, 0xb6, 0xc5, 0xe7, 0x04, 0xe5, 0x90, 0xc4, 0x29,
+ 0xe1, 0xdf, 0xb3, 0x31, 0x35, 0x57, 0x23, 0x88, 0x12, 0x09, 0xce, 0x3e,
+ 0x99, 0xc9, 0xe6, 0x62, 0x1b, 0x89, 0xbd, 0x1e, 0xdc, 0xa5, 0x26, 0x08,
+ 0x57, 0x66, 0xbe, 0x8f, 0xe0, 0x56, 0x5a, 0x62, 0xdc, 0x56, 0xf6, 0x81,
+ 0xa4, 0x2b, 0x1b, 0x39, 0x92, 0x9c, 0xcb, 0x2c, 0xa1, 0xce, 0xff, 0x03,
+ 0x8e, 0x76, 0x9d, 0xd6, 0xb3, 0x41, 0xde, 0x95, 0xe6, 0xc7, 0xc0, 0xc2,
+ 0x59, 0x24, 0x8b, 0xdd, 0x85, 0xa6, 0x89, 0xd1, 0xe1, 0xe8, 0xb4, 0x43,
+ 0xa1, 0xb4, 0x96, 0xda, 0x76, 0xaf, 0xad, 0xf8, 0x3c, 0x90, 0x7f, 0x4f,
+ 0xe3, 0x17, 0xad, 0x0c, 0xe5, 0x75, 0xd4, 0x7b, 0xcc, 0x87, 0xba, 0xaa,
+ 0x3c, 0x57, 0x7d, 0xc0, 0x5f, 0x77, 0x34, 0x9f, 0x61, 0x67, 0x98, 0x0e,
+ 0x88, 0x20, 0x26, 0x5c, 0x48, 0x2d, 0x89, 0x70, 0xca, 0xe0, 0x89, 0x1d,
+ 0x01, 0xb0, 0xdc, 0x17, 0x05, 0x66, 0x4a, 0x3f, 0x1d, 0xf9, 0x88, 0xee,
+ 0x02, 0xaa, 0x33, 0x38, 0x88, 0x71, 0xdf, 0x58, 0x50, 0x9b, 0x68, 0x94,
+ 0x35, 0x9e, 0x26, 0x30, 0x4b, 0x23, 0x17, 0x97, 0x95, 0x58, 0xd4, 0x86,
+ 0xc3, 0x84, 0x10, 0xb9, 0x74, 0x48, 0x45, 0xcd, 0xa1, 0xc2, 0x2b, 0x2e,
+ 0xe5, 0xa6, 0x3d, 0xf0, 0xda, 0xec, 0xca, 0x49, 0xfc, 0x90, 0xc1, 0x70,
+ 0x7f, 0x5f, 0xe6, 0xa4, 0x53, 0x50, 0xe6, 0xd0, 0x30, 0x79, 0xc9, 0xb8,
+ 0x26, 0x29, 0x89, 0xc6, 0xa5, 0x17, 0x51, 0x9f, 0x91, 0x1e, 0xb5, 0x1d,
+ 0x08, 0x22, 0x38, 0xa6, 0x43, 0x74, 0x0e, 0xdf, 0xa0, 0xd3, 0x47, 0xd4,
+ 0xe9, 0xb9, 0x39, 0xe8, 0xa0, 0x6d, 0x91, 0x94, 0x3e, 0x20, 0x59, 0x24,
+ 0xe2, 0xad, 0x38, 0x74, 0xe1, 0x01, 0xaf, 0x3f, 0x84, 0xf6, 0x6d, 0xbf,
+ 0x55, 0x05, 0x07, 0xf6, 0x9e, 0xd8, 0x02, 0x0d, 0x15, 0x51, 0x2a, 0xd2,
+ 0xd9, 0x4e, 0xdd, 0x4c, 0x49, 0xfe, 0x2d, 0x8b, 0x19, 0x75, 0x92, 0x9a,
+ 0xd2, 0x8a, 0x5f, 0xdd, 0xb9, 0x69, 0x62, 0x0c, 0x2b, 0xc1, 0x02, 0x71,
+ 0xf0, 0x39, 0x0c, 0x51, 0x5a, 0x15, 0x96, 0x7e, 0x22, 0xf2, 0x23, 0x64,
+ 0xd2, 0xf1, 0xa7, 0x8a, 0xec, 0x5e, 0x1e, 0x31, 0x26, 0xb2, 0xb5, 0x6e,
+ 0xeb, 0x12, 0xfe, 0x3f, 0x52, 0x87, 0xcc, 0x46, 0x1b, 0x97, 0xb5, 0xd2,
+ 0xd2, 0x9a, 0x41, 0x9a, 0xd7, 0x5b, 0xe7, 0x09, 0xbc, 0x55, 0xf7, 0x52,
+ 0x83, 0x44, 0xca, 0x04, 0x3f, 0xbe, 0x97, 0x13, 0x84, 0xdf, 0x08, 0x8b,
+ 0xe1, 0xfe, 0x62, 0x56, 0x10, 0x77, 0xa0, 0x1d, 0xe9, 0x11, 0x99, 0x92,
+ 0x16, 0xb8, 0x27, 0x78, 0x9c, 0x16, 0x41, 0x06, 0xcc, 0x37, 0x0a, 0x8d,
+ 0x46, 0x2a, 0x94, 0x99, 0xed, 0xb4, 0x94, 0x4c, 0xff, 0xc9, 0xcc, 0xc8,
+ 0xfa, 0x88, 0xc9, 0xa9, 0x05, 0xea, 0x88, 0x3b, 0xab, 0xdf, 0x15, 0xa7,
+ 0xf5, 0x92, 0x54, 0x90, 0xd9, 0x92, 0xbe, 0xcd, 0xb4, 0x53, 0x96, 0xf6,
+ 0x48, 0x13, 0x94, 0xa3, 0x54, 0x61, 0x96, 0x5c, 0x84, 0xce, 0xa8, 0xc7,
+ 0x9a, 0xb6, 0xd4, 0x5a, 0x96, 0x4a, 0x28, 0xd6, 0x65, 0xde, 0x1a, 0xae,
+ 0xe8, 0x1d, 0xd9, 0x85, 0x7d, 0xbf, 0xf4, 0xb3, 0x1f, 0x31, 0xa7, 0x64,
+ 0x0c, 0xed, 0x4e, 0xbb, 0x9c, 0x72, 0x8c, 0x0a, 0x8a, 0x3d, 0x2d, 0x7c,
+ 0xc9, 0xf8, 0x7d, 0xd3, 0xdb, 0x43, 0xf3, 0x76, 0x01, 0x91, 0x6e, 0x55,
+ 0x53, 0x3e, 0x29, 0x02, 0x46, 0xcb, 0x87, 0xd4, 0x7b, 0x5e, 0x59, 0xe1,
+ 0x39, 0x64, 0x09, 0x89, 0x55, 0x7c, 0xf6, 0xbd, 0xda, 0x65, 0x8b, 0xde,
+ 0xf3, 0x5f, 0x7a, 0x1f, 0x3e, 0x69, 0x17, 0x2b, 0x12, 0x1e, 0xb8, 0x5f,
+ 0x75, 0xa0, 0xd2, 0x87, 0x9d, 0xa8, 0x15, 0xa8, 0xf8, 0xff, 0x3b, 0x4f,
+ 0x54, 0xfa, 0xb0, 0x23, 0x95, 0xb6, 0xce, 0xd4, 0x8a, 0x1a, 0xdd, 0x2b,
+ 0x7b, 0xfc, 0x1b, 0x9e, 0x32, 0x0b, 0x1d, 0x78, 0xe8, 0x19, 0x4b, 0x5c,
+ 0x21, 0xf5, 0xff, 0x8b, 0x4f, 0xd9, 0xe7, 0x1d, 0x2d, 0x10, 0xa4, 0x8a,
+ 0x0f, 0xac, 0x09, 0x46, 0x50, 0x66, 0xd2, 0xb5, 0x76, 0x2c, 0xff, 0x59,
+ 0x9c, 0x52, 0x9e, 0x89, 0x74, 0x22, 0xd1, 0x7c, 0x06, 0xd5, 0x61, 0x42,
+ 0x9e, 0xd8, 0xe5, 0xd0, 0x0c, 0xe1, 0xb5, 0x2d, 0x07, 0xa6, 0xba, 0x65,
+ 0x21, 0x25, 0x1c, 0xa6, 0x2d, 0x23, 0x27, 0xf4, 0x5b, 0x76, 0x5c, 0xd7,
+ 0xe6, 0x6e, 0x5f, 0xe4, 0xac, 0x22, 0x18, 0xed, 0x85, 0x92, 0x39, 0xbf,
+ 0x19, 0x8d, 0x06, 0x87, 0xe7, 0x27, 0xdd, 0x93, 0xd7, 0xfe, 0x9c, 0x96,
+ 0x5c, 0x7f, 0xb2, 0xb2, 0x44, 0xd8, 0x6a, 0xa8, 0x44, 0xfb, 0xdb, 0x46,
+ 0xd3, 0xed, 0x4e, 0xec, 0x61, 0x9d, 0xb4, 0xb0, 0x80, 0xd2, 0x23, 0x9f,
+ 0xa0, 0x5a, 0x68, 0x38, 0x85, 0x87, 0x19, 0xd9, 0xe5, 0x24, 0xb7, 0xf0,
+ 0x40, 0x80, 0x9c, 0x04, 0x59, 0x06, 0x51, 0x5d, 0xec, 0x3d, 0x7b, 0xba,
+ 0x67, 0xce, 0xc5, 0x1d, 0xb3, 0xc5, 0xc9, 0xcb, 0x8f, 0x87, 0x8f, 0x76,
+ 0x1e, 0x0f, 0x1f, 0x93, 0x54, 0x93, 0x38, 0x06, 0xcc, 0x3a, 0x69, 0xde,
+ 0xc8, 0xbb, 0x08, 0x72, 0x80, 0xaf, 0xb1, 0xb7, 0xc7, 0x47, 0x09, 0x03,
+ 0xcc, 0xc0, 0x1f, 0x96, 0x20, 0xdf, 0x85, 0x72, 0x67, 0x24, 0x0d, 0x1a,
+ 0x01, 0x6e, 0x12, 0xa6, 0xb2, 0x88, 0xbc, 0x5d, 0x03, 0x73, 0x2c, 0x98,
+ 0x0e, 0x35, 0x26, 0x90, 0x43, 0x5e, 0xd8, 0x8e, 0x90, 0xc0, 0x63, 0xbb,
+ 0x42, 0xe6, 0x85, 0xfa, 0x18, 0xe6, 0x8a, 0x78, 0x53, 0xf2, 0x40, 0x46,
+ 0x6f, 0xaa, 0x8c, 0xbb, 0x7a, 0x7d, 0xd4, 0x80, 0x59, 0x61, 0x02, 0x39,
+ 0x2f, 0x65, 0x60, 0xe9, 0x88, 0x48, 0x54, 0x70, 0x1c, 0x39, 0x5b, 0x26,
+ 0x73, 0x6b, 0x94, 0x5c, 0xfd, 0x7d, 0x5a, 0x0c, 0x7f, 0xa9, 0x45, 0x15,
+ 0x51, 0x89, 0x3d, 0xc3, 0x49, 0xbb, 0x2e, 0xa2, 0x4c, 0xac, 0xa5, 0x55,
+ 0x03, 0x12, 0x23, 0xa9, 0xeb, 0x0b, 0xe0, 0x2d, 0x40, 0xc7, 0x99, 0x6d,
+ 0x28, 0xaf, 0x29, 0xdb, 0x7e, 0xe4, 0x67, 0xda, 0x7a, 0x24, 0x85, 0x80,
+ 0x3e, 0xc6, 0x6d, 0x55, 0x59, 0x3a, 0x93, 0x5e, 0x79, 0xdf, 0x09, 0x7f,
+ 0x89, 0xb0, 0x24, 0x89, 0xdb, 0x3a, 0x84, 0x4e, 0x39, 0x4e, 0x51, 0xed,
+ 0x82, 0x05, 0x52, 0x78, 0x24, 0xf9, 0x95, 0xb9, 0x50, 0xf2, 0x45, 0x3a,
+ 0x4b, 0x1e, 0x80, 0x00, 0x5e, 0xbd, 0xf8, 0x0f, 0xa9, 0x9f, 0xa1, 0xa7,
+ 0x73, 0x8d, 0xa8, 0x53, 0xfe, 0x96, 0xee, 0xa5, 0x17, 0xca, 0xb9, 0x15,
+ 0x8d, 0x11, 0x22, 0x55, 0xe4, 0x99, 0x27, 0xce, 0xba, 0x01, 0x6e, 0x42,
+ 0x83, 0xa8, 0x8f, 0x69, 0x52, 0xce, 0x17, 0x08, 0x1b, 0xe0, 0xa2, 0xd3,
+ 0x66, 0x25, 0x41, 0x8d, 0xfc, 0x62, 0x5c, 0xa6, 0x63, 0x8d, 0x78, 0xe7,
+ 0x22, 0xdb, 0x93, 0x07, 0xc8, 0xde, 0xdf, 0x42, 0x18, 0x92, 0x12, 0xc7,
+ 0x9e, 0x86, 0x5f, 0xae, 0xce, 0xc9, 0x14, 0x26, 0x5b, 0x88, 0xd0, 0x4a,
+ 0xaa, 0x91, 0x92, 0x16, 0x6a, 0xd4, 0x3c, 0xe2, 0xa7, 0x42, 0x7c, 0x0c,
+ 0x1b, 0x64, 0x7b, 0xf8, 0x20, 0x96, 0xd9, 0x8e, 0xea, 0x17, 0x72, 0xdd,
+ 0xfc, 0xdf, 0xa0, 0x08, 0x3e, 0x49, 0xec, 0x5a, 0x3d, 0x44, 0x21, 0x64,
+ 0x42, 0x66, 0xae, 0xe6, 0x1a, 0x70, 0x0d, 0x39, 0xa3, 0xeb, 0xff, 0xd3,
+ 0x07, 0xff, 0xff, 0x49, 0x1f, 0xfc, 0x67, 0x4e, 0x29, 0x95, 0xfe, 0x86,
+ 0x0e, 0xe1, 0x9f, 0x4c, 0xff, 0x30, 0xc6, 0x60, 0xc1, 0xb3, 0xbb, 0xa1,
+ 0x4b, 0x06, 0xfb, 0x05, 0x47, 0x34, 0xdc, 0x0a, 0xff, 0x77, 0x1c, 0xd1,
+ 0x07, 0x9d, 0xcc, 0xff, 0xcf, 0xfb, 0xf1, 0x7f, 0xda, 0x39, 0x5c, 0x03,
+ 0xf9, 0xd8, 0x32, 0xdb, 0xec, 0x96, 0x0a, 0x1e, 0x70, 0x19, 0x19, 0xd8,
+ 0xda, 0xdb, 0x4e, 0xf5, 0xa1, 0xb4, 0x19, 0x9e, 0xba, 0x93, 0xf3, 0xef,
+ 0x9e, 0xf6, 0x29, 0x90, 0x35, 0xea, 0x06, 0x2f, 0xab, 0xe4, 0xf4, 0xe5,
+ 0xe1, 0xf9, 0x2f, 0x38, 0xed, 0x7f, 0x85, 0xa3, 0x75, 0x91, 0x65, 0xd3,
+ 0x01, 0x47, 0x48, 0x9e, 0xe3, 0x1f, 0xd1, 0xd0, 0xa2, 0xe6, 0xc2, 0x63,
+ 0xdb, 0x52, 0xe0, 0x24, 0x8c, 0xd9, 0xe2, 0x65, 0xa3, 0xa6, 0x14, 0xc2,
+ 0x4e, 0xb1, 0x40, 0xb9, 0xa5, 0xc0, 0xcb, 0x52, 0x16, 0xd3, 0x6d, 0x51,
+ 0x01, 0xf9, 0xdb, 0xd8, 0x2a, 0x12, 0x6b, 0xa7, 0xe3, 0x7d, 0x4d, 0x1c,
+ 0x56, 0x96, 0x05, 0xd0, 0x7b, 0x86, 0xf1, 0x42, 0x51, 0xe0, 0xc7, 0x9d,
+ 0x1b, 0x0a, 0x07, 0x77, 0x98, 0x69, 0xea, 0xd1, 0x2e, 0x79, 0xe0, 0x21,
+ 0x41, 0xb2, 0xe6, 0x77, 0xcc, 0x8b, 0xef, 0x7e, 0x7e, 0x15, 0x74, 0x60,
+ 0xed, 0x54, 0xfa, 0x2b, 0xd1, 0x9a, 0x41, 0x8a, 0x05, 0x4e, 0x97, 0x55,
+ 0x58, 0xa1, 0x2d, 0xf5, 0x67, 0x87, 0xa3, 0xe5, 0xdc, 0x5f, 0xfb, 0x89,
+ 0xf6, 0x5c, 0x9a, 0xcf, 0xb7, 0xa6, 0x33, 0x82, 0x90, 0xef, 0xb7, 0x90,
+ 0x19, 0x7e, 0x97, 0x6c, 0x44, 0x70, 0x2f, 0x51, 0xe7, 0x3e, 0xe0, 0x5b,
+ 0x02, 0x5c, 0x31, 0xbb, 0x29, 0x34, 0xfd, 0xdc, 0xeb, 0xf7, 0x01, 0x9e,
+ 0xca, 0xa2, 0xa9, 0x98, 0x52, 0x59, 0x82, 0xa5, 0xb5, 0x72, 0x7d, 0x2f,
+ 0xbd, 0x4a, 0x99, 0x29, 0x17, 0xad, 0xa7, 0x59, 0x0b, 0x89, 0x0d, 0xf9,
+ 0x7c, 0x67, 0xcd, 0x64, 0x68, 0x57, 0x16, 0x64, 0x63, 0x54, 0xcc, 0xde,
+ 0xa8, 0xb8, 0x5a, 0xef, 0xd3, 0x8c, 0xb0, 0xba, 0xd3, 0xb4, 0xf7, 0xc1,
+ 0x0a, 0x6f, 0x85, 0xc6, 0xfc, 0x57, 0xc0, 0xa0, 0x7f, 0x43, 0xd8, 0xe7,
+ 0xfa, 0xca, 0x52, 0x61, 0xaa, 0xb7, 0x3a, 0x64, 0xac, 0x54, 0x48, 0x51,
+ 0x55, 0x9e, 0xf6, 0x02, 0x15, 0xa0, 0xcc, 0x9b, 0x3b, 0x62, 0x0b, 0xb8,
+ 0x15, 0x90, 0x7a, 0x57, 0xde, 0x8f, 0x4e, 0x1f, 0x61, 0x5a, 0x2f, 0x4f,
+ 0x47, 0x3e, 0xeb, 0x76, 0x8d, 0x92, 0xa4, 0x48, 0x53, 0xfa, 0xfa, 0xf8,
+ 0x70, 0x74, 0x39, 0x0c, 0x86, 0x68, 0xc6, 0x18, 0x82, 0x43, 0x6c, 0xaa,
+ 0x51, 0x06, 0x0e, 0xa2, 0x59, 0x7a, 0x47, 0x54, 0x77, 0x92, 0xfe, 0x44,
+ 0x9d, 0xe3, 0xbe, 0x69, 0xeb, 0x64, 0xe7, 0xa6, 0x8c, 0xbe, 0x6d, 0xb2,
+ 0x2a, 0x64, 0xa8, 0x32, 0x73, 0x37, 0xce, 0x67, 0x34, 0x02, 0xd3, 0x2f,
+ 0x63, 0x0d, 0xcd, 0x05, 0xd4, 0x8c, 0x5c, 0xda, 0x72, 0x46, 0xb0, 0x32,
+ 0xfa, 0x4c, 0xdb, 0x0f, 0x41, 0x4c, 0x9a, 0x92, 0x60, 0xbc, 0x3a, 0x5d,
+ 0xd0, 0x68, 0x19, 0x65, 0x9d, 0x09, 0x5d, 0x19, 0xb5, 0xa1, 0x73, 0xc5,
+ 0xb9, 0x4c, 0x36, 0x9b, 0x00, 0xaf, 0x80, 0x6c, 0x21, 0xcc, 0xc5, 0x4a,
+ 0xeb, 0x0f, 0x8a, 0x48, 0x47, 0xc9, 0x36, 0x02, 0xd0, 0xac, 0xc5, 0xd7,
+ 0x75, 0x2d, 0x21, 0xb3, 0xd0, 0xc8, 0x5c, 0xa5, 0x0c, 0x86, 0xae, 0x6d,
+ 0xf7, 0x7d, 0x4e, 0xdc, 0xbf, 0xdb, 0x6b, 0xd6, 0xdb, 0x46, 0xc8, 0xfd,
+ 0x8a, 0x72, 0x09, 0xb5, 0x16, 0xaf, 0xe8, 0x93, 0x4c, 0x6e, 0x32, 0x73,
+ 0x89, 0x0c, 0xbd, 0xfc, 0xeb, 0x07, 0x4f, 0xc8, 0x46, 0x40, 0xd4, 0x15,
+ 0x99, 0x9e, 0x5f, 0x3c, 0x21, 0x8f, 0x1f, 0x87, 0x13, 0x52, 0x65, 0x7f,
+ 0x9f, 0xc6, 0xb8, 0x8d, 0x81, 0x10, 0x07, 0x3c, 0x9d, 0x61, 0xdd, 0x17,
+ 0x4c, 0xd0, 0x4c, 0x5d, 0xdd, 0xa1, 0x4a, 0x28, 0x0a, 0xb5, 0x75, 0xb4,
+ 0x57, 0x64, 0x61, 0x53, 0x08, 0x32, 0x2c, 0x75, 0xdb, 0x48, 0xda, 0xb4,
+ 0x57, 0xd9, 0x2c, 0x8f, 0x27, 0xed, 0x0b, 0xd8, 0x53, 0x3e, 0xb2, 0x56,
+ 0x83, 0x24, 0x88, 0x27, 0xea, 0x69, 0x50, 0x1e, 0x98, 0x3d, 0x3c, 0x83,
+ 0xc1, 0x55, 0xb3, 0xb0, 0x03, 0x5b, 0xbb, 0x3b, 0x76, 0x83, 0xc9, 0x50,
+ 0x5a, 0x67, 0x8c, 0x9d, 0x07, 0x2f, 0xa3, 0x4f, 0x2e, 0x21, 0xb1, 0xd8,
+ 0x0b, 0xbb, 0x66, 0x0a, 0x02, 0x64, 0x19, 0x95, 0xeb, 0x60, 0xd0, 0x28,
+ 0x28, 0x86, 0xa4, 0x44, 0xed, 0x43, 0x27, 0x22, 0x14, 0x1e, 0x98, 0x96,
+ 0x56, 0x6c, 0xd4, 0x0e, 0x58, 0x24, 0xb8, 0xc6, 0x47, 0x65, 0x0a, 0x38,
+ 0x01, 0x0a, 0x58, 0xe3, 0x41, 0xc8, 0x01, 0x6c, 0xac, 0xf9, 0x8f, 0xd9,
+ 0x0c, 0x29, 0x41, 0x59, 0x31, 0xa9, 0xee, 0x16, 0x3e, 0x19, 0xf7, 0xf4,
+ 0x9f, 0x99, 0x7f, 0x45, 0xee, 0x23, 0x78, 0x6c, 0x14, 0x1f, 0x23, 0xec,
+ 0xb6, 0x43, 0xfd, 0x8b, 0xb2, 0x17, 0x55, 0xbe, 0xb1, 0x67, 0x0a, 0xc0,
+ 0x5b, 0x8e, 0x11, 0x5b, 0xfd, 0x97, 0xac, 0x19, 0x95, 0xde, 0x4c, 0x77,
+ 0xc7, 0x04, 0x63, 0xdd, 0xb8, 0xc7, 0x12, 0xf4, 0x45, 0x16, 0xb1, 0xfc,
+ 0xe0, 0xb5, 0xdf, 0xef, 0xf3, 0x84, 0x7d, 0xdc, 0x0f, 0x52, 0x1a, 0x48,
+ 0x24, 0xbc, 0x22, 0x2f, 0x4d, 0xdb, 0x11, 0x4f, 0x07, 0x56, 0xeb, 0x1a,
+ 0xed, 0xb3, 0x2b, 0xaa, 0x55, 0x0a, 0x53, 0xa0, 0xa4, 0x01, 0xcc, 0x89,
+ 0xb3, 0xa3, 0xe9, 0x6d, 0x97, 0x4a, 0x37, 0x32, 0xc2, 0x95, 0x41, 0x5c,
+ 0xea, 0x5b, 0x1a, 0x2f, 0x73, 0x21, 0x0a, 0xa0, 0x1b, 0xd0, 0x3c, 0xfd,
+ 0x71, 0x7f, 0x15, 0xb5, 0xf4, 0x50, 0x7e, 0x8d, 0x54, 0xd3, 0x29, 0x55,
+ 0x31, 0x70, 0xbc, 0x77, 0x89, 0x2d, 0x89, 0x0c, 0x0c, 0x23, 0x39, 0xa8,
+ 0x9f, 0xee, 0x7d, 0xf6, 0x74, 0x7b, 0x5d, 0x0d, 0x58, 0x2a, 0xfa, 0x41,
+ 0x49, 0x74, 0xbc, 0x89, 0xe8, 0x5f, 0xfb, 0x43, 0x7f, 0x82, 0xbc, 0xca,
+ 0x04, 0x92, 0x7c, 0x1a, 0xde, 0x71, 0xe6, 0xc2, 0xa1, 0x4d, 0x81, 0x89,
+ 0x50, 0x02, 0x77, 0x6c, 0x17, 0x1e, 0x17, 0x59, 0x33, 0x72, 0xce, 0xb1,
+ 0x99, 0xbb, 0x66, 0x61, 0x50, 0x85, 0x14, 0x66, 0xe2, 0xe0, 0x91, 0xf6,
+ 0x81, 0xef, 0x4f, 0xbf, 0x0c, 0x1c, 0x77, 0x16, 0x7f, 0x1f, 0xb6, 0xff,
+ 0xe5, 0x07, 0x34, 0x5d, 0x03, 0xbf, 0x66, 0x95, 0x1f, 0xfd, 0x0b, 0x56,
+ 0xf9, 0xd1, 0xfa, 0x55, 0x7e, 0xf4, 0xd0, 0x55, 0xfe, 0xec, 0xc9, 0xd3,
+ 0xcf, 0x7f, 0xc5, 0x2a, 0x7b, 0x33, 0xfc, 0xdf, 0xb6, 0xca, 0xde, 0x4e,
+ 0xfb, 0x75, 0xab, 0x2c, 0xc0, 0x90, 0x40, 0x10, 0x4b, 0xc5, 0x0c, 0x82,
+ 0xf0, 0x51, 0xca, 0x3b, 0x23, 0xf9, 0xf9, 0x59, 0x4b, 0x22, 0xdb, 0xe2,
+ 0x15, 0xb6, 0xd5, 0xb2, 0x48, 0x13, 0x8b, 0x98, 0xd9, 0x2e, 0x01, 0x1f,
+ 0x3a, 0xee, 0x62, 0x46, 0x55, 0x97, 0x36, 0x07, 0x9b, 0xea, 0x20, 0xd1,
+ 0x04, 0x27, 0xe5, 0xaf, 0xe1, 0xcf, 0x99, 0xa5, 0xfe, 0x17, 0xf2, 0x1f,
+ 0x85, 0xb8, 0x19, 0x0f, 0xf9, 0xd4, 0x9e, 0xb4, 0xbb, 0x99, 0x31, 0x14,
+ 0x18, 0x87, 0x14, 0x45, 0xc0, 0x49, 0x36, 0xa6, 0xe5, 0x60, 0x51, 0x57,
+ 0xcd, 0xd8, 0xa8, 0x85, 0xe6, 0x1e, 0x28, 0x1a, 0x2e, 0x66, 0x2f, 0x49,
+ 0x7e, 0x34, 0x68, 0xda, 0x19, 0x91, 0x0c, 0x4d, 0xad, 0xfe, 0xd1, 0x41,
+ 0x2d, 0xd9, 0xba, 0xd6, 0x65, 0xbb, 0x33, 0x08, 0x03, 0xd4, 0xe6, 0x94,
+ 0x4c, 0xb8, 0x96, 0xcb, 0x3c, 0x42, 0xca, 0xb1, 0x46, 0xd2, 0x3f, 0xed,
+ 0x82, 0xee, 0x56, 0x54, 0x1b, 0x89, 0x26, 0xf2, 0x53, 0x81, 0x9b, 0x76,
+ 0x85, 0x1b, 0xc6, 0xc3, 0x32, 0xf7, 0x15, 0x54, 0xfe, 0x6e, 0x25, 0x97,
+ 0xbc, 0x06, 0x0e, 0x3b, 0x48, 0x15, 0xa4, 0x4b, 0x5d, 0x06, 0xd4, 0x2e,
+ 0xa3, 0xe2, 0x10, 0x85, 0x3a, 0x33, 0xc3, 0xae, 0x69, 0x16, 0x98, 0x89,
+ 0x04, 0xb0, 0x95, 0x72, 0x37, 0x7a, 0x45, 0xb2, 0x11, 0xfe, 0x92, 0x56,
+ 0x77, 0xba, 0x9c, 0x2f, 0x94, 0xb6, 0x8c, 0x72, 0x39, 0x72, 0xa4, 0xfb,
+ 0x48, 0xd2, 0x72, 0xac, 0x08, 0x75, 0x5a, 0x79, 0x7e, 0x26, 0x01, 0xb8,
+ 0xb1, 0xcf, 0x4a, 0xd7, 0xca, 0x71, 0x19, 0xf1, 0x18, 0x24, 0x67, 0x0a,
+ 0xd9, 0x13, 0x45, 0x17, 0xff, 0xc9, 0xd9, 0x9e, 0x94, 0xda, 0x35, 0xcd,
+ 0xc6, 0xcb, 0x6b, 0xcd, 0xfc, 0xb5, 0x95, 0xb1, 0xda, 0xbb, 0x12, 0xd9,
+ 0x26, 0xc4, 0x05, 0x92, 0x69, 0x69, 0xeb, 0x90, 0x04, 0xa1, 0xa1, 0x9a,
+ 0x70, 0x93, 0x75, 0x00, 0xb1, 0x60, 0xe0, 0xd8, 0xec, 0xad, 0x91, 0xe3,
+ 0x27, 0xad, 0x8a, 0x45, 0x91, 0x12, 0x3e, 0xfe, 0x56, 0x69, 0x26, 0x8b,
+ 0xc1, 0x55, 0x4a, 0x34, 0x82, 0x41, 0xea, 0xa7, 0x80, 0x42, 0xe5, 0x08,
+ 0x5c, 0x1e, 0x9d, 0x27, 0xaf, 0x52, 0x29, 0x20, 0x92, 0x6c, 0x19, 0x09,
+ 0xfc, 0xd9, 0xe3, 0xbd, 0x47, 0xdb, 0x6b, 0x35, 0xf1, 0x36, 0x2d, 0x0e,
+ 0xbe, 0x55, 0x94, 0x31, 0x70, 0xee, 0xe5, 0xb2, 0x42, 0x5e, 0x34, 0xa6,
+ 0xdf, 0x7c, 0xe9, 0xfd, 0xdb, 0xb3, 0x97, 0xc7, 0xa7, 0x87, 0x7f, 0xb5,
+ 0x79, 0xdd, 0x34, 0x09, 0x9a, 0x1a, 0xf8, 0xde, 0x18, 0xb0, 0x77, 0xef,
+ 0xeb, 0xcc, 0xf4, 0xb9, 0xd9, 0x7a, 0xb4, 0x4d, 0x59, 0x4a, 0x41, 0x35,
+ 0xb9, 0xeb, 0xac, 0x95, 0x13, 0x2f, 0x58, 0xe9, 0x35, 0xc4, 0x2e, 0xd6,
+ 0x45, 0xb9, 0x3b, 0xdc, 0x97, 0x22, 0x01, 0x42, 0x72, 0xee, 0x64, 0x96,
+ 0x57, 0xae, 0x20, 0x15, 0xe6, 0x27, 0xcd, 0x41, 0x0f, 0xb6, 0xc7, 0xa7,
+ 0xc5, 0x2c, 0x9f, 0xe4, 0x64, 0xaf, 0xc8, 0xb1, 0xce, 0x29, 0x10, 0x7f,
+ 0xd5, 0x26, 0x90, 0x43, 0x66, 0x1d, 0xfd, 0x62, 0x7d, 0x60, 0xb9, 0x2d,
+ 0xfb, 0x1b, 0x5c, 0x16, 0xd9, 0xac, 0xc8, 0x9a, 0x81, 0x74, 0xec, 0xb9,
+ 0xf9, 0xf3, 0xc5, 0xc7, 0x74, 0x16, 0x24, 0x6d, 0x52, 0x31, 0x36, 0xdd,
+ 0x99, 0x56, 0x14, 0xd1, 0x9b, 0x5e, 0x81, 0x84, 0x91, 0xad, 0x13, 0xa0,
+ 0x4f, 0x9a, 0xa3, 0x12, 0xd4, 0x03, 0xb8, 0xbc, 0xfc, 0xeb, 0xf9, 0xf1,
+ 0x8b, 0xe7, 0x24, 0xc8, 0xbe, 0x24, 0x9c, 0x7d, 0xdd, 0x92, 0x6b, 0x09,
+ 0xd5, 0x0a, 0x0e, 0xc6, 0xf0, 0xc3, 0xcb, 0x93, 0xd1, 0xf9, 0xe9, 0xd9,
+ 0xd1, 0x8b, 0xe7, 0x3f, 0x90, 0x5d, 0x69, 0x2e, 0x8f, 0x3b, 0xef, 0x5d,
+ 0xfb, 0x33, 0x4b, 0x79, 0x1e, 0xa6, 0xfd, 0x1f, 0x7f, 0xff, 0xfe, 0xf8,
+ 0xed, 0x77, 0x2f, 0x9e, 0x7f, 0x4c, 0xab, 0x3e, 0x8d, 0x8f, 0xdf, 0x5e,
+ 0x51, 0xeb, 0xb0, 0xb5, 0xd5, 0x48, 0x41, 0x1f, 0xcf, 0x3e, 0xd4, 0xf9,
+ 0x3f, 0xb2, 0xc4, 0xbc, 0x3e, 0x5b, 0x86, 0x94, 0xc3, 0x97, 0x9c, 0x29,
+ 0x6d, 0x26, 0x83, 0xfe, 0x96, 0x7c, 0x7d, 0xfa, 0x2d, 0xd1, 0x5a, 0x5a,
+ 0x4f, 0xe9, 0x9c, 0x2b, 0xa9, 0x24, 0x5f, 0x3e, 0xd9, 0xdb, 0xdf, 0x76,
+ 0x65, 0x02, 0x41, 0x8b, 0x6b, 0x7a, 0xfc, 0x21, 0xc8, 0x11, 0xf9, 0x87,
+ 0x52, 0x7b, 0xd9, 0x52, 0x16, 0x48, 0x64, 0xf0, 0x48, 0x28, 0xd4, 0xe9,
+ 0x84, 0x8c, 0x76, 0xa6, 0xda, 0x28, 0x49, 0x1e, 0x10, 0x3b, 0x50, 0xe0,
+ 0x73, 0xbb, 0x7c, 0xe5, 0x51, 0x51, 0x7c, 0xed, 0xb6, 0x9e, 0xe9, 0x8e,
+ 0xf8, 0xed, 0xd6, 0xde, 0x8f, 0xbf, 0x63, 0x34, 0xa7, 0x6b, 0x54, 0x62,
+ 0xb2, 0xcd, 0x95, 0x26, 0xfb, 0x27, 0x3e, 0xcf, 0x1e, 0xce, 0x07, 0xd9,
+ 0x2e, 0x25, 0xd3, 0xa7, 0x61, 0x94, 0xba, 0xf1, 0x34, 0xe7, 0xf7, 0x1e,
+ 0x2f, 0x5e, 0x3e, 0xa7, 0x1c, 0xc9, 0xac, 0x4e, 0xd4, 0xc3, 0xe3, 0xf9,
+ 0x6f, 0x66, 0xd9, 0x75, 0x3a, 0xb9, 0xb3, 0x74, 0xb0, 0x42, 0x65, 0x12,
+ 0x61, 0x28, 0x48, 0x27, 0x64, 0xce, 0x99, 0x2b, 0xf8, 0x1a, 0xe2, 0x99,
+ 0xa9, 0x0e, 0xcc, 0x71, 0xb5, 0x6e, 0x1f, 0xee, 0x9a, 0xa5, 0x74, 0xd0,
+ 0xeb, 0x72, 0x75, 0x3e, 0x8f, 0x2d, 0xfb, 0xd6, 0xde, 0x7d, 0xb4, 0x6d,
+ 0x50, 0xc4, 0x74, 0xed, 0x9c, 0x3e, 0x6e, 0xfb, 0xcc, 0xff, 0x81, 0x43,
+ 0x4e, 0x6c, 0x39, 0x70, 0xcb, 0x3e, 0xa7, 0xbf, 0xc6, 0x39, 0xb3, 0x51,
+ 0x70, 0x07, 0x8e, 0x0b, 0xae, 0x53, 0xeb, 0x28, 0xe6, 0x2c, 0xcf, 0x99,
+ 0xd4, 0xa1, 0x20, 0xea, 0xe5, 0xc6, 0x39, 0xd4, 0xe3, 0x5c, 0x54, 0xd6,
+ 0xad, 0x6d, 0xb6, 0x27, 0x5f, 0x56, 0xb4, 0x33, 0x56, 0xb4, 0xe7, 0x65,
+ 0xa2, 0x85, 0x41, 0x1a, 0x4e, 0x81, 0x22, 0x38, 0xc2, 0x73, 0x6a, 0x8b,
+ 0x44, 0x22, 0xe9, 0x24, 0x66, 0xa6, 0xbe, 0xd4, 0xb8, 0x4f, 0xea, 0xb3,
+ 0x75, 0xe0, 0x21, 0x66, 0x7b, 0xa8, 0xc3, 0x44, 0x79, 0x46, 0xb8, 0xab,
+ 0xe7, 0x80, 0x21, 0x1a, 0x14, 0x54, 0xb3, 0x14, 0xb0, 0xa6, 0x9b, 0xb5,
+ 0x6a, 0xa5, 0x94, 0xf2, 0x05, 0x43, 0xdd, 0x11, 0x44, 0x46, 0x98, 0x46,
+ 0xfc, 0x0c, 0x25, 0xa2, 0x0a, 0x12, 0x9e, 0x16, 0x0c, 0x4e, 0x6b, 0x30,
+ 0xa0, 0x53, 0x5b, 0x73, 0x1a, 0xcc, 0x36, 0x93, 0x78, 0x45, 0xc9, 0xdb,
+ 0xad, 0x16, 0xdd, 0xba, 0xa7, 0x4c, 0xa3, 0xf4, 0xbe, 0xdc, 0x51, 0xb8,
+ 0x95, 0x38, 0x6b, 0x9a, 0x9b, 0xf5, 0x66, 0x24, 0x48, 0x7d, 0x69, 0x18,
+ 0xca, 0xdf, 0xbd, 0xa4, 0x88, 0x02, 0x58, 0x01, 0xf4, 0xfe, 0x8c, 0x2a,
+ 0x23, 0x35, 0xaa, 0x4b, 0x6d, 0x0d, 0xb6, 0x6d, 0xb2, 0x73, 0xde, 0x58,
+ 0xa5, 0x2d, 0x42, 0x8b, 0x61, 0x69, 0x8a, 0x6d, 0xcd, 0x30, 0x76, 0x7f,
+ 0xea, 0x0e, 0x91, 0x3d, 0x41, 0x1f, 0xdb, 0xe1, 0x3c, 0x37, 0x15, 0x42,
+ 0x79, 0x24, 0xd5, 0x36, 0x68, 0xac, 0xc8, 0x6e, 0xfd, 0xc6, 0x9c, 0xe5,
+ 0x61, 0x1b, 0xfc, 0x3d, 0x3d, 0xde, 0xc6, 0x6a, 0xa2, 0xec, 0x9c, 0xe4,
+ 0xf9, 0x77, 0xc7, 0x17, 0xa3, 0x93, 0xb3, 0xb7, 0x5f, 0x46, 0x0d, 0xe2,
+ 0x44, 0x7e, 0x9b, 0xd8, 0xea, 0x4d, 0x9a, 0xd9, 0xe7, 0xea, 0xe7, 0x90,
+ 0x1b, 0x4c, 0xfd, 0x2d, 0xc9, 0x21, 0xa5, 0x31, 0xd1, 0x03, 0xdd, 0x2d,
+ 0x50, 0x4b, 0x0b, 0xf0, 0xf3, 0xa6, 0xd5, 0x35, 0xe6, 0xc2, 0xec, 0x45,
+ 0x18, 0x6f, 0xa8, 0x8d, 0xaa, 0x56, 0x9d, 0xfd, 0xeb, 0x7e, 0x30, 0xfe,
+ 0x38, 0x26, 0xc7, 0x0b, 0x89, 0x2f, 0x17, 0x9c, 0xf2, 0x45, 0x54, 0x02,
+ 0x4c, 0x3e, 0xe2, 0xf7, 0x2e, 0x20, 0x51, 0xa7, 0x52, 0xa0, 0xfe, 0x8b,
+ 0xe6, 0xe1, 0x8f, 0x7b, 0x5e, 0x9a, 0x8a, 0x7d, 0x6e, 0x2f, 0xf6, 0xdc,
+ 0x5e, 0xf8, 0xdc, 0x7e, 0xec, 0xb9, 0xfd, 0xf0, 0xb9, 0x47, 0xb1, 0xe7,
+ 0xbc, 0x4c, 0x24, 0xcf, 0x4e, 0xd7, 0x19, 0x5a, 0x67, 0xfa, 0x7a, 0xeb,
+ 0xd9, 0x2a, 0x1a, 0xb9, 0xe1, 0xd9, 0xaa, 0x9e, 0xad, 0xae, 0xa6, 0xfa,
+ 0x6a, 0x4b, 0xdd, 0xc7, 0x12, 0x75, 0x1c, 0xc6, 0xe6, 0x43, 0x7b, 0x8f,
+ 0x06, 0x93, 0x7c, 0x71, 0x43, 0x37, 0xc8, 0x73, 0xad, 0xa9, 0x44, 0xf3,
+ 0x4c, 0xe3, 0x92, 0x5f, 0x2c, 0xc9, 0xbc, 0x0e, 0x75, 0x8a, 0xd3, 0x51,
+ 0x8b, 0x8c, 0x44, 0x68, 0xf1, 0xf0, 0x4a, 0xc2, 0xef, 0x38, 0x6e, 0x90,
+ 0xd0, 0x5d, 0x1c, 0xa4, 0xae, 0x58, 0x57, 0x8c, 0x79, 0x4f, 0x3a, 0xc0,
+ 0xc4, 0x11, 0xda, 0x2b, 0xed, 0xa6, 0xb4, 0xcd, 0x4c, 0x96, 0x1a, 0x48,
+ 0xef, 0x34, 0xc7, 0xd4, 0xf2, 0xfa, 0xca, 0x30, 0x61, 0x5a, 0x29, 0xaa,
+ 0x8a, 0x54, 0x74, 0x46, 0xc7, 0xcd, 0x59, 0xf5, 0xb9, 0x2c, 0x62, 0xd7,
+ 0xde, 0xbb, 0x8b, 0xd3, 0x40, 0x4d, 0xb4, 0xa5, 0xc8, 0x51, 0x66, 0xf8,
+ 0x26, 0xfd, 0xf4, 0x69, 0x58, 0x67, 0x3b, 0x46, 0x32, 0xd4, 0x3b, 0xf0,
+ 0xde, 0xca, 0xa7, 0x6f, 0x9a, 0xf9, 0xec, 0xf7, 0x3d, 0xfa, 0x04, 0x2e,
+ 0x23, 0xa5, 0xd4, 0x5c, 0x9d, 0xe6, 0xbf, 0x5f, 0x86, 0x89, 0xa2, 0x18,
+ 0x71, 0x17, 0x83, 0xc6, 0x7a, 0x6c, 0x42, 0x39, 0x4c, 0x5c, 0x8f, 0xba,
+ 0xaf, 0x16, 0xa1, 0xcf, 0xcc, 0x1e, 0x12, 0x7c, 0x58, 0x1b, 0x36, 0x49,
+ 0x7a, 0xa3, 0x8b, 0xf3, 0x5e, 0x5f, 0x22, 0xcf, 0xe6, 0x1b, 0x03, 0xf3,
+ 0xef, 0x04, 0xf6, 0x12, 0x15, 0x75, 0x78, 0xf2, 0x58, 0x40, 0x62, 0xe8,
+ 0xe4, 0x52, 0x2a, 0x3d, 0x07, 0x11, 0x4d, 0xf3, 0x3b, 0x07, 0x93, 0xab,
+ 0x5a, 0xc5, 0x57, 0x8c, 0x1d, 0xd3, 0x1e, 0x20, 0x63, 0x57, 0xfa, 0x8c,
+ 0x47, 0x58, 0xa3, 0x9e, 0xf8, 0x24, 0x63, 0xdc, 0xcb, 0x61, 0xc7, 0xd7,
+ 0x5d, 0x56, 0x1f, 0x84, 0x83, 0x5e, 0xfc, 0xf5, 0x38, 0x51, 0x41, 0x5d,
+ 0xd0, 0xd6, 0x09, 0xb3, 0x2e, 0x3e, 0xf1, 0x13, 0xda, 0x11, 0xcb, 0x5c,
+ 0x39, 0xb6, 0xa5, 0x15, 0xc5, 0x2f, 0xa5, 0x1e, 0x25, 0x09, 0x45, 0x29,
+ 0x3f, 0x8f, 0x86, 0xb4, 0x1d, 0x69, 0xe6, 0x1e, 0x86, 0x89, 0xc7, 0x9d,
+ 0xd5, 0xd7, 0xc9, 0x8b, 0x2c, 0xbb, 0xab, 0xaa, 0x8d, 0x25, 0x82, 0x6e,
+ 0xae, 0xec, 0x6f, 0xf4, 0xf5, 0xce, 0x8e, 0x50, 0x16, 0xaa, 0x55, 0x99,
+ 0x51, 0xca, 0x08, 0xe1, 0xad, 0xc8, 0x50, 0xc3, 0x48, 0xa2, 0x7e, 0x7a,
+ 0x4b, 0xed, 0x18, 0xd8, 0xef, 0x1f, 0x90, 0x3f, 0x1e, 0xbc, 0x1d, 0x85,
+ 0x0e, 0xd3, 0x90, 0x14, 0x5a, 0xf9, 0xa0, 0x01, 0xe9, 0x88, 0xd6, 0x0c,
+ 0x49, 0x43, 0xed, 0xed, 0x41, 0xb9, 0x51, 0x79, 0xc3, 0x72, 0xbb, 0x94,
+ 0x86, 0x16, 0x6c, 0xbd, 0x07, 0x0d, 0xb4, 0x35, 0x52, 0xba, 0x09, 0xa2,
+ 0x42, 0x35, 0xe2, 0xb9, 0xf6, 0x6e, 0xbe, 0x44, 0xae, 0x58, 0xd6, 0x70,
+ 0x99, 0x10, 0x63, 0x4d, 0x86, 0x00, 0x42, 0x55, 0xe2, 0xc2, 0xa6, 0x56,
+ 0x94, 0x39, 0x7f, 0x4d, 0x5e, 0x6b, 0x78, 0x49, 0xd0, 0x35, 0x15, 0x97,
+ 0xff, 0xf7, 0xf6, 0x75, 0xaf, 0xd3, 0xd7, 0x7f, 0x41, 0x57, 0xf7, 0x7f,
+ 0xdd, 0xac, 0xee, 0xff, 0x37, 0xcc, 0xea, 0xa3, 0x5f, 0x39, 0xab, 0x8f,
+ 0x7e, 0xf3, 0x59, 0x75, 0x55, 0x7d, 0xf5, 0x7e, 0xf4, 0x8a, 0xa0, 0x8a,
+ 0x76, 0x48, 0xda, 0x9e, 0xf9, 0xe7, 0x98, 0x40, 0x2a, 0xa2, 0x26, 0x50,
+ 0x2a, 0x79, 0x86, 0xfa, 0xa6, 0x9d, 0x91, 0x3b, 0x16, 0x54, 0x4b, 0x47,
+ 0x2e, 0x4e, 0x64, 0x61, 0x85, 0x25, 0x61, 0xff, 0x75, 0x49, 0x36, 0x90,
+ 0x91, 0x89, 0xfd, 0xe4, 0xed, 0x68, 0xc4, 0xd0, 0x81, 0x11, 0x82, 0x1f,
+ 0x5d, 0xab, 0x98, 0xdc, 0x09, 0x50, 0x69, 0xb6, 0xe8, 0xc2, 0x3c, 0x33,
+ 0x3d, 0x74, 0x1b, 0x8b, 0xdf, 0x9b, 0xa7, 0x13, 0xfa, 0xf1, 0xee, 0x70,
+ 0xcf, 0x4d, 0xce, 0xf6, 0x2f, 0x20, 0xae, 0x71, 0x91, 0x89, 0xa8, 0xf6,
+ 0x1c, 0x61, 0x46, 0x05, 0xd1, 0x68, 0xdd, 0x74, 0x96, 0xe6, 0x93, 0xec,
+ 0x1e, 0x55, 0x67, 0xa2, 0x69, 0x3b, 0x96, 0x9a, 0x46, 0x83, 0x4b, 0xb8,
+ 0xa2, 0xd5, 0x05, 0x82, 0x38, 0x2a, 0xb3, 0x2e, 0x84, 0x07, 0xbf, 0xeb,
+ 0x7e, 0xe7, 0xba, 0xc8, 0xbf, 0x34, 0x36, 0xe4, 0xc5, 0x61, 0xfe, 0xdb,
+ 0x62, 0x43, 0x71, 0x05, 0xb8, 0xf5, 0xaf, 0x56, 0x42, 0x7f, 0x53, 0x0d,
+ 0xb4, 0x8a, 0x49, 0x9c, 0x27, 0xd5, 0xb9, 0x06, 0x08, 0xcd, 0x0f, 0x12,
+ 0xa9, 0x29, 0x6f, 0x1d, 0x8a, 0x96, 0x1f, 0xcb, 0xbb, 0xce, 0x43, 0xcf,
+ 0x18, 0x8c, 0x68, 0xb9, 0x5a, 0xa1, 0xaa, 0x54, 0x7e, 0x04, 0x4d, 0x50,
+ 0xe7, 0x51, 0xd6, 0xbc, 0xe3, 0x96, 0x85, 0x7e, 0xc6, 0x65, 0x7a, 0x83,
+ 0xab, 0x25, 0x08, 0x20, 0x4e, 0x32, 0xe6, 0xf1, 0xc8, 0xef, 0xbb, 0x23,
+ 0x9e, 0xb6, 0xc7, 0x9b, 0x4e, 0xb2, 0x41, 0x5a, 0x4f, 0xf2, 0x3c, 0x6e,
+ 0x8b, 0x6b, 0x24, 0xc7, 0xd8, 0xfe, 0x4b, 0xf8, 0xe0, 0xa8, 0x70, 0x33,
+ 0x79, 0xcd, 0xb5, 0x30, 0x2a, 0x71, 0x9b, 0x32, 0xb5, 0x05, 0xbb, 0x01,
+ 0xca, 0x65, 0x73, 0x0d, 0x96, 0x43, 0x74, 0xb6, 0x1f, 0xec, 0x4c, 0xf2,
+ 0xac, 0x33, 0x07, 0x68, 0x3d, 0xa9, 0xf2, 0x05, 0xa8, 0xde, 0xbc, 0x12,
+ 0x2c, 0x7d, 0x5b, 0xa3, 0x14, 0xc6, 0xb2, 0xc4, 0x3f, 0xb8, 0x68, 0xe7,
+ 0xbb, 0x80, 0x51, 0xa0, 0x37, 0xe8, 0x91, 0x63, 0xc2, 0xd6, 0xad, 0x30,
+ 0xef, 0x12, 0x47, 0x27, 0xf3, 0x5c, 0xf1, 0xab, 0xa8, 0x01, 0xbd, 0x3a,
+ 0x90, 0xa6, 0x8e, 0x48, 0xb3, 0x85, 0xee, 0x94, 0x05, 0x12, 0xd4, 0xdc,
+ 0x1a, 0x60, 0x18, 0x33, 0xd9, 0x2f, 0x39, 0xc8, 0x94, 0x77, 0xf9, 0x26,
+ 0xfb, 0xc4, 0xb9, 0x60, 0xa1, 0xb2, 0x29, 0x9a, 0xed, 0x0d, 0x65, 0x09,
+ 0xe1, 0xd9, 0xc3, 0xd1, 0xd1, 0xc9, 0x49, 0x2b, 0x73, 0x8c, 0x26, 0x0f,
+ 0xc9, 0xfc, 0xcc, 0x4a, 0x50, 0x13, 0x8d, 0x1e, 0x85, 0x5d, 0x62, 0x71,
+ 0x34, 0x2e, 0xcd, 0x64, 0x8e, 0x1f, 0x7c, 0xa7, 0x46, 0x12, 0xe4, 0x5a,
+ 0x38, 0x2b, 0x65, 0x94, 0xc6, 0xb2, 0x30, 0xdd, 0x84, 0x99, 0x7c, 0xb3,
+ 0x9c, 0xa7, 0xc5, 0xef, 0x4f, 0x86, 0x11, 0x07, 0x64, 0xcb, 0x6c, 0xf1,
+ 0xb9, 0xf2, 0x63, 0x35, 0xe1, 0x5e, 0x8b, 0x50, 0x60, 0x9f, 0x57, 0x52,
+ 0x24, 0x89, 0x79, 0x5f, 0x84, 0xc3, 0x9a, 0xea, 0xf8, 0x12, 0x2f, 0x17,
+ 0xb7, 0x6c, 0xc6, 0xaa, 0xe1, 0x1f, 0x26, 0x87, 0x15, 0x41, 0x12, 0x29,
+ 0x97, 0x2c, 0x8e, 0xf0, 0xb5, 0x19, 0x2f, 0x7b, 0xdd, 0xab, 0x12, 0x1f,
+ 0x59, 0x7b, 0x02, 0x48, 0x94, 0xe2, 0x0c, 0x48, 0x8f, 0x5a, 0xa7, 0xc0,
+ 0x1e, 0x02, 0x9a, 0x01, 0x7b, 0x04, 0xfe, 0x45, 0x27, 0x00, 0x68, 0x77,
+ 0x57, 0xee, 0xe5, 0xfe, 0x43, 0x00, 0x57, 0x42, 0xef, 0x4f, 0xbd, 0x38,
+ 0x49, 0xfa, 0x03, 0x4e, 0x52, 0x8b, 0x46, 0xe1, 0x5f, 0xbb, 0xd3, 0x22,
+ 0xbc, 0x0e, 0x9e, 0x10, 0xf3, 0xd7, 0x74, 0x59, 0xe4, 0x9f, 0x00, 0xca,
+ 0x36, 0xaa, 0xc4, 0x73, 0x62, 0x08, 0x5f, 0x41, 0x7d, 0x7d, 0xc4, 0x8a,
+ 0x4d, 0xa2, 0x18, 0x73, 0x8c, 0xe2, 0x9d, 0x79, 0x39, 0x99, 0x96, 0x73,
+ 0x8a, 0xd0, 0x73, 0x1b, 0x7d, 0x9f, 0x7f, 0x14, 0x62, 0x3d, 0x12, 0xe1,
+ 0x2f, 0xb2, 0x86, 0x0c, 0xbf, 0xb5, 0xbe, 0xe9, 0xb6, 0xbf, 0xff, 0x12,
+ 0xf5, 0x86, 0x16, 0x04, 0xfc, 0x5d, 0x53, 0xcf, 0x92, 0x5d, 0xf6, 0x1e,
+ 0xcc, 0x96, 0x51, 0xfb, 0xd6, 0x90, 0xf5, 0x78, 0xda, 0x65, 0xf7, 0xc8,
+ 0xad, 0x0f, 0x02, 0xf4, 0x18, 0x18, 0xc1, 0x32, 0xf5, 0xbb, 0x32, 0x17,
+ 0x79, 0xd7, 0xb3, 0x88, 0x52, 0x0a, 0x2e, 0x00, 0x23, 0x95, 0xa8, 0xd6,
+ 0xb2, 0xc4, 0x33, 0xb3, 0xbf, 0x2b, 0x00, 0xd8, 0xaa, 0x07, 0x02, 0x56,
+ 0xa5, 0x7c, 0x46, 0x9b, 0x7f, 0x47, 0xe3, 0x93, 0xb3, 0x10, 0x3f, 0xeb,
+ 0xca, 0x4c, 0xb0, 0xa8, 0xa3, 0x64, 0x0d, 0xc4, 0x28, 0xe8, 0xdf, 0x20,
+ 0x44, 0x91, 0xda, 0x82, 0x9d, 0x41, 0xf0, 0xf6, 0x0f, 0xd4, 0x17, 0x2f,
+ 0x82, 0x74, 0x43, 0xb5, 0x47, 0xb5, 0x5f, 0x15, 0x6f, 0xc4, 0x76, 0x75,
+ 0x59, 0x0d, 0x4a, 0x79, 0xd4, 0xf9, 0x91, 0xfa, 0xe3, 0xa2, 0x9f, 0x89,
+ 0x1a, 0xc5, 0x4c, 0x79, 0x94, 0x2b, 0x43, 0x44, 0xdd, 0x84, 0xb4, 0xb1,
+ 0xb5, 0x0e, 0x79, 0x61, 0xb9, 0x48, 0xaa, 0xe4, 0xe5, 0x75, 0x4f, 0x9c,
+ 0x99, 0x90, 0x16, 0xf6, 0x79, 0xc9, 0x05, 0xd2, 0x34, 0xdd, 0x62, 0xcb,
+ 0x28, 0xeb, 0x5a, 0x4f, 0x9e, 0x5a, 0x24, 0x92, 0x6d, 0x57, 0x4c, 0x3e,
+ 0xa0, 0x8b, 0x5e, 0x75, 0x9a, 0x34, 0x01, 0xc8, 0x4d, 0x14, 0x49, 0x8e,
+ 0xad, 0x54, 0xd9, 0xd8, 0xc8, 0xd7, 0xbd, 0xad, 0x6a, 0xa7, 0x39, 0xe1,
+ 0x79, 0xe1, 0x6f, 0xf7, 0xc0, 0x3b, 0xcd, 0xb2, 0x49, 0xa4, 0x92, 0xd9,
+ 0xde, 0xc2, 0xdb, 0x9a, 0x59, 0x1f, 0x8f, 0xf7, 0x9d, 0xa1, 0xff, 0x1d,
+ 0x06, 0xbc, 0x6f, 0x07, 0x9c, 0xdf, 0x77, 0xdd, 0x5a, 0xa0, 0xf6, 0xdb,
+ 0xd4, 0x4f, 0xcd, 0xeb, 0x94, 0x9e, 0x01, 0x5b, 0x40, 0xd8, 0x48, 0x84,
+ 0x0e, 0xc3, 0x93, 0xc8, 0x65, 0xc1, 0xe9, 0x25, 0x80, 0xb4, 0x41, 0x88,
+ 0x07, 0x91, 0x6b, 0x6b, 0x0e, 0x89, 0x48, 0x13, 0xde, 0x3b, 0xdb, 0x2c,
+ 0x85, 0x64, 0xc2, 0xe6, 0x78, 0x11, 0x23, 0x93, 0xfa, 0xd7, 0x4e, 0xe2,
+ 0x0f, 0xc9, 0xb4, 0xf0, 0x40, 0xdb, 0xb2, 0x3c, 0xc4, 0xf3, 0xef, 0xb3,
+ 0xd7, 0x46, 0x99, 0xcf, 0x85, 0xce, 0x36, 0x39, 0xa6, 0x37, 0xc2, 0xc6,
+ 0xfe, 0x82, 0x56, 0x88, 0x04, 0xd8, 0x2b, 0xbb, 0x85, 0x22, 0xb6, 0xc1,
+ 0xce, 0x92, 0xbd, 0x27, 0x04, 0xca, 0xc8, 0xd2, 0x1d, 0x4a, 0x49, 0x09,
+ 0x52, 0xdb, 0x55, 0xd1, 0x4c, 0x7a, 0xd7, 0xb3, 0x72, 0x3c, 0x36, 0xc3,
+ 0xee, 0x79, 0x6a, 0xa9, 0xf9, 0x72, 0xe0, 0x47, 0xf3, 0xfb, 0x61, 0x7d,
+ 0xf2, 0x7d, 0xc6, 0x96, 0x30, 0x53, 0x00, 0xae, 0x64, 0x4d, 0x87, 0x92,
+ 0xef, 0x2b, 0xef, 0x6a, 0xe4, 0xa6, 0x11, 0x94, 0xab, 0x6c, 0x0d, 0x1a,
+ 0x98, 0x87, 0x5a, 0x96, 0xec, 0x40, 0xfa, 0xa9, 0x76, 0x90, 0xf1, 0x42,
+ 0xc9, 0x2a, 0xc8, 0x9b, 0x63, 0x79, 0x87, 0xe0, 0x92, 0xb2, 0x3f, 0x79,
+ 0x1d, 0xfa, 0x55, 0x31, 0x0b, 0xed, 0x01, 0xf5, 0xfe, 0x93, 0xfe, 0xd8,
+ 0xeb, 0xd3, 0x7f, 0xf7, 0xff, 0xab, 0x07, 0xd7, 0xeb, 0xc1, 0xce, 0xce,
+ 0xed, 0xed, 0xed, 0x50, 0xe8, 0xcc, 0x87, 0x66, 0xc9, 0x36, 0xc2, 0xfc,
+ 0x1d, 0xe2, 0x53, 0x5a, 0xf1, 0x81, 0xcb, 0xa4, 0x97, 0xcf, 0xaf, 0x7f,
+ 0xdc, 0x1b, 0xec, 0xed, 0xee, 0xee, 0xfe, 0x3c, 0x5c, 0xd0, 0x14, 0x5f,
+ 0xa1, 0x59, 0xf3, 0x5f, 0xbf, 0xd9, 0x1d, 0xee, 0xc9, 0xce, 0x46, 0xbc,
+ 0x38, 0x08, 0x7e, 0x69, 0xb9, 0x18, 0x0a, 0x26, 0xc7, 0xe6, 0xad, 0x7c,
+ 0xe0, 0x89, 0x19, 0x8e, 0x05, 0xa5, 0xab, 0xb3, 0x61, 0xb9, 0x52, 0x0d,
+ 0x39, 0x4f, 0x9f, 0x3c, 0xda, 0xdf, 0x4f, 0x58, 0xe5, 0xe0, 0x24, 0x13,
+ 0x0e, 0x48, 0x52, 0x7e, 0xb1, 0x54, 0xf4, 0xe4, 0xdb, 0x6c, 0x42, 0x44,
+ 0x4b, 0x15, 0x17, 0x0b, 0x0c, 0x6a, 0xc7, 0x59, 0xa8, 0x0f, 0xf6, 0xad,
+ 0xb9, 0x2a, 0x09, 0x7f, 0x5b, 0x4e, 0xef, 0x5c, 0xc3, 0x66, 0x97, 0x57,
+ 0x24, 0x5d, 0xa9, 0x26, 0x97, 0x57, 0x7f, 0x3e, 0xad, 0x63, 0x7a, 0x9b,
+ 0x4d, 0x18, 0xc1, 0x35, 0x07, 0x5a, 0xbf, 0x82, 0xe6, 0x17, 0xa5, 0x5f,
+ 0xc0, 0xc8, 0xb5, 0xac, 0xa4, 0x9e, 0x00, 0x82, 0x95, 0xb7, 0xe9, 0x5d,
+ 0xeb, 0xba, 0x37, 0x33, 0xfe, 0xdc, 0xfc, 0x67, 0x55, 0x29, 0xe8, 0x14,
+ 0x5b, 0x09, 0x23, 0x6c, 0x26, 0x37, 0x01, 0x4f, 0x2d, 0x04, 0x38, 0x29,
+ 0xef, 0x37, 0x66, 0x34, 0x96, 0x06, 0x76, 0x45, 0xb5, 0x25, 0x2f, 0xbb,
+ 0xce, 0x34, 0x4a, 0xa4, 0xda, 0x28, 0x5e, 0xcc, 0x05, 0x58, 0x59, 0x2a,
+ 0xae, 0xaa, 0x9a, 0x67, 0x8b, 0x14, 0x01, 0xf7, 0x95, 0xd7, 0x9a, 0xfd,
+ 0x37, 0xb9, 0xc9, 0xe6, 0x22, 0x31, 0xb7, 0x14, 0xf6, 0xd4, 0x93, 0x4d,
+ 0xd8, 0x0b, 0x2f, 0xb5, 0xde, 0x95, 0xfc, 0xc6, 0x0c, 0x66, 0x5b, 0xb2,
+ 0xe7, 0xec, 0x3d, 0x27, 0x05, 0x07, 0xae, 0x97, 0x64, 0x37, 0x8e, 0x53,
+ 0xb9, 0x50, 0x94, 0xcf, 0x7a, 0x15, 0x3a, 0x91, 0x84, 0x62, 0x56, 0xe1,
+ 0x1e, 0x23, 0x0f, 0xcc, 0x40, 0xb4, 0x1f, 0xb9, 0x56, 0x11, 0x24, 0x36,
+ 0x27, 0xf6, 0xe5, 0xc9, 0xd1, 0x25, 0x52, 0xd9, 0xfa, 0xc0, 0xbc, 0xf7,
+ 0x91, 0xbf, 0x16, 0x96, 0x84, 0x38, 0x87, 0x87, 0x04, 0x1b, 0x55, 0x4a,
+ 0xe6, 0xa5, 0x0e, 0x26, 0xd3, 0x29, 0x32, 0xd0, 0x4f, 0x3c, 0x62, 0xf1,
+ 0x18, 0xfe, 0xaf, 0xa5, 0x27, 0x5a, 0x70, 0xd1, 0xe3, 0x27, 0xc3, 0x5d,
+ 0x1e, 0x23, 0x4d, 0xa1, 0x04, 0xc1, 0x25, 0xe3, 0x02, 0x8e, 0xa4, 0x5a,
+ 0x08, 0x2c, 0xd3, 0x15, 0xe4, 0xbb, 0xda, 0x9d, 0x7e, 0xc2, 0x7c, 0xad,
+ 0x9c, 0x10, 0xad, 0xbf, 0xf5, 0x10, 0x4f, 0x6b, 0x75, 0x53, 0xbf, 0x00,
+ 0x38, 0x6d, 0xcb, 0x0e, 0xcd, 0x26, 0x85, 0x05, 0x4a, 0x9b, 0x2b, 0x25,
+ 0x6c, 0x09, 0xd1, 0x5a, 0xba, 0x28, 0x03, 0x23, 0x3e, 0xac, 0x26, 0x2b,
+ 0xfa, 0xae, 0xc2, 0x43, 0x49, 0xb7, 0x80, 0x5c, 0x59, 0x92, 0x40, 0xd0,
+ 0x2a, 0x8b, 0x16, 0xd3, 0x50, 0x82, 0xe2, 0x19, 0x83, 0xaf, 0xa5, 0xb2,
+ 0x25, 0x6b, 0xca, 0xb1, 0x04, 0x0e, 0x5a, 0xca, 0x6d, 0x45, 0xaa, 0xb1,
+ 0xe5, 0xaa, 0x2a, 0xe7, 0x90, 0x1c, 0x86, 0x09, 0xaf, 0xbb, 0xf4, 0x97,
+ 0xab, 0x93, 0xd2, 0x55, 0x12, 0xd6, 0x6d, 0xc9, 0x0a, 0xf0, 0x14, 0x08,
+ 0xd5, 0x0b, 0x8b, 0x74, 0x3d, 0x81, 0xb4, 0x13, 0x60, 0xee, 0xc1, 0x43,
+ 0xd5, 0xfb, 0x82, 0x1c, 0xe2, 0x2f, 0x0e, 0x7b, 0xad, 0x13, 0x19, 0xab,
+ 0x11, 0x51, 0xb3, 0x74, 0x6b, 0xdb, 0x32, 0x22, 0xd3, 0x48, 0xee, 0x67,
+ 0x9f, 0x1a, 0xbe, 0xf9, 0xaf, 0x50, 0xed, 0xb1, 0x78, 0xb4, 0x9f, 0xd4,
+ 0x77, 0x46, 0x8d, 0x98, 0xfb, 0x93, 0xd0, 0x2d, 0xef, 0x19, 0x0d, 0x03,
+ 0xb4, 0x6a, 0xe2, 0xb0, 0xdc, 0x7a, 0x47, 0xaf, 0x1c, 0xe2, 0x15, 0xa9,
+ 0xa1, 0xa1, 0x98, 0x9b, 0x07, 0xd4, 0x8c, 0x2d, 0xb5, 0x80, 0x55, 0x32,
+ 0x9e, 0xa5, 0xc5, 0x07, 0x5b, 0xe4, 0x92, 0x5b, 0xea, 0x53, 0x25, 0x36,
+ 0xce, 0x07, 0x73, 0x3f, 0x14, 0x10, 0x0e, 0x6e, 0xc6, 0x4e, 0x73, 0x7f,
+ 0x5f, 0x92, 0x66, 0x3a, 0x4f, 0x2b, 0x4a, 0x14, 0xc2, 0x9c, 0x09, 0x80,
+ 0x71, 0x65, 0x59, 0x5a, 0x14, 0x30, 0xb5, 0x15, 0x4c, 0xc3, 0x2b, 0x8c,
+ 0x0b, 0xce, 0x33, 0x7b, 0x87, 0xa2, 0x40, 0x57, 0xd4, 0x5e, 0xf9, 0xed,
+ 0xe2, 0x8a, 0x4b, 0x5d, 0x09, 0x23, 0xb5, 0xcd, 0x7f, 0x0f, 0x34, 0xf8,
+ 0xb1, 0x4a, 0x7e, 0xdb, 0xdb, 0xc3, 0x56, 0x17, 0xb5, 0xe1, 0x12, 0xbf,
+ 0x5c, 0x1c, 0x2b, 0x78, 0x2e, 0x4c, 0x13, 0x4b, 0xb3, 0x1a, 0x26, 0x67,
+ 0xce, 0xa0, 0x2c, 0xfa, 0xa0, 0xb6, 0x6c, 0xaa, 0x89, 0x98, 0x93, 0xf8,
+ 0xfb, 0x40, 0x6b, 0x3f, 0xc7, 0x66, 0x00, 0xe5, 0x53, 0x08, 0xda, 0x74,
+ 0x67, 0xaf, 0x81, 0x56, 0xef, 0xfa, 0xae, 0x1e, 0xde, 0x0c, 0x7c, 0x5b,
+ 0x25, 0x15, 0xf0, 0x92, 0xc2, 0x0e, 0x01, 0xba, 0x92, 0x07, 0x11, 0x2f,
+ 0x8e, 0x87, 0x26, 0x45, 0x02, 0x73, 0x35, 0x06, 0x79, 0xbc, 0x96, 0x48,
+ 0xe6, 0xcc, 0xdc, 0x8b, 0x1c, 0x73, 0x76, 0x75, 0xe1, 0x8d, 0x48, 0x2b,
+ 0x8b, 0x7e, 0xc0, 0xd2, 0x42, 0x71, 0x43, 0xf6, 0x39, 0x11, 0xae, 0x67,
+ 0x2e, 0xd5, 0x32, 0x33, 0xeb, 0x6b, 0xe6, 0xf7, 0x74, 0x6f, 0xfa, 0x5f,
+ 0xbe, 0xa7, 0xac, 0x1f, 0xd7, 0x1d, 0xd0, 0xc5, 0x30, 0xbb, 0xb0, 0xcf,
+ 0xd9, 0x38, 0xc3, 0x15, 0xea, 0x0c, 0x4b, 0x83, 0x6f, 0x8d, 0x0d, 0x9f,
+ 0x55, 0xa5, 0x11, 0x24, 0xdf, 0x3d, 0x51, 0xc4, 0x8d, 0x94, 0x09, 0x95,
+ 0x3b, 0x4b, 0xd6, 0xf2, 0xce, 0x16, 0x2e, 0x8f, 0xba, 0x52, 0x58, 0x46,
+ 0xea, 0x9b, 0x72, 0x69, 0xb1, 0x29, 0x57, 0x74, 0x97, 0x85, 0xae, 0x33,
+ 0xd3, 0x47, 0x1a, 0x59, 0x08, 0xe0, 0x69, 0xd5, 0xb4, 0x05, 0x84, 0x7c,
+ 0x39, 0x21, 0xfd, 0x87, 0x9c, 0x3e, 0x54, 0xd3, 0x74, 0xdc, 0xa4, 0x5c,
+ 0x52, 0xd1, 0xf6, 0xfc, 0x32, 0x27, 0xc7, 0xc0, 0x50, 0xb6, 0x44, 0x14,
+ 0xc0, 0x2d, 0x97, 0x9f, 0x63, 0x83, 0xed, 0x04, 0x10, 0x49, 0xdb, 0xa8,
+ 0x6f, 0xe8, 0xbe, 0xa6, 0x7b, 0x04, 0xc6, 0xe0, 0x46, 0x9c, 0xdd, 0x94,
+ 0x26, 0xed, 0xed, 0xe5, 0xe9, 0x9b, 0x7e, 0xe7, 0x24, 0xc8, 0xc5, 0xe7,
+ 0x15, 0x04, 0x96, 0xad, 0xa9, 0x24, 0x08, 0x61, 0xfe, 0xa7, 0x2c, 0x6c,
+ 0x3f, 0xb1, 0xa9, 0x24, 0x9c, 0x7f, 0x4c, 0x53, 0xd7, 0x97, 0x70, 0x75,
+ 0x25, 0x49, 0x0a, 0x6a, 0x1f, 0xf2, 0xbc, 0x86, 0x1e, 0x4f, 0x82, 0xac,
+ 0xd5, 0xf0, 0x1d, 0xc0, 0xa4, 0x36, 0x72, 0xc7, 0x6c, 0x47, 0xaf, 0x08,
+ 0x50, 0xb8, 0xaf, 0xcb, 0xd6, 0xa1, 0xf1, 0x17, 0x8c, 0xb6, 0x21, 0x73,
+ 0x40, 0x27, 0x2f, 0xcb, 0xdb, 0x62, 0x70, 0x4a, 0x99, 0x66, 0xc9, 0x69,
+ 0x79, 0x4d, 0x56, 0xd3, 0xdb, 0xb8, 0x75, 0xff, 0xee, 0xfc, 0x6d, 0xb2,
+ 0x45, 0xd2, 0x39, 0x39, 0xb7, 0xfc, 0x42, 0xf4, 0xe8, 0xb6, 0x68, 0xa1,
+ 0x35, 0xdf, 0x5c, 0xd2, 0x9b, 0x7e, 0x72, 0xfc, 0xc3, 0xe1, 0x9b, 0xf3,
+ 0xd3, 0xe3, 0x9f, 0x56, 0xa0, 0x05, 0xe8, 0xc7, 0x5f, 0x79, 0x9a, 0x39,
+ 0x3c, 0xf9, 0x84, 0x28, 0x31, 0x3d, 0xb9, 0x5b, 0x25, 0x0b, 0xf8, 0xf8,
+ 0xe8, 0x16, 0x1c, 0x8d, 0xce, 0x4f, 0x06, 0x4a, 0x0d, 0xc4, 0x95, 0xa3,
+ 0xf2, 0x82, 0x94, 0x68, 0x3e, 0xc0, 0xca, 0xde, 0xfd, 0x6d, 0x18, 0xb4,
+ 0xb0, 0xe7, 0xa1, 0x9f, 0xbc, 0x55, 0xa4, 0x4a, 0x1f, 0x8b, 0x4e, 0x52,
+ 0xfa, 0x65, 0x7e, 0x8d, 0xc8, 0x43, 0x87, 0xe8, 0x87, 0x76, 0x87, 0x98,
+ 0x5c, 0x01, 0xef, 0x96, 0x91, 0x3e, 0x1a, 0x4e, 0xaa, 0xb3, 0x19, 0x3b,
+ 0xb9, 0x56, 0x4a, 0x51, 0x00, 0xf2, 0x78, 0x15, 0x81, 0x08, 0x0e, 0x42,
+ 0x2a, 0x82, 0x10, 0x1e, 0x5b, 0xa9, 0x27, 0xaa, 0x2b, 0xef, 0x10, 0x96,
+ 0x1e, 0x72, 0xe7, 0x58, 0xe1, 0x70, 0x60, 0xec, 0xf7, 0x65, 0x72, 0xd0,
+ 0xfb, 0x1d, 0x2f, 0x12, 0xdf, 0x23, 0x18, 0x29, 0x02, 0x61, 0xc9, 0xa1,
+ 0xac, 0xff, 0x98, 0xd3, 0xf2, 0xd9, 0xb5, 0xa9, 0x8e, 0x19, 0xf8, 0x44,
+ 0xcd, 0x49, 0x17, 0xb5, 0x6f, 0xbc, 0xbc, 0xbe, 0x8e, 0xa4, 0xee, 0x53,
+ 0xa5, 0xa8, 0x2c, 0xc3, 0xf5, 0x6c, 0xb4, 0x98, 0xcd, 0x3a, 0x61, 0x3f,
+ 0xaf, 0xe9, 0x7f, 0x0f, 0xf1, 0x2b, 0xa5, 0x4d, 0x29, 0xa7, 0x3d, 0x2e,
+ 0x75, 0xcc, 0xae, 0xea, 0x9a, 0x90, 0x86, 0x61, 0x73, 0x1c, 0xa1, 0xdb,
+ 0xfc, 0x72, 0x53, 0xf9, 0xcf, 0x8d, 0xc2, 0xcf, 0xb7, 0x2f, 0x34, 0x9d,
+ 0x1e, 0xab, 0x3a, 0x63, 0x2e, 0x3f, 0xd6, 0x4f, 0x36, 0x9f, 0x6f, 0xca,
+ 0x73, 0xbd, 0xe8, 0x45, 0xce, 0xef, 0x70, 0x24, 0x88, 0x15, 0xe0, 0x89,
+ 0xf5, 0x95, 0x91, 0x92, 0x90, 0x4f, 0xa7, 0x59, 0x21, 0xae, 0x13, 0x2a,
+ 0xde, 0x23, 0x6c, 0x5e, 0x7d, 0xb9, 0x59, 0xba, 0x17, 0x13, 0xba, 0xae,
+ 0x3d, 0xe7, 0xbe, 0x6e, 0xfe, 0x59, 0x7b, 0xe0, 0x55, 0xba, 0x23, 0xd7,
+ 0xb5, 0xab, 0x3a, 0x23, 0x5f, 0x5d, 0x75, 0x52, 0x10, 0x1f, 0x81, 0x09,
+ 0x05, 0x7d, 0x49, 0x2d, 0x48, 0x91, 0xd4, 0xac, 0xe2, 0xf6, 0x3b, 0x59,
+ 0x18, 0x88, 0x7f, 0x84, 0x6e, 0xae, 0xc6, 0xb2, 0xd7, 0x51, 0xcb, 0x9b,
+ 0x15, 0x95, 0x25, 0xe0, 0x62, 0xb4, 0x54, 0xa1, 0x67, 0xc5, 0xf7, 0xd5,
+ 0x03, 0xe8, 0x36, 0x1e, 0xe7, 0x8d, 0x2a, 0x14, 0x96, 0xac, 0x33, 0x3c,
+ 0x98, 0x15, 0xf0, 0x05, 0xab, 0x05, 0xd0, 0x0f, 0x99, 0x0b, 0xb8, 0x64,
+ 0x8a, 0x52, 0xa5, 0xdb, 0x28, 0x45, 0x3b, 0xa6, 0xa6, 0x50, 0xd6, 0x28,
+ 0x67, 0xb2, 0x97, 0x58, 0xd5, 0xae, 0xa7, 0x23, 0x3e, 0x4f, 0x90, 0x49,
+ 0x47, 0x33, 0x58, 0x44, 0xed, 0xa6, 0x79, 0x72, 0x13, 0x15, 0x24, 0x01,
+ 0x39, 0xaf, 0xb9, 0x1f, 0xa0, 0x09, 0xe1, 0x51, 0x51, 0xf7, 0xf9, 0x77,
+ 0x72, 0xaa, 0x22, 0x80, 0xda, 0x97, 0x12, 0x60, 0xf1, 0xa3, 0x16, 0x92,
+ 0x14, 0xc2, 0xee, 0x25, 0xd1, 0x64, 0x35, 0x8c, 0xab, 0xc1, 0xe5, 0x1c,
+ 0x5e, 0xe0, 0x7a, 0x18, 0x2d, 0x87, 0x5c, 0xc1, 0x7d, 0x5a, 0x64, 0x7a,
+ 0xab, 0xb3, 0x1b, 0x16, 0x01, 0x17, 0x7d, 0xbf, 0x14, 0x2e, 0xb5, 0xbe,
+ 0x17, 0x21, 0x8e, 0x84, 0xe0, 0x70, 0x7f, 0x3c, 0xb2, 0x35, 0xbc, 0xcd,
+ 0xa3, 0x55, 0x5a, 0x71, 0x19, 0xc5, 0xe2, 0x83, 0x62, 0x8c, 0xa8, 0xf1,
+ 0xec, 0x53, 0x36, 0x59, 0x36, 0xed, 0x64, 0x07, 0x5f, 0xf9, 0x52, 0x46,
+ 0x7f, 0x74, 0x6b, 0x0b, 0x47, 0x41, 0x8d, 0x96, 0x73, 0xe5, 0x60, 0x38,
+ 0xe8, 0x6d, 0x4b, 0xb8, 0x8f, 0xc2, 0x40, 0x96, 0x9a, 0x21, 0x16, 0xc7,
+ 0xd3, 0x3e, 0x57, 0x19, 0xfb, 0xdd, 0x5c, 0x48, 0x3b, 0xfa, 0x79, 0xae,
+ 0x43, 0x1e, 0xf9, 0xf6, 0x2b, 0xf6, 0xd0, 0x78, 0x9f, 0xb6, 0xb5, 0xab,
+ 0xc4, 0x79, 0x53, 0x07, 0x47, 0x39, 0xf8, 0x32, 0xca, 0x48, 0x0e, 0x93,
+ 0x43, 0x5b, 0x02, 0x56, 0x5f, 0xd5, 0xf9, 0x0f, 0x9c, 0x66, 0x27, 0xe7,
+ 0x1f, 0x9f, 0x7a, 0x3e, 0x4f, 0xba, 0xf3, 0xf0, 0x23, 0x2b, 0xf1, 0x83,
+ 0x51, 0x7c, 0xa8, 0xc6, 0x8f, 0xcd, 0x1f, 0xdf, 0xd2, 0x1f, 0x24, 0x56,
+ 0xc9, 0xc4, 0x64, 0x02, 0x25, 0xf6, 0xd6, 0x85, 0x5b, 0x9b, 0xd2, 0x5f,
+ 0xe5, 0x0f, 0x59, 0x74, 0x80, 0xd9, 0x29, 0x27, 0x85, 0xe8, 0x96, 0x1c,
+ 0xf3, 0x05, 0x94, 0x5f, 0x6d, 0xa7, 0xaf, 0x79, 0x62, 0x71, 0xa0, 0x2f,
+ 0xd8, 0x81, 0x98, 0x7d, 0xa7, 0x0f, 0xcf, 0xc4, 0x88, 0x05, 0x79, 0x19,
+ 0xcb, 0x14, 0x32, 0x53, 0xf5, 0x0f, 0x72, 0x68, 0xdb, 0x9c, 0x45, 0x2a,
+ 0x62, 0x3c, 0xb7, 0xc8, 0x70, 0xc2, 0x88, 0xba, 0xb8, 0x3f, 0xfb, 0x30,
+ 0xe9, 0x98, 0xb1, 0x38, 0x0b, 0x21, 0x5b, 0x96, 0x14, 0x69, 0xd5, 0x90,
+ 0x71, 0xb9, 0xcb, 0x1f, 0x21, 0xc1, 0xe0, 0xea, 0xf7, 0x5e, 0x22, 0x4f,
+ 0x4e, 0x0e, 0x3c, 0x1f, 0x85, 0x25, 0x57, 0x79, 0xd6, 0xc5, 0x76, 0xb9,
+ 0xc2, 0xfc, 0xb0, 0xd8, 0x8a, 0xac, 0x98, 0xac, 0xe8, 0x27, 0x95, 0x0b,
+ 0x65, 0x8a, 0x75, 0x48, 0x85, 0x0f, 0x1a, 0xd1, 0x9c, 0x67, 0x73, 0x0a,
+ 0x90, 0xd8, 0x7b, 0x91, 0x09, 0x5b, 0xd8, 0x25, 0x40, 0x1f, 0x1b, 0xc4,
+ 0x9b, 0x9b, 0x92, 0xfe, 0x46, 0x57, 0x2c, 0xc3, 0x7c, 0xfe, 0x10, 0x44,
+ 0xc5, 0xea, 0xbb, 0x62, 0x72, 0xf3, 0xf2, 0xed, 0x28, 0xfe, 0x7a, 0x38,
+ 0x38, 0x3c, 0x6f, 0xf4, 0x10, 0xda, 0x0c, 0x52, 0x4a, 0x1b, 0x7c, 0x65,
+ 0x46, 0xc9, 0x3b, 0xf4, 0x7e, 0x17, 0x6f, 0xae, 0xf5, 0x82, 0xf5, 0x17,
+ 0x91, 0x62, 0xc1, 0x42, 0x5c, 0x34, 0x4f, 0xc0, 0x88, 0x07, 0x29, 0x1d,
+ 0x05, 0x14, 0xb8, 0x0a, 0x14, 0x68, 0x7b, 0xa6, 0x29, 0xaa, 0x80, 0x4a,
+ 0xb6, 0x68, 0xb2, 0xf2, 0x80, 0x4a, 0xdd, 0x7d, 0x8d, 0xf2, 0x0a, 0xfa,
+ 0xc7, 0x2f, 0x59, 0xe6, 0x53, 0x2a, 0x85, 0x1c, 0x09, 0x42, 0xf9, 0x33,
+ 0xd4, 0x82, 0x8d, 0x78, 0x31, 0x42, 0xb3, 0x57, 0x67, 0xf4, 0x3a, 0x6f,
+ 0xd3, 0xbe, 0xec, 0x56, 0xfc, 0xa8, 0x5a, 0x35, 0x24, 0x33, 0x29, 0xfb,
+ 0xdf, 0x7c, 0x1d, 0xde, 0x9e, 0x2f, 0xdf, 0xae, 0xf8, 0x1c, 0xfd, 0x66,
+ 0xa0, 0x79, 0x23, 0xa2, 0x11, 0x78, 0x2a, 0x7d, 0x38, 0x17, 0x71, 0x2a,
+ 0xdf, 0xf6, 0x2f, 0xef, 0x93, 0x12, 0xe6, 0x09, 0xf9, 0x63, 0xed, 0x83,
+ 0x82, 0x7a, 0x8d, 0x7f, 0x8a, 0xe0, 0xb0, 0x5b, 0x0c, 0x04, 0x4b, 0x2e,
+ 0x38, 0xd8, 0x77, 0x2e, 0x9a, 0xf0, 0x76, 0x64, 0x89, 0x56, 0xa2, 0x95,
+ 0x9d, 0x19, 0x94, 0xc4, 0xe8, 0x47, 0x48, 0x2e, 0xec, 0xf3, 0x1f, 0x3b,
+ 0xfb, 0x16, 0xc2, 0x64, 0x93, 0x7f, 0x70, 0x48, 0xcd, 0x05, 0x1e, 0x2a,
+ 0x08, 0x45, 0xfe, 0x69, 0x84, 0xb8, 0xf3, 0x8a, 0xdd, 0x8c, 0x00, 0x35,
+ 0x47, 0xa6, 0xed, 0x1c, 0x50, 0x47, 0x55, 0x13, 0x8b, 0xf6, 0x64, 0xc4,
+ 0x4e, 0x9e, 0xfb, 0x36, 0x53, 0x1e, 0x41, 0x5d, 0xad, 0xe3, 0x58, 0x7b,
+ 0x63, 0x94, 0x24, 0xba, 0x5c, 0xef, 0x3f, 0xc6, 0x76, 0xdf, 0xd8, 0x77,
+ 0x92, 0xad, 0xb1, 0xb9, 0xb1, 0x3d, 0xce, 0x04, 0x92, 0x37, 0x8f, 0x01,
+ 0xf1, 0x8e, 0x37, 0xf7, 0xe4, 0xf3, 0x27, 0x8f, 0xb7, 0xb7, 0xfb, 0x89,
+ 0xd6, 0x7a, 0x26, 0x10, 0xc5, 0x98, 0x32, 0x4d, 0x72, 0x92, 0x5b, 0x35,
+ 0x2b, 0xb3, 0x66, 0x82, 0x6f, 0xe0, 0x7b, 0xf5, 0x1c, 0x31, 0xf1, 0xe6,
+ 0xe8, 0x1e, 0xd3, 0x57, 0x69, 0x11, 0xc9, 0x04, 0x87, 0x44, 0xb7, 0x66,
+ 0x70, 0xaa, 0x32, 0xb1, 0x76, 0x9e, 0xf9, 0x95, 0x52, 0x01, 0xb1, 0x24,
+ 0xe7, 0x87, 0xa2, 0x70, 0x06, 0x42, 0x8a, 0xae, 0xd8, 0x7a, 0x08, 0x18,
+ 0x3c, 0xe7, 0x6b, 0x8f, 0xfe, 0xa0, 0xfd, 0x7c, 0xa3, 0xb5, 0x0b, 0xcf,
+ 0x97, 0xe3, 0x99, 0xb9, 0x81, 0x46, 0x54, 0xfd, 0xf7, 0x53, 0x72, 0x9a,
+ 0x4b, 0x19, 0x50, 0xb1, 0x15, 0x14, 0x48, 0xb7, 0xea, 0xce, 0xe1, 0x81,
+ 0x23, 0xdf, 0x1a, 0x5b, 0xad, 0x85, 0x2c, 0x77, 0xd9, 0x7a, 0xac, 0xb7,
+ 0xf5, 0x16, 0xfc, 0xad, 0x7a, 0x79, 0x35, 0x58, 0x35, 0xb0, 0x4f, 0x59,
+ 0xed, 0x99, 0x71, 0x83, 0x5b, 0x52, 0x10, 0xc1, 0x8b, 0x40, 0xae, 0xe9,
+ 0xe4, 0x39, 0xab, 0x82, 0xab, 0xcb, 0xf0, 0x69, 0x7e, 0xaa, 0xaf, 0x34,
+ 0x42, 0xff, 0x86, 0x1b, 0x37, 0xbd, 0x22, 0xa0, 0x29, 0xa3, 0xea, 0x66,
+ 0x19, 0x2a, 0x60, 0x93, 0x20, 0x0b, 0x10, 0xd5, 0xb6, 0x92, 0xb8, 0x98,
+ 0xf7, 0x89, 0x78, 0x29, 0xc4, 0x27, 0x0b, 0xbc, 0x54, 0x0a, 0xae, 0x0b,
+ 0x78, 0x6b, 0x98, 0x62, 0x81, 0x5d, 0xc3, 0x66, 0x00, 0xd3, 0x98, 0x05,
+ 0xd6, 0x76, 0xda, 0x6b, 0xfe, 0x6b, 0xcd, 0x6e, 0x2d, 0xf9, 0x4a, 0xe8,
+ 0x64, 0x89, 0x95, 0x47, 0x9c, 0x99, 0xc9, 0x20, 0xe3, 0x35, 0xe9, 0x71,
+ 0x7f, 0x28, 0x73, 0x81, 0xee, 0x10, 0x8d, 0x88, 0x02, 0x51, 0xa3, 0x1a,
+ 0x3e, 0xeb, 0xc8, 0xd2, 0x3e, 0x6c, 0xef, 0x34, 0x12, 0x22, 0x15, 0x9d,
+ 0xef, 0x2b, 0x05, 0xe6, 0xf4, 0x34, 0x9e, 0xdb, 0x32, 0xee, 0x6d, 0x73,
+ 0x76, 0x56, 0x22, 0x49, 0xb0, 0x1c, 0xe4, 0x46, 0x0d, 0x52, 0x5a, 0x35,
+ 0xd3, 0xe8, 0xa0, 0x17, 0x57, 0x7c, 0xed, 0x1c, 0xa0, 0x56, 0x00, 0xac,
+ 0xd0, 0x96, 0x85, 0xa6, 0x5f, 0x51, 0x83, 0x9c, 0xf0, 0xba, 0x4d, 0xde,
+ 0x2c, 0x43, 0xe9, 0x28, 0x51, 0x3f, 0xa4, 0x0c, 0xc3, 0xd3, 0x4c, 0x2b,
+ 0xe1, 0xf2, 0x7a, 0x61, 0x8e, 0x11, 0x7e, 0x8f, 0x2a, 0x7d, 0xd5, 0x89,
+ 0x3d, 0xcd, 0x48, 0x86, 0x9c, 0x95, 0xb7, 0x01, 0xe4, 0x97, 0xdc, 0xa9,
+ 0xae, 0x77, 0xed, 0x64, 0x0e, 0xd3, 0xc0, 0x9f, 0xfe, 0x53, 0x7f, 0xf9,
+ 0x9e, 0x26, 0xeb, 0xbf, 0x74, 0xb2, 0xa4, 0xdb, 0x69, 0x90, 0xb9, 0x0a,
+ 0x3b, 0xf8, 0x4f, 0x98, 0x94, 0xbf, 0x11, 0x4a, 0x85, 0x67, 0x86, 0x38,
+ 0x23, 0xd0, 0xdc, 0x9f, 0x86, 0x56, 0xdf, 0xd5, 0x26, 0x28, 0x0f, 0x8f,
+ 0xad, 0xfa, 0xf1, 0x5d, 0xe0, 0x3b, 0xa2, 0x3d, 0xf8, 0x53, 0xd1, 0x07,
+ 0xff, 0xa5, 0x31, 0xbd, 0x28, 0x71, 0x9e, 0x6b, 0xb9, 0xf1, 0x32, 0xfe,
+ 0x54, 0x09, 0x05, 0x84, 0x31, 0x3a, 0x4c, 0xc7, 0xc9, 0x20, 0xe3, 0x9f,
+ 0x87, 0x16, 0x00, 0x21, 0x68, 0x0e, 0xb0, 0x1a, 0x7f, 0x1a, 0xd4, 0x77,
+ 0xf3, 0x71, 0x39, 0x93, 0x8d, 0x4e, 0xc3, 0x35, 0x7d, 0xd6, 0x9f, 0xf1,
+ 0xb2, 0x20, 0xda, 0x31, 0xf0, 0xd2, 0xb8, 0xfb, 0x51, 0x8e, 0x6e, 0x32,
+ 0x51, 0xca, 0xc9, 0x04, 0xe9, 0x38, 0x04, 0xfe, 0x36, 0xdb, 0xfd, 0x4f,
+ 0x9a, 0xe4, 0x44, 0xc1, 0x38, 0x2e, 0x46, 0x36, 0xd5, 0xe0, 0xa7, 0x38,
+ 0x6a, 0x57, 0x26, 0xc1, 0x44, 0x37, 0x8f, 0xb7, 0x3a, 0xd6, 0xb6, 0x88,
+ 0xa5, 0xc0, 0xd3, 0x09, 0x35, 0x1d, 0x7d, 0x8f, 0xac, 0x1b, 0xd9, 0x77,
+ 0x47, 0xfc, 0xb3, 0xc1, 0x25, 0x7e, 0xa6, 0x58, 0x04, 0x49, 0xb9, 0xa4,
+ 0xe8, 0xb6, 0xe4, 0x44, 0xf6, 0xc3, 0xe4, 0xae, 0x24, 0x06, 0x70, 0x42,
+ 0xe9, 0xd8, 0x22, 0xbc, 0xaf, 0xf4, 0x30, 0xbd, 0x67, 0xde, 0x09, 0x63,
+ 0xf3, 0xaf, 0x6f, 0x0d, 0xd5, 0x0e, 0x66, 0x4d, 0x3e, 0x4f, 0x05, 0x12,
+ 0xc4, 0x18, 0x20, 0xbb, 0x8d, 0x95, 0x1e, 0x06, 0x08, 0x51, 0xb3, 0xdf,
+ 0x86, 0xf7, 0x35, 0x47, 0x17, 0xa2, 0x62, 0xdf, 0x05, 0x3d, 0x41, 0xbe,
+ 0x27, 0x73, 0xe5, 0xe8, 0xfd, 0xdb, 0x10, 0x47, 0x0a, 0xc1, 0x36, 0xa8,
+ 0xe5, 0x7b, 0xc6, 0x5a, 0x6a, 0xa2, 0xb2, 0x78, 0x94, 0x38, 0xe4, 0x73,
+ 0xd6, 0x4f, 0x5c, 0x84, 0x50, 0xa1, 0x51, 0x09, 0x05, 0x13, 0xd7, 0x37,
+ 0x67, 0x23, 0x8d, 0xd6, 0xbd, 0x7f, 0x42, 0x9e, 0x2e, 0xc4, 0x85, 0x97,
+ 0xec, 0x23, 0xcb, 0x29, 0x1b, 0x60, 0x4e, 0x5e, 0xcd, 0x48, 0xac, 0x2e,
+ 0x89, 0x88, 0x58, 0x04, 0x98, 0xfe, 0xc3, 0x8b, 0x58, 0xb2, 0xe3, 0x67,
+ 0xe0, 0x45, 0x2a, 0x87, 0x5a, 0x2e, 0x7c, 0x7d, 0x73, 0xab, 0x6b, 0x97,
+ 0x5f, 0x35, 0x8b, 0xf7, 0xa8, 0xe4, 0xfb, 0x9e, 0xb0, 0x7e, 0x58, 0x33,
+ 0xf5, 0xb9, 0xe3, 0x07, 0x98, 0x59, 0x4e, 0xf2, 0x5c, 0x2e, 0xa8, 0x1d,
+ 0x6c, 0xf2, 0x59, 0xc9, 0x06, 0xcd, 0x7d, 0xc3, 0x68, 0xa3, 0xea, 0x7c,
+ 0x32, 0x81, 0xad, 0x76, 0x3d, 0x9c, 0xc7, 0x41, 0xc7, 0x28, 0x88, 0xff,
+ 0x1e, 0xd1, 0x3f, 0xbb, 0x99, 0xcc, 0x75, 0x93, 0x55, 0xf9, 0xc4, 0x2f,
+ 0x0e, 0x87, 0x07, 0xb0, 0xa5, 0x98, 0x25, 0x8d, 0xc2, 0x81, 0x51, 0x3a,
+ 0xc8, 0xce, 0xff, 0xc1, 0x3b, 0x2a, 0xb5, 0xf0, 0xc8, 0xed, 0x67, 0x41,
+ 0x63, 0x89, 0xc4, 0x6b, 0x09, 0x9d, 0xe0, 0xa2, 0xb8, 0x27, 0xf7, 0x8c,
+ 0x13, 0x7c, 0xb3, 0xfb, 0xcc, 0xdb, 0x33, 0xcb, 0xd3, 0xda, 0x76, 0x90,
+ 0x47, 0x60, 0x8b, 0x31, 0x73, 0x80, 0xe4, 0x26, 0xa0, 0xf4, 0x0c, 0xcf,
+ 0x21, 0xc3, 0x78, 0xe8, 0xd6, 0x1f, 0xae, 0x98, 0x19, 0x86, 0x5f, 0x8a,
+ 0x0c, 0x70, 0x53, 0xc3, 0x53, 0x22, 0x7a, 0x4e, 0x77, 0x52, 0x62, 0xb8,
+ 0xc1, 0xa4, 0x8b, 0x89, 0x57, 0x96, 0x9c, 0x2d, 0x76, 0x6d, 0xa7, 0x42,
+ 0x1f, 0xbe, 0x2d, 0xd8, 0x30, 0xd5, 0x91, 0x94, 0x58, 0xe7, 0xbe, 0xe6,
+ 0x20, 0x86, 0x3a, 0x0b, 0xbe, 0xbf, 0x6a, 0xc1, 0x55, 0xa1, 0x95, 0x61,
+ 0xd1, 0xcf, 0xac, 0x53, 0xc3, 0x1f, 0x54, 0x62, 0x65, 0xd0, 0xec, 0x2e,
+ 0x89, 0x52, 0x0e, 0x77, 0xfe, 0xcf, 0xff, 0xfc, 0x93, 0xdd, 0xc8, 0x41,
+ 0x00, 0x1a, 0xf3, 0x7d, 0xbe, 0xf0, 0x84, 0x97, 0x57, 0x60, 0xdb, 0x22,
+ 0xbc, 0x18, 0xb4, 0x49, 0x27, 0xc2, 0x83, 0x7d, 0xd1, 0x29, 0xbf, 0x6f,
+ 0x1a, 0x26, 0xc8, 0xe5, 0x4c, 0xd8, 0x74, 0xf6, 0x12, 0x6e, 0x07, 0xaa,
+ 0x25, 0x89, 0x21, 0x7d, 0x72, 0x8e, 0xe2, 0xe1, 0xeb, 0x9b, 0x83, 0x0b,
+ 0xc9, 0x1f, 0xd2, 0xfe, 0xb3, 0x95, 0x43, 0x82, 0x1d, 0xa2, 0x43, 0xe2,
+ 0xee, 0xfb, 0xb4, 0xe3, 0x82, 0xaf, 0x67, 0x00, 0x4b, 0xbb, 0x9b, 0xeb,
+ 0xfb, 0xe0, 0x8d, 0xe1, 0xde, 0x9e, 0x98, 0x6f, 0xbd, 0xb7, 0xb4, 0xb5,
+ 0xe6, 0x9a, 0xe6, 0x4f, 0xd3, 0xb7, 0x8d, 0x5e, 0xe0, 0x08, 0x6d, 0x51,
+ 0x58, 0x57, 0x76, 0x2a, 0x77, 0x25, 0xae, 0xcf, 0x26, 0x11, 0xf5, 0xb6,
+ 0xb3, 0xbf, 0x1e, 0x45, 0xfb, 0xa0, 0xe5, 0xf9, 0x6a, 0xdb, 0x07, 0xd3,
+ 0x05, 0xf7, 0x43, 0xd9, 0x5f, 0x74, 0x09, 0x9a, 0x63, 0x23, 0x45, 0x33,
+ 0x95, 0x92, 0xe9, 0xd7, 0xed, 0xf3, 0xb0, 0x1f, 0x38, 0x4c, 0xef, 0xeb,
+ 0x7a, 0x46, 0x9b, 0x3d, 0xbf, 0xba, 0x33, 0x9d, 0xaa, 0x57, 0xa6, 0xdb,
+ 0xfb, 0x77, 0x29, 0x3f, 0xa7, 0x0b, 0xe6, 0x59, 0x96, 0x9b, 0x35, 0x9c,
+ 0x7f, 0x8b, 0x8c, 0xd0, 0x0c, 0x4c, 0x99, 0x7a, 0xcf, 0x8c, 0x81, 0x51,
+ 0x15, 0x9f, 0x77, 0x01, 0x31, 0x91, 0xa1, 0x56, 0x6f, 0x18, 0x52, 0xd1,
+ 0x5a, 0x18, 0x4d, 0xf7, 0x0e, 0xbe, 0xd5, 0x12, 0x35, 0xe2, 0x62, 0xc0,
+ 0xed, 0x09, 0xa1, 0xcc, 0xae, 0x60, 0x42, 0x74, 0xfe, 0xdf, 0xb3, 0x58,
+ 0x41, 0xe0, 0x56, 0xcb, 0xd2, 0xda, 0xd2, 0xcb, 0xa9, 0xec, 0x0e, 0x0d,
+ 0xbd, 0x0e, 0x4e, 0xe9, 0x5e, 0x9c, 0x45, 0x18, 0x61, 0x93, 0x10, 0xb9,
+ 0xc0, 0x15, 0x40, 0x00, 0x6a, 0x75, 0x8b, 0xbd, 0x55, 0x4a, 0x8a, 0x1e,
+ 0x97, 0x4b, 0xc6, 0x2f, 0x56, 0xfb, 0x22, 0xad, 0xaf, 0x2f, 0x6b, 0xb6,
+ 0x2d, 0x96, 0x47, 0xb5, 0x36, 0x81, 0x2c, 0x80, 0xd2, 0x0b, 0x77, 0xc0,
+ 0x84, 0xc8, 0xf2, 0x81, 0xdb, 0x49, 0xef, 0xdb, 0x36, 0x42, 0x97, 0xc7,
+ 0x45, 0x64, 0x60, 0xea, 0x5c, 0x83, 0xed, 0xa4, 0xec, 0x6c, 0x25, 0x73,
+ 0xbf, 0x44, 0x66, 0x8e, 0xee, 0x55, 0x2b, 0xb4, 0x2e, 0xdd, 0x55, 0xdb,
+ 0x16, 0x5d, 0xff, 0xf4, 0x01, 0x5f, 0x21, 0xa4, 0x3a, 0x72, 0xe8, 0xbe,
+ 0x3b, 0x32, 0x2a, 0x1a, 0x64, 0x0c, 0x2a, 0xa5, 0xbc, 0x31, 0xac, 0x92,
+ 0x52, 0xbf, 0x97, 0x90, 0x12, 0x30, 0x61, 0xcb, 0xa6, 0x03, 0xba, 0x4c,
+ 0x7e, 0xb1, 0x55, 0x3b, 0x66, 0x49, 0xca, 0x3e, 0x9a, 0x5a, 0xcf, 0xfa,
+ 0x76, 0x8c, 0x7c, 0xa6, 0xab, 0xd1, 0x99, 0x1d, 0xec, 0x5f, 0x5a, 0x88,
+ 0xdb, 0xde, 0x7b, 0x36, 0x88, 0xbd, 0xe7, 0xbd, 0xa5, 0x38, 0xe7, 0x08,
+ 0x07, 0xea, 0xfa, 0xa6, 0x73, 0x73, 0xad, 0x43, 0x18, 0x30, 0x0f, 0x13,
+ 0x9f, 0x5f, 0x92, 0x5c, 0xfa, 0x74, 0xc4, 0x99, 0x85, 0xd6, 0x34, 0x58,
+ 0xba, 0xae, 0x35, 0x4d, 0xba, 0xb2, 0x4d, 0x21, 0xe6, 0x78, 0xcf, 0x49,
+ 0x23, 0x52, 0x85, 0xe8, 0x17, 0xf5, 0x10, 0xcb, 0x9c, 0xf2, 0x27, 0xd7,
+ 0x8c, 0xc0, 0x33, 0x9d, 0xd7, 0x7f, 0xd1, 0x17, 0x11, 0xf1, 0x4f, 0x0b,
+ 0x9a, 0x3a, 0x79, 0xd8, 0xd4, 0xad, 0x84, 0xac, 0x83, 0xdd, 0xdd, 0xad,
+ 0x03, 0xb5, 0x95, 0x52, 0xc4, 0xfd, 0xda, 0xe3, 0x9f, 0xe7, 0x9a, 0x00,
+ 0xce, 0xbc, 0x31, 0xb2, 0xb3, 0x5e, 0x56, 0x5c, 0x75, 0xf9, 0x7e, 0x75,
+ 0x4f, 0x3d, 0x38, 0xb6, 0x3d, 0xe2, 0xdb, 0x6a, 0x13, 0xe3, 0xaf, 0xe8,
+ 0x95, 0x1d, 0x22, 0x26, 0x57, 0xbb, 0xa5, 0x38, 0xf2, 0xdf, 0xa8, 0x57,
+ 0xdc, 0xda, 0x43, 0xfa, 0xf4, 0xcf, 0xde, 0x6b, 0xdd, 0x9b, 0x8c, 0xc9,
+ 0xbf, 0xf5, 0x86, 0x79, 0x90, 0xb0, 0x5f, 0x7f, 0x95, 0xb5, 0x6e, 0xab,
+ 0xfb, 0xcf, 0xec, 0xaa, 0xab, 0x6c, 0x2f, 0x26, 0x42, 0x48, 0x3a, 0xbc,
+ 0x4f, 0x17, 0x0b, 0x11, 0x3b, 0xf7, 0x8f, 0x9d, 0x19, 0x8d, 0xb8, 0x86,
+ 0x1d, 0x55, 0x51, 0x90, 0x22, 0xf4, 0x4d, 0x59, 0x7e, 0x48, 0x04, 0x5a,
+ 0xc2, 0x00, 0x2b, 0x0a, 0x65, 0xae, 0x6f, 0x8e, 0xab, 0x9d, 0xf3, 0xe3,
+ 0xc4, 0x5f, 0x3d, 0x1a, 0xbd, 0xde, 0xc9, 0x9a, 0x89, 0x95, 0x81, 0x3b,
+ 0x0e, 0x34, 0xc5, 0x66, 0xd9, 0x7d, 0x37, 0x13, 0x84, 0x30, 0x8a, 0xd9,
+ 0xd0, 0x3c, 0x58, 0x17, 0xe3, 0x43, 0xa7, 0xa1, 0x6d, 0xa1, 0xfc, 0x4e,
+ 0x03, 0x25, 0x46, 0xc8, 0xc4, 0x7e, 0x89, 0x0b, 0x26, 0x67, 0xad, 0xbe,
+ 0x6f, 0xdd, 0xb7, 0xcf, 0xc5, 0xb8, 0x69, 0x8f, 0x31, 0x3a, 0x22, 0xb2,
+ 0xbb, 0x09, 0x2d, 0xb1, 0x5c, 0xfc, 0x37, 0x2c, 0x2c, 0x32, 0x0b, 0x5c,
+ 0x2c, 0x0e, 0xe8, 0x92, 0xfb, 0xbb, 0xbc, 0x20, 0x13, 0x97, 0xad, 0xd8,
+ 0xfb, 0xfb, 0x2c, 0x9d, 0x86, 0xc2, 0x1b, 0xe9, 0x36, 0x7a, 0xcd, 0x58,
+ 0xdb, 0x5f, 0xd0, 0x67, 0xce, 0xae, 0x93, 0x3e, 0xa0, 0xcb, 0x70, 0x19,
+ 0x0a, 0x1b, 0x26, 0x50, 0xd0, 0xd7, 0x79, 0xf1, 0x10, 0xdf, 0x8f, 0x85,
+ 0x38, 0x30, 0x66, 0x20, 0x1b, 0xd8, 0x56, 0x25, 0xb3, 0x8b, 0xa3, 0x18,
+ 0x94, 0xde, 0x7f, 0xaf, 0x98, 0x48, 0x85, 0x8f, 0x92, 0x44, 0x85, 0xe7,
+ 0x0f, 0x9d, 0xa8, 0xc7, 0x82, 0x40, 0x10, 0xf9, 0x64, 0x49, 0x69, 0xcd,
+ 0x91, 0xd2, 0x8c, 0x81, 0x97, 0xc3, 0xe8, 0x00, 0x9c, 0xce, 0xf0, 0x91,
+ 0x62, 0x9a, 0x2b, 0xd6, 0xc2, 0xea, 0x7a, 0x2b, 0x36, 0x48, 0xde, 0xc8,
+ 0x3c, 0x13, 0x3b, 0xeb, 0x6c, 0x66, 0x75, 0xc3, 0x7b, 0xc5, 0x94, 0x11,
+ 0x71, 0x8b, 0xda, 0x4b, 0x91, 0xc5, 0x36, 0xe1, 0x8d, 0xda, 0xd7, 0xc3,
+ 0xd1, 0x4f, 0x1e, 0xbc, 0x15, 0x84, 0x97, 0x4e, 0xe6, 0xd6, 0xe3, 0xd7,
+ 0x23, 0xab, 0x88, 0x99, 0x36, 0xe9, 0x97, 0xe9, 0x44, 0xd5, 0xfd, 0xfb,
+ 0x7a, 0x97, 0x72, 0x49, 0x96, 0xf6, 0x24, 0x30, 0x06, 0xa3, 0x75, 0xc9,
+ 0x30, 0xb4, 0xe4, 0x21, 0x22, 0x9e, 0x33, 0x9e, 0x19, 0x1a, 0xac, 0x99,
+ 0x52, 0xfe, 0x7c, 0xd5, 0xc3, 0x87, 0x6b, 0xa5, 0x51, 0x23, 0x0d, 0x7d,
+ 0x45, 0xcf, 0x1f, 0x7e, 0x7c, 0x7e, 0x1f, 0x11, 0xc7, 0x18, 0x1f, 0xd2,
+ 0x54, 0x22, 0x87, 0x67, 0x9c, 0x3d, 0xd4, 0x40, 0x26, 0xea, 0xc7, 0xce,
+ 0x31, 0xea, 0x0a, 0x08, 0x45, 0xb4, 0xcd, 0xea, 0xf2, 0x7e, 0xcd, 0x40,
+ 0x56, 0xa0, 0x85, 0xfe, 0x25, 0x1e, 0x5a, 0x66, 0xa2, 0x25, 0x0b, 0x73,
+ 0x46, 0xc7, 0x87, 0xc3, 0x02, 0xf7, 0x7a, 0x9c, 0xa8, 0xa2, 0x6d, 0x74,
+ 0x09, 0x44, 0x57, 0x6c, 0xe9, 0x6f, 0xe1, 0x3c, 0x6b, 0x62, 0xab, 0x64,
+ 0x9a, 0x03, 0x9e, 0xf8, 0x90, 0x6d, 0x44, 0xde, 0xb0, 0xc8, 0x69, 0x05,
+ 0xbf, 0xaf, 0xaa, 0xea, 0xfc, 0x65, 0x9b, 0x82, 0x01, 0x8f, 0x1a, 0xa5,
+ 0x42, 0x81, 0xca, 0x92, 0x0c, 0x7e, 0xe5, 0x42, 0x80, 0x6d, 0x42, 0x5a,
+ 0xc6, 0xe0, 0x3e, 0x5f, 0xac, 0x7a, 0xad, 0x09, 0x80, 0x87, 0xf4, 0xdc,
+ 0xd9, 0xd4, 0xab, 0xc4, 0x29, 0x86, 0xaa, 0x65, 0xa4, 0x3d, 0x58, 0xdf,
+ 0x9c, 0x72, 0x59, 0xff, 0x8e, 0x54, 0x66, 0x9f, 0x52, 0x73, 0x0a, 0xa2,
+ 0xa0, 0xf4, 0x3a, 0xc5, 0x45, 0x64, 0x13, 0x43, 0xad, 0x53, 0xbd, 0x5d,
+ 0xff, 0xad, 0x5d, 0xde, 0xa5, 0x6e, 0xca, 0x20, 0x97, 0x87, 0x94, 0x3d,
+ 0x8a, 0x39, 0xe2, 0xb6, 0x30, 0x56, 0x56, 0xca, 0x29, 0x79, 0x85, 0x11,
+ 0x09, 0x0d, 0x7b, 0x9f, 0xc5, 0x57, 0x4f, 0x5d, 0xc9, 0xc7, 0xcb, 0x06,
+ 0x61, 0x6a, 0x47, 0x91, 0x16, 0x01, 0xa5, 0x4b, 0xb2, 0x18, 0xbe, 0x66,
+ 0xfd, 0x9f, 0x9f, 0xa6, 0xd7, 0xc3, 0xb2, 0xca, 0xe9, 0xc6, 0x01, 0xe6,
+ 0x4e, 0x5b, 0xa3, 0xad, 0xdf, 0x87, 0x3c, 0x21, 0x9b, 0x22, 0xd6, 0x9c,
+ 0x44, 0x5e, 0x12, 0xe5, 0x3b, 0x6b, 0xb7, 0x3b, 0xc7, 0x66, 0x45, 0x00,
+ 0xc6, 0xb6, 0xe9, 0xea, 0xfc, 0xc5, 0x22, 0x94, 0x92, 0x65, 0x93, 0xb8,
+ 0xc2, 0x67, 0x8a, 0x19, 0xb0, 0x43, 0x76, 0x63, 0xa5, 0xd8, 0xd8, 0x6d,
+ 0x5a, 0x21, 0x5f, 0x34, 0xf0, 0x50, 0xe4, 0x75, 0xbd, 0xc4, 0x82, 0xbd,
+ 0x3a, 0x39, 0x3d, 0xb6, 0xa0, 0xa0, 0xff, 0xbd, 0x33, 0xa4, 0x09, 0xaf,
+ 0x26, 0x01, 0x04, 0x8a, 0x13, 0xb5, 0xbc, 0xac, 0x3b, 0xc9, 0xe4, 0xfa,
+ 0xb6, 0xcf, 0x45, 0xa2, 0xf0, 0xe3, 0x56, 0x1a, 0xd7, 0xf1, 0xdb, 0xef,
+ 0x4e, 0x2e, 0xce, 0xde, 0xbe, 0x39, 0x7e, 0x6b, 0xbd, 0xbd, 0x74, 0x28,
+ 0x62, 0x04, 0xc8, 0x75, 0x18, 0xf4, 0xcd, 0x29, 0x5e, 0x70, 0x8b, 0x4c,
+ 0x1b, 0xa6, 0x21, 0x37, 0xe3, 0x94, 0x7f, 0x0d, 0xfd, 0xe6, 0xbc, 0x87,
+ 0xd4, 0xe3, 0x4b, 0x71, 0xf8, 0x05, 0xd9, 0xfb, 0x53, 0x0a, 0xbd, 0x0d,
+ 0xd9, 0x47, 0x6c, 0x8b, 0xec, 0x11, 0x07, 0xf3, 0xa7, 0x49, 0x26, 0x45,
+ 0x86, 0x29, 0x41, 0x63, 0xc3, 0x4e, 0x09, 0x47, 0x89, 0x5c, 0x30, 0xad,
+ 0xd5, 0x09, 0xb7, 0xb9, 0xdf, 0x71, 0x22, 0x61, 0x9c, 0xcc, 0x99, 0x01,
+ 0xe0, 0x8d, 0x2b, 0xd2, 0xcb, 0xd9, 0x9e, 0xea, 0x9c, 0x57, 0xfe, 0x75,
+ 0x0f, 0x42, 0xe7, 0xb2, 0x70, 0xfd, 0x7a, 0x80, 0xdd, 0xb8, 0x9f, 0x37,
+ 0x8a, 0x1f, 0xd5, 0x85, 0x70, 0xb0, 0xb3, 0xf3, 0x33, 0x4a, 0x51, 0x7e,
+ 0x29, 0xb5, 0x28, 0x43, 0x8e, 0xb5, 0xda, 0xeb, 0x88, 0x88, 0x5c, 0x2f,
+ 0x85, 0x87, 0xf6, 0xad, 0x9d, 0x4e, 0x38, 0x07, 0xdf, 0x9f, 0x5f, 0x9c,
+ 0xfd, 0xf0, 0xd7, 0xdf, 0xf8, 0x13, 0x1e, 0x56, 0xe7, 0x47, 0x82, 0xb0,
+ 0x69, 0xe3, 0x3f, 0xff, 0xaa, 0xaf, 0xad, 0xfd, 0x5c, 0xbb, 0xfd, 0x7e,
+ 0xbb, 0x62, 0x72, 0x90, 0xa0, 0x84, 0x0c, 0x49, 0x2e, 0x10, 0xa1, 0xf9,
+ 0x92, 0xce, 0xea, 0xb5, 0x00, 0x1a, 0xbe, 0xe1, 0x6a, 0x9f, 0x04, 0x02,
+ 0xea, 0x6e, 0x1a, 0xf2, 0x4a, 0x0e, 0x39, 0x6d, 0xcf, 0x01, 0x20, 0x35,
+ 0x75, 0x93, 0xd2, 0x33, 0x39, 0x81, 0x13, 0x80, 0x3e, 0x3b, 0x1f, 0x87,
+ 0xa7, 0xa7, 0xbf, 0x7e, 0x12, 0xb4, 0xa4, 0x68, 0x7b, 0x1a, 0x50, 0xd1,
+ 0xcf, 0x0e, 0x68, 0x60, 0xb5, 0x54, 0x3d, 0x02, 0xeb, 0xa8, 0xee, 0xde,
+ 0x9e, 0x49, 0x6f, 0x9e, 0x43, 0x3d, 0x1e, 0xd4, 0x99, 0x51, 0x6a, 0xa9,
+ 0x82, 0xba, 0xe5, 0xed, 0xa4, 0x8e, 0xd5, 0x3b, 0x8c, 0x3b, 0x0b, 0x68,
+ 0x44, 0xfd, 0x87, 0x18, 0x94, 0xc6, 0xf3, 0xc9, 0x39, 0x45, 0x40, 0x7d,
+ 0x97, 0x96, 0xfc, 0x83, 0x4b, 0x8b, 0x4a, 0x8d, 0xd9, 0xab, 0x24, 0x52,
+ 0xbb, 0x90, 0x53, 0xb0, 0xe9, 0xbe, 0xad, 0xf2, 0xfa, 0x03, 0x30, 0xf1,
+ 0x74, 0x42, 0xa1, 0xf5, 0x6a, 0x92, 0x2c, 0x29, 0xbd, 0xe8, 0xd3, 0x90,
+ 0xf3, 0xf8, 0x5d, 0x3a, 0x52, 0x5e, 0xc7, 0x7a, 0x87, 0x12, 0x10, 0x7c,
+ 0x15, 0x93, 0x73, 0x8d, 0x5d, 0x93, 0x69, 0x2b, 0x37, 0x46, 0xb8, 0x4f,
+ 0x19, 0xd7, 0x52, 0xdb, 0x64, 0xde, 0x58, 0xee, 0x67, 0x5f, 0x73, 0xfa,
+ 0x6c, 0x51, 0xe0, 0xbc, 0xa9, 0xb3, 0xd9, 0xd5, 0x0a, 0x22, 0x70, 0x5f,
+ 0x60, 0x78, 0x8e, 0x60, 0xc9, 0xa4, 0xb5, 0x05, 0x56, 0xdd, 0x06, 0xa7,
+ 0x8c, 0x77, 0x38, 0x9c, 0x43, 0x2f, 0x8e, 0xee, 0x44, 0x89, 0x44, 0xf3,
+ 0x86, 0x80, 0x08, 0x49, 0x6c, 0x59, 0x0c, 0x0f, 0x40, 0xc0, 0x9d, 0x48,
+ 0x1b, 0x96, 0x74, 0x01, 0x04, 0x82, 0x97, 0xfd, 0x05, 0x2b, 0xc3, 0x7e,
+ 0xbe, 0xbc, 0x85, 0x37, 0x0d, 0x3e, 0x25, 0x9a, 0xa9, 0xcf, 0xab, 0xe6,
+ 0xe7, 0xea, 0x87, 0x51, 0x39, 0xf3, 0x58, 0xa4, 0xb1, 0x14, 0x7e, 0x11,
+ 0x41, 0x9c, 0x37, 0x84, 0x8f, 0x6c, 0x70, 0xe7, 0xf2, 0xa3, 0xa0, 0xb4,
+ 0x08, 0x61, 0xe6, 0xbf, 0x4f, 0xef, 0xc8, 0x31, 0xcb, 0x4c, 0x0d, 0x0f,
+ 0xe9, 0xa0, 0x63, 0xac, 0xc9, 0x62, 0xa1, 0x99, 0x38, 0xb8, 0x07, 0x1b,
+ 0x0e, 0x11, 0x3f, 0x57, 0xde, 0xb7, 0x9b, 0xcd, 0xeb, 0x72, 0xeb, 0xbc,
+ 0x78, 0xec, 0x49, 0x17, 0x49, 0x29, 0x7e, 0xf9, 0x4c, 0xb8, 0xca, 0x04,
+ 0x21, 0x6e, 0x81, 0xdb, 0x72, 0xc0, 0x12, 0xe1, 0x52, 0xa5, 0x56, 0x85,
+ 0x36, 0x44, 0x42, 0x1f, 0x41, 0xce, 0xf0, 0x64, 0x56, 0xe2, 0xda, 0x19,
+ 0x13, 0xf6, 0x38, 0x03, 0x73, 0x3d, 0x1f, 0x7c, 0xf3, 0xdf, 0xcb, 0xb3,
+ 0xa3, 0xb3, 0x53, 0xf3, 0x97, 0xe3, 0x57, 0x27, 0x3f, 0x38, 0xdd, 0x80,
+ 0x73, 0xc1, 0x5d, 0x82, 0x0f, 0x47, 0x57, 0xb5, 0x72, 0xaf, 0x2f, 0x94,
+ 0x19, 0x20, 0x16, 0x10, 0x8d, 0x30, 0x02, 0x6c, 0xc3, 0x4d, 0x9b, 0x4a,
+ 0x3b, 0x29, 0xbe, 0xdb, 0x2a, 0xa4, 0x2b, 0x2c, 0x27, 0xa4, 0x4b, 0x73,
+ 0xab, 0x16, 0x90, 0xee, 0xa6, 0xfa, 0xa4, 0x25, 0xe8, 0xa0, 0x5f, 0xf9,
+ 0xfa, 0x43, 0x5b, 0x44, 0x72, 0xa7, 0x10, 0xa9, 0xcf, 0xaf, 0xac, 0x51,
+ 0xe5, 0x17, 0x0d, 0xd5, 0xc4, 0x14, 0x21, 0x69, 0xa7, 0xa0, 0xb5, 0x23,
+ 0x4b, 0x24, 0x5d, 0xb7, 0xef, 0x0d, 0x52, 0xd5, 0xde, 0xa6, 0xca, 0x20,
+ 0x1e, 0x01, 0x7f, 0x69, 0x25, 0xd4, 0x77, 0xf6, 0x05, 0x6d, 0x08, 0xd7,
+ 0x5c, 0x7b, 0x4c, 0x32, 0x01, 0x02, 0xb3, 0x42, 0xf8, 0x9d, 0xd4, 0x79,
+ 0x8f, 0x4d, 0x43, 0xf6, 0x6c, 0x34, 0xe7, 0x8a, 0x73, 0x3d, 0xe8, 0x0f,
+ 0xd7, 0x09, 0x15, 0xac, 0x97, 0x5e, 0xb1, 0x52, 0xbe, 0x17, 0x34, 0x60,
+ 0x41, 0xbe, 0x90, 0x40, 0xc5, 0xfc, 0xa4, 0x2a, 0x7f, 0x5b, 0xef, 0xa8,
+ 0xd7, 0x7c, 0x3a, 0x9c, 0x80, 0x00, 0xba, 0xca, 0xd5, 0x7a, 0xd7, 0xb5,
+ 0x41, 0x7a, 0xe1, 0xdf, 0x97, 0xf9, 0xc7, 0x14, 0x09, 0x3a, 0x54, 0x62,
+ 0x5a, 0x4a, 0xfc, 0x76, 0xda, 0x48, 0x7f, 0x55, 0x23, 0x69, 0xbb, 0x95,
+ 0x27, 0xbf, 0xa6, 0x91, 0x27, 0x9d, 0x36, 0x6e, 0x7e, 0x55, 0x23, 0x03,
+ 0xbd, 0x26, 0x8c, 0x7a, 0xfc, 0xc3, 0xc9, 0x65, 0x72, 0x74, 0xf6, 0xd2,
+ 0x1d, 0xb0, 0x4b, 0xa8, 0x2a, 0xd8, 0x02, 0xb4, 0xf7, 0xc6, 0xcb, 0x82,
+ 0x76, 0x21, 0x49, 0x0f, 0x2e, 0x10, 0x48, 0x6d, 0x01, 0x1c, 0x0b, 0xb4,
+ 0x46, 0xad, 0xb9, 0x3f, 0x79, 0xc5, 0xd4, 0x1f, 0x84, 0xc0, 0xf0, 0xc9,
+ 0x14, 0xf9, 0xd1, 0x39, 0xb1, 0x8a, 0x5c, 0xeb, 0x3d, 0x4c, 0x67, 0x92,
+ 0xa8, 0xa5, 0xd2, 0x4a, 0x33, 0xf3, 0xc6, 0x29, 0x31, 0x87, 0x14, 0x9c,
+ 0x62, 0x46, 0xd8, 0xfe, 0xa6, 0x65, 0xaa, 0x3b, 0x22, 0x92, 0x80, 0xf3,
+ 0xd3, 0xa8, 0xd1, 0x79, 0xa3, 0x5d, 0xf1, 0x51, 0x67, 0x7b, 0x8a, 0x9a,
+ 0x6e, 0x6d, 0x77, 0x29, 0xda, 0x82, 0x7b, 0x90, 0xe0, 0xb1, 0x20, 0x1c,
+ 0x82, 0x30, 0x21, 0xfd, 0xb8, 0x70, 0xe8, 0x67, 0xae, 0xdb, 0x18, 0x5c,
+ 0x51, 0xb6, 0x09, 0xfb, 0x9d, 0x7d, 0xfe, 0xe3, 0x95, 0xd1, 0xd6, 0x19,
+ 0x24, 0x23, 0x18, 0xa4, 0xfc, 0x1f, 0x9e, 0xae, 0xfe, 0xc8, 0xaa, 0x66,
+ 0x66, 0xf0, 0x33, 0x54, 0x44, 0x9c, 0xf2, 0xb1, 0xa8, 0xef, 0xcc, 0xfd,
+ 0xfe, 0x09, 0xb6, 0x39, 0x19, 0x52, 0x42, 0x9f, 0xe2, 0xde, 0x7c, 0x2c,
+ 0x0a, 0x9a, 0xa5, 0x69, 0x29, 0x2b, 0x6b, 0x9a, 0x3a, 0x48, 0x89, 0xef,
+ 0xbe, 0xb0, 0xf9, 0xa6, 0x98, 0x40, 0x33, 0x2f, 0x54, 0xa5, 0x71, 0x23,
+ 0x1a, 0xf2, 0xd7, 0xb7, 0xcd, 0x87, 0x13, 0xcd, 0x5f, 0xa5, 0x0f, 0x20,
+ 0xe0, 0xe7, 0x4a, 0xf0, 0x58, 0x8a, 0x0d, 0xf3, 0x3d, 0x4c, 0xda, 0x20,
+ 0x5a, 0xac, 0xe2, 0xd2, 0xcf, 0x68, 0x53, 0x23, 0x64, 0x5a, 0x62, 0x1a,
+ 0xfb, 0x5c, 0xee, 0x87, 0x2a, 0xc6, 0x9a, 0xdf, 0xdc, 0x69, 0xe1, 0x9f,
+ 0xb4, 0x40, 0xf2, 0x56, 0x17, 0x43, 0xaa, 0x0b, 0x23, 0x99, 0x2d, 0x2e,
+ 0x8d, 0xe4, 0x09, 0xff, 0x71, 0xa4, 0x7a, 0x9c, 0x2b, 0x5f, 0xaf, 0x2a,
+ 0x1c, 0x6e, 0x3c, 0xb9, 0x75, 0x44, 0xe8, 0xf2, 0xad, 0x37, 0xc1, 0xd5,
+ 0xc4, 0xf0, 0xec, 0x60, 0x36, 0xea, 0x8e, 0xef, 0xf3, 0x69, 0xe7, 0x3b,
+ 0xfa, 0x19, 0x66, 0x53, 0xb9, 0xb4, 0xac, 0x2e, 0xdd, 0x48, 0x03, 0x35,
+ 0x1f, 0xb6, 0xf6, 0x59, 0x77, 0x8b, 0xa8, 0xd7, 0x9f, 0x38, 0xf7, 0x4a,
+ 0x3f, 0xfe, 0xf7, 0xb9, 0x78, 0x28, 0x32, 0xca, 0x04, 0x13, 0x7d, 0xba,
+ 0xca, 0x16, 0x33, 0x91, 0xa1, 0xf2, 0x13, 0x04, 0x19, 0xe1, 0x65, 0xc0,
+ 0x54, 0x4f, 0xb4, 0x97, 0x46, 0x49, 0xf6, 0x0d, 0xc4, 0x67, 0xf2, 0x59,
+ 0x23, 0x87, 0x59, 0x9f, 0x30, 0x9b, 0xa1, 0xc8, 0xed, 0xc6, 0x93, 0x62,
+ 0xa2, 0xf8, 0x11, 0xa1, 0xe2, 0xcc, 0x5d, 0x55, 0xda, 0x7f, 0xeb, 0x1b,
+ 0x21, 0xc9, 0x14, 0x5f, 0x67, 0xce, 0xc7, 0x8c, 0xf1, 0x2e, 0x2b, 0xce,
+ 0x85, 0x74, 0xd4, 0x6a, 0x40, 0x1d, 0xa7, 0x45, 0xc3, 0x03, 0xae, 0x88,
+ 0x0e, 0x6b, 0x98, 0xbc, 0x09, 0xc1, 0x46, 0xe5, 0x55, 0x23, 0xe9, 0xcc,
+ 0x84, 0x67, 0xe3, 0xd9, 0xb9, 0x49, 0x8b, 0xeb, 0x8c, 0x1d, 0x32, 0x1e,
+ 0x33, 0x1c, 0x97, 0xa2, 0x91, 0xcb, 0xd1, 0x9c, 0x7a, 0x28, 0x35, 0x45,
+ 0xa4, 0x77, 0x5d, 0x32, 0xe2, 0xbd, 0x5d, 0x3b, 0x0f, 0x18, 0xd6, 0xa2,
+ 0x01, 0xe6, 0x9f, 0x26, 0xe2, 0x7b, 0xb0, 0x81, 0xdd, 0xa6, 0x5c, 0x88,
+ 0x4e, 0x6b, 0xb5, 0x3a, 0x43, 0x46, 0x17, 0x8a, 0x12, 0x7d, 0x42, 0x80,
+ 0x2d, 0xb0, 0x1e, 0x29, 0xbb, 0xda, 0x18, 0x20, 0xc8, 0x39, 0x63, 0x72,
+ 0x7b, 0xf5, 0x61, 0x9c, 0x5b, 0x51, 0xc9, 0x21, 0x39, 0xe8, 0xdc, 0x94,
+ 0x6e, 0xb0, 0xc2, 0x4f, 0x43, 0x94, 0x31, 0x5e, 0xe4, 0x9f, 0x12, 0x0b,
+ 0x98, 0xa3, 0xd4, 0x1b, 0xcf, 0x9e, 0x1b, 0xcf, 0x2d, 0x76, 0xca, 0xf9,
+ 0xe1, 0x68, 0xa4, 0xfb, 0xe4, 0x28, 0xdc, 0x12, 0x12, 0x58, 0x02, 0x7b,
+ 0x85, 0xa4, 0x9e, 0x86, 0x0a, 0xa4, 0xb4, 0xd1, 0x09, 0x48, 0xef, 0xb1,
+ 0x78, 0x7b, 0xc9, 0x62, 0x3a, 0x3e, 0xdc, 0xdb, 0xd6, 0x24, 0xb2, 0x67,
+ 0xbb, 0x43, 0xad, 0x10, 0x2f, 0x03, 0x8e, 0x69, 0xc5, 0x34, 0x23, 0xc7,
+ 0x53, 0xb9, 0x9d, 0xc9, 0x41, 0x6c, 0xa4, 0x4f, 0xbb, 0xb8, 0xec, 0xde,
+ 0xa3, 0xc8, 0xa0, 0xbf, 0xe3, 0x51, 0xf5, 0xff, 0x99, 0x41, 0x7f, 0x17,
+ 0x19, 0xf4, 0x63, 0xfb, 0x2d, 0xfe, 0xd4, 0xfe, 0xfe, 0x67, 0x82, 0x80,
+ 0x67, 0xcf, 0xdd, 0x2c, 0x71, 0x1f, 0x93, 0xaf, 0xf1, 0x88, 0xcd, 0x83,
+ 0x03, 0x25, 0x2b, 0xcd, 0x02, 0x0b, 0xd7, 0x1e, 0x5e, 0xef, 0x53, 0x4f,
+ 0xdc, 0xb0, 0x8c, 0x42, 0x4e, 0xed, 0x91, 0xae, 0xcf, 0x72, 0x26, 0x10,
+ 0x3f, 0x6a, 0xe2, 0x11, 0x46, 0xe6, 0x96, 0xd0, 0x36, 0x2b, 0xb0, 0x06,
+ 0xda, 0x0d, 0xef, 0x3b, 0x4f, 0xad, 0x73, 0x65, 0x67, 0x9f, 0x37, 0x25,
+ 0xd5, 0x62, 0x91, 0x0a, 0xde, 0xd8, 0x9a, 0xd3, 0xac, 0x31, 0x6b, 0xe2,
+ 0xfc, 0x82, 0x9c, 0xc8, 0x74, 0x55, 0xa5, 0xa0, 0x39, 0x45, 0xd5, 0xf0,
+ 0xe1, 0x0a, 0x2e, 0x5d, 0x36, 0x62, 0xcc, 0xf9, 0xbc, 0xce, 0x0a, 0xb2,
+ 0x1d, 0xa0, 0x14, 0x88, 0x33, 0x8d, 0xbc, 0xb3, 0xa8, 0xd1, 0x7e, 0x65,
+ 0x1d, 0xb8, 0x5a, 0x37, 0xbc, 0x1f, 0xcc, 0x10, 0x0f, 0xb1, 0xa5, 0x33,
+ 0xc4, 0x69, 0x99, 0xf6, 0x3e, 0xb3, 0xf3, 0x66, 0x57, 0x82, 0xfc, 0x5d,
+ 0x4c, 0xbc, 0x30, 0xf4, 0xaf, 0x08, 0x11, 0x27, 0x5e, 0x58, 0x48, 0x29,
+ 0xfc, 0x83, 0x7d, 0x29, 0x6f, 0xbb, 0xaf, 0xb0, 0x3c, 0x3e, 0x27, 0x69,
+ 0x27, 0x7c, 0x97, 0xc3, 0xe4, 0x0c, 0xde, 0xb9, 0x16, 0xc3, 0x2f, 0xe7,
+ 0x6d, 0xa4, 0x2e, 0x17, 0xaf, 0xbd, 0x75, 0x9f, 0x79, 0x6b, 0xac, 0xdd,
+ 0x52, 0xac, 0xc4, 0x8e, 0x08, 0x5a, 0xc7, 0x14, 0xa6, 0x3e, 0xe8, 0x2c,
+ 0xb9, 0x38, 0xbe, 0xbc, 0x00, 0xd6, 0x8b, 0x44, 0x40, 0x50, 0x47, 0x22,
+ 0xad, 0xb6, 0x2d, 0x2f, 0xa4, 0xc8, 0x33, 0xa7, 0x94, 0x38, 0x11, 0xc1,
+ 0xe4, 0x41, 0x76, 0xc5, 0xf9, 0x9f, 0xfa, 0x1e, 0xe7, 0x2a, 0x98, 0x35,
+ 0xe7, 0x29, 0x77, 0x61, 0xd2, 0x36, 0xad, 0xd1, 0xfe, 0xbe, 0xc3, 0xac,
+ 0xa0, 0x38, 0x20, 0xdf, 0x73, 0x82, 0x40, 0x1e, 0x0a, 0x14, 0x42, 0x41,
+ 0xfb, 0x89, 0x65, 0xf2, 0x66, 0xcd, 0x82, 0x51, 0xbc, 0x21, 0x30, 0xd4,
+ 0x7e, 0x5c, 0xd5, 0x00, 0xd5, 0x16, 0x3d, 0x54, 0x3b, 0x3e, 0xe9, 0xc9,
+ 0x50, 0x4e, 0xad, 0x7a, 0xbc, 0x1b, 0x21, 0x2d, 0x4f, 0xc7, 0x46, 0xac,
+ 0x8a, 0x6a, 0x27, 0x39, 0x18, 0x78, 0x85, 0xbd, 0xa9, 0x50, 0x37, 0x6b,
+ 0xb2, 0x3e, 0x06, 0x57, 0xe4, 0xde, 0xa4, 0x19, 0x0b, 0xcd, 0x8c, 0x7d,
+ 0x96, 0x32, 0xdf, 0x23, 0x29, 0x44, 0xe6, 0xac, 0x2d, 0x5b, 0x38, 0x5f,
+ 0x44, 0x8b, 0xcf, 0xa5, 0x0a, 0xaa, 0x45, 0xaa, 0xa5, 0x78, 0xc5, 0x83,
+ 0x9e, 0x05, 0x12, 0x7c, 0xff, 0x49, 0x64, 0x47, 0x24, 0xa3, 0xcb, 0xb3,
+ 0x0b, 0x65, 0xd8, 0x0c, 0x6f, 0x68, 0x00, 0x4c, 0xe8, 0x09, 0xcb, 0x60,
+ 0xd1, 0x0f, 0x99, 0x4c, 0xa6, 0x36, 0xed, 0xda, 0x52, 0x08, 0x7a, 0x5f,
+ 0x65, 0x19, 0x80, 0xaa, 0x35, 0x32, 0xb6, 0xef, 0x24, 0xcf, 0x5a, 0xe9,
+ 0x32, 0xf5, 0x64, 0x7a, 0x2f, 0xf1, 0x41, 0x3b, 0xe3, 0x13, 0xcc, 0x69,
+ 0xc1, 0xa8, 0xe2, 0xc4, 0x09, 0xc2, 0x44, 0xb7, 0x29, 0xe0, 0x49, 0x5b,
+ 0x28, 0xab, 0xbb, 0x17, 0xf9, 0x10, 0x9d, 0x39, 0x46, 0x54, 0x96, 0xf1,
+ 0x32, 0x48, 0xe7, 0x42, 0x42, 0xbd, 0x36, 0x24, 0x54, 0x30, 0x67, 0xa8,
+ 0xec, 0x21, 0xe8, 0x0e, 0x81, 0x06, 0x6b, 0x8e, 0x4d, 0x59, 0x4d, 0x85,
+ 0x96, 0x4b, 0x2e, 0x4f, 0x35, 0x1f, 0x9c, 0xda, 0xed, 0xdd, 0xfc, 0xe7,
+ 0x67, 0x17, 0x97, 0x89, 0xbd, 0xf8, 0xf1, 0x6d, 0xfc, 0xa8, 0x73, 0x84,
+ 0xa8, 0x66, 0x01, 0xbc, 0x79, 0x0e, 0xf1, 0x1f, 0xb8, 0x2a, 0xc5, 0x44,
+ 0x68, 0xb4, 0x09, 0x6d, 0x83, 0xfc, 0x0f, 0x15, 0xb0, 0x7d, 0xc2, 0x7e,
+ 0xe6, 0xc9, 0x1c, 0x49, 0xad, 0xa1, 0x0b, 0x27, 0x5e, 0xfc, 0xcc, 0x29,
+ 0xb9, 0x8f, 0xf6, 0x22, 0xbb, 0x83, 0x6c, 0xeb, 0x8b, 0xe3, 0xd1, 0x25,
+ 0xcf, 0x1a, 0xfd, 0x2d, 0xe8, 0x39, 0xa7, 0x73, 0xca, 0x0f, 0x03, 0xcb,
+ 0xc5, 0xee, 0x0e, 0x8a, 0x59, 0x1a, 0xf3, 0x03, 0xed, 0xdb, 0xdc, 0x61,
+ 0x6f, 0xce, 0x1e, 0x79, 0xf8, 0x34, 0x48, 0x4e, 0xd9, 0x2b, 0x38, 0xe4,
+ 0xf8, 0x41, 0x4f, 0x3e, 0xd2, 0x33, 0xea, 0x19, 0x1f, 0x8a, 0x16, 0x03,
+ 0xf2, 0xa3, 0xc7, 0x9e, 0xb4, 0xa0, 0xdb, 0x4a, 0x1a, 0x38, 0xd1, 0x5a,
+ 0x73, 0xf4, 0xc3, 0x81, 0x6e, 0x17, 0x5c, 0x19, 0xbc, 0x31, 0xf8, 0x39,
+ 0xd7, 0xce, 0x13, 0xcb, 0x11, 0xa0, 0x0a, 0x83, 0xd7, 0x15, 0xfa, 0xb1,
+ 0xc2, 0x82, 0xa0, 0xbc, 0x75, 0xb6, 0xdd, 0x23, 0xde, 0xed, 0x5f, 0xa7,
+ 0x53, 0x87, 0x73, 0xe3, 0xa1, 0x7b, 0x17, 0x2b, 0x69, 0x5c, 0x79, 0xb1,
+ 0xcc, 0xa0, 0xa9, 0xa5, 0xd5, 0x8c, 0xd8, 0xd6, 0x8d, 0x1c, 0x61, 0x5f,
+ 0x0b, 0xbd, 0x16, 0x48, 0xdd, 0xd2, 0xe7, 0xf6, 0x78, 0x24, 0xb7, 0xd0,
+ 0xc9, 0xe9, 0xb1, 0x5b, 0x29, 0xa6, 0x6a, 0xc7, 0x29, 0x76, 0x1a, 0x3f,
+ 0xd5, 0x87, 0xb5, 0x57, 0xc5, 0x30, 0x39, 0xa7, 0xc2, 0x9f, 0xd0, 0x9e,
+ 0xea, 0x7f, 0x77, 0xad, 0xf1, 0x41, 0x81, 0x77, 0xde, 0x5c, 0x9e, 0x30,
+ 0x55, 0xf2, 0xc2, 0x2c, 0x2c, 0x7e, 0x42, 0x7f, 0xf5, 0x68, 0x85, 0x83,
+ 0xe1, 0x3e, 0x73, 0x2f, 0xd7, 0x66, 0x28, 0xc6, 0x68, 0xef, 0x3e, 0xf2,
+ 0x58, 0xf6, 0x95, 0xb1, 0xe8, 0xd1, 0x04, 0x7d, 0x00, 0xb2, 0x99, 0xce,
+ 0xb3, 0xd4, 0x6b, 0x98, 0x72, 0x0b, 0x57, 0xfa, 0x8c, 0x1a, 0x35, 0xfc,
+ 0x9c, 0x6b, 0x8a, 0x2f, 0x84, 0xc3, 0xb1, 0xad, 0xe1, 0x41, 0xb0, 0x52,
+ 0x52, 0xe7, 0x4c, 0x5b, 0x05, 0x49, 0xdb, 0x99, 0x45, 0x67, 0xdb, 0x10,
+ 0x31, 0xc9, 0xcb, 0xb1, 0x1e, 0x1c, 0x1a, 0x49, 0x77, 0x72, 0x3b, 0x55,
+ 0x4c, 0x1f, 0xf3, 0x4e, 0xb4, 0xdb, 0xc6, 0xde, 0x61, 0xad, 0xde, 0x09,
+ 0x9e, 0x55, 0xf8, 0xc4, 0xc8, 0x91, 0x40, 0xb1, 0x02, 0x73, 0xc5, 0xfb,
+ 0x26, 0xc0, 0xe3, 0x27, 0xae, 0xa9, 0x2b, 0xca, 0xc2, 0xb3, 0x6d, 0x39,
+ 0xf9, 0xe3, 0xea, 0x18, 0xe4, 0xf6, 0x31, 0xb1, 0x1a, 0xf9, 0x1e, 0x1b,
+ 0x47, 0x88, 0xb5, 0xfc, 0x39, 0xe1, 0xcd, 0x70, 0x59, 0x92, 0x19, 0x5c,
+ 0xdc, 0x39, 0xb8, 0xf6, 0x90, 0x23, 0xce, 0xec, 0x4d, 0xe3, 0x5a, 0x11,
+ 0xf2, 0x1b, 0xe1, 0xda, 0xbe, 0x11, 0x6f, 0x0d, 0x95, 0xce, 0x0b, 0x28,
+ 0x82, 0x97, 0x73, 0x41, 0x7d, 0x7a, 0x5f, 0xfa, 0x5c, 0x5c, 0x1b, 0x94,
+ 0xd4, 0x5b, 0x58, 0x5e, 0x1b, 0x3b, 0x12, 0x33, 0xd1, 0x62, 0x39, 0x5b,
+ 0x86, 0x18, 0xb3, 0x79, 0x00, 0x47, 0xac, 0x3d, 0xce, 0xde, 0x08, 0x2f,
+ 0x1d, 0x2e, 0x63, 0x51, 0x7a, 0xd5, 0xcb, 0x50, 0x7a, 0xac, 0x42, 0x34,
+ 0xe1, 0xf2, 0x1c, 0xff, 0x4a, 0xb9, 0x27, 0x42, 0x77, 0x79, 0x95, 0xfd,
+ 0x0d, 0xea, 0xe4, 0xd0, 0x96, 0x49, 0xd3, 0x78, 0x73, 0x5a, 0x2c, 0x53,
+ 0xcf, 0xa6, 0x7f, 0xfc, 0x4c, 0xfc, 0x56, 0xe2, 0x17, 0xd1, 0x12, 0xbb,
+ 0xdd, 0xd0, 0xe3, 0x93, 0x3d, 0xeb, 0xc1, 0x24, 0x90, 0xa5, 0x64, 0x0e,
+ 0xf8, 0x50, 0x4b, 0xe2, 0x1f, 0x1d, 0xbd, 0x4e, 0xde, 0xbc, 0x7c, 0x42,
+ 0x60, 0x9f, 0xeb, 0xac, 0x5a, 0x18, 0xab, 0xc5, 0x19, 0xe6, 0x67, 0xdf,
+ 0x7a, 0x8d, 0xed, 0x3b, 0x77, 0xa8, 0x5c, 0xb3, 0xb9, 0x9c, 0x5e, 0xb2,
+ 0x18, 0xcc, 0xfa, 0x51, 0xa6, 0xea, 0xb5, 0x26, 0x9d, 0xb3, 0x4f, 0x0c,
+ 0x59, 0xed, 0xc2, 0x03, 0xc4, 0x6a, 0x4b, 0xd7, 0xa1, 0xdd, 0x16, 0x60,
+ 0x4f, 0x1e, 0x39, 0x01, 0x56, 0xdd, 0x2d, 0xa8, 0xbe, 0x41, 0x71, 0x4d,
+ 0xd6, 0x41, 0xe4, 0x44, 0x3d, 0x61, 0xa1, 0x79, 0xc4, 0xe7, 0x9e, 0x54,
+ 0xd9, 0xf0, 0x35, 0x28, 0xe9, 0xf0, 0xa2, 0x7a, 0xef, 0x3d, 0xf1, 0x7d,
+ 0x0b, 0xc4, 0x4f, 0x09, 0x18, 0x15, 0xb3, 0xd2, 0x43, 0x4f, 0xf1, 0x9e,
+ 0x7d, 0x6a, 0x9f, 0x25, 0x4f, 0x52, 0x5e, 0x78, 0x55, 0x44, 0x56, 0xbc,
+ 0x21, 0x0a, 0xb0, 0x9a, 0x09, 0x9a, 0xda, 0xc7, 0x5a, 0x8f, 0x37, 0xf7,
+ 0xde, 0x2b, 0xcf, 0xda, 0xae, 0x13, 0xd0, 0x8b, 0xdb, 0xad, 0x89, 0x41,
+ 0xa1, 0x8a, 0x9d, 0xe7, 0x6c, 0xe1, 0x5b, 0xfa, 0x9c, 0x90, 0xb3, 0xad,
+ 0xf5, 0x54, 0x21, 0x98, 0xf9, 0xf4, 0x0c, 0x7a, 0xd6, 0x79, 0xef, 0x1f,
+ 0x1d, 0xae, 0x4a, 0x1b, 0xc1, 0x6e, 0xf7, 0x3e, 0xb2, 0x27, 0x67, 0x86,
+ 0x6a, 0x3f, 0x5e, 0x17, 0xf9, 0x3f, 0x34, 0xe1, 0x9c, 0x6e, 0x67, 0xad,
+ 0x00, 0xe3, 0x3d, 0xbe, 0x2f, 0x02, 0x83, 0x8b, 0xfe, 0x41, 0x28, 0x52,
+ 0x60, 0xd5, 0x3d, 0xf0, 0x48, 0x76, 0x2d, 0x57, 0xbb, 0x84, 0x05, 0x80,
+ 0x7a, 0xb5, 0x14, 0xd6, 0xcf, 0x5a, 0x40, 0xec, 0xa7, 0x8f, 0x45, 0xef,
+ 0x52, 0x05, 0x99, 0x6e, 0x5e, 0x9a, 0x88, 0x19, 0xd8, 0xee, 0xba, 0x62,
+ 0xfa, 0xa9, 0x5c, 0x7b, 0xb2, 0x94, 0xb6, 0x0a, 0x8c, 0xad, 0xa8, 0x43,
+ 0x7f, 0xbd, 0xcd, 0x0b, 0x81, 0x46, 0x07, 0xaf, 0x3f, 0x5d, 0xe1, 0x8f,
+ 0xac, 0xf9, 0xce, 0x3c, 0xc6, 0x5e, 0xf2, 0x9e, 0xff, 0xcc, 0x65, 0xbc,
+ 0x3a, 0xde, 0x44, 0xe5, 0x88, 0xeb, 0x7b, 0x1e, 0x08, 0x7b, 0x90, 0xc4,
+ 0x8b, 0xc2, 0x47, 0x60, 0x1a, 0x2d, 0xc9, 0x71, 0x65, 0x3f, 0x3f, 0x2b,
+ 0xaf, 0x13, 0x9f, 0xee, 0xe2, 0x29, 0x6f, 0xa9, 0x57, 0xa0, 0x8b, 0xd7,
+ 0x73, 0x80, 0x12, 0x8a, 0x5e, 0x8e, 0xa5, 0x7b, 0xfa, 0x99, 0xec, 0x0d,
+ 0xbd, 0x2f, 0xad, 0xc9, 0xba, 0xea, 0x8d, 0xcf, 0x76, 0x7d, 0x85, 0x75,
+ 0x4a, 0x11, 0x5b, 0x4e, 0xbc, 0x5e, 0xf9, 0x02, 0xef, 0x8c, 0x93, 0x19,
+ 0xd5, 0x3e, 0x9e, 0x69, 0x45, 0x65, 0x65, 0x89, 0x73, 0x8f, 0xed, 0xb7,
+ 0x84, 0xee, 0xa5, 0xaf, 0x3e, 0x25, 0x27, 0x2f, 0xbd, 0x07, 0x1f, 0xb9,
+ 0x01, 0xa6, 0x33, 0xd2, 0x06, 0xee, 0xd8, 0x5d, 0x55, 0x4b, 0x2d, 0x67,
+ 0xef, 0x51, 0xde, 0x19, 0x6f, 0x4b, 0xe6, 0x33, 0xc2, 0xfc, 0x07, 0xcf,
+ 0xf0, 0x76, 0x38, 0xba, 0x31, 0xb7, 0xda, 0xa4, 0x01, 0x62, 0xb4, 0xd0,
+ 0xb8, 0x57, 0x77, 0xed, 0x3f, 0x7b, 0xba, 0xe6, 0x59, 0xb9, 0x34, 0x6b,
+ 0x7b, 0xd5, 0x7b, 0xef, 0x7d, 0x16, 0x1e, 0x73, 0x35, 0x09, 0x14, 0xd8,
+ 0x2e, 0x27, 0x2d, 0xd9, 0xa2, 0xdc, 0xda, 0x7f, 0x57, 0xff, 0x60, 0x45,
+ 0x54, 0x6d, 0xf5, 0xbf, 0xfb, 0xfd, 0xfd, 0xdc, 0x47, 0xc7, 0xb3, 0x67,
+ 0xb0, 0xca, 0x10, 0x38, 0x98, 0xb4, 0xf8, 0xda, 0x1d, 0x7a, 0x08, 0xb3,
+ 0xe3, 0xb5, 0xc0, 0x6b, 0x6e, 0xf4, 0x88, 0x65, 0xe1, 0x24, 0x07, 0x1b,
+ 0x81, 0x92, 0xcc, 0x3e, 0xf5, 0x29, 0xfd, 0x48, 0xe6, 0x8b, 0x2f, 0xca,
+ 0xf3, 0xa4, 0xee, 0x76, 0x8e, 0x41, 0x7d, 0xb3, 0x64, 0xab, 0xdb, 0x8e,
+ 0xc8, 0xb9, 0xd9, 0xbc, 0xd7, 0xf6, 0x9d, 0xf4, 0x92, 0x6b, 0x9f, 0x53,
+ 0x14, 0x8e, 0x28, 0x9b, 0x86, 0x4d, 0x73, 0x4b, 0xe2, 0x0d, 0x57, 0x79,
+ 0x55, 0xb2, 0xe7, 0x90, 0xe8, 0x11, 0xb6, 0xd2, 0x38, 0x70, 0x53, 0xb0,
+ 0xe6, 0xde, 0x67, 0x44, 0xb5, 0x21, 0xf8, 0x93, 0x59, 0xa5, 0x9b, 0x6c,
+ 0xf2, 0x41, 0x8f, 0x8c, 0x6d, 0x23, 0xf2, 0xd6, 0x63, 0x3b, 0xb5, 0xb4,
+ 0xfb, 0xce, 0x2f, 0x8e, 0xbb, 0x46, 0x80, 0x7b, 0x94, 0x77, 0xcd, 0xc5,
+ 0xe5, 0xe8, 0xfc, 0x80, 0xfa, 0xcb, 0xc1, 0x44, 0x73, 0x20, 0x8e, 0x46,
+ 0xd9, 0xdf, 0x25, 0x33, 0xa9, 0x76, 0x4f, 0x3f, 0x5d, 0xf1, 0xf4, 0x48,
+ 0x5c, 0x7c, 0x27, 0x53, 0x92, 0xbe, 0x66, 0x1d, 0xfc, 0x97, 0x3e, 0x13,
+ 0xbc, 0xa7, 0xba, 0xfa, 0xd9, 0x11, 0x46, 0x3d, 0x83, 0x34, 0xa4, 0xb0,
+ 0xb3, 0x7b, 0xf8, 0x73, 0xe7, 0xaf, 0xb9, 0x59, 0x16, 0x1f, 0xac, 0xbe,
+ 0x28, 0x14, 0x65, 0xba, 0xc0, 0xee, 0x85, 0x67, 0x7a, 0x34, 0x3c, 0x6f,
+ 0xa8, 0xc5, 0x44, 0xf5, 0xc5, 0x4b, 0xa1, 0xd5, 0x9b, 0x39, 0x0a, 0x6a,
+ 0xe4, 0xeb, 0xd2, 0x9b, 0x83, 0x67, 0xbb, 0xf6, 0xfa, 0x15, 0xb2, 0x93,
+ 0x0f, 0xd9, 0x9d, 0xdb, 0x75, 0x8a, 0xbf, 0x58, 0xe4, 0x05, 0x39, 0x21,
+ 0xdc, 0x23, 0xae, 0x81, 0xbd, 0xd6, 0x25, 0xd0, 0x55, 0x37, 0xea, 0x26,
+ 0x6d, 0x96, 0xde, 0x15, 0xf3, 0x8c, 0xf7, 0xce, 0x88, 0x62, 0x91, 0x73,
+ 0xd9, 0xaf, 0x79, 0xa1, 0x3e, 0xb7, 0x8e, 0x23, 0x4d, 0x5f, 0xfa, 0xe1,
+ 0x07, 0xbe, 0x47, 0x2c, 0x0f, 0x97, 0xc4, 0xb2, 0x6c, 0xfd, 0x15, 0x23,
+ 0x77, 0x99, 0x9b, 0x95, 0x8e, 0x30, 0x22, 0x40, 0x55, 0x46, 0x25, 0xe2,
+ 0x94, 0xaf, 0x04, 0x87, 0x27, 0x56, 0x0f, 0x8e, 0x2a, 0x7a, 0x23, 0x8c,
+ 0x47, 0xc0, 0x4e, 0xf8, 0x3f, 0x0b, 0xf2, 0xbf, 0x89, 0x3f, 0xcc, 0xf4,
+ 0xe0, 0xf0, 0xdd, 0xe5, 0xeb, 0xb3, 0x8b, 0x51, 0xb2, 0x43, 0xe9, 0xd0,
+ 0x97, 0x17, 0x27, 0x5f, 0xbf, 0xbb, 0x34, 0xff, 0xd4, 0x96, 0x5e, 0xa6,
+ 0x45, 0x6e, 0x6e, 0x27, 0x33, 0x9c, 0xac, 0x30, 0x9b, 0xe5, 0x5a, 0xeb,
+ 0xa4, 0x30, 0x2b, 0xac, 0xb9, 0x8f, 0xcb, 0x8a, 0x6b, 0x65, 0x81, 0x8e,
+ 0xe2, 0xa6, 0x9c, 0x79, 0x45, 0x75, 0xc9, 0x8f, 0x4d, 0xe8, 0xbf, 0xd2,
+ 0xd9, 0xce, 0x79, 0x27, 0x9b, 0x5b, 0x21, 0x3d, 0xc9, 0xe5, 0xeb, 0xc3,
+ 0xb7, 0xdf, 0x8e, 0x94, 0x42, 0xff, 0xfb, 0xef, 0xbf, 0xef, 0x86, 0x7c,
+ 0xfd, 0x52, 0xb8, 0x1b, 0x1b, 0xa3, 0xe3, 0xe3, 0xe4, 0xf0, 0x74, 0x74,
+ 0xb6, 0xe1, 0x48, 0x00, 0xb6, 0xf6, 0x88, 0x1c, 0xe8, 0x3a, 0x6b, 0xcc,
+ 0x5f, 0x36, 0x36, 0x4e, 0x0f, 0x2f, 0xc9, 0x38, 0x96, 0xba, 0xd4, 0x34,
+ 0xcf, 0x44, 0xe8, 0x91, 0xce, 0x6e, 0x89, 0xbf, 0xf0, 0x2a, 0x07, 0xca,
+ 0x9e, 0xc8, 0xfb, 0x80, 0x43, 0xee, 0x92, 0x7a, 0x9a, 0x0b, 0xee, 0x96,
+ 0x68, 0x56, 0x04, 0x2b, 0x47, 0x20, 0x60, 0x33, 0x24, 0x05, 0x38, 0x6c,
+ 0x24, 0xce, 0x43, 0xc6, 0xdc, 0xfb, 0xd9, 0x98, 0xcb, 0x92, 0xf7, 0x19,
+ 0xf2, 0x8a, 0x10, 0x99, 0x47, 0x7c, 0xb1, 0x62, 0x08, 0x27, 0xc4, 0x47,
+ 0x9b, 0xbc, 0x1b, 0x1d, 0x7e, 0x73, 0x4c, 0xcf, 0x7e, 0x93, 0x35, 0x6e,
+ 0x66, 0xe1, 0x5e, 0xc3, 0x57, 0xde, 0x66, 0x4d, 0x3d, 0x49, 0x17, 0xd9,
+ 0x26, 0xf5, 0x69, 0x3c, 0x90, 0xea, 0x0f, 0xae, 0x71, 0x36, 0x1d, 0x5c,
+ 0xd1, 0x8a, 0x42, 0x9e, 0x47, 0x79, 0x09, 0xbf, 0xdd, 0x8b, 0xe3, 0xc3,
+ 0x97, 0x6f, 0x8e, 0xb5, 0xb2, 0x3d, 0x5f, 0xf3, 0xa6, 0xd1, 0x9b, 0x72,
+ 0x9e, 0x79, 0xf1, 0x15, 0x52, 0x25, 0x96, 0xa6, 0x0d, 0xf3, 0x1b, 0x33,
+ 0xa7, 0x2b, 0x3e, 0xe7, 0x6a, 0x59, 0xe0, 0xd9, 0xe1, 0x55, 0xbe, 0xc3,
+ 0xad, 0xeb, 0xf7, 0x52, 0x3b, 0x27, 0xc2, 0x70, 0xa3, 0xea, 0x35, 0xfb,
+ 0x3f, 0xe0, 0x37, 0xf9, 0x7c, 0x77, 0x77, 0x77, 0xcd, 0x38, 0x60, 0x7d,
+ 0xc8, 0x25, 0x6d, 0x86, 0x72, 0x40, 0x8f, 0xef, 0xb8, 0xf6, 0x5d, 0x8f,
+ 0x69, 0xbb, 0x61, 0xdd, 0xae, 0xc8, 0x7c, 0xc7, 0xd5, 0x9e, 0x37, 0x59,
+ 0xbc, 0xcb, 0x93, 0xb2, 0x74, 0xf5, 0x94, 0xfd, 0xc9, 0x41, 0xd1, 0xf1,
+ 0xbc, 0x51, 0xaa, 0x3f, 0xbc, 0xc1, 0x1d, 0x37, 0x06, 0x13, 0xe8, 0xcd,
+ 0xaa, 0xbb, 0x6e, 0x93, 0xf4, 0x1b, 0x00, 0x8b, 0x26, 0xcd, 0xb0, 0xac,
+ 0xae, 0x77, 0xe6, 0x07, 0xd0, 0x80, 0xcc, 0x43, 0xaf, 0x08, 0x5e, 0x9d,
+ 0x18, 0x4d, 0xda, 0x32, 0x97, 0xd4, 0x34, 0xb1, 0xa5, 0xb9, 0xfa, 0x1e,
+ 0xd0, 0xaf, 0x5f, 0x30, 0x0b, 0xcc, 0x3a, 0x75, 0xa5, 0x23, 0xd7, 0x0a,
+ 0x9c, 0x91, 0x8f, 0xd0, 0xfe, 0x83, 0x77, 0x72, 0x68, 0x64, 0x81, 0xf9,
+ 0x0a, 0xf1, 0x9f, 0x61, 0x8b, 0x98, 0xbf, 0x56, 0x04, 0xb9, 0x69, 0x3e,
+ 0x41, 0x4c, 0x4b, 0xed, 0x5b, 0x4e, 0x55, 0x25, 0xfc, 0xc7, 0xc2, 0x68,
+ 0x5a, 0xc6, 0x80, 0x4a, 0x99, 0xfd, 0x62, 0x44, 0xd5, 0x37, 0x48, 0x88,
+ 0x5c, 0xcb, 0xc4, 0x01, 0x47, 0x4a, 0x0d, 0x77, 0xbf, 0x39, 0x18, 0x60,
+ 0xff, 0xd4, 0x76, 0xb7, 0x3c, 0xe0, 0xe3, 0xde, 0xa0, 0x78, 0xf6, 0x0b,
+ 0xb9, 0xd5, 0xbd, 0xbd, 0x33, 0x32, 0xbd, 0x08, 0xbe, 0xb5, 0x74, 0xd5,
+ 0x7b, 0x6b, 0xfe, 0x9c, 0x5f, 0x64, 0xc5, 0xac, 0xc6, 0x0e, 0x20, 0xc6,
+ 0x0f, 0xfe, 0xc6, 0xd1, 0xb9, 0xfc, 0x8d, 0xb0, 0x98, 0xf9, 0x47, 0x1a,
+ 0x3c, 0xdd, 0x08, 0x49, 0xb2, 0x45, 0x57, 0x86, 0x6a, 0xc5, 0x80, 0x76,
+ 0xc2, 0xba, 0x45, 0x05, 0x25, 0xdf, 0x3a, 0x59, 0xd3, 0xc3, 0x03, 0x33,
+ 0x35, 0x74, 0x03, 0xfd, 0xef, 0x9d, 0x61, 0x5d, 0xdf, 0xec, 0xe4, 0xd3,
+ 0xf7, 0x55, 0x9d, 0x26, 0x3f, 0x6d, 0x74, 0x32, 0x79, 0xbb, 0x83, 0xf8,
+ 0xdf, 0x98, 0xc1, 0x5f, 0x34, 0x53, 0xab, 0x47, 0xf1, 0x7b, 0x8c, 0x60,
+ 0x30, 0xa0, 0x56, 0xf5, 0x4b, 0xef, 0xcd, 0x03, 0xef, 0x2d, 0xc5, 0xf4,
+ 0xaf, 0x18, 0x5d, 0x44, 0x14, 0x9a, 0x41, 0x32, 0xf3, 0xa8, 0x91, 0x2d,
+ 0xf1, 0x8d, 0xae, 0x85, 0x53, 0x7e, 0xdc, 0xdf, 0xdd, 0xdd, 0x3b, 0xd8,
+ 0xfb, 0xfc, 0xd9, 0xee, 0xc1, 0xde, 0xde, 0xde, 0xfe, 0xc1, 0xde, 0xc1,
+ 0xc1, 0xfe, 0xee, 0xcf, 0x3b, 0xbd, 0x55, 0x53, 0xf7, 0xe6, 0xeb, 0x15,
+ 0x0d, 0x9a, 0x51, 0xf7, 0x18, 0x8d, 0xf9, 0x93, 0x1d, 0x3d, 0x46, 0x35,
+ 0xed, 0x25, 0xf5, 0x7c, 0x4c, 0xc8, 0x3d, 0x3e, 0x9c, 0xfe, 0x60, 0x6a,
+ 0xa3, 0x78, 0x67, 0xde, 0x80, 0x5e, 0x9e, 0x7d, 0xff, 0xf6, 0xf4, 0xec,
+ 0xf0, 0x65, 0x72, 0x79, 0x96, 0x1c, 0xc2, 0x4d, 0x18, 0x91, 0x93, 0xa0,
+ 0x26, 0x25, 0x44, 0x3e, 0x97, 0x94, 0xf1, 0x4a, 0xab, 0x89, 0x4f, 0xcb,
+ 0x42, 0x67, 0xd1, 0x89, 0x6e, 0x3f, 0x4b, 0x98, 0x81, 0xd4, 0x12, 0xca,
+ 0xc2, 0xdf, 0x7b, 0x23, 0x3c, 0xe4, 0xcb, 0x7d, 0x06, 0x72, 0x38, 0x4b,
+ 0x1f, 0xdd, 0xd1, 0x93, 0x0f, 0xe4, 0x50, 0xa2, 0xb1, 0x2f, 0x81, 0x40,
+ 0xa8, 0xbc, 0x4b, 0xb6, 0x18, 0xe0, 0xe5, 0xca, 0x81, 0x71, 0xa5, 0xb9,
+ 0x0e, 0x2a, 0xce, 0xd6, 0x6c, 0x12, 0x8c, 0x0d, 0xd4, 0x1d, 0xd2, 0x61,
+ 0xb7, 0x83, 0x01, 0x9e, 0xad, 0x1c, 0x92, 0xb9, 0xcc, 0xb3, 0x4f, 0x18,
+ 0x75, 0x5b, 0xf6, 0x32, 0xef, 0xa5, 0x1b, 0x1d, 0xd8, 0xbd, 0xd4, 0x77,
+ 0x91, 0x57, 0xda, 0x65, 0xe0, 0x20, 0x23, 0x9f, 0xa3, 0xef, 0xa8, 0x48,
+ 0x76, 0x9f, 0xa0, 0xdf, 0xf8, 0xf7, 0xf8, 0x8e, 0xcd, 0x76, 0xe6, 0x0e,
+ 0xbc, 0x1b, 0x9d, 0xbc, 0xfd, 0x06, 0x51, 0xf4, 0xef, 0xcf, 0x2e, 0x5e,
+ 0x8e, 0x4c, 0xb3, 0x46, 0x5e, 0xa1, 0xf1, 0xcb, 0x92, 0x24, 0xa1, 0xf4,
+ 0x8a, 0xcf, 0x25, 0x7d, 0xfa, 0x2f, 0xbc, 0x9d, 0xfa, 0x7e, 0x55, 0x83,
+ 0xb9, 0x6f, 0x1f, 0x51, 0x39, 0xab, 0xf8, 0xad, 0xe1, 0xed, 0xc6, 0xaf,
+ 0xe6, 0xe9, 0xe4, 0x86, 0x0c, 0x7a, 0xde, 0xac, 0x80, 0x6a, 0xef, 0x50,
+ 0x2e, 0xd1, 0x0e, 0xd9, 0x69, 0x3b, 0x4d, 0x89, 0xed, 0x88, 0x56, 0xca,
+ 0xca, 0xe7, 0xe1, 0xf7, 0xbc, 0x39, 0x66, 0xaf, 0x5f, 0xcd, 0xd2, 0x6b,
+ 0x7c, 0x30, 0x3c, 0x06, 0xde, 0xc7, 0xe4, 0xf3, 0x0f, 0xfd, 0x24, 0x5d,
+ 0x1b, 0x68, 0xef, 0x04, 0x1b, 0x00, 0xf9, 0x5f, 0xa8, 0xd1, 0x25, 0x41,
+ 0x2a, 0xd6, 0x1f, 0x51, 0x30, 0x90, 0x10, 0x61, 0x04, 0x45, 0xed, 0x16,
+ 0x5b, 0x42, 0x49, 0x5c, 0x66, 0x79, 0x37, 0xea, 0xb7, 0x43, 0x91, 0x4b,
+ 0xb5, 0x12, 0xb4, 0xe4, 0xe9, 0xe4, 0xb5, 0x83, 0xb5, 0xbb, 0xda, 0xd3,
+ 0x3c, 0xe5, 0xd4, 0x19, 0x42, 0x79, 0x72, 0x5a, 0x86, 0x80, 0x0c, 0x69,
+ 0xf4, 0x3d, 0x2a, 0x9e, 0x40, 0x48, 0xa7, 0x1e, 0xae, 0x38, 0x38, 0xd9,
+ 0x94, 0x94, 0xce, 0x45, 0xd7, 0x8d, 0xb2, 0x5f, 0x4c, 0x53, 0x2a, 0xc3,
+ 0xc1, 0x70, 0x07, 0xe1, 0x79, 0x31, 0xd6, 0x17, 0x27, 0xbc, 0xf4, 0x14,
+ 0x2f, 0xc5, 0xad, 0xe4, 0x35, 0xb3, 0xe5, 0xd8, 0xf2, 0x66, 0x74, 0x79,
+ 0xd1, 0xd7, 0xd9, 0x4f, 0xca, 0xf5, 0x57, 0xf4, 0x9e, 0x74, 0x9e, 0x4e,
+ 0xba, 0xe3, 0x8c, 0x3e, 0x6e, 0x04, 0x38, 0xef, 0x1c, 0x8d, 0xaf, 0xbb,
+ 0x32, 0xb5, 0xad, 0x69, 0x53, 0x5a, 0x66, 0x6e, 0x8e, 0x24, 0xb3, 0x73,
+ 0xda, 0xda, 0x19, 0xdc, 0x00, 0x6c, 0xcd, 0xde, 0x02, 0x16, 0x9f, 0xef,
+ 0x0a, 0xee, 0xa5, 0xae, 0x26, 0x89, 0x37, 0x6d, 0x8c, 0x32, 0x75, 0xef,
+ 0x99, 0x35, 0xa2, 0xa6, 0x18, 0x59, 0x4e, 0xe6, 0x96, 0xbd, 0x42, 0xb8,
+ 0x86, 0xb7, 0x2b, 0xce, 0x22, 0xfc, 0xf3, 0xcb, 0xc2, 0x58, 0x2a, 0xa9,
+ 0x20, 0x80, 0x58, 0x96, 0x5c, 0x43, 0xac, 0xf3, 0x73, 0xd8, 0x92, 0x2d,
+ 0x19, 0xc2, 0x01, 0xd4, 0x2f, 0x18, 0xe4, 0x67, 0x9b, 0x6b, 0x89, 0x0e,
+ 0x2f, 0x4b, 0x85, 0x6f, 0x1d, 0x9d, 0x3b, 0x9a, 0xad, 0xbb, 0x05, 0xc1,
+ 0x96, 0x09, 0x0f, 0xe2, 0x95, 0xb0, 0x54, 0x5e, 0x67, 0x10, 0xac, 0x67,
+ 0x9f, 0x88, 0xe5, 0x58, 0xc6, 0xe6, 0x6c, 0x42, 0xab, 0xd5, 0xcb, 0x78,
+ 0xa9, 0x35, 0xfc, 0x1c, 0xb2, 0x90, 0x66, 0x9b, 0x08, 0xd0, 0xc8, 0xe6,
+ 0x92, 0x4c, 0x0e, 0x56, 0x03, 0xd5, 0x92, 0xb4, 0x75, 0x53, 0x49, 0x63,
+ 0x32, 0xb7, 0x30, 0x13, 0x90, 0xdb, 0x22, 0xe7, 0x88, 0xd3, 0xa6, 0x6c,
+ 0x6f, 0x42, 0x09, 0xf6, 0x3e, 0x8c, 0x9c, 0x31, 0x3a, 0x17, 0x2d, 0x8c,
+ 0x72, 0x6b, 0x94, 0xcb, 0xb1, 0x5b, 0x58, 0xda, 0x23, 0x40, 0xf7, 0x52,
+ 0x93, 0x47, 0x61, 0x65, 0x3f, 0xad, 0x71, 0xe1, 0xcd, 0x9e, 0x20, 0x71,
+ 0x8d, 0x40, 0x41, 0xce, 0xdc, 0xb2, 0xb6, 0x3b, 0xc7, 0xcc, 0xd6, 0x07,
+ 0xb9, 0x10, 0x37, 0x90, 0x97, 0x10, 0x8a, 0x1b, 0x91, 0xbc, 0xab, 0xe5,
+ 0xcd, 0xfd, 0xa2, 0x26, 0xec, 0x92, 0x9a, 0x7e, 0xb3, 0x3b, 0x96, 0x06,
+ 0x79, 0xb1, 0x5e, 0xe8, 0x48, 0x27, 0x1e, 0xf4, 0x61, 0x8c, 0x15, 0x54,
+ 0xe7, 0x35, 0x47, 0x61, 0x1c, 0x68, 0x95, 0x51, 0x1f, 0x20, 0x08, 0xe9,
+ 0xb0, 0xfd, 0x02, 0xad, 0xe2, 0xe7, 0xda, 0xe0, 0xc0, 0x33, 0x58, 0xe5,
+ 0x20, 0xf9, 0x3a, 0xad, 0xf3, 0x49, 0x5f, 0x8a, 0x71, 0x48, 0x71, 0x0e,
+ 0x7a, 0xc3, 0x16, 0xec, 0x48, 0xb6, 0x98, 0xe7, 0x79, 0x7b, 0x98, 0x7c,
+ 0xaf, 0xd5, 0x55, 0x8c, 0x11, 0xc9, 0x45, 0x23, 0xf2, 0x09, 0x0a, 0xe9,
+ 0x08, 0xe4, 0x84, 0xcf, 0x9e, 0xec, 0x4f, 0xf1, 0xe5, 0x83, 0x9d, 0x1d,
+ 0x1f, 0x71, 0xdc, 0x93, 0x58, 0xd5, 0xb4, 0xfe, 0x60, 0x03, 0x67, 0x58,
+ 0x2b, 0x11, 0x45, 0xc8, 0xd6, 0x64, 0x5d, 0x9a, 0x8d, 0x7c, 0x81, 0xd7,
+ 0x20, 0xac, 0x56, 0x28, 0xc8, 0xd6, 0x03, 0xb2, 0xb1, 0xbb, 0xb6, 0xb6,
+ 0xf8, 0x36, 0x5b, 0x91, 0x0e, 0x3b, 0xd3, 0x8a, 0xa8, 0xc1, 0xc0, 0x4c,
+ 0x18, 0x4d, 0x8d, 0x08, 0xd0, 0xb3, 0xcb, 0xe3, 0x3f, 0x24, 0x87, 0xdd,
+ 0x38, 0x3b, 0xdd, 0x4c, 0x2a, 0x86, 0xa5, 0x7c, 0xb1, 0xdd, 0x60, 0xe8,
+ 0x3b, 0xc3, 0x58, 0x99, 0x8d, 0x35, 0xc5, 0xf2, 0x6f, 0x48, 0x66, 0xb6,
+ 0x73, 0x2a, 0xd7, 0xa5, 0x64, 0xe4, 0xa0, 0xbc, 0xa3, 0xad, 0x03, 0x88,
+ 0x08, 0xc4, 0xad, 0xab, 0x7e, 0xc3, 0xc5, 0x04, 0xf2, 0x94, 0x33, 0xa3,
+ 0x3e, 0x99, 0x83, 0x8d, 0xda, 0x8b, 0x10, 0xa0, 0xc8, 0x83, 0x90, 0xe2,
+ 0x96, 0x84, 0x52, 0x07, 0xf2, 0xbc, 0x91, 0x62, 0x00, 0x52, 0x88, 0xcd,
+ 0x2b, 0xa4, 0x63, 0x5b, 0xa0, 0xdd, 0xff, 0x9e, 0x8e, 0xdc, 0x7b, 0xbd,
+ 0x58, 0xe4, 0x0a, 0xe4, 0xbe, 0x5c, 0xb1, 0x1d, 0xd4, 0xde, 0xb2, 0x7a,
+ 0xec, 0xf8, 0x36, 0x3b, 0x57, 0x10, 0x2b, 0x16, 0x82, 0xae, 0x00, 0x40,
+ 0x4c, 0x10, 0x60, 0xc7, 0x9d, 0xaa, 0x52, 0xd3, 0xbf, 0x98, 0x40, 0x77,
+ 0x4a, 0x77, 0x04, 0x17, 0xef, 0x16, 0xb2, 0x53, 0xce, 0x76, 0x30, 0xad,
+ 0xb6, 0x53, 0xbd, 0x40, 0x90, 0x8c, 0x59, 0xa5, 0x5e, 0x8c, 0xce, 0x8e,
+ 0xbe, 0x1d, 0xb5, 0x52, 0xcd, 0x4c, 0x6b, 0xf8, 0x90, 0x96, 0xac, 0xea,
+ 0x6c, 0x68, 0x23, 0x0d, 0x4f, 0x9a, 0x8e, 0x78, 0xb2, 0x34, 0xa2, 0x1e,
+ 0xbe, 0xf9, 0x95, 0x22, 0xf4, 0xb5, 0x59, 0xaa, 0xec, 0x32, 0xc9, 0x3c,
+ 0x16, 0xe4, 0xa2, 0xdc, 0xf0, 0x6e, 0x3e, 0xde, 0x3f, 0x65, 0xad, 0x32,
+ 0x91, 0x59, 0x72, 0xb9, 0x9e, 0xc6, 0x38, 0x63, 0x92, 0x2b, 0x62, 0xb0,
+ 0xc4, 0x2a, 0x52, 0xff, 0x70, 0x02, 0x79, 0x67, 0xce, 0xb1, 0xb9, 0x37,
+ 0xdc, 0xee, 0xa6, 0x3b, 0x68, 0xd5, 0x38, 0x73, 0x2e, 0x14, 0x6a, 0xdd,
+ 0xeb, 0xae, 0x74, 0x68, 0x21, 0x55, 0x6b, 0x48, 0xb7, 0xd2, 0x5e, 0xd3,
+ 0xea, 0x40, 0xb3, 0x2d, 0xac, 0x9e, 0xa5, 0x8b, 0xee, 0xa7, 0x21, 0x40,
+ 0xa6, 0x4c, 0x93, 0xf9, 0x9d, 0x24, 0x25, 0x89, 0x6e, 0x40, 0x9c, 0x30,
+ 0xf0, 0x4a, 0x7c, 0xfe, 0x79, 0xa0, 0x0b, 0x7e, 0xb2, 0x4f, 0x1f, 0x98,
+ 0x5f, 0x7b, 0xde, 0x8f, 0x19, 0x61, 0x52, 0xc8, 0xdb, 0x00, 0x3d, 0xd4,
+ 0xba, 0x40, 0x22, 0x16, 0x86, 0x57, 0x25, 0x8e, 0xbf, 0x68, 0xc3, 0x38,
+ 0xc1, 0x2e, 0xeb, 0x3b, 0xb9, 0xbf, 0xc1, 0xe6, 0x35, 0x77, 0x34, 0xad,
+ 0x19, 0xdb, 0xb4, 0xc2, 0x30, 0x53, 0x31, 0xd9, 0xed, 0xad, 0xa7, 0x35,
+ 0x1b, 0xcd, 0x7d, 0x48, 0x97, 0x2a, 0x19, 0x01, 0xa3, 0x52, 0x1a, 0xa6,
+ 0x49, 0x96, 0xce, 0xd8, 0xdd, 0xd1, 0xd9, 0x47, 0xb6, 0x14, 0x9b, 0x93,
+ 0x11, 0xef, 0x56, 0x77, 0xe7, 0xdd, 0xaf, 0xe9, 0xce, 0x61, 0xb2, 0x36,
+ 0xc5, 0x0f, 0x13, 0x24, 0x69, 0x7e, 0x4a, 0x00, 0x5e, 0x62, 0x57, 0xab,
+ 0xde, 0xc3, 0x73, 0x84, 0x5a, 0x48, 0xe3, 0x36, 0x39, 0x70, 0xe8, 0x98,
+ 0x28, 0x4a, 0x7e, 0x1a, 0x46, 0x0d, 0xb5, 0xdf, 0xd7, 0xae, 0x3c, 0xb4,
+ 0xbb, 0x27, 0x7e, 0x5a, 0x5c, 0x4b, 0x33, 0xc1, 0x86, 0x97, 0x84, 0xb7,
+ 0xbd, 0xe1, 0xae, 0xaf, 0x5f, 0xd9, 0x64, 0xda, 0x0a, 0x89, 0x71, 0x0d,
+ 0x12, 0xe9, 0x9c, 0x8a, 0x42, 0x23, 0x81, 0x93, 0xb8, 0xf3, 0x9a, 0xfc,
+ 0x6c, 0x8f, 0x59, 0x35, 0xcc, 0x49, 0x12, 0xd6, 0x4a, 0x4a, 0xae, 0xce,
+ 0xe6, 0x0b, 0x64, 0x4b, 0xc5, 0xca, 0xfb, 0xe2, 0x1c, 0x3d, 0x76, 0x47,
+ 0xea, 0x89, 0x5d, 0x6e, 0xe9, 0x23, 0xe7, 0xa3, 0x48, 0xf1, 0x3b, 0x4e,
+ 0x09, 0x81, 0xf2, 0x99, 0x65, 0xdc, 0x52, 0xb3, 0x32, 0x41, 0xfa, 0xa8,
+ 0x5d, 0x79, 0x80, 0xf6, 0x33, 0x2e, 0x5b, 0x5b, 0xa9, 0x55, 0xd8, 0xe6,
+ 0x05, 0xc9, 0x4c, 0xad, 0x12, 0xe6, 0x3b, 0x22, 0x69, 0xc0, 0x5c, 0x92,
+ 0xa1, 0x94, 0x1d, 0x9d, 0x6b, 0x76, 0x74, 0xd3, 0xd6, 0x52, 0x8e, 0x66,
+ 0x17, 0xaa, 0xb3, 0xea, 0x99, 0x69, 0x77, 0x96, 0x9b, 0x0e, 0x6d, 0x82,
+ 0xc6, 0x49, 0xab, 0x74, 0x89, 0x2c, 0xd4, 0x2d, 0x6c, 0x09, 0x55, 0xda,
+ 0x25, 0xb0, 0x42, 0x1e, 0xd7, 0xae, 0xd0, 0xe5, 0x6b, 0xa0, 0x9f, 0x0c,
+ 0xfe, 0x87, 0xcc, 0x0c, 0xa9, 0xe7, 0x04, 0x33, 0x03, 0xe3, 0xd6, 0xc2,
+ 0x63, 0x5d, 0x11, 0x64, 0x2b, 0x04, 0x3e, 0x61, 0x48, 0x75, 0x1c, 0xb6,
+ 0x10, 0x83, 0xa6, 0xe9, 0x41, 0xfe, 0xe9, 0xd8, 0xf3, 0xac, 0x5b, 0x99,
+ 0x4c, 0x44, 0x05, 0x37, 0xb7, 0xe1, 0x6a, 0xfa, 0x02, 0x58, 0x18, 0x74,
+ 0xd8, 0x5e, 0x64, 0x5f, 0x13, 0xb5, 0xf6, 0x51, 0x99, 0xfa, 0xd3, 0xaa,
+ 0xb6, 0xdc, 0x86, 0xf6, 0x94, 0x37, 0xbf, 0x75, 0x65, 0x70, 0xc1, 0x83,
+ 0x81, 0x79, 0x61, 0xf0, 0x4e, 0xdc, 0x19, 0x5f, 0xf1, 0x17, 0x86, 0x24,
+ 0xcf, 0xe4, 0x0b, 0xe7, 0x28, 0x08, 0xa9, 0x0f, 0x1c, 0xc8, 0x4b, 0x54,
+ 0x25, 0xa1, 0xe7, 0x79, 0x72, 0xda, 0x33, 0xc3, 0xef, 0x68, 0x25, 0x85,
+ 0x4e, 0x8d, 0x65, 0x1c, 0x34, 0xfe, 0xab, 0x7b, 0x5f, 0x8c, 0xc8, 0x3b,
+ 0x6a, 0x66, 0xc8, 0x79, 0x1b, 0xe2, 0x83, 0xd9, 0xdf, 0xdb, 0xe1, 0x4e,
+ 0x69, 0x79, 0x64, 0xe8, 0x77, 0xb2, 0x35, 0x1d, 0x76, 0x04, 0x07, 0x02,
+ 0x65, 0xcb, 0xdc, 0x04, 0x50, 0xaa, 0x09, 0x61, 0x7e, 0xe6, 0x04, 0x94,
+ 0x50, 0x9e, 0x75, 0xba, 0xa2, 0xcc, 0x9d, 0xcb, 0x04, 0x99, 0xa5, 0xac,
+ 0xd3, 0x86, 0x5b, 0xa8, 0xbe, 0x55, 0xfd, 0xcc, 0x96, 0x1a, 0x7c, 0xf4,
+ 0xad, 0xa7, 0x8c, 0x22, 0x2b, 0x29, 0x0a, 0x19, 0xdf, 0xda, 0x5c, 0xec,
+ 0xbc, 0x56, 0x84, 0x85, 0xd9, 0xd9, 0x17, 0x87, 0x6f, 0xbf, 0x39, 0x86,
+ 0x46, 0x00, 0x19, 0x4f, 0x07, 0x35, 0xa7, 0x5d, 0x3f, 0x5d, 0x4e, 0x60,
+ 0x12, 0x99, 0x99, 0x03, 0x5c, 0xae, 0x1e, 0x4a, 0xaa, 0x3e, 0xe7, 0xc1,
+ 0xa4, 0xb2, 0x89, 0xb1, 0xec, 0x02, 0x82, 0xdb, 0x48, 0xd4, 0xb3, 0x0a,
+ 0x4d, 0x02, 0x90, 0xe9, 0x8a, 0xdd, 0xb0, 0xf5, 0x72, 0xbc, 0x40, 0x29,
+ 0x20, 0xd8, 0x69, 0x4e, 0xdc, 0xa8, 0xbf, 0x65, 0xd8, 0x3e, 0x93, 0x1b,
+ 0x9a, 0x22, 0x65, 0x6d, 0xfb, 0x0a, 0xb6, 0xfd, 0xd0, 0xf7, 0xae, 0x31,
+ 0x2f, 0xcb, 0xde, 0xee, 0xae, 0xa3, 0xcc, 0x4b, 0x6d, 0x83, 0x81, 0xd4,
+ 0xac, 0x92, 0xdd, 0xc1, 0xb3, 0x67, 0xab, 0x04, 0xa2, 0x6d, 0x14, 0x54,
+ 0x1c, 0x4f, 0x1e, 0xdc, 0xe6, 0x80, 0x1e, 0x5d, 0xd5, 0x66, 0xc4, 0xb2,
+ 0x41, 0x89, 0x43, 0x01, 0x20, 0xd6, 0x56, 0x7b, 0x11, 0x4f, 0x0f, 0x47,
+ 0x6d, 0x10, 0x0f, 0xb3, 0xa5, 0xf1, 0x30, 0x95, 0x1b, 0x89, 0xb5, 0x43,
+ 0x40, 0x5d, 0xa3, 0x4e, 0xa1, 0x05, 0x61, 0x10, 0x73, 0x1b, 0xfa, 0x7d,
+ 0xd0, 0xc4, 0x78, 0x86, 0xfc, 0x8a, 0x29, 0xba, 0x0a, 0x47, 0xa3, 0xaa,
+ 0xc1, 0xbb, 0x73, 0xf2, 0x03, 0x9e, 0xbc, 0xfd, 0x86, 0xdd, 0x22, 0xc6,
+ 0xc6, 0x87, 0x4f, 0x7d, 0xa7, 0x63, 0xf1, 0xbf, 0x93, 0x0a, 0xee, 0x54,
+ 0xa0, 0x8c, 0x30, 0x1f, 0x5c, 0x2e, 0x21, 0x2f, 0xa4, 0x6c, 0xba, 0x5d,
+ 0xfd, 0x15, 0x3e, 0xcb, 0xcb, 0x64, 0xe0, 0x29, 0x29, 0x42, 0x7c, 0x47,
+ 0x1a, 0xca, 0xfc, 0x4e, 0x2d, 0x24, 0xf9, 0x02, 0x5a, 0xd7, 0x08, 0x8d,
+ 0x6d, 0x96, 0xed, 0x5d, 0x36, 0xd3, 0xb1, 0x83, 0x02, 0x1d, 0x25, 0xf2,
+ 0x49, 0xfe, 0x0c, 0xce, 0x78, 0x47, 0x23, 0x79, 0x58, 0x57, 0x5a, 0x2e,
+ 0xcf, 0x36, 0xeb, 0x36, 0x69, 0x58, 0x7d, 0xf5, 0x01, 0x75, 0xdd, 0x91,
+ 0x5c, 0xcf, 0xd0, 0x97, 0xee, 0xb4, 0xda, 0x60, 0xf3, 0x2f, 0xcb, 0x7f,
+ 0xbe, 0x9f, 0x6b, 0x7a, 0x48, 0x07, 0x95, 0x6e, 0xac, 0x62, 0xea, 0x7c,
+ 0x1b, 0xd2, 0xe3, 0x68, 0x40, 0xe4, 0x92, 0xdf, 0xe7, 0x4f, 0xa7, 0xf1,
+ 0xcf, 0xf1, 0xfb, 0x3a, 0x35, 0x91, 0x03, 0x40, 0xaa, 0xad, 0x10, 0x23,
+ 0x5a, 0xea, 0x02, 0xb5, 0x69, 0x48, 0x1b, 0x87, 0xe4, 0xc8, 0xdb, 0xea,
+ 0xc9, 0x46, 0x22, 0x5c, 0x29, 0xa0, 0x4d, 0xa4, 0x3d, 0x04, 0x7e, 0x1e,
+ 0x5c, 0x62, 0x1f, 0x80, 0x27, 0x35, 0xcf, 0x2f, 0x8b, 0x22, 0x23, 0x63,
+ 0x15, 0x55, 0x4d, 0x73, 0xb6, 0x1b, 0xfa, 0xf6, 0x14, 0x55, 0x4b, 0xa9,
+ 0x33, 0x0e, 0x50, 0x83, 0xe9, 0x7c, 0x5a, 0xdf, 0x00, 0x6d, 0x68, 0x5d,
+ 0x52, 0xa1, 0x9a, 0x85, 0xcf, 0x73, 0xbb, 0xa4, 0x57, 0xb1, 0x52, 0x05,
+ 0x25, 0xbb, 0x35, 0x15, 0xed, 0x19, 0xd8, 0xd8, 0x20, 0x67, 0xfc, 0x0e,
+ 0xb9, 0xe4, 0x47, 0xe1, 0x04, 0xaa, 0x4f, 0x7d, 0xad, 0x5f, 0xbe, 0x1b,
+ 0x6c, 0x58, 0xef, 0xa6, 0xf7, 0x5c, 0x29, 0x0f, 0x3d, 0x76, 0xac, 0xcc,
+ 0x47, 0x82, 0x8c, 0x38, 0x79, 0x9e, 0x34, 0x8b, 0xee, 0xf7, 0xb6, 0x6b,
+ 0xcd, 0x37, 0x0c, 0xe0, 0x01, 0x82, 0x99, 0x86, 0xc2, 0x2d, 0x9d, 0x35,
+ 0xe3, 0x94, 0xb5, 0xf3, 0x77, 0x97, 0xc2, 0x67, 0xa6, 0x32, 0xde, 0x2f,
+ 0x68, 0xe5, 0x57, 0xae, 0x85, 0x48, 0x23, 0x45, 0x83, 0x6d, 0x61, 0x04,
+ 0xbe, 0x39, 0x13, 0x13, 0xdf, 0xc4, 0x08, 0xb9, 0x83, 0x7d, 0x9b, 0x72,
+ 0x73, 0x7e, 0x36, 0xba, 0x24, 0x9f, 0x02, 0xee, 0x3f, 0x35, 0x4e, 0xbf,
+ 0x3b, 0xbe, 0xf8, 0xfa, 0x6c, 0x74, 0x6c, 0x16, 0xe5, 0xe5, 0xf1, 0xd7,
+ 0xef, 0x48, 0x74, 0xd1, 0x16, 0x61, 0x3f, 0x34, 0xa5, 0xe3, 0x88, 0x33,
+ 0x8c, 0x8a, 0x0b, 0x23, 0x2b, 0x0f, 0x7b, 0x95, 0x95, 0x22, 0x2d, 0x2a,
+ 0x6b, 0xf5, 0x3d, 0x2e, 0x8e, 0x3b, 0xcb, 0xd8, 0x71, 0x99, 0x23, 0x79,
+ 0x81, 0x79, 0xa4, 0x24, 0xef, 0x09, 0xe5, 0x34, 0x61, 0x6b, 0xca, 0x79,
+ 0x62, 0x2e, 0xf7, 0xfa, 0xc0, 0x79, 0x38, 0x3f, 0xb2, 0x9b, 0x5a, 0x4e,
+ 0xa0, 0x2b, 0x00, 0x0a, 0x52, 0x2b, 0xec, 0xe0, 0x23, 0xab, 0x54, 0x0b,
+ 0xad, 0xd3, 0xac, 0xe4, 0xab, 0x13, 0x35, 0x2b, 0xa9, 0x6d, 0x5c, 0xe6,
+ 0x79, 0x83, 0x7b, 0x9c, 0xad, 0x0b, 0xa9, 0x9f, 0x59, 0xf3, 0x0e, 0xe7,
+ 0x62, 0xc1, 0x84, 0x5b, 0xcb, 0xbc, 0xda, 0xa9, 0x75, 0xc6, 0xb5, 0x34,
+ 0xf8, 0xea, 0x96, 0xe0, 0x38, 0xe3, 0x84, 0x85, 0x4b, 0x6e, 0x4b, 0x2c,
+ 0xe2, 0x5b, 0x8c, 0x53, 0x78, 0xf2, 0xb9, 0x00, 0xa5, 0x25, 0x55, 0xa6,
+ 0x99, 0xf7, 0x8b, 0x01, 0xf1, 0xd6, 0xf9, 0xb8, 0x5a, 0xfe, 0x5c, 0xf2,
+ 0x48, 0x41, 0xbf, 0x01, 0x6d, 0x40, 0xf2, 0xa0, 0xd0, 0xef, 0x4e, 0x59,
+ 0x1d, 0xa7, 0xa5, 0xf0, 0x01, 0xa6, 0x4c, 0x04, 0xcf, 0x9e, 0x5c, 0x5d,
+ 0xb1, 0x52, 0x55, 0x5b, 0x89, 0x36, 0xb9, 0x24, 0x24, 0x96, 0xb0, 0x02,
+ 0xe1, 0xa3, 0x25, 0x45, 0x7c, 0x80, 0x37, 0x5f, 0x78, 0xe8, 0xb9, 0x75,
+ 0xfc, 0x17, 0x07, 0xd5, 0x8b, 0xa2, 0x6c, 0x6c, 0x6c, 0xbc, 0x3c, 0xbe,
+ 0x3c, 0x3c, 0x39, 0x3d, 0x7e, 0x99, 0x9c, 0xbc, 0x7d, 0x75, 0x76, 0xf1,
+ 0xe6, 0xf0, 0x52, 0xb0, 0x19, 0x2f, 0xad, 0x7b, 0xce, 0x95, 0xfa, 0x93,
+ 0x82, 0x56, 0x9e, 0xeb, 0x0e, 0x5b, 0xd8, 0xac, 0xa2, 0x99, 0x0c, 0x44,
+ 0xfc, 0x79, 0x1a, 0xb2, 0xd6, 0x1c, 0x6c, 0x24, 0x82, 0xe9, 0x70, 0xb5,
+ 0x11, 0x49, 0x39, 0xd8, 0xb1, 0x81, 0xf8, 0xa1, 0x4e, 0xa7, 0x25, 0xf3,
+ 0x22, 0xce, 0xeb, 0xb5, 0x4d, 0xd9, 0x52, 0xb7, 0x7c, 0x31, 0xba, 0xba,
+ 0xd4, 0xd8, 0x93, 0x83, 0x93, 0x1d, 0xae, 0xb0, 0xee, 0xd5, 0xcd, 0xd0,
+ 0xa2, 0x47, 0x60, 0x84, 0xa1, 0x76, 0x3c, 0x16, 0xa7, 0xab, 0x12, 0x10,
+ 0x13, 0xbf, 0x4d, 0xcb, 0x4d, 0x84, 0x15, 0x35, 0xaa, 0x00, 0x63, 0x7a,
+ 0xf0, 0x13, 0x7f, 0x7d, 0x89, 0x1c, 0x68, 0x83, 0xa0, 0x68, 0x8d, 0x54,
+ 0xec, 0x23, 0x9e, 0xad, 0xda, 0xac, 0x94, 0x3d, 0xeb, 0xe0, 0xfe, 0xb2,
+ 0x52, 0x5b, 0x43, 0x75, 0x42, 0x98, 0xec, 0x37, 0xb5, 0x65, 0x83, 0xf7,
+ 0x46, 0x6d, 0x1a, 0x9c, 0x08, 0x7b, 0x37, 0xcd, 0xc5, 0xf6, 0x06, 0x17,
+ 0x78, 0x28, 0x94, 0x37, 0xd1, 0x42, 0x4f, 0x9d, 0xf9, 0x9f, 0xef, 0x78,
+ 0xd5, 0x47, 0x71, 0xda, 0xdc, 0xb9, 0x55, 0xb6, 0xf5, 0xc1, 0x4b, 0xf3,
+ 0xd0, 0x74, 0x39, 0x5f, 0xb4, 0x4b, 0xcb, 0xb3, 0x63, 0x4f, 0x97, 0x90,
+ 0x35, 0x37, 0x68, 0x20, 0xf0, 0x02, 0xbd, 0x92, 0x39, 0xe0, 0x71, 0x60,
+ 0x7f, 0x37, 0x1a, 0x17, 0x04, 0x9d, 0x88, 0x0d, 0xe5, 0x75, 0x6b, 0xc8,
+ 0xb6, 0xd5, 0x17, 0x4c, 0xc8, 0xc8, 0x3e, 0xdb, 0x2d, 0x3a, 0x9b, 0x3a,
+ 0xe0, 0x11, 0xe6, 0x7f, 0x4b, 0x39, 0xe8, 0x68, 0xcb, 0x4a, 0x83, 0x72,
+ 0x55, 0x84, 0x91, 0xc8, 0xd6, 0xa0, 0xfc, 0x17, 0xdb, 0xf8, 0x1e, 0x5f,
+ 0xd2, 0xeb, 0xa7, 0x1d, 0xe5, 0x5a, 0xb7, 0x07, 0x22, 0xc5, 0x8d, 0x3c,
+ 0xb9, 0xd3, 0x6a, 0x2b, 0x44, 0xec, 0x09, 0xec, 0x11, 0x79, 0x4e, 0xc1,
+ 0x80, 0x20, 0x92, 0x12, 0xd1, 0x31, 0xdd, 0xbe, 0x4b, 0xd4, 0x10, 0x29,
+ 0x3f, 0x90, 0x61, 0xaf, 0x75, 0x83, 0xbd, 0xdc, 0x3d, 0x86, 0x94, 0x09,
+ 0xdd, 0x22, 0x84, 0x5e, 0xb1, 0xa1, 0x69, 0xc6, 0xfa, 0x92, 0x82, 0x1f,
+ 0x21, 0xfd, 0xb7, 0x68, 0xae, 0xc0, 0x26, 0x89, 0xf2, 0x2f, 0x59, 0x5a,
+ 0xc3, 0xaa, 0x42, 0x06, 0x0f, 0xdf, 0x19, 0xd6, 0x27, 0xeb, 0x98, 0x03,
+ 0xbd, 0x6a, 0x8a, 0x10, 0xd1, 0xd3, 0xe4, 0x39, 0x3d, 0x4b, 0x8c, 0x4c,
+ 0x96, 0xf1, 0x07, 0x88, 0x7d, 0xdb, 0x8a, 0x46, 0x3b, 0x4c, 0x33, 0x80,
+ 0x5d, 0x0b, 0x0e, 0xf5, 0x9c, 0x1e, 0x48, 0x55, 0xcd, 0xef, 0xb9, 0xca,
+ 0x57, 0xbd, 0xc5, 0x8d, 0xf9, 0x46, 0x2f, 0xb9, 0x26, 0x43, 0x69, 0x6c,
+ 0xba, 0x1e, 0x08, 0xd0, 0x29, 0x3f, 0xfe, 0xe2, 0x22, 0xbd, 0x4a, 0xb3,
+ 0xd9, 0x9f, 0xf6, 0x77, 0x47, 0xe9, 0xf5, 0x72, 0x96, 0xfe, 0x1b, 0x5e,
+ 0x7c, 0xf1, 0xe8, 0xd1, 0xfe, 0xee, 0x67, 0x9f, 0xef, 0x06, 0xda, 0x81,
+ 0x8f, 0xb5, 0x01, 0xff, 0x0e, 0x09, 0x5d, 0x7c, 0x64, 0x38, 0xb9, 0xce,
+ 0x61, 0xd6, 0x91, 0xaa, 0x24, 0x13, 0x90, 0xb2, 0x3d, 0x09, 0x19, 0xc9,
+ 0xd9, 0xca, 0x66, 0xfb, 0xd6, 0x66, 0x53, 0xff, 0x71, 0xef, 0x80, 0xe5,
+ 0xd8, 0x35, 0xdc, 0xf0, 0x29, 0x6f, 0xd7, 0xe4, 0x79, 0x5e, 0x98, 0xeb,
+ 0xe7, 0xcb, 0xa4, 0x49, 0xaf, 0xed, 0x46, 0x45, 0x0b, 0x58, 0x0a, 0xbb,
+ 0x96, 0x0d, 0x82, 0xd5, 0x33, 0x05, 0x48, 0x9f, 0x48, 0x05, 0xba, 0x4d,
+ 0xf2, 0x83, 0xf4, 0xd8, 0x11, 0xd2, 0x43, 0x07, 0xfa, 0xb6, 0xec, 0xf8,
+ 0x60, 0xaa, 0x9d, 0x1a, 0xe2, 0xef, 0xa0, 0xfb, 0x48, 0x99, 0x3e, 0xb2,
+ 0xb7, 0xe0, 0x04, 0x7b, 0x5b, 0x8c, 0x8c, 0x3d, 0x66, 0x79, 0xab, 0x0b,
+ 0xa9, 0x43, 0x65, 0x26, 0xcf, 0xd5, 0xb5, 0xb3, 0xf7, 0xe5, 0x0b, 0x2c,
+ 0xdc, 0xde, 0x97, 0xff, 0x66, 0x7f, 0xb6, 0x2f, 0x3f, 0xdb, 0xff, 0xf2,
+ 0xdf, 0x86, 0x43, 0xf4, 0x8f, 0x56, 0x72, 0x53, 0x7f, 0xbd, 0x29, 0x44,
+ 0x42, 0xa9, 0x1c, 0x35, 0xfe, 0x17, 0xd9, 0xd8, 0x5c, 0xc1, 0x0c, 0x6b,
+ 0xd2, 0xd3, 0x2f, 0xfb, 0x13, 0xd2, 0x97, 0x30, 0xa8, 0x95, 0x2f, 0x79,
+ 0xed, 0xf3, 0x14, 0xd6, 0xb1, 0xf9, 0xb1, 0xc1, 0x0b, 0xb4, 0x23, 0xd8,
+ 0x47, 0xbc, 0xfc, 0x67, 0xda, 0x51, 0x7f, 0xde, 0x48, 0x24, 0x24, 0xb9,
+ 0xc8, 0x2a, 0xa3, 0x08, 0x53, 0x94, 0x42, 0xb7, 0x17, 0x13, 0x4e, 0x31,
+ 0x89, 0x36, 0xb5, 0x4c, 0x29, 0x1e, 0x74, 0x57, 0x79, 0xf5, 0xb8, 0xfe,
+ 0x22, 0x34, 0x26, 0xbc, 0x36, 0x1b, 0x89, 0x7d, 0x86, 0x53, 0x61, 0x8c,
+ 0x2e, 0xd0, 0xd0, 0x29, 0xc6, 0xb3, 0x7f, 0xfa, 0xe1, 0x07, 0x51, 0x7c,
+ 0xcc, 0x5f, 0xa4, 0xe7, 0x37, 0x46, 0x66, 0x4c, 0x8d, 0x18, 0x9a, 0xa3,
+ 0xc0, 0x8f, 0x94, 0x50, 0x93, 0xab, 0xf9, 0x4a, 0x46, 0xca, 0x8d, 0x98,
+ 0xa5, 0x3d, 0x1c, 0x1d, 0x9d, 0x9c, 0x00, 0xe6, 0x89, 0x49, 0x3d, 0x66,
+ 0x71, 0x83, 0x6d, 0xb4, 0x05, 0x5c, 0x86, 0xc3, 0x12, 0xfa, 0xbb, 0x94,
+ 0xd6, 0x0e, 0xcb, 0x8e, 0x8d, 0x6a, 0x1a, 0x53, 0x6b, 0x59, 0x96, 0x12,
+ 0xdb, 0x8b, 0xb5, 0x91, 0x17, 0x3d, 0x7e, 0xf0, 0x3a, 0xef, 0x49, 0xe4,
+ 0x89, 0x7f, 0xd2, 0x73, 0x4c, 0x69, 0xbc, 0x1e, 0x58, 0xb4, 0x17, 0xac,
+ 0xe2, 0xe4, 0xff, 0xc8, 0x5e, 0xec, 0xed, 0xc6, 0x9f, 0x40, 0xa8, 0x95,
+ 0x38, 0x22, 0x5f, 0xb8, 0x28, 0xde, 0xba, 0xe7, 0xf3, 0x29, 0x3f, 0x2d,
+ 0x25, 0xc8, 0x51, 0x0d, 0xee, 0x45, 0x6f, 0x4c, 0x37, 0x21, 0xfd, 0xff,
+ 0x15, 0xfd, 0x40, 0x98, 0x49, 0x9e, 0xad, 0x97, 0xe3, 0x79, 0xde, 0xea,
+ 0xf0, 0x0e, 0x0d, 0xf0, 0x4b, 0x1a, 0xf0, 0xf7, 0x99, 0xdd, 0x1d, 0x19,
+ 0xa9, 0x60, 0xac, 0xa3, 0x6d, 0x5e, 0x95, 0xe5, 0x38, 0xad, 0x36, 0x25,
+ 0x06, 0xa3, 0xfd, 0xdc, 0xdc, 0xdb, 0x7f, 0xf4, 0xf8, 0xc9, 0xe6, 0x50,
+ 0xf4, 0x29, 0x9c, 0xe6, 0xc6, 0x27, 0x25, 0xe1, 0x26, 0x2c, 0x97, 0x06,
+ 0xc3, 0xa9, 0x91, 0xc4, 0x1f, 0x8b, 0x88, 0x92, 0xb4, 0xa1, 0xcf, 0xbd,
+ 0xe0, 0xaf, 0xfd, 0x1b, 0x7d, 0xe7, 0x05, 0x3e, 0xf1, 0x6f, 0xf9, 0xf4,
+ 0x85, 0x1d, 0xe1, 0xbf, 0xd1, 0x58, 0x5e, 0xc8, 0x20, 0xd6, 0x88, 0x9e,
+ 0xe8, 0xa2, 0xea, 0xe2, 0x6d, 0x60, 0xb0, 0x80, 0x1b, 0x0c, 0xa6, 0x1c,
+ 0xaa, 0x80, 0x36, 0xe9, 0xb2, 0xeb, 0x76, 0x3e, 0x0d, 0x4c, 0x2b, 0x03,
+ 0x6a, 0x65, 0xe0, 0x04, 0x2a, 0x28, 0x3d, 0x07, 0xb4, 0x00, 0x7d, 0x49,
+ 0xaf, 0x9c, 0xc1, 0x15, 0x22, 0x57, 0x75, 0x59, 0x22, 0x62, 0x7f, 0xf4,
+ 0xcd, 0xc9, 0xa6, 0xa0, 0x64, 0xd8, 0x96, 0xeb, 0xc7, 0x9c, 0xc9, 0x16,
+ 0x0f, 0x38, 0x49, 0x17, 0x74, 0xea, 0x37, 0x94, 0xb5, 0x38, 0x25, 0xd0,
+ 0x07, 0x7d, 0x97, 0x73, 0xa1, 0xcd, 0xc7, 0xe4, 0x56, 0x98, 0x91, 0x7b,
+ 0xba, 0x62, 0xb2, 0x51, 0xaf, 0x19, 0x33, 0x1f, 0xb5, 0xa0, 0x3f, 0x10,
+ 0xa0, 0x59, 0xd8, 0x54, 0xca, 0xc1, 0x2b, 0x1b, 0xa1, 0xb4, 0xa9, 0x7b,
+ 0xf2, 0xa8, 0xf9, 0x15, 0xcb, 0x11, 0x15, 0x0d, 0xbd, 0xa1, 0x16, 0x76,
+ 0xe7, 0x1d, 0xe0, 0x4b, 0x0d, 0xa4, 0xf3, 0x8f, 0x33, 0x49, 0xc0, 0x64,
+ 0xdf, 0x06, 0x2b, 0x6e, 0x24, 0x37, 0x9f, 0xdb, 0x8a, 0x8a, 0x5f, 0x26,
+ 0x20, 0x1f, 0xe7, 0xb7, 0x24, 0x48, 0x28, 0x5e, 0x22, 0x76, 0xb0, 0xe2,
+ 0xa5, 0x0d, 0x57, 0xc5, 0x91, 0x67, 0xc4, 0x41, 0x67, 0xe4, 0xe2, 0xf6,
+ 0x59, 0x55, 0xc7, 0x77, 0xe2, 0x11, 0xa0, 0x16, 0x36, 0xbf, 0xc0, 0xe6,
+ 0x7f, 0x4e, 0xcb, 0x80, 0x5f, 0x7f, 0xb9, 0xb9, 0x61, 0x0b, 0x8a, 0x59,
+ 0xcd, 0xba, 0x13, 0xed, 0xe5, 0x8d, 0xe9, 0x8f, 0xc7, 0x63, 0x4c, 0x60,
+ 0x6d, 0x89, 0x18, 0x5a, 0x50, 0x35, 0xc4, 0x68, 0x3b, 0xb3, 0xa9, 0x94,
+ 0x63, 0xb6, 0xde, 0x64, 0x6e, 0x3c, 0x23, 0x92, 0x1b, 0xd2, 0xee, 0x36,
+ 0x09, 0x5a, 0x8a, 0xf7, 0x36, 0x2d, 0x83, 0x2e, 0x1c, 0x9b, 0x10, 0x74,
+ 0x55, 0xa6, 0x55, 0x82, 0x37, 0x24, 0xdd, 0xde, 0x69, 0xdb, 0xfe, 0xc0,
+ 0x6a, 0xef, 0x72, 0x77, 0x09, 0x8c, 0x4c, 0x5a, 0x14, 0x1c, 0x8d, 0x57,
+ 0x94, 0x19, 0x2c, 0x1f, 0x7d, 0x41, 0xd3, 0xbd, 0x37, 0xbc, 0xce, 0xaf,
+ 0x78, 0x32, 0x8c, 0x68, 0xbc, 0xce, 0x76, 0xcc, 0x3f, 0xfb, 0xe6, 0xe7,
+ 0xfb, 0xa4, 0x35, 0xd1, 0x5f, 0x1e, 0x01, 0x3c, 0xb5, 0xee, 0x80, 0xd8,
+ 0xc3, 0x41, 0x7f, 0xc9, 0xed, 0xdd, 0x2c, 0x71, 0x18, 0xe9, 0xea, 0x40,
+ 0x99, 0x6d, 0x91, 0x3b, 0xa7, 0xfa, 0xa0, 0x0f, 0x03, 0x21, 0x6b, 0x88,
+ 0xec, 0xc6, 0x25, 0x25, 0xad, 0x58, 0xb8, 0x87, 0x40, 0x1f, 0x44, 0x9b,
+ 0x26, 0xe5, 0x38, 0x17, 0x47, 0x0a, 0x25, 0xf9, 0xe0, 0x5a, 0xcd, 0x6e,
+ 0xb7, 0xfb, 0x3e, 0x36, 0xd6, 0xc8, 0xf6, 0x8f, 0x94, 0x32, 0x4f, 0xb4,
+ 0x22, 0x2e, 0xe1, 0x92, 0x3e, 0xbf, 0x25, 0x15, 0x38, 0xbd, 0x54, 0x62,
+ 0xac, 0x75, 0xde, 0x5d, 0xc6, 0x76, 0x11, 0x4b, 0x86, 0xde, 0xe5, 0x75,
+ 0xb3, 0x4d, 0x9f, 0xc9, 0x66, 0xcc, 0xa1, 0x26, 0xe5, 0x6b, 0xf5, 0xab,
+ 0x4a, 0x9e, 0x86, 0x0f, 0x6d, 0xfa, 0x02, 0xa0, 0x9c, 0x34, 0x99, 0x31,
+ 0x48, 0x91, 0x73, 0xc0, 0x42, 0xee, 0x78, 0xce, 0xe4, 0xd5, 0xd8, 0xc7,
+ 0xb3, 0x01, 0x5f, 0x9d, 0xa2, 0xba, 0x0c, 0x5e, 0x0d, 0x93, 0x53, 0x60,
+ 0xbc, 0xeb, 0x94, 0x39, 0x7a, 0xf4, 0x7a, 0xd5, 0x2d, 0x61, 0xf6, 0x0f,
+ 0x2b, 0xca, 0x1b, 0x5c, 0x5a, 0x94, 0xf8, 0x2e, 0x74, 0x5f, 0x81, 0xa2,
+ 0xd4, 0x59, 0x86, 0xac, 0x5c, 0x88, 0x32, 0xd2, 0x87, 0xd7, 0xda, 0x3e,
+ 0x07, 0xef, 0x3c, 0x7b, 0xe8, 0x90, 0xdd, 0x65, 0x77, 0xad, 0xd7, 0x08,
+ 0xc3, 0xac, 0x44, 0x4b, 0xf4, 0x64, 0xba, 0x3d, 0x09, 0x0c, 0x82, 0xcc,
+ 0xd8, 0x33, 0x42, 0xc4, 0x0b, 0x44, 0x15, 0x84, 0x28, 0xae, 0x69, 0x0d,
+ 0x5b, 0x8d, 0xaa, 0x8b, 0xd2, 0x5e, 0xea, 0xc1, 0xb8, 0x9b, 0x65, 0xd6,
+ 0x02, 0xe6, 0xb5, 0x2a, 0x2d, 0x40, 0x1c, 0x0e, 0x13, 0x21, 0x66, 0xb6,
+ 0x01, 0x36, 0xea, 0x24, 0xf5, 0x2b, 0xfd, 0x68, 0xfe, 0x42, 0x8e, 0xc3,
+ 0x71, 0x65, 0x56, 0x3d, 0xab, 0xf8, 0x5e, 0x60, 0x54, 0x8f, 0x57, 0x6a,
+ 0xf5, 0xf5, 0xe5, 0x9b, 0xd3, 0x44, 0xb9, 0x8e, 0xae, 0x9c, 0x4a, 0xa7,
+ 0x58, 0x4a, 0x0c, 0x51, 0xdc, 0x17, 0xac, 0x0c, 0xc9, 0x53, 0x7c, 0xc5,
+ 0xf1, 0xdc, 0x52, 0x1a, 0x7c, 0x42, 0x93, 0xd3, 0x3a, 0xb7, 0xde, 0x13,
+ 0xfc, 0xea, 0x06, 0x33, 0xb0, 0x6d, 0xd2, 0x14, 0x6c, 0xf6, 0x93, 0x4d,
+ 0xea, 0x2a, 0xfd, 0x62, 0x13, 0xf3, 0x89, 0x1f, 0x7b, 0xd3, 0xb7, 0x39,
+ 0x8c, 0x1c, 0x45, 0x7a, 0xe6, 0xc5, 0x57, 0xad, 0x59, 0xc2, 0xcf, 0xb5,
+ 0xa9, 0x17, 0x9c, 0xe1, 0x11, 0x1c, 0x3e, 0x7d, 0xd7, 0x6b, 0xff, 0xc5,
+ 0x51, 0x49, 0x9c, 0xb4, 0x54, 0xca, 0xd5, 0x01, 0x53, 0x27, 0xf6, 0x67,
+ 0x39, 0x52, 0x62, 0x7f, 0xc5, 0x29, 0xbe, 0x54, 0x79, 0x64, 0x41, 0x9b,
+ 0x2c, 0xe2, 0x78, 0x0b, 0xa8, 0xf8, 0x35, 0xab, 0x99, 0xb3, 0x71, 0x76,
+ 0x5b, 0xc2, 0x15, 0x00, 0xc1, 0xb3, 0x37, 0x44, 0x8a, 0xa4, 0xe3, 0xd0,
+ 0xb7, 0x0d, 0x58, 0x0b, 0xbb, 0x87, 0x09, 0xed, 0x59, 0x1c, 0xad, 0xda,
+ 0xdd, 0x3a, 0xcb, 0x31, 0x01, 0xb6, 0xc8, 0x27, 0x94, 0x64, 0x63, 0xe4,
+ 0xd7, 0xb4, 0xbc, 0x26, 0xf1, 0xd5, 0x37, 0x07, 0x8d, 0xfe, 0x04, 0x84,
+ 0x78, 0x5f, 0x3e, 0xca, 0x1d, 0xc6, 0x59, 0xe1, 0x48, 0x8b, 0xfe, 0x7b,
+ 0x05, 0xa8, 0xf4, 0x15, 0x39, 0x2d, 0x27, 0xd2, 0xb6, 0x6d, 0x9a, 0xd7,
+ 0xc3, 0xb4, 0x6f, 0x7f, 0xe1, 0x7f, 0x4b, 0x27, 0x27, 0x95, 0x96, 0xb9,
+ 0xa4, 0xae, 0x54, 0x1c, 0x9e, 0xdd, 0xd9, 0x72, 0x62, 0xf0, 0x42, 0x11,
+ 0x17, 0x3e, 0x5f, 0x5e, 0x33, 0xc9, 0xdb, 0xdb, 0xfc, 0x6a, 0x93, 0x51,
+ 0xfd, 0x9b, 0xcf, 0x37, 0x21, 0xc1, 0x48, 0x2e, 0xcd, 0xc7, 0x19, 0xb2,
+ 0xcb, 0xe4, 0x86, 0xda, 0xe4, 0xab, 0x71, 0xc0, 0x0a, 0x84, 0x90, 0x53,
+ 0xba, 0x03, 0x82, 0xbb, 0xd9, 0xd9, 0x7a, 0x3e, 0xdc, 0x11, 0xb6, 0xbc,
+ 0x2b, 0xf4, 0x4b, 0xa4, 0xd5, 0xe3, 0x86, 0xa1, 0x2d, 0x72, 0xf3, 0x42,
+ 0x27, 0x03, 0x15, 0x0a, 0xb1, 0x03, 0x89, 0x2f, 0x72, 0x59, 0x2c, 0x28,
+ 0xf9, 0x7d, 0xd2, 0xc0, 0x25, 0xc2, 0x67, 0x69, 0x98, 0xbc, 0x2b, 0xe0,
+ 0x73, 0xbb, 0xc9, 0xc8, 0xa2, 0xcd, 0xab, 0xc9, 0x72, 0x4e, 0xfe, 0x84,
+ 0x09, 0x79, 0xb1, 0x70, 0xfb, 0xb0, 0x8e, 0xd0, 0x0a, 0xa8, 0xfb, 0x1d,
+ 0x66, 0x0f, 0x06, 0xbb, 0xb6, 0xe5, 0xbb, 0x00, 0x8f, 0x10, 0x64, 0x4a,
+ 0x5c, 0xd7, 0x50, 0x0d, 0x2c, 0x25, 0x8a, 0x08, 0x20, 0x8a, 0xe1, 0x1d,
+ 0xbf, 0x3a, 0xbe, 0xb8, 0x38, 0xbe, 0xa0, 0xf9, 0x3e, 0xec, 0xd4, 0x6d,
+ 0x53, 0xc2, 0x6c, 0x17, 0x14, 0x54, 0xa0, 0xae, 0xef, 0x4e, 0xd1, 0x3c,
+ 0x22, 0x12, 0x85, 0x42, 0x8f, 0x0a, 0xf3, 0x81, 0x49, 0x80, 0xb8, 0x30,
+ 0x86, 0xef, 0x03, 0x04, 0x50, 0xdb, 0x3a, 0xf8, 0x01, 0x5c, 0x82, 0x97,
+ 0xb0, 0xa5, 0x60, 0xb8, 0x16, 0x2a, 0x29, 0x95, 0xb0, 0xd4, 0x94, 0xfb,
+ 0x9b, 0xac, 0xa5, 0xa3, 0x0e, 0x05, 0x5b, 0x9b, 0x49, 0xf8, 0x7b, 0x66,
+ 0x9d, 0x08, 0x18, 0xf2, 0x15, 0x9d, 0x51, 0x32, 0x9c, 0x30, 0x19, 0x75,
+ 0xb3, 0x5c, 0xe4, 0x53, 0xeb, 0x92, 0x35, 0x3f, 0x37, 0x3a, 0x60, 0xc2,
+ 0xa7, 0xbc, 0x56, 0x74, 0x0a, 0xe2, 0x8f, 0xea, 0x31, 0xf0, 0x5d, 0x62,
+ 0x9d, 0xaa, 0xe6, 0x09, 0x52, 0xd5, 0x18, 0xe6, 0xa5, 0x14, 0xf8, 0xed,
+ 0xe4, 0x71, 0xd9, 0xfb, 0x19, 0x5c, 0x81, 0x24, 0x2d, 0x14, 0x30, 0xe3,
+ 0x4b, 0x06, 0x72, 0x38, 0xcd, 0x1d, 0x42, 0xdd, 0x55, 0x41, 0xbe, 0x40,
+ 0xce, 0x68, 0x75, 0x90, 0xfc, 0x58, 0xe7, 0x93, 0x9f, 0xdd, 0xe5, 0x81,
+ 0x84, 0x9d, 0x36, 0x4b, 0x15, 0xa6, 0x4e, 0x26, 0x4a, 0x2c, 0x61, 0xce,
+ 0xd5, 0x7e, 0x37, 0x3a, 0xbe, 0x48, 0x0e, 0xbf, 0x21, 0xee, 0xf7, 0x7f,
+ 0x72, 0x81, 0xe9, 0x39, 0xb9, 0x1d, 0x36, 0x84, 0x42, 0x41, 0x88, 0x4b,
+ 0xb2, 0xa9, 0x5f, 0xb3, 0x78, 0xd8, 0x5a, 0xd9, 0x5c, 0x2b, 0x5d, 0x78,
+ 0x2c, 0x13, 0xad, 0x35, 0x24, 0x9f, 0xde, 0x3d, 0xab, 0xf8, 0x90, 0x35,
+ 0xa4, 0x43, 0xe6, 0xaf, 0x22, 0x53, 0x1e, 0x71, 0xdc, 0x40, 0xd7, 0x46,
+ 0x7a, 0x5f, 0x07, 0x36, 0x27, 0xaf, 0xd2, 0x61, 0xb2, 0xf9, 0xa6, 0xfc,
+ 0x87, 0x51, 0x06, 0xd2, 0x9d, 0x47, 0xc3, 0xdd, 0x64, 0xeb, 0xfb, 0xbc,
+ 0x78, 0xf6, 0xe4, 0x8b, 0xe4, 0x64, 0x7b, 0xb3, 0x05, 0xbf, 0xe7, 0xe2,
+ 0x33, 0xe3, 0xb4, 0xf8, 0x60, 0x97, 0xec, 0x0c, 0x27, 0x9b, 0x61, 0x70,
+ 0xe2, 0x79, 0xa8, 0xb9, 0xf0, 0xc3, 0xca, 0x16, 0x91, 0xd9, 0x29, 0x48,
+ 0xfe, 0xe4, 0x3b, 0x49, 0x50, 0x7e, 0x04, 0x13, 0xdf, 0x3c, 0x35, 0xa5,
+ 0xa9, 0x7b, 0xf6, 0x24, 0x68, 0xe2, 0xb1, 0x6d, 0xe3, 0x1d, 0xb7, 0xf1,
+ 0x0b, 0x9b, 0xd8, 0x1f, 0xee, 0xee, 0x27, 0x5b, 0x67, 0xa3, 0x9d, 0x7d,
+ 0xdb, 0x42, 0xd8, 0xc4, 0x3e, 0x9a, 0xa0, 0x87, 0xda, 0x2f, 0x3f, 0xa6,
+ 0xef, 0xff, 0x98, 0x15, 0x3f, 0x27, 0x5b, 0x3f, 0xec, 0xed, 0x99, 0x06,
+ 0xbe, 0x48, 0x0e, 0x4f, 0x7e, 0x48, 0x1e, 0x0f, 0x4d, 0x63, 0x6f, 0xd3,
+ 0x8f, 0xd2, 0x9c, 0x30, 0x45, 0x8f, 0xd0, 0x88, 0xf9, 0x7d, 0xd0, 0xc6,
+ 0x93, 0x4e, 0x1b, 0xa7, 0x79, 0xb1, 0xfc, 0x64, 0xae, 0x95, 0xdd, 0xe1,
+ 0xa3, 0xfd, 0x24, 0x7f, 0xf2, 0xf9, 0x53, 0x6d, 0x48, 0xda, 0xc0, 0xef,
+ 0xdb, 0x2e, 0x45, 0xe6, 0x43, 0x31, 0xaa, 0xce, 0xf1, 0x27, 0x23, 0xd0,
+ 0x20, 0x22, 0x2a, 0x72, 0xe7, 0xdd, 0xa4, 0xd5, 0x54, 0xb6, 0x1b, 0x95,
+ 0xa5, 0x31, 0x2b, 0x25, 0xc5, 0x03, 0x32, 0xf8, 0x16, 0xcd, 0xc5, 0x79,
+ 0x10, 0x74, 0x27, 0xd9, 0x72, 0x8f, 0x7e, 0x91, 0xbc, 0x19, 0x9d, 0x1c,
+ 0x9b, 0x11, 0xed, 0x9a, 0xae, 0xb9, 0x39, 0xe4, 0x0e, 0xe1, 0x57, 0x98,
+ 0xdc, 0x67, 0xe0, 0xa0, 0x95, 0x36, 0x54, 0xe7, 0x66, 0xe8, 0xa9, 0xd9,
+ 0x74, 0xe6, 0xe2, 0xae, 0xf1, 0x5d, 0x02, 0x91, 0x0c, 0x0e, 0xaf, 0xc9,
+ 0x8e, 0xe0, 0xab, 0x16, 0x9f, 0xfe, 0xb6, 0x2c, 0xcc, 0x31, 0xa9, 0xca,
+ 0x8a, 0xb0, 0x4e, 0x9b, 0x2d, 0x6d, 0xe1, 0xdb, 0x97, 0xc7, 0x9c, 0x33,
+ 0xff, 0x26, 0x2d, 0x8c, 0x8c, 0x24, 0xde, 0xab, 0xfa, 0x03, 0x45, 0xea,
+ 0x39, 0xe6, 0xc2, 0xef, 0x9f, 0xde, 0x15, 0x9f, 0xcc, 0x3a, 0x7e, 0x36,
+ 0xdc, 0x23, 0x90, 0x35, 0x99, 0xbe, 0xaf, 0xde, 0x98, 0x7f, 0xef, 0x3d,
+ 0xde, 0x4c, 0xe8, 0x57, 0x6d, 0xf3, 0x5d, 0xcf, 0xeb, 0xc6, 0xd1, 0xd9,
+ 0xd9, 0xb7, 0x27, 0x0c, 0xd5, 0x38, 0x12, 0xdf, 0x27, 0x29, 0x57, 0xd6,
+ 0x34, 0x66, 0xe9, 0x6a, 0x4c, 0x38, 0x97, 0x5f, 0x84, 0x88, 0xd9, 0x87,
+ 0x2c, 0x5b, 0x20, 0xcb, 0xb7, 0x23, 0x11, 0x1a, 0x91, 0xd1, 0x16, 0x8d,
+ 0x44, 0xea, 0x4f, 0x87, 0xa1, 0xb3, 0xa9, 0xad, 0x9f, 0x75, 0x7c, 0x67,
+ 0x79, 0x39, 0x52, 0x57, 0xa3, 0x18, 0x5d, 0xb4, 0xf9, 0x05, 0xea, 0x27,
+ 0xc6, 0x0a, 0x53, 0xfd, 0x23, 0x31, 0x80, 0x37, 0x47, 0x46, 0xbb, 0xe7,
+ 0x4e, 0x1f, 0x88, 0x6b, 0x75, 0xd3, 0xab, 0x26, 0x00, 0x8d, 0x16, 0x09,
+ 0x36, 0x0c, 0x2a, 0x23, 0x03, 0x41, 0xa0, 0xee, 0x96, 0x38, 0x3e, 0x85,
+ 0x4f, 0xce, 0xdc, 0x9a, 0x6f, 0x0f, 0xdf, 0x1c, 0xbf, 0xf8, 0xee, 0xf0,
+ 0xf4, 0xdd, 0xb1, 0x79, 0x25, 0x37, 0x1f, 0xdb, 0x72, 0xa0, 0x3b, 0xf4,
+ 0x71, 0x9e, 0x4f, 0xca, 0x19, 0x85, 0x82, 0x36, 0xbf, 0xd8, 0xdc, 0x60,
+ 0x40, 0x78, 0xd2, 0xa3, 0xb7, 0xf6, 0xf8, 0x35, 0xb3, 0x2f, 0xe8, 0x5f,
+ 0xfb, 0xfc, 0xaf, 0xfd, 0x2f, 0x7a, 0xdb, 0xad, 0x41, 0x07, 0xa6, 0xf2,
+ 0x15, 0xca, 0x94, 0xa2, 0xba, 0x24, 0x0a, 0x72, 0x23, 0xdb, 0x82, 0x67,
+ 0xa5, 0xa7, 0x81, 0x14, 0xbd, 0xdb, 0xe8, 0xd9, 0xad, 0xf1, 0x9d, 0x6f,
+ 0x88, 0xf7, 0xe8, 0xa5, 0x17, 0x50, 0x30, 0x7a, 0xdb, 0x7d, 0xab, 0x72,
+ 0x20, 0xa8, 0x4d, 0x6d, 0x68, 0x13, 0xcc, 0x15, 0x99, 0x6c, 0xf5, 0xf8,
+ 0x2f, 0x2f, 0x5e, 0x1e, 0x5e, 0x1e, 0xd3, 0x0b, 0xfa, 0x79, 0x65, 0xd5,
+ 0xd7, 0xc4, 0x07, 0xea, 0xcf, 0x96, 0x04, 0x91, 0x5f, 0xd0, 0x80, 0x7a,
+ 0xdb, 0x1c, 0x70, 0x40, 0xf8, 0xbb, 0xd3, 0xaf, 0xb2, 0x50, 0xa8, 0xb5,
+ 0xcb, 0x43, 0xaf, 0x15, 0x5b, 0xb2, 0xd5, 0xe3, 0xdf, 0xf5, 0xb6, 0xd5,
+ 0x7d, 0x2b, 0x75, 0x71, 0x24, 0xa6, 0x38, 0x45, 0x5a, 0x44, 0x90, 0x0b,
+ 0xcb, 0x20, 0x32, 0xb7, 0x3e, 0x12, 0x51, 0x60, 0x77, 0x93, 0x57, 0x5f,
+ 0xc1, 0x2e, 0xbc, 0x24, 0xba, 0x93, 0x83, 0xa9, 0x2c, 0xf7, 0xf6, 0x1f,
+ 0x7d, 0x81, 0xf9, 0x7c, 0xd1, 0xdb, 0x31, 0x77, 0x43, 0xef, 0x0b, 0xfa,
+ 0x74, 0xde, 0x78, 0x55, 0x02, 0xe5, 0x33, 0x64, 0x4f, 0xc9, 0x8e, 0x62,
+ 0x60, 0x0b, 0xad, 0xba, 0x47, 0xdf, 0x83, 0x09, 0xbd, 0xe5, 0xbc, 0x2e,
+ 0x25, 0xbc, 0xd1, 0x30, 0x3f, 0xd6, 0x0b, 0xe5, 0xcd, 0x50, 0xb8, 0x85,
+ 0x3d, 0xba, 0xf8, 0x9c, 0x7f, 0x7f, 0xf4, 0xf9, 0x5d, 0x1e, 0xa3, 0x10,
+ 0x04, 0xd1, 0x37, 0xe7, 0x77, 0x9a, 0xfa, 0x85, 0x6f, 0x41, 0x27, 0xe7,
+ 0x35, 0x0b, 0x34, 0xe3, 0xb1, 0x38, 0x78, 0xd4, 0x18, 0x81, 0x4e, 0x60,
+ 0x44, 0xcb, 0x1d, 0x14, 0x25, 0xe0, 0x02, 0x7c, 0x38, 0x84, 0xde, 0xd9,
+ 0xe9, 0x38, 0x37, 0x9a, 0xb0, 0x4d, 0x66, 0xf1, 0xac, 0x72, 0x3b, 0xf5,
+ 0x7a, 0xfc, 0x72, 0x8f, 0x7a, 0x89, 0x2e, 0x4a, 0x9e, 0xcb, 0xda, 0x3a,
+ 0x92, 0x10, 0x12, 0x94, 0x67, 0xdb, 0xeb, 0xd4, 0xc9, 0x20, 0xc3, 0x30,
+ 0xd8, 0xa4, 0x67, 0xfb, 0xd8, 0x88, 0x9a, 0x22, 0xab, 0xd6, 0x42, 0x21,
+ 0x22, 0x11, 0x23, 0x0c, 0xd1, 0xaf, 0x0b, 0x60, 0xde, 0x19, 0x0e, 0x87,
+ 0xd6, 0xdc, 0x41, 0xb4, 0x4b, 0x02, 0x45, 0x44, 0x6a, 0xe7, 0xb3, 0x05,
+ 0x63, 0x8e, 0xb7, 0xa0, 0xcc, 0x43, 0xa1, 0xde, 0x16, 0x88, 0x8c, 0xf8,
+ 0x09, 0xec, 0xd1, 0xf0, 0x7c, 0x1c, 0x9b, 0xf2, 0xd9, 0x4d, 0x65, 0x65,
+ 0xf8, 0x10, 0x5b, 0x84, 0x35, 0x7d, 0x63, 0x07, 0xa4, 0x94, 0x4b, 0xb2,
+ 0x72, 0xaa, 0xb4, 0x73, 0x41, 0x3b, 0x98, 0x20, 0xdf, 0x5c, 0xd6, 0xef,
+ 0xce, 0x96, 0x49, 0xd2, 0xae, 0xf4, 0x19, 0x20, 0x40, 0x42, 0xae, 0xbc,
+ 0x05, 0x03, 0x01, 0x78, 0x0e, 0x08, 0x25, 0x52, 0xb0, 0x7b, 0x40, 0x6f,
+ 0x90, 0x85, 0x55, 0x9b, 0xa5, 0x1d, 0x21, 0x8f, 0x26, 0x9b, 0x19, 0xba,
+ 0x7f, 0xdf, 0x11, 0x4c, 0x6f, 0xa0, 0x82, 0x53, 0x26, 0xd6, 0xb3, 0xe9,
+ 0x2a, 0x62, 0x53, 0x32, 0x78, 0xe7, 0xb3, 0x22, 0x5c, 0xd8, 0x80, 0x19,
+ 0x5b, 0x34, 0x75, 0x50, 0xa5, 0x87, 0x70, 0x76, 0xac, 0x0b, 0x6a, 0x4f,
+ 0xb4, 0x45, 0x1b, 0xd1, 0xee, 0xcc, 0x8d, 0xbb, 0x95, 0xdb, 0xa2, 0xcb,
+ 0xcc, 0x28, 0xbb, 0x96, 0x99, 0x1b, 0xc3, 0xc9, 0xbd, 0x24, 0xbd, 0x35,
+ 0x57, 0x4f, 0x91, 0x11, 0xa2, 0x12, 0x70, 0x04, 0x78, 0x65, 0x4e, 0x3d,
+ 0x67, 0xa3, 0xa3, 0xd0, 0x96, 0x6a, 0x5a, 0xa9, 0x2b, 0xa7, 0x95, 0x6c,
+ 0xb1, 0xa1, 0xc1, 0xa4, 0xc9, 0xea, 0xd5, 0x23, 0x05, 0xbc, 0x9c, 0x13,
+ 0x77, 0xa9, 0x68, 0xea, 0x6a, 0x9e, 0x53, 0xcf, 0x8d, 0x88, 0x1e, 0xc9,
+ 0xbe, 0xc9, 0x81, 0x20, 0x24, 0x3f, 0x07, 0x83, 0x1f, 0x74, 0xb6, 0xd2,
+ 0x62, 0xea, 0x7d, 0xc4, 0x06, 0x91, 0xc5, 0xfd, 0x44, 0x80, 0xdc, 0x62,
+ 0x00, 0x96, 0x09, 0x8d, 0xdb, 0x8a, 0x79, 0x75, 0x7d, 0xcd, 0x56, 0x5b,
+ 0xd2, 0x1d, 0x5a, 0x7c, 0x93, 0x9d, 0xd2, 0xac, 0x10, 0x6e, 0xf9, 0x6e,
+ 0xd5, 0x6c, 0x5e, 0xda, 0x9a, 0x8b, 0xe2, 0x75, 0x69, 0x6d, 0x66, 0x0d,
+ 0x1c, 0xf2, 0xba, 0x35, 0x36, 0x4d, 0x0a, 0x29, 0x15, 0xed, 0x40, 0xef,
+ 0xd9, 0xc5, 0x06, 0x4a, 0xe5, 0x14, 0x8e, 0x42, 0x41, 0x17, 0x1d, 0xf4,
+ 0x7b, 0x0e, 0x26, 0xe2, 0x30, 0xa3, 0xb7, 0x16, 0x14, 0x85, 0xed, 0x9a,
+ 0x8c, 0x53, 0x67, 0x72, 0x6d, 0x24, 0x2d, 0x97, 0x2f, 0xd5, 0xef, 0x3a,
+ 0x29, 0x44, 0x0e, 0x95, 0x1f, 0x33, 0xc7, 0xff, 0xe8, 0x1c, 0x8e, 0x8e,
+ 0x83, 0x58, 0x4e, 0xbf, 0x15, 0x26, 0x9d, 0x28, 0xac, 0x95, 0x57, 0x18,
+ 0x64, 0x67, 0x56, 0x86, 0x89, 0xd7, 0x24, 0xbb, 0x4a, 0xca, 0x16, 0x45,
+ 0x35, 0xfa, 0x26, 0xc1, 0x65, 0x6d, 0x91, 0xf7, 0x08, 0x73, 0xb8, 0x78,
+ 0xa6, 0x09, 0x97, 0x99, 0xd2, 0xa2, 0x0e, 0x16, 0x4d, 0xe7, 0x82, 0xb4,
+ 0x3a, 0xca, 0x9e, 0x5d, 0xa4, 0x9e, 0x96, 0xcf, 0xc0, 0x26, 0xc0, 0x1e,
+ 0x20, 0x85, 0xce, 0xc6, 0xd9, 0x2f, 0x65, 0x9d, 0xb0, 0x93, 0xe1, 0x41,
+ 0xeb, 0x08, 0xd2, 0xe0, 0xcc, 0x59, 0x1c, 0x05, 0x32, 0x47, 0x88, 0xb0,
+ 0x97, 0x82, 0xff, 0x83, 0xf1, 0x06, 0x67, 0x08, 0x0d, 0x26, 0x2a, 0xd1,
+ 0xd7, 0x53, 0x0c, 0x8c, 0x5b, 0x07, 0xf3, 0xbe, 0x73, 0x7a, 0x7e, 0x71,
+ 0xf6, 0xcd, 0xc5, 0xf1, 0x68, 0x94, 0xbc, 0x39, 0xbe, 0x64, 0x5b, 0xff,
+ 0x92, 0x41, 0x72, 0xd7, 0xa8, 0x32, 0x8e, 0x80, 0x83, 0x52, 0x34, 0x29,
+ 0x2e, 0x44, 0x1d, 0x09, 0xc8, 0x52, 0xa2, 0xe2, 0xd9, 0xb8, 0x1d, 0xd9,
+ 0x88, 0x9f, 0x09, 0xb6, 0xee, 0x06, 0x2e, 0x7f, 0x00, 0x8f, 0x10, 0x8d,
+ 0xb4, 0x1e, 0x74, 0xe7, 0x46, 0x85, 0x62, 0xcc, 0x50, 0x24, 0x9b, 0x25,
+ 0xe8, 0xfc, 0xe8, 0x74, 0x65, 0x9b, 0x3f, 0x31, 0xbc, 0x3f, 0x99, 0xd9,
+ 0x94, 0x82, 0x81, 0x7f, 0x32, 0xc6, 0xaf, 0x6c, 0x8a, 0x3f, 0x25, 0x3f,
+ 0x98, 0x36, 0xa7, 0xc6, 0x78, 0x95, 0xe2, 0xc8, 0x23, 0x14, 0x45, 0x76,
+ 0x0c, 0xcc, 0xb9, 0x57, 0xf6, 0x3b, 0xe1, 0xa4, 0xc0, 0xea, 0x9e, 0x8a,
+ 0xa4, 0x60, 0x77, 0x61, 0x56, 0x23, 0x01, 0xbe, 0xd9, 0x2f, 0x4b, 0x55,
+ 0xba, 0x24, 0x39, 0xcd, 0xae, 0x50, 0xa3, 0x07, 0x9f, 0x33, 0xcd, 0xed,
+ 0x12, 0x55, 0xf5, 0xde, 0x1b, 0xfa, 0xd1, 0x6e, 0xf2, 0xe8, 0xf3, 0xa7,
+ 0xbb, 0x9f, 0xf3, 0x5f, 0xf5, 0xbf, 0xcf, 0x1e, 0xef, 0x0a, 0x67, 0xbe,
+ 0xf9, 0xd7, 0xe3, 0x83, 0xc7, 0x7b, 0x07, 0xc4, 0xde, 0xb8, 0x7b, 0xb0,
+ 0x6b, 0xfe, 0xff, 0x63, 0xf9, 0x09, 0x51, 0x54, 0x3e, 0xdb, 0xff, 0xfc,
+ 0x33, 0x40, 0x56, 0x68, 0x7f, 0xcc, 0xcc, 0x47, 0x06, 0x4d, 0x39, 0x00,
+ 0x89, 0x14, 0x34, 0x9f, 0x3f, 0xb5, 0x3d, 0x91, 0x04, 0xf3, 0xa7, 0x82,
+ 0xe9, 0x34, 0x70, 0x5b, 0x2d, 0x56, 0xbd, 0xaa, 0xcc, 0x39, 0xe3, 0xd7,
+ 0xb8, 0xb4, 0xc3, 0x90, 0xb7, 0xb9, 0xe6, 0x22, 0x58, 0xd9, 0x5a, 0xef,
+ 0x30, 0x24, 0xdc, 0x23, 0x80, 0xfb, 0xa5, 0x9f, 0xd6, 0xd4, 0xef, 0x0d,
+ 0xd0, 0xba, 0xc9, 0x52, 0xc9, 0x7b, 0x13, 0x2d, 0xec, 0xe7, 0x97, 0x20,
+ 0xef, 0xd4, 0xed, 0xfe, 0xa5, 0xdf, 0x63, 0xcf, 0x15, 0xbd, 0x25, 0xbb,
+ 0x21, 0x09, 0xbf, 0x66, 0xb3, 0x07, 0x22, 0xdf, 0x6a, 0x6d, 0x9e, 0x0d,
+ 0xb7, 0xfc, 0x6e, 0xa6, 0xbc, 0xaa, 0xe0, 0x36, 0xeb, 0x8a, 0xeb, 0x6f,
+ 0x47, 0x86, 0x1c, 0x34, 0xf7, 0x6e, 0xe1, 0xb7, 0xf7, 0x90, 0xe6, 0xdc,
+ 0x88, 0xb0, 0x83, 0xed, 0xca, 0x0d, 0xbc, 0xc5, 0xc9, 0x19, 0x7d, 0x66,
+ 0x6b, 0xac, 0x2a, 0x6d, 0xa8, 0xad, 0x7e, 0x8d, 0x57, 0xed, 0x96, 0x1d,
+ 0xf0, 0x1b, 0xa2, 0x73, 0xda, 0x4c, 0x36, 0x54, 0xb6, 0xc5, 0x15, 0xcf,
+ 0xcf, 0xeb, 0xce, 0x0e, 0x3e, 0x45, 0xbb, 0xd1, 0xfb, 0x9e, 0x7c, 0x03,
+ 0xe7, 0xc9, 0x1e, 0xba, 0xb5, 0x43, 0x73, 0x28, 0x78, 0x2d, 0xef, 0xc9,
+ 0x60, 0x2b, 0x28, 0xdf, 0xb1, 0x23, 0xe9, 0x9e, 0x03, 0xd0, 0xdc, 0x36,
+ 0xe7, 0xdf, 0x3e, 0x33, 0x90, 0x83, 0x53, 0xff, 0x40, 0xac, 0xb4, 0xa4,
+ 0x0a, 0x0f, 0xdb, 0x2a, 0xc2, 0x06, 0x7f, 0xb4, 0xd8, 0x2a, 0x5c, 0x66,
+ 0x8c, 0x3d, 0xa3, 0xa6, 0x68, 0x3e, 0x67, 0x7e, 0xf6, 0xab, 0x95, 0x76,
+ 0xe3, 0xb4, 0x6a, 0xd5, 0x52, 0xd8, 0x90, 0x5a, 0x1c, 0x73, 0x62, 0xa0,
+ 0x43, 0x82, 0x22, 0xeb, 0x11, 0x7f, 0xd8, 0xd8, 0x18, 0x9d, 0x1f, 0x1f,
+ 0xbf, 0x4c, 0x4e, 0x4f, 0xde, 0x9c, 0x5c, 0x7a, 0x5a, 0xb8, 0xbd, 0x3d,
+ 0xd4, 0xd3, 0xaa, 0x75, 0x06, 0x3b, 0xd3, 0xe1, 0x08, 0x99, 0xa5, 0xea,
+ 0x8b, 0xdc, 0xdf, 0xf3, 0x4c, 0xf2, 0x1d, 0x66, 0xdd, 0xf7, 0x60, 0x6f,
+ 0x83, 0x8b, 0x89, 0xaa, 0xb5, 0x7b, 0x5a, 0x5c, 0x6d, 0x34, 0x1a, 0xd3,
+ 0xbb, 0x01, 0xf3, 0x01, 0x0c, 0xfe, 0x2a, 0x20, 0x8d, 0xb6, 0xba, 0x24,
+ 0xdc, 0xb2, 0x36, 0x09, 0x47, 0x00, 0xa8, 0x9d, 0x5e, 0xd1, 0xdc, 0x66,
+ 0x0c, 0x82, 0xf6, 0xdc, 0x72, 0xc0, 0xd6, 0xdd, 0x66, 0xe0, 0x27, 0x98,
+ 0xe7, 0x9c, 0x1d, 0xe9, 0x03, 0x7f, 0x51, 0xe0, 0x44, 0x6e, 0x3c, 0xc8,
+ 0x71, 0xff, 0x8b, 0xde, 0xe9, 0xb0, 0xa8, 0x57, 0xfd, 0x56, 0xcd, 0x95,
+ 0x1b, 0xcd, 0x04, 0x14, 0xc9, 0xa3, 0x5d, 0x9b, 0x58, 0xb0, 0x80, 0xcc,
+ 0x11, 0xfd, 0x9e, 0x3e, 0xb6, 0x97, 0x18, 0x25, 0x64, 0x49, 0xaa, 0x7c,
+ 0xb5, 0x2c, 0x82, 0xeb, 0xee, 0xaf, 0xfc, 0xae, 0x19, 0xff, 0xd3, 0x5d,
+ 0x5c, 0x6f, 0x57, 0x69, 0x35, 0x30, 0xea, 0xd6, 0xdd, 0x40, 0x5d, 0xaa,
+ 0xbc, 0x23, 0x04, 0x14, 0xcc, 0xfe, 0x9e, 0xcc, 0x55, 0x44, 0xed, 0xa8,
+ 0x88, 0x2e, 0x3b, 0xa4, 0x44, 0x5c, 0x72, 0x26, 0x07, 0x80, 0x86, 0x4e,
+ 0xb9, 0xb9, 0xea, 0xe1, 0x74, 0x0a, 0x8e, 0xe3, 0x1d, 0xd6, 0x55, 0x74,
+ 0x32, 0x8a, 0x72, 0x05, 0x20, 0x56, 0xa9, 0xd5, 0x9c, 0x86, 0x29, 0x63,
+ 0x09, 0xf5, 0xe9, 0x79, 0xb2, 0xf7, 0x39, 0x8d, 0xe3, 0x61, 0xe3, 0x79,
+ 0x55, 0x56, 0x13, 0x9b, 0x05, 0x0c, 0x1b, 0xc1, 0x4b, 0x09, 0xe5, 0x04,
+ 0x06, 0x14, 0xe5, 0xe3, 0xd9, 0x55, 0xe4, 0x2a, 0x90, 0x75, 0x64, 0x94,
+ 0x48, 0x50, 0x1d, 0xee, 0x28, 0x44, 0xb9, 0x59, 0x2d, 0xa2, 0xbb, 0x46,
+ 0xe6, 0xc5, 0xab, 0x65, 0x5b, 0xd9, 0x94, 0x51, 0x9e, 0x06, 0x72, 0x89,
+ 0x98, 0xbd, 0x76, 0x9b, 0x4f, 0xa1, 0x4a, 0x3b, 0x06, 0x3a, 0xb3, 0x5e,
+ 0xbc, 0xf9, 0x18, 0xd0, 0x8c, 0x98, 0x25, 0x82, 0x9d, 0xb6, 0x67, 0xa2,
+ 0xc0, 0xd0, 0xb4, 0x96, 0xf0, 0x28, 0x6c, 0x41, 0x7f, 0xa0, 0x8c, 0x64,
+ 0x17, 0x17, 0x20, 0xfb, 0x89, 0x44, 0x73, 0xcf, 0x7d, 0x85, 0x50, 0xfd,
+ 0x4d, 0x33, 0x53, 0x67, 0xc2, 0x1b, 0xbb, 0xb1, 0xdb, 0x63, 0x26, 0x6e,
+ 0x15, 0x6f, 0xd8, 0x7b, 0xbb, 0x46, 0x69, 0x9d, 0x95, 0x76, 0x5b, 0xc9,
+ 0xa6, 0x0a, 0x2d, 0x51, 0x0c, 0x6b, 0x80, 0xd9, 0xd9, 0xdb, 0xfd, 0x76,
+ 0xf5, 0xac, 0x83, 0xbf, 0x7e, 0xed, 0xcb, 0xfb, 0x8f, 0xd7, 0x2c, 0xda,
+ 0x59, 0x05, 0x63, 0x3c, 0x53, 0xa0, 0x22, 0x14, 0x41, 0x17, 0x79, 0x09,
+ 0x96, 0xcd, 0x6c, 0xfc, 0xec, 0x3a, 0x45, 0x8d, 0xe8, 0x35, 0xbd, 0xd7,
+ 0xec, 0x8d, 0x4e, 0x57, 0xde, 0x08, 0x74, 0x9a, 0x7f, 0x59, 0x93, 0x5b,
+ 0x6c, 0x01, 0x6e, 0x3c, 0x67, 0xbb, 0xda, 0x04, 0x70, 0x66, 0x53, 0xf0,
+ 0xde, 0x66, 0xc9, 0xd9, 0x6f, 0x0b, 0x09, 0xdd, 0x3d, 0x55, 0x76, 0xbd,
+ 0x64, 0xee, 0x8a, 0x92, 0x6d, 0x7d, 0xa2, 0xab, 0x96, 0xf3, 0x6a, 0x64,
+ 0x33, 0x61, 0x87, 0x78, 0x3f, 0x41, 0xf0, 0x4e, 0x52, 0x55, 0x59, 0xa5,
+ 0xcc, 0x73, 0xe7, 0x62, 0x20, 0xa7, 0xec, 0xa4, 0x9c, 0x4b, 0x9d, 0x58,
+ 0x3e, 0x5e, 0x85, 0x97, 0x8a, 0xcf, 0x7c, 0x8c, 0x43, 0xe4, 0xe6, 0xf2,
+ 0x46, 0xb1, 0xc2, 0x9e, 0x12, 0xc0, 0x28, 0x1a, 0xd6, 0x70, 0x58, 0x00,
+ 0x0d, 0xf4, 0x65, 0xd7, 0xa2, 0x25, 0xfb, 0x29, 0x92, 0xf8, 0xb5, 0xf2,
+ 0x62, 0x32, 0x83, 0x3e, 0x39, 0xfb, 0x8f, 0xce, 0xde, 0xbe, 0x3a, 0xf9,
+ 0xc6, 0x92, 0x0f, 0xb1, 0x10, 0x6f, 0x91, 0x62, 0xb0, 0xfb, 0xd8, 0x8f,
+ 0x74, 0x4b, 0xf9, 0x5d, 0x81, 0xc8, 0x1a, 0xf1, 0xf4, 0xde, 0xff, 0x01,
+ 0x04, 0x48, 0xf1, 0x88, 0x1c, 0xe4, 0xcc, 0xd8, 0x51, 0x6f, 0x3b, 0x77,
+ 0x43, 0x87, 0x5c, 0x8e, 0x53, 0x29, 0xd2, 0xaa, 0x59, 0x2e, 0x2c, 0x82,
+ 0xd0, 0x2b, 0xdf, 0x2b, 0xfc, 0xda, 0x9a, 0x3c, 0xbe, 0x5c, 0xb0, 0x68,
+ 0x92, 0x14, 0xd0, 0x96, 0x37, 0x97, 0xef, 0x00, 0x72, 0x27, 0x08, 0xfb,
+ 0x89, 0x5c, 0x00, 0x01, 0x38, 0x67, 0x46, 0x84, 0x9c, 0x3e, 0xa8, 0x5d,
+ 0xe3, 0x37, 0xd3, 0xb4, 0xbe, 0xe1, 0x81, 0xe2, 0xd2, 0xc8, 0x19, 0x4b,
+ 0x8d, 0x58, 0x5b, 0x3a, 0x25, 0x43, 0xdd, 0x21, 0x72, 0x2c, 0x44, 0xd7,
+ 0xc5, 0x87, 0x6c, 0xa5, 0x33, 0x07, 0x52, 0xd2, 0xc4, 0xd3, 0x14, 0xa1,
+ 0x4a, 0xc4, 0x3a, 0xf1, 0x93, 0x17, 0x14, 0x96, 0x39, 0x20, 0x9a, 0xf9,
+ 0x39, 0x53, 0xc0, 0xf9, 0x09, 0xa3, 0x22, 0x25, 0x1d, 0x17, 0xfc, 0xc9,
+ 0x95, 0x97, 0x7b, 0xc6, 0x20, 0x41, 0xdd, 0x74, 0xec, 0x23, 0x26, 0x07,
+ 0xcb, 0xe6, 0x1f, 0x37, 0x07, 0xf5, 0xdd, 0x7c, 0x5c, 0xce, 0x34, 0x3b,
+ 0xc2, 0x52, 0x3e, 0xe8, 0x43, 0x7e, 0x09, 0xbc, 0x84, 0x23, 0xb5, 0x8d,
+ 0xe7, 0x96, 0x74, 0x80, 0x29, 0xd7, 0x7f, 0xae, 0x70, 0x84, 0xf0, 0x90,
+ 0x8e, 0x02, 0x6c, 0x3c, 0x24, 0xe3, 0xb9, 0x38, 0xa3, 0x14, 0x64, 0x31,
+ 0xdb, 0x0f, 0x33, 0xd5, 0x1e, 0x3a, 0x45, 0xfc, 0xca, 0x25, 0x79, 0x38,
+ 0x50, 0x55, 0xc4, 0xa8, 0x3b, 0x3d, 0xe1, 0xc0, 0xc0, 0x00, 0xe9, 0x6d,
+ 0xfe, 0x85, 0x40, 0xe7, 0x3d, 0x46, 0x1a, 0x2e, 0x43, 0x62, 0xba, 0xfa,
+ 0x13, 0x3b, 0x14, 0x39, 0xee, 0xf7, 0x57, 0xfd, 0xb8, 0x3e, 0xda, 0x99,
+ 0x7a, 0xb3, 0x9f, 0xd2, 0xea, 0x5a, 0x78, 0xf5, 0x24, 0x92, 0x06, 0x23,
+ 0xd1, 0x16, 0xbb, 0xb1, 0x8e, 0x49, 0x52, 0x4a, 0x2c, 0x6a, 0x06, 0xea,
+ 0xd3, 0x92, 0xb3, 0xff, 0x24, 0x37, 0x8a, 0x5d, 0x92, 0x76, 0x23, 0x7a,
+ 0x12, 0xe7, 0x8f, 0x16, 0x8b, 0x92, 0xba, 0xbb, 0x4c, 0x8b, 0x56, 0x38,
+ 0xff, 0xac, 0x5c, 0x66, 0xde, 0x6b, 0xe4, 0xc4, 0x83, 0x25, 0x9c, 0x89,
+ 0xe3, 0x84, 0x3f, 0x05, 0x5d, 0x82, 0x98, 0x68, 0xa4, 0xa6, 0xa7, 0x6b,
+ 0x82, 0x7f, 0xff, 0x42, 0x6a, 0x97, 0x99, 0xf3, 0x2c, 0xdc, 0x26, 0x42,
+ 0xf8, 0xf7, 0xf9, 0xae, 0xb8, 0xdf, 0x1a, 0xc1, 0xaa, 0xd6, 0xc9, 0xe1,
+ 0xc5, 0xb1, 0xd1, 0x6c, 0xaf, 0x0b, 0xb0, 0x4a, 0x14, 0x8d, 0xa6, 0xbf,
+ 0x65, 0x85, 0x94, 0x4b, 0x2b, 0xf4, 0x7c, 0xd0, 0x07, 0x6f, 0xbd, 0x37,
+ 0x69, 0x33, 0x09, 0x30, 0x80, 0x33, 0xae, 0xdd, 0x96, 0x9b, 0x28, 0x5b,
+ 0x30, 0xa4, 0x0e, 0x11, 0x1b, 0xf0, 0x96, 0xa2, 0x10, 0x89, 0xf9, 0x54,
+ 0xa9, 0x4c, 0xc1, 0xe7, 0x81, 0x58, 0xf7, 0x29, 0x82, 0x75, 0xae, 0x71,
+ 0xaa, 0x5d, 0xbe, 0xc0, 0xdf, 0x95, 0x4a, 0x53, 0xbe, 0xd5, 0x0a, 0x7b,
+ 0xba, 0xed, 0xd4, 0x8f, 0xbb, 0x8c, 0xfe, 0x8e, 0x7b, 0x86, 0x74, 0x91,
+ 0xae, 0x5e, 0x90, 0x59, 0x18, 0x3c, 0x7b, 0xaf, 0xa7, 0x9e, 0xf2, 0xcb,
+ 0xc9, 0x7a, 0x37, 0xd9, 0x6c, 0xc1, 0x8e, 0x69, 0xe1, 0xee, 0x11, 0xbf,
+ 0x0e, 0x9b, 0x03, 0xd3, 0x0d, 0x5b, 0x94, 0x14, 0x58, 0xe1, 0x31, 0xf1,
+ 0x1b, 0x7d, 0x60, 0x05, 0xc0, 0x97, 0x4f, 0x51, 0xdf, 0xee, 0x1f, 0xed,
+ 0x68, 0x5d, 0x1f, 0xec, 0x2f, 0xe9, 0x47, 0x2f, 0x2c, 0x1f, 0x1d, 0xf5,
+ 0x62, 0x48, 0x1f, 0x82, 0x48, 0x45, 0xcc, 0x94, 0xfe, 0x82, 0x1f, 0x03,
+ 0xfa, 0xa6, 0x04, 0xa5, 0x90, 0x3a, 0x96, 0xf4, 0xaa, 0x94, 0x98, 0xaa,
+ 0xeb, 0x08, 0x07, 0xf6, 0x20, 0xa1, 0xc7, 0xbe, 0x6a, 0x3c, 0xf8, 0x76,
+ 0x47, 0x2b, 0x9f, 0x93, 0xff, 0x86, 0x52, 0x7d, 0xf5, 0xc0, 0xd7, 0x59,
+ 0xab, 0x54, 0xba, 0x4d, 0xe7, 0xe9, 0x0d, 0x7a, 0x66, 0x2e, 0x36, 0x67,
+ 0x33, 0x27, 0xf0, 0xf5, 0x31, 0x5a, 0x55, 0x64, 0xbe, 0x39, 0x85, 0x49,
+ 0x64, 0x17, 0x95, 0xda, 0xb8, 0x6b, 0xe5, 0x21, 0x50, 0xf1, 0x3a, 0x4a,
+ 0xd3, 0xb1, 0x54, 0x5c, 0xc8, 0xe5, 0x00, 0x48, 0xe0, 0x63, 0x5e, 0x6b,
+ 0xf0, 0xd1, 0xec, 0xed, 0x09, 0x63, 0x22, 0x1a, 0xa6, 0x10, 0xc8, 0x9a,
+ 0x89, 0x37, 0x95, 0xd9, 0xe4, 0xa6, 0x64, 0x40, 0xad, 0x99, 0x34, 0x2f,
+ 0x27, 0xb3, 0x97, 0xfc, 0x2f, 0xd9, 0x03, 0xdf, 0xba, 0xcc, 0x3a, 0xda,
+ 0x08, 0x43, 0x66, 0x8e, 0x1c, 0xba, 0x0d, 0x71, 0xfc, 0xc3, 0xe5, 0xc5,
+ 0x61, 0xf2, 0xfa, 0xf8, 0xf0, 0xe5, 0xf1, 0xc5, 0xa8, 0x73, 0xe9, 0x0b,
+ 0xfc, 0x83, 0x35, 0x34, 0x72, 0x02, 0x43, 0x35, 0x56, 0xaa, 0x00, 0xd8,
+ 0x44, 0xe9, 0x5c, 0xa5, 0x9e, 0xd9, 0x3c, 0x74, 0x90, 0xcc, 0xf9, 0x20,
+ 0x83, 0x88, 0xa3, 0x05, 0xa0, 0x35, 0xae, 0x21, 0x6c, 0x6c, 0x1b, 0x13,
+ 0x23, 0xa1, 0x08, 0xc4, 0xa0, 0x2e, 0x73, 0x3f, 0xad, 0xc5, 0xb1, 0xeb,
+ 0xb9, 0xcb, 0x64, 0x5a, 0x6a, 0xc6, 0x5e, 0x7b, 0xe5, 0x5e, 0xbb, 0xcc,
+ 0x6c, 0x4f, 0x6c, 0xc9, 0x25, 0x23, 0x5e, 0xc3, 0xde, 0x0f, 0x03, 0xf3,
+ 0xdd, 0x81, 0x99, 0xfc, 0x01, 0xd1, 0x2f, 0xde, 0x65, 0x75, 0xaf, 0xe3,
+ 0x02, 0x6c, 0x7f, 0x1e, 0x32, 0xfa, 0x3a, 0x3c, 0x49, 0xaf, 0xa3, 0x2d,
+ 0xd1, 0xe9, 0x9a, 0x51, 0xd5, 0xa4, 0xae, 0x05, 0x81, 0x4b, 0xd5, 0x53,
+ 0x92, 0xe5, 0x04, 0x05, 0x39, 0x28, 0x02, 0x50, 0x72, 0x66, 0xa6, 0xe0,
+ 0xc1, 0xd0, 0x11, 0x19, 0x02, 0x74, 0x1d, 0x73, 0xf6, 0xf8, 0x52, 0x9f,
+ 0x31, 0x03, 0x33, 0x7b, 0xcc, 0x4c, 0xb7, 0xe4, 0x21, 0xff, 0x7e, 0x40,
+ 0x00, 0x44, 0x00, 0xf8, 0x75, 0x2b, 0x3e, 0x2a, 0xce, 0x50, 0xa9, 0xe4,
+ 0x28, 0xcd, 0x51, 0x1f, 0xec, 0x9e, 0x57, 0xdc, 0x3e, 0x7d, 0x52, 0xeb,
+ 0x86, 0xc8, 0xbb, 0x8c, 0x02, 0x23, 0xa3, 0x1e, 0xfe, 0x4d, 0x2e, 0xa5,
+ 0x4b, 0xef, 0xa8, 0xbe, 0xea, 0x25, 0xec, 0xf8, 0x9b, 0x19, 0x05, 0xdb,
+ 0x00, 0x1d, 0xb7, 0xcf, 0x65, 0xc9, 0xeb, 0xb2, 0xc6, 0x5d, 0x10, 0x3e,
+ 0x4e, 0x97, 0x7c, 0x6c, 0xfa, 0xf1, 0x86, 0xc4, 0xb7, 0x2c, 0xad, 0xeb,
+ 0xc6, 0x86, 0xe6, 0x3d, 0x9d, 0x1f, 0x5e, 0xbe, 0x46, 0x74, 0x15, 0x5b,
+ 0xf8, 0x25, 0x38, 0x4e, 0x34, 0xa6, 0x16, 0xe6, 0x4d, 0x59, 0x03, 0x8e,
+ 0xf5, 0x5f, 0xa5, 0x52, 0x54, 0x7d, 0x12, 0xd1, 0xbb, 0x9c, 0x81, 0x48,
+ 0x33, 0x2e, 0x5f, 0x0c, 0x19, 0xdd, 0xaa, 0xce, 0x08, 0xdc, 0xbb, 0x4d,
+ 0x8a, 0xb3, 0x78, 0xcb, 0x4d, 0x4e, 0x59, 0xdf, 0xe4, 0x31, 0x61, 0xd3,
+ 0x93, 0x32, 0x47, 0x16, 0x8f, 0xcf, 0x15, 0x8c, 0x5f, 0x50, 0x4e, 0x32,
+ 0x07, 0xa0, 0xa6, 0x65, 0x9c, 0xa9, 0xd0, 0x3b, 0xd2, 0x5f, 0xcd, 0xef,
+ 0x86, 0x21, 0x65, 0x4e, 0xf2, 0xf5, 0xb2, 0x69, 0x8b, 0x95, 0x0e, 0x63,
+ 0xb1, 0xd5, 0x2c, 0xab, 0xb2, 0x6c, 0xbc, 0x3e, 0x40, 0xfb, 0x49, 0x1b,
+ 0x39, 0xd1, 0x4c, 0x49, 0xc9, 0x7d, 0xa1, 0xa6, 0x0a, 0xd1, 0xbb, 0x7d,
+ 0xc5, 0x30, 0x1d, 0xd7, 0xe5, 0x6c, 0xd9, 0x78, 0x10, 0xec, 0x5f, 0xd6,
+ 0x67, 0xaf, 0xd3, 0x5b, 0x27, 0x43, 0xa5, 0xe7, 0x2c, 0x98, 0x54, 0xce,
+ 0x58, 0xfa, 0x46, 0xbd, 0x44, 0xb0, 0xb1, 0x2a, 0x8b, 0x76, 0x65, 0x38,
+ 0xa0, 0xbd, 0xb7, 0x37, 0x36, 0x46, 0xba, 0xd8, 0x44, 0xd0, 0x1a, 0x2e,
+ 0xfa, 0xf7, 0xd0, 0x26, 0xa9, 0x0f, 0x1c, 0x2c, 0x98, 0x98, 0xbf, 0x28,
+ 0x6d, 0x5b, 0xc6, 0x6b, 0x0a, 0x11, 0xce, 0x6b, 0x9c, 0xd7, 0xed, 0x41,
+ 0xe1, 0x57, 0x36, 0x5c, 0xa1, 0x49, 0x60, 0x97, 0xa5, 0x32, 0xf5, 0x4b,
+ 0xb8, 0xce, 0x6d, 0x88, 0x56, 0xde, 0x7a, 0x94, 0x13, 0x9a, 0x2e, 0x01,
+ 0x2d, 0x8a, 0x6d, 0xe1, 0xb8, 0xd4, 0xc9, 0x9d, 0xff, 0xbd, 0x93, 0xf4,
+ 0xb9, 0x66, 0x41, 0x84, 0x66, 0x67, 0x99, 0xfc, 0xff, 0x00, 0xbc, 0x12,
+ 0x42, 0x5e, 0x6a, 0x73, 0xd8, 0xa6, 0x7c, 0x1d, 0x1a, 0x13, 0xea, 0xa6,
+ 0x9a, 0xb8, 0xdd, 0x6f, 0xb4, 0x83, 0xec, 0x96, 0xec, 0x17, 0xb5, 0x11,
+ 0x84, 0xd8, 0x83, 0xeb, 0x52, 0x5b, 0xca, 0x24, 0x10, 0x63, 0x5c, 0x59,
+ 0xaf, 0x1e, 0x55, 0x59, 0xe5, 0x52, 0xa4, 0xac, 0xd6, 0xa3, 0xc8, 0x92,
+ 0x86, 0x4d, 0x37, 0x92, 0x96, 0xdd, 0x4e, 0x45, 0x0a, 0xf9, 0x4f, 0xcd,
+ 0x38, 0x12, 0x60, 0x97, 0x6c, 0x7f, 0xaf, 0x70, 0x9f, 0x94, 0x40, 0x46,
+ 0x5e, 0x93, 0x20, 0x4e, 0x19, 0x4d, 0xa7, 0xe1, 0x48, 0xed, 0xa4, 0x6a,
+ 0x01, 0x14, 0xad, 0x04, 0x11, 0xa5, 0x70, 0x84, 0x10, 0x92, 0x8c, 0x58,
+ 0x87, 0x39, 0xb3, 0x9a, 0x4a, 0x4c, 0xaa, 0x25, 0xa3, 0x57, 0xaa, 0xe6,
+ 0x72, 0xd8, 0x95, 0x72, 0xdd, 0x97, 0xbb, 0x1f, 0xe9, 0xf2, 0x88, 0xcc,
+ 0x51, 0x61, 0x4d, 0x5f, 0x25, 0xd0, 0x21, 0x49, 0x9d, 0x5f, 0x06, 0x6f,
+ 0xf8, 0x80, 0x14, 0x87, 0xd8, 0xbc, 0xa6, 0x54, 0x0f, 0x71, 0x49, 0x09,
+ 0xeb, 0x08, 0xfc, 0x5f, 0x37, 0xb9, 0xe0, 0x4a, 0x79, 0xd6, 0xdb, 0xb5,
+ 0x55, 0xe1, 0xe1, 0xdb, 0x48, 0xfc, 0xa8, 0xaa, 0x05, 0x3e, 0x0c, 0xc3,
+ 0x03, 0x33, 0xb4, 0x3c, 0xa8, 0x72, 0x89, 0x9c, 0xf8, 0x89, 0xdf, 0x8c,
+ 0xc2, 0xb0, 0x58, 0xe7, 0x07, 0x7e, 0xdd, 0xff, 0x24, 0x81, 0x58, 0x8b,
+ 0x84, 0xb3, 0x48, 0x84, 0xdc, 0x8d, 0x2e, 0x94, 0xfd, 0x3d, 0x18, 0xa6,
+ 0x8c, 0xd9, 0x00, 0xb3, 0xa8, 0xb6, 0xd0, 0x2a, 0xcf, 0xe6, 0x4d, 0xfe,
+ 0x76, 0x5f, 0x66, 0xc9, 0xa6, 0xc5, 0x4b, 0x88, 0x99, 0xf5, 0x42, 0x2f,
+ 0xee, 0xd4, 0xaa, 0x0b, 0xc7, 0xa9, 0xd6, 0x75, 0x53, 0x2d, 0x27, 0x4d,
+ 0xbb, 0x3a, 0xac, 0xdb, 0x61, 0xb6, 0x06, 0x1d, 0xcf, 0x71, 0xe9, 0xdb,
+ 0xf6, 0x27, 0xe7, 0x62, 0xde, 0xb3, 0xf5, 0x41, 0x3d, 0xdb, 0x4a, 0x5b,
+ 0x99, 0x2e, 0xb6, 0x32, 0xa9, 0xff, 0xdd, 0x6d, 0xbb, 0xcb, 0x06, 0xe7,
+ 0x36, 0xed, 0xbd, 0x4d, 0x58, 0x84, 0xec, 0x04, 0xef, 0xee, 0x15, 0x45,
+ 0x0c, 0x8a, 0x47, 0x95, 0x08, 0x5d, 0x22, 0xd4, 0x1a, 0x72, 0x59, 0x6e,
+ 0x58, 0x4a, 0x43, 0xd3, 0xa5, 0x81, 0x40, 0x55, 0x39, 0xfa, 0xbb, 0x63,
+ 0x26, 0x52, 0xeb, 0xff, 0xd8, 0xda, 0x57, 0xb5, 0xa3, 0x45, 0xec, 0xe0,
+ 0x54, 0x41, 0xaa, 0x64, 0xf5, 0x43, 0xa1, 0x77, 0x93, 0xf9, 0x1b, 0x26,
+ 0x2f, 0xe5, 0x50, 0xc8, 0x17, 0xba, 0xea, 0x44, 0x78, 0x37, 0x9e, 0x33,
+ 0x69, 0x49, 0xb0, 0x8f, 0x5e, 0xaa, 0x4f, 0x15, 0x22, 0x07, 0x73, 0x43,
+ 0x96, 0x8d, 0x2e, 0x92, 0x99, 0x57, 0xfd, 0x84, 0xe9, 0x02, 0x8d, 0x78,
+ 0x73, 0x96, 0xed, 0x6e, 0x7a, 0xc5, 0xbb, 0xb6, 0x18, 0xf4, 0x5f, 0xc2,
+ 0xfa, 0xb1, 0xf4, 0x82, 0xec, 0xbd, 0x20, 0x70, 0xdb, 0x76, 0xa4, 0x2b,
+ 0xa6, 0x89, 0x5f, 0xda, 0x99, 0xbd, 0x67, 0xfb, 0xc3, 0xbd, 0xa7, 0x9f,
+ 0x0f, 0x77, 0x87, 0x7b, 0xbb, 0x24, 0x5f, 0xa8, 0x2b, 0x5e, 0xe7, 0x78,
+ 0x5e, 0x22, 0x9f, 0x6a, 0xbd, 0x17, 0x7e, 0xf3, 0xed, 0xf1, 0xe5, 0xf7,
+ 0x67, 0x17, 0xdf, 0x26, 0x27, 0x6f, 0x2f, 0x8f, 0x2f, 0x5e, 0x1d, 0x1e,
+ 0x3d, 0x94, 0x62, 0xdf, 0x77, 0x5b, 0x7b, 0x95, 0xcc, 0x33, 0x37, 0x31,
+ 0xa1, 0x6f, 0xd0, 0xcd, 0x59, 0xd6, 0xdc, 0xec, 0x1e, 0xec, 0xad, 0x25,
+ 0x91, 0x8e, 0xb8, 0x07, 0xdd, 0xfb, 0x3a, 0xa8, 0x3d, 0x1a, 0xd4, 0xea,
+ 0x56, 0x2c, 0x99, 0xe2, 0x88, 0xb1, 0x55, 0x16, 0x97, 0x0b, 0x31, 0x8f,
+ 0xda, 0x48, 0xe0, 0x50, 0x15, 0xc1, 0x3e, 0x66, 0xba, 0x5a, 0xae, 0xf4,
+ 0x26, 0x74, 0x30, 0x82, 0x41, 0x17, 0x99, 0xbb, 0xc1, 0x55, 0xc3, 0x1b,
+ 0x71, 0xa7, 0x30, 0x01, 0xed, 0x14, 0x2a, 0x9e, 0x4a, 0x65, 0x49, 0x60,
+ 0xa3, 0xdd, 0x22, 0xa5, 0x4b, 0x99, 0x22, 0x70, 0x6a, 0xf3, 0x44, 0x2c,
+ 0x55, 0xc0, 0x46, 0xe2, 0xe9, 0xe9, 0xe8, 0x6b, 0xbb, 0xf0, 0xbb, 0x0f,
+ 0x9f, 0xed, 0xb0, 0xa5, 0xd6, 0x8a, 0x6b, 0xc6, 0xc0, 0x5a, 0xae, 0xd1,
+ 0x23, 0xe9, 0x08, 0x4e, 0x83, 0xd7, 0x1b, 0xfe, 0x14, 0x14, 0x2a, 0xa2,
+ 0x35, 0x03, 0xa1, 0x63, 0x8b, 0xd3, 0x98, 0xef, 0x28, 0xe4, 0x4e, 0xb0,
+ 0xfe, 0xa7, 0x85, 0x28, 0xa8, 0xf5, 0xba, 0x45, 0x2b, 0x98, 0x70, 0xa9,
+ 0x12, 0xff, 0x75, 0x56, 0xb5, 0x81, 0xce, 0x9c, 0x56, 0xe9, 0x2d, 0x8a,
+ 0xae, 0xe4, 0x8e, 0x24, 0x74, 0xa3, 0x5d, 0x73, 0x8b, 0x14, 0x27, 0x37,
+ 0xe7, 0xc9, 0xf9, 0xf1, 0x9b, 0x81, 0x56, 0x3e, 0x36, 0x7f, 0x67, 0x67,
+ 0x94, 0x32, 0x42, 0x72, 0x6e, 0xcf, 0x22, 0x2b, 0x14, 0x4b, 0x03, 0x99,
+ 0x28, 0xe0, 0x1f, 0x7f, 0x00, 0x74, 0x68, 0x2c, 0x67, 0xa4, 0x40, 0x46,
+ 0x15, 0x73, 0xc9, 0x09, 0x86, 0x5d, 0x22, 0x4d, 0x5a, 0x4f, 0x01, 0x2c,
+ 0x27, 0x5b, 0x16, 0xa4, 0x4b, 0xdf, 0x03, 0x12, 0x15, 0xa8, 0x01, 0x0b,
+ 0x13, 0x28, 0xb5, 0x08, 0xe0, 0xf9, 0xb7, 0x47, 0xa3, 0x3f, 0xee, 0xed,
+ 0x4b, 0x77, 0xb6, 0xd5, 0x2a, 0x20, 0x59, 0xd5, 0xcd, 0x9c, 0x87, 0xb8,
+ 0xf6, 0xfb, 0xa8, 0xf9, 0xd5, 0x38, 0xe0, 0x58, 0x8c, 0x2d, 0x9b, 0x18,
+ 0xb4, 0xdd, 0xca, 0x0c, 0x02, 0xf2, 0xeb, 0xce, 0xaa, 0x98, 0xb6, 0x92,
+ 0x2f, 0x85, 0x44, 0x50, 0xf4, 0x49, 0xca, 0x2e, 0x35, 0x16, 0xea, 0x97,
+ 0x16, 0xfa, 0x23, 0x6e, 0x59, 0x5a, 0xdb, 0xac, 0x25, 0xc9, 0x8a, 0xe1,
+ 0x2c, 0xdd, 0x35, 0xa7, 0xf9, 0x76, 0xbf, 0x25, 0x66, 0x57, 0xb9, 0xd9,
+ 0x95, 0xba, 0xc7, 0x7d, 0x06, 0x07, 0x40, 0xd0, 0xeb, 0x53, 0x2d, 0xec,
+ 0x56, 0xb8, 0xca, 0x25, 0xf4, 0xf4, 0x99, 0x59, 0x28, 0x73, 0xb2, 0x98,
+ 0x5c, 0x81, 0x84, 0x42, 0x39, 0x23, 0xd3, 0xc5, 0x3e, 0xf2, 0xb2, 0xa2,
+ 0x5a, 0x2f, 0x0b, 0xc6, 0x91, 0xbe, 0x1d, 0x26, 0xaf, 0xb3, 0x82, 0x12,
+ 0xdc, 0x09, 0x71, 0xa7, 0xb9, 0x57, 0xc0, 0x05, 0x52, 0x65, 0x49, 0x54,
+ 0xda, 0x3b, 0xcd, 0x52, 0x61, 0xd1, 0x34, 0xb2, 0xae, 0x66, 0x0b, 0x57,
+ 0xab, 0x4c, 0xa5, 0x84, 0xce, 0x13, 0xca, 0x4f, 0xcb, 0x48, 0xc1, 0xb4,
+ 0xce, 0xd4, 0xc0, 0x56, 0x9b, 0x0a, 0x13, 0x45, 0x0c, 0xd0, 0x9c, 0x1c,
+ 0x73, 0xc4, 0x9a, 0xc4, 0xab, 0x7c, 0x03, 0x02, 0x6c, 0xf2, 0x16, 0xb2,
+ 0xc5, 0xa5, 0x87, 0x2c, 0x1b, 0x0f, 0xa9, 0xcc, 0x25, 0x91, 0x60, 0x50,
+ 0x11, 0x0e, 0xf3, 0xef, 0x9d, 0xfd, 0xdd, 0xbd, 0xcf, 0x76, 0x3f, 0xdb,
+ 0x7b, 0xb2, 0xf7, 0xe4, 0xc9, 0x93, 0xbd, 0x7d, 0x9c, 0xc3, 0x69, 0x75,
+ 0x43, 0xee, 0x91, 0xda, 0x5c, 0x49, 0x69, 0x31, 0xb9, 0x1b, 0x4e, 0x8d,
+ 0xbe, 0x4b, 0x0e, 0xb6, 0xe1, 0xf2, 0xc3, 0x8e, 0x77, 0x94, 0xe9, 0x5a,
+ 0xb8, 0xe1, 0x7c, 0xff, 0xb6, 0x73, 0x5c, 0xab, 0x1c, 0x87, 0x44, 0x60,
+ 0x69, 0xeb, 0xdc, 0xd0, 0xb6, 0x61, 0xe4, 0xa4, 0x1e, 0xe1, 0x95, 0x94,
+ 0x59, 0xc7, 0x89, 0xe5, 0x2d, 0xa6, 0x16, 0x86, 0x8b, 0x6c, 0x7e, 0x60,
+ 0xd3, 0x95, 0x75, 0x78, 0x52, 0x2b, 0xc3, 0x1a, 0x1f, 0x9e, 0x23, 0xb7,
+ 0xc8, 0xae, 0x67, 0xa2, 0x74, 0xf8, 0xe6, 0x8d, 0x6d, 0x22, 0x92, 0x26,
+ 0xc2, 0x46, 0x91, 0xd4, 0x49, 0x82, 0x56, 0x6f, 0xf6, 0x6a, 0x23, 0xb0,
+ 0x5b, 0x7e, 0xb8, 0x22, 0xa5, 0xdf, 0x35, 0x22, 0x14, 0x20, 0xa0, 0x50,
+ 0x26, 0x85, 0x59, 0xdc, 0x40, 0x8a, 0x56, 0x92, 0x10, 0x15, 0xd1, 0xbb,
+ 0x62, 0x17, 0x81, 0x9c, 0x5d, 0x90, 0xd3, 0x08, 0x90, 0x6a, 0x25, 0x61,
+ 0x3e, 0x4f, 0xe6, 0xd7, 0x1f, 0x1f, 0x91, 0x57, 0xfc, 0xf2, 0x74, 0xa4,
+ 0x91, 0x93, 0x22, 0xbb, 0xf5, 0xb6, 0x1f, 0x17, 0x14, 0x90, 0x3d, 0x4a,
+ 0x4e, 0x22, 0x26, 0x4a, 0x06, 0x1d, 0x02, 0x7a, 0xc2, 0x92, 0xc3, 0x85,
+ 0xd2, 0x5c, 0x82, 0x84, 0x4e, 0x82, 0x40, 0x8d, 0xa9, 0x2b, 0x5a, 0xf4,
+ 0x8c, 0x15, 0x26, 0x4b, 0xd9, 0x42, 0x4c, 0x7c, 0x46, 0xa1, 0x7a, 0xd4,
+ 0x4f, 0x06, 0xfb, 0x20, 0xc2, 0xd9, 0x6b, 0x4f, 0x62, 0xda, 0x30, 0xe9,
+ 0x1f, 0xb5, 0x61, 0x5a, 0xd2, 0x56, 0x44, 0x64, 0x6c, 0xc9, 0xb6, 0xff,
+ 0x68, 0xde, 0xa7, 0x3f, 0xf6, 0x65, 0x40, 0x1f, 0xf7, 0x80, 0xea, 0x66,
+ 0x36, 0xca, 0xd9, 0x5d, 0xa8, 0x56, 0xec, 0xaf, 0x5d, 0x55, 0xe4, 0x4f,
+ 0xdc, 0xe6, 0x96, 0x16, 0x9a, 0x4b, 0x21, 0xc0, 0x5d, 0x2a, 0x44, 0x9f,
+ 0xda, 0x01, 0x33, 0x85, 0xe2, 0x08, 0x2f, 0x92, 0x8f, 0xfb, 0x1a, 0x8f,
+ 0xa6, 0xdf, 0xe8, 0xbc, 0xb1, 0x43, 0xdf, 0x09, 0x9a, 0x20, 0xb5, 0x91,
+ 0x90, 0x70, 0xde, 0xae, 0xa5, 0xcc, 0x28, 0xb3, 0x67, 0x8d, 0xa4, 0x69,
+ 0x49, 0xa2, 0xb2, 0x10, 0xd7, 0x03, 0xe7, 0xc4, 0x33, 0xcb, 0x3c, 0x19,
+ 0xf9, 0x1e, 0x14, 0x0a, 0xe8, 0x70, 0x0f, 0x35, 0x79, 0x52, 0xd8, 0x64,
+ 0x0a, 0x71, 0xf7, 0x83, 0x70, 0x0f, 0xcb, 0x7f, 0x93, 0xb3, 0xf3, 0x02,
+ 0x78, 0x54, 0x5c, 0xf9, 0x46, 0x3a, 0x6c, 0x26, 0xe6, 0x30, 0x2d, 0xe9,
+ 0x56, 0x68, 0x6c, 0x05, 0xb6, 0x11, 0x13, 0x76, 0x6e, 0xfa, 0xa2, 0x70,
+ 0xf0, 0x25, 0x0d, 0xa5, 0xde, 0x74, 0x63, 0x17, 0xe2, 0xf2, 0xf6, 0x40,
+ 0x24, 0x16, 0xa2, 0x35, 0xc7, 0xce, 0x2b, 0xad, 0xaa, 0xbe, 0x79, 0xfc,
+ 0x89, 0xf4, 0xa0, 0x4d, 0xf9, 0x12, 0xff, 0x9a, 0x93, 0xfe, 0x31, 0x47,
+ 0xe7, 0x27, 0x6f, 0xb9, 0x50, 0xb8, 0x3d, 0x0b, 0x19, 0x11, 0x29, 0x6e,
+ 0x70, 0x45, 0x7a, 0xf4, 0x27, 0x55, 0x66, 0x77, 0x76, 0x2e, 0xd1, 0x9e,
+ 0xa1, 0x3d, 0x9e, 0xcb, 0xb7, 0x2e, 0x96, 0xfc, 0xf5, 0x4d, 0xba, 0x0b,
+ 0xeb, 0x7a, 0xb6, 0xd9, 0x29, 0x80, 0x6b, 0xd7, 0xa4, 0x73, 0xe9, 0x58,
+ 0xaf, 0xd5, 0x64, 0xea, 0x8c, 0x80, 0x24, 0x91, 0x56, 0x5a, 0xb2, 0xb0,
+ 0xdf, 0xc9, 0x86, 0xf4, 0xdd, 0xe5, 0x7f, 0x4c, 0x86, 0x3b, 0xe6, 0x83,
+ 0xf5, 0x8e, 0xbe, 0xb8, 0xf8, 0x30, 0xa9, 0xcd, 0x2d, 0x48, 0xa9, 0xbf,
+ 0x3f, 0xc2, 0x68, 0xc7, 0x72, 0x98, 0x1e, 0x4f, 0x7f, 0x4e, 0x06, 0x93,
+ 0x19, 0xc6, 0x97, 0xa0, 0xd2, 0xf6, 0x8f, 0x66, 0xe5, 0xe9, 0x89, 0x9f,
+ 0xed, 0x1a, 0xbe, 0xca, 0xe9, 0xbc, 0x7d, 0xea, 0xeb, 0xd0, 0xcf, 0xd8,
+ 0xa8, 0x60, 0xd6, 0xda, 0xe4, 0x70, 0xfa, 0x91, 0x12, 0xf3, 0xa6, 0xf2,
+ 0x4f, 0x1a, 0xcf, 0x71, 0x81, 0x22, 0xa5, 0x18, 0x69, 0x3a, 0xe6, 0x9a,
+ 0xe4, 0xdf, 0xe5, 0xc6, 0x30, 0x39, 0xea, 0xe8, 0x20, 0x94, 0x23, 0x48,
+ 0x1d, 0xc4, 0x5b, 0xde, 0x2f, 0x35, 0xe1, 0xa3, 0x2f, 0x79, 0x0d, 0x0e,
+ 0x7e, 0x4a, 0xd2, 0x99, 0x96, 0x6e, 0x98, 0x7c, 0x4d, 0x71, 0xd0, 0x2a,
+ 0xf3, 0x38, 0x5d, 0xe5, 0x72, 0xe4, 0x62, 0x7e, 0xb4, 0x18, 0x29, 0x13,
+ 0x54, 0x0c, 0xed, 0x48, 0x82, 0x3c, 0x19, 0x3b, 0x26, 0xfb, 0x9b, 0xf6,
+ 0xe0, 0xd0, 0x2f, 0xcd, 0x7d, 0x37, 0x43, 0xd1, 0x9c, 0x8a, 0x24, 0x18,
+ 0x8a, 0xc7, 0x32, 0xc9, 0x3d, 0xe4, 0x4b, 0x75, 0x9a, 0x29, 0x03, 0x40,
+ 0xe9, 0xd3, 0xad, 0xa8, 0x77, 0x19, 0x4d, 0xa9, 0xd6, 0x60, 0xb7, 0x04,
+ 0xee, 0x79, 0xd7, 0xeb, 0xa3, 0x1b, 0x23, 0x9a, 0x33, 0xdb, 0xd5, 0x11,
+ 0xbb, 0xfd, 0xb4, 0x8b, 0x23, 0xba, 0xa3, 0x74, 0x11, 0xec, 0x2f, 0x35,
+ 0x83, 0x12, 0x9a, 0xea, 0x0e, 0xcb, 0x2e, 0xbb, 0x77, 0x79, 0x76, 0xdb,
+ 0x43, 0xa0, 0xc4, 0xc7, 0xd1, 0xbb, 0x37, 0x54, 0xb0, 0x04, 0xb5, 0xab,
+ 0x2f, 0x2f, 0x0e, 0xdf, 0x8e, 0x5e, 0xb1, 0xfb, 0xfc, 0xb2, 0xf4, 0xaa,
+ 0x62, 0x4b, 0xec, 0x41, 0x63, 0xcc, 0x96, 0xef, 0xed, 0x96, 0xab, 0x68,
+ 0x28, 0xe6, 0x5e, 0x4a, 0x66, 0xf7, 0xbb, 0x2c, 0xfa, 0x5c, 0x6f, 0x9b,
+ 0x66, 0x83, 0xba, 0xb6, 0x35, 0xda, 0xb6, 0xca, 0x52, 0xed, 0x97, 0x5a,
+ 0x73, 0xf5, 0xea, 0x95, 0xef, 0x59, 0x1e, 0xa2, 0x69, 0x39, 0xd2, 0xce,
+ 0xe8, 0x4f, 0xf9, 0xee, 0x5d, 0x49, 0x2d, 0x7a, 0x64, 0xcc, 0xc9, 0x81,
+ 0xd4, 0x9f, 0x71, 0xc4, 0x6a, 0xce, 0xe5, 0xca, 0x77, 0xaf, 0x70, 0xf2,
+ 0xd9, 0xc6, 0xfd, 0xdc, 0x50, 0x6d, 0x7a, 0xeb, 0xcf, 0x7b, 0xdb, 0xf1,
+ 0xe6, 0x2f, 0x7f, 0x69, 0xf3, 0xf1, 0xbe, 0xab, 0xfd, 0xe6, 0xd2, 0x8e,
+ 0xb6, 0xfe, 0xbc, 0xbf, 0xbd, 0x76, 0x44, 0x7e, 0xe6, 0xa4, 0xfb, 0xa6,
+ 0x79, 0x83, 0x3a, 0x9b, 0xbc, 0xe0, 0x63, 0x66, 0xf5, 0x2a, 0x8b, 0xe2,
+ 0xf1, 0x58, 0x84, 0x5b, 0xcc, 0x1e, 0x04, 0xed, 0xb6, 0xda, 0xbc, 0x0b,
+ 0xce, 0x49, 0x06, 0xca, 0xc9, 0xff, 0x3c, 0xf6, 0x49, 0x21, 0x8b, 0xcd,
+ 0xc6, 0xbf, 0xa2, 0x88, 0x41, 0xa0, 0x2e, 0x87, 0xf8, 0xf6, 0xfe, 0x9a,
+ 0x6f, 0xbb, 0xd1, 0x79, 0xae, 0x0b, 0x8a, 0x74, 0x13, 0x54, 0x4e, 0x39,
+ 0xae, 0xe5, 0x3b, 0xf6, 0xdb, 0xeb, 0xbe, 0x77, 0x79, 0xf2, 0xe6, 0x98,
+ 0xb8, 0xb0, 0x5f, 0x9e, 0x10, 0x8b, 0xdc, 0x48, 0x78, 0x1c, 0xd5, 0x4b,
+ 0x61, 0xf9, 0x75, 0xfd, 0x1a, 0x28, 0x1c, 0x02, 0xb6, 0x88, 0x34, 0x2b,
+ 0x39, 0xec, 0x4a, 0xd0, 0xa7, 0x05, 0x27, 0x5d, 0x6b, 0x36, 0xe6, 0xc9,
+ 0xd5, 0xe0, 0x4d, 0x39, 0x85, 0x25, 0x3d, 0x18, 0x01, 0x4e, 0x68, 0xde,
+ 0x32, 0x3f, 0x7c, 0x57, 0xcc, 0x5b, 0x3f, 0x1e, 0x46, 0xb2, 0x79, 0x37,
+ 0x56, 0x95, 0xda, 0xf9, 0xc7, 0xce, 0x60, 0x40, 0x9d, 0x19, 0x30, 0xf4,
+ 0x4b, 0x02, 0x40, 0x2d, 0x22, 0x0f, 0x15, 0x2d, 0x66, 0x82, 0xf2, 0xd9,
+ 0x1d, 0x83, 0x15, 0x52, 0x07, 0x31, 0x73, 0x19, 0x9e, 0xd7, 0x94, 0x65,
+ 0xe6, 0xdc, 0x80, 0xec, 0xe8, 0xdb, 0xf0, 0xa9, 0x48, 0x61, 0x6c, 0x65,
+ 0xb7, 0x0e, 0x23, 0x25, 0x85, 0x9b, 0xcb, 0xc5, 0x1d, 0x46, 0x79, 0xdb,
+ 0x82, 0x5f, 0x44, 0x63, 0xb0, 0xff, 0xe0, 0x77, 0x5a, 0xc5, 0xa5, 0x84,
+ 0x39, 0xda, 0xdb, 0x81, 0xf2, 0x13, 0xa9, 0xc5, 0x74, 0x56, 0x79, 0xd7,
+ 0x95, 0x74, 0x5b, 0x6b, 0xd6, 0x79, 0x34, 0xa5, 0x1e, 0xab, 0x6a, 0xbb,
+ 0x9f, 0x3e, 0xa5, 0x6b, 0x49, 0xe9, 0xb1, 0x2f, 0x4b, 0x1b, 0x40, 0x33,
+ 0x62, 0x67, 0xd1, 0x2e, 0x8d, 0x9c, 0x25, 0x9a, 0x08, 0xce, 0x79, 0xfe,
+ 0x9b, 0x83, 0x4d, 0x54, 0x5b, 0xc8, 0x8b, 0xc8, 0x60, 0x06, 0xbf, 0x7c,
+ 0x34, 0x41, 0x78, 0x36, 0xe9, 0x5d, 0x11, 0x59, 0x06, 0xc5, 0xba, 0x7a,
+ 0xdc, 0x01, 0x26, 0x94, 0xe1, 0xcd, 0x65, 0x2e, 0x08, 0x92, 0x6b, 0x6a,
+ 0x6c, 0xb2, 0xe1, 0x6d, 0xd1, 0xb3, 0xd6, 0x91, 0xce, 0x9e, 0x4b, 0x12,
+ 0xa4, 0xcb, 0xc5, 0x14, 0xc0, 0x0d, 0x86, 0xac, 0xfe, 0x07, 0x51, 0x5c,
+ 0x57, 0x77, 0xc9, 0xde, 0x7e, 0x3f, 0x31, 0xf6, 0xcc, 0x7e, 0x64, 0x0c,
+ 0xbd, 0xff, 0x20, 0xe0, 0xd4, 0x3e, 0x7e, 0xdd, 0x7b, 0xe8, 0x28, 0x5c,
+ 0xce, 0x03, 0x6e, 0x12, 0xc9, 0x0e, 0x36, 0xc2, 0x87, 0x62, 0xb8, 0xa0,
+ 0x55, 0x46, 0xbd, 0x64, 0xf0, 0xd2, 0xe1, 0xda, 0x62, 0x47, 0xa2, 0x56,
+ 0xce, 0xb4, 0x05, 0xc1, 0xa6, 0xa8, 0x8f, 0xc3, 0x25, 0x6b, 0x81, 0x8e,
+ 0xb1, 0xde, 0xd4, 0xb4, 0x42, 0x81, 0xcf, 0xf6, 0x1a, 0xe5, 0x8d, 0x2e,
+ 0x0b, 0xc1, 0x6f, 0x68, 0x6d, 0xcc, 0x7e, 0x7f, 0x79, 0x72, 0x74, 0xa9,
+ 0xc4, 0x85, 0x57, 0xa4, 0x3c, 0x55, 0x77, 0x0f, 0x2b, 0xb1, 0xb8, 0xf6,
+ 0x99, 0xe9, 0xc1, 0x4d, 0x66, 0xd4, 0xe8, 0x62, 0xbc, 0xbc, 0x3e, 0xf8,
+ 0x5b, 0x5a, 0x5d, 0x97, 0xc5, 0x7d, 0xcf, 0x4f, 0x91, 0x74, 0x76, 0x60,
+ 0x24, 0xd4, 0xde, 0xb3, 0xbd, 0x47, 0xc8, 0x11, 0x9f, 0xe5, 0x28, 0xf3,
+ 0x43, 0x02, 0x62, 0x73, 0xbe, 0xc9, 0x24, 0x1c, 0x48, 0xa5, 0xb0, 0xcc,
+ 0x1b, 0xc5, 0x74, 0x93, 0xaf, 0xfb, 0xd4, 0x7f, 0x76, 0x2a, 0xcf, 0x72,
+ 0x7a, 0xfa, 0xa6, 0xe4, 0x33, 0x6c, 0x52, 0x2a, 0xe7, 0x72, 0xb1, 0xd9,
+ 0x26, 0x7e, 0xbf, 0x67, 0xac, 0xf4, 0x09, 0x5b, 0x51, 0xf2, 0xc8, 0xd2,
+ 0xd9, 0x23, 0xcb, 0xa8, 0xca, 0xd2, 0x0f, 0xae, 0x80, 0xb2, 0x63, 0xe8,
+ 0xd0, 0xb0, 0xc8, 0xc5, 0xab, 0x23, 0xa6, 0x22, 0xd5, 0x9c, 0x2a, 0x4c,
+ 0x75, 0x62, 0xdd, 0x57, 0xdb, 0xd4, 0xcb, 0x7b, 0xbe, 0x4f, 0xf9, 0x0f,
+ 0x07, 0xd3, 0xf1, 0x03, 0x1e, 0x32, 0xe7, 0x8e, 0xd9, 0xe4, 0x0e, 0xdb,
+ 0x05, 0x75, 0xc8, 0x50, 0x43, 0x55, 0x10, 0xad, 0x94, 0xbc, 0xc5, 0x85,
+ 0x62, 0x39, 0x2a, 0x41, 0x5d, 0xd3, 0x1a, 0xd4, 0xea, 0x01, 0x32, 0xfd,
+ 0xa6, 0xda, 0xad, 0x2f, 0x0f, 0xcf, 0x3d, 0x43, 0x17, 0x86, 0xa4, 0x73,
+ 0xfc, 0xd1, 0x73, 0x64, 0xe8, 0xa0, 0x18, 0xbb, 0xd4, 0x58, 0xea, 0x3b,
+ 0x13, 0xa5, 0x81, 0x9c, 0x24, 0xdd, 0x08, 0x20, 0xfa, 0x52, 0xee, 0x13,
+ 0xf8, 0xa8, 0x50, 0xa3, 0x60, 0x36, 0x4d, 0x11, 0x2c, 0x95, 0x5b, 0x88,
+ 0xb2, 0x24, 0xce, 0x0a, 0xcd, 0x74, 0xee, 0x77, 0x0a, 0x32, 0x98, 0x1f,
+ 0xe3, 0x3b, 0xb8, 0xa2, 0xcf, 0x8d, 0x12, 0x0e, 0xaa, 0x97, 0xd1, 0xcb,
+ 0x6f, 0xa9, 0xc7, 0x12, 0xf8, 0x81, 0xd6, 0xa6, 0xfe, 0x6e, 0x1b, 0xad,
+ 0x52, 0xab, 0x51, 0x1d, 0x5c, 0xea, 0x7f, 0xa4, 0xe6, 0x3e, 0x3e, 0x1a,
+ 0xf2, 0x9f, 0xfb, 0xb6, 0x68, 0x31, 0x1e, 0x03, 0x16, 0xf4, 0x4a, 0x4b,
+ 0x22, 0xcf, 0x33, 0xaa, 0xd1, 0x9b, 0xd7, 0x73, 0x07, 0x5d, 0xb9, 0x92,
+ 0xd7, 0x5d, 0xa1, 0x3c, 0x51, 0x22, 0x29, 0xfc, 0x80, 0x7e, 0xa0, 0xb7,
+ 0xb9, 0x60, 0xbf, 0xcc, 0x2e, 0xfb, 0x94, 0x48, 0xca, 0x8a, 0xe4, 0xe6,
+ 0x48, 0x3d, 0x14, 0x3c, 0x46, 0x39, 0xd8, 0x77, 0xba, 0x14, 0x7c, 0xd3,
+ 0x98, 0x65, 0x48, 0xeb, 0x0f, 0xe6, 0x52, 0x60, 0xb8, 0x82, 0x99, 0xc7,
+ 0x5c, 0x02, 0xfe, 0xe4, 0xe2, 0xca, 0x19, 0x36, 0x44, 0xce, 0x36, 0x50,
+ 0x3f, 0xb5, 0xb6, 0x1e, 0x5f, 0xa6, 0x64, 0x3b, 0xcf, 0xea, 0x8c, 0xb9,
+ 0x14, 0x41, 0x1a, 0x44, 0xf1, 0x41, 0xda, 0x7a, 0xb0, 0x99, 0x14, 0x77,
+ 0x0b, 0x71, 0x46, 0xbb, 0x74, 0x7f, 0xff, 0xc9, 0x93, 0x7e, 0xd2, 0x23,
+ 0xdf, 0x24, 0xfa, 0x44, 0x1b, 0xfa, 0x15, 0x04, 0x4f, 0x2f, 0x5a, 0x37,
+ 0x77, 0xa7, 0xba, 0x9a, 0xd0, 0xff, 0xe8, 0x3d, 0x2d, 0x17, 0x79, 0x29,
+ 0xc9, 0x3a, 0xd4, 0x4d, 0x04, 0x62, 0x2d, 0xa5, 0x0e, 0xef, 0x34, 0xfa,
+ 0xdd, 0x89, 0x75, 0x3f, 0x51, 0xac, 0x69, 0x91, 0x95, 0x0b, 0x0d, 0x2a,
+ 0xcf, 0xa5, 0x10, 0x08, 0xbe, 0xef, 0x45, 0xe2, 0x00, 0x03, 0x60, 0x14,
+ 0x9d, 0x70, 0x27, 0xd4, 0xcb, 0xf1, 0x40, 0x92, 0x88, 0xd9, 0xd0, 0xcc,
+ 0xcd, 0x61, 0x9e, 0xd3, 0x22, 0x88, 0x97, 0x3f, 0x10, 0xd2, 0x5f, 0x27,
+ 0x3d, 0xd9, 0x6e, 0xf4, 0xc7, 0x10, 0x31, 0xe1, 0x6c, 0x42, 0xc3, 0x28,
+ 0x5f, 0xc8, 0x3f, 0xfe, 0xfd, 0xdf, 0x4d, 0xb3, 0xff, 0x4e, 0xad, 0xbc,
+ 0xf8, 0x73, 0xdd, 0xdc, 0x78, 0xcf, 0xf4, 0xe4, 0x0c, 0x9c, 0xb8, 0x88,
+ 0x38, 0x50, 0x6e, 0xa0, 0x90, 0x45, 0xae, 0xdb, 0x9b, 0x53, 0x11, 0xd2,
+ 0x7d, 0x6f, 0x7c, 0x39, 0xb2, 0x10, 0xd9, 0xb7, 0x6a, 0x41, 0x26, 0x5f,
+ 0x53, 0xb4, 0x3a, 0xa3, 0xec, 0x75, 0xb3, 0x08, 0x60, 0x1e, 0xdc, 0x76,
+ 0xb0, 0x13, 0x96, 0xef, 0xf0, 0x9f, 0x72, 0x21, 0xb9, 0x4e, 0x61, 0xac,
+ 0x5b, 0xbd, 0x29, 0xf8, 0x14, 0x63, 0x9d, 0xcc, 0xaf, 0xd2, 0x59, 0x79,
+ 0x6d, 0x47, 0x1c, 0x2b, 0x45, 0xf3, 0x8b, 0xc6, 0xde, 0xf3, 0x1b, 0xd2,
+ 0x37, 0xfd, 0x18, 0xfc, 0x03, 0x5b, 0x21, 0x2c, 0x81, 0x3d, 0x9a, 0x80,
+ 0xc8, 0x86, 0xa5, 0xc7, 0x84, 0x5a, 0xd8, 0x58, 0x2a, 0x2a, 0x48, 0x76,
+ 0xf4, 0xa0, 0xdb, 0x93, 0x4f, 0xf0, 0xde, 0x09, 0x1d, 0x81, 0x4e, 0x2d,
+ 0x1c, 0x27, 0x2b, 0xac, 0x72, 0x23, 0x65, 0x4e, 0x44, 0x37, 0xc9, 0x8c,
+ 0xbc, 0xca, 0xcd, 0x59, 0xc0, 0x05, 0x48, 0xdf, 0x61, 0x08, 0x91, 0x04,
+ 0xad, 0x07, 0x83, 0x31, 0x17, 0x12, 0x1b, 0x0c, 0x8a, 0x66, 0x36, 0x67,
+ 0x1e, 0xe6, 0x29, 0x8a, 0x8a, 0x69, 0x12, 0x47, 0x5e, 0x84, 0x24, 0x84,
+ 0xed, 0x69, 0xe6, 0x57, 0xff, 0xb9, 0x49, 0xf2, 0x65, 0x1e, 0xd7, 0xea,
+ 0xa4, 0x76, 0x76, 0x1c, 0xb1, 0xa3, 0xe3, 0x4f, 0x23, 0x57, 0xe8, 0xa0,
+ 0x90, 0x3a, 0x67, 0x40, 0xff, 0x5b, 0xc9, 0x24, 0x04, 0x65, 0x3e, 0xaa,
+ 0x55, 0x93, 0x91, 0x88, 0x2f, 0x9a, 0x7c, 0x6f, 0x46, 0xbc, 0x67, 0xc0,
+ 0x2d, 0xd7, 0xc9, 0xd6, 0x68, 0x74, 0x7e, 0xb2, 0xa3, 0x65, 0xd2, 0x36,
+ 0x36, 0x8e, 0xdf, 0x7e, 0x77, 0x72, 0x71, 0xf6, 0xf6, 0xcd, 0xf1, 0xdb,
+ 0xcb, 0xe4, 0xbb, 0xc3, 0x8b, 0x93, 0xc3, 0xaf, 0x4f, 0x85, 0x9f, 0x81,
+ 0x86, 0x49, 0xb0, 0x34, 0xb6, 0x04, 0x3b, 0xe4, 0xc2, 0x5e, 0xea, 0x5c,
+ 0xb4, 0x3e, 0x4d, 0xa7, 0xf4, 0xf6, 0x7b, 0xa1, 0xc7, 0x87, 0x5d, 0xfc,
+ 0x1e, 0xa5, 0xb6, 0xfa, 0x64, 0x0a, 0xbd, 0xd7, 0xaa, 0x5b, 0x64, 0xca,
+ 0xdf, 0x79, 0x19, 0xff, 0x84, 0x98, 0x23, 0x69, 0xa6, 0xb2, 0xdc, 0xd5,
+ 0x9b, 0xb4, 0x05, 0x5c, 0xbe, 0x61, 0xd2, 0x08, 0xad, 0x66, 0xa3, 0xaf,
+ 0x42, 0x7c, 0xb0, 0xaa, 0xe3, 0xfa, 0x70, 0x78, 0x7a, 0xea, 0x3e, 0xb5,
+ 0xbe, 0xd0, 0x91, 0x10, 0x86, 0x71, 0xba, 0x21, 0x1a, 0xa5, 0x50, 0xf6,
+ 0x75, 0xe9, 0xb8, 0xfe, 0x8b, 0x3b, 0x9f, 0xd6, 0x9f, 0x3e, 0x66, 0xb6,
+ 0xcb, 0x16, 0x33, 0xbd, 0x10, 0xae, 0xa1, 0xc9, 0xaa, 0xbc, 0xfe, 0xd0,
+ 0x4f, 0x36, 0xff, 0xbc, 0x29, 0xa5, 0xed, 0xc1, 0x41, 0xcd, 0x65, 0x94,
+ 0xb6, 0x5d, 0xa7, 0xde, 0x9e, 0xb9, 0x3e, 0x49, 0xa8, 0xde, 0x76, 0xc0,
+ 0xbe, 0xe8, 0x80, 0x16, 0xb5, 0x6a, 0xd7, 0x40, 0x38, 0xbb, 0xc7, 0xa5,
+ 0xc6, 0x88, 0x25, 0xb0, 0x10, 0xf1, 0x48, 0xa1, 0xd8, 0xe8, 0xbb, 0xf0,
+ 0x21, 0xa4, 0x13, 0x8f, 0x6a, 0x1c, 0x63, 0x2d, 0xc8, 0xf1, 0x66, 0xeb,
+ 0xbf, 0xa9, 0x6f, 0xda, 0x4c, 0xf5, 0x54, 0x88, 0x19, 0x53, 0x6d, 0x59,
+ 0xb2, 0x9d, 0x91, 0x4d, 0x6e, 0x83, 0x54, 0x9e, 0x8f, 0x31, 0x15, 0xcc,
+ 0xfb, 0xd0, 0xcc, 0x34, 0x0e, 0x3e, 0xfb, 0x90, 0x5a, 0xce, 0x5d, 0x84,
+ 0x8d, 0x3a, 0xe9, 0xa1, 0x12, 0x0e, 0x29, 0x5b, 0x3f, 0x93, 0x75, 0xd5,
+ 0x3a, 0x53, 0xe9, 0x86, 0x82, 0x75, 0xc1, 0x93, 0xc1, 0xce, 0x4c, 0x9d,
+ 0x48, 0x40, 0x2a, 0xfd, 0xb7, 0x7b, 0xc8, 0x5e, 0xe2, 0x68, 0x8c, 0xe5,
+ 0x4e, 0x24, 0x52, 0x22, 0x4c, 0xb1, 0x43, 0xae, 0x67, 0x9f, 0x98, 0x6d,
+ 0xc8, 0x6e, 0x32, 0xb7, 0x11, 0xb8, 0x42, 0x9e, 0x00, 0xd5, 0xbb, 0x1d,
+ 0xb6, 0xbd, 0xd2, 0x6a, 0x4b, 0x88, 0xac, 0xb1, 0xc2, 0x05, 0x95, 0xa9,
+ 0x3b, 0x1a, 0xb8, 0x0c, 0x19, 0x12, 0xdd, 0xea, 0x74, 0xa7, 0xe1, 0x9e,
+ 0x22, 0x0e, 0x96, 0xb5, 0x28, 0x50, 0xb8, 0x41, 0x3e, 0xed, 0x68, 0xfd,
+ 0x2a, 0xc0, 0x10, 0x28, 0x65, 0xa8, 0x32, 0x32, 0xb4, 0x5e, 0x5d, 0x26,
+ 0x6a, 0x88, 0xe8, 0xf5, 0xc5, 0x11, 0x4a, 0x2b, 0x14, 0x54, 0x69, 0xd5,
+ 0xd5, 0xc5, 0x41, 0x7a, 0x41, 0x91, 0x35, 0x15, 0xe5, 0xec, 0x16, 0x62,
+ 0x83, 0x00, 0xb2, 0x0f, 0x13, 0x3d, 0xbd, 0x2e, 0xd5, 0xfc, 0x4e, 0x2d,
+ 0xae, 0xc6, 0x56, 0x11, 0xf4, 0x4c, 0x7a, 0xcb, 0x2d, 0x68, 0xe5, 0x16,
+ 0x10, 0x38, 0x1a, 0x43, 0x24, 0x04, 0x2a, 0x9d, 0x31, 0xad, 0x0a, 0x5f,
+ 0x7b, 0xec, 0x0d, 0x2e, 0xc1, 0x89, 0xe4, 0x38, 0xe7, 0xf1, 0x28, 0xd9,
+ 0x1f, 0x08, 0x16, 0x95, 0xed, 0x01, 0x58, 0x68, 0x74, 0x8b, 0x1e, 0x44,
+ 0x93, 0x02, 0x6b, 0x47, 0x93, 0x1a, 0xde, 0x32, 0xe2, 0x6a, 0x46, 0x39,
+ 0xa6, 0xaa, 0x75, 0xa4, 0xc9, 0x38, 0xbf, 0x66, 0xd6, 0x10, 0xa2, 0xa8,
+ 0xa0, 0x63, 0x09, 0x12, 0xc8, 0x72, 0x9e, 0xd1, 0xd9, 0x00, 0xc5, 0x23,
+ 0x4c, 0xf7, 0x9b, 0x72, 0xe6, 0xf3, 0x10, 0xea, 0x48, 0x64, 0xf5, 0x6d,
+ 0xe4, 0x03, 0xd1, 0xd1, 0x25, 0xcd, 0xa3, 0x02, 0x56, 0xa5, 0xca, 0x80,
+ 0xc0, 0x77, 0x29, 0xec, 0x06, 0x4a, 0xd5, 0x02, 0xc9, 0x82, 0xca, 0xb6,
+ 0x80, 0x79, 0xd0, 0xd4, 0x06, 0xda, 0xb8, 0x70, 0xa3, 0x53, 0xed, 0xd6,
+ 0x2d, 0x5b, 0x26, 0x80, 0x5a, 0x99, 0x30, 0x81, 0x33, 0x49, 0x19, 0x06,
+ 0x9d, 0xb4, 0x8b, 0x7c, 0xc9, 0x62, 0x09, 0xbb, 0x9e, 0xd9, 0x13, 0xd4,
+ 0x69, 0x33, 0x53, 0x5b, 0x9e, 0x92, 0x51, 0x98, 0x2d, 0xc2, 0x8f, 0xb1,
+ 0xff, 0x48, 0xfe, 0x35, 0xb0, 0xf5, 0x09, 0x05, 0x9a, 0xb2, 0xed, 0xa0,
+ 0x49, 0x6c, 0x04, 0x90, 0x78, 0x98, 0x48, 0x85, 0x58, 0x80, 0x78, 0xa8,
+ 0xbc, 0x2d, 0x28, 0xe3, 0x5a, 0xa1, 0x87, 0x44, 0x53, 0xf2, 0x66, 0x33,
+ 0xaf, 0x4e, 0x00, 0x7b, 0x23, 0xd3, 0xc0, 0xf4, 0x20, 0x31, 0x31, 0x64,
+ 0x91, 0xcb, 0xe0, 0x40, 0xe6, 0x14, 0xf7, 0x06, 0x22, 0x69, 0x27, 0x64,
+ 0x9c, 0x75, 0x22, 0x1a, 0xde, 0x0d, 0xa2, 0x00, 0x1a, 0x5f, 0x09, 0x95,
+ 0xda, 0x38, 0x79, 0x3a, 0x67, 0xd3, 0xd1, 0xed, 0xbe, 0xf9, 0x1d, 0x03,
+ 0x93, 0x37, 0x36, 0x8e, 0xde, 0x8d, 0x2e, 0xcf, 0xde, 0x24, 0x67, 0xef,
+ 0x2e, 0xcf, 0xdf, 0x5d, 0x8a, 0x96, 0x3a, 0xe6, 0xb4, 0x0e, 0x06, 0x37,
+ 0xb1, 0xe6, 0xac, 0x8b, 0x39, 0x17, 0x08, 0x10, 0x50, 0x68, 0x25, 0x88,
+ 0x47, 0x3d, 0xce, 0x31, 0x9b, 0xb6, 0x09, 0x36, 0x3e, 0x66, 0x1e, 0xc7,
+ 0x94, 0xdf, 0x9a, 0x29, 0x47, 0xca, 0x3d, 0xfc, 0xf8, 0x9a, 0x05, 0x0a,
+ 0xaf, 0x87, 0x9e, 0xb5, 0x76, 0xdd, 0xa9, 0xbb, 0xb6, 0x17, 0x03, 0xf8,
+ 0x9d, 0x36, 0xc7, 0x9b, 0x5f, 0x06, 0x97, 0x5d, 0xbb, 0xce, 0xf3, 0xeb,
+ 0xa3, 0xbe, 0xa5, 0x88, 0xae, 0xc6, 0x9f, 0x14, 0x78, 0x0f, 0x34, 0x62,
+ 0x3b, 0xf7, 0xd8, 0x4f, 0x81, 0x6e, 0x4a, 0x33, 0xc2, 0x1b, 0x9b, 0x34,
+ 0x43, 0x40, 0x43, 0x80, 0x85, 0x19, 0x63, 0x45, 0xa8, 0x5c, 0x76, 0x18,
+ 0x14, 0xd9, 0x2d, 0xe9, 0x3d, 0x81, 0x46, 0x7d, 0x9b, 0x6c, 0x7e, 0x9f,
+ 0xf9, 0x0d, 0xfe, 0xe9, 0x3f, 0x29, 0xb3, 0xfb, 0xbd, 0xfe, 0xe4, 0xbf,
+ 0xf8, 0x93, 0x3f, 0x15, 0x9b, 0x10, 0x98, 0x6d, 0x30, 0xcd, 0xb7, 0xc7,
+ 0x17, 0x5f, 0x1f, 0x5f, 0x9c, 0x8d, 0x20, 0x0f, 0xd4, 0xdb, 0x1d, 0xee,
+ 0xf5, 0x0f, 0x59, 0x35, 0xce, 0xaa, 0x52, 0x6a, 0xe3, 0xe9, 0xbf, 0x9e,
+ 0xec, 0x7c, 0x33, 0x1a, 0x1d, 0x9e, 0x9f, 0xd8, 0xaa, 0x53, 0x36, 0xc7,
+ 0x94, 0x3d, 0x24, 0x05, 0x67, 0x41, 0xd3, 0xf8, 0xf5, 0x15, 0xb3, 0x2f,
+ 0x26, 0x1f, 0x38, 0xf7, 0x20, 0x80, 0xad, 0x68, 0x58, 0x8d, 0xf0, 0x2a,
+ 0x92, 0x7a, 0x4c, 0x0d, 0x2b, 0x57, 0x9c, 0x5f, 0x34, 0x82, 0xab, 0x3b,
+ 0x50, 0x28, 0xb0, 0x6f, 0x41, 0xba, 0x1f, 0xaa, 0xf1, 0xc0, 0xec, 0xf6,
+ 0x0f, 0x5a, 0x8c, 0x9d, 0x53, 0xa5, 0x8c, 0xa8, 0xe4, 0x1c, 0x0a, 0xe7,
+ 0x6a, 0xfc, 0x90, 0x17, 0x79, 0xb3, 0xf3, 0x81, 0xce, 0x07, 0x55, 0x44,
+ 0x9a, 0x0d, 0x59, 0xba, 0xf3, 0x81, 0x52, 0x60, 0x3c, 0x89, 0xd8, 0x75,
+ 0xfc, 0x35, 0xe6, 0x6b, 0xb6, 0x9c, 0x29, 0xbb, 0xbb, 0xcd, 0x4f, 0x1e,
+ 0x5b, 0x22, 0x3f, 0xd1, 0xfb, 0x81, 0xa5, 0xbd, 0x32, 0x77, 0xd5, 0xe2,
+ 0x76, 0x2a, 0x97, 0x08, 0x48, 0xec, 0x59, 0xb7, 0x14, 0x19, 0xde, 0x8d,
+ 0x4f, 0x53, 0xc9, 0x55, 0xe4, 0x74, 0x49, 0xc6, 0x4a, 0x32, 0x9e, 0xa5,
+ 0xc5, 0x07, 0xa8, 0x0f, 0x50, 0x08, 0xe8, 0xee, 0x53, 0x7a, 0x3a, 0x2a,
+ 0x85, 0x0b, 0xc8, 0x82, 0x30, 0xc6, 0xc0, 0xe0, 0x9b, 0x91, 0x70, 0xbb,
+ 0xe3, 0x50, 0x9e, 0x65, 0xe1, 0xf3, 0x02, 0xef, 0x38, 0x4e, 0x6e, 0x12,
+ 0xc8, 0x73, 0x7c, 0x7c, 0x6a, 0x2e, 0x26, 0x9b, 0x87, 0x06, 0x0f, 0x5d,
+ 0x36, 0xa3, 0x48, 0x90, 0x82, 0x06, 0x39, 0xf5, 0x3a, 0x87, 0x20, 0x63,
+ 0xe9, 0xa1, 0x75, 0x10, 0x10, 0x3e, 0xc6, 0x76, 0x41, 0x86, 0x79, 0x6d,
+ 0xab, 0x05, 0x89, 0xe4, 0x66, 0x21, 0x06, 0xfe, 0x60, 0x57, 0x3c, 0xc8,
+ 0xaf, 0x65, 0x25, 0x88, 0xdc, 0x23, 0x07, 0x19, 0xb4, 0x45, 0xfe, 0xb8,
+ 0x13, 0xce, 0x04, 0xb5, 0x00, 0x83, 0x56, 0x02, 0xdc, 0xca, 0x65, 0xe2,
+ 0xd7, 0x63, 0x3e, 0x40, 0xa6, 0x3d, 0x9c, 0x4a, 0xb8, 0xd3, 0x32, 0x86,
+ 0x69, 0x56, 0x43, 0x3b, 0x93, 0x40, 0x3b, 0xce, 0x80, 0x21, 0x8a, 0xdd,
+ 0xcc, 0x1a, 0xeb, 0xa6, 0xa8, 0x99, 0x83, 0x0d, 0x3a, 0xd7, 0x14, 0x22,
+ 0xa7, 0x6a, 0x31, 0x5a, 0xfb, 0x00, 0x7e, 0x26, 0xb5, 0x29, 0xad, 0x89,
+ 0xc9, 0xb6, 0xbf, 0xb5, 0x65, 0x07, 0x6f, 0xe9, 0xba, 0x28, 0x07, 0xe3,
+ 0x25, 0xdc, 0x32, 0x5e, 0xd1, 0x3d, 0x4e, 0xf3, 0x2e, 0xaf, 0x58, 0xf3,
+ 0xe0, 0xdf, 0x53, 0x38, 0x1a, 0x04, 0x1a, 0x1c, 0xa1, 0x46, 0x46, 0x75,
+ 0x9b, 0x8b, 0xcb, 0x32, 0x30, 0x71, 0x9a, 0x92, 0xab, 0x0a, 0x6e, 0x07,
+ 0x28, 0x8b, 0x6c, 0x5d, 0x34, 0x9e, 0x49, 0xd3, 0xef, 0x24, 0x65, 0x34,
+ 0xb6, 0x6e, 0xc5, 0x25, 0xd4, 0x84, 0x4c, 0x0a, 0x3a, 0x68, 0xb6, 0x85,
+ 0xe6, 0x76, 0x7d, 0x6c, 0xa8, 0x4c, 0x1c, 0x93, 0xc7, 0xa4, 0x33, 0x2e,
+ 0xb7, 0xb3, 0xf2, 0x2a, 0xe1, 0xc3, 0xd4, 0x5c, 0x5e, 0xfe, 0xf5, 0xfc,
+ 0xf8, 0x85, 0xbe, 0xb9, 0x6e, 0xcd, 0x98, 0x53, 0x11, 0xb0, 0xba, 0x4c,
+ 0x38, 0x8c, 0xbd, 0x82, 0xf7, 0x66, 0x93, 0x0d, 0x1a, 0x85, 0xfb, 0xf0,
+ 0x67, 0x06, 0xc9, 0x0f, 0x2f, 0x4f, 0x46, 0xe7, 0xa7, 0x67, 0x47, 0x2f,
+ 0x9e, 0xff, 0xa0, 0x22, 0xf9, 0x4b, 0x8a, 0x10, 0xb2, 0x9e, 0x66, 0x7f,
+ 0xe6, 0x38, 0x5f, 0xe4, 0xbd, 0xb7, 0xc7, 0xdf, 0xbf, 0x37, 0xe6, 0xd8,
+ 0x0b, 0x2a, 0xfb, 0xd0, 0xff, 0x98, 0xce, 0xe4, 0x25, 0xd2, 0x4f, 0x23,
+ 0xba, 0xdd, 0xb0, 0x4d, 0xd2, 0xd9, 0x9d, 0x58, 0x5b, 0x73, 0xd8, 0xa5,
+ 0x32, 0xdd, 0x29, 0xd2, 0xd6, 0x2b, 0x2b, 0x97, 0xb6, 0x32, 0xef, 0x23,
+ 0x15, 0xc2, 0xdd, 0xf5, 0xbf, 0xd9, 0x30, 0xec, 0x9a, 0x50, 0x46, 0x3e,
+ 0x30, 0x07, 0xd0, 0x76, 0xf9, 0x8d, 0x83, 0xfc, 0x0b, 0xcd, 0x7a, 0x45,
+ 0x5e, 0x34, 0x4b, 0x51, 0x2b, 0x65, 0xe7, 0x01, 0x79, 0x11, 0x1e, 0x5b,
+ 0x21, 0x67, 0x23, 0x94, 0xbd, 0x26, 0xdc, 0xa8, 0x1c, 0x13, 0x15, 0xc6,
+ 0xf6, 0x25, 0xd5, 0x02, 0xd8, 0x28, 0xac, 0x75, 0x7e, 0x7c, 0x31, 0x3a,
+ 0x19, 0x5d, 0x92, 0xdd, 0x2a, 0xd5, 0x58, 0x25, 0x04, 0xa5, 0xa5, 0x72,
+ 0x41, 0xeb, 0xd2, 0xa6, 0x24, 0xf6, 0x8b, 0xfe, 0xb4, 0x4e, 0xb4, 0x15,
+ 0x73, 0xed, 0x3c, 0x6f, 0xba, 0x01, 0x38, 0x79, 0x9c, 0x14, 0x51, 0x26,
+ 0xd6, 0x4e, 0xaf, 0xf4, 0x00, 0x97, 0xb2, 0x35, 0x3a, 0xb5, 0x6f, 0x50,
+ 0xb7, 0x0a, 0xab, 0x33, 0xcb, 0xc7, 0xce, 0x95, 0xd9, 0x41, 0x90, 0x10,
+ 0x38, 0x49, 0x48, 0x7c, 0xfc, 0x23, 0xa4, 0xe1, 0x30, 0x47, 0x9e, 0x20,
+ 0x05, 0xba, 0xe5, 0x5a, 0x93, 0xc4, 0x67, 0x3f, 0xc5, 0xdd, 0x3a, 0xa5,
+ 0x60, 0xb4, 0xa8, 0x9e, 0x66, 0x7f, 0xea, 0xe1, 0xd4, 0x85, 0x17, 0x0e,
+ 0x94, 0xd6, 0x22, 0xb2, 0x49, 0x28, 0xe7, 0x9c, 0xac, 0x4a, 0xde, 0x49,
+ 0xa3, 0xb5, 0x80, 0x7c, 0x03, 0x50, 0x42, 0x19, 0x59, 0xa0, 0x82, 0x88,
+ 0xea, 0x78, 0x4d, 0x59, 0xae, 0x20, 0xdf, 0x9b, 0x92, 0xbe, 0x05, 0x07,
+ 0xbc, 0xff, 0x31, 0xbd, 0x4e, 0x69, 0x06, 0xc7, 0x4b, 0xbf, 0xac, 0xa3,
+ 0xed, 0x3d, 0x17, 0x17, 0xc2, 0xc4, 0x03, 0x44, 0x9d, 0x56, 0x70, 0x64,
+ 0x34, 0x52, 0x49, 0x42, 0x0d, 0x1f, 0x41, 0x44, 0x0f, 0xdb, 0x3c, 0x5f,
+ 0xba, 0x2f, 0xd5, 0x08, 0x5b, 0x37, 0xa3, 0x5e, 0x3d, 0x58, 0xda, 0xbe,
+ 0x55, 0xa6, 0xd0, 0x46, 0x76, 0x29, 0xd6, 0x14, 0x6f, 0x2c, 0x26, 0xf6,
+ 0x32, 0xa6, 0xbc, 0x44, 0x82, 0x17, 0x54, 0xc2, 0xa1, 0x66, 0xc4, 0x1f,
+ 0x05, 0x96, 0x50, 0x44, 0x16, 0xd5, 0xd5, 0x29, 0xe8, 0xae, 0xfc, 0x9a,
+ 0x2e, 0xd3, 0x83, 0xa7, 0xdb, 0xdb, 0x56, 0x1c, 0x5d, 0xbb, 0x93, 0x0f,
+ 0x5a, 0x0e, 0x0d, 0x5d, 0xac, 0x3e, 0xa7, 0x64, 0xa6, 0xc8, 0x00, 0xd4,
+ 0xb0, 0x8e, 0x97, 0x49, 0x5e, 0x4b, 0x7e, 0xbe, 0x45, 0xa7, 0x40, 0xe0,
+ 0xb5, 0x2a, 0x69, 0xd3, 0xe8, 0x5a, 0xc8, 0x00, 0xa3, 0x5f, 0x2e, 0x50,
+ 0x09, 0x6d, 0x22, 0xa5, 0x26, 0x80, 0xeb, 0xb7, 0x0d, 0xea, 0x25, 0xe2,
+ 0x26, 0xcb, 0xcc, 0xea, 0x9b, 0x77, 0xa7, 0x97, 0x27, 0xe7, 0x3e, 0xfa,
+ 0x20, 0xf9, 0xfe, 0xe4, 0xf2, 0xb5, 0xd1, 0xda, 0x47, 0x27, 0x6f, 0xbf,
+ 0x39, 0xa5, 0x10, 0xef, 0x9b, 0x37, 0x87, 0x6f, 0x89, 0x80, 0xe4, 0x2d,
+ 0xc0, 0xcf, 0x87, 0x30, 0x1c, 0x48, 0x1c, 0x99, 0x29, 0xa6, 0xbd, 0x43,
+ 0xd4, 0x14, 0xfd, 0x30, 0xd2, 0xd8, 0x39, 0x7e, 0x5c, 0x29, 0xbd, 0x68,
+ 0x4f, 0xd2, 0x06, 0xea, 0xde, 0xc3, 0x32, 0xb8, 0x23, 0x27, 0x2e, 0x8e,
+ 0x2d, 0x19, 0x5b, 0x34, 0xd1, 0xdd, 0x1a, 0x13, 0x48, 0x83, 0x66, 0x0d,
+ 0x1d, 0x28, 0x1a, 0xbe, 0xbb, 0x5d, 0xf4, 0x12, 0x2b, 0x6a, 0xc9, 0xa9,
+ 0x61, 0xc7, 0x18, 0x9d, 0xa9, 0x10, 0xbb, 0x86, 0xef, 0xcb, 0x76, 0x5a,
+ 0x92, 0xf9, 0x22, 0xba, 0x04, 0x18, 0x51, 0xe9, 0xdc, 0xe8, 0x64, 0x71,
+ 0x92, 0xd1, 0x7c, 0x71, 0xea, 0x5f, 0xa8, 0xc3, 0x56, 0xe9, 0x40, 0x45,
+ 0x10, 0x5f, 0x97, 0x99, 0x3b, 0xb9, 0x83, 0x33, 0x6d, 0x46, 0xa3, 0x3f,
+ 0x30, 0xc3, 0xf8, 0x72, 0x19, 0x90, 0x5c, 0x1b, 0x98, 0x25, 0xd9, 0xb6,
+ 0xe5, 0xc2, 0xc4, 0xec, 0x3f, 0x60, 0xb5, 0xd2, 0xd2, 0xaf, 0x6b, 0xa9,
+ 0x4d, 0xd3, 0x9c, 0xb6, 0x2c, 0x48, 0x34, 0xa4, 0x6c, 0x48, 0xe6, 0xa3,
+ 0x8c, 0x19, 0xd2, 0x52, 0x1f, 0x6b, 0x11, 0x37, 0xf0, 0x7d, 0x77, 0xa6,
+ 0xa1, 0x49, 0xcd, 0x7c, 0xb5, 0x45, 0x1c, 0x1d, 0x70, 0x02, 0x15, 0x12,
+ 0xe1, 0xae, 0xc8, 0x08, 0xe3, 0x40, 0x7f, 0xfd, 0xdb, 0xe2, 0xda, 0x4f,
+ 0x8a, 0xe5, 0x62, 0xf1, 0x8b, 0xd8, 0xca, 0x0a, 0xd7, 0x3b, 0xab, 0x45,
+ 0x52, 0x98, 0xb2, 0xd5, 0x03, 0xa9, 0x36, 0xb9, 0xb7, 0xea, 0x83, 0xf2,
+ 0xfb, 0xfd, 0xf0, 0xf7, 0xfb, 0x1c, 0x62, 0x38, 0x39, 0xff, 0xf8, 0xd4,
+ 0x72, 0x24, 0x33, 0xd5, 0x83, 0xaf, 0xbe, 0xa9, 0x52, 0x40, 0x3b, 0x8c,
+ 0x1e, 0x15, 0x87, 0x39, 0xcb, 0x44, 0x0e, 0xfd, 0x11, 0x80, 0x74, 0x59,
+ 0x21, 0x85, 0x1d, 0x8f, 0x20, 0xb6, 0xc2, 0x99, 0x01, 0x70, 0x3c, 0x41,
+ 0x4e, 0xd1, 0x75, 0x65, 0x1a, 0x34, 0xbf, 0x7f, 0x6c, 0xd3, 0x75, 0x9c,
+ 0x4c, 0x43, 0xad, 0x45, 0x49, 0x98, 0x1c, 0xe4, 0x8b, 0x8f, 0x5a, 0xb9,
+ 0xdb, 0xfc, 0xf5, 0xa9, 0xad, 0xb3, 0x55, 0xb7, 0x42, 0xd4, 0x2d, 0x3e,
+ 0x72, 0x15, 0xfe, 0xe8, 0x1c, 0x5c, 0x60, 0x24, 0x19, 0x9c, 0x91, 0xd1,
+ 0xe9, 0x57, 0xd6, 0xce, 0xd9, 0xf0, 0x4a, 0x0e, 0x23, 0x2f, 0x6c, 0x86,
+ 0xe4, 0x79, 0xc8, 0x23, 0x4f, 0xb8, 0xf8, 0x05, 0x41, 0x64, 0xd5, 0x7f,
+ 0xdc, 0xdf, 0xdd, 0xdd, 0x3b, 0xd8, 0xfb, 0xfc, 0xd9, 0xee, 0xc1, 0xde,
+ 0xde, 0xde, 0xfe, 0xc1, 0xde, 0xc1, 0xc1, 0xfe, 0xee, 0xcf, 0x3b, 0xe4,
+ 0x3f, 0xfa, 0x98, 0x67, 0xb7, 0x1a, 0x97, 0x66, 0x37, 0x1f, 0xb6, 0x75,
+ 0xdd, 0xdc, 0x31, 0x14, 0x80, 0x1d, 0x7d, 0xd8, 0xd7, 0xaa, 0xf9, 0x58,
+ 0xe2, 0x19, 0xce, 0xaa, 0x61, 0x92, 0xc9, 0x85, 0x4b, 0x46, 0xc7, 0x19,
+ 0xf4, 0x88, 0xf0, 0xd1, 0xab, 0xbf, 0x2f, 0x69, 0xa4, 0x63, 0x52, 0x07,
+ 0xa0, 0xd3, 0xd4, 0x36, 0xf5, 0xf7, 0x7a, 0x56, 0x8e, 0xc7, 0x48, 0x6e,
+ 0xb2, 0xd9, 0xef, 0xc3, 0x84, 0xd8, 0x96, 0x3f, 0xf0, 0x96, 0x90, 0xc0,
+ 0x21, 0x70, 0xc7, 0x7c, 0xd0, 0xdd, 0xec, 0x38, 0xcf, 0x9e, 0xd9, 0x01,
+ 0x93, 0x92, 0x2a, 0x8f, 0xc0, 0xd1, 0x6d, 0x26, 0xa9, 0xb2, 0x59, 0x71,
+ 0xc9, 0x55, 0xf6, 0xf9, 0xee, 0xc1, 0x01, 0x55, 0x06, 0xfa, 0xd3, 0x5e,
+ 0x5f, 0x20, 0xe3, 0x7e, 0x1e, 0x4c, 0xdf, 0x5e, 0x4f, 0xdc, 0x06, 0x99,
+ 0x1f, 0xfe, 0x38, 0x8b, 0xe5, 0x3c, 0xab, 0x8c, 0x21, 0x42, 0x85, 0xa0,
+ 0x81, 0x99, 0x86, 0xc7, 0x90, 0x59, 0x18, 0xc1, 0xd9, 0xd4, 0xc9, 0xd7,
+ 0xa1, 0x1b, 0x81, 0xd9, 0xa4, 0x2d, 0x4f, 0x05, 0x33, 0x8a, 0xb9, 0x21,
+ 0xda, 0xb6, 0x51, 0x1d, 0x0b, 0x50, 0x4d, 0xce, 0x76, 0xe3, 0x3c, 0x3f,
+ 0xbe, 0x6f, 0x45, 0x32, 0xe0, 0x70, 0x15, 0x5c, 0x9e, 0x98, 0x1e, 0x67,
+ 0x1d, 0x1e, 0x1e, 0x13, 0x4f, 0xb9, 0x95, 0x14, 0xbf, 0x1f, 0xbd, 0xc1,
+ 0xee, 0x3f, 0xd9, 0xfb, 0x99, 0xd1, 0xca, 0x74, 0x20, 0xdc, 0xac, 0x69,
+ 0xe8, 0xc5, 0x4f, 0xe2, 0xd2, 0x8d, 0xb4, 0x95, 0x0d, 0xaf, 0x87, 0xaa,
+ 0x55, 0x88, 0xb7, 0xb1, 0xef, 0xe7, 0x95, 0x70, 0x25, 0x03, 0x2e, 0x3c,
+ 0x0e, 0x3b, 0x4d, 0x1d, 0x4a, 0xbe, 0xa7, 0x56, 0x07, 0x66, 0xab, 0xca,
+ 0xbd, 0x39, 0xbe, 0x3c, 0x34, 0x97, 0xc7, 0xb7, 0xa1, 0xa1, 0xff, 0x26,
+ 0x33, 0x56, 0x39, 0x2d, 0xf6, 0x16, 0xce, 0xc3, 0x47, 0xcb, 0x1f, 0x4e,
+ 0x73, 0xf7, 0x38, 0xd9, 0xa2, 0x00, 0xe5, 0x93, 0xcf, 0x9f, 0x3c, 0xde,
+ 0xe6, 0x62, 0x2d, 0xfc, 0x5a, 0x46, 0x29, 0x64, 0xf0, 0x4a, 0x0a, 0x7f,
+ 0x15, 0xf9, 0xef, 0xad, 0x48, 0x7a, 0x77, 0x71, 0xc2, 0x47, 0xfa, 0x86,
+ 0x69, 0x46, 0xd8, 0xe8, 0xed, 0xf2, 0x4d, 0xe2, 0xbe, 0xf5, 0x94, 0x8c,
+ 0x79, 0x4e, 0x5c, 0xa8, 0xa0, 0x67, 0xa0, 0x8b, 0xd1, 0xd2, 0x83, 0xe0,
+ 0x86, 0x35, 0x07, 0xb4, 0x44, 0x9d, 0x51, 0x29, 0x0b, 0x87, 0xce, 0x80,
+ 0x3c, 0x95, 0xb8, 0x9b, 0x65, 0x9f, 0x59, 0x0b, 0x8c, 0xec, 0x20, 0x96,
+ 0x47, 0x2c, 0xfd, 0x3b, 0x7c, 0xfd, 0xdb, 0x0c, 0xf8, 0x81, 0x52, 0x48,
+ 0xdb, 0xd0, 0x3c, 0xa8, 0xc8, 0x71, 0xea, 0x71, 0x2b, 0x61, 0xd5, 0x69,
+ 0x9b, 0x1e, 0xed, 0x9b, 0x32, 0x3e, 0x89, 0x28, 0xb2, 0x53, 0xc8, 0x68,
+ 0x96, 0x06, 0x9e, 0xc5, 0xbc, 0xe5, 0xf2, 0x11, 0xba, 0x0d, 0xd0, 0x5e,
+ 0x20, 0x2b, 0x61, 0x6e, 0xae, 0xa3, 0xea, 0x4e, 0x34, 0x6c, 0x98, 0x09,
+ 0xb6, 0x2c, 0x62, 0x07, 0x0f, 0xc4, 0xc4, 0x32, 0x7e, 0xb2, 0x8d, 0xe5,
+ 0x55, 0x52, 0xa3, 0xb9, 0xd5, 0x81, 0x96, 0xd8, 0x1f, 0xcc, 0xf5, 0x57,
+ 0x1e, 0x5c, 0xce, 0xcf, 0x40, 0xd5, 0xbf, 0xeb, 0x73, 0x1e, 0x92, 0x3a,
+ 0xed, 0x0e, 0x6c, 0x45, 0xd7, 0x98, 0x73, 0x17, 0xe8, 0x49, 0x6b, 0xfd,
+ 0x6c, 0xa1, 0x27, 0x3b, 0x3b, 0xdb, 0x2b, 0x7a, 0x23, 0xbf, 0x8e, 0x7d,
+ 0xfd, 0x1c, 0xb4, 0x45, 0x5e, 0xd2, 0xb7, 0x59, 0xf3, 0x76, 0xe3, 0x34,
+ 0xb5, 0x79, 0x4d, 0x2b, 0x39, 0x15, 0x58, 0x3c, 0xbb, 0x51, 0xd5, 0xbc,
+ 0xe2, 0xce, 0xab, 0xf0, 0x6a, 0x0f, 0x42, 0x90, 0x78, 0x4a, 0x23, 0xc7,
+ 0x15, 0xe2, 0x19, 0x13, 0x30, 0x4c, 0x0e, 0x69, 0x37, 0xb4, 0x3e, 0xec,
+ 0x75, 0x59, 0xfd, 0xb9, 0x5a, 0x19, 0x41, 0x95, 0x58, 0xeb, 0xce, 0xeb,
+ 0x7b, 0xbf, 0x54, 0x35, 0x4f, 0x59, 0x43, 0xac, 0xb3, 0x77, 0x9c, 0x31,
+ 0x43, 0x92, 0x95, 0x9c, 0x1e, 0xe3, 0x79, 0x5e, 0xb4, 0xea, 0xfd, 0x4a,
+ 0x23, 0xc0, 0xb9, 0xd8, 0x41, 0x80, 0x4c, 0xb5, 0x52, 0x92, 0x6e, 0xbf,
+ 0x06, 0x28, 0x48, 0x4a, 0x24, 0xef, 0x85, 0x15, 0x6b, 0xbb, 0x89, 0x19,
+ 0xa2, 0x30, 0xe6, 0xed, 0xd5, 0x9a, 0x8f, 0x3e, 0xef, 0x78, 0xc6, 0x30,
+ 0x59, 0x40, 0x05, 0x09, 0x8c, 0xc3, 0x93, 0x53, 0x02, 0xc5, 0x9e, 0x1a,
+ 0x13, 0x6f, 0xa4, 0xaa, 0x12, 0x40, 0xe2, 0x80, 0xeb, 0x16, 0x39, 0xa9,
+ 0xeb, 0x7d, 0x5b, 0x92, 0x48, 0xf3, 0x29, 0x61, 0xb7, 0x50, 0x84, 0x95,
+ 0x4d, 0x7f, 0xa1, 0x11, 0x35, 0xab, 0x65, 0xf4, 0xa5, 0x9a, 0x9d, 0xb6,
+ 0xa0, 0xe8, 0xa6, 0xe2, 0x15, 0x1f, 0xb3, 0x59, 0xb9, 0x80, 0x49, 0xcd,
+ 0x62, 0x1a, 0x65, 0xd1, 0xaa, 0x6c, 0x96, 0x7d, 0x14, 0xef, 0x2a, 0x13,
+ 0x1e, 0x7f, 0x23, 0x78, 0x05, 0xae, 0x5b, 0xdc, 0x78, 0x79, 0x2f, 0x2d,
+ 0x4c, 0x04, 0x7d, 0x74, 0x87, 0x79, 0xa3, 0x1c, 0x1d, 0x10, 0x7d, 0xdf,
+ 0x95, 0xe9, 0x30, 0x33, 0x64, 0xcb, 0x3c, 0x0c, 0xc8, 0xc8, 0x15, 0x68,
+ 0xfb, 0xbb, 0x5a, 0x18, 0x5f, 0xba, 0xb9, 0x22, 0xec, 0x2c, 0xd4, 0xea,
+ 0x97, 0xec, 0x7d, 0xef, 0x2b, 0x91, 0x3a, 0x87, 0x0c, 0xe8, 0xe6, 0xe9,
+ 0x93, 0xa7, 0x16, 0x2d, 0x5d, 0x19, 0x8b, 0x8c, 0x4a, 0xe6, 0xf4, 0x39,
+ 0xb9, 0x1c, 0x9b, 0xa3, 0x9c, 0x99, 0x7f, 0x02, 0x4e, 0xc9, 0x00, 0x6b,
+ 0xf3, 0x2c, 0x85, 0x9b, 0x3d, 0x44, 0x3b, 0x21, 0x6e, 0x90, 0x30, 0x25,
+ 0xff, 0x42, 0x53, 0xd5, 0x12, 0x7c, 0xe3, 0x7d, 0xbe, 0x0d, 0x29, 0xcc,
+ 0xdb, 0x4c, 0x86, 0xb6, 0xf7, 0x82, 0xf9, 0xe1, 0xfe, 0xbf, 0xe4, 0xa9,
+ 0xa4, 0x41, 0xb0, 0x1e, 0x52, 0x56, 0x3a, 0xbd, 0xbc, 0x0c, 0x63, 0xae,
+ 0x54, 0xfa, 0xf5, 0x92, 0xc2, 0x8f, 0xb6, 0xc4, 0x17, 0xf5, 0x62, 0x4e,
+ 0x77, 0x51, 0xc6, 0x45, 0x81, 0x6d, 0xe3, 0x64, 0xd2, 0x2d, 0xcd, 0xf2,
+ 0x72, 0xeb, 0xa7, 0xe5, 0x2d, 0x55, 0x34, 0xbe, 0xba, 0xca, 0x27, 0x14,
+ 0xf9, 0x77, 0xbc, 0xe2, 0x24, 0xe3, 0xf9, 0xc1, 0xb9, 0x16, 0x69, 0x33,
+ 0x63, 0x4b, 0x16, 0xcb, 0xf1, 0xcc, 0x5c, 0xd6, 0x9a, 0xcd, 0x62, 0x4e,
+ 0x15, 0x66, 0xc9, 0x58, 0x5b, 0x68, 0x8e, 0x09, 0x10, 0x61, 0x70, 0x76,
+ 0x32, 0x28, 0x10, 0x2d, 0xad, 0xa0, 0x82, 0xcf, 0x51, 0xda, 0x99, 0xd2,
+ 0x0c, 0xe6, 0x65, 0xa1, 0x09, 0x73, 0xcb, 0x9a, 0x09, 0x67, 0x11, 0xcd,
+ 0xe1, 0x3a, 0x5a, 0x09, 0x9e, 0x94, 0xb2, 0x0e, 0x62, 0x9a, 0xe3, 0x0d,
+ 0x7f, 0x30, 0xd3, 0xc1, 0xe2, 0x66, 0xa1, 0x2b, 0xad, 0x0a, 0x11, 0x6b,
+ 0x4b, 0x92, 0xa2, 0x85, 0xa3, 0x77, 0xfe, 0xfa, 0x7c, 0x98, 0x1c, 0x53,
+ 0x4b, 0xdc, 0x27, 0x51, 0x74, 0xe1, 0xa3, 0x31, 0xbf, 0x33, 0x83, 0xbd,
+ 0xa6, 0x0b, 0xec, 0xac, 0xa2, 0x7f, 0xa1, 0x35, 0xf9, 0x25, 0xbb, 0x65,
+ 0xf1, 0xdb, 0xf6, 0x57, 0x4d, 0x43, 0x9a, 0x64, 0x71, 0x8e, 0xbf, 0x9b,
+ 0xb3, 0x62, 0xd4, 0x2f, 0xbb, 0x4c, 0xee, 0x0b, 0x65, 0xd5, 0xa2, 0xe7,
+ 0xe2, 0x37, 0x13, 0xa3, 0x95, 0x41, 0xb7, 0x5a, 0xdc, 0x61, 0xfd, 0x3c,
+ 0xe1, 0xc8, 0xfa, 0x27, 0x37, 0xe0, 0x6d, 0x2d, 0xd9, 0x7e, 0x16, 0xbe,
+ 0xcb, 0x07, 0xab, 0x62, 0x62, 0xaa, 0xff, 0x67, 0x45, 0xa9, 0xd0, 0xc5,
+ 0xce, 0xf9, 0xd0, 0x79, 0x69, 0xc8, 0x88, 0x46, 0x71, 0x2a, 0x5a, 0x7e,
+ 0x45, 0xea, 0xbf, 0xc1, 0x24, 0x40, 0xdd, 0x6e, 0x90, 0x5b, 0x80, 0xad,
+ 0x16, 0x60, 0x14, 0xe8, 0x71, 0x01, 0x00, 0xa7, 0xea, 0xf9, 0x0c, 0xc5,
+ 0x18, 0x03, 0x00,
};
#define BUF_SIZE 0x10000
static voidpf zalloc_func(voidpf opaque, unsigned int items, unsigned int size)
diff --git a/src/tool_libinfo.c b/src/tool_libinfo.c
index 58357098..19ec65ac 100644
--- a/src/tool_libinfo.c
+++ b/src/tool_libinfo.c
@@ -99,4 +99,3 @@ CURLcode get_libcurl_info(void)
return CURLE_OK;
}
-
diff --git a/src/tool_libinfo.h b/src/tool_libinfo.h
index 298df801..b3a9b9cd 100644
--- a/src/tool_libinfo.h
+++ b/src/tool_libinfo.h
@@ -31,4 +31,3 @@ extern long built_in_protos;
CURLcode get_libcurl_info(void);
#endif /* HEADER_CURL_TOOL_LIBINFO_H */
-
diff --git a/src/tool_main.c b/src/tool_main.c
index b9f7eae2..612bfcb6 100644
--- a/src/tool_main.c
+++ b/src/tool_main.c
@@ -236,6 +236,56 @@ static void main_free(struct GlobalConfig *config)
config->last = NULL;
}
+#ifdef _WIN32
+/* TerminalSettings for Windows */
+static struct TerminalSettings {
+ HANDLE hStdOut;
+ DWORD dwOutputMode;
+ UINT nCodepage;
+} TerminalSettings;
+
+static void configure_terminal(void)
+{
+ /*
+ * If we're running Windows, enable VT output & set codepage to UTF-8.
+ * Note: VT mode flag can be set on any version of Windows, but VT
+ * processing only performed on Win10 >= Creators Update)
+ */
+
+ /* Define the VT flags in case we're building with an older SDK */
+#ifndef ENABLE_VIRTUAL_TERMINAL_PROCESSING
+ #define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004
+#endif
+
+ /* Cache current codepage (will restore on exit) & set codepage to UTF-8 */
+ memset(&TerminalSettings, 0, sizeof(TerminalSettings));
+ TerminalSettings.nCodepage = GetConsoleOutputCP();
+ SetConsoleOutputCP(65001);
+
+ /* Enable VT output */
+ TerminalSettings.hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
+ if((TerminalSettings.hStdOut != INVALID_HANDLE_VALUE)
+ && (GetConsoleMode(TerminalSettings.hStdOut,
+ &TerminalSettings.dwOutputMode))) {
+ SetConsoleMode(TerminalSettings.hStdOut,
+ TerminalSettings.dwOutputMode
+ | ENABLE_VIRTUAL_TERMINAL_PROCESSING);
+ }
+}
+#else
+#define configure_terminal()
+#endif
+
+static void restore_terminal(void)
+{
+#ifdef _WIN32
+ /* Restore Console output mode and codepage to whatever they were
+ * when Curl started */
+ SetConsoleMode(TerminalSettings.hStdOut, TerminalSettings.dwOutputMode);
+ SetConsoleOutputCP(TerminalSettings.nCodepage);
+#endif
+}
+
/*
** curl tool main function.
*/
@@ -245,6 +295,9 @@ int main(int argc, char *argv[])
struct GlobalConfig global;
memset(&global, 0, sizeof(global));
+ /* Perform any platform-specific terminal configuration */
+ configure_terminal();
+
main_checkfds();
#if defined(HAVE_SIGNAL) && defined(SIGPIPE)
@@ -270,6 +323,9 @@ int main(int argc, char *argv[])
main_free(&global);
}
+ /* Return the terminal to its original state */
+ restore_terminal();
+
#ifdef __NOVELL_LIBC__
if(getenv("_IN_NETWARE_BASH_") == NULL)
tool_pressanykey();
diff --git a/src/tool_main.h b/src/tool_main.h
index c97c3607..86881881 100644
--- a/src/tool_main.h
+++ b/src/tool_main.h
@@ -41,4 +41,3 @@
#endif
#endif /* HEADER_CURL_TOOL_MAIN_H */
-
diff --git a/src/tool_msgs.c b/src/tool_msgs.c
index 9cce8063..f5e1df25 100644
--- a/src/tool_msgs.c
+++ b/src/tool_msgs.c
@@ -67,7 +67,7 @@ static void voutf(struct GlobalConfig *config,
(void)fwrite(ptr, cut + 1, 1, config->errors);
fputs("\n", config->errors);
ptr += cut + 1; /* skip the space too */
- len -= cut;
+ len -= cut + 1;
}
else {
fputs(ptr, config->errors);
@@ -122,4 +122,3 @@ void helpf(FILE *errors, const char *fmt, ...)
#endif
"for more information\n");
}
-
diff --git a/src/tool_msgs.h b/src/tool_msgs.h
index e84c1b24..d1cc7f8d 100644
--- a/src/tool_msgs.h
+++ b/src/tool_msgs.h
@@ -29,4 +29,3 @@ void notef(struct GlobalConfig *config, const char *fmt, ...);
void helpf(FILE *errors, const char *fmt, ...);
#endif /* HEADER_CURL_TOOL_MSGS_H */
-
diff --git a/src/tool_operate.c b/src/tool_operate.c
index 2c3f6dd4..5a72b6a8 100644
--- a/src/tool_operate.c
+++ b/src/tool_operate.c
@@ -1262,6 +1262,9 @@ static CURLcode operate_do(struct GlobalConfig *global,
my_setopt(curl, CURLOPT_CONNECTTIMEOUT_MS,
(long)(config->connecttimeout * 1000));
+ if(config->doh_url)
+ my_setopt_str(curl, CURLOPT_DOH_URL, config->doh_url);
+
if(config->cipher_list)
my_setopt_str(curl, CURLOPT_SSL_CIPHER_LIST, config->cipher_list);
diff --git a/src/tool_operate.h b/src/tool_operate.h
index c54fe3fc..b84388bc 100644
--- a/src/tool_operate.h
+++ b/src/tool_operate.h
@@ -26,4 +26,3 @@
CURLcode operate(struct GlobalConfig *config, int argc, argv_item_t argv[]);
#endif /* HEADER_CURL_TOOL_OPERATE_H */
-
diff --git a/src/tool_operhlp.h b/src/tool_operhlp.h
index 446c5606..90c85492 100644
--- a/src/tool_operhlp.h
+++ b/src/tool_operhlp.h
@@ -36,4 +36,3 @@ char *add_file_name_to_url(CURL *curl, char *url, const char *filename);
CURLcode get_url_file_name(char **filename, const char *url);
#endif /* HEADER_CURL_TOOL_OPERHLP_H */
-
diff --git a/src/tool_panykey.c b/src/tool_panykey.c
index 14e1e05c..b0e55630 100644
--- a/src/tool_panykey.c
+++ b/src/tool_panykey.c
@@ -45,4 +45,3 @@ void tool_pressanykey(void)
}
#endif /* __SYMBIAN32__ || NETWARE */
-
diff --git a/src/tool_panykey.h b/src/tool_panykey.h
index 9d64418e..6371a88a 100644
--- a/src/tool_panykey.h
+++ b/src/tool_panykey.h
@@ -34,4 +34,3 @@ void tool_pressanykey(void);
#endif
#endif /* HEADER_CURL_TOOL_PANYKEY_H */
-
diff --git a/src/tool_parsecfg.c b/src/tool_parsecfg.c
index 34b5d8b2..e57d7602 100644
--- a/src/tool_parsecfg.c
+++ b/src/tool_parsecfg.c
@@ -356,4 +356,3 @@ static char *my_get_line(FILE *fp)
return line;
}
-
diff --git a/src/tool_parsecfg.h b/src/tool_parsecfg.h
index b676ec3c..34062619 100644
--- a/src/tool_parsecfg.h
+++ b/src/tool_parsecfg.h
@@ -26,4 +26,3 @@
int parseconfig(const char *filename, struct GlobalConfig *config);
#endif /* HEADER_CURL_TOOL_PARSECFG_H */
-
diff --git a/src/tool_sdecls.h b/src/tool_sdecls.h
index 48dd4aed..ebec9eeb 100644
--- a/src/tool_sdecls.h
+++ b/src/tool_sdecls.h
@@ -148,4 +148,3 @@ typedef enum {
#include "tool_cfgable.h"
#endif /* HEADER_CURL_TOOL_SDECLS_H */
-
diff --git a/src/tool_setup.h b/src/tool_setup.h
index 90b01d7e..854973e4 100644
--- a/src/tool_setup.h
+++ b/src/tool_setup.h
@@ -71,4 +71,3 @@
#endif
#endif /* HEADER_CURL_TOOL_SETUP_H */
-
diff --git a/src/tool_sleep.c b/src/tool_sleep.c
index a63d85ff..edb5aedc 100644
--- a/src/tool_sleep.c
+++ b/src/tool_sleep.c
@@ -55,4 +55,3 @@ void tool_go_sleep(long ms)
select(0, NULL, NULL, NULL, &timeout);
#endif
}
-
diff --git a/src/tool_sleep.h b/src/tool_sleep.h
index 6c51a930..3aaab52d 100644
--- a/src/tool_sleep.h
+++ b/src/tool_sleep.h
@@ -26,4 +26,3 @@
void tool_go_sleep(long ms);
#endif /* HEADER_CURL_TOOL_SLEEP_H */
-
diff --git a/src/tool_urlglob.c b/src/tool_urlglob.c
index e1b99410..e4a5c33d 100644
--- a/src/tool_urlglob.c
+++ b/src/tool_urlglob.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -459,18 +459,19 @@ CURLcode glob_url(URLGlob **glob, char *url, unsigned long *urlnum,
*urlnum = amount;
else {
if(error && glob_expand->error) {
- char text[128];
+ char text[512];
const char *t;
if(glob_expand->pos) {
- snprintf(text, sizeof(text), "%s in column %zu", glob_expand->error,
- glob_expand->pos);
+ snprintf(text, sizeof(text), "%s in URL position %zu:\n%s\n%*s^",
+ glob_expand->error,
+ glob_expand->pos, url, glob_expand->pos - 1, " ");
t = text;
}
else
t = glob_expand->error;
/* send error description to the error-stream */
- fprintf(error, "curl: (%d) [globbing] %s\n", res, t);
+ fprintf(error, "curl: (%d) %s\n", res, t);
}
/* it failed, we cleanup */
glob_cleanup(glob_expand);
@@ -552,7 +553,7 @@ CURLcode glob_next_url(char **globbed, URLGlob *glob)
}
}
if(carry) { /* first pattern ptr has run into overflow, done! */
- /* TODO: verify if this should actally return CURLE_OK. */
+ /* TODO: verify if this should actually return CURLE_OK. */
return CURLE_OK; /* CURLE_OK to match previous behavior */
}
}
diff --git a/src/tool_urlglob.h b/src/tool_urlglob.h
index 82d9d46d..55ac3461 100644
--- a/src/tool_urlglob.h
+++ b/src/tool_urlglob.h
@@ -74,4 +74,3 @@ CURLcode glob_match_url(char **, char *, URLGlob *);
void glob_cleanup(URLGlob* glob);
#endif /* HEADER_CURL_TOOL_URLGLOB_H */
-
diff --git a/src/tool_util.c b/src/tool_util.c
index 875411e3..1a5b773e 100644
--- a/src/tool_util.c
+++ b/src/tool_util.c
@@ -40,7 +40,8 @@ struct timeval tvnow(void)
** is typically in the range of 10 milliseconds to 16 milliseconds.
*/
struct timeval now;
-#if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0600)
+#if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0600) && \
+ (!defined(__MINGW32__) || defined(__MINGW64_VERSION_MAJOR))
ULONGLONG milliseconds = GetTickCount64();
#else
DWORD milliseconds = GetTickCount();
diff --git a/src/tool_util.h b/src/tool_util.h
index fda1e61b..5339c116 100644
--- a/src/tool_util.h
+++ b/src/tool_util.h
@@ -34,4 +34,3 @@ struct timeval tvnow(void);
long tvdiff(struct timeval t1, struct timeval t2);
#endif /* HEADER_CURL_TOOL_UTIL_H */
-
diff --git a/src/tool_version.h b/src/tool_version.h
index bb5f4e2a..333597da 100644
--- a/src/tool_version.h
+++ b/src/tool_version.h
@@ -25,7 +25,7 @@
#define CURL_NAME "curl"
#define CURL_COPYRIGHT LIBCURL_COPYRIGHT
-#define CURL_VERSION "7.61.1"
+#define CURL_VERSION "7.62.0"
#define CURL_VERSION_MAJOR LIBCURL_VERSION_MAJOR
#define CURL_VERSION_MINOR LIBCURL_VERSION_MINOR
#define CURL_VERSION_PATCH LIBCURL_VERSION_PATCH
diff --git a/src/tool_vms.c b/src/tool_vms.c
index cc30fe0f..54871a65 100644
--- a/src/tool_vms.c
+++ b/src/tool_vms.c
@@ -216,4 +216,3 @@ int dmy_lib$initialize = (int) LIB$INITIALIZE;
#endif /* __DECC && !__VAX && __CRTL_VER && __CRTL_VER >= 70301000 */
#endif /* __VMS */
-
diff --git a/src/tool_vms.h b/src/tool_vms.h
index 6656a599..96c86f1c 100644
--- a/src/tool_vms.h
+++ b/src/tool_vms.h
@@ -44,4 +44,3 @@ void vms_special_exit(int code, int vms_show);
#endif /* __VMS */
#endif /* HEADER_CURL_TOOL_VMS_H */
-
diff --git a/tests/FILEFORMAT b/tests/FILEFORMAT
index 135ded6c..68a7854f 100644
--- a/tests/FILEFORMAT
+++ b/tests/FILEFORMAT
@@ -226,7 +226,7 @@ debug
getrlimit
GnuTLS
GSS-API
-http2
+http/2
idn
ipv6
Kerberos
@@ -445,11 +445,30 @@ 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>
+<file1>
+1 to 4 can be appended to 'file' to compare more files.
+</file1>
+<file2>
+</file2>
+<file3>
+</file3>
+<file4>
+</file4>
<stripfile>
One perl op per line that operates on the output file or stdout before being
compared with what is stored in the test file. This is pretty
advanced. Example: "s/^EPRT .*/EPRT stripped/"
</stripfile>
+<stripfile1>
+1 to 4 can be appended to 'stripfile' to strip the correspending <fileN>
+content
+</stripfile1>
+<stripfile2>
+</stripfile2>
+<stripfile3>
+</stripfile3>
+<stripfile4>
+</stripfile4>
<upload>
the contents of the upload data curl should have sent
</upload>
diff --git a/tests/certs/EdelCurlRoot-ca.cacert b/tests/certs/EdelCurlRoot-ca.cacert
index d3ec4d35..ac46717a 100644
--- a/tests/certs/EdelCurlRoot-ca.cacert
+++ b/tests/certs/EdelCurlRoot-ca.cacert
@@ -1,22 +1,22 @@
Certificate:
Data:
Version: 3 (0x2)
- Serial Number: 14269504311616 (0xcfa60bc5140)
- Signature Algorithm: sha1WithRSAEncryption
+ Serial Number: 15373408817751 (0xdfb66925257)
+ Signature Algorithm: sha256WithRSAEncryption
Issuer:
countryName = NN
organizationName = Edel Curl Arctic Illudium Research Cloud
commonName = Northern Nowhere Trust Anchor
Validity
- Not Before: Mar 21 15:07:11 2015 GMT
- Not After : Aug 24 15:07:11 2031 GMT
+ Not Before: Sep 19 07:08:01 2018 GMT
+ Not After : Feb 22 07:08:01 2035 GMT
Subject:
countryName = NN
organizationName = Edel Curl Arctic Illudium Research Cloud
commonName = Northern Nowhere Trust Anchor
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
+ RSA Public-Key: (2048 bit)
Modulus:
00:e1:4c:d9:74:1a:a4:a3:42:57:a4:7a:2e:74:02:
08:49:6a:6a:1d:db:de:c3:43:d6:48:60:12:30:ed:
@@ -44,27 +44,27 @@ Certificate:
Certificate Sign, CRL Sign
X509v3 Subject Key Identifier:
12:CA:BA:4B:46:04:A7:75:8A:2C:E8:0E:54:94:BC:12:65:A6:7B:CE
- Signature Algorithm: sha1WithRSAEncryption
- d4:d0:22:19:78:2e:2e:1d:83:c6:79:89:c1:a8:23:43:4e:86:
- 76:16:31:bd:b7:c0:44:2c:b9:2c:79:99:2f:02:48:33:1e:a7:
- d7:0e:d9:f1:cb:ed:39:1a:34:b3:50:af:c9:8d:64:bf:ff:72:
- 1b:1d:e0:5d:40:3b:b5:00:7c:d1:78:ff:45:ee:d9:05:3f:32:
- f6:cd:f4:d3:79:58:d8:44:94:65:f5:c3:a9:5d:d8:13:d9:57:
- e7:13:18:fa:f3:72:0b:cf:a3:4a:f4:6e:5e:74:30:3c:cb:76:
- 28:f9:44:9a:ba:3e:b7:3e:01:79:3e:cb:5c:df:5a:d4:6c:34:
- aa:bd:c0:6d:25:85:e5:28:f6:15:e1:9d:af:a7:f7:a7:6c:2a:
- 1d:1d:93:1e:89:71:66:c7:0b:e4:ce:36:c1:21:c4:73:5d:2b:
- 24:a9:3d:26:df:1c:e8:60:69:e3:82:98:c3:5b:91:9e:da:bd:
- 27:ee:e0:fd:64:ea:7d:35:91:fd:5e:1e:33:82:24:39:7b:49:
- af:23:05:fc:6e:53:7e:07:69:f4:e7:e3:1f:f0:1c:59:87:4c:
- b6:74:c9:60:ed:f5:ab:a0:31:8a:05:d4:64:9f:1e:16:b6:9f:
- f8:7e:0d:ac:b7:d9:16:b9:b3:bc:0b:03:6b:24:e9:46:81:dc:
- d8:52:63:75
+ Signature Algorithm: sha256WithRSAEncryption
+ 2c:82:a4:ff:21:f3:fc:ba:6a:7a:11:b1:56:d4:9a:8f:4d:bf:
+ 23:cf:d0:0b:d4:e2:6f:7a:a7:40:1a:c6:39:fa:db:ae:32:ab:
+ 3d:bb:9f:45:d1:46:a5:95:27:3c:d4:89:d2:43:84:4c:43:70:
+ ff:16:3c:a8:8c:e6:5c:0a:fb:20:1d:a7:c3:90:66:41:ef:be:
+ 91:de:9d:9b:5d:1b:f1:59:44:d3:77:32:a3:6c:6e:24:a4:2d:
+ a8:50:5f:86:81:47:fa:d7:80:a7:e7:fd:f2:00:bd:b8:cc:b5:
+ 2f:cc:50:c7:46:74:3a:05:12:cc:e2:c4:d0:e6:b0:59:a1:16:
+ 73:ff:3d:12:f5:89:be:95:cd:cc:43:22:3b:28:63:0d:9b:69:
+ da:d3:28:75:55:97:3a:5d:be:2c:7d:30:67:77:4f:51:a0:b9:
+ 07:18:9f:47:23:d6:73:dc:12:7f:0d:fa:2d:5a:d0:2a:89:0b:
+ 29:dd:a6:ba:a0:a1:f5:13:e2:dd:48:e4:16:c7:d6:c3:68:2f:
+ 4f:40:e5:da:cf:04:13:86:b5:10:83:fe:45:59:4d:92:3f:20:
+ be:45:ca:b6:f7:cc:91:12:92:df:00:11:13:14:0b:61:9a:64:
+ 92:50:f4:3f:74:5f:9e:24:ba:ff:cf:d7:16:51:c9:75:95:e9:
+ 65:e9:8d:b4
-----BEGIN CERTIFICATE-----
-MIIDkjCCAnqgAwIBAgIGDPpgvFFAMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNVBAYT
+MIIDkjCCAnqgAwIBAgIGDftmklJXMA0GCSqGSIb3DQEBCwUAMGgxCzAJBgNVBAYT
Ak5OMTEwLwYDVQQKDChFZGVsIEN1cmwgQXJjdGljIElsbHVkaXVtIFJlc2VhcmNo
IENsb3VkMSYwJAYDVQQDDB1Ob3J0aGVybiBOb3doZXJlIFRydXN0IEFuY2hvcjAe
-Fw0xNTAzMjExNTA3MTFaFw0zMTA4MjQxNTA3MTFaMGgxCzAJBgNVBAYTAk5OMTEw
+Fw0xODA5MTkwNzA4MDFaFw0zNTAyMjIwNzA4MDFaMGgxCzAJBgNVBAYTAk5OMTEw
LwYDVQQKDChFZGVsIEN1cmwgQXJjdGljIElsbHVkaXVtIFJlc2VhcmNoIENsb3Vk
MSYwJAYDVQQDDB1Ob3J0aGVybiBOb3doZXJlIFRydXN0IEFuY2hvcjCCASIwDQYJ
KoZIhvcNAQEBBQADggEPADCCAQoCggEBAOFM2XQapKNCV6R6LnQCCElqah3b3sND
@@ -74,11 +74,11 @@ YH3QF28jvInAvBa4lPCyEI3I4DWX7Y/G25vNqvaMRdwP7qB4Er72ffT3toxO5X0y
6hkBzBpt0tVXNdrArkY50zPt+MAerT1ob6hTJKzW+d0rUVB35LddrUiAXWVX5esH
gn3Lck8GajTUOMhr7Yo6aF4143gU2l2Gn+XUHN2QwnyiANSVZQSF/4MCAwEAAaNC
MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLK
-uktGBKd1iizoDlSUvBJlpnvOMA0GCSqGSIb3DQEBBQUAA4IBAQDU0CIZeC4uHYPG
-eYnBqCNDToZ2FjG9t8BELLkseZkvAkgzHqfXDtnxy+05GjSzUK/JjWS//3IbHeBd
-QDu1AHzReP9F7tkFPzL2zfTTeVjYRJRl9cOpXdgT2VfnExj683ILz6NK9G5edDA8
-y3Yo+USauj63PgF5Pstc31rUbDSqvcBtJYXlKPYV4Z2vp/enbCodHZMeiXFmxwvk
-zjbBIcRzXSskqT0m3xzoYGnjgpjDW5Ge2r0n7uD9ZOp9NZH9Xh4zgiQ5e0mvIwX8
-blN+B2n05+Mf8BxZh0y2dMlg7fWroDGKBdRknx4Wtp/4fg2st9kWubO8CwNrJOlG
-gdzYUmN1
+uktGBKd1iizoDlSUvBJlpnvOMA0GCSqGSIb3DQEBCwUAA4IBAQAsgqT/IfP8ump6
+EbFW1JqPTb8jz9AL1OJveqdAGsY5+tuuMqs9u59F0UallSc81InSQ4RMQ3D/Fjyo
+jOZcCvsgHafDkGZB776R3p2bXRvxWUTTdzKjbG4kpC2oUF+GgUf614Cn5/3yAL24
+zLUvzFDHRnQ6BRLM4sTQ5rBZoRZz/z0S9Ym+lc3MQyI7KGMNm2na0yh1VZc6Xb4s
+fTBnd09RoLkHGJ9HI9Zz3BJ/DfotWtAqiQsp3aa6oKH1E+LdSOQWx9bDaC9PQOXa
+zwQThrUQg/5FWU2SPyC+Rcq298yREpLfABETFAthmmSSUPQ/dF+eJLr/z9cWUcl1
+lell6Y20
-----END CERTIFICATE-----
diff --git a/tests/certs/EdelCurlRoot-ca.crt b/tests/certs/EdelCurlRoot-ca.crt
index d3ec4d35..ac46717a 100644
--- a/tests/certs/EdelCurlRoot-ca.crt
+++ b/tests/certs/EdelCurlRoot-ca.crt
@@ -1,22 +1,22 @@
Certificate:
Data:
Version: 3 (0x2)
- Serial Number: 14269504311616 (0xcfa60bc5140)
- Signature Algorithm: sha1WithRSAEncryption
+ Serial Number: 15373408817751 (0xdfb66925257)
+ Signature Algorithm: sha256WithRSAEncryption
Issuer:
countryName = NN
organizationName = Edel Curl Arctic Illudium Research Cloud
commonName = Northern Nowhere Trust Anchor
Validity
- Not Before: Mar 21 15:07:11 2015 GMT
- Not After : Aug 24 15:07:11 2031 GMT
+ Not Before: Sep 19 07:08:01 2018 GMT
+ Not After : Feb 22 07:08:01 2035 GMT
Subject:
countryName = NN
organizationName = Edel Curl Arctic Illudium Research Cloud
commonName = Northern Nowhere Trust Anchor
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
+ RSA Public-Key: (2048 bit)
Modulus:
00:e1:4c:d9:74:1a:a4:a3:42:57:a4:7a:2e:74:02:
08:49:6a:6a:1d:db:de:c3:43:d6:48:60:12:30:ed:
@@ -44,27 +44,27 @@ Certificate:
Certificate Sign, CRL Sign
X509v3 Subject Key Identifier:
12:CA:BA:4B:46:04:A7:75:8A:2C:E8:0E:54:94:BC:12:65:A6:7B:CE
- Signature Algorithm: sha1WithRSAEncryption
- d4:d0:22:19:78:2e:2e:1d:83:c6:79:89:c1:a8:23:43:4e:86:
- 76:16:31:bd:b7:c0:44:2c:b9:2c:79:99:2f:02:48:33:1e:a7:
- d7:0e:d9:f1:cb:ed:39:1a:34:b3:50:af:c9:8d:64:bf:ff:72:
- 1b:1d:e0:5d:40:3b:b5:00:7c:d1:78:ff:45:ee:d9:05:3f:32:
- f6:cd:f4:d3:79:58:d8:44:94:65:f5:c3:a9:5d:d8:13:d9:57:
- e7:13:18:fa:f3:72:0b:cf:a3:4a:f4:6e:5e:74:30:3c:cb:76:
- 28:f9:44:9a:ba:3e:b7:3e:01:79:3e:cb:5c:df:5a:d4:6c:34:
- aa:bd:c0:6d:25:85:e5:28:f6:15:e1:9d:af:a7:f7:a7:6c:2a:
- 1d:1d:93:1e:89:71:66:c7:0b:e4:ce:36:c1:21:c4:73:5d:2b:
- 24:a9:3d:26:df:1c:e8:60:69:e3:82:98:c3:5b:91:9e:da:bd:
- 27:ee:e0:fd:64:ea:7d:35:91:fd:5e:1e:33:82:24:39:7b:49:
- af:23:05:fc:6e:53:7e:07:69:f4:e7:e3:1f:f0:1c:59:87:4c:
- b6:74:c9:60:ed:f5:ab:a0:31:8a:05:d4:64:9f:1e:16:b6:9f:
- f8:7e:0d:ac:b7:d9:16:b9:b3:bc:0b:03:6b:24:e9:46:81:dc:
- d8:52:63:75
+ Signature Algorithm: sha256WithRSAEncryption
+ 2c:82:a4:ff:21:f3:fc:ba:6a:7a:11:b1:56:d4:9a:8f:4d:bf:
+ 23:cf:d0:0b:d4:e2:6f:7a:a7:40:1a:c6:39:fa:db:ae:32:ab:
+ 3d:bb:9f:45:d1:46:a5:95:27:3c:d4:89:d2:43:84:4c:43:70:
+ ff:16:3c:a8:8c:e6:5c:0a:fb:20:1d:a7:c3:90:66:41:ef:be:
+ 91:de:9d:9b:5d:1b:f1:59:44:d3:77:32:a3:6c:6e:24:a4:2d:
+ a8:50:5f:86:81:47:fa:d7:80:a7:e7:fd:f2:00:bd:b8:cc:b5:
+ 2f:cc:50:c7:46:74:3a:05:12:cc:e2:c4:d0:e6:b0:59:a1:16:
+ 73:ff:3d:12:f5:89:be:95:cd:cc:43:22:3b:28:63:0d:9b:69:
+ da:d3:28:75:55:97:3a:5d:be:2c:7d:30:67:77:4f:51:a0:b9:
+ 07:18:9f:47:23:d6:73:dc:12:7f:0d:fa:2d:5a:d0:2a:89:0b:
+ 29:dd:a6:ba:a0:a1:f5:13:e2:dd:48:e4:16:c7:d6:c3:68:2f:
+ 4f:40:e5:da:cf:04:13:86:b5:10:83:fe:45:59:4d:92:3f:20:
+ be:45:ca:b6:f7:cc:91:12:92:df:00:11:13:14:0b:61:9a:64:
+ 92:50:f4:3f:74:5f:9e:24:ba:ff:cf:d7:16:51:c9:75:95:e9:
+ 65:e9:8d:b4
-----BEGIN CERTIFICATE-----
-MIIDkjCCAnqgAwIBAgIGDPpgvFFAMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNVBAYT
+MIIDkjCCAnqgAwIBAgIGDftmklJXMA0GCSqGSIb3DQEBCwUAMGgxCzAJBgNVBAYT
Ak5OMTEwLwYDVQQKDChFZGVsIEN1cmwgQXJjdGljIElsbHVkaXVtIFJlc2VhcmNo
IENsb3VkMSYwJAYDVQQDDB1Ob3J0aGVybiBOb3doZXJlIFRydXN0IEFuY2hvcjAe
-Fw0xNTAzMjExNTA3MTFaFw0zMTA4MjQxNTA3MTFaMGgxCzAJBgNVBAYTAk5OMTEw
+Fw0xODA5MTkwNzA4MDFaFw0zNTAyMjIwNzA4MDFaMGgxCzAJBgNVBAYTAk5OMTEw
LwYDVQQKDChFZGVsIEN1cmwgQXJjdGljIElsbHVkaXVtIFJlc2VhcmNoIENsb3Vk
MSYwJAYDVQQDDB1Ob3J0aGVybiBOb3doZXJlIFRydXN0IEFuY2hvcjCCASIwDQYJ
KoZIhvcNAQEBBQADggEPADCCAQoCggEBAOFM2XQapKNCV6R6LnQCCElqah3b3sND
@@ -74,11 +74,11 @@ YH3QF28jvInAvBa4lPCyEI3I4DWX7Y/G25vNqvaMRdwP7qB4Er72ffT3toxO5X0y
6hkBzBpt0tVXNdrArkY50zPt+MAerT1ob6hTJKzW+d0rUVB35LddrUiAXWVX5esH
gn3Lck8GajTUOMhr7Yo6aF4143gU2l2Gn+XUHN2QwnyiANSVZQSF/4MCAwEAAaNC
MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLK
-uktGBKd1iizoDlSUvBJlpnvOMA0GCSqGSIb3DQEBBQUAA4IBAQDU0CIZeC4uHYPG
-eYnBqCNDToZ2FjG9t8BELLkseZkvAkgzHqfXDtnxy+05GjSzUK/JjWS//3IbHeBd
-QDu1AHzReP9F7tkFPzL2zfTTeVjYRJRl9cOpXdgT2VfnExj683ILz6NK9G5edDA8
-y3Yo+USauj63PgF5Pstc31rUbDSqvcBtJYXlKPYV4Z2vp/enbCodHZMeiXFmxwvk
-zjbBIcRzXSskqT0m3xzoYGnjgpjDW5Ge2r0n7uD9ZOp9NZH9Xh4zgiQ5e0mvIwX8
-blN+B2n05+Mf8BxZh0y2dMlg7fWroDGKBdRknx4Wtp/4fg2st9kWubO8CwNrJOlG
-gdzYUmN1
+uktGBKd1iizoDlSUvBJlpnvOMA0GCSqGSIb3DQEBCwUAA4IBAQAsgqT/IfP8ump6
+EbFW1JqPTb8jz9AL1OJveqdAGsY5+tuuMqs9u59F0UallSc81InSQ4RMQ3D/Fjyo
+jOZcCvsgHafDkGZB776R3p2bXRvxWUTTdzKjbG4kpC2oUF+GgUf614Cn5/3yAL24
+zLUvzFDHRnQ6BRLM4sTQ5rBZoRZz/z0S9Ym+lc3MQyI7KGMNm2na0yh1VZc6Xb4s
+fTBnd09RoLkHGJ9HI9Zz3BJ/DfotWtAqiQsp3aa6oKH1E+LdSOQWx9bDaC9PQOXa
+zwQThrUQg/5FWU2SPyC+Rcq298yREpLfABETFAthmmSSUPQ/dF+eJLr/z9cWUcl1
+lell6Y20
-----END CERTIFICATE-----
diff --git a/tests/certs/EdelCurlRoot-ca.der b/tests/certs/EdelCurlRoot-ca.der
index 3f4ec7b0..f95f7e84 100644
--- a/tests/certs/EdelCurlRoot-ca.der
+++ b/tests/certs/EdelCurlRoot-ca.der
Binary files differ
diff --git a/tests/certs/EdelCurlRoot-ca.prm b/tests/certs/EdelCurlRoot-ca.prm
index d0eff489..2e810473 100644
--- a/tests/certs/EdelCurlRoot-ca.prm
+++ b/tests/certs/EdelCurlRoot-ca.prm
@@ -15,4 +15,3 @@ commonName_value = Northern Nowhere Trust Anchor
basicConstraints = critical,CA:true
keyUsage = critical,keyCertSign,cRLSign
subjectKeyIdentifier = hash
-
diff --git a/tests/certs/Server-localhost-firstSAN-sv.crl b/tests/certs/Server-localhost-firstSAN-sv.crl
index af0be0d3..66b2ad48 100644
--- a/tests/certs/Server-localhost-firstSAN-sv.crl
+++ b/tests/certs/Server-localhost-firstSAN-sv.crl
@@ -1,13 +1,15 @@
-----BEGIN X509 CRL-----
-MIIB9TCB3gIBATANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJOTjExMC8GA1UE
-CgwoRWRlbCBDdXJsIEFyY3RpYyBJbGx1ZGl1bSBSZXNlYXJjaCBDbG91ZDEmMCQG
-A1UEAwwdTm9ydGhlcm4gTm93aGVyZSBUcnVzdCBBbmNob3IXDTE2MDgzMDE4MzIx
-NVoXDTE2MDkyOTE4MzIxNVowMjAXAgYNZJ8o86IXDTE2MDgzMDE4MzAxNVowFwIG
-DWSfO0UqFw0xNjA4MzAxODMyMTVaoA4wDDAKBgNVHRQEAwIBATANBgkqhkiG9w0B
-AQUFAAOCAQEAOUlXQDrOURgODds6feyO+87oPHkgTveOiTm8CtSVHObxwkPkHTIg
-pivd7iXccgEc8CstcGF9Pk5KLVJrXXxEKgGr69NZNGtHa8xXlYSIh+Vre0Pni3Px
-sUAMcsnvGt+cYw/5s/2Wy9u5UVzfJwdxjkxMMp9X648AqeSop229541zGV47M4ox
-h0wh2Mj/w/CFUKw0ijVgVWff5DhKXVaLPCXdh7hhgXcsYUZ4W3G/iOL/jd+Ji88o
-OmZvoP+MOco6or13rz178bGB1mS626z7EU/HNgP8sn25TyQwwopr9uW6H7VvRMaI
-6uwWvihKgoGCRVSVwYEfX+oOLadfJqdHdg==
+MIICQTCCASkCAQEwDQYJKoZIhvcNAQEFBQAwaDELMAkGA1UEBhMCTk4xMTAvBgNV
+BAoMKEVkZWwgQ3VybCBBcmN0aWMgSWxsdWRpdW0gUmVzZWFyY2ggQ2xvdWQxJjAk
+BgNVBAMMHU5vcnRoZXJuIE5vd2hlcmUgVHJ1c3QgQW5jaG9yFw0xODA5MTkwNzE0
+NDhaFw0xODEwMTkwNzE0NDhaMH0wFwIGDftmwfBTFw0xODA5MTkwNzEzMTRaMBcC
+Bg37ZsrxnhcNMTgwOTE5MDcxNDEyWjAXAgYN+2bMn24XDTE4MDkxOTA3MTQyM1ow
+FwIGDftmzumEFw0xODA5MTkwNzE0MzhaMBcCBg37ZtBwRBcNMTgwOTE5MDcxNDQ4
+WqAOMAwwCgYDVR0UBAMCAQEwDQYJKoZIhvcNAQEFBQADggEBAA0CKirTrPR1TyFP
+60Z0iW6b7zZFRIiRt+HBOntYdWLFUin1TpbDAGh3ddUPgQ0eGNuvnDA2FZLP787S
+JhXr65bonMEe7p17Cbh2swycdAuQsMYP6lFg1aIdjXB9/g+unG7KsB16BGYzalOs
+4crSfP6Z11JnFFmVp9jOOwL65to/3GQwVxfWamEKDFOMrPba6dkTAU9+OCV1CZYd
+anEjWrewmTj8nD7nb5fZ3fRQPVvwLbtkoGFmSHg8Qy9uDBGdRrw0V2w+ntkQMIJ9
+ILhQZDcaIN4MsnBTn/esrfvFVKomf9i78SCEhRvmTWmpYasI4oJzfmlLb1Dh6JPG
+59JdagI=
-----END X509 CRL-----
diff --git a/tests/certs/Server-localhost-firstSAN-sv.crt b/tests/certs/Server-localhost-firstSAN-sv.crt
index 5e37ef0e..ba53c28c 100644
--- a/tests/certs/Server-localhost-firstSAN-sv.crt
+++ b/tests/certs/Server-localhost-firstSAN-sv.crt
@@ -1,32 +1,41 @@
Certificate:
Data:
Version: 3 (0x2)
- Serial Number: 14725819352362 (0xd649f3b452a)
- Signature Algorithm: sha1WithRSAEncryption
+ Serial Number: 15373412888644 (0xdfb66d07044)
+ Signature Algorithm: sha256WithRSAEncryption
Issuer:
countryName = NN
organizationName = Edel Curl Arctic Illudium Research Cloud
commonName = Northern Nowhere Trust Anchor
Validity
- Not Before: Aug 30 18:32:15 2016 GMT
- Not After : Nov 16 18:32:15 2024 GMT
+ Not Before: Sep 19 07:14:48 2018 GMT
+ Not After : Dec 6 07:14:48 2026 GMT
Subject:
countryName = NN
organizationName = Edel Curl Arctic Illudium Research Cloud
commonName = localhost.nn
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
- Public-Key: (1024 bit)
+ RSA Public-Key: (2048 bit)
Modulus:
- 00:c5:87:2e:fb:f5:88:8a:39:4c:62:88:9f:fb:4a:
- 02:1c:27:92:9d:0b:65:a2:70:1f:d1:b7:de:c8:1d:
- 87:28:4b:9c:4b:cc:f6:f6:7c:83:1f:2d:76:be:41:
- 29:5e:31:fa:23:0c:2d:7d:cb:38:c2:8b:54:8f:fc:
- 6a:50:6d:c7:d7:af:72:fb:3b:a1:a7:4d:c4:1b:d2:
- 0d:75:7c:92:62:97:48:c4:e8:12:c0:00:33:66:0e:
- 28:17:0f:5c:36:d6:50:70:ec:c8:9f:a2:ae:b9:eb:
- eb:19:05:f0:53:83:42:2a:ae:40:1f:fa:fb:7a:b7:
- 86:4c:ab:6b:28:0b:2f:7f:81
+ 00:b5:a0:56:65:ff:1a:1d:9a:4d:f1:17:be:14:c7:
+ 32:fe:51:a0:a3:22:26:59:6c:d5:0c:74:a9:6c:26:
+ 1c:a6:92:66:1d:96:0e:59:cb:7d:05:01:b0:31:13:
+ dc:db:e6:81:f1:79:43:80:08:37:74:2e:51:82:b6:
+ 87:7c:fd:87:2d:fd:d0:d3:42:32:c9:a8:d1:cc:e0:
+ 37:7f:e2:3e:65:92:d2:4d:fd:79:ed:ef:23:d5:31:
+ 2f:fb:ef:5f:03:68:49:6a:7c:aa:e9:70:23:6b:43:
+ 95:bd:5e:d1:f8:16:a7:d5:e0:bd:7f:63:44:a4:2c:
+ 4d:34:16:32:11:12:ce:df:16:a4:d8:06:a5:cb:d4:
+ 4c:cf:29:ac:67:c1:82:26:c1:0b:ff:44:af:f3:b2:
+ 89:31:a2:10:fd:a5:32:f8:04:4e:6b:32:1d:24:5e:
+ 83:89:3d:49:9c:34:24:5a:13:dd:2c:0b:2c:5c:b3:
+ 5f:be:fc:6d:db:be:c3:c4:40:6d:e8:51:bf:e1:fe:
+ 3b:f0:28:42:24:f5:68:c4:2e:00:fa:21:34:f0:d1:
+ 94:3f:65:50:19:8d:be:cf:07:2a:08:4f:68:70:77:
+ f6:14:78:45:2f:70:da:47:26:51:73:1d:bb:b2:93:
+ e1:23:77:6d:a0:47:4e:34:c7:af:fd:a9:53:41:ea:
+ e7:73
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Alternative Name:
@@ -36,45 +45,48 @@ Certificate:
X509v3 Extended Key Usage:
TLS Web Server Authentication
X509v3 Subject Key Identifier:
- 2C:4D:DD:54:88:59:3F:A4:34:9C:E3:56:FF:95:0F:E2:CE:51:20:95
+ 70:FA:B9:27:7B:97:78:48:80:FC:D7:D7:31:90:12:ED:E5:4F:90:35
X509v3 Authority Key Identifier:
keyid:12:CA:BA:4B:46:04:A7:75:8A:2C:E8:0E:54:94:BC:12:65:A6:7B:CE
X509v3 Basic Constraints:
CA:FALSE
- Signature Algorithm: sha1WithRSAEncryption
- 77:cd:d2:17:91:a6:4b:70:de:79:6a:20:82:a3:56:a3:d0:6a:
- ba:f7:7d:6f:00:69:d2:06:06:0b:da:cd:49:9d:36:fd:d0:cc:
- bd:8a:dc:e1:d6:89:c9:23:02:8a:19:2d:14:ca:c6:06:87:66:
- c7:f4:32:37:95:0d:f1:a7:1c:a1:fe:43:4f:3b:03:03:e2:1a:
- c6:fc:91:d5:0d:a0:7e:82:60:14:31:2f:6d:b8:f4:57:98:8d:
- 04:74:a3:82:28:6d:1c:b4:de:1a:70:bd:fe:73:ac:b7:96:ec:
- 7c:9b:6d:64:c6:f8:67:39:c7:ea:f4:aa:48:26:b8:14:85:f0:
- 00:ab:8f:bd:1a:95:e2:a7:63:92:35:1e:37:04:c2:70:2c:1c:
- 56:95:b1:83:70:8c:99:88:1c:8a:6f:7a:a2:0d:84:dd:4f:0e:
- 3e:8b:fb:31:cf:ae:ee:b0:e4:f6:c1:8d:d1:98:a9:8d:17:1f:
- 5d:5a:79:e8:7c:97:ab:40:bc:aa:7e:c4:0b:19:30:ad:18:aa:
- 9c:9b:eb:3f:35:d3:86:9c:3a:cc:e6:9a:2c:47:d1:bb:36:6e:
- f2:c5:d4:e3:0c:5b:c6:eb:30:e6:0d:3a:4b:3a:a3:6b:62:93:
- 8b:6a:59:1f:48:66:2e:d9:70:14:b6:aa:4f:d1:3b:38:5e:e6:
- 79:7f:b7:00
+ Signature Algorithm: sha256WithRSAEncryption
+ 8f:e0:79:cb:0a:9d:dd:a3:9b:56:6f:74:75:01:31:ec:01:94:
+ c1:6b:76:69:34:da:db:a6:1f:50:07:2f:2a:eb:44:83:23:f4:
+ 01:81:f1:aa:f9:65:fe:8c:08:4a:ef:75:36:17:d2:ce:81:f1:
+ 2a:ca:cc:5b:2c:c5:fc:30:c2:cf:bc:29:1f:82:17:d4:9f:2a:
+ e9:a6:23:9c:19:36:86:e9:46:a2:10:86:65:9a:b5:60:d5:8b:
+ ec:05:d3:73:6d:50:a1:38:43:0f:0f:ea:1b:0d:ba:c0:36:2e:
+ d4:bd:f7:4e:1d:df:fc:24:8e:50:f2:40:a5:c7:3c:7e:5a:8a:
+ 88:1d:f9:28:49:57:42:07:55:1e:ca:94:7c:d9:56:b1:3b:38:
+ 62:56:58:6a:ea:fd:30:47:1e:e9:2a:35:e2:d3:57:85:29:6e:
+ 06:b3:ad:e9:6a:6e:d1:06:9c:c5:d4:1f:62:fb:fa:1c:e9:f5:
+ a7:18:c0:67:29:e0:25:fc:c6:ff:82:76:e3:2f:d6:b2:5f:54:
+ a0:8a:93:e4:b2:13:60:f7:96:45:f5:db:b8:95:99:34:62:14:
+ cd:e6:58:a3:5c:d6:92:21:f4:ce:dd:da:02:67:12:e7:f6:50:
+ 51:e1:8e:9b:84:2f:e6:57:21:81:6a:00:bb:14:bb:29:37:c9:
+ 80:c3:74:a2
-----BEGIN CERTIFICATE-----
-MIIDWjCCAkKgAwIBAgIGDWSfO0UqMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNVBAYT
+MIID3jCCAsagAwIBAgIGDftm0HBEMA0GCSqGSIb3DQEBCwUAMGgxCzAJBgNVBAYT
Ak5OMTEwLwYDVQQKDChFZGVsIEN1cmwgQXJjdGljIElsbHVkaXVtIFJlc2VhcmNo
IENsb3VkMSYwJAYDVQQDDB1Ob3J0aGVybiBOb3doZXJlIFRydXN0IEFuY2hvcjAe
-Fw0xNjA4MzAxODMyMTVaFw0yNDExMTYxODMyMTVaMFcxCzAJBgNVBAYTAk5OMTEw
+Fw0xODA5MTkwNzE0NDhaFw0yNjEyMDYwNzE0NDhaMFcxCzAJBgNVBAYTAk5OMTEw
LwYDVQQKDChFZGVsIEN1cmwgQXJjdGljIElsbHVkaXVtIFJlc2VhcmNoIENsb3Vk
-MRUwEwYDVQQDDAxsb2NhbGhvc3Qubm4wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
-AoGBAMWHLvv1iIo5TGKIn/tKAhwnkp0LZaJwH9G33sgdhyhLnEvM9vZ8gx8tdr5B
-KV4x+iMMLX3LOMKLVI/8alBtx9evcvs7oadNxBvSDXV8kmKXSMToEsAAM2YOKBcP
-XDbWUHDsyJ+irrnr6xkF8FODQiquQB/6+3q3hkyraygLL3+BAgMBAAGjgZ4wgZsw
-LAYDVR0RBCUwI4IJbG9jYWxob3N0ggpsb2NhbGhvc3Qxggpsb2NhbGhvc3QyMAsG
-A1UdDwQEAwIDqDATBgNVHSUEDDAKBggrBgEFBQcDATAdBgNVHQ4EFgQULE3dVIhZ
-P6Q0nONW/5UP4s5RIJUwHwYDVR0jBBgwFoAUEsq6S0YEp3WKLOgOVJS8EmWme84w
-CQYDVR0TBAIwADANBgkqhkiG9w0BAQUFAAOCAQEAd83SF5GmS3DeeWoggqNWo9Bq
-uvd9bwBp0gYGC9rNSZ02/dDMvYrc4daJySMCihktFMrGBodmx/QyN5UN8accof5D
-TzsDA+IaxvyR1Q2gfoJgFDEvbbj0V5iNBHSjgihtHLTeGnC9/nOst5bsfJttZMb4
-ZznH6vSqSCa4FIXwAKuPvRqV4qdjkjUeNwTCcCwcVpWxg3CMmYgcim96og2E3U8O
-Pov7Mc+u7rDk9sGN0ZipjRcfXVp56HyXq0C8qn7ECxkwrRiqnJvrPzXThpw6zOaa
-LEfRuzZu8sXU4wxbxusw5g06Szqja2KTi2pZH0hmLtlwFLaqT9E7OF7meX+3AA==
+MRUwEwYDVQQDDAxsb2NhbGhvc3Qubm4wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+ggEKAoIBAQC1oFZl/xodmk3xF74UxzL+UaCjIiZZbNUMdKlsJhymkmYdlg5Zy30F
+AbAxE9zb5oHxeUOACDd0LlGCtod8/Yct/dDTQjLJqNHM4Dd/4j5lktJN/Xnt7yPV
+MS/7718DaElqfKrpcCNrQ5W9XtH4FqfV4L1/Y0SkLE00FjIREs7fFqTYBqXL1EzP
+KaxnwYImwQv/RK/zsokxohD9pTL4BE5rMh0kXoOJPUmcNCRaE90sCyxcs1++/G3b
+vsPEQG3oUb/h/jvwKEIk9WjELgD6ITTw0ZQ/ZVAZjb7PByoIT2hwd/YUeEUvcNpH
+JlFzHbuyk+Ejd22gR040x6/9qVNB6udzAgMBAAGjgZ4wgZswLAYDVR0RBCUwI4IJ
+bG9jYWxob3N0ggpsb2NhbGhvc3Qxggpsb2NhbGhvc3QyMAsGA1UdDwQEAwIDqDAT
+BgNVHSUEDDAKBggrBgEFBQcDATAdBgNVHQ4EFgQUcPq5J3uXeEiA/NfXMZAS7eVP
+kDUwHwYDVR0jBBgwFoAUEsq6S0YEp3WKLOgOVJS8EmWme84wCQYDVR0TBAIwADAN
+BgkqhkiG9w0BAQsFAAOCAQEAj+B5ywqd3aObVm90dQEx7AGUwWt2aTTa26YfUAcv
+KutEgyP0AYHxqvll/owISu91NhfSzoHxKsrMWyzF/DDCz7wpH4IX1J8q6aYjnBk2
+hulGohCGZZq1YNWL7AXTc21QoThDDw/qGw26wDYu1L33Th3f/CSOUPJApcc8flqK
+iB35KElXQgdVHsqUfNlWsTs4YlZYaur9MEce6So14tNXhSluBrOt6Wpu0QacxdQf
+Yvv6HOn1pxjAZyngJfzG/4J24y/Wsl9UoIqT5LITYPeWRfXbuJWZNGIUzeZYo1zW
+kiH0zt3aAmcS5/ZQUeGOm4Qv5lchgWoAuxS7KTfJgMN0og==
-----END CERTIFICATE-----
diff --git a/tests/certs/Server-localhost-firstSAN-sv.csr b/tests/certs/Server-localhost-firstSAN-sv.csr
index 729034e4..d8aa70bd 100644
--- a/tests/certs/Server-localhost-firstSAN-sv.csr
+++ b/tests/certs/Server-localhost-firstSAN-sv.csr
@@ -1,11 +1,16 @@
-----BEGIN CERTIFICATE REQUEST-----
-MIIBlzCCAQACAQAwVzELMAkGA1UEBhMCTk4xMTAvBgNVBAoMKEVkZWwgQ3VybCBB
+MIICnDCCAYQCAQAwVzELMAkGA1UEBhMCTk4xMTAvBgNVBAoMKEVkZWwgQ3VybCBB
cmN0aWMgSWxsdWRpdW0gUmVzZWFyY2ggQ2xvdWQxFTATBgNVBAMMDGxvY2FsaG9z
-dC5ubjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxYcu+/WIijlMYoif+0oC
-HCeSnQtlonAf0bfeyB2HKEucS8z29nyDHy12vkEpXjH6Iwwtfcs4wotUj/xqUG3H
-169y+zuhp03EG9INdXySYpdIxOgSwAAzZg4oFw9cNtZQcOzIn6KuuevrGQXwU4NC
-Kq5AH/r7ereGTKtrKAsvf4ECAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4GBADlhAYRy
-2heMP/fGllGXW/uAEm2q6ubWhqgd3/5d+06LjTIs57qT/nwbr79e1PxholGWM+Zb
-/NGKZ4geZK0mJT/gnaJCyUsrjdp2KIEw9zmBoZyypJd/5Fhe1tzX0xwG40+3np9K
-orpp7wcILLeMho8+I4mNEzOJHidxy/9uia5U
+dC5ubjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALWgVmX/Gh2aTfEX
+vhTHMv5RoKMiJlls1Qx0qWwmHKaSZh2WDlnLfQUBsDET3NvmgfF5Q4AIN3QuUYK2
+h3z9hy390NNCMsmo0czgN3/iPmWS0k39ee3vI9UxL/vvXwNoSWp8qulwI2tDlb1e
+0fgWp9XgvX9jRKQsTTQWMhESzt8WpNgGpcvUTM8prGfBgibBC/9Er/OyiTGiEP2l
+MvgETmsyHSReg4k9SZw0JFoT3SwLLFyzX778bdu+w8RAbehRv+H+O/AoQiT1aMQu
+APohNPDRlD9lUBmNvs8HKghPaHB39hR4RS9w2kcmUXMdu7KT4SN3baBHTjTHr/2p
+U0Hq53MCAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4IBAQBt9eE5YhGU2bhKrDvnOlCW
+2/5QFLzKYgZQHf3v+bK4DzhPFZSLHkls5oV+MbAms/CdU1t4uA9J63DIlfDEe302
+k5m4NJ/v4NvpQtHVheMi6BkK+BQWnV/BVTv85N550wi2BtkxRqtEPyJu6XDbIgPp
+nUP9TCVPjgM1/njekHLD2fm8NBFwFaKBLsw2GSSm7mpdwyhOxTdwOHbwpei5xR/9
+U0OtS2NJv0KIiZS0GyGoBK2VN6iwUTPBEuxTUNfpRoboknwtY0f0RfRXeYZzAelx
+OL7UNvFt1njk4pY8YOAVKqHszWGV46c5XalMQDJpwP7xzc52W+q9x4psx3br4J3u
-----END CERTIFICATE REQUEST-----
diff --git a/tests/certs/Server-localhost-firstSAN-sv.der b/tests/certs/Server-localhost-firstSAN-sv.der
index c878bfb1..3294af0e 100644
--- a/tests/certs/Server-localhost-firstSAN-sv.der
+++ b/tests/certs/Server-localhost-firstSAN-sv.der
Binary files differ
diff --git a/tests/certs/Server-localhost-firstSAN-sv.key b/tests/certs/Server-localhost-firstSAN-sv.key
index 49032663..dd9e7141 100644
--- a/tests/certs/Server-localhost-firstSAN-sv.key
+++ b/tests/certs/Server-localhost-firstSAN-sv.key
@@ -1,15 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
-MIICWwIBAAKBgQDFhy779YiKOUxiiJ/7SgIcJ5KdC2WicB/Rt97IHYcoS5xLzPb2
-fIMfLXa+QSleMfojDC19yzjCi1SP/GpQbcfXr3L7O6GnTcQb0g11fJJil0jE6BLA
-ADNmDigXD1w21lBw7Mifoq656+sZBfBTg0IqrkAf+vt6t4ZMq2soCy9/gQIDAQAB
-AoGAUjKXErJyR1LgvoAsUt3RUvYExOVhPd963kKtqojfHZ2ZRNHeU2QtDGRW7YUg
-OdqCRONkatyOmiZw4hogA6graJKiqKLvM/F4qRoLsxH9T/cSOIl9QjZVkUd1HV/Z
-iJluibPTewVyfoYzkq48GN+QIi//msYKBjI5Q2Yybn4WrgECQQDk/mDp4sAvuLXL
-NxaQKuDZA5TxU2u8GTItFqOoHneVFSJLE4O3kr7wh47O817mnljZfskZwVXBYx6R
-VbXsy8ZJAkEA3NLRFh8cR03CN+eYPi33JrUVRSrn8eAB5MNOaOdO4mT0pTAzfVfe
-g6rMDnK2n7WZzwf6YmvRVyppW2/kQjyPeQJAXoa3ILTuWoSn3owN71MT3+E/oWKr
-LUlFUiFvSx3QhSTlNBKJI8UatpVumPUTbqVczeMtRkltidfNrXaxE1+GqQJAW9WU
-vMVtZj3xUnyPNPS6vy85zE0ertmBEBklJ71icgaYM4aLM0pysIE8YZnVVzAX6iCg
-QYQjSEPMEwnCfMVgyQJAcWnk6HPLbJmUt+ZGGAcqzfycR6jMKFnm4st2Ld6JuDT2
-h2lb40Uma9gO+aXLIf+K9prCxb+7nR1M3qLwV4krkQ==
+MIIEowIBAAKCAQEAtaBWZf8aHZpN8Re+FMcy/lGgoyImWWzVDHSpbCYcppJmHZYO
+Wct9BQGwMRPc2+aB8XlDgAg3dC5RgraHfP2HLf3Q00IyyajRzOA3f+I+ZZLSTf15
+7e8j1TEv++9fA2hJanyq6XAja0OVvV7R+Ban1eC9f2NEpCxNNBYyERLO3xak2Aal
+y9RMzymsZ8GCJsEL/0Sv87KJMaIQ/aUy+AROazIdJF6DiT1JnDQkWhPdLAssXLNf
+vvxt277DxEBt6FG/4f478ChCJPVoxC4A+iE08NGUP2VQGY2+zwcqCE9ocHf2FHhF
+L3DaRyZRcx27spPhI3dtoEdONMev/alTQerncwIDAQABAoIBAD6smIPT1tg2QgUb
+E02qO4+E7XC9vQwIwS/uJfSa5jIYvMIi4MrdrEOJBJq65vC/B0IjfUZ2D2S5Awmf
+IPvhpL8bIe90nX/3EIapLJ2lnbCBTK769BNF/VB5C7zdKiVL3GGxqWyqdJ50EPzq
+9nusnbfxOJL311zrqKx7qEU5/0b9vYtCW+o7P90pHK7VAMJfzXT28lJepn3RW2OW
+vSMqfF5VjlSzjq+0Xlbu3tOk+I3zBhv1dcZCYCCdUNj18XOmhIKgsqjfgMGAeA77
+e6h/9pn8O/rxM4PwU4vJbtfsiEQa5ekNWR+jyoeOu5XfyYFHSDtKEiRkD2zq6K1V
++O5gBYECgYEA2b/xjuT8cJM/OAt9jP/6yC2YyIX/2EmzbsyH1XfRY7Xhy63qidza
+wBVCxdlguEGte05x6k2z3S7QUFU/LQKs0aOm2j9WHpnw9LlZ1mE1PtFPJPEaKzfP
+dlUibC/mQ6Qh8dWli8aMXUOj9/o4QxKFC64Q1D/xk/h+h0ExNusJw7MCgYEA1Yfy
+aiFjUhTCsH4R/wHAgUcLDlfCpHLiymO2mylVhu+/frScqn+3RC2JJjyljtwKLC7C
+k6iXRKaqoMcwf4jmhxsoGzqjmHSCxvpucDcN0XJ2uBRg9rTOFIoAg3bocgbbrpl1
+dRsAScO1BvRY4oLSLQjLRguOxUizL6N6kGjvbUECgYACEDSMwxS1SF/n+wvkgyRw
+MyZoeASVmxUtLpj259y/EiEimfJH/iTAfzMTxtyIwm6PZY3kx3m11dS5fiVMGuNi
+VSeml8UMIy9KUltMkb08bCVQ10wFLtEzcNkTp1yKNYrwzLJ14ZrA43wxRFi2If3K
+v4p/SF/UpB0m0PJTb+S2ywKBgF1onA37TxRwCn7kl4DDRnAHIPoEQBxqOXWpyw7z
+NPvTUyTdY49eUVBczxtP+miVL0oGpo2reYjJk+jDWh7gR2Ag7BmFPF2L0k2y7a7f
+FodiGDcMiyJBE8l+WR0pXiPLhjxJ200AI88g8sb5Cw0Dh2e16h5ZHfqFhAU58XrM
+vLhBAoGBAIwabHuf+Q058c6KdInkgwQ97xOuL6iqgXztl77zo3v9v8Uyvbed57Y5
+hohvGXHwdvBP0J4w5SYcH3C7ZXF8k9MK+AownCeq7wruvcliCmWmo9dvhcD0nBPL
+XZP1GEqNHpVQ+KzObbzQpZmZkIo6Ttg50jbLdoAn24kTdR2PVb2Q
-----END RSA PRIVATE KEY-----
diff --git a/tests/certs/Server-localhost-firstSAN-sv.pem b/tests/certs/Server-localhost-firstSAN-sv.pem
index 2b5ada51..8294d91f 100644
--- a/tests/certs/Server-localhost-firstSAN-sv.pem
+++ b/tests/certs/Server-localhost-firstSAN-sv.pem
@@ -24,49 +24,70 @@ commonName_value = localhost.nn
# the certificate
# some dhparam
-----BEGIN RSA PRIVATE KEY-----
-MIICWwIBAAKBgQDFhy779YiKOUxiiJ/7SgIcJ5KdC2WicB/Rt97IHYcoS5xLzPb2
-fIMfLXa+QSleMfojDC19yzjCi1SP/GpQbcfXr3L7O6GnTcQb0g11fJJil0jE6BLA
-ADNmDigXD1w21lBw7Mifoq656+sZBfBTg0IqrkAf+vt6t4ZMq2soCy9/gQIDAQAB
-AoGAUjKXErJyR1LgvoAsUt3RUvYExOVhPd963kKtqojfHZ2ZRNHeU2QtDGRW7YUg
-OdqCRONkatyOmiZw4hogA6graJKiqKLvM/F4qRoLsxH9T/cSOIl9QjZVkUd1HV/Z
-iJluibPTewVyfoYzkq48GN+QIi//msYKBjI5Q2Yybn4WrgECQQDk/mDp4sAvuLXL
-NxaQKuDZA5TxU2u8GTItFqOoHneVFSJLE4O3kr7wh47O817mnljZfskZwVXBYx6R
-VbXsy8ZJAkEA3NLRFh8cR03CN+eYPi33JrUVRSrn8eAB5MNOaOdO4mT0pTAzfVfe
-g6rMDnK2n7WZzwf6YmvRVyppW2/kQjyPeQJAXoa3ILTuWoSn3owN71MT3+E/oWKr
-LUlFUiFvSx3QhSTlNBKJI8UatpVumPUTbqVczeMtRkltidfNrXaxE1+GqQJAW9WU
-vMVtZj3xUnyPNPS6vy85zE0ertmBEBklJ71icgaYM4aLM0pysIE8YZnVVzAX6iCg
-QYQjSEPMEwnCfMVgyQJAcWnk6HPLbJmUt+ZGGAcqzfycR6jMKFnm4st2Ld6JuDT2
-h2lb40Uma9gO+aXLIf+K9prCxb+7nR1M3qLwV4krkQ==
+MIIEowIBAAKCAQEAtaBWZf8aHZpN8Re+FMcy/lGgoyImWWzVDHSpbCYcppJmHZYO
+Wct9BQGwMRPc2+aB8XlDgAg3dC5RgraHfP2HLf3Q00IyyajRzOA3f+I+ZZLSTf15
+7e8j1TEv++9fA2hJanyq6XAja0OVvV7R+Ban1eC9f2NEpCxNNBYyERLO3xak2Aal
+y9RMzymsZ8GCJsEL/0Sv87KJMaIQ/aUy+AROazIdJF6DiT1JnDQkWhPdLAssXLNf
+vvxt277DxEBt6FG/4f478ChCJPVoxC4A+iE08NGUP2VQGY2+zwcqCE9ocHf2FHhF
+L3DaRyZRcx27spPhI3dtoEdONMev/alTQerncwIDAQABAoIBAD6smIPT1tg2QgUb
+E02qO4+E7XC9vQwIwS/uJfSa5jIYvMIi4MrdrEOJBJq65vC/B0IjfUZ2D2S5Awmf
+IPvhpL8bIe90nX/3EIapLJ2lnbCBTK769BNF/VB5C7zdKiVL3GGxqWyqdJ50EPzq
+9nusnbfxOJL311zrqKx7qEU5/0b9vYtCW+o7P90pHK7VAMJfzXT28lJepn3RW2OW
+vSMqfF5VjlSzjq+0Xlbu3tOk+I3zBhv1dcZCYCCdUNj18XOmhIKgsqjfgMGAeA77
+e6h/9pn8O/rxM4PwU4vJbtfsiEQa5ekNWR+jyoeOu5XfyYFHSDtKEiRkD2zq6K1V
++O5gBYECgYEA2b/xjuT8cJM/OAt9jP/6yC2YyIX/2EmzbsyH1XfRY7Xhy63qidza
+wBVCxdlguEGte05x6k2z3S7QUFU/LQKs0aOm2j9WHpnw9LlZ1mE1PtFPJPEaKzfP
+dlUibC/mQ6Qh8dWli8aMXUOj9/o4QxKFC64Q1D/xk/h+h0ExNusJw7MCgYEA1Yfy
+aiFjUhTCsH4R/wHAgUcLDlfCpHLiymO2mylVhu+/frScqn+3RC2JJjyljtwKLC7C
+k6iXRKaqoMcwf4jmhxsoGzqjmHSCxvpucDcN0XJ2uBRg9rTOFIoAg3bocgbbrpl1
+dRsAScO1BvRY4oLSLQjLRguOxUizL6N6kGjvbUECgYACEDSMwxS1SF/n+wvkgyRw
+MyZoeASVmxUtLpj259y/EiEimfJH/iTAfzMTxtyIwm6PZY3kx3m11dS5fiVMGuNi
+VSeml8UMIy9KUltMkb08bCVQ10wFLtEzcNkTp1yKNYrwzLJ14ZrA43wxRFi2If3K
+v4p/SF/UpB0m0PJTb+S2ywKBgF1onA37TxRwCn7kl4DDRnAHIPoEQBxqOXWpyw7z
+NPvTUyTdY49eUVBczxtP+miVL0oGpo2reYjJk+jDWh7gR2Ag7BmFPF2L0k2y7a7f
+FodiGDcMiyJBE8l+WR0pXiPLhjxJ200AI88g8sb5Cw0Dh2e16h5ZHfqFhAU58XrM
+vLhBAoGBAIwabHuf+Q058c6KdInkgwQ97xOuL6iqgXztl77zo3v9v8Uyvbed57Y5
+hohvGXHwdvBP0J4w5SYcH3C7ZXF8k9MK+AownCeq7wruvcliCmWmo9dvhcD0nBPL
+XZP1GEqNHpVQ+KzObbzQpZmZkIo6Ttg50jbLdoAn24kTdR2PVb2Q
-----END RSA PRIVATE KEY-----
Certificate:
Data:
Version: 3 (0x2)
- Serial Number: 14725819352362 (0xd649f3b452a)
- Signature Algorithm: sha1WithRSAEncryption
+ Serial Number: 15373412888644 (0xdfb66d07044)
+ Signature Algorithm: sha256WithRSAEncryption
Issuer:
countryName = NN
organizationName = Edel Curl Arctic Illudium Research Cloud
commonName = Northern Nowhere Trust Anchor
Validity
- Not Before: Aug 30 18:32:15 2016 GMT
- Not After : Nov 16 18:32:15 2024 GMT
+ Not Before: Sep 19 07:14:48 2018 GMT
+ Not After : Dec 6 07:14:48 2026 GMT
Subject:
countryName = NN
organizationName = Edel Curl Arctic Illudium Research Cloud
commonName = localhost.nn
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
- Public-Key: (1024 bit)
+ RSA Public-Key: (2048 bit)
Modulus:
- 00:c5:87:2e:fb:f5:88:8a:39:4c:62:88:9f:fb:4a:
- 02:1c:27:92:9d:0b:65:a2:70:1f:d1:b7:de:c8:1d:
- 87:28:4b:9c:4b:cc:f6:f6:7c:83:1f:2d:76:be:41:
- 29:5e:31:fa:23:0c:2d:7d:cb:38:c2:8b:54:8f:fc:
- 6a:50:6d:c7:d7:af:72:fb:3b:a1:a7:4d:c4:1b:d2:
- 0d:75:7c:92:62:97:48:c4:e8:12:c0:00:33:66:0e:
- 28:17:0f:5c:36:d6:50:70:ec:c8:9f:a2:ae:b9:eb:
- eb:19:05:f0:53:83:42:2a:ae:40:1f:fa:fb:7a:b7:
- 86:4c:ab:6b:28:0b:2f:7f:81
+ 00:b5:a0:56:65:ff:1a:1d:9a:4d:f1:17:be:14:c7:
+ 32:fe:51:a0:a3:22:26:59:6c:d5:0c:74:a9:6c:26:
+ 1c:a6:92:66:1d:96:0e:59:cb:7d:05:01:b0:31:13:
+ dc:db:e6:81:f1:79:43:80:08:37:74:2e:51:82:b6:
+ 87:7c:fd:87:2d:fd:d0:d3:42:32:c9:a8:d1:cc:e0:
+ 37:7f:e2:3e:65:92:d2:4d:fd:79:ed:ef:23:d5:31:
+ 2f:fb:ef:5f:03:68:49:6a:7c:aa:e9:70:23:6b:43:
+ 95:bd:5e:d1:f8:16:a7:d5:e0:bd:7f:63:44:a4:2c:
+ 4d:34:16:32:11:12:ce:df:16:a4:d8:06:a5:cb:d4:
+ 4c:cf:29:ac:67:c1:82:26:c1:0b:ff:44:af:f3:b2:
+ 89:31:a2:10:fd:a5:32:f8:04:4e:6b:32:1d:24:5e:
+ 83:89:3d:49:9c:34:24:5a:13:dd:2c:0b:2c:5c:b3:
+ 5f:be:fc:6d:db:be:c3:c4:40:6d:e8:51:bf:e1:fe:
+ 3b:f0:28:42:24:f5:68:c4:2e:00:fa:21:34:f0:d1:
+ 94:3f:65:50:19:8d:be:cf:07:2a:08:4f:68:70:77:
+ f6:14:78:45:2f:70:da:47:26:51:73:1d:bb:b2:93:
+ e1:23:77:6d:a0:47:4e:34:c7:af:fd:a9:53:41:ea:
+ e7:73
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Alternative Name:
@@ -76,45 +97,48 @@ Certificate:
X509v3 Extended Key Usage:
TLS Web Server Authentication
X509v3 Subject Key Identifier:
- 2C:4D:DD:54:88:59:3F:A4:34:9C:E3:56:FF:95:0F:E2:CE:51:20:95
+ 70:FA:B9:27:7B:97:78:48:80:FC:D7:D7:31:90:12:ED:E5:4F:90:35
X509v3 Authority Key Identifier:
keyid:12:CA:BA:4B:46:04:A7:75:8A:2C:E8:0E:54:94:BC:12:65:A6:7B:CE
X509v3 Basic Constraints:
CA:FALSE
- Signature Algorithm: sha1WithRSAEncryption
- 77:cd:d2:17:91:a6:4b:70:de:79:6a:20:82:a3:56:a3:d0:6a:
- ba:f7:7d:6f:00:69:d2:06:06:0b:da:cd:49:9d:36:fd:d0:cc:
- bd:8a:dc:e1:d6:89:c9:23:02:8a:19:2d:14:ca:c6:06:87:66:
- c7:f4:32:37:95:0d:f1:a7:1c:a1:fe:43:4f:3b:03:03:e2:1a:
- c6:fc:91:d5:0d:a0:7e:82:60:14:31:2f:6d:b8:f4:57:98:8d:
- 04:74:a3:82:28:6d:1c:b4:de:1a:70:bd:fe:73:ac:b7:96:ec:
- 7c:9b:6d:64:c6:f8:67:39:c7:ea:f4:aa:48:26:b8:14:85:f0:
- 00:ab:8f:bd:1a:95:e2:a7:63:92:35:1e:37:04:c2:70:2c:1c:
- 56:95:b1:83:70:8c:99:88:1c:8a:6f:7a:a2:0d:84:dd:4f:0e:
- 3e:8b:fb:31:cf:ae:ee:b0:e4:f6:c1:8d:d1:98:a9:8d:17:1f:
- 5d:5a:79:e8:7c:97:ab:40:bc:aa:7e:c4:0b:19:30:ad:18:aa:
- 9c:9b:eb:3f:35:d3:86:9c:3a:cc:e6:9a:2c:47:d1:bb:36:6e:
- f2:c5:d4:e3:0c:5b:c6:eb:30:e6:0d:3a:4b:3a:a3:6b:62:93:
- 8b:6a:59:1f:48:66:2e:d9:70:14:b6:aa:4f:d1:3b:38:5e:e6:
- 79:7f:b7:00
+ Signature Algorithm: sha256WithRSAEncryption
+ 8f:e0:79:cb:0a:9d:dd:a3:9b:56:6f:74:75:01:31:ec:01:94:
+ c1:6b:76:69:34:da:db:a6:1f:50:07:2f:2a:eb:44:83:23:f4:
+ 01:81:f1:aa:f9:65:fe:8c:08:4a:ef:75:36:17:d2:ce:81:f1:
+ 2a:ca:cc:5b:2c:c5:fc:30:c2:cf:bc:29:1f:82:17:d4:9f:2a:
+ e9:a6:23:9c:19:36:86:e9:46:a2:10:86:65:9a:b5:60:d5:8b:
+ ec:05:d3:73:6d:50:a1:38:43:0f:0f:ea:1b:0d:ba:c0:36:2e:
+ d4:bd:f7:4e:1d:df:fc:24:8e:50:f2:40:a5:c7:3c:7e:5a:8a:
+ 88:1d:f9:28:49:57:42:07:55:1e:ca:94:7c:d9:56:b1:3b:38:
+ 62:56:58:6a:ea:fd:30:47:1e:e9:2a:35:e2:d3:57:85:29:6e:
+ 06:b3:ad:e9:6a:6e:d1:06:9c:c5:d4:1f:62:fb:fa:1c:e9:f5:
+ a7:18:c0:67:29:e0:25:fc:c6:ff:82:76:e3:2f:d6:b2:5f:54:
+ a0:8a:93:e4:b2:13:60:f7:96:45:f5:db:b8:95:99:34:62:14:
+ cd:e6:58:a3:5c:d6:92:21:f4:ce:dd:da:02:67:12:e7:f6:50:
+ 51:e1:8e:9b:84:2f:e6:57:21:81:6a:00:bb:14:bb:29:37:c9:
+ 80:c3:74:a2
-----BEGIN CERTIFICATE-----
-MIIDWjCCAkKgAwIBAgIGDWSfO0UqMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNVBAYT
+MIID3jCCAsagAwIBAgIGDftm0HBEMA0GCSqGSIb3DQEBCwUAMGgxCzAJBgNVBAYT
Ak5OMTEwLwYDVQQKDChFZGVsIEN1cmwgQXJjdGljIElsbHVkaXVtIFJlc2VhcmNo
IENsb3VkMSYwJAYDVQQDDB1Ob3J0aGVybiBOb3doZXJlIFRydXN0IEFuY2hvcjAe
-Fw0xNjA4MzAxODMyMTVaFw0yNDExMTYxODMyMTVaMFcxCzAJBgNVBAYTAk5OMTEw
+Fw0xODA5MTkwNzE0NDhaFw0yNjEyMDYwNzE0NDhaMFcxCzAJBgNVBAYTAk5OMTEw
LwYDVQQKDChFZGVsIEN1cmwgQXJjdGljIElsbHVkaXVtIFJlc2VhcmNoIENsb3Vk
-MRUwEwYDVQQDDAxsb2NhbGhvc3Qubm4wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
-AoGBAMWHLvv1iIo5TGKIn/tKAhwnkp0LZaJwH9G33sgdhyhLnEvM9vZ8gx8tdr5B
-KV4x+iMMLX3LOMKLVI/8alBtx9evcvs7oadNxBvSDXV8kmKXSMToEsAAM2YOKBcP
-XDbWUHDsyJ+irrnr6xkF8FODQiquQB/6+3q3hkyraygLL3+BAgMBAAGjgZ4wgZsw
-LAYDVR0RBCUwI4IJbG9jYWxob3N0ggpsb2NhbGhvc3Qxggpsb2NhbGhvc3QyMAsG
-A1UdDwQEAwIDqDATBgNVHSUEDDAKBggrBgEFBQcDATAdBgNVHQ4EFgQULE3dVIhZ
-P6Q0nONW/5UP4s5RIJUwHwYDVR0jBBgwFoAUEsq6S0YEp3WKLOgOVJS8EmWme84w
-CQYDVR0TBAIwADANBgkqhkiG9w0BAQUFAAOCAQEAd83SF5GmS3DeeWoggqNWo9Bq
-uvd9bwBp0gYGC9rNSZ02/dDMvYrc4daJySMCihktFMrGBodmx/QyN5UN8accof5D
-TzsDA+IaxvyR1Q2gfoJgFDEvbbj0V5iNBHSjgihtHLTeGnC9/nOst5bsfJttZMb4
-ZznH6vSqSCa4FIXwAKuPvRqV4qdjkjUeNwTCcCwcVpWxg3CMmYgcim96og2E3U8O
-Pov7Mc+u7rDk9sGN0ZipjRcfXVp56HyXq0C8qn7ECxkwrRiqnJvrPzXThpw6zOaa
-LEfRuzZu8sXU4wxbxusw5g06Szqja2KTi2pZH0hmLtlwFLaqT9E7OF7meX+3AA==
+MRUwEwYDVQQDDAxsb2NhbGhvc3Qubm4wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+ggEKAoIBAQC1oFZl/xodmk3xF74UxzL+UaCjIiZZbNUMdKlsJhymkmYdlg5Zy30F
+AbAxE9zb5oHxeUOACDd0LlGCtod8/Yct/dDTQjLJqNHM4Dd/4j5lktJN/Xnt7yPV
+MS/7718DaElqfKrpcCNrQ5W9XtH4FqfV4L1/Y0SkLE00FjIREs7fFqTYBqXL1EzP
+KaxnwYImwQv/RK/zsokxohD9pTL4BE5rMh0kXoOJPUmcNCRaE90sCyxcs1++/G3b
+vsPEQG3oUb/h/jvwKEIk9WjELgD6ITTw0ZQ/ZVAZjb7PByoIT2hwd/YUeEUvcNpH
+JlFzHbuyk+Ejd22gR040x6/9qVNB6udzAgMBAAGjgZ4wgZswLAYDVR0RBCUwI4IJ
+bG9jYWxob3N0ggpsb2NhbGhvc3Qxggpsb2NhbGhvc3QyMAsGA1UdDwQEAwIDqDAT
+BgNVHSUEDDAKBggrBgEFBQcDATAdBgNVHQ4EFgQUcPq5J3uXeEiA/NfXMZAS7eVP
+kDUwHwYDVR0jBBgwFoAUEsq6S0YEp3WKLOgOVJS8EmWme84wCQYDVR0TBAIwADAN
+BgkqhkiG9w0BAQsFAAOCAQEAj+B5ywqd3aObVm90dQEx7AGUwWt2aTTa26YfUAcv
+KutEgyP0AYHxqvll/owISu91NhfSzoHxKsrMWyzF/DDCz7wpH4IX1J8q6aYjnBk2
+hulGohCGZZq1YNWL7AXTc21QoThDDw/qGw26wDYu1L33Th3f/CSOUPJApcc8flqK
+iB35KElXQgdVHsqUfNlWsTs4YlZYaur9MEce6So14tNXhSluBrOt6Wpu0QacxdQf
+Yvv6HOn1pxjAZyngJfzG/4J24y/Wsl9UoIqT5LITYPeWRfXbuJWZNGIUzeZYo1zW
+kiH0zt3aAmcS5/ZQUeGOm4Qv5lchgWoAuxS7KTfJgMN0og==
-----END CERTIFICATE-----
diff --git a/tests/certs/Server-localhost-firstSAN-sv.pub.der b/tests/certs/Server-localhost-firstSAN-sv.pub.der
index fb1b486a..24f0794d 100644
--- a/tests/certs/Server-localhost-firstSAN-sv.pub.der
+++ b/tests/certs/Server-localhost-firstSAN-sv.pub.der
Binary files differ
diff --git a/tests/certs/Server-localhost-firstSAN-sv.pub.pem b/tests/certs/Server-localhost-firstSAN-sv.pub.pem
index ef145947..fa651351 100644
--- a/tests/certs/Server-localhost-firstSAN-sv.pub.pem
+++ b/tests/certs/Server-localhost-firstSAN-sv.pub.pem
@@ -1,6 +1,9 @@
-----BEGIN PUBLIC KEY-----
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFhy779YiKOUxiiJ/7SgIcJ5Kd
-C2WicB/Rt97IHYcoS5xLzPb2fIMfLXa+QSleMfojDC19yzjCi1SP/GpQbcfXr3L7
-O6GnTcQb0g11fJJil0jE6BLAADNmDigXD1w21lBw7Mifoq656+sZBfBTg0IqrkAf
-+vt6t4ZMq2soCy9/gQIDAQAB
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtaBWZf8aHZpN8Re+FMcy
+/lGgoyImWWzVDHSpbCYcppJmHZYOWct9BQGwMRPc2+aB8XlDgAg3dC5RgraHfP2H
+Lf3Q00IyyajRzOA3f+I+ZZLSTf157e8j1TEv++9fA2hJanyq6XAja0OVvV7R+Ban
+1eC9f2NEpCxNNBYyERLO3xak2Aaly9RMzymsZ8GCJsEL/0Sv87KJMaIQ/aUy+ARO
+azIdJF6DiT1JnDQkWhPdLAssXLNfvvxt277DxEBt6FG/4f478ChCJPVoxC4A+iE0
+8NGUP2VQGY2+zwcqCE9ocHf2FHhFL3DaRyZRcx27spPhI3dtoEdONMev/alTQern
+cwIDAQAB
-----END PUBLIC KEY-----
diff --git a/tests/certs/Server-localhost-lastSAN-sv.crl b/tests/certs/Server-localhost-lastSAN-sv.crl
index 486bf926..0b431412 100644
--- a/tests/certs/Server-localhost-lastSAN-sv.crl
+++ b/tests/certs/Server-localhost-lastSAN-sv.crl
@@ -1,14 +1,12 @@
-----BEGIN X509 CRL-----
-MIICDjCB9wIBATANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJOTjExMC8GA1UE
+MIIB3DCBxQIBATANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJOTjExMC8GA1UE
CgwoRWRlbCBDdXJsIEFyY3RpYyBJbGx1ZGl1bSBSZXNlYXJjaCBDbG91ZDEmMCQG
-A1UEAwwdTm9ydGhlcm4gTm93aGVyZSBUcnVzdCBBbmNob3IXDTE2MDgzMDE4MzI1
-N1oXDTE2MDkyOTE4MzI1N1owSzAXAgYNZJ8o86IXDTE2MDgzMDE4MzAxNVowFwIG
-DWSfO0UqFw0xNjA4MzAxODMyMTVaMBcCBg1kn0GuixcNMTYwODMwMTgzMjU3WqAO
-MAwwCgYDVR0UBAMCAQEwDQYJKoZIhvcNAQEFBQADggEBAE0v3zGBeKKuODAUugh7
-l6bJi7Cs0CDhuBJ8wCpwL5XRGwWhYChJtEXWFUKLBhMarIPYKEv3f3rd8gtFII/8
-wmnxoTL6eXZNL+FpHkZJ+blsHi73G7xzpB6kdFHIxI4tixwiUCe85u6WIRWkIEBs
-kyPPAgbnosF37umQfEaBrweVy+EztrYw8jgd0oDBybQp25p7Noa0N4uDoDInuOgP
-A7Q1Zf0ndWjrlEQtjMAUdA6blGKlb8BjMPtX50mbXuXctLeICns8TVUSQSiKU+oR
-1QTgbkl+AfdaFlfNAum4a42bCLyeBQ/O31NydZbCE8o2q9PqPepAkL9dXhMLiK/a
-tjA=
+A1UEAwwdTm9ydGhlcm4gTm93aGVyZSBUcnVzdCBBbmNob3IXDTE4MDkwNTIzMjkw
+MVoXDTE4MTAwNTIzMjkwMVowGTAXAgYN+LitKqAXDTE4MDkwNTIzMjkwMVqgDjAM
+MAoGA1UdFAQDAgEBMA0GCSqGSIb3DQEBBQUAA4IBAQBc8MVCmUUhPb/yJ05wh1EA
+rBbLCjTYTDL9DW5YJIoBUKYWi5DGETS5BmgPU3ci6Pfa6eJ51oRurOCJHnL691Gp
+Y1d6R5CiM8mtHOPGCAgvvo0x+xJ/GzikxaggTDPA2CZWAFjBApMNdMvGTwurcnW9
+0jOl7zsfFoxSDlRqdFw7QW7Axju8vxRpMj6/pVBKmqgM+NUavcVPmRAYlsxCaeNH
+cdBviuw4qt3T6eLcb/RNIuCuXcp8a7ysqkGdSS/Pp/drOGZAmugbj1kmjS8b0n1M
+9L8wxG0k/TsgKSlWy+wbCJcUiYHgwzTd9i/XEdwxGvOnKFeiCvqShhkEG7QjfHs2
-----END X509 CRL-----
diff --git a/tests/certs/Server-localhost-lastSAN-sv.crt b/tests/certs/Server-localhost-lastSAN-sv.crt
index a6d8ae9c..b3116b69 100644
--- a/tests/certs/Server-localhost-lastSAN-sv.crt
+++ b/tests/certs/Server-localhost-lastSAN-sv.crt
@@ -1,32 +1,41 @@
Certificate:
Data:
Version: 3 (0x2)
- Serial Number: 14725819772555 (0xd649f41ae8b)
+ Serial Number: 15361901406880 (0xdf8b8ad2aa0)
Signature Algorithm: sha1WithRSAEncryption
Issuer:
countryName = NN
organizationName = Edel Curl Arctic Illudium Research Cloud
commonName = Northern Nowhere Trust Anchor
Validity
- Not Before: Aug 30 18:32:57 2016 GMT
- Not After : Nov 16 18:32:57 2024 GMT
+ Not Before: Sep 5 23:29:01 2018 GMT
+ Not After : Nov 22 23:29:01 2026 GMT
Subject:
countryName = NN
organizationName = Edel Curl Arctic Illudium Research Cloud
commonName = localhost.nn
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
- Public-Key: (1024 bit)
+ Public-Key: (2048 bit)
Modulus:
- 00:a3:2a:75:d7:bf:75:41:40:be:42:b8:b9:00:28:
- f1:45:29:55:bc:36:ca:a6:b7:86:93:97:25:84:aa:
- c9:80:ac:41:d9:28:fb:b0:68:4b:5b:ee:bd:94:83:
- da:2b:f6:cc:cc:11:df:fb:48:e6:e9:d5:97:41:7f:
- 9a:0d:b7:87:96:12:22:41:2a:7f:95:8a:14:d6:6c:
- 4b:34:df:18:29:01:0d:b2:3c:4d:c8:c4:5e:87:fa:
- 9f:aa:ee:a4:73:e9:bb:74:57:85:24:2a:51:e4:43:
- 5c:4b:97:51:52:b9:82:6e:9c:ce:ae:0f:91:45:25:
- f9:b4:24:66:8e:47:1f:d7:d5
+ 00:df:16:15:5f:2a:a4:50:cf:3a:a8:79:6e:22:8d:
+ 95:16:b7:4d:7d:d2:1f:4f:6d:2d:7a:7d:dc:8a:4f:
+ 53:7b:5f:c9:de:5c:88:6c:a2:74:26:35:1c:78:68:
+ c1:60:25:a7:7b:b6:1a:9a:aa:33:d0:9f:5e:f2:2e:
+ 21:04:8c:0d:9a:28:f5:61:40:3c:34:1a:9b:8a:70:
+ 81:6d:83:9e:7c:d0:4c:d9:79:dc:37:d9:24:6e:73:
+ c7:61:31:71:e9:f5:97:b7:65:ad:3d:f6:af:20:6f:
+ 56:b9:b5:42:b5:3d:96:61:31:eb:0d:4c:e9:f5:31:
+ d3:25:af:40:b3:bb:81:04:7f:1a:ce:21:18:83:52:
+ 2d:51:31:ae:82:f9:cb:10:d3:d5:06:af:f8:71:e8:
+ a3:c6:9f:7b:48:da:e2:28:af:1c:ff:41:6d:32:81:
+ 45:59:d7:64:e4:b1:d7:c9:86:6a:0b:65:71:66:d6:
+ 42:a8:67:fd:83:49:20:75:16:1e:bb:1b:85:5c:7e:
+ e2:8f:5f:1c:81:d3:8a:95:d6:92:5c:9e:7f:a2:10:
+ 08:e1:df:ae:69:68:3f:8d:dd:79:4f:da:3f:79:b5:
+ 02:97:57:30:67:4d:3d:76:35:b5:4f:d1:5d:35:dd:
+ d4:b5:6b:57:b2:e0:23:35:ad:1a:bf:6f:77:e6:bc:
+ 58:ed
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Alternative Name:
@@ -36,45 +45,48 @@ Certificate:
X509v3 Extended Key Usage:
TLS Web Server Authentication
X509v3 Subject Key Identifier:
- 2C:CF:E3:6E:08:F9:CE:9B:98:3B:B3:17:7F:0C:9D:E4:5B:1B:76:8A
+ 7C:9A:EA:9B:92:98:FB:77:25:89:8B:EF:D3:F4:88:34:AF:EA:24:CC
X509v3 Authority Key Identifier:
keyid:12:CA:BA:4B:46:04:A7:75:8A:2C:E8:0E:54:94:BC:12:65:A6:7B:CE
X509v3 Basic Constraints:
CA:FALSE
Signature Algorithm: sha1WithRSAEncryption
- 2e:3d:c1:a2:a7:e4:70:f8:a8:13:86:c3:af:22:1f:e9:e1:62:
- f4:cf:16:66:a8:3b:70:f6:12:30:be:fe:8e:44:1b:71:b5:c1:
- e0:4b:66:c4:5d:d4:d7:7d:49:43:4a:6d:22:1b:ce:3d:e3:14:
- 14:b3:6d:3a:93:39:0c:9b:2c:83:35:1d:7e:7c:29:29:3c:51:
- 6b:27:c3:5b:2d:f2:61:18:f8:c7:90:be:3b:68:3f:08:9b:ac:
- 68:01:d2:0c:ec:aa:5d:9e:78:b7:8b:84:04:01:b2:08:ef:df:
- 0c:f2:29:99:fe:61:d1:65:80:aa:ef:df:8e:28:55:a6:f9:88:
- 0c:01:bb:fc:1c:9e:9c:08:8d:c5:34:24:91:c1:ac:71:22:e1:
- 12:78:e0:45:d5:e2:39:c4:3c:16:09:80:d0:5b:bc:49:0a:4c:
- a3:5b:e1:36:40:ed:26:6d:8d:a0:d3:4a:3c:86:93:2f:d4:0a:
- 3c:72:08:62:d7:66:d0:b3:05:c2:0f:1d:af:3c:65:67:f2:6c:
- 76:a5:9c:37:ac:c4:ac:96:b7:e4:c0:ef:a4:5b:28:1e:16:09:
- 15:f6:7b:bb:5d:a2:94:9a:df:52:7b:ae:c9:39:f4:18:9e:84:
- 57:6c:d3:6d:ae:35:38:8f:8f:9b:0d:df:77:69:ae:25:ec:ce:
- d0:2b:bd:8d
+ 0f:97:60:47:2f:22:9f:d4:16:99:5a:ed:f4:b5:54:31:bf:9f:
+ a1:bd:2d:8b:eb:c1:24:db:73:30:c7:46:d6:4c:c8:c6:38:0c:
+ 9a:e6:d6:5e:e8:a7:fb:9f:b6:44:66:73:43:86:46:10:c0:4c:
+ 40:4e:c1:d7:e4:41:0b:f0:61:f0:6f:45:8c:5a:14:40:42:97:
+ c3:03:d0:ff:6d:4a:06:80:65:49:d4:2f:07:9d:86:59:6b:5b:
+ 9e:bc:0c:46:8a:62:da:c0:22:af:13:6c:0d:9d:54:5e:46:53:
+ a5:aa:f2:80:44:c7:07:6e:f7:b0:4c:37:5c:31:08:a0:37:df:
+ 8a:35:92:3c:8c:91:2f:64:4f:d3:a0:eb:95:b3:4a:9e:f7:ac:
+ 25:ad:06:13:5c:dd:bd:d5:6b:74:8d:c7:c5:a6:b4:89:27:fd:
+ b7:c2:24:a7:6a:b3:64:e6:e6:31:91:35:fc:0e:15:14:38:d6:
+ 39:b0:c4:b2:c1:c8:c7:ed:25:d7:b0:a9:b9:a0:70:33:42:90:
+ 86:33:2a:d8:d5:8a:02:e6:ab:8d:92:d6:ae:b4:1d:e9:6c:22:
+ a5:2f:1a:48:48:2b:5c:b8:30:01:4b:27:1a:d3:cf:21:77:ab:
+ 9f:bc:55:34:2e:9f:03:2b:17:0b:c3:44:8e:a8:94:ae:92:a2:
+ 9a:33:c0:8e
-----BEGIN CERTIFICATE-----
-MIIDWjCCAkKgAwIBAgIGDWSfQa6LMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNVBAYT
+MIID3jCCAsagAwIBAgIGDfi4rSqgMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNVBAYT
Ak5OMTEwLwYDVQQKDChFZGVsIEN1cmwgQXJjdGljIElsbHVkaXVtIFJlc2VhcmNo
IENsb3VkMSYwJAYDVQQDDB1Ob3J0aGVybiBOb3doZXJlIFRydXN0IEFuY2hvcjAe
-Fw0xNjA4MzAxODMyNTdaFw0yNDExMTYxODMyNTdaMFcxCzAJBgNVBAYTAk5OMTEw
+Fw0xODA5MDUyMzI5MDFaFw0yNjExMjIyMzI5MDFaMFcxCzAJBgNVBAYTAk5OMTEw
LwYDVQQKDChFZGVsIEN1cmwgQXJjdGljIElsbHVkaXVtIFJlc2VhcmNoIENsb3Vk
-MRUwEwYDVQQDDAxsb2NhbGhvc3Qubm4wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
-AoGBAKMqdde/dUFAvkK4uQAo8UUpVbw2yqa3hpOXJYSqyYCsQdko+7BoS1vuvZSD
-2iv2zMwR3/tI5unVl0F/mg23h5YSIkEqf5WKFNZsSzTfGCkBDbI8TcjEXof6n6ru
-pHPpu3RXhSQqUeRDXEuXUVK5gm6czq4PkUUl+bQkZo5HH9fVAgMBAAGjgZ4wgZsw
-LAYDVR0RBCUwI4IKbG9jYWxob3N0MYIKbG9jYWxob3N0MoIJbG9jYWxob3N0MAsG
-A1UdDwQEAwIDqDATBgNVHSUEDDAKBggrBgEFBQcDATAdBgNVHQ4EFgQULM/jbgj5
-zpuYO7MXfwyd5FsbdoowHwYDVR0jBBgwFoAUEsq6S0YEp3WKLOgOVJS8EmWme84w
-CQYDVR0TBAIwADANBgkqhkiG9w0BAQUFAAOCAQEALj3BoqfkcPioE4bDryIf6eFi
-9M8WZqg7cPYSML7+jkQbcbXB4EtmxF3U131JQ0ptIhvOPeMUFLNtOpM5DJssgzUd
-fnwpKTxRayfDWy3yYRj4x5C+O2g/CJusaAHSDOyqXZ54t4uEBAGyCO/fDPIpmf5h
-0WWAqu/fjihVpvmIDAG7/ByenAiNxTQkkcGscSLhEnjgRdXiOcQ8FgmA0Fu8SQpM
-o1vhNkDtJm2NoNNKPIaTL9QKPHIIYtdm0LMFwg8drzxlZ/JsdqWcN6zErJa35MDv
-pFsoHhYJFfZ7u12ilJrfUnuuyTn0GJ6EV2zTba41OI+Pmw3fd2muJezO0Cu9jQ==
+MRUwEwYDVQQDDAxsb2NhbGhvc3Qubm4wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+ggEKAoIBAQDfFhVfKqRQzzqoeW4ijZUWt0190h9PbS16fdyKT1N7X8neXIhsonQm
+NRx4aMFgJad7thqaqjPQn17yLiEEjA2aKPVhQDw0GpuKcIFtg5580EzZedw32SRu
+c8dhMXHp9Ze3Za099q8gb1a5tUK1PZZhMesNTOn1MdMlr0Czu4EEfxrOIRiDUi1R
+Ma6C+csQ09UGr/hx6KPGn3tI2uIorxz/QW0ygUVZ12TksdfJhmoLZXFm1kKoZ/2D
+SSB1Fh67G4VcfuKPXxyB04qV1pJcnn+iEAjh365paD+N3XlP2j95tQKXVzBnTT12
+NbVP0V013dS1a1ey4CM1rRq/b3fmvFjtAgMBAAGjgZ4wgZswLAYDVR0RBCUwI4IK
+bG9jYWxob3N0MYIKbG9jYWxob3N0MoIJbG9jYWxob3N0MAsGA1UdDwQEAwIDqDAT
+BgNVHSUEDDAKBggrBgEFBQcDATAdBgNVHQ4EFgQUfJrqm5KY+3cliYvv0/SINK/q
+JMwwHwYDVR0jBBgwFoAUEsq6S0YEp3WKLOgOVJS8EmWme84wCQYDVR0TBAIwADAN
+BgkqhkiG9w0BAQUFAAOCAQEAD5dgRy8in9QWmVrt9LVUMb+fob0ti+vBJNtzMMdG
+1kzIxjgMmubWXuin+5+2RGZzQ4ZGEMBMQE7B1+RBC/Bh8G9FjFoUQEKXwwPQ/21K
+BoBlSdQvB52GWWtbnrwMRopi2sAirxNsDZ1UXkZTparygETHB273sEw3XDEIoDff
+ijWSPIyRL2RP06DrlbNKnvesJa0GE1zdvdVrdI3Hxaa0iSf9t8Ikp2qzZObmMZE1
+/A4VFDjWObDEssHIx+0l17CpuaBwM0KQhjMq2NWKAuarjZLWrrQd6WwipS8aSEgr
+XLgwAUsnGtPPIXern7xVNC6fAysXC8NEjqiUrpKimjPAjg==
-----END CERTIFICATE-----
diff --git a/tests/certs/Server-localhost-lastSAN-sv.csr b/tests/certs/Server-localhost-lastSAN-sv.csr
index bf635554..78077bcd 100644
--- a/tests/certs/Server-localhost-lastSAN-sv.csr
+++ b/tests/certs/Server-localhost-lastSAN-sv.csr
@@ -1,11 +1,16 @@
-----BEGIN CERTIFICATE REQUEST-----
-MIIBlzCCAQACAQAwVzELMAkGA1UEBhMCTk4xMTAvBgNVBAoMKEVkZWwgQ3VybCBB
+MIICnDCCAYQCAQAwVzELMAkGA1UEBhMCTk4xMTAvBgNVBAoMKEVkZWwgQ3VybCBB
cmN0aWMgSWxsdWRpdW0gUmVzZWFyY2ggQ2xvdWQxFTATBgNVBAMMDGxvY2FsaG9z
-dC5ubjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAoyp11791QUC+Qri5ACjx
-RSlVvDbKpreGk5clhKrJgKxB2Sj7sGhLW+69lIPaK/bMzBHf+0jm6dWXQX+aDbeH
-lhIiQSp/lYoU1mxLNN8YKQENsjxNyMReh/qfqu6kc+m7dFeFJCpR5ENcS5dRUrmC
-bpzOrg+RRSX5tCRmjkcf19UCAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4GBACoIAlf0
-hSnZJOBBt7FS7iXlNRyKZAD881jhHFux+Gxq3gtbJsP57c+ALZ3MswjjUXW0Iq11
-IZLeZQGCAHYp4/GuTHbaq0qo1LjgpTqgQfwEB3BqNGs6yJiST+3risgawFbfqEDY
-LCm7rs/yyaOdMjwdwrUMciSv5KtlXZ1VThyt
+dC5ubjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN8WFV8qpFDPOqh5
+biKNlRa3TX3SH09tLXp93IpPU3tfyd5ciGyidCY1HHhowWAlp3u2GpqqM9CfXvIu
+IQSMDZoo9WFAPDQam4pwgW2DnnzQTNl53DfZJG5zx2Excen1l7dlrT32ryBvVrm1
+QrU9lmEx6w1M6fUx0yWvQLO7gQR/Gs4hGINSLVExroL5yxDT1Qav+HHoo8afe0ja
+4iivHP9BbTKBRVnXZOSx18mGagtlcWbWQqhn/YNJIHUWHrsbhVx+4o9fHIHTipXW
+klyef6IQCOHfrmloP43deU/aP3m1ApdXMGdNPXY1tU/RXTXd1LVrV7LgIzWtGr9v
+d+a8WO0CAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4IBAQCNGbWvnceLjA+R8+p1skgq
+0JxCZIUP/E8iOpg0eX2CjtU+9raYMNa7URtWa1kTSfxbuowPn21CSQmQ+1MDZv0Z
+UTAADKwXO6dDvXkYY4LwpRIozsz1zx1ulUaYmg4D2FPBIxg9QNLB0ic9+gUYdUEX
+Uw7vzxY8ExO99Z6rhJcNZPPYmj97MS/ZmBTZ8jxqjuOQ1R9mIhBvdsYdoDQR8SMK
+1b/0qH0F5Ly2iWt+pi+muoz+tYUyiXrIzYGF4+gImYBJEy35Pni/H8mMY62TxbWi
+QfhD9S8hxfT733X+UQQlQPToNDYdrmm/WcABOXrm8ESXfKvzs8aCodfCpDYIyxbu
-----END CERTIFICATE REQUEST-----
diff --git a/tests/certs/Server-localhost-lastSAN-sv.der b/tests/certs/Server-localhost-lastSAN-sv.der
index 5ffa9ce3..220e7927 100644
--- a/tests/certs/Server-localhost-lastSAN-sv.der
+++ b/tests/certs/Server-localhost-lastSAN-sv.der
Binary files differ
diff --git a/tests/certs/Server-localhost-lastSAN-sv.key b/tests/certs/Server-localhost-lastSAN-sv.key
index 824ee6fe..618e8390 100644
--- a/tests/certs/Server-localhost-lastSAN-sv.key
+++ b/tests/certs/Server-localhost-lastSAN-sv.key
@@ -1,15 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
-MIICWwIBAAKBgQCjKnXXv3VBQL5CuLkAKPFFKVW8Nsqmt4aTlyWEqsmArEHZKPuw
-aEtb7r2Ug9or9szMEd/7SObp1ZdBf5oNt4eWEiJBKn+VihTWbEs03xgpAQ2yPE3I
-xF6H+p+q7qRz6bt0V4UkKlHkQ1xLl1FSuYJunM6uD5FFJfm0JGaORx/X1QIDAQAB
-AoGAaC2QGDSSNRuVXxx6YnPBuJrvtsB1G4VKU6nJtq8lARb65CCassOkegow2UZm
-YnOtxw4SqGqfpOVPMe66+c8Yrd+6zimC7VorxmfhNxqOO34bxzztKKk8Q7c+odl3
-+c4aVnFBk2hzuOW4PuJoFfFNQZWmh/XJdKK85X+bkryS/oECQQDTdzwYyDxvrPaw
-ZeR5oDleopk5W5QwmBAq4ehtie1oZfhzlNZzPOjnI9I71MRYdCwkesKHL2k6q7cT
-jA4sSmx5AkEAxYc6+o8l0/HE8HzypWe/ZfozaY3ccIFzmvcwQorbCvAxDtZ1DbFy
-VWLOgM/6gwDIUDF6ckaInaVmiVJl60Y3PQJAZFBOuO7cBJoHWDytuqiwLl1x1EzG
-KpsoKD+MU9I3RewBhUrYxEfjsCpFA8716YQKoK9/ckOiZouoyGQLISWY+QJAG5id
-AMxm+Ilafk62h61K7DBcZm7PUViEki3erC1CFPEhqXUEvXkBBDTdrNlholPFqI6B
-EN4R0BR/ksfUPV598QJAF8jl/8gz8pmAWmqw8tKbWdQeDgisyTHeYlPMxq4fUbLH
-mJk05csSX9CTg4eO7NRRwPxODKmPCd88sZZSOuTQmQ==
+MIIEogIBAAKCAQEA3xYVXyqkUM86qHluIo2VFrdNfdIfT20ten3cik9Te1/J3lyI
+bKJ0JjUceGjBYCWne7Yamqoz0J9e8i4hBIwNmij1YUA8NBqbinCBbYOefNBM2Xnc
+N9kkbnPHYTFx6fWXt2WtPfavIG9WubVCtT2WYTHrDUzp9THTJa9As7uBBH8aziEY
+g1ItUTGugvnLENPVBq/4ceijxp97SNriKK8c/0FtMoFFWddk5LHXyYZqC2VxZtZC
+qGf9g0kgdRYeuxuFXH7ij18cgdOKldaSXJ5/ohAI4d+uaWg/jd15T9o/ebUCl1cw
+Z009djW1T9FdNd3UtWtXsuAjNa0av2935rxY7QIDAQABAoIBAFz/H7mkVQs62AET
+Xc4Zp2To1Oz2gwbhRGwju6QMnYh4zfZcLKLctf6XdV7cjIBAMiloKH8BJMh7J2Fd
+yXXTzHfPSztXQ8GUtfJoJAw7Kf5t9xtRqXO+mWlR6nOh4RLexng1cpq6Exc6UrTn
+0v8qxV2PKaVJwt3r/1FeVWKXb5kne/Ob4LS7c0xnVqc7TGPtxLdS5mU5jrt0ZdZl
+tcHulLX24rmxKcNvge6r2EiYuet3vUi1uuLBQbWUJIFRwetDufG/2e2ihOuvCj5s
+aYNlRAo0JUwWl7geicRUdxkCpV/Qld7aYldKIcsSzgl6GLpgNpHjUFBbJBGSng0S
+vA4CMQECgYEA9tseJG2IuudqDHnpuUxtnlfDJTfYjtBQnYG1ojbd9FUiuihv/B2K
+pJ5uuowpKSnXOwaHtzyQ6XJA7JChRcDmJ4rf6R/1B61+1XVasyi2WffTJHbKzUk+
+hBAUoGtJIvrChMOnAlQzifP8+b7ec/ghKy87dNlQzQlSunyEW6lAW/UCgYEA51mQ
+JOFsasSvioKilsJuFCcFInZCRTEMz7vK9HW2Qnv71b3xeB6aNoJA8zf1Gw9q5clN
+Yu+8pkGNsWeone8izTzzpgZGJmM/vLjSdIgaJytStha2FwlQxUjggOjSy1zIdW+v
+ROw6OaT2J5+Qw2ruWqSaw2fiDgOpBCJgfg95JhkCgYAy5SppyEuQfXXX7KrLkX5o
+Tx/k5Ia5qylzz/Jq53ULkyH9z6iHCnAzUJbzz0INQpsliEsi9FHMT8oi/A7EGulY
+7cEMh5I1awfjarawiYxPMFFQC0301U0WXVpjWLtTgu/n/47HZCTcJHnb5AZpUpdE
+GBDiHowSOgHcgR+o5lRmoQKBgFaPi0BRW+hi6S9RC5aO7vL5WpF3X/pVjO6Y3Co1
+dNlRXHuv0w5XnOmyOK0IDdxvG1cYx6yx+IrYUjTDjTJyjDnwiVVgWZT5Y5qwKIZT
+ej2Xlx3sR3s9EAyQ5Pc2pdBTSemuvQxzuqFg2H0g1eBYPRCLMCDW2JzXv8B9QE9K
+aNDZAoGAKbVakgVlwrGffJb5c6ZFF9W/WoJYXJRA2/tMqvOcaZwSNq0ySHI/uUyM
+3aexymibv5cGsFhtcr8vqxlX0PZ+PF2SRe/L58PmByEXGmyv6UZ/fhOCh8ttmPzt
+GIh5PiKOd7RR7ydFY22M2+uW99wMf5jSH6uX1DRATFLxJygbnHA=
-----END RSA PRIVATE KEY-----
diff --git a/tests/certs/Server-localhost-lastSAN-sv.pem b/tests/certs/Server-localhost-lastSAN-sv.pem
index b563e0a7..c1684fdb 100644
--- a/tests/certs/Server-localhost-lastSAN-sv.pem
+++ b/tests/certs/Server-localhost-lastSAN-sv.pem
@@ -24,49 +24,70 @@ commonName_value = localhost.nn
# the certificate
# some dhparam
-----BEGIN RSA PRIVATE KEY-----
-MIICWwIBAAKBgQCjKnXXv3VBQL5CuLkAKPFFKVW8Nsqmt4aTlyWEqsmArEHZKPuw
-aEtb7r2Ug9or9szMEd/7SObp1ZdBf5oNt4eWEiJBKn+VihTWbEs03xgpAQ2yPE3I
-xF6H+p+q7qRz6bt0V4UkKlHkQ1xLl1FSuYJunM6uD5FFJfm0JGaORx/X1QIDAQAB
-AoGAaC2QGDSSNRuVXxx6YnPBuJrvtsB1G4VKU6nJtq8lARb65CCassOkegow2UZm
-YnOtxw4SqGqfpOVPMe66+c8Yrd+6zimC7VorxmfhNxqOO34bxzztKKk8Q7c+odl3
-+c4aVnFBk2hzuOW4PuJoFfFNQZWmh/XJdKK85X+bkryS/oECQQDTdzwYyDxvrPaw
-ZeR5oDleopk5W5QwmBAq4ehtie1oZfhzlNZzPOjnI9I71MRYdCwkesKHL2k6q7cT
-jA4sSmx5AkEAxYc6+o8l0/HE8HzypWe/ZfozaY3ccIFzmvcwQorbCvAxDtZ1DbFy
-VWLOgM/6gwDIUDF6ckaInaVmiVJl60Y3PQJAZFBOuO7cBJoHWDytuqiwLl1x1EzG
-KpsoKD+MU9I3RewBhUrYxEfjsCpFA8716YQKoK9/ckOiZouoyGQLISWY+QJAG5id
-AMxm+Ilafk62h61K7DBcZm7PUViEki3erC1CFPEhqXUEvXkBBDTdrNlholPFqI6B
-EN4R0BR/ksfUPV598QJAF8jl/8gz8pmAWmqw8tKbWdQeDgisyTHeYlPMxq4fUbLH
-mJk05csSX9CTg4eO7NRRwPxODKmPCd88sZZSOuTQmQ==
+MIIEogIBAAKCAQEA3xYVXyqkUM86qHluIo2VFrdNfdIfT20ten3cik9Te1/J3lyI
+bKJ0JjUceGjBYCWne7Yamqoz0J9e8i4hBIwNmij1YUA8NBqbinCBbYOefNBM2Xnc
+N9kkbnPHYTFx6fWXt2WtPfavIG9WubVCtT2WYTHrDUzp9THTJa9As7uBBH8aziEY
+g1ItUTGugvnLENPVBq/4ceijxp97SNriKK8c/0FtMoFFWddk5LHXyYZqC2VxZtZC
+qGf9g0kgdRYeuxuFXH7ij18cgdOKldaSXJ5/ohAI4d+uaWg/jd15T9o/ebUCl1cw
+Z009djW1T9FdNd3UtWtXsuAjNa0av2935rxY7QIDAQABAoIBAFz/H7mkVQs62AET
+Xc4Zp2To1Oz2gwbhRGwju6QMnYh4zfZcLKLctf6XdV7cjIBAMiloKH8BJMh7J2Fd
+yXXTzHfPSztXQ8GUtfJoJAw7Kf5t9xtRqXO+mWlR6nOh4RLexng1cpq6Exc6UrTn
+0v8qxV2PKaVJwt3r/1FeVWKXb5kne/Ob4LS7c0xnVqc7TGPtxLdS5mU5jrt0ZdZl
+tcHulLX24rmxKcNvge6r2EiYuet3vUi1uuLBQbWUJIFRwetDufG/2e2ihOuvCj5s
+aYNlRAo0JUwWl7geicRUdxkCpV/Qld7aYldKIcsSzgl6GLpgNpHjUFBbJBGSng0S
+vA4CMQECgYEA9tseJG2IuudqDHnpuUxtnlfDJTfYjtBQnYG1ojbd9FUiuihv/B2K
+pJ5uuowpKSnXOwaHtzyQ6XJA7JChRcDmJ4rf6R/1B61+1XVasyi2WffTJHbKzUk+
+hBAUoGtJIvrChMOnAlQzifP8+b7ec/ghKy87dNlQzQlSunyEW6lAW/UCgYEA51mQ
+JOFsasSvioKilsJuFCcFInZCRTEMz7vK9HW2Qnv71b3xeB6aNoJA8zf1Gw9q5clN
+Yu+8pkGNsWeone8izTzzpgZGJmM/vLjSdIgaJytStha2FwlQxUjggOjSy1zIdW+v
+ROw6OaT2J5+Qw2ruWqSaw2fiDgOpBCJgfg95JhkCgYAy5SppyEuQfXXX7KrLkX5o
+Tx/k5Ia5qylzz/Jq53ULkyH9z6iHCnAzUJbzz0INQpsliEsi9FHMT8oi/A7EGulY
+7cEMh5I1awfjarawiYxPMFFQC0301U0WXVpjWLtTgu/n/47HZCTcJHnb5AZpUpdE
+GBDiHowSOgHcgR+o5lRmoQKBgFaPi0BRW+hi6S9RC5aO7vL5WpF3X/pVjO6Y3Co1
+dNlRXHuv0w5XnOmyOK0IDdxvG1cYx6yx+IrYUjTDjTJyjDnwiVVgWZT5Y5qwKIZT
+ej2Xlx3sR3s9EAyQ5Pc2pdBTSemuvQxzuqFg2H0g1eBYPRCLMCDW2JzXv8B9QE9K
+aNDZAoGAKbVakgVlwrGffJb5c6ZFF9W/WoJYXJRA2/tMqvOcaZwSNq0ySHI/uUyM
+3aexymibv5cGsFhtcr8vqxlX0PZ+PF2SRe/L58PmByEXGmyv6UZ/fhOCh8ttmPzt
+GIh5PiKOd7RR7ydFY22M2+uW99wMf5jSH6uX1DRATFLxJygbnHA=
-----END RSA PRIVATE KEY-----
Certificate:
Data:
Version: 3 (0x2)
- Serial Number: 14725819772555 (0xd649f41ae8b)
+ Serial Number: 15361901406880 (0xdf8b8ad2aa0)
Signature Algorithm: sha1WithRSAEncryption
Issuer:
countryName = NN
organizationName = Edel Curl Arctic Illudium Research Cloud
commonName = Northern Nowhere Trust Anchor
Validity
- Not Before: Aug 30 18:32:57 2016 GMT
- Not After : Nov 16 18:32:57 2024 GMT
+ Not Before: Sep 5 23:29:01 2018 GMT
+ Not After : Nov 22 23:29:01 2026 GMT
Subject:
countryName = NN
organizationName = Edel Curl Arctic Illudium Research Cloud
commonName = localhost.nn
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
- Public-Key: (1024 bit)
+ Public-Key: (2048 bit)
Modulus:
- 00:a3:2a:75:d7:bf:75:41:40:be:42:b8:b9:00:28:
- f1:45:29:55:bc:36:ca:a6:b7:86:93:97:25:84:aa:
- c9:80:ac:41:d9:28:fb:b0:68:4b:5b:ee:bd:94:83:
- da:2b:f6:cc:cc:11:df:fb:48:e6:e9:d5:97:41:7f:
- 9a:0d:b7:87:96:12:22:41:2a:7f:95:8a:14:d6:6c:
- 4b:34:df:18:29:01:0d:b2:3c:4d:c8:c4:5e:87:fa:
- 9f:aa:ee:a4:73:e9:bb:74:57:85:24:2a:51:e4:43:
- 5c:4b:97:51:52:b9:82:6e:9c:ce:ae:0f:91:45:25:
- f9:b4:24:66:8e:47:1f:d7:d5
+ 00:df:16:15:5f:2a:a4:50:cf:3a:a8:79:6e:22:8d:
+ 95:16:b7:4d:7d:d2:1f:4f:6d:2d:7a:7d:dc:8a:4f:
+ 53:7b:5f:c9:de:5c:88:6c:a2:74:26:35:1c:78:68:
+ c1:60:25:a7:7b:b6:1a:9a:aa:33:d0:9f:5e:f2:2e:
+ 21:04:8c:0d:9a:28:f5:61:40:3c:34:1a:9b:8a:70:
+ 81:6d:83:9e:7c:d0:4c:d9:79:dc:37:d9:24:6e:73:
+ c7:61:31:71:e9:f5:97:b7:65:ad:3d:f6:af:20:6f:
+ 56:b9:b5:42:b5:3d:96:61:31:eb:0d:4c:e9:f5:31:
+ d3:25:af:40:b3:bb:81:04:7f:1a:ce:21:18:83:52:
+ 2d:51:31:ae:82:f9:cb:10:d3:d5:06:af:f8:71:e8:
+ a3:c6:9f:7b:48:da:e2:28:af:1c:ff:41:6d:32:81:
+ 45:59:d7:64:e4:b1:d7:c9:86:6a:0b:65:71:66:d6:
+ 42:a8:67:fd:83:49:20:75:16:1e:bb:1b:85:5c:7e:
+ e2:8f:5f:1c:81:d3:8a:95:d6:92:5c:9e:7f:a2:10:
+ 08:e1:df:ae:69:68:3f:8d:dd:79:4f:da:3f:79:b5:
+ 02:97:57:30:67:4d:3d:76:35:b5:4f:d1:5d:35:dd:
+ d4:b5:6b:57:b2:e0:23:35:ad:1a:bf:6f:77:e6:bc:
+ 58:ed
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Alternative Name:
@@ -76,45 +97,48 @@ Certificate:
X509v3 Extended Key Usage:
TLS Web Server Authentication
X509v3 Subject Key Identifier:
- 2C:CF:E3:6E:08:F9:CE:9B:98:3B:B3:17:7F:0C:9D:E4:5B:1B:76:8A
+ 7C:9A:EA:9B:92:98:FB:77:25:89:8B:EF:D3:F4:88:34:AF:EA:24:CC
X509v3 Authority Key Identifier:
keyid:12:CA:BA:4B:46:04:A7:75:8A:2C:E8:0E:54:94:BC:12:65:A6:7B:CE
X509v3 Basic Constraints:
CA:FALSE
Signature Algorithm: sha1WithRSAEncryption
- 2e:3d:c1:a2:a7:e4:70:f8:a8:13:86:c3:af:22:1f:e9:e1:62:
- f4:cf:16:66:a8:3b:70:f6:12:30:be:fe:8e:44:1b:71:b5:c1:
- e0:4b:66:c4:5d:d4:d7:7d:49:43:4a:6d:22:1b:ce:3d:e3:14:
- 14:b3:6d:3a:93:39:0c:9b:2c:83:35:1d:7e:7c:29:29:3c:51:
- 6b:27:c3:5b:2d:f2:61:18:f8:c7:90:be:3b:68:3f:08:9b:ac:
- 68:01:d2:0c:ec:aa:5d:9e:78:b7:8b:84:04:01:b2:08:ef:df:
- 0c:f2:29:99:fe:61:d1:65:80:aa:ef:df:8e:28:55:a6:f9:88:
- 0c:01:bb:fc:1c:9e:9c:08:8d:c5:34:24:91:c1:ac:71:22:e1:
- 12:78:e0:45:d5:e2:39:c4:3c:16:09:80:d0:5b:bc:49:0a:4c:
- a3:5b:e1:36:40:ed:26:6d:8d:a0:d3:4a:3c:86:93:2f:d4:0a:
- 3c:72:08:62:d7:66:d0:b3:05:c2:0f:1d:af:3c:65:67:f2:6c:
- 76:a5:9c:37:ac:c4:ac:96:b7:e4:c0:ef:a4:5b:28:1e:16:09:
- 15:f6:7b:bb:5d:a2:94:9a:df:52:7b:ae:c9:39:f4:18:9e:84:
- 57:6c:d3:6d:ae:35:38:8f:8f:9b:0d:df:77:69:ae:25:ec:ce:
- d0:2b:bd:8d
+ 0f:97:60:47:2f:22:9f:d4:16:99:5a:ed:f4:b5:54:31:bf:9f:
+ a1:bd:2d:8b:eb:c1:24:db:73:30:c7:46:d6:4c:c8:c6:38:0c:
+ 9a:e6:d6:5e:e8:a7:fb:9f:b6:44:66:73:43:86:46:10:c0:4c:
+ 40:4e:c1:d7:e4:41:0b:f0:61:f0:6f:45:8c:5a:14:40:42:97:
+ c3:03:d0:ff:6d:4a:06:80:65:49:d4:2f:07:9d:86:59:6b:5b:
+ 9e:bc:0c:46:8a:62:da:c0:22:af:13:6c:0d:9d:54:5e:46:53:
+ a5:aa:f2:80:44:c7:07:6e:f7:b0:4c:37:5c:31:08:a0:37:df:
+ 8a:35:92:3c:8c:91:2f:64:4f:d3:a0:eb:95:b3:4a:9e:f7:ac:
+ 25:ad:06:13:5c:dd:bd:d5:6b:74:8d:c7:c5:a6:b4:89:27:fd:
+ b7:c2:24:a7:6a:b3:64:e6:e6:31:91:35:fc:0e:15:14:38:d6:
+ 39:b0:c4:b2:c1:c8:c7:ed:25:d7:b0:a9:b9:a0:70:33:42:90:
+ 86:33:2a:d8:d5:8a:02:e6:ab:8d:92:d6:ae:b4:1d:e9:6c:22:
+ a5:2f:1a:48:48:2b:5c:b8:30:01:4b:27:1a:d3:cf:21:77:ab:
+ 9f:bc:55:34:2e:9f:03:2b:17:0b:c3:44:8e:a8:94:ae:92:a2:
+ 9a:33:c0:8e
-----BEGIN CERTIFICATE-----
-MIIDWjCCAkKgAwIBAgIGDWSfQa6LMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNVBAYT
+MIID3jCCAsagAwIBAgIGDfi4rSqgMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNVBAYT
Ak5OMTEwLwYDVQQKDChFZGVsIEN1cmwgQXJjdGljIElsbHVkaXVtIFJlc2VhcmNo
IENsb3VkMSYwJAYDVQQDDB1Ob3J0aGVybiBOb3doZXJlIFRydXN0IEFuY2hvcjAe
-Fw0xNjA4MzAxODMyNTdaFw0yNDExMTYxODMyNTdaMFcxCzAJBgNVBAYTAk5OMTEw
+Fw0xODA5MDUyMzI5MDFaFw0yNjExMjIyMzI5MDFaMFcxCzAJBgNVBAYTAk5OMTEw
LwYDVQQKDChFZGVsIEN1cmwgQXJjdGljIElsbHVkaXVtIFJlc2VhcmNoIENsb3Vk
-MRUwEwYDVQQDDAxsb2NhbGhvc3Qubm4wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
-AoGBAKMqdde/dUFAvkK4uQAo8UUpVbw2yqa3hpOXJYSqyYCsQdko+7BoS1vuvZSD
-2iv2zMwR3/tI5unVl0F/mg23h5YSIkEqf5WKFNZsSzTfGCkBDbI8TcjEXof6n6ru
-pHPpu3RXhSQqUeRDXEuXUVK5gm6czq4PkUUl+bQkZo5HH9fVAgMBAAGjgZ4wgZsw
-LAYDVR0RBCUwI4IKbG9jYWxob3N0MYIKbG9jYWxob3N0MoIJbG9jYWxob3N0MAsG
-A1UdDwQEAwIDqDATBgNVHSUEDDAKBggrBgEFBQcDATAdBgNVHQ4EFgQULM/jbgj5
-zpuYO7MXfwyd5FsbdoowHwYDVR0jBBgwFoAUEsq6S0YEp3WKLOgOVJS8EmWme84w
-CQYDVR0TBAIwADANBgkqhkiG9w0BAQUFAAOCAQEALj3BoqfkcPioE4bDryIf6eFi
-9M8WZqg7cPYSML7+jkQbcbXB4EtmxF3U131JQ0ptIhvOPeMUFLNtOpM5DJssgzUd
-fnwpKTxRayfDWy3yYRj4x5C+O2g/CJusaAHSDOyqXZ54t4uEBAGyCO/fDPIpmf5h
-0WWAqu/fjihVpvmIDAG7/ByenAiNxTQkkcGscSLhEnjgRdXiOcQ8FgmA0Fu8SQpM
-o1vhNkDtJm2NoNNKPIaTL9QKPHIIYtdm0LMFwg8drzxlZ/JsdqWcN6zErJa35MDv
-pFsoHhYJFfZ7u12ilJrfUnuuyTn0GJ6EV2zTba41OI+Pmw3fd2muJezO0Cu9jQ==
+MRUwEwYDVQQDDAxsb2NhbGhvc3Qubm4wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+ggEKAoIBAQDfFhVfKqRQzzqoeW4ijZUWt0190h9PbS16fdyKT1N7X8neXIhsonQm
+NRx4aMFgJad7thqaqjPQn17yLiEEjA2aKPVhQDw0GpuKcIFtg5580EzZedw32SRu
+c8dhMXHp9Ze3Za099q8gb1a5tUK1PZZhMesNTOn1MdMlr0Czu4EEfxrOIRiDUi1R
+Ma6C+csQ09UGr/hx6KPGn3tI2uIorxz/QW0ygUVZ12TksdfJhmoLZXFm1kKoZ/2D
+SSB1Fh67G4VcfuKPXxyB04qV1pJcnn+iEAjh365paD+N3XlP2j95tQKXVzBnTT12
+NbVP0V013dS1a1ey4CM1rRq/b3fmvFjtAgMBAAGjgZ4wgZswLAYDVR0RBCUwI4IK
+bG9jYWxob3N0MYIKbG9jYWxob3N0MoIJbG9jYWxob3N0MAsGA1UdDwQEAwIDqDAT
+BgNVHSUEDDAKBggrBgEFBQcDATAdBgNVHQ4EFgQUfJrqm5KY+3cliYvv0/SINK/q
+JMwwHwYDVR0jBBgwFoAUEsq6S0YEp3WKLOgOVJS8EmWme84wCQYDVR0TBAIwADAN
+BgkqhkiG9w0BAQUFAAOCAQEAD5dgRy8in9QWmVrt9LVUMb+fob0ti+vBJNtzMMdG
+1kzIxjgMmubWXuin+5+2RGZzQ4ZGEMBMQE7B1+RBC/Bh8G9FjFoUQEKXwwPQ/21K
+BoBlSdQvB52GWWtbnrwMRopi2sAirxNsDZ1UXkZTparygETHB273sEw3XDEIoDff
+ijWSPIyRL2RP06DrlbNKnvesJa0GE1zdvdVrdI3Hxaa0iSf9t8Ikp2qzZObmMZE1
+/A4VFDjWObDEssHIx+0l17CpuaBwM0KQhjMq2NWKAuarjZLWrrQd6WwipS8aSEgr
+XLgwAUsnGtPPIXern7xVNC6fAysXC8NEjqiUrpKimjPAjg==
-----END CERTIFICATE-----
diff --git a/tests/certs/Server-localhost-lastSAN-sv.pub.der b/tests/certs/Server-localhost-lastSAN-sv.pub.der
index 06fe6d06..5cd11dc1 100644
--- a/tests/certs/Server-localhost-lastSAN-sv.pub.der
+++ b/tests/certs/Server-localhost-lastSAN-sv.pub.der
Binary files differ
diff --git a/tests/certs/Server-localhost-lastSAN-sv.pub.pem b/tests/certs/Server-localhost-lastSAN-sv.pub.pem
index a8e2dd4c..aaca8570 100644
--- a/tests/certs/Server-localhost-lastSAN-sv.pub.pem
+++ b/tests/certs/Server-localhost-lastSAN-sv.pub.pem
@@ -1,6 +1,9 @@
-----BEGIN PUBLIC KEY-----
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCjKnXXv3VBQL5CuLkAKPFFKVW8
-Nsqmt4aTlyWEqsmArEHZKPuwaEtb7r2Ug9or9szMEd/7SObp1ZdBf5oNt4eWEiJB
-Kn+VihTWbEs03xgpAQ2yPE3IxF6H+p+q7qRz6bt0V4UkKlHkQ1xLl1FSuYJunM6u
-D5FFJfm0JGaORx/X1QIDAQAB
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3xYVXyqkUM86qHluIo2V
+FrdNfdIfT20ten3cik9Te1/J3lyIbKJ0JjUceGjBYCWne7Yamqoz0J9e8i4hBIwN
+mij1YUA8NBqbinCBbYOefNBM2XncN9kkbnPHYTFx6fWXt2WtPfavIG9WubVCtT2W
+YTHrDUzp9THTJa9As7uBBH8aziEYg1ItUTGugvnLENPVBq/4ceijxp97SNriKK8c
+/0FtMoFFWddk5LHXyYZqC2VxZtZCqGf9g0kgdRYeuxuFXH7ij18cgdOKldaSXJ5/
+ohAI4d+uaWg/jd15T9o/ebUCl1cwZ009djW1T9FdNd3UtWtXsuAjNa0av2935rxY
+7QIDAQAB
-----END PUBLIC KEY-----
diff --git a/tests/certs/Server-localhost-sv.crl b/tests/certs/Server-localhost-sv.crl
index 3e75229b..5b52c607 100644
--- a/tests/certs/Server-localhost-sv.crl
+++ b/tests/certs/Server-localhost-sv.crl
@@ -1,21 +1,12 @@
-----BEGIN X509 CRL-----
-MIIDbzCCAlcCAQEwDQYJKoZIhvcNAQEFBQAwaDELMAkGA1UEBhMCTk4xMTAvBgNV
-BAoMKEVkZWwgQ3VybCBBcmN0aWMgSWxsdWRpdW0gUmVzZWFyY2ggQ2xvdWQxJjAk
-BgNVBAMMHU5vcnRoZXJuIE5vd2hlcmUgVHJ1c3QgQW5jaG9yFw0xNTAzMjExNTA3
-MTFaFw0xNTA0MjAxNTA3MTFaMIIBqTAXAgYM+ly45CIXDTE1MDMyMTEzMTQ1N1ow
-FwIGDPpcwXH8Fw0xNTAzMjExMzE1NTNaMBcCBgz6XO7ujBcNMTUwMzIxMTMyMDUx
-WjAXAgYM+lzu7p0XDTE1MDMyMTEzMjA1MVowFwIGDPpc7u6uFw0xNTAzMjExMzIw
-NTFaMBcCBgz6XZyD1RcNMTUwMzIxMTMzOTQ5WjAXAgYM+l4OXa8XDTE1MDMyMTEz
-NTIxNVowFwIGDPpeJlPZFw0xNTAzMjExMzU0NTJaMBcCBgz6XiZT6hcNMTUwMzIx
-MTM1NDUyWjAXAgYM+l4mU/sXDTE1MDMyMTEzNTQ1MlowFwIGDPpemKKEFw0xNTAz
-MjExNDA3MjFaMBcCBgz6XpiilRcNMTUwMzIxMTQwNzIxWjAXAgYM+l6YoqYXDTE1
-MDMyMTE0MDcyMVowFwIGDPpffssxFw0xNTAzMjExNDMyMzBaMBcCBgz6X37yUxcN
-MTUwMzIxMTQzMjMxWjAXAgYM+l9+8mYXDTE1MDMyMTE0MzIzMVowFwIGDPpgvFFL
-Fw0xNTAzMjExNTA3MTFaoA4wDDAKBgNVHRQEAwIBATANBgkqhkiG9w0BAQUFAAOC
-AQEAllslrhWUoq49PC+KQghVDAeFREP3pKPUlSebVVR8PCtCKrFtc53dUaTl8qhK
-1wOLodr80lfr2kEgzTEDt2CfXryl3orLPeMWe0OWTBsPbuwj+d7m3uq4B43laqJn
-JM5ebRvzHWMJkVNkwiXiadPTW5ZMUqu2Bs97rdcjklUrEcamf9aMLqb6sPGtU4EO
-o/GxGW2eypYwncFmzAc5W3NDRePGPhN5rUDfqm5Id4T9FKmGcNmI7qlLQi+jp23F
-V6RvrqANIemopQQ4kYGy7pzilDYm6+R+fPCIh2H/0eqCDY8NdjygXtWW+pJ58axV
-MPZ2mFPcH5UHiqmi8kRstnA8KQ==
+MIIB3DCBxQIBATANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJOTjExMC8GA1UE
+CgwoRWRlbCBDdXJsIEFyY3RpYyBJbGx1ZGl1bSBSZXNlYXJjaCBDbG91ZDEmMCQG
+A1UEAwwdTm9ydGhlcm4gTm93aGVyZSBUcnVzdCBBbmNob3IXDTE4MDkxOTA3MTMx
+NFoXDTE4MTAxOTA3MTMxNFowGTAXAgYN+2bB8FMXDTE4MDkxOTA3MTMxNFqgDjAM
+MAoGA1UdFAQDAgEBMA0GCSqGSIb3DQEBBQUAA4IBAQCllmWJK8FzgV2ebqeiXzxv
+OHnz3E4pgz40qB66ry6PAlbXpYWwjAdpRaG/G4tN8q3q6iloHdkPK6Ed5coB3UXU
+kRy/rojSTxzRYqt15sndz9943URJW4EGZNKf64DKq7yQL4B19ik2x7CcWNqdfsx9
+w7R/ypqTxK3+L5bcLgXMTVZEAWwez9aTAnNl3bL2pN16fC15SU9vS8HOl0R5GQeO
+dl9dZRVwKg119PUAngLeEmQcTZcHr5aOMDBJTgTKybOHJCgkC/1mICISU5JAxvc7
+03ohKy5ZzzTzi7wJyfT3QOgC8EDc/6+wa3AjJMAccEth4USC4ABlX1ja2aZLa1L5
-----END X509 CRL-----
diff --git a/tests/certs/Server-localhost-sv.crt b/tests/certs/Server-localhost-sv.crt
index abf69245..e3fc42a9 100644
--- a/tests/certs/Server-localhost-sv.crt
+++ b/tests/certs/Server-localhost-sv.crt
@@ -1,32 +1,41 @@
Certificate:
Data:
Version: 3 (0x2)
- Serial Number: 14269504311627 (0xcfa60bc514b)
- Signature Algorithm: sha1WithRSAEncryption
+ Serial Number: 15373411938387 (0xdfb66c1f053)
+ Signature Algorithm: sha256WithRSAEncryption
Issuer:
countryName = NN
organizationName = Edel Curl Arctic Illudium Research Cloud
commonName = Northern Nowhere Trust Anchor
Validity
- Not Before: Mar 21 15:07:11 2015 GMT
- Not After : Jun 7 15:07:11 2023 GMT
+ Not Before: Sep 19 07:13:14 2018 GMT
+ Not After : Dec 6 07:13:14 2026 GMT
Subject:
countryName = NN
organizationName = Edel Curl Arctic Illudium Research Cloud
commonName = localhost
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
- Public-Key: (1024 bit)
+ RSA Public-Key: (2048 bit)
Modulus:
- 00:ba:5f:4b:69:74:31:99:4d:f4:b4:b7:2a:65:b8:
- b7:31:c1:38:cf:36:37:bb:5e:18:e3:52:1f:52:aa:
- 5a:25:2f:0c:66:88:32:b0:ef:b2:2c:90:38:5e:6e:
- 6f:0e:e4:3b:3f:f0:2e:f1:7a:3d:5e:c3:64:86:3f:
- 68:b7:cf:0b:b3:ea:0a:ca:94:16:d4:2b:6a:02:e3:
- a1:b3:c7:d1:d0:06:b8:ff:df:dc:e0:32:2a:e7:dd:
- 62:cc:71:c4:e8:cf:9d:de:5c:75:69:9d:b6:ce:e2:
- 42:d8:a7:bd:50:54:78:2d:55:67:7f:00:7b:8f:9c:
- 11:d1:9e:ce:be:1e:fe:cf:37
+ 00:9f:a9:30:50:f9:70:bc:33:7f:1f:aa:c6:5e:5a:
+ 0a:f6:cf:99:22:cd:bc:3a:41:e7:76:bc:05:01:85:
+ 24:cd:22:79:47:26:4d:6a:9d:41:cf:31:80:20:1f:
+ 5f:3a:87:2f:4f:ff:5c:23:ac:67:0b:f4:14:58:a7:
+ 47:d7:76:03:53:fe:b3:0d:23:08:19:ff:b4:ac:47:
+ bd:60:90:c8:04:94:05:cb:cf:1b:10:aa:bb:08:46:
+ 54:42:a8:2b:cc:35:f9:6a:b9:46:9e:82:47:18:77:
+ cf:c0:48:1f:5c:d2:9b:ed:fd:8d:3d:29:0b:20:b7:
+ dd:02:60:27:62:18:73:1c:0c:b1:82:2d:3c:9c:1e:
+ b6:3e:86:f4:0e:d3:02:50:f1:f8:01:87:32:8a:2d:
+ c5:61:0b:aa:94:f0:b3:29:3f:49:a7:f6:4a:dd:75:
+ 30:c0:62:97:14:6b:de:4d:71:44:40:39:8e:08:f5:
+ b9:73:41:d5:eb:12:d8:ce:5d:be:29:76:ea:6b:94:
+ 18:d7:2c:43:5e:89:12:f1:50:f2:2d:c0:6d:19:07:
+ 99:96:f3:a8:46:f3:3b:e8:c8:1d:0d:fa:54:96:a0:
+ 26:2c:4f:c0:60:84:a9:21:39:0f:44:28:e4:e3:11:
+ 79:e4:a3:44:e2:20:e1:9d:65:54:a2:27:56:67:94:
+ 02:27
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Alternative Name:
@@ -36,45 +45,48 @@ Certificate:
X509v3 Extended Key Usage:
TLS Web Server Authentication
X509v3 Subject Key Identifier:
- 7E:42:8D:AC:2E:93:AD:4C:E0:09:AC:C6:08:F1:82:E0:B7:B7:C6:7F
+ D2:36:0A:53:12:B2:99:64:47:05:53:D2:17:69:12:FC:8E:DB:D7:07
X509v3 Authority Key Identifier:
keyid:12:CA:BA:4B:46:04:A7:75:8A:2C:E8:0E:54:94:BC:12:65:A6:7B:CE
X509v3 Basic Constraints:
CA:FALSE
- Signature Algorithm: sha1WithRSAEncryption
- 00:fe:c4:fc:4b:28:b8:bc:39:8c:6f:f1:72:d3:76:da:28:27:
- e2:97:94:bb:ad:2f:91:c4:db:df:33:4b:48:4e:97:5b:4c:4c:
- be:fc:e4:b7:19:5c:b8:83:6e:ef:2c:b0:d5:7c:fc:0d:cb:7e:
- 29:ed:fd:4d:ef:05:1c:89:15:31:78:9b:18:29:d3:37:83:c7:
- 39:f4:78:27:b7:00:75:d1:fb:f0:29:88:79:e4:e9:a7:d4:65:
- 04:bf:d5:a1:dc:05:b2:17:c4:a9:da:61:10:22:5f:8f:50:fc:
- 1f:ab:f6:39:dd:ab:35:a6:94:54:63:5c:6d:25:f0:dc:3a:0a:
- 70:4e:49:ef:be:fa:2c:0a:cd:ce:a6:2d:26:cd:f8:24:89:77:
- 2c:ea:6e:19:b6:5c:8c:1a:08:ea:a8:9f:2c:1b:c7:fc:13:6c:
- fe:a7:90:08:e5:98:83:30:52:86:ac:83:0b:cb:25:92:21:94:
- 80:13:d7:e8:d0:42:56:83:55:d3:09:9b:e8:c5:96:82:15:64:
- 6b:83:77:eb:99:e5:52:dc:1b:36:29:a0:c9:da:8b:d3:0d:77:
- 24:f2:c3:df:2e:c4:93:e0:34:47:a9:9b:54:d3:75:d5:c7:de:
- 88:a1:ef:7b:40:2f:dc:e9:28:8c:69:be:eb:71:4a:c2:30:50:
- 99:36:52:69
+ Signature Algorithm: sha256WithRSAEncryption
+ 2a:cc:91:d3:be:49:63:2f:84:f2:cf:e8:43:e7:fa:fc:c5:b9:
+ d7:6b:d7:40:2b:ee:89:58:98:24:57:cd:eb:51:a0:8b:22:18:
+ 7d:57:81:f5:0c:06:14:d1:81:90:78:59:34:23:d6:68:19:c7:
+ 8b:13:1c:b2:76:65:a1:9b:24:c8:b6:43:04:a5:2b:2e:c4:4b:
+ c9:69:03:1f:ca:86:54:53:e5:25:a1:5d:a3:22:11:d9:2e:c8:
+ 1a:e0:dd:04:3b:6f:3c:ea:a6:73:5f:80:bd:6c:3b:41:be:3b:
+ 1e:fa:68:be:91:9f:85:c0:81:28:cb:38:23:eb:b4:16:bf:81:
+ 1c:eb:67:9e:b3:03:84:b0:a1:2d:76:ba:7a:55:77:31:49:2d:
+ 40:7a:bf:3f:e3:d2:50:11:ad:3a:06:fd:b5:75:36:50:29:5c:
+ 26:e4:45:43:1d:25:78:f1:de:81:f1:d9:39:70:70:46:77:48:
+ ca:64:7a:19:57:5f:4d:9b:0b:0d:57:bb:c1:b5:1f:d9:ab:26:
+ fb:4b:54:2d:01:2a:f3:e4:6f:e7:b3:4a:05:4c:f3:0b:a6:d1:
+ 10:5a:27:e4:15:6c:80:55:2c:63:50:f1:36:0d:eb:ff:e1:eb:
+ 68:20:7e:a5:98:7c:0e:d0:1e:f5:68:7f:4f:3e:b9:b8:e0:0f:
+ ea:34:a6:b1
-----BEGIN CERTIFICATE-----
-MIIDPzCCAiegAwIBAgIGDPpgvFFLMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNVBAYT
+MIIDwzCCAqugAwIBAgIGDftmwfBTMA0GCSqGSIb3DQEBCwUAMGgxCzAJBgNVBAYT
Ak5OMTEwLwYDVQQKDChFZGVsIEN1cmwgQXJjdGljIElsbHVkaXVtIFJlc2VhcmNo
IENsb3VkMSYwJAYDVQQDDB1Ob3J0aGVybiBOb3doZXJlIFRydXN0IEFuY2hvcjAe
-Fw0xNTAzMjExNTA3MTFaFw0yMzA2MDcxNTA3MTFaMFQxCzAJBgNVBAYTAk5OMTEw
+Fw0xODA5MTkwNzEzMTRaFw0yNjEyMDYwNzEzMTRaMFQxCzAJBgNVBAYTAk5OMTEw
LwYDVQQKDChFZGVsIEN1cmwgQXJjdGljIElsbHVkaXVtIFJlc2VhcmNoIENsb3Vk
-MRIwEAYDVQQDDAlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB
-ALpfS2l0MZlN9LS3KmW4tzHBOM82N7teGONSH1KqWiUvDGaIMrDvsiyQOF5ubw7k
-Oz/wLvF6PV7DZIY/aLfPC7PqCsqUFtQragLjobPH0dAGuP/f3OAyKufdYsxxxOjP
-nd5cdWmdts7iQtinvVBUeC1VZ38Ae4+cEdGezr4e/s83AgMBAAGjgYYwgYMwFAYD
-VR0RBA0wC4IJbG9jYWxob3N0MAsGA1UdDwQEAwIDqDATBgNVHSUEDDAKBggrBgEF
-BQcDATAdBgNVHQ4EFgQUfkKNrC6TrUzgCazGCPGC4Le3xn8wHwYDVR0jBBgwFoAU
-Esq6S0YEp3WKLOgOVJS8EmWme84wCQYDVR0TBAIwADANBgkqhkiG9w0BAQUFAAOC
-AQEAAP7E/EsouLw5jG/xctN22ign4peUu60vkcTb3zNLSE6XW0xMvvzktxlcuINu
-7yyw1Xz8Dct+Ke39Te8FHIkVMXibGCnTN4PHOfR4J7cAddH78CmIeeTpp9RlBL/V
-odwFshfEqdphECJfj1D8H6v2Od2rNaaUVGNcbSXw3DoKcE5J7776LArNzqYtJs34
-JIl3LOpuGbZcjBoI6qifLBvH/BNs/qeQCOWYgzBShqyDC8slkiGUgBPX6NBCVoNV
-0wmb6MWWghVka4N365nlUtwbNimgydqL0w13JPLD3y7Ek+A0R6mbVNN11cfeiKHv
-e0Av3OkojGm+63FKwjBQmTZSaQ==
+MRIwEAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQCfqTBQ+XC8M38fqsZeWgr2z5kizbw6Qed2vAUBhSTNInlHJk1qnUHPMYAg
+H186hy9P/1wjrGcL9BRYp0fXdgNT/rMNIwgZ/7SsR71gkMgElAXLzxsQqrsIRlRC
+qCvMNflquUaegkcYd8/ASB9c0pvt/Y09KQsgt90CYCdiGHMcDLGCLTycHrY+hvQO
+0wJQ8fgBhzKKLcVhC6qU8LMpP0mn9krddTDAYpcUa95NcURAOY4I9blzQdXrEtjO
+Xb4pduprlBjXLENeiRLxUPItwG0ZB5mW86hG8zvoyB0N+lSWoCYsT8BghKkhOQ9E
+KOTjEXnko0TiIOGdZVSiJ1ZnlAInAgMBAAGjgYYwgYMwFAYDVR0RBA0wC4IJbG9j
+YWxob3N0MAsGA1UdDwQEAwIDqDATBgNVHSUEDDAKBggrBgEFBQcDATAdBgNVHQ4E
+FgQU0jYKUxKymWRHBVPSF2kS/I7b1wcwHwYDVR0jBBgwFoAUEsq6S0YEp3WKLOgO
+VJS8EmWme84wCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEAKsyR075JYy+E
+8s/oQ+f6/MW512vXQCvuiViYJFfN61GgiyIYfVeB9QwGFNGBkHhZNCPWaBnHixMc
+snZloZskyLZDBKUrLsRLyWkDH8qGVFPlJaFdoyIR2S7IGuDdBDtvPOqmc1+AvWw7
+Qb47HvpovpGfhcCBKMs4I+u0Fr+BHOtnnrMDhLChLXa6elV3MUktQHq/P+PSUBGt
+Ogb9tXU2UClcJuRFQx0lePHegfHZOXBwRndIymR6GVdfTZsLDVe7wbUf2asm+0tU
+LQEq8+Rv57NKBUzzC6bREFon5BVsgFUsY1DxNg3r/+HraCB+pZh8DtAe9Wh/Tz65
+uOAP6jSmsQ==
-----END CERTIFICATE-----
diff --git a/tests/certs/Server-localhost-sv.csr b/tests/certs/Server-localhost-sv.csr
index f919409b..d75cafa9 100644
--- a/tests/certs/Server-localhost-sv.csr
+++ b/tests/certs/Server-localhost-sv.csr
@@ -1,11 +1,16 @@
-----BEGIN CERTIFICATE REQUEST-----
-MIIBkzCB/QIBADBUMQswCQYDVQQGEwJOTjExMC8GA1UECgwoRWRlbCBDdXJsIEFy
-Y3RpYyBJbGx1ZGl1bSBSZXNlYXJjaCBDbG91ZDESMBAGA1UEAwwJbG9jYWxob3N0
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC6X0tpdDGZTfS0typluLcxwTjP
-Nje7XhjjUh9SqlolLwxmiDKw77IskDhebm8O5Ds/8C7xej1ew2SGP2i3zwuz6grK
-lBbUK2oC46Gzx9HQBrj/39zgMirn3WLMccToz53eXHVpnbbO4kLYp71QVHgtVWd/
-AHuPnBHRns6+Hv7PNwIDAQABoAAwDQYJKoZIhvcNAQELBQADgYEAsJ+ypJAE5YiR
-A1niVNXKoqXmIQsXGJv9BA39AjT+cdqvdd+WTKCaZ9QXucDArhG9B9Dp66bfSgvT
-WVz6F85ju5HQekZrS2ZxdR1+muWAFE/vDgi22QwTysXvTWUfsqBQ0ZGEmdzyPJJq
-7AGzbAWx8JDhgGg2jStvQJBLhtYxhoY=
+MIICmTCCAYECAQAwVDELMAkGA1UEBhMCTk4xMTAvBgNVBAoMKEVkZWwgQ3VybCBB
+cmN0aWMgSWxsdWRpdW0gUmVzZWFyY2ggQ2xvdWQxEjAQBgNVBAMMCWxvY2FsaG9z
+dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ+pMFD5cLwzfx+qxl5a
+CvbPmSLNvDpB53a8BQGFJM0ieUcmTWqdQc8xgCAfXzqHL0//XCOsZwv0FFinR9d2
+A1P+sw0jCBn/tKxHvWCQyASUBcvPGxCquwhGVEKoK8w1+Wq5Rp6CRxh3z8BIH1zS
+m+39jT0pCyC33QJgJ2IYcxwMsYItPJwetj6G9A7TAlDx+AGHMootxWELqpTwsyk/
+Saf2St11MMBilxRr3k1xREA5jgj1uXNB1esS2M5dvil26muUGNcsQ16JEvFQ8i3A
+bRkHmZbzqEbzO+jIHQ36VJagJixPwGCEqSE5D0Qo5OMReeSjROIg4Z1lVKInVmeU
+AicCAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4IBAQAH9pAANaXZsKkkYwwsQx7tJHeL
+dP9WFMg4Cs6EV5QoAju3E4SocylEA213VbBlEmCjXZXgD9c7uR1NPpO5MIMN3ohA
++5OQ8pGN9N0MIBWlMhJnaqCYIRga4Ajh8gL9qo6Su4FmlPWFLNMnAdwf5zm5ji3V
+4QpDkOWqB/GyFVqYpsPma9VJgDp9ktc09reVzHRkhlLtWei4OOpfiDcDFuG+1IPj
+nlE13kcRBJ+TyVaVTcRc/3eBs1QUHvwFoAwLtG1Bbkzf6VhtjDSV5gyqDHedG/N5
+PNlNt3eF5Cq5i4rnC+jHuYZslWmwzXT8fM7VdHpXE9Awq6Wp6nqJ8K7+6/oX
-----END CERTIFICATE REQUEST-----
diff --git a/tests/certs/Server-localhost-sv.der b/tests/certs/Server-localhost-sv.der
index b76db9dd..255d2938 100644
--- a/tests/certs/Server-localhost-sv.der
+++ b/tests/certs/Server-localhost-sv.der
Binary files differ
diff --git a/tests/certs/Server-localhost-sv.key b/tests/certs/Server-localhost-sv.key
index 35401791..cda47c10 100644
--- a/tests/certs/Server-localhost-sv.key
+++ b/tests/certs/Server-localhost-sv.key
@@ -1,15 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
-MIICXgIBAAKBgQC6X0tpdDGZTfS0typluLcxwTjPNje7XhjjUh9SqlolLwxmiDKw
-77IskDhebm8O5Ds/8C7xej1ew2SGP2i3zwuz6grKlBbUK2oC46Gzx9HQBrj/39zg
-Mirn3WLMccToz53eXHVpnbbO4kLYp71QVHgtVWd/AHuPnBHRns6+Hv7PNwIDAQAB
-AoGBAJdWRGVIPfJP1BJe3eWl3dRgI2JXk1/pY+pLSDYXMIYbM0Wa+RamPRdksPE1
-WadM+zPLNENP0L+/iERe/wiq7sNxKQLwH5eE3tUxC+iC8GO6gQ2zHaWVNu3R79CM
-t8YZhlmG2o+xC4CGYzuITgPE16m24CYauLZHO/YVDzG6yNApAkEA6K0db5bZmIaU
-TJW/jEnPJSubDx8kE1YncTOAKaAeoJwaaSfFphVKNGNrZHu3jBhKFgVNBNxGUWrW
-0pIkDrb3hQJBAM0N7+ghZ/7vaOoKqYHQI2z8SgPsUjQjmubCBALe/Ys3kg9PPpyz
-umJSAOYjC4X1dSlkAkciJqRS0Y6uKgSH4osCQQCVIWftft1GsnNYxt43t5MKOvGu
-doIz1pN/LcgmZddbj9IptfErqxedjl9lzxnstCDADnO3+ssjIfxAiKSNvd3VAkA3
-3yFMTbXpZ9BdXPRc05qjeoasVPr9C+qMD7dKFPpesZCRrVTxG6OgYJmwG0JriLsY
-wRBB05NV2N8SknAOdfwLAkEAw5Hqxc/Xlh6xhy9tBdJXDtuptV10mg6EbO98x9/7
-gyuAArSguhXna+aRqjLRelCwVB9f9aZ1XVoDKWVCsnfCbQ==
+MIIEpQIBAAKCAQEAn6kwUPlwvDN/H6rGXloK9s+ZIs28OkHndrwFAYUkzSJ5RyZN
+ap1BzzGAIB9fOocvT/9cI6xnC/QUWKdH13YDU/6zDSMIGf+0rEe9YJDIBJQFy88b
+EKq7CEZUQqgrzDX5arlGnoJHGHfPwEgfXNKb7f2NPSkLILfdAmAnYhhzHAyxgi08
+nB62Pob0DtMCUPH4AYcyii3FYQuqlPCzKT9Jp/ZK3XUwwGKXFGveTXFEQDmOCPW5
+c0HV6xLYzl2+KXbqa5QY1yxDXokS8VDyLcBtGQeZlvOoRvM76MgdDfpUlqAmLE/A
+YISpITkPRCjk4xF55KNE4iDhnWVUoidWZ5QCJwIDAQABAoIBAQCHqDWJV6fWANtO
+iMere049jv5KeAwqY7zLQc3vELXIJjZtobm9kIhOB30Zzg4XqK0mh44+MUoM+gIf
+oWKFS5xgTdTMoKtNi9pzVzEtT1bjrPGPzhTtAGOSEE+fo0wzYtjdOTcrjv3haEt4
+0M71C225tOnAwZLW5eI/Fnvf+W40sayHnWb4S04i6hd89kqHAjtr2xDbGdd8XDJD
+3auwEqXiycpBKntrZUVBQqCPWXKCkQSrb2yftVdPwed0dnOhaLqKnnLFkdiQq6Db
+SyKcb960SGhZj+jlIraJnYvBWRZpHejBBZf/yTJrav9kAx38K/UJrLTUpRQEi0p8
+XRTOTAehAoGBANGzRhZBi0PSZ2KCKErwNUu0inBGqy9SNeTm5SbgG5vtT2gSmb2Q
+ev0DVz2qfYii0Jd9sC3BANwBGrvSJY7Rsk09JWa2skLaZa/lFDFQmlSvyEUMfKCj
+ZuCK3rO20YjzSJQamKAROAeS+u61LJgv/RngvVUUQ7o4HfJFeAV48io7AoGBAMLp
+k8KQjplvRFFuAN+W9s82d5jqCGm19ctqxtQbZNw/dlU3cZjunm1U9Opn8ws9xLrn
+pEBSYWIMbO1Fo9FyYD6SCy8VVGdy7L6mmUMZo4iyVM5mIEsyb7UkjfkBEwX/Ax4S
+wLPS6Em0zIW99YqexMeh6TeJCqoxS4IHw6GSqZ0FAoGBALkqMNAELkHD7zBHt+Z7
+9sOTds6vSAcv85Dc5SkPqLFlucEu83w0sLTrF0THX7Of+Mpb3I56JxUdEIsag7l5
+ppSXUohA+GUZzcKkZ9En2C7BTPjTjtSVlIjfdsh/vMPN9p94YJ6utafSfCr95ZO4
+hCguj2Ap1agAV0kPWGyUoFjzAoGABU8JWD5JtAIk0Tb2zSA2frRUE5UkP4TWOgEh
+gztvxtPvrCiDbo/pPr8WoJ/OLdsz1YdjoODdiCcgfGHuMVE1L98YcOLa1qp5qkOt
+Xvd+zcVVq/16GbI4+q0RNNwDoaEte481MnCnJQLIo0fmPS1P3MQbLwkLglEvZk5B
+1M/C0OUCgYEAnevGxuXS49nIwcCZQpSrAQj2DoFj0ffd3ZWeqzlFvEV0ac48YjmF
+irDzOf5uuboHom++On4MqXNAWnZVQcY6thkR/KiJp+bqfgtu01jWn9dbRCd62lAt
+09hB+Da3Z3TZ0GnXerPwYT27enP/w6hh/G4Mn73Auf6Tz1cFdwzvSNg=
-----END RSA PRIVATE KEY-----
diff --git a/tests/certs/Server-localhost-sv.pem b/tests/certs/Server-localhost-sv.pem
index a6d9b035..55cf4a3c 100644
--- a/tests/certs/Server-localhost-sv.pem
+++ b/tests/certs/Server-localhost-sv.pem
@@ -24,49 +24,70 @@ commonName_value = localhost
# the certificate
# some dhparam
-----BEGIN RSA PRIVATE KEY-----
-MIICXgIBAAKBgQC6X0tpdDGZTfS0typluLcxwTjPNje7XhjjUh9SqlolLwxmiDKw
-77IskDhebm8O5Ds/8C7xej1ew2SGP2i3zwuz6grKlBbUK2oC46Gzx9HQBrj/39zg
-Mirn3WLMccToz53eXHVpnbbO4kLYp71QVHgtVWd/AHuPnBHRns6+Hv7PNwIDAQAB
-AoGBAJdWRGVIPfJP1BJe3eWl3dRgI2JXk1/pY+pLSDYXMIYbM0Wa+RamPRdksPE1
-WadM+zPLNENP0L+/iERe/wiq7sNxKQLwH5eE3tUxC+iC8GO6gQ2zHaWVNu3R79CM
-t8YZhlmG2o+xC4CGYzuITgPE16m24CYauLZHO/YVDzG6yNApAkEA6K0db5bZmIaU
-TJW/jEnPJSubDx8kE1YncTOAKaAeoJwaaSfFphVKNGNrZHu3jBhKFgVNBNxGUWrW
-0pIkDrb3hQJBAM0N7+ghZ/7vaOoKqYHQI2z8SgPsUjQjmubCBALe/Ys3kg9PPpyz
-umJSAOYjC4X1dSlkAkciJqRS0Y6uKgSH4osCQQCVIWftft1GsnNYxt43t5MKOvGu
-doIz1pN/LcgmZddbj9IptfErqxedjl9lzxnstCDADnO3+ssjIfxAiKSNvd3VAkA3
-3yFMTbXpZ9BdXPRc05qjeoasVPr9C+qMD7dKFPpesZCRrVTxG6OgYJmwG0JriLsY
-wRBB05NV2N8SknAOdfwLAkEAw5Hqxc/Xlh6xhy9tBdJXDtuptV10mg6EbO98x9/7
-gyuAArSguhXna+aRqjLRelCwVB9f9aZ1XVoDKWVCsnfCbQ==
+MIIEpQIBAAKCAQEAn6kwUPlwvDN/H6rGXloK9s+ZIs28OkHndrwFAYUkzSJ5RyZN
+ap1BzzGAIB9fOocvT/9cI6xnC/QUWKdH13YDU/6zDSMIGf+0rEe9YJDIBJQFy88b
+EKq7CEZUQqgrzDX5arlGnoJHGHfPwEgfXNKb7f2NPSkLILfdAmAnYhhzHAyxgi08
+nB62Pob0DtMCUPH4AYcyii3FYQuqlPCzKT9Jp/ZK3XUwwGKXFGveTXFEQDmOCPW5
+c0HV6xLYzl2+KXbqa5QY1yxDXokS8VDyLcBtGQeZlvOoRvM76MgdDfpUlqAmLE/A
+YISpITkPRCjk4xF55KNE4iDhnWVUoidWZ5QCJwIDAQABAoIBAQCHqDWJV6fWANtO
+iMere049jv5KeAwqY7zLQc3vELXIJjZtobm9kIhOB30Zzg4XqK0mh44+MUoM+gIf
+oWKFS5xgTdTMoKtNi9pzVzEtT1bjrPGPzhTtAGOSEE+fo0wzYtjdOTcrjv3haEt4
+0M71C225tOnAwZLW5eI/Fnvf+W40sayHnWb4S04i6hd89kqHAjtr2xDbGdd8XDJD
+3auwEqXiycpBKntrZUVBQqCPWXKCkQSrb2yftVdPwed0dnOhaLqKnnLFkdiQq6Db
+SyKcb960SGhZj+jlIraJnYvBWRZpHejBBZf/yTJrav9kAx38K/UJrLTUpRQEi0p8
+XRTOTAehAoGBANGzRhZBi0PSZ2KCKErwNUu0inBGqy9SNeTm5SbgG5vtT2gSmb2Q
+ev0DVz2qfYii0Jd9sC3BANwBGrvSJY7Rsk09JWa2skLaZa/lFDFQmlSvyEUMfKCj
+ZuCK3rO20YjzSJQamKAROAeS+u61LJgv/RngvVUUQ7o4HfJFeAV48io7AoGBAMLp
+k8KQjplvRFFuAN+W9s82d5jqCGm19ctqxtQbZNw/dlU3cZjunm1U9Opn8ws9xLrn
+pEBSYWIMbO1Fo9FyYD6SCy8VVGdy7L6mmUMZo4iyVM5mIEsyb7UkjfkBEwX/Ax4S
+wLPS6Em0zIW99YqexMeh6TeJCqoxS4IHw6GSqZ0FAoGBALkqMNAELkHD7zBHt+Z7
+9sOTds6vSAcv85Dc5SkPqLFlucEu83w0sLTrF0THX7Of+Mpb3I56JxUdEIsag7l5
+ppSXUohA+GUZzcKkZ9En2C7BTPjTjtSVlIjfdsh/vMPN9p94YJ6utafSfCr95ZO4
+hCguj2Ap1agAV0kPWGyUoFjzAoGABU8JWD5JtAIk0Tb2zSA2frRUE5UkP4TWOgEh
+gztvxtPvrCiDbo/pPr8WoJ/OLdsz1YdjoODdiCcgfGHuMVE1L98YcOLa1qp5qkOt
+Xvd+zcVVq/16GbI4+q0RNNwDoaEte481MnCnJQLIo0fmPS1P3MQbLwkLglEvZk5B
+1M/C0OUCgYEAnevGxuXS49nIwcCZQpSrAQj2DoFj0ffd3ZWeqzlFvEV0ac48YjmF
+irDzOf5uuboHom++On4MqXNAWnZVQcY6thkR/KiJp+bqfgtu01jWn9dbRCd62lAt
+09hB+Da3Z3TZ0GnXerPwYT27enP/w6hh/G4Mn73Auf6Tz1cFdwzvSNg=
-----END RSA PRIVATE KEY-----
Certificate:
Data:
Version: 3 (0x2)
- Serial Number: 14269504311627 (0xcfa60bc514b)
- Signature Algorithm: sha1WithRSAEncryption
+ Serial Number: 15373411938387 (0xdfb66c1f053)
+ Signature Algorithm: sha256WithRSAEncryption
Issuer:
countryName = NN
organizationName = Edel Curl Arctic Illudium Research Cloud
commonName = Northern Nowhere Trust Anchor
Validity
- Not Before: Mar 21 15:07:11 2015 GMT
- Not After : Jun 7 15:07:11 2023 GMT
+ Not Before: Sep 19 07:13:14 2018 GMT
+ Not After : Dec 6 07:13:14 2026 GMT
Subject:
countryName = NN
organizationName = Edel Curl Arctic Illudium Research Cloud
commonName = localhost
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
- Public-Key: (1024 bit)
+ RSA Public-Key: (2048 bit)
Modulus:
- 00:ba:5f:4b:69:74:31:99:4d:f4:b4:b7:2a:65:b8:
- b7:31:c1:38:cf:36:37:bb:5e:18:e3:52:1f:52:aa:
- 5a:25:2f:0c:66:88:32:b0:ef:b2:2c:90:38:5e:6e:
- 6f:0e:e4:3b:3f:f0:2e:f1:7a:3d:5e:c3:64:86:3f:
- 68:b7:cf:0b:b3:ea:0a:ca:94:16:d4:2b:6a:02:e3:
- a1:b3:c7:d1:d0:06:b8:ff:df:dc:e0:32:2a:e7:dd:
- 62:cc:71:c4:e8:cf:9d:de:5c:75:69:9d:b6:ce:e2:
- 42:d8:a7:bd:50:54:78:2d:55:67:7f:00:7b:8f:9c:
- 11:d1:9e:ce:be:1e:fe:cf:37
+ 00:9f:a9:30:50:f9:70:bc:33:7f:1f:aa:c6:5e:5a:
+ 0a:f6:cf:99:22:cd:bc:3a:41:e7:76:bc:05:01:85:
+ 24:cd:22:79:47:26:4d:6a:9d:41:cf:31:80:20:1f:
+ 5f:3a:87:2f:4f:ff:5c:23:ac:67:0b:f4:14:58:a7:
+ 47:d7:76:03:53:fe:b3:0d:23:08:19:ff:b4:ac:47:
+ bd:60:90:c8:04:94:05:cb:cf:1b:10:aa:bb:08:46:
+ 54:42:a8:2b:cc:35:f9:6a:b9:46:9e:82:47:18:77:
+ cf:c0:48:1f:5c:d2:9b:ed:fd:8d:3d:29:0b:20:b7:
+ dd:02:60:27:62:18:73:1c:0c:b1:82:2d:3c:9c:1e:
+ b6:3e:86:f4:0e:d3:02:50:f1:f8:01:87:32:8a:2d:
+ c5:61:0b:aa:94:f0:b3:29:3f:49:a7:f6:4a:dd:75:
+ 30:c0:62:97:14:6b:de:4d:71:44:40:39:8e:08:f5:
+ b9:73:41:d5:eb:12:d8:ce:5d:be:29:76:ea:6b:94:
+ 18:d7:2c:43:5e:89:12:f1:50:f2:2d:c0:6d:19:07:
+ 99:96:f3:a8:46:f3:3b:e8:c8:1d:0d:fa:54:96:a0:
+ 26:2c:4f:c0:60:84:a9:21:39:0f:44:28:e4:e3:11:
+ 79:e4:a3:44:e2:20:e1:9d:65:54:a2:27:56:67:94:
+ 02:27
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Alternative Name:
@@ -76,45 +97,48 @@ Certificate:
X509v3 Extended Key Usage:
TLS Web Server Authentication
X509v3 Subject Key Identifier:
- 7E:42:8D:AC:2E:93:AD:4C:E0:09:AC:C6:08:F1:82:E0:B7:B7:C6:7F
+ D2:36:0A:53:12:B2:99:64:47:05:53:D2:17:69:12:FC:8E:DB:D7:07
X509v3 Authority Key Identifier:
keyid:12:CA:BA:4B:46:04:A7:75:8A:2C:E8:0E:54:94:BC:12:65:A6:7B:CE
X509v3 Basic Constraints:
CA:FALSE
- Signature Algorithm: sha1WithRSAEncryption
- 00:fe:c4:fc:4b:28:b8:bc:39:8c:6f:f1:72:d3:76:da:28:27:
- e2:97:94:bb:ad:2f:91:c4:db:df:33:4b:48:4e:97:5b:4c:4c:
- be:fc:e4:b7:19:5c:b8:83:6e:ef:2c:b0:d5:7c:fc:0d:cb:7e:
- 29:ed:fd:4d:ef:05:1c:89:15:31:78:9b:18:29:d3:37:83:c7:
- 39:f4:78:27:b7:00:75:d1:fb:f0:29:88:79:e4:e9:a7:d4:65:
- 04:bf:d5:a1:dc:05:b2:17:c4:a9:da:61:10:22:5f:8f:50:fc:
- 1f:ab:f6:39:dd:ab:35:a6:94:54:63:5c:6d:25:f0:dc:3a:0a:
- 70:4e:49:ef:be:fa:2c:0a:cd:ce:a6:2d:26:cd:f8:24:89:77:
- 2c:ea:6e:19:b6:5c:8c:1a:08:ea:a8:9f:2c:1b:c7:fc:13:6c:
- fe:a7:90:08:e5:98:83:30:52:86:ac:83:0b:cb:25:92:21:94:
- 80:13:d7:e8:d0:42:56:83:55:d3:09:9b:e8:c5:96:82:15:64:
- 6b:83:77:eb:99:e5:52:dc:1b:36:29:a0:c9:da:8b:d3:0d:77:
- 24:f2:c3:df:2e:c4:93:e0:34:47:a9:9b:54:d3:75:d5:c7:de:
- 88:a1:ef:7b:40:2f:dc:e9:28:8c:69:be:eb:71:4a:c2:30:50:
- 99:36:52:69
+ Signature Algorithm: sha256WithRSAEncryption
+ 2a:cc:91:d3:be:49:63:2f:84:f2:cf:e8:43:e7:fa:fc:c5:b9:
+ d7:6b:d7:40:2b:ee:89:58:98:24:57:cd:eb:51:a0:8b:22:18:
+ 7d:57:81:f5:0c:06:14:d1:81:90:78:59:34:23:d6:68:19:c7:
+ 8b:13:1c:b2:76:65:a1:9b:24:c8:b6:43:04:a5:2b:2e:c4:4b:
+ c9:69:03:1f:ca:86:54:53:e5:25:a1:5d:a3:22:11:d9:2e:c8:
+ 1a:e0:dd:04:3b:6f:3c:ea:a6:73:5f:80:bd:6c:3b:41:be:3b:
+ 1e:fa:68:be:91:9f:85:c0:81:28:cb:38:23:eb:b4:16:bf:81:
+ 1c:eb:67:9e:b3:03:84:b0:a1:2d:76:ba:7a:55:77:31:49:2d:
+ 40:7a:bf:3f:e3:d2:50:11:ad:3a:06:fd:b5:75:36:50:29:5c:
+ 26:e4:45:43:1d:25:78:f1:de:81:f1:d9:39:70:70:46:77:48:
+ ca:64:7a:19:57:5f:4d:9b:0b:0d:57:bb:c1:b5:1f:d9:ab:26:
+ fb:4b:54:2d:01:2a:f3:e4:6f:e7:b3:4a:05:4c:f3:0b:a6:d1:
+ 10:5a:27:e4:15:6c:80:55:2c:63:50:f1:36:0d:eb:ff:e1:eb:
+ 68:20:7e:a5:98:7c:0e:d0:1e:f5:68:7f:4f:3e:b9:b8:e0:0f:
+ ea:34:a6:b1
-----BEGIN CERTIFICATE-----
-MIIDPzCCAiegAwIBAgIGDPpgvFFLMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNVBAYT
+MIIDwzCCAqugAwIBAgIGDftmwfBTMA0GCSqGSIb3DQEBCwUAMGgxCzAJBgNVBAYT
Ak5OMTEwLwYDVQQKDChFZGVsIEN1cmwgQXJjdGljIElsbHVkaXVtIFJlc2VhcmNo
IENsb3VkMSYwJAYDVQQDDB1Ob3J0aGVybiBOb3doZXJlIFRydXN0IEFuY2hvcjAe
-Fw0xNTAzMjExNTA3MTFaFw0yMzA2MDcxNTA3MTFaMFQxCzAJBgNVBAYTAk5OMTEw
+Fw0xODA5MTkwNzEzMTRaFw0yNjEyMDYwNzEzMTRaMFQxCzAJBgNVBAYTAk5OMTEw
LwYDVQQKDChFZGVsIEN1cmwgQXJjdGljIElsbHVkaXVtIFJlc2VhcmNoIENsb3Vk
-MRIwEAYDVQQDDAlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB
-ALpfS2l0MZlN9LS3KmW4tzHBOM82N7teGONSH1KqWiUvDGaIMrDvsiyQOF5ubw7k
-Oz/wLvF6PV7DZIY/aLfPC7PqCsqUFtQragLjobPH0dAGuP/f3OAyKufdYsxxxOjP
-nd5cdWmdts7iQtinvVBUeC1VZ38Ae4+cEdGezr4e/s83AgMBAAGjgYYwgYMwFAYD
-VR0RBA0wC4IJbG9jYWxob3N0MAsGA1UdDwQEAwIDqDATBgNVHSUEDDAKBggrBgEF
-BQcDATAdBgNVHQ4EFgQUfkKNrC6TrUzgCazGCPGC4Le3xn8wHwYDVR0jBBgwFoAU
-Esq6S0YEp3WKLOgOVJS8EmWme84wCQYDVR0TBAIwADANBgkqhkiG9w0BAQUFAAOC
-AQEAAP7E/EsouLw5jG/xctN22ign4peUu60vkcTb3zNLSE6XW0xMvvzktxlcuINu
-7yyw1Xz8Dct+Ke39Te8FHIkVMXibGCnTN4PHOfR4J7cAddH78CmIeeTpp9RlBL/V
-odwFshfEqdphECJfj1D8H6v2Od2rNaaUVGNcbSXw3DoKcE5J7776LArNzqYtJs34
-JIl3LOpuGbZcjBoI6qifLBvH/BNs/qeQCOWYgzBShqyDC8slkiGUgBPX6NBCVoNV
-0wmb6MWWghVka4N365nlUtwbNimgydqL0w13JPLD3y7Ek+A0R6mbVNN11cfeiKHv
-e0Av3OkojGm+63FKwjBQmTZSaQ==
+MRIwEAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQCfqTBQ+XC8M38fqsZeWgr2z5kizbw6Qed2vAUBhSTNInlHJk1qnUHPMYAg
+H186hy9P/1wjrGcL9BRYp0fXdgNT/rMNIwgZ/7SsR71gkMgElAXLzxsQqrsIRlRC
+qCvMNflquUaegkcYd8/ASB9c0pvt/Y09KQsgt90CYCdiGHMcDLGCLTycHrY+hvQO
+0wJQ8fgBhzKKLcVhC6qU8LMpP0mn9krddTDAYpcUa95NcURAOY4I9blzQdXrEtjO
+Xb4pduprlBjXLENeiRLxUPItwG0ZB5mW86hG8zvoyB0N+lSWoCYsT8BghKkhOQ9E
+KOTjEXnko0TiIOGdZVSiJ1ZnlAInAgMBAAGjgYYwgYMwFAYDVR0RBA0wC4IJbG9j
+YWxob3N0MAsGA1UdDwQEAwIDqDATBgNVHSUEDDAKBggrBgEFBQcDATAdBgNVHQ4E
+FgQU0jYKUxKymWRHBVPSF2kS/I7b1wcwHwYDVR0jBBgwFoAUEsq6S0YEp3WKLOgO
+VJS8EmWme84wCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEAKsyR075JYy+E
+8s/oQ+f6/MW512vXQCvuiViYJFfN61GgiyIYfVeB9QwGFNGBkHhZNCPWaBnHixMc
+snZloZskyLZDBKUrLsRLyWkDH8qGVFPlJaFdoyIR2S7IGuDdBDtvPOqmc1+AvWw7
+Qb47HvpovpGfhcCBKMs4I+u0Fr+BHOtnnrMDhLChLXa6elV3MUktQHq/P+PSUBGt
+Ogb9tXU2UClcJuRFQx0lePHegfHZOXBwRndIymR6GVdfTZsLDVe7wbUf2asm+0tU
+LQEq8+Rv57NKBUzzC6bREFon5BVsgFUsY1DxNg3r/+HraCB+pZh8DtAe9Wh/Tz65
+uOAP6jSmsQ==
-----END CERTIFICATE-----
diff --git a/tests/certs/Server-localhost-sv.pub.der b/tests/certs/Server-localhost-sv.pub.der
index e954839e..5cc9ce87 100644
--- a/tests/certs/Server-localhost-sv.pub.der
+++ b/tests/certs/Server-localhost-sv.pub.der
Binary files differ
diff --git a/tests/certs/Server-localhost-sv.pub.pem b/tests/certs/Server-localhost-sv.pub.pem
index d119616b..ef279914 100644
--- a/tests/certs/Server-localhost-sv.pub.pem
+++ b/tests/certs/Server-localhost-sv.pub.pem
@@ -1,6 +1,9 @@
-----BEGIN PUBLIC KEY-----
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC6X0tpdDGZTfS0typluLcxwTjP
-Nje7XhjjUh9SqlolLwxmiDKw77IskDhebm8O5Ds/8C7xej1ew2SGP2i3zwuz6grK
-lBbUK2oC46Gzx9HQBrj/39zgMirn3WLMccToz53eXHVpnbbO4kLYp71QVHgtVWd/
-AHuPnBHRns6+Hv7PNwIDAQAB
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn6kwUPlwvDN/H6rGXloK
+9s+ZIs28OkHndrwFAYUkzSJ5RyZNap1BzzGAIB9fOocvT/9cI6xnC/QUWKdH13YD
+U/6zDSMIGf+0rEe9YJDIBJQFy88bEKq7CEZUQqgrzDX5arlGnoJHGHfPwEgfXNKb
+7f2NPSkLILfdAmAnYhhzHAyxgi08nB62Pob0DtMCUPH4AYcyii3FYQuqlPCzKT9J
+p/ZK3XUwwGKXFGveTXFEQDmOCPW5c0HV6xLYzl2+KXbqa5QY1yxDXokS8VDyLcBt
+GQeZlvOoRvM76MgdDfpUlqAmLE/AYISpITkPRCjk4xF55KNE4iDhnWVUoidWZ5QC
+JwIDAQAB
-----END PUBLIC KEY-----
diff --git a/tests/certs/Server-localhost.nn-sv.crl b/tests/certs/Server-localhost.nn-sv.crl
index 0676f731..6616a733 100644
--- a/tests/certs/Server-localhost.nn-sv.crl
+++ b/tests/certs/Server-localhost.nn-sv.crl
@@ -1,21 +1,13 @@
-----BEGIN X509 CRL-----
-MIIDiDCCAnACAQEwDQYJKoZIhvcNAQEFBQAwaDELMAkGA1UEBhMCTk4xMTAvBgNV
-BAoMKEVkZWwgQ3VybCBBcmN0aWMgSWxsdWRpdW0gUmVzZWFyY2ggQ2xvdWQxJjAk
-BgNVBAMMHU5vcnRoZXJuIE5vd2hlcmUgVHJ1c3QgQW5jaG9yFw0xNTAzMjExNTA3
-MTFaFw0xNTA0MjAxNTA3MTFaMIIBwjAXAgYM+ly45CIXDTE1MDMyMTEzMTQ1N1ow
-FwIGDPpcwXH8Fw0xNTAzMjExMzE1NTNaMBcCBgz6XO7ujBcNMTUwMzIxMTMyMDUx
-WjAXAgYM+lzu7p0XDTE1MDMyMTEzMjA1MVowFwIGDPpc7u6uFw0xNTAzMjExMzIw
-NTFaMBcCBgz6XZyD1RcNMTUwMzIxMTMzOTQ5WjAXAgYM+l4OXa8XDTE1MDMyMTEz
-NTIxNVowFwIGDPpeJlPZFw0xNTAzMjExMzU0NTJaMBcCBgz6XiZT6hcNMTUwMzIx
-MTM1NDUyWjAXAgYM+l4mU/sXDTE1MDMyMTEzNTQ1MlowFwIGDPpemKKEFw0xNTAz
-MjExNDA3MjFaMBcCBgz6XpiilRcNMTUwMzIxMTQwNzIxWjAXAgYM+l6YoqYXDTE1
-MDMyMTE0MDcyMVowFwIGDPpffssxFw0xNTAzMjExNDMyMzBaMBcCBgz6X37yUxcN
-MTUwMzIxMTQzMjMxWjAXAgYM+l9+8mYXDTE1MDMyMTE0MzIzMVowFwIGDPpgvFFL
-Fw0xNTAzMjExNTA3MTFaMBcCBgz6YLxRXBcNMTUwMzIxMTUwNzExWqAOMAwwCgYD
-VR0UBAMCAQEwDQYJKoZIhvcNAQEFBQADggEBANd1Fp3lPmLALcGvEB4kB4Uo6vhM
-ZWcAUE96oerpW0OnZ6v7o8ghLvs/pJfIoD+7hV3RuAgUUBqv2N8VTaL2IYarom/H
-CK78oLrIwwej/7K1pIfG53bJuaYyim5Lpl/YzGwhdC2vO2kBXHC1gVj5hN3uM/2A
-+cFPTDMsDU7szGq1bHObEKumXXzG5LfwGJGaHNGdvglV7zKthRjk/plYKE4/F0Ah
-jRQys6crClCKC5vug1GbzKbQue/Pbw1e3Rm/e0DVeOCREdvcHat43SIPf5yUYLsz
-b7P7pIOIoSgiIgEdbmj2pi1xdtxrYRyJJk0H7XQJHDehkyZsy6l62mKam/E=
+MIIB9TCB3gIBATANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJOTjExMC8GA1UE
+CgwoRWRlbCBDdXJsIEFyY3RpYyBJbGx1ZGl1bSBSZXNlYXJjaCBDbG91ZDEmMCQG
+A1UEAwwdTm9ydGhlcm4gTm93aGVyZSBUcnVzdCBBbmNob3IXDTE4MDkxOTA3MTQx
+MloXDTE4MTAxOTA3MTQxMlowMjAXAgYN+2bB8FMXDTE4MDkxOTA3MTMxNFowFwIG
+DftmyvGeFw0xODA5MTkwNzE0MTJaoA4wDDAKBgNVHRQEAwIBATANBgkqhkiG9w0B
+AQUFAAOCAQEAO28TB22Aen+HvwiNx9L6ordY5DD04ObE4D15D05T2XpSAZ0PQput
+tlLiiMGyEaBznFFyXv9AqdAEndfxWLhS3VosQxOrrv99mkug22il4mAc4V35QlrP
+EmHhvqFh1T2Wpyd6hYMbctg/9EBe7evadrVZT79AFo9piWTkuiLyq+npC2A9tPiH
+Q/q2Bg1t1qZBDM0O5wHaxtl1sz5CfDokfAT41Fju5p74mYOd50gIXOniWZVtIsfO
+bDwpZuG+R++MrYSsdaMicVDN9cwYAv+fAvrDQvMMd/ThU2H43pJLiCW7AzD6mQ3J
+3fuuhz8WAW7WVemqVrDOPuKku8t4+3fdDw==
-----END X509 CRL-----
diff --git a/tests/certs/Server-localhost.nn-sv.crt b/tests/certs/Server-localhost.nn-sv.crt
index 69bd40d2..6769c274 100644
--- a/tests/certs/Server-localhost.nn-sv.crt
+++ b/tests/certs/Server-localhost.nn-sv.crt
@@ -1,32 +1,41 @@
Certificate:
Data:
Version: 3 (0x2)
- Serial Number: 14269504311644 (0xcfa60bc515c)
- Signature Algorithm: sha1WithRSAEncryption
+ Serial Number: 15373412528542 (0xdfb66caf19e)
+ Signature Algorithm: sha256WithRSAEncryption
Issuer:
countryName = NN
organizationName = Edel Curl Arctic Illudium Research Cloud
commonName = Northern Nowhere Trust Anchor
Validity
- Not Before: Mar 21 15:07:11 2015 GMT
- Not After : Jun 7 15:07:11 2023 GMT
+ Not Before: Sep 19 07:14:12 2018 GMT
+ Not After : Dec 6 07:14:12 2026 GMT
Subject:
countryName = NN
organizationName = Edel Curl Arctic Illudium Research Cloud
commonName = localhost.nn
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
- Public-Key: (1024 bit)
+ RSA Public-Key: (2048 bit)
Modulus:
- 00:ac:cc:11:70:74:29:ed:7b:00:44:8a:c0:47:03:
- 50:9d:6f:51:b7:c9:7b:dd:7e:ee:29:67:5b:91:9b:
- c7:c5:e6:9d:59:3e:6b:33:25:b7:7c:39:7c:84:79:
- dd:15:98:e7:27:63:93:10:3a:3a:40:a0:dd:d0:1e:
- 6e:60:f4:1e:a4:f7:1e:0a:0b:84:44:77:e7:05:16:
- 39:aa:de:bd:1e:c7:bc:c9:e1:4e:8c:86:1c:3f:d6:
- cd:e3:f2:68:02:5b:17:53:49:51:29:a8:89:f3:d0:
- e1:5e:71:07:9f:15:47:08:40:e9:ac:49:e4:21:ac:
- 65:29:09:ca:a2:dc:9e:ab:89
+ 00:f4:1e:5e:4c:8c:87:9e:09:f8:d7:62:3d:38:fb:
+ 5e:9b:62:5b:02:2e:95:f5:0a:14:82:d4:07:fc:e7:
+ f3:96:c3:12:1a:b9:24:fa:f4:41:7f:76:56:3d:8d:
+ 72:21:2a:49:cf:54:42:09:87:16:02:98:b0:a9:c5:
+ c6:d3:f2:60:ad:bb:61:17:a2:ea:35:31:1c:df:bb:
+ 27:fe:9d:f9:f7:ff:6a:72:10:a3:44:75:3b:b5:3e:
+ 76:1b:f7:60:a6:31:ca:4f:62:0e:7e:6d:99:9c:8e:
+ 30:61:ff:37:e6:c1:91:65:0c:a1:a3:61:01:ef:75:
+ dc:8f:52:9c:5b:39:45:35:63:ca:fb:ca:dd:76:4a:
+ 02:78:c4:b0:2c:ec:e2:c8:de:27:9f:d6:b9:eb:39:
+ de:a1:23:99:d5:65:97:78:e2:7c:08:55:97:91:84:
+ 70:f4:88:c0:59:9c:f2:f0:fe:5c:71:78:bf:86:8e:
+ 12:92:85:1f:15:ed:d3:83:fc:25:50:f4:86:04:cd:
+ 77:7b:0c:9a:eb:ab:e9:cb:43:98:c4:1e:6e:de:d2:
+ 26:9d:8e:a1:c8:df:4f:a6:66:bf:29:3b:6e:7a:b9:
+ d2:be:74:16:c6:b4:c3:46:9b:09:19:42:9b:05:75:
+ ae:b5:9c:5b:a3:d5:e1:76:65:59:39:bc:99:5d:00:
+ 90:87
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Alternative Name:
@@ -36,45 +45,48 @@ Certificate:
X509v3 Extended Key Usage:
TLS Web Server Authentication
X509v3 Subject Key Identifier:
- 12:AF:44:46:B1:04:69:61:64:83:39:A2:BD:5D:97:2B:F4:1D:D4:6C
+ DA:FC:ED:BF:82:CB:15:D8:7E:A1:4B:98:23:8E:83:2A:11:6E:49:C9
X509v3 Authority Key Identifier:
keyid:12:CA:BA:4B:46:04:A7:75:8A:2C:E8:0E:54:94:BC:12:65:A6:7B:CE
X509v3 Basic Constraints:
CA:FALSE
- Signature Algorithm: sha1WithRSAEncryption
- 44:54:d7:d7:75:14:60:a5:1a:1d:1e:a9:dc:6f:b1:b1:d8:13:
- e2:10:22:9a:f5:ca:b6:38:3c:d9:ac:2e:dc:ce:38:bc:cc:38:
- a1:cc:a8:9c:73:37:f9:b6:a8:42:87:d9:80:21:45:81:43:9d:
- 73:3c:67:cf:cd:c5:c3:91:df:60:6b:6d:69:f9:be:a1:92:cc:
- 5d:ea:bc:67:f3:c7:bc:ea:41:d1:11:7b:e3:f1:b8:a7:8d:9a:
- d0:23:6c:df:0e:2a:35:98:50:c1:a6:8b:d2:07:aa:a6:2f:cb:
- 98:a9:a3:8d:a0:8c:87:ab:ec:e1:c5:0b:25:e2:e9:a9:08:13:
- 30:86:1b:e5:b6:ac:03:85:35:0c:9a:5d:5b:82:c4:04:6a:05:
- 4c:f3:f7:b3:b5:ac:92:3b:46:71:a8:7f:54:c7:96:37:dc:38:
- 2c:a2:18:23:10:00:de:f8:21:40:52:99:94:ad:b2:b6:e5:87:
- 8e:29:0b:3b:b3:8a:52:67:54:dc:0a:e9:75:60:33:ff:13:9a:
- 61:a4:15:0c:d0:6f:de:0d:06:23:a8:44:ad:f0:68:60:93:6b:
- 75:06:24:5b:47:9a:b9:3a:ef:d9:4f:df:31:d5:65:3a:e2:94:
- 03:be:88:94:49:7c:6a:d0:da:c0:d0:62:81:f5:61:50:96:5a:
- d0:ee:22:39
+ Signature Algorithm: sha256WithRSAEncryption
+ 98:27:7a:85:b6:39:0f:9f:ca:0f:68:ca:4a:f6:8b:11:2f:df:
+ 52:e4:47:5f:30:09:9c:2c:d8:2c:62:3b:24:0a:3d:37:58:0e:
+ be:7b:8b:c6:2d:3c:be:ad:49:1f:63:3a:8e:81:34:0e:9a:80:
+ f0:f4:c2:7b:fd:6c:66:be:68:d9:27:a6:61:60:08:65:aa:f9:
+ 66:89:fc:99:43:07:3c:57:d9:d4:1a:29:93:e3:b8:a4:54:57:
+ 42:7c:15:6f:b4:92:af:9f:3e:d0:80:62:49:61:e3:d0:e2:0c:
+ 21:c7:49:9e:eb:42:1c:04:bb:ed:e3:6a:25:d1:79:42:03:75:
+ 1f:41:06:c4:cd:42:06:96:df:37:c6:c2:52:13:20:a3:98:b1:
+ 1c:df:5a:47:08:08:f4:b4:d8:35:db:bf:69:07:12:29:dc:17:
+ 30:11:2d:1b:d9:33:af:38:ab:35:f9:f4:9b:f9:a8:3b:d4:fe:
+ 50:7d:19:82:5e:a3:92:ff:bb:59:76:74:42:83:ab:29:49:4c:
+ 10:83:99:12:0f:8d:24:3e:b0:c4:e3:96:d3:a7:73:5f:7e:fb:
+ a8:b6:74:53:46:af:82:93:6d:c0:99:62:0f:03:df:e9:1d:10:
+ ab:f7:92:f9:52:cb:44:f3:f6:9e:49:21:e8:81:7b:fc:78:55:
+ 5b:e2:18:90
-----BEGIN CERTIFICATE-----
-MIIDRTCCAi2gAwIBAgIGDPpgvFFcMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNVBAYT
+MIIDyTCCArGgAwIBAgIGDftmyvGeMA0GCSqGSIb3DQEBCwUAMGgxCzAJBgNVBAYT
Ak5OMTEwLwYDVQQKDChFZGVsIEN1cmwgQXJjdGljIElsbHVkaXVtIFJlc2VhcmNo
IENsb3VkMSYwJAYDVQQDDB1Ob3J0aGVybiBOb3doZXJlIFRydXN0IEFuY2hvcjAe
-Fw0xNTAzMjExNTA3MTFaFw0yMzA2MDcxNTA3MTFaMFcxCzAJBgNVBAYTAk5OMTEw
+Fw0xODA5MTkwNzE0MTJaFw0yNjEyMDYwNzE0MTJaMFcxCzAJBgNVBAYTAk5OMTEw
LwYDVQQKDChFZGVsIEN1cmwgQXJjdGljIElsbHVkaXVtIFJlc2VhcmNoIENsb3Vk
-MRUwEwYDVQQDDAxsb2NhbGhvc3Qubm4wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
-AoGBAKzMEXB0Ke17AESKwEcDUJ1vUbfJe91+7ilnW5Gbx8XmnVk+azMlt3w5fIR5
-3RWY5ydjkxA6OkCg3dAebmD0HqT3HgoLhER35wUWOarevR7HvMnhToyGHD/WzePy
-aAJbF1NJUSmoifPQ4V5xB58VRwhA6axJ5CGsZSkJyqLcnquJAgMBAAGjgYkwgYYw
-FwYDVR0RBBAwDoIMbG9jYWxob3N0Lm5uMAsGA1UdDwQEAwIDqDATBgNVHSUEDDAK
-BggrBgEFBQcDATAdBgNVHQ4EFgQUEq9ERrEEaWFkgzmivV2XK/Qd1GwwHwYDVR0j
-BBgwFoAUEsq6S0YEp3WKLOgOVJS8EmWme84wCQYDVR0TBAIwADANBgkqhkiG9w0B
-AQUFAAOCAQEARFTX13UUYKUaHR6p3G+xsdgT4hAimvXKtjg82awu3M44vMw4ocyo
-nHM3+baoQofZgCFFgUOdczxnz83Fw5HfYGttafm+oZLMXeq8Z/PHvOpB0RF74/G4
-p42a0CNs3w4qNZhQwaaL0geqpi/LmKmjjaCMh6vs4cULJeLpqQgTMIYb5basA4U1
-DJpdW4LEBGoFTPP3s7WskjtGcah/VMeWN9w4LKIYIxAA3vghQFKZlK2ytuWHjikL
-O7OKUmdU3ArpdWAz/xOaYaQVDNBv3g0GI6hErfBoYJNrdQYkW0eauTrv2U/fMdVl
-OuKUA76IlEl8atDawNBigfVhUJZa0O4iOQ==
+MRUwEwYDVQQDDAxsb2NhbGhvc3Qubm4wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+ggEKAoIBAQD0Hl5MjIeeCfjXYj04+16bYlsCLpX1ChSC1Af85/OWwxIauST69EF/
+dlY9jXIhKknPVEIJhxYCmLCpxcbT8mCtu2EXouo1MRzfuyf+nfn3/2pyEKNEdTu1
+PnYb92CmMcpPYg5+bZmcjjBh/zfmwZFlDKGjYQHvddyPUpxbOUU1Y8r7yt12SgJ4
+xLAs7OLI3ief1rnrOd6hI5nVZZd44nwIVZeRhHD0iMBZnPLw/lxxeL+GjhKShR8V
+7dOD/CVQ9IYEzXd7DJrrq+nLQ5jEHm7e0iadjqHI30+mZr8pO256udK+dBbGtMNG
+mwkZQpsFda61nFuj1eF2ZVk5vJldAJCHAgMBAAGjgYkwgYYwFwYDVR0RBBAwDoIM
+bG9jYWxob3N0Lm5uMAsGA1UdDwQEAwIDqDATBgNVHSUEDDAKBggrBgEFBQcDATAd
+BgNVHQ4EFgQU2vztv4LLFdh+oUuYI46DKhFuSckwHwYDVR0jBBgwFoAUEsq6S0YE
+p3WKLOgOVJS8EmWme84wCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEAmCd6
+hbY5D5/KD2jKSvaLES/fUuRHXzAJnCzYLGI7JAo9N1gOvnuLxi08vq1JH2M6joE0
+DpqA8PTCe/1sZr5o2SemYWAIZar5Zon8mUMHPFfZ1Bopk+O4pFRXQnwVb7SSr58+
+0IBiSWHj0OIMIcdJnutCHAS77eNqJdF5QgN1H0EGxM1CBpbfN8bCUhMgo5ixHN9a
+RwgI9LTYNdu/aQcSKdwXMBEtG9kzrzirNfn0m/moO9T+UH0Zgl6jkv+7WXZ0QoOr
+KUlMEIOZEg+NJD6wxOOW06dzX377qLZ0U0avgpNtwJliDwPf6R0Qq/eS+VLLRPP2
+nkkh6IF7/HhVW+IYkA==
-----END CERTIFICATE-----
diff --git a/tests/certs/Server-localhost.nn-sv.csr b/tests/certs/Server-localhost.nn-sv.csr
index 7f2fa773..eb4c85b2 100644
--- a/tests/certs/Server-localhost.nn-sv.csr
+++ b/tests/certs/Server-localhost.nn-sv.csr
@@ -1,11 +1,16 @@
-----BEGIN CERTIFICATE REQUEST-----
-MIIBlzCCAQACAQAwVzELMAkGA1UEBhMCTk4xMTAvBgNVBAoMKEVkZWwgQ3VybCBB
+MIICnDCCAYQCAQAwVzELMAkGA1UEBhMCTk4xMTAvBgNVBAoMKEVkZWwgQ3VybCBB
cmN0aWMgSWxsdWRpdW0gUmVzZWFyY2ggQ2xvdWQxFTATBgNVBAMMDGxvY2FsaG9z
-dC5ubjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArMwRcHQp7XsARIrARwNQ
-nW9Rt8l73X7uKWdbkZvHxeadWT5rMyW3fDl8hHndFZjnJ2OTEDo6QKDd0B5uYPQe
-pPceCguERHfnBRY5qt69Hse8yeFOjIYcP9bN4/JoAlsXU0lRKaiJ89DhXnEHnxVH
-CEDprEnkIaxlKQnKotyeq4kCAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4GBADnob1ds
-8MytEcgSZdkgP4iQ2L+aPXTPBqTThaV7Zto1mAhwG/D6rTiGq6t+IlZQNoDdZPp3
-r1WDQJj6ed54xUY4Im4m1Np8oURamt5NJMKURDbv0xOQHW8EOoN+F8rfKyu2Hk1O
-hJulv+cBz75yi3+LVu+IEuSFQIQUZiy6V+Il
+dC5ubjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPQeXkyMh54J+Ndi
+PTj7XptiWwIulfUKFILUB/zn85bDEhq5JPr0QX92Vj2NciEqSc9UQgmHFgKYsKnF
+xtPyYK27YRei6jUxHN+7J/6d+ff/anIQo0R1O7U+dhv3YKYxyk9iDn5tmZyOMGH/
+N+bBkWUMoaNhAe913I9SnFs5RTVjyvvK3XZKAnjEsCzs4sjeJ5/Wues53qEjmdVl
+l3jifAhVl5GEcPSIwFmc8vD+XHF4v4aOEpKFHxXt04P8JVD0hgTNd3sMmuur6ctD
+mMQebt7SJp2OocjfT6Zmvyk7bnq50r50Fsa0w0abCRlCmwV1rrWcW6PV4XZlWTm8
+mV0AkIcCAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4IBAQAqoMuYYIZCrbVy+UJpkz4u
+AH3zBRsDepyJ/J2JVG9RANyKves0uD84x0m7kIntxvZR78vmCVlE4IMIeUb0lT8Z
+jVh0GkC9ppiY5X5Ro0pqtSaEZeGJVcP6/3rz4j7XzcHs8wLgBQ/11Guqjb9Zzr5a
+w+g0LpL9ebRRDWiYAqcnReqL5dYy1OEVzNHmYyMqKxfF4d1cyl7+rZoz2MmjwZH9
+3k+DKTIURtSr8TxPXO77CAfmRRGxo06zHhi9zMFV8Tb8e9B7GNINUAli92fmXWPo
+ISBxWL7+YE7fvertPLmA9qQZJPJDSdpAOdDaKr7c3gNKpbUTrie1AzZHsq+/IFzq
-----END CERTIFICATE REQUEST-----
diff --git a/tests/certs/Server-localhost.nn-sv.der b/tests/certs/Server-localhost.nn-sv.der
index 9bb4ff35..c9f50a34 100644
--- a/tests/certs/Server-localhost.nn-sv.der
+++ b/tests/certs/Server-localhost.nn-sv.der
Binary files differ
diff --git a/tests/certs/Server-localhost.nn-sv.key b/tests/certs/Server-localhost.nn-sv.key
index 6a75071b..cf6f3ce5 100644
--- a/tests/certs/Server-localhost.nn-sv.key
+++ b/tests/certs/Server-localhost.nn-sv.key
@@ -1,15 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
-MIICXQIBAAKBgQCszBFwdCntewBEisBHA1Cdb1G3yXvdfu4pZ1uRm8fF5p1ZPmsz
-Jbd8OXyEed0VmOcnY5MQOjpAoN3QHm5g9B6k9x4KC4REd+cFFjmq3r0ex7zJ4U6M
-hhw/1s3j8mgCWxdTSVEpqInz0OFecQefFUcIQOmsSeQhrGUpCcqi3J6riQIDAQAB
-AoGAK7nYD+TVV0rw3mdeEJo+JBivTRqnRX2BNuj4uvf4rZOV7adl6SN6Mu05HSzZ
-TUXL+KOx60FQzFnox2lr9QzRU/LelLQ3H9fgVTVmGUCEAoDVRoWas8XlYGZsiHZ/
-yJn+9Z3yQYpufSb0LQiSt73sgrTNPu50gMxe/ZSAbSscyyECQQDV8juKzWmizlTh
-+wVs/pihE0+BX1BRCsezs7FCdDEWle3XidBtYlYyUIm5wx6v8xM/F7Q/nwgymOnV
-A62PtfyjAkEAzsM3DsuJ9dG5n+EPTH3kDdfr0eYy76XPYz4HK8/FgiKPWy55BRCH
-biLcbDAe06olJiCzEvwggFigthrIqj0t4wJBALDTUi74c3SiADn+FI/vJQsMQMv2
-kRVKSZ/WxozcJ645IKjiOKgPfJp9QjeMcxKNXrzoxItIz6eyBqGONqbujO0CQQCh
-b6azdJR5TJEklfL+BGVlsas8rgIjP1FX6Xxr5sQNwbIwvW5cV/WGNs3n4wKOvZBX
-3rwzHIy76XdB+FOpKC+FAkBDVbicC19LE6+tBzOyx4uTEm3N7N8vh566VaOpok02
-Io7F/WYL7WSCXAtvmueWV+FJyVUMN1f2nWfWqaEXP2ag
+MIIEpAIBAAKCAQEA9B5eTIyHngn412I9OPtem2JbAi6V9QoUgtQH/OfzlsMSGrkk
++vRBf3ZWPY1yISpJz1RCCYcWApiwqcXG0/JgrbthF6LqNTEc37sn/p359/9qchCj
+RHU7tT52G/dgpjHKT2IOfm2ZnI4wYf835sGRZQyho2EB73Xcj1KcWzlFNWPK+8rd
+dkoCeMSwLOziyN4nn9a56zneoSOZ1WWXeOJ8CFWXkYRw9IjAWZzy8P5ccXi/ho4S
+koUfFe3Tg/wlUPSGBM13ewya66vpy0OYxB5u3tImnY6hyN9Ppma/KTtuernSvnQW
+xrTDRpsJGUKbBXWutZxbo9XhdmVZObyZXQCQhwIDAQABAoIBABjku+L8dZvlEm4M
+Q4f7AiPAPN2VGI+bTookywe8M3fNPpxhAudgXwl7bMHsGZZONKaixfUoxFLRdTpq
+w6K7VaaBtB3v7AgukO4zrJlnTKVAc39cOPnzJnqN+wdRC5cG/sVnj2jPDloLmd10
+ZCPw2z29swHxE3xyvWIUH4Oh7G/MIVr4BKooTuFEZ8yYqDYWLTmXW+p6aqMgdDwU
+18Bpqc6I8m74Ax8n4aHj74ZrFi73UNjOC4a68r5x4IRE/dRyIlXB1YLNdt2d8yZv
+LFoKBVe+5yw80qEDHVI3mr7C1kFdry41hDFxMSvSqNuQCRYH2B58/iB3CIOGIM9a
+eTyHRlECgYEA/Kg3xIF7S7IzGma9WTC158tt0/XzL7H8Js9qn9H7E0Tw2G34ftV1
+wS3sAa3o66uRQLkxL6zk1oFBu3xJjjdCU5WhIrGy5MGJmXMuAhIQdNLk+p5eXnRR
+SAPkKJZgud3R+C5DxYJrixGW9uoiB2I0f9dFYGrmMjsoLEj2vPZgu0kCgYEA91k6
+xw0OamjSlopLsyqWNt/+gK7RgBpvwencVDCZQZtVsYscAwIJvBr3yvsLdTbtNck6
+25bP6w91Pa3tRX3Uaa0H9+h0uulTvNnGzRUF/pNeGfzQT6vTd1KlBt+PKkgZIgIf
+coSgJqmMuKdzckVBBiy1uik5gFLFzQDjkFzznU8CgYEAmeYdkiUM5V72oe5TCDET
+nM3daG84YqUX4swVNqTBO0uTKUJTS27a+4DtcVhtuKAZKkOkIlY+TisNzxY199rR
+G/jY3jk/rvf0yPPP4pL+UyrjL4WoFgDkQemc4Nw4rv7fFz2XKof22g8s1dpoP/ch
+431NVR3IenBuWAtZwGCTK4ECgYEA879728IzDYuk0vMP7EywYP1VqOwdyhbDQR27
+oT+PF4cC6IZEoXY1r6gHvoCsZuMs2Y8nMFQrKuI9z/2Az7VTSJxaOORbfAIJIhae
+AWWRVbFVz1hC0/Bo4LKRq/dM9wa7tbbP1KN7yv3Ujfd+HgK/NF2E7CJJ5voqsH4K
+wy3GaKMCgYAvYH8jKQVlxVpjVR0AW4X5WNTlCaV4jOY+1185IsJHkvzG4v50yQNS
+m/9Z/hexWxJ2k6uVm3rdAaOL522JJLmE08uibNU47Lv/uHwQ579hVrC5VG3rd32X
+nJ6hR/J47yStnrLhb+uj2zAawqeODrAMRjvss/UOVJ/aN93YST1nJw==
-----END RSA PRIVATE KEY-----
diff --git a/tests/certs/Server-localhost.nn-sv.pem b/tests/certs/Server-localhost.nn-sv.pem
index 7dfd4e6e..97824261 100644
--- a/tests/certs/Server-localhost.nn-sv.pem
+++ b/tests/certs/Server-localhost.nn-sv.pem
@@ -24,49 +24,70 @@ commonName_value = localhost.nn
# the certificate
# some dhparam
-----BEGIN RSA PRIVATE KEY-----
-MIICXQIBAAKBgQCszBFwdCntewBEisBHA1Cdb1G3yXvdfu4pZ1uRm8fF5p1ZPmsz
-Jbd8OXyEed0VmOcnY5MQOjpAoN3QHm5g9B6k9x4KC4REd+cFFjmq3r0ex7zJ4U6M
-hhw/1s3j8mgCWxdTSVEpqInz0OFecQefFUcIQOmsSeQhrGUpCcqi3J6riQIDAQAB
-AoGAK7nYD+TVV0rw3mdeEJo+JBivTRqnRX2BNuj4uvf4rZOV7adl6SN6Mu05HSzZ
-TUXL+KOx60FQzFnox2lr9QzRU/LelLQ3H9fgVTVmGUCEAoDVRoWas8XlYGZsiHZ/
-yJn+9Z3yQYpufSb0LQiSt73sgrTNPu50gMxe/ZSAbSscyyECQQDV8juKzWmizlTh
-+wVs/pihE0+BX1BRCsezs7FCdDEWle3XidBtYlYyUIm5wx6v8xM/F7Q/nwgymOnV
-A62PtfyjAkEAzsM3DsuJ9dG5n+EPTH3kDdfr0eYy76XPYz4HK8/FgiKPWy55BRCH
-biLcbDAe06olJiCzEvwggFigthrIqj0t4wJBALDTUi74c3SiADn+FI/vJQsMQMv2
-kRVKSZ/WxozcJ645IKjiOKgPfJp9QjeMcxKNXrzoxItIz6eyBqGONqbujO0CQQCh
-b6azdJR5TJEklfL+BGVlsas8rgIjP1FX6Xxr5sQNwbIwvW5cV/WGNs3n4wKOvZBX
-3rwzHIy76XdB+FOpKC+FAkBDVbicC19LE6+tBzOyx4uTEm3N7N8vh566VaOpok02
-Io7F/WYL7WSCXAtvmueWV+FJyVUMN1f2nWfWqaEXP2ag
+MIIEpAIBAAKCAQEA9B5eTIyHngn412I9OPtem2JbAi6V9QoUgtQH/OfzlsMSGrkk
++vRBf3ZWPY1yISpJz1RCCYcWApiwqcXG0/JgrbthF6LqNTEc37sn/p359/9qchCj
+RHU7tT52G/dgpjHKT2IOfm2ZnI4wYf835sGRZQyho2EB73Xcj1KcWzlFNWPK+8rd
+dkoCeMSwLOziyN4nn9a56zneoSOZ1WWXeOJ8CFWXkYRw9IjAWZzy8P5ccXi/ho4S
+koUfFe3Tg/wlUPSGBM13ewya66vpy0OYxB5u3tImnY6hyN9Ppma/KTtuernSvnQW
+xrTDRpsJGUKbBXWutZxbo9XhdmVZObyZXQCQhwIDAQABAoIBABjku+L8dZvlEm4M
+Q4f7AiPAPN2VGI+bTookywe8M3fNPpxhAudgXwl7bMHsGZZONKaixfUoxFLRdTpq
+w6K7VaaBtB3v7AgukO4zrJlnTKVAc39cOPnzJnqN+wdRC5cG/sVnj2jPDloLmd10
+ZCPw2z29swHxE3xyvWIUH4Oh7G/MIVr4BKooTuFEZ8yYqDYWLTmXW+p6aqMgdDwU
+18Bpqc6I8m74Ax8n4aHj74ZrFi73UNjOC4a68r5x4IRE/dRyIlXB1YLNdt2d8yZv
+LFoKBVe+5yw80qEDHVI3mr7C1kFdry41hDFxMSvSqNuQCRYH2B58/iB3CIOGIM9a
+eTyHRlECgYEA/Kg3xIF7S7IzGma9WTC158tt0/XzL7H8Js9qn9H7E0Tw2G34ftV1
+wS3sAa3o66uRQLkxL6zk1oFBu3xJjjdCU5WhIrGy5MGJmXMuAhIQdNLk+p5eXnRR
+SAPkKJZgud3R+C5DxYJrixGW9uoiB2I0f9dFYGrmMjsoLEj2vPZgu0kCgYEA91k6
+xw0OamjSlopLsyqWNt/+gK7RgBpvwencVDCZQZtVsYscAwIJvBr3yvsLdTbtNck6
+25bP6w91Pa3tRX3Uaa0H9+h0uulTvNnGzRUF/pNeGfzQT6vTd1KlBt+PKkgZIgIf
+coSgJqmMuKdzckVBBiy1uik5gFLFzQDjkFzznU8CgYEAmeYdkiUM5V72oe5TCDET
+nM3daG84YqUX4swVNqTBO0uTKUJTS27a+4DtcVhtuKAZKkOkIlY+TisNzxY199rR
+G/jY3jk/rvf0yPPP4pL+UyrjL4WoFgDkQemc4Nw4rv7fFz2XKof22g8s1dpoP/ch
+431NVR3IenBuWAtZwGCTK4ECgYEA879728IzDYuk0vMP7EywYP1VqOwdyhbDQR27
+oT+PF4cC6IZEoXY1r6gHvoCsZuMs2Y8nMFQrKuI9z/2Az7VTSJxaOORbfAIJIhae
+AWWRVbFVz1hC0/Bo4LKRq/dM9wa7tbbP1KN7yv3Ujfd+HgK/NF2E7CJJ5voqsH4K
+wy3GaKMCgYAvYH8jKQVlxVpjVR0AW4X5WNTlCaV4jOY+1185IsJHkvzG4v50yQNS
+m/9Z/hexWxJ2k6uVm3rdAaOL522JJLmE08uibNU47Lv/uHwQ579hVrC5VG3rd32X
+nJ6hR/J47yStnrLhb+uj2zAawqeODrAMRjvss/UOVJ/aN93YST1nJw==
-----END RSA PRIVATE KEY-----
Certificate:
Data:
Version: 3 (0x2)
- Serial Number: 14269504311644 (0xcfa60bc515c)
- Signature Algorithm: sha1WithRSAEncryption
+ Serial Number: 15373412528542 (0xdfb66caf19e)
+ Signature Algorithm: sha256WithRSAEncryption
Issuer:
countryName = NN
organizationName = Edel Curl Arctic Illudium Research Cloud
commonName = Northern Nowhere Trust Anchor
Validity
- Not Before: Mar 21 15:07:11 2015 GMT
- Not After : Jun 7 15:07:11 2023 GMT
+ Not Before: Sep 19 07:14:12 2018 GMT
+ Not After : Dec 6 07:14:12 2026 GMT
Subject:
countryName = NN
organizationName = Edel Curl Arctic Illudium Research Cloud
commonName = localhost.nn
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
- Public-Key: (1024 bit)
+ RSA Public-Key: (2048 bit)
Modulus:
- 00:ac:cc:11:70:74:29:ed:7b:00:44:8a:c0:47:03:
- 50:9d:6f:51:b7:c9:7b:dd:7e:ee:29:67:5b:91:9b:
- c7:c5:e6:9d:59:3e:6b:33:25:b7:7c:39:7c:84:79:
- dd:15:98:e7:27:63:93:10:3a:3a:40:a0:dd:d0:1e:
- 6e:60:f4:1e:a4:f7:1e:0a:0b:84:44:77:e7:05:16:
- 39:aa:de:bd:1e:c7:bc:c9:e1:4e:8c:86:1c:3f:d6:
- cd:e3:f2:68:02:5b:17:53:49:51:29:a8:89:f3:d0:
- e1:5e:71:07:9f:15:47:08:40:e9:ac:49:e4:21:ac:
- 65:29:09:ca:a2:dc:9e:ab:89
+ 00:f4:1e:5e:4c:8c:87:9e:09:f8:d7:62:3d:38:fb:
+ 5e:9b:62:5b:02:2e:95:f5:0a:14:82:d4:07:fc:e7:
+ f3:96:c3:12:1a:b9:24:fa:f4:41:7f:76:56:3d:8d:
+ 72:21:2a:49:cf:54:42:09:87:16:02:98:b0:a9:c5:
+ c6:d3:f2:60:ad:bb:61:17:a2:ea:35:31:1c:df:bb:
+ 27:fe:9d:f9:f7:ff:6a:72:10:a3:44:75:3b:b5:3e:
+ 76:1b:f7:60:a6:31:ca:4f:62:0e:7e:6d:99:9c:8e:
+ 30:61:ff:37:e6:c1:91:65:0c:a1:a3:61:01:ef:75:
+ dc:8f:52:9c:5b:39:45:35:63:ca:fb:ca:dd:76:4a:
+ 02:78:c4:b0:2c:ec:e2:c8:de:27:9f:d6:b9:eb:39:
+ de:a1:23:99:d5:65:97:78:e2:7c:08:55:97:91:84:
+ 70:f4:88:c0:59:9c:f2:f0:fe:5c:71:78:bf:86:8e:
+ 12:92:85:1f:15:ed:d3:83:fc:25:50:f4:86:04:cd:
+ 77:7b:0c:9a:eb:ab:e9:cb:43:98:c4:1e:6e:de:d2:
+ 26:9d:8e:a1:c8:df:4f:a6:66:bf:29:3b:6e:7a:b9:
+ d2:be:74:16:c6:b4:c3:46:9b:09:19:42:9b:05:75:
+ ae:b5:9c:5b:a3:d5:e1:76:65:59:39:bc:99:5d:00:
+ 90:87
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Alternative Name:
@@ -76,45 +97,48 @@ Certificate:
X509v3 Extended Key Usage:
TLS Web Server Authentication
X509v3 Subject Key Identifier:
- 12:AF:44:46:B1:04:69:61:64:83:39:A2:BD:5D:97:2B:F4:1D:D4:6C
+ DA:FC:ED:BF:82:CB:15:D8:7E:A1:4B:98:23:8E:83:2A:11:6E:49:C9
X509v3 Authority Key Identifier:
keyid:12:CA:BA:4B:46:04:A7:75:8A:2C:E8:0E:54:94:BC:12:65:A6:7B:CE
X509v3 Basic Constraints:
CA:FALSE
- Signature Algorithm: sha1WithRSAEncryption
- 44:54:d7:d7:75:14:60:a5:1a:1d:1e:a9:dc:6f:b1:b1:d8:13:
- e2:10:22:9a:f5:ca:b6:38:3c:d9:ac:2e:dc:ce:38:bc:cc:38:
- a1:cc:a8:9c:73:37:f9:b6:a8:42:87:d9:80:21:45:81:43:9d:
- 73:3c:67:cf:cd:c5:c3:91:df:60:6b:6d:69:f9:be:a1:92:cc:
- 5d:ea:bc:67:f3:c7:bc:ea:41:d1:11:7b:e3:f1:b8:a7:8d:9a:
- d0:23:6c:df:0e:2a:35:98:50:c1:a6:8b:d2:07:aa:a6:2f:cb:
- 98:a9:a3:8d:a0:8c:87:ab:ec:e1:c5:0b:25:e2:e9:a9:08:13:
- 30:86:1b:e5:b6:ac:03:85:35:0c:9a:5d:5b:82:c4:04:6a:05:
- 4c:f3:f7:b3:b5:ac:92:3b:46:71:a8:7f:54:c7:96:37:dc:38:
- 2c:a2:18:23:10:00:de:f8:21:40:52:99:94:ad:b2:b6:e5:87:
- 8e:29:0b:3b:b3:8a:52:67:54:dc:0a:e9:75:60:33:ff:13:9a:
- 61:a4:15:0c:d0:6f:de:0d:06:23:a8:44:ad:f0:68:60:93:6b:
- 75:06:24:5b:47:9a:b9:3a:ef:d9:4f:df:31:d5:65:3a:e2:94:
- 03:be:88:94:49:7c:6a:d0:da:c0:d0:62:81:f5:61:50:96:5a:
- d0:ee:22:39
+ Signature Algorithm: sha256WithRSAEncryption
+ 98:27:7a:85:b6:39:0f:9f:ca:0f:68:ca:4a:f6:8b:11:2f:df:
+ 52:e4:47:5f:30:09:9c:2c:d8:2c:62:3b:24:0a:3d:37:58:0e:
+ be:7b:8b:c6:2d:3c:be:ad:49:1f:63:3a:8e:81:34:0e:9a:80:
+ f0:f4:c2:7b:fd:6c:66:be:68:d9:27:a6:61:60:08:65:aa:f9:
+ 66:89:fc:99:43:07:3c:57:d9:d4:1a:29:93:e3:b8:a4:54:57:
+ 42:7c:15:6f:b4:92:af:9f:3e:d0:80:62:49:61:e3:d0:e2:0c:
+ 21:c7:49:9e:eb:42:1c:04:bb:ed:e3:6a:25:d1:79:42:03:75:
+ 1f:41:06:c4:cd:42:06:96:df:37:c6:c2:52:13:20:a3:98:b1:
+ 1c:df:5a:47:08:08:f4:b4:d8:35:db:bf:69:07:12:29:dc:17:
+ 30:11:2d:1b:d9:33:af:38:ab:35:f9:f4:9b:f9:a8:3b:d4:fe:
+ 50:7d:19:82:5e:a3:92:ff:bb:59:76:74:42:83:ab:29:49:4c:
+ 10:83:99:12:0f:8d:24:3e:b0:c4:e3:96:d3:a7:73:5f:7e:fb:
+ a8:b6:74:53:46:af:82:93:6d:c0:99:62:0f:03:df:e9:1d:10:
+ ab:f7:92:f9:52:cb:44:f3:f6:9e:49:21:e8:81:7b:fc:78:55:
+ 5b:e2:18:90
-----BEGIN CERTIFICATE-----
-MIIDRTCCAi2gAwIBAgIGDPpgvFFcMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNVBAYT
+MIIDyTCCArGgAwIBAgIGDftmyvGeMA0GCSqGSIb3DQEBCwUAMGgxCzAJBgNVBAYT
Ak5OMTEwLwYDVQQKDChFZGVsIEN1cmwgQXJjdGljIElsbHVkaXVtIFJlc2VhcmNo
IENsb3VkMSYwJAYDVQQDDB1Ob3J0aGVybiBOb3doZXJlIFRydXN0IEFuY2hvcjAe
-Fw0xNTAzMjExNTA3MTFaFw0yMzA2MDcxNTA3MTFaMFcxCzAJBgNVBAYTAk5OMTEw
+Fw0xODA5MTkwNzE0MTJaFw0yNjEyMDYwNzE0MTJaMFcxCzAJBgNVBAYTAk5OMTEw
LwYDVQQKDChFZGVsIEN1cmwgQXJjdGljIElsbHVkaXVtIFJlc2VhcmNoIENsb3Vk
-MRUwEwYDVQQDDAxsb2NhbGhvc3Qubm4wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
-AoGBAKzMEXB0Ke17AESKwEcDUJ1vUbfJe91+7ilnW5Gbx8XmnVk+azMlt3w5fIR5
-3RWY5ydjkxA6OkCg3dAebmD0HqT3HgoLhER35wUWOarevR7HvMnhToyGHD/WzePy
-aAJbF1NJUSmoifPQ4V5xB58VRwhA6axJ5CGsZSkJyqLcnquJAgMBAAGjgYkwgYYw
-FwYDVR0RBBAwDoIMbG9jYWxob3N0Lm5uMAsGA1UdDwQEAwIDqDATBgNVHSUEDDAK
-BggrBgEFBQcDATAdBgNVHQ4EFgQUEq9ERrEEaWFkgzmivV2XK/Qd1GwwHwYDVR0j
-BBgwFoAUEsq6S0YEp3WKLOgOVJS8EmWme84wCQYDVR0TBAIwADANBgkqhkiG9w0B
-AQUFAAOCAQEARFTX13UUYKUaHR6p3G+xsdgT4hAimvXKtjg82awu3M44vMw4ocyo
-nHM3+baoQofZgCFFgUOdczxnz83Fw5HfYGttafm+oZLMXeq8Z/PHvOpB0RF74/G4
-p42a0CNs3w4qNZhQwaaL0geqpi/LmKmjjaCMh6vs4cULJeLpqQgTMIYb5basA4U1
-DJpdW4LEBGoFTPP3s7WskjtGcah/VMeWN9w4LKIYIxAA3vghQFKZlK2ytuWHjikL
-O7OKUmdU3ArpdWAz/xOaYaQVDNBv3g0GI6hErfBoYJNrdQYkW0eauTrv2U/fMdVl
-OuKUA76IlEl8atDawNBigfVhUJZa0O4iOQ==
+MRUwEwYDVQQDDAxsb2NhbGhvc3Qubm4wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+ggEKAoIBAQD0Hl5MjIeeCfjXYj04+16bYlsCLpX1ChSC1Af85/OWwxIauST69EF/
+dlY9jXIhKknPVEIJhxYCmLCpxcbT8mCtu2EXouo1MRzfuyf+nfn3/2pyEKNEdTu1
+PnYb92CmMcpPYg5+bZmcjjBh/zfmwZFlDKGjYQHvddyPUpxbOUU1Y8r7yt12SgJ4
+xLAs7OLI3ief1rnrOd6hI5nVZZd44nwIVZeRhHD0iMBZnPLw/lxxeL+GjhKShR8V
+7dOD/CVQ9IYEzXd7DJrrq+nLQ5jEHm7e0iadjqHI30+mZr8pO256udK+dBbGtMNG
+mwkZQpsFda61nFuj1eF2ZVk5vJldAJCHAgMBAAGjgYkwgYYwFwYDVR0RBBAwDoIM
+bG9jYWxob3N0Lm5uMAsGA1UdDwQEAwIDqDATBgNVHSUEDDAKBggrBgEFBQcDATAd
+BgNVHQ4EFgQU2vztv4LLFdh+oUuYI46DKhFuSckwHwYDVR0jBBgwFoAUEsq6S0YE
+p3WKLOgOVJS8EmWme84wCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEAmCd6
+hbY5D5/KD2jKSvaLES/fUuRHXzAJnCzYLGI7JAo9N1gOvnuLxi08vq1JH2M6joE0
+DpqA8PTCe/1sZr5o2SemYWAIZar5Zon8mUMHPFfZ1Bopk+O4pFRXQnwVb7SSr58+
+0IBiSWHj0OIMIcdJnutCHAS77eNqJdF5QgN1H0EGxM1CBpbfN8bCUhMgo5ixHN9a
+RwgI9LTYNdu/aQcSKdwXMBEtG9kzrzirNfn0m/moO9T+UH0Zgl6jkv+7WXZ0QoOr
+KUlMEIOZEg+NJD6wxOOW06dzX377qLZ0U0avgpNtwJliDwPf6R0Qq/eS+VLLRPP2
+nkkh6IF7/HhVW+IYkA==
-----END CERTIFICATE-----
diff --git a/tests/certs/Server-localhost.nn-sv.pub.der b/tests/certs/Server-localhost.nn-sv.pub.der
index 68b64eb4..8dabd342 100644
--- a/tests/certs/Server-localhost.nn-sv.pub.der
+++ b/tests/certs/Server-localhost.nn-sv.pub.der
Binary files differ
diff --git a/tests/certs/Server-localhost.nn-sv.pub.pem b/tests/certs/Server-localhost.nn-sv.pub.pem
index a59a0e6e..1ac1e43a 100644
--- a/tests/certs/Server-localhost.nn-sv.pub.pem
+++ b/tests/certs/Server-localhost.nn-sv.pub.pem
@@ -1,6 +1,9 @@
-----BEGIN PUBLIC KEY-----
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCszBFwdCntewBEisBHA1Cdb1G3
-yXvdfu4pZ1uRm8fF5p1ZPmszJbd8OXyEed0VmOcnY5MQOjpAoN3QHm5g9B6k9x4K
-C4REd+cFFjmq3r0ex7zJ4U6Mhhw/1s3j8mgCWxdTSVEpqInz0OFecQefFUcIQOms
-SeQhrGUpCcqi3J6riQIDAQAB
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9B5eTIyHngn412I9OPte
+m2JbAi6V9QoUgtQH/OfzlsMSGrkk+vRBf3ZWPY1yISpJz1RCCYcWApiwqcXG0/Jg
+rbthF6LqNTEc37sn/p359/9qchCjRHU7tT52G/dgpjHKT2IOfm2ZnI4wYf835sGR
+ZQyho2EB73Xcj1KcWzlFNWPK+8rddkoCeMSwLOziyN4nn9a56zneoSOZ1WWXeOJ8
+CFWXkYRw9IjAWZzy8P5ccXi/ho4SkoUfFe3Tg/wlUPSGBM13ewya66vpy0OYxB5u
+3tImnY6hyN9Ppma/KTtuernSvnQWxrTDRpsJGUKbBXWutZxbo9XhdmVZObyZXQCQ
+hwIDAQAB
-----END PUBLIC KEY-----
diff --git a/tests/certs/Server-localhost0h-sv.crl b/tests/certs/Server-localhost0h-sv.crl
index 319af89b..d0a69829 100644
--- a/tests/certs/Server-localhost0h-sv.crl
+++ b/tests/certs/Server-localhost0h-sv.crl
@@ -1,22 +1,14 @@
-----BEGIN X509 CRL-----
-MIIDoTCCAokCAQEwDQYJKoZIhvcNAQEFBQAwaDELMAkGA1UEBhMCTk4xMTAvBgNV
-BAoMKEVkZWwgQ3VybCBBcmN0aWMgSWxsdWRpdW0gUmVzZWFyY2ggQ2xvdWQxJjAk
-BgNVBAMMHU5vcnRoZXJuIE5vd2hlcmUgVHJ1c3QgQW5jaG9yFw0xNTAzMjExNTA3
-MTFaFw0xNTA0MjAxNTA3MTFaMIIB2zAXAgYM+ly45CIXDTE1MDMyMTEzMTQ1N1ow
-FwIGDPpcwXH8Fw0xNTAzMjExMzE1NTNaMBcCBgz6XO7ujBcNMTUwMzIxMTMyMDUx
-WjAXAgYM+lzu7p0XDTE1MDMyMTEzMjA1MVowFwIGDPpc7u6uFw0xNTAzMjExMzIw
-NTFaMBcCBgz6XZyD1RcNMTUwMzIxMTMzOTQ5WjAXAgYM+l4OXa8XDTE1MDMyMTEz
-NTIxNVowFwIGDPpeJlPZFw0xNTAzMjExMzU0NTJaMBcCBgz6XiZT6hcNMTUwMzIx
-MTM1NDUyWjAXAgYM+l4mU/sXDTE1MDMyMTEzNTQ1MlowFwIGDPpemKKEFw0xNTAz
-MjExNDA3MjFaMBcCBgz6XpiilRcNMTUwMzIxMTQwNzIxWjAXAgYM+l6YoqYXDTE1
-MDMyMTE0MDcyMVowFwIGDPpffssxFw0xNTAzMjExNDMyMzBaMBcCBgz6X37yUxcN
-MTUwMzIxMTQzMjMxWjAXAgYM+l9+8mYXDTE1MDMyMTE0MzIzMVowFwIGDPpgvFFL
-Fw0xNTAzMjExNTA3MTFaMBcCBgz6YLxRXBcNMTUwMzIxMTUwNzExWjAXAgYM+mC8
-UW4XDTE1MDMyMTE1MDcxMVqgDjAMMAoGA1UdFAQDAgEBMA0GCSqGSIb3DQEBBQUA
-A4IBAQDER99gBe9w8a9X1pQQnzC87kYnW7R0K8wFr4KqCYP0De8tKxhCGrXaoQDK
-AvHQcT3RpCR5PAK5J1InxlCumJJjvo39OLTsaCbSyoynmAMGCXS0earSL83biquG
-jJ29ROXukT3fGE6HO+cKAaHyHeJa6OZEibmCvCls/YvvQTW2jlceOZmi22AL3jYN
-w6UVHRpbHDHupF5YxhwFG1GVTOd9cuik8CqVxPkOfIxeQbEV+qEiDWzjyy2aU3X7
-dLhZE47P5tYgb8nIsXb5PATqiK9vdv4EOyVKiiCmyFemrGGU7MqbTtTjJVB9nS2R
-QMWLS24xr3IcHt7FOX1w8UF/GXiP
+MIICDjCB9wIBATANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJOTjExMC8GA1UE
+CgwoRWRlbCBDdXJsIEFyY3RpYyBJbGx1ZGl1bSBSZXNlYXJjaCBDbG91ZDEmMCQG
+A1UEAwwdTm9ydGhlcm4gTm93aGVyZSBUcnVzdCBBbmNob3IXDTE4MDkxOTA3MTQy
+M1oXDTE4MTAxOTA3MTQyM1owSzAXAgYN+2bB8FMXDTE4MDkxOTA3MTMxNFowFwIG
+DftmyvGeFw0xODA5MTkwNzE0MTJaMBcCBg37ZsyfbhcNMTgwOTE5MDcxNDIzWqAO
+MAwwCgYDVR0UBAMCAQEwDQYJKoZIhvcNAQEFBQADggEBACbgkZUTmz5Uxff0KX1n
+havsvHZbQ97BQcI2n5QP34+lwEZTQrjKy9Zx1Hj4KV7ID7j5zS+4VdZIjSBfb5TI
+mkH3d1EAYkwLJ2YW/CyVTiEht5ewh02QIlWKf6SiwvYkT50tbf1Wwu/ADeqF0JVW
+Cc6TlSPRKWokkcPz3VYLrvZ3TsJbevLQ1eT0aRHjvItZ3FAzOZpDmpWZ8vONL6nB
+Npb2/zUQ+kmd+9OVB3qq6ok+sLl7s+gdQxjw7ZAEn4pPI2J1AjCJTCDD2ZfiZB0o
+Z5LNIemkbVF56lWPTgf8s6ZKjNEaF3MsBX6JX+oI6XG7V+0JQ9HcklqZ0d2VFbjK
+WGc=
-----END X509 CRL-----
diff --git a/tests/certs/Server-localhost0h-sv.crt b/tests/certs/Server-localhost0h-sv.crt
index b00859a5..4aabb453 100644
--- a/tests/certs/Server-localhost0h-sv.crt
+++ b/tests/certs/Server-localhost0h-sv.crt
@@ -1,32 +1,41 @@
Certificate:
Data:
Version: 3 (0x2)
- Serial Number: 14269504311662 (0xcfa60bc516e)
- Signature Algorithm: sha1WithRSAEncryption
+ Serial Number: 15373412638574 (0xdfb66cc9f6e)
+ Signature Algorithm: sha256WithRSAEncryption
Issuer:
countryName = NN
organizationName = Edel Curl Arctic Illudium Research Cloud
commonName = Northern Nowhere Trust Anchor
Validity
- Not Before: Mar 21 15:07:11 2015 GMT
- Not After : Jun 7 15:07:11 2023 GMT
+ Not Before: Sep 19 07:14:23 2018 GMT
+ Not After : Dec 6 07:14:23 2026 GMT
Subject:
countryName = NN
organizationName = Edel Curl Arctic Illudium Research Cloud
commonName = localhost
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
- Public-Key: (1024 bit)
+ RSA Public-Key: (2048 bit)
Modulus:
- 00:e3:c7:52:fb:7d:02:b1:a7:0b:4c:2d:a6:2a:b0:
- 57:6b:5e:0b:f9:9e:4b:e7:d0:ac:55:43:47:fa:b1:
- e0:fc:b0:63:30:84:31:f5:95:44:90:9a:b7:22:01:
- 6f:c7:17:16:be:5a:19:ee:47:35:90:a5:5e:27:ba:
- 86:47:3b:c5:63:d2:f2:c6:a1:db:ac:be:b1:2f:4c:
- c2:98:86:19:72:d5:f9:12:45:09:bc:23:e2:00:eb:
- 4d:ba:99:71:b5:4a:fb:49:8c:4d:f3:0b:4e:cf:48:
- 7b:c8:06:37:92:35:ff:bb:4f:ea:98:af:13:ac:a8:
- cd:9f:a7:e0:78:db:15:bc:3b
+ 00:b8:fe:6a:b8:8a:0e:bb:34:90:cf:48:e7:dd:0d:
+ 26:32:67:0a:4e:aa:9c:4c:fd:eb:6f:e1:b8:98:5d:
+ b1:43:d4:09:4f:62:d8:4d:7c:d6:0b:36:93:57:fb:
+ 61:02:b9:8d:35:20:9b:de:7d:a3:d5:0d:8e:44:98:
+ d4:91:31:a2:1e:9a:84:cc:00:52:4b:78:c3:57:57:
+ 6b:d7:25:29:bf:14:50:20:6f:1a:ee:3c:fc:bb:bf:
+ 1e:1f:cd:a8:b7:fd:8d:ae:cc:78:07:c0:03:86:fd:
+ ed:db:86:c1:2b:81:55:45:4a:50:07:fd:8d:85:a4:
+ e9:29:dc:bb:e2:d5:dd:dd:3a:f8:62:21:3c:30:d0:
+ 5a:88:71:67:53:af:78:ea:7e:08:40:32:65:16:7c:
+ bf:c9:ba:f5:06:1e:02:f2:f8:b7:39:c8:85:c0:78:
+ 14:d2:d9:fd:2b:8b:0c:3f:da:83:48:2f:26:24:34:
+ 1b:fa:70:07:46:b4:01:ea:0d:cc:d7:81:a9:f1:66:
+ c5:4e:3d:7e:b4:b3:b4:64:a3:ea:0f:ff:01:54:c1:
+ 8b:1f:e9:65:d5:fc:bc:71:43:69:2e:50:f4:03:12:
+ a5:91:95:20:36:dc:91:eb:aa:ab:8f:30:6c:66:22:
+ 20:de:1d:b8:59:d1:16:a8:71:55:4a:66:fe:76:9c:
+ 9e:e9
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Alternative Name:
@@ -36,45 +45,48 @@ Certificate:
X509v3 Extended Key Usage:
TLS Web Server Authentication
X509v3 Subject Key Identifier:
- 23:D7:CE:D8:B2:D0:F8:8E:3C:82:26:6C:F1:F5:2A:8A:48:90:58:66
+ 19:D0:5D:AA:0F:E0:68:EF:E0:62:65:20:D3:A5:B7:1A:94:90:A9:26
X509v3 Authority Key Identifier:
keyid:12:CA:BA:4B:46:04:A7:75:8A:2C:E8:0E:54:94:BC:12:65:A6:7B:CE
X509v3 Basic Constraints:
CA:FALSE
- Signature Algorithm: sha1WithRSAEncryption
- 28:b9:77:ea:4a:8d:d6:a5:fb:72:5b:d6:cd:60:40:33:56:bf:
- dd:23:ff:bf:e8:2e:10:cd:30:ab:24:a4:43:d8:98:71:e3:59:
- 66:3e:38:bd:b8:fb:19:1a:13:8f:a1:c8:39:93:b5:83:8d:62:
- 52:a9:7a:5b:0d:69:47:40:5c:51:4c:3a:be:a7:c9:5f:7b:93:
- 49:20:59:23:30:7c:d9:4a:dd:29:2c:ed:96:fd:cb:b8:13:ff:
- 36:2c:27:ce:28:c3:a6:d0:d8:ba:8c:38:9f:78:ff:54:c7:76:
- 05:37:47:f5:d3:55:9c:2c:12:41:81:14:ca:48:a2:b7:6d:05:
- 49:2b:c5:f5:7b:63:6d:6f:cd:3f:f4:8d:74:51:07:ff:e1:40:
- d5:96:60:d8:c8:38:5a:15:f9:c5:fd:e1:5e:a3:02:95:90:4b:
- fc:8a:42:de:72:31:72:3d:dd:a2:df:19:42:c8:fa:a8:77:11:
- 67:e6:64:8c:d0:fd:45:fd:f0:49:8c:e1:85:e6:f5:1f:47:c6:
- ae:f2:70:c3:e8:99:d0:cd:9d:88:6b:33:ba:b9:65:3d:f4:b1:
- f4:d0:3c:76:9c:18:9e:9e:c8:62:29:43:8e:f7:2f:2c:12:37:
- 39:02:26:4e:4b:b0:14:30:80:bb:2d:cc:fc:93:dc:c9:8b:c0:
- 69:12:71:36
+ Signature Algorithm: sha256WithRSAEncryption
+ 4d:5c:e6:91:e2:35:48:aa:84:b3:45:97:bd:5c:36:e7:37:d1:
+ 5e:33:17:2a:c1:5b:d2:18:70:3d:f5:8f:66:cb:49:b0:14:ee:
+ 5b:4b:c5:dd:51:75:2d:94:10:b4:5e:61:91:08:cf:35:71:36:
+ be:1b:c1:da:26:df:63:8b:cb:2c:35:74:8e:7c:9f:12:90:09:
+ 81:65:a8:b5:fa:e7:2d:cc:33:55:f4:c4:ed:c8:ac:93:92:2d:
+ 1c:db:5c:4d:d3:ca:75:68:c6:66:83:98:a1:6b:01:91:fb:e0:
+ 04:59:95:6a:5a:7a:8f:5d:55:bf:ff:20:77:49:ad:10:be:7e:
+ 12:3d:60:23:f3:94:cf:6a:d1:2b:d9:84:d9:57:0b:c1:b6:fb:
+ 2d:4f:64:cf:d9:8f:8a:b0:2b:d2:34:fc:b4:58:b0:6d:f3:31:
+ 36:42:3b:e3:6e:cd:19:77:4d:49:29:99:b1:42:27:ae:da:93:
+ 0c:d6:fb:bf:ad:c1:39:ec:7c:b9:94:27:60:75:e2:d3:3c:83:
+ 62:a8:68:d3:ce:7c:a4:e8:f0:b6:04:93:82:3f:8f:71:ea:60:
+ 19:73:50:2e:f3:8c:09:6f:6f:3b:c4:01:b6:c8:0a:b2:19:89:
+ 42:f4:6a:76:e0:0e:59:c4:20:0a:d3:50:e1:9f:b1:9b:a2:d2:
+ d1:cd:65:a5
-----BEGIN CERTIFICATE-----
-MIIDQTCCAimgAwIBAgIGDPpgvFFuMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNVBAYT
+MIIDxTCCAq2gAwIBAgIGDftmzJ9uMA0GCSqGSIb3DQEBCwUAMGgxCzAJBgNVBAYT
Ak5OMTEwLwYDVQQKDChFZGVsIEN1cmwgQXJjdGljIElsbHVkaXVtIFJlc2VhcmNo
IENsb3VkMSYwJAYDVQQDDB1Ob3J0aGVybiBOb3doZXJlIFRydXN0IEFuY2hvcjAe
-Fw0xNTAzMjExNTA3MTFaFw0yMzA2MDcxNTA3MTFaMFQxCzAJBgNVBAYTAk5OMTEw
+Fw0xODA5MTkwNzE0MjNaFw0yNjEyMDYwNzE0MjNaMFQxCzAJBgNVBAYTAk5OMTEw
LwYDVQQKDChFZGVsIEN1cmwgQXJjdGljIElsbHVkaXVtIFJlc2VhcmNoIENsb3Vk
-MRIwEAYDVQQDDAlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB
-AOPHUvt9ArGnC0wtpiqwV2teC/meS+fQrFVDR/qx4PywYzCEMfWVRJCatyIBb8cX
-Fr5aGe5HNZClXie6hkc7xWPS8sah26y+sS9MwpiGGXLV+RJFCbwj4gDrTbqZcbVK
-+0mMTfMLTs9Ie8gGN5I1/7tP6pivE6yozZ+n4HjbFbw7AgMBAAGjgYgwgYUwFgYD
-VR0RBA8wDYILbG9jYWxob3N0AGgwCwYDVR0PBAQDAgOoMBMGA1UdJQQMMAoGCCsG
-AQUFBwMBMB0GA1UdDgQWBBQj187YstD4jjyCJmzx9SqKSJBYZjAfBgNVHSMEGDAW
-gBQSyrpLRgSndYos6A5UlLwSZaZ7zjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBBQUA
-A4IBAQAouXfqSo3WpftyW9bNYEAzVr/dI/+/6C4QzTCrJKRD2Jhx41lmPji9uPsZ
-GhOPocg5k7WDjWJSqXpbDWlHQFxRTDq+p8lfe5NJIFkjMHzZSt0pLO2W/cu4E/82
-LCfOKMOm0Ni6jDifeP9Ux3YFN0f101WcLBJBgRTKSKK3bQVJK8X1e2Ntb80/9I10
-UQf/4UDVlmDYyDhaFfnF/eFeowKVkEv8ikLecjFyPd2i3xlCyPqodxFn5mSM0P1F
-/fBJjOGF5vUfR8au8nDD6JnQzZ2IazO6uWU99LH00Dx2nBienshiKUOO9y8sEjc5
-AiZOS7AUMIC7Lcz8k9zJi8BpEnE2
+MRIwEAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQC4/mq4ig67NJDPSOfdDSYyZwpOqpxM/etv4biYXbFD1AlPYthNfNYLNpNX
++2ECuY01IJvefaPVDY5EmNSRMaIemoTMAFJLeMNXV2vXJSm/FFAgbxruPPy7vx4f
+zai3/Y2uzHgHwAOG/e3bhsErgVVFSlAH/Y2FpOkp3Lvi1d3dOvhiITww0FqIcWdT
+r3jqfghAMmUWfL/JuvUGHgLy+Lc5yIXAeBTS2f0riww/2oNILyYkNBv6cAdGtAHq
+DczXganxZsVOPX60s7Rko+oP/wFUwYsf6WXV/LxxQ2kuUPQDEqWRlSA23JHrqquP
+MGxmIiDeHbhZ0RaocVVKZv52nJ7pAgMBAAGjgYgwgYUwFgYDVR0RBA8wDYILbG9j
+YWxob3N0AGgwCwYDVR0PBAQDAgOoMBMGA1UdJQQMMAoGCCsGAQUFBwMBMB0GA1Ud
+DgQWBBQZ0F2qD+Bo7+BiZSDTpbcalJCpJjAfBgNVHSMEGDAWgBQSyrpLRgSndYos
+6A5UlLwSZaZ7zjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBNXOaR4jVI
+qoSzRZe9XDbnN9FeMxcqwVvSGHA99Y9my0mwFO5bS8XdUXUtlBC0XmGRCM81cTa+
+G8HaJt9ji8ssNXSOfJ8SkAmBZai1+uctzDNV9MTtyKyTki0c21xN08p1aMZmg5ih
+awGR++AEWZVqWnqPXVW//yB3Sa0Qvn4SPWAj85TPatEr2YTZVwvBtvstT2TP2Y+K
+sCvSNPy0WLBt8zE2Qjvjbs0Zd01JKZmxQieu2pMM1vu/rcE57Hy5lCdgdeLTPINi
+qGjTznyk6PC2BJOCP49x6mAZc1Au84wJb287xAG2yAqyGYlC9Gp24A5ZxCAK01Dh
+n7GbotLRzWWl
-----END CERTIFICATE-----
diff --git a/tests/certs/Server-localhost0h-sv.csr b/tests/certs/Server-localhost0h-sv.csr
index d075157d..5f3cae73 100644
--- a/tests/certs/Server-localhost0h-sv.csr
+++ b/tests/certs/Server-localhost0h-sv.csr
@@ -1,11 +1,16 @@
-----BEGIN CERTIFICATE REQUEST-----
-MIIBkzCB/QIBADBUMQswCQYDVQQGEwJOTjExMC8GA1UECgwoRWRlbCBDdXJsIEFy
-Y3RpYyBJbGx1ZGl1bSBSZXNlYXJjaCBDbG91ZDESMBAGA1UEAwwJbG9jYWxob3N0
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjx1L7fQKxpwtMLaYqsFdrXgv5
-nkvn0KxVQ0f6seD8sGMwhDH1lUSQmrciAW/HFxa+WhnuRzWQpV4nuoZHO8Vj0vLG
-odusvrEvTMKYhhly1fkSRQm8I+IA6026mXG1SvtJjE3zC07PSHvIBjeSNf+7T+qY
-rxOsqM2fp+B42xW8OwIDAQABoAAwDQYJKoZIhvcNAQELBQADgYEAC6NxWuiENuj/
-oPsopZy/tVZzbioXZP/S9ECCbdgy33bg9zKwQYLeHOSgXxJzES+RhJwQCliFV17j
-jM1CH7heggwkPAx5KelyZ20DeoeaYOi/xv7TjozrZ+EkmivHKBJi3+qNjNYH0ul9
-HhQBO5+sSDAGLMkWL/nAfYKbf/8KSvA=
+MIICmTCCAYECAQAwVDELMAkGA1UEBhMCTk4xMTAvBgNVBAoMKEVkZWwgQ3VybCBB
+cmN0aWMgSWxsdWRpdW0gUmVzZWFyY2ggQ2xvdWQxEjAQBgNVBAMMCWxvY2FsaG9z
+dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALj+ariKDrs0kM9I590N
+JjJnCk6qnEz962/huJhdsUPUCU9i2E181gs2k1f7YQK5jTUgm959o9UNjkSY1JEx
+oh6ahMwAUkt4w1dXa9clKb8UUCBvGu48/Lu/Hh/NqLf9ja7MeAfAA4b97duGwSuB
+VUVKUAf9jYWk6Sncu+LV3d06+GIhPDDQWohxZ1OveOp+CEAyZRZ8v8m69QYeAvL4
+tznIhcB4FNLZ/SuLDD/ag0gvJiQ0G/pwB0a0AeoNzNeBqfFmxU49frSztGSj6g//
+AVTBix/pZdX8vHFDaS5Q9AMSpZGVIDbckeuqq48wbGYiIN4duFnRFqhxVUpm/nac
+nukCAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4IBAQCKLiSdRDn5ep/4kzMMQkSQv5Ys
+o/uj7HiJWw0IokMcgvTQWBMZ4TJzCDGmgfJ2C4y1qgfJOmFeae4mMUpNzzucZSaH
+ZlEyPk3gCj+EdcSADnxHq/2nD+19j2CGu/P/SIUSfGSLl103OIf+pYb97FxN3cN3
+2hqEJsFDQi4YAIsW+rBT+fcW35MZ+akJagLFVfq0cPbyQFIgtBu6ytnZlZBJCZYC
+u7y0yoCxikZdOQEGp6w0Nk0BvGh9SGYxkuV7oMgfNW3vzS1ay7wbjBlrhYBfLQFw
+LVu31CS6bi33f7QhjZf0yH+lEPV2B+Lqq5d4eqvwe1/pBuaS2aqfqjjCLdEd
-----END CERTIFICATE REQUEST-----
diff --git a/tests/certs/Server-localhost0h-sv.der b/tests/certs/Server-localhost0h-sv.der
index 93642f42..d4d7b076 100644
--- a/tests/certs/Server-localhost0h-sv.der
+++ b/tests/certs/Server-localhost0h-sv.der
Binary files differ
diff --git a/tests/certs/Server-localhost0h-sv.key b/tests/certs/Server-localhost0h-sv.key
index 5fcc9c58..fc39dead 100644
--- a/tests/certs/Server-localhost0h-sv.key
+++ b/tests/certs/Server-localhost0h-sv.key
@@ -1,15 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
-MIICXAIBAAKBgQDjx1L7fQKxpwtMLaYqsFdrXgv5nkvn0KxVQ0f6seD8sGMwhDH1
-lUSQmrciAW/HFxa+WhnuRzWQpV4nuoZHO8Vj0vLGodusvrEvTMKYhhly1fkSRQm8
-I+IA6026mXG1SvtJjE3zC07PSHvIBjeSNf+7T+qYrxOsqM2fp+B42xW8OwIDAQAB
-AoGAHdkk2qfLDpShOl5RBA8PpZYxY4iG0d3ad2HVsNhWb0Z9+QGZumDRF1Hu5Zni
-l+hCprcP5tWWA1poODSNHBCNEQRYZcHrfZlh+sDiV6ZmexBg7x9D5azyRbn20vr1
-79UxmisRxnDQQHCfOmgZtgs1EZXnFOs0OotoZAHFr+GLtQECQQD+R2TaWMCEPKJc
-IswGBqLGL8cyy+v2d5Glt5l+xzb/KCdY9cbOR/B9wq//0Nvqyiq1I1jUBVw9NJi/
-eBx/OYxhAkEA5VIC6uMpIck0Qxpbj7/H3k2pBf1HROgmLEq+cVLFgY62CIpTgleO
-SAzTmn0vDXir0jQHJn+JTokvn0PxyNquGwJBAJW+77rSl5WIq8j8yRAnakayrmnQ
-w8ZjBggExsVthorfV8TBAPJMVWmKdOF/W3O62UnRZid+fKKize28S3P1LSECQDF8
-3FJSSWsYH6YnhwDjkz9fJQ281eeB7dL7IlQUV7kY0iHPsCvdtz/HPNcHEuNmWjYX
-sj9VoI0JP/Sv1frRbmcCQDPaeWowPGf1Xtj0oTSlA6KQsKZPO7t15nivgX/AnZWQ
-01l8q6GPHeYwyG/caD3BZwAavsVLg9nhKx0lf0wExM0=
+MIIEpAIBAAKCAQEAuP5quIoOuzSQz0jn3Q0mMmcKTqqcTP3rb+G4mF2xQ9QJT2LY
+TXzWCzaTV/thArmNNSCb3n2j1Q2ORJjUkTGiHpqEzABSS3jDV1dr1yUpvxRQIG8a
+7jz8u78eH82ot/2Nrsx4B8ADhv3t24bBK4FVRUpQB/2NhaTpKdy74tXd3Tr4YiE8
+MNBaiHFnU6946n4IQDJlFny/ybr1Bh4C8vi3OciFwHgU0tn9K4sMP9qDSC8mJDQb
++nAHRrQB6g3M14Gp8WbFTj1+tLO0ZKPqD/8BVMGLH+ll1fy8cUNpLlD0AxKlkZUg
+NtyR66qrjzBsZiIg3h24WdEWqHFVSmb+dpye6QIDAQABAoIBAQCTb/GOcjmbaiGf
+kvN4cepncUf9umwn0Je766I7jTCiZnOlGZpa54uQFEcKcAa5LTklhn+zq17PhqZE
+dam0rmIPEgeUrwznqa/GBJ6mMbA74eyabPKBvYmP+JoBrt8xBJvPHJbtVlN5Wxgf
+Rh7elY1oU/nE5IfOY8iQ3KPB/cF9dw85EafIrQ/4neucBvV/I16XjhmNrOTOBdWS
+y1m0V3oj1238GlaWICdm1fhu8xfWiGbbUt7Lloj9Z2pm77eZwdSDF4Sa68BIyi3Z
+5xT6guXsoz2H59obzd0jardb60QjyQ93Bv8QhYHu4vHP3htlWeydwFYYE8LqoDlo
+HsLVbvwhAoGBAOElERBVjkWeI6VySeY2LfuOGLdkzp2QrXedr5yJzxaGeR1Zjcad
+TmzIMTgxk/lwmRxOaEKklRDhdgwsQVPEYjN/aknCjomsfPcYjsYVIIzOAJxL/1XB
+zDKuMIAwIiSKfp1LapKnawBKmG0SSL8T8zQMBZPUDR01REgpF9M+YpcbAoGBANJY
+s6HdvmmUkABA5iJWtwZ8ekkkVkCsq0qMxisglGcz6QW7r1w0ag1Gn4HtNFnhdzt+
+3CZZyhRzMt1SZJ0Z5i+RufH8ct9JpIiAPxmy/4vHrd3LnVvabxKtCerhtCmKUJNj
+vOSRp/rYr5bQQ+HYVS8gNwVjVJCmfG5eUZXZcq5LAoGAaoObwAuJ5Hu9R397YLNP
+K8x8+v5xFXAl8Qoj074KwBBcajs87LLtMF/BkWE7LW5MsWySvLyaXUMdEwM44MVu
+5Agqo7ysrItzD3+JxEKohJTNCySVJuApl+x6u5qJ/Jmc7xOH1tvnrlqcJDXbPrLU
+g1IQrXBLx/60UCNIx0KjZ/MCgYBLAGXMqYxjiR1vebSVOeY44dmYiuRWWzsYcemX
+Jx7DTbcg3DNC5U2LPktRwIqSIdqp1CobYpizgf/4+o/1lG6HN6bdqe4rv85y/YeC
+WljUNnbARwHs5o4EUr7eiWv8A92HMGEB/w2uW+UAGXKa7NAy5YG44hodGb/0ep0M
+mWRS0QKBgQDG5Zdh+MLMsGgujtCnp8z96IK0I1M5G7V0BWe9Rg2QpjcVCGqmucxB
+GCQwUdn8LL0kXKueC6v7GsQvOWsx+GLbLuQsAF+r4tHh+IQAQyPleLfs5bis/Kqf
+GiSMt5ahOx9q/n5HD9GK/sGjvmqJucVQ45mnZqdnhTGnS/htzQGWmw==
-----END RSA PRIVATE KEY-----
diff --git a/tests/certs/Server-localhost0h-sv.pem b/tests/certs/Server-localhost0h-sv.pem
index a953370e..869a70b8 100644
--- a/tests/certs/Server-localhost0h-sv.pem
+++ b/tests/certs/Server-localhost0h-sv.pem
@@ -25,49 +25,70 @@ commonName_value = localhost
# the certificate
# some dhparam
-----BEGIN RSA PRIVATE KEY-----
-MIICXAIBAAKBgQDjx1L7fQKxpwtMLaYqsFdrXgv5nkvn0KxVQ0f6seD8sGMwhDH1
-lUSQmrciAW/HFxa+WhnuRzWQpV4nuoZHO8Vj0vLGodusvrEvTMKYhhly1fkSRQm8
-I+IA6026mXG1SvtJjE3zC07PSHvIBjeSNf+7T+qYrxOsqM2fp+B42xW8OwIDAQAB
-AoGAHdkk2qfLDpShOl5RBA8PpZYxY4iG0d3ad2HVsNhWb0Z9+QGZumDRF1Hu5Zni
-l+hCprcP5tWWA1poODSNHBCNEQRYZcHrfZlh+sDiV6ZmexBg7x9D5azyRbn20vr1
-79UxmisRxnDQQHCfOmgZtgs1EZXnFOs0OotoZAHFr+GLtQECQQD+R2TaWMCEPKJc
-IswGBqLGL8cyy+v2d5Glt5l+xzb/KCdY9cbOR/B9wq//0Nvqyiq1I1jUBVw9NJi/
-eBx/OYxhAkEA5VIC6uMpIck0Qxpbj7/H3k2pBf1HROgmLEq+cVLFgY62CIpTgleO
-SAzTmn0vDXir0jQHJn+JTokvn0PxyNquGwJBAJW+77rSl5WIq8j8yRAnakayrmnQ
-w8ZjBggExsVthorfV8TBAPJMVWmKdOF/W3O62UnRZid+fKKize28S3P1LSECQDF8
-3FJSSWsYH6YnhwDjkz9fJQ281eeB7dL7IlQUV7kY0iHPsCvdtz/HPNcHEuNmWjYX
-sj9VoI0JP/Sv1frRbmcCQDPaeWowPGf1Xtj0oTSlA6KQsKZPO7t15nivgX/AnZWQ
-01l8q6GPHeYwyG/caD3BZwAavsVLg9nhKx0lf0wExM0=
+MIIEpAIBAAKCAQEAuP5quIoOuzSQz0jn3Q0mMmcKTqqcTP3rb+G4mF2xQ9QJT2LY
+TXzWCzaTV/thArmNNSCb3n2j1Q2ORJjUkTGiHpqEzABSS3jDV1dr1yUpvxRQIG8a
+7jz8u78eH82ot/2Nrsx4B8ADhv3t24bBK4FVRUpQB/2NhaTpKdy74tXd3Tr4YiE8
+MNBaiHFnU6946n4IQDJlFny/ybr1Bh4C8vi3OciFwHgU0tn9K4sMP9qDSC8mJDQb
++nAHRrQB6g3M14Gp8WbFTj1+tLO0ZKPqD/8BVMGLH+ll1fy8cUNpLlD0AxKlkZUg
+NtyR66qrjzBsZiIg3h24WdEWqHFVSmb+dpye6QIDAQABAoIBAQCTb/GOcjmbaiGf
+kvN4cepncUf9umwn0Je766I7jTCiZnOlGZpa54uQFEcKcAa5LTklhn+zq17PhqZE
+dam0rmIPEgeUrwznqa/GBJ6mMbA74eyabPKBvYmP+JoBrt8xBJvPHJbtVlN5Wxgf
+Rh7elY1oU/nE5IfOY8iQ3KPB/cF9dw85EafIrQ/4neucBvV/I16XjhmNrOTOBdWS
+y1m0V3oj1238GlaWICdm1fhu8xfWiGbbUt7Lloj9Z2pm77eZwdSDF4Sa68BIyi3Z
+5xT6guXsoz2H59obzd0jardb60QjyQ93Bv8QhYHu4vHP3htlWeydwFYYE8LqoDlo
+HsLVbvwhAoGBAOElERBVjkWeI6VySeY2LfuOGLdkzp2QrXedr5yJzxaGeR1Zjcad
+TmzIMTgxk/lwmRxOaEKklRDhdgwsQVPEYjN/aknCjomsfPcYjsYVIIzOAJxL/1XB
+zDKuMIAwIiSKfp1LapKnawBKmG0SSL8T8zQMBZPUDR01REgpF9M+YpcbAoGBANJY
+s6HdvmmUkABA5iJWtwZ8ekkkVkCsq0qMxisglGcz6QW7r1w0ag1Gn4HtNFnhdzt+
+3CZZyhRzMt1SZJ0Z5i+RufH8ct9JpIiAPxmy/4vHrd3LnVvabxKtCerhtCmKUJNj
+vOSRp/rYr5bQQ+HYVS8gNwVjVJCmfG5eUZXZcq5LAoGAaoObwAuJ5Hu9R397YLNP
+K8x8+v5xFXAl8Qoj074KwBBcajs87LLtMF/BkWE7LW5MsWySvLyaXUMdEwM44MVu
+5Agqo7ysrItzD3+JxEKohJTNCySVJuApl+x6u5qJ/Jmc7xOH1tvnrlqcJDXbPrLU
+g1IQrXBLx/60UCNIx0KjZ/MCgYBLAGXMqYxjiR1vebSVOeY44dmYiuRWWzsYcemX
+Jx7DTbcg3DNC5U2LPktRwIqSIdqp1CobYpizgf/4+o/1lG6HN6bdqe4rv85y/YeC
+WljUNnbARwHs5o4EUr7eiWv8A92HMGEB/w2uW+UAGXKa7NAy5YG44hodGb/0ep0M
+mWRS0QKBgQDG5Zdh+MLMsGgujtCnp8z96IK0I1M5G7V0BWe9Rg2QpjcVCGqmucxB
+GCQwUdn8LL0kXKueC6v7GsQvOWsx+GLbLuQsAF+r4tHh+IQAQyPleLfs5bis/Kqf
+GiSMt5ahOx9q/n5HD9GK/sGjvmqJucVQ45mnZqdnhTGnS/htzQGWmw==
-----END RSA PRIVATE KEY-----
Certificate:
Data:
Version: 3 (0x2)
- Serial Number: 14269504311662 (0xcfa60bc516e)
- Signature Algorithm: sha1WithRSAEncryption
+ Serial Number: 15373412638574 (0xdfb66cc9f6e)
+ Signature Algorithm: sha256WithRSAEncryption
Issuer:
countryName = NN
organizationName = Edel Curl Arctic Illudium Research Cloud
commonName = Northern Nowhere Trust Anchor
Validity
- Not Before: Mar 21 15:07:11 2015 GMT
- Not After : Jun 7 15:07:11 2023 GMT
+ Not Before: Sep 19 07:14:23 2018 GMT
+ Not After : Dec 6 07:14:23 2026 GMT
Subject:
countryName = NN
organizationName = Edel Curl Arctic Illudium Research Cloud
commonName = localhost
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
- Public-Key: (1024 bit)
+ RSA Public-Key: (2048 bit)
Modulus:
- 00:e3:c7:52:fb:7d:02:b1:a7:0b:4c:2d:a6:2a:b0:
- 57:6b:5e:0b:f9:9e:4b:e7:d0:ac:55:43:47:fa:b1:
- e0:fc:b0:63:30:84:31:f5:95:44:90:9a:b7:22:01:
- 6f:c7:17:16:be:5a:19:ee:47:35:90:a5:5e:27:ba:
- 86:47:3b:c5:63:d2:f2:c6:a1:db:ac:be:b1:2f:4c:
- c2:98:86:19:72:d5:f9:12:45:09:bc:23:e2:00:eb:
- 4d:ba:99:71:b5:4a:fb:49:8c:4d:f3:0b:4e:cf:48:
- 7b:c8:06:37:92:35:ff:bb:4f:ea:98:af:13:ac:a8:
- cd:9f:a7:e0:78:db:15:bc:3b
+ 00:b8:fe:6a:b8:8a:0e:bb:34:90:cf:48:e7:dd:0d:
+ 26:32:67:0a:4e:aa:9c:4c:fd:eb:6f:e1:b8:98:5d:
+ b1:43:d4:09:4f:62:d8:4d:7c:d6:0b:36:93:57:fb:
+ 61:02:b9:8d:35:20:9b:de:7d:a3:d5:0d:8e:44:98:
+ d4:91:31:a2:1e:9a:84:cc:00:52:4b:78:c3:57:57:
+ 6b:d7:25:29:bf:14:50:20:6f:1a:ee:3c:fc:bb:bf:
+ 1e:1f:cd:a8:b7:fd:8d:ae:cc:78:07:c0:03:86:fd:
+ ed:db:86:c1:2b:81:55:45:4a:50:07:fd:8d:85:a4:
+ e9:29:dc:bb:e2:d5:dd:dd:3a:f8:62:21:3c:30:d0:
+ 5a:88:71:67:53:af:78:ea:7e:08:40:32:65:16:7c:
+ bf:c9:ba:f5:06:1e:02:f2:f8:b7:39:c8:85:c0:78:
+ 14:d2:d9:fd:2b:8b:0c:3f:da:83:48:2f:26:24:34:
+ 1b:fa:70:07:46:b4:01:ea:0d:cc:d7:81:a9:f1:66:
+ c5:4e:3d:7e:b4:b3:b4:64:a3:ea:0f:ff:01:54:c1:
+ 8b:1f:e9:65:d5:fc:bc:71:43:69:2e:50:f4:03:12:
+ a5:91:95:20:36:dc:91:eb:aa:ab:8f:30:6c:66:22:
+ 20:de:1d:b8:59:d1:16:a8:71:55:4a:66:fe:76:9c:
+ 9e:e9
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Alternative Name:
@@ -77,45 +98,48 @@ Certificate:
X509v3 Extended Key Usage:
TLS Web Server Authentication
X509v3 Subject Key Identifier:
- 23:D7:CE:D8:B2:D0:F8:8E:3C:82:26:6C:F1:F5:2A:8A:48:90:58:66
+ 19:D0:5D:AA:0F:E0:68:EF:E0:62:65:20:D3:A5:B7:1A:94:90:A9:26
X509v3 Authority Key Identifier:
keyid:12:CA:BA:4B:46:04:A7:75:8A:2C:E8:0E:54:94:BC:12:65:A6:7B:CE
X509v3 Basic Constraints:
CA:FALSE
- Signature Algorithm: sha1WithRSAEncryption
- 28:b9:77:ea:4a:8d:d6:a5:fb:72:5b:d6:cd:60:40:33:56:bf:
- dd:23:ff:bf:e8:2e:10:cd:30:ab:24:a4:43:d8:98:71:e3:59:
- 66:3e:38:bd:b8:fb:19:1a:13:8f:a1:c8:39:93:b5:83:8d:62:
- 52:a9:7a:5b:0d:69:47:40:5c:51:4c:3a:be:a7:c9:5f:7b:93:
- 49:20:59:23:30:7c:d9:4a:dd:29:2c:ed:96:fd:cb:b8:13:ff:
- 36:2c:27:ce:28:c3:a6:d0:d8:ba:8c:38:9f:78:ff:54:c7:76:
- 05:37:47:f5:d3:55:9c:2c:12:41:81:14:ca:48:a2:b7:6d:05:
- 49:2b:c5:f5:7b:63:6d:6f:cd:3f:f4:8d:74:51:07:ff:e1:40:
- d5:96:60:d8:c8:38:5a:15:f9:c5:fd:e1:5e:a3:02:95:90:4b:
- fc:8a:42:de:72:31:72:3d:dd:a2:df:19:42:c8:fa:a8:77:11:
- 67:e6:64:8c:d0:fd:45:fd:f0:49:8c:e1:85:e6:f5:1f:47:c6:
- ae:f2:70:c3:e8:99:d0:cd:9d:88:6b:33:ba:b9:65:3d:f4:b1:
- f4:d0:3c:76:9c:18:9e:9e:c8:62:29:43:8e:f7:2f:2c:12:37:
- 39:02:26:4e:4b:b0:14:30:80:bb:2d:cc:fc:93:dc:c9:8b:c0:
- 69:12:71:36
+ Signature Algorithm: sha256WithRSAEncryption
+ 4d:5c:e6:91:e2:35:48:aa:84:b3:45:97:bd:5c:36:e7:37:d1:
+ 5e:33:17:2a:c1:5b:d2:18:70:3d:f5:8f:66:cb:49:b0:14:ee:
+ 5b:4b:c5:dd:51:75:2d:94:10:b4:5e:61:91:08:cf:35:71:36:
+ be:1b:c1:da:26:df:63:8b:cb:2c:35:74:8e:7c:9f:12:90:09:
+ 81:65:a8:b5:fa:e7:2d:cc:33:55:f4:c4:ed:c8:ac:93:92:2d:
+ 1c:db:5c:4d:d3:ca:75:68:c6:66:83:98:a1:6b:01:91:fb:e0:
+ 04:59:95:6a:5a:7a:8f:5d:55:bf:ff:20:77:49:ad:10:be:7e:
+ 12:3d:60:23:f3:94:cf:6a:d1:2b:d9:84:d9:57:0b:c1:b6:fb:
+ 2d:4f:64:cf:d9:8f:8a:b0:2b:d2:34:fc:b4:58:b0:6d:f3:31:
+ 36:42:3b:e3:6e:cd:19:77:4d:49:29:99:b1:42:27:ae:da:93:
+ 0c:d6:fb:bf:ad:c1:39:ec:7c:b9:94:27:60:75:e2:d3:3c:83:
+ 62:a8:68:d3:ce:7c:a4:e8:f0:b6:04:93:82:3f:8f:71:ea:60:
+ 19:73:50:2e:f3:8c:09:6f:6f:3b:c4:01:b6:c8:0a:b2:19:89:
+ 42:f4:6a:76:e0:0e:59:c4:20:0a:d3:50:e1:9f:b1:9b:a2:d2:
+ d1:cd:65:a5
-----BEGIN CERTIFICATE-----
-MIIDQTCCAimgAwIBAgIGDPpgvFFuMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNVBAYT
+MIIDxTCCAq2gAwIBAgIGDftmzJ9uMA0GCSqGSIb3DQEBCwUAMGgxCzAJBgNVBAYT
Ak5OMTEwLwYDVQQKDChFZGVsIEN1cmwgQXJjdGljIElsbHVkaXVtIFJlc2VhcmNo
IENsb3VkMSYwJAYDVQQDDB1Ob3J0aGVybiBOb3doZXJlIFRydXN0IEFuY2hvcjAe
-Fw0xNTAzMjExNTA3MTFaFw0yMzA2MDcxNTA3MTFaMFQxCzAJBgNVBAYTAk5OMTEw
+Fw0xODA5MTkwNzE0MjNaFw0yNjEyMDYwNzE0MjNaMFQxCzAJBgNVBAYTAk5OMTEw
LwYDVQQKDChFZGVsIEN1cmwgQXJjdGljIElsbHVkaXVtIFJlc2VhcmNoIENsb3Vk
-MRIwEAYDVQQDDAlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB
-AOPHUvt9ArGnC0wtpiqwV2teC/meS+fQrFVDR/qx4PywYzCEMfWVRJCatyIBb8cX
-Fr5aGe5HNZClXie6hkc7xWPS8sah26y+sS9MwpiGGXLV+RJFCbwj4gDrTbqZcbVK
-+0mMTfMLTs9Ie8gGN5I1/7tP6pivE6yozZ+n4HjbFbw7AgMBAAGjgYgwgYUwFgYD
-VR0RBA8wDYILbG9jYWxob3N0AGgwCwYDVR0PBAQDAgOoMBMGA1UdJQQMMAoGCCsG
-AQUFBwMBMB0GA1UdDgQWBBQj187YstD4jjyCJmzx9SqKSJBYZjAfBgNVHSMEGDAW
-gBQSyrpLRgSndYos6A5UlLwSZaZ7zjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBBQUA
-A4IBAQAouXfqSo3WpftyW9bNYEAzVr/dI/+/6C4QzTCrJKRD2Jhx41lmPji9uPsZ
-GhOPocg5k7WDjWJSqXpbDWlHQFxRTDq+p8lfe5NJIFkjMHzZSt0pLO2W/cu4E/82
-LCfOKMOm0Ni6jDifeP9Ux3YFN0f101WcLBJBgRTKSKK3bQVJK8X1e2Ntb80/9I10
-UQf/4UDVlmDYyDhaFfnF/eFeowKVkEv8ikLecjFyPd2i3xlCyPqodxFn5mSM0P1F
-/fBJjOGF5vUfR8au8nDD6JnQzZ2IazO6uWU99LH00Dx2nBienshiKUOO9y8sEjc5
-AiZOS7AUMIC7Lcz8k9zJi8BpEnE2
+MRIwEAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQC4/mq4ig67NJDPSOfdDSYyZwpOqpxM/etv4biYXbFD1AlPYthNfNYLNpNX
++2ECuY01IJvefaPVDY5EmNSRMaIemoTMAFJLeMNXV2vXJSm/FFAgbxruPPy7vx4f
+zai3/Y2uzHgHwAOG/e3bhsErgVVFSlAH/Y2FpOkp3Lvi1d3dOvhiITww0FqIcWdT
+r3jqfghAMmUWfL/JuvUGHgLy+Lc5yIXAeBTS2f0riww/2oNILyYkNBv6cAdGtAHq
+DczXganxZsVOPX60s7Rko+oP/wFUwYsf6WXV/LxxQ2kuUPQDEqWRlSA23JHrqquP
+MGxmIiDeHbhZ0RaocVVKZv52nJ7pAgMBAAGjgYgwgYUwFgYDVR0RBA8wDYILbG9j
+YWxob3N0AGgwCwYDVR0PBAQDAgOoMBMGA1UdJQQMMAoGCCsGAQUFBwMBMB0GA1Ud
+DgQWBBQZ0F2qD+Bo7+BiZSDTpbcalJCpJjAfBgNVHSMEGDAWgBQSyrpLRgSndYos
+6A5UlLwSZaZ7zjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBNXOaR4jVI
+qoSzRZe9XDbnN9FeMxcqwVvSGHA99Y9my0mwFO5bS8XdUXUtlBC0XmGRCM81cTa+
+G8HaJt9ji8ssNXSOfJ8SkAmBZai1+uctzDNV9MTtyKyTki0c21xN08p1aMZmg5ih
+awGR++AEWZVqWnqPXVW//yB3Sa0Qvn4SPWAj85TPatEr2YTZVwvBtvstT2TP2Y+K
+sCvSNPy0WLBt8zE2Qjvjbs0Zd01JKZmxQieu2pMM1vu/rcE57Hy5lCdgdeLTPINi
+qGjTznyk6PC2BJOCP49x6mAZc1Au84wJb287xAG2yAqyGYlC9Gp24A5ZxCAK01Dh
+n7GbotLRzWWl
-----END CERTIFICATE-----
diff --git a/tests/certs/Server-localhost0h-sv.pub.der b/tests/certs/Server-localhost0h-sv.pub.der
index 1b079f42..743471b9 100644
--- a/tests/certs/Server-localhost0h-sv.pub.der
+++ b/tests/certs/Server-localhost0h-sv.pub.der
Binary files differ
diff --git a/tests/certs/Server-localhost0h-sv.pub.pem b/tests/certs/Server-localhost0h-sv.pub.pem
index c34cc776..8462ae8b 100644
--- a/tests/certs/Server-localhost0h-sv.pub.pem
+++ b/tests/certs/Server-localhost0h-sv.pub.pem
@@ -1,6 +1,9 @@
-----BEGIN PUBLIC KEY-----
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjx1L7fQKxpwtMLaYqsFdrXgv5
-nkvn0KxVQ0f6seD8sGMwhDH1lUSQmrciAW/HFxa+WhnuRzWQpV4nuoZHO8Vj0vLG
-odusvrEvTMKYhhly1fkSRQm8I+IA6026mXG1SvtJjE3zC07PSHvIBjeSNf+7T+qY
-rxOsqM2fp+B42xW8OwIDAQAB
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuP5quIoOuzSQz0jn3Q0m
+MmcKTqqcTP3rb+G4mF2xQ9QJT2LYTXzWCzaTV/thArmNNSCb3n2j1Q2ORJjUkTGi
+HpqEzABSS3jDV1dr1yUpvxRQIG8a7jz8u78eH82ot/2Nrsx4B8ADhv3t24bBK4FV
+RUpQB/2NhaTpKdy74tXd3Tr4YiE8MNBaiHFnU6946n4IQDJlFny/ybr1Bh4C8vi3
+OciFwHgU0tn9K4sMP9qDSC8mJDQb+nAHRrQB6g3M14Gp8WbFTj1+tLO0ZKPqD/8B
+VMGLH+ll1fy8cUNpLlD0AxKlkZUgNtyR66qrjzBsZiIg3h24WdEWqHFVSmb+dpye
+6QIDAQAB
-----END PUBLIC KEY-----
diff --git a/tests/certs/scripts/Makefile.am b/tests/certs/scripts/Makefile.am
index db4a90f5..1db62220 100644
--- a/tests/certs/scripts/Makefile.am
+++ b/tests/certs/scripts/Makefile.am
@@ -26,4 +26,3 @@ SCRIPTFILES = \
genserv.sh
EXTRA_DIST = $(SCRIPTFILES)
-
diff --git a/tests/certs/scripts/genroot.sh b/tests/certs/scripts/genroot.sh
index 4d2118aa..f66fc655 100755
--- a/tests/certs/scripts/genroot.sh
+++ b/tests/certs/scripts/genroot.sh
@@ -17,22 +17,24 @@ cd $HOME
KEYSIZE=2048
DURATION=6000
+# The -sha256 option was introduced in OpenSSL 1.0.1
+DIGESTALGO=-sha256
PREFIX=$1
if [ ".$PREFIX" = . ] ; then
- echo No configuration prefix
- NOTOK=1
+ echo No configuration prefix
+ NOTOK=1
else
- if [ ! -f $PREFIX-ca.prm ] ; then
- echo No configuration file $PREFIX-ca.prm
- NOTOK=1
- fi
+ if [ ! -f $PREFIX-ca.prm ] ; then
+ echo No configuration file $PREFIX-ca.prm
+ NOTOK=1
+ fi
fi
if [ ".$NOTOK" != . ] ; then
- echo "Sorry, I can't do that for you."
- $USAGE
- exit
+ echo "Sorry, I can't do that for you."
+ $USAGE
+ exit
fi
GETSERIAL="\$t = time ;\$d = \$t . substr(\$t+$$ ,-4,4)-1;print \$d"
@@ -46,9 +48,9 @@ openssl genrsa -out $PREFIX-ca.key $KEYSIZE -passout pass:secret
echo "openssl req -config $PREFIX-ca.prm -new -key $PREFIX-ca.key -out $PREFIX-ca.csr"
$OPENSSL req -config $PREFIX-ca.prm -new -key $PREFIX-ca.key -out $PREFIX-ca.csr -passin pass:secret
-echo "openssl x509 -set_serial $SERIAL -extfile $PREFIX-ca.prm -days $DURATION -req -signkey $PREFIX-ca.key -in $PREFIX-ca.csr -out $PREFIX-$SERIAL.ca-cacert -sha1 "
+echo "openssl x509 -set_serial $SERIAL -extfile $PREFIX-ca.prm -days $DURATION -req -signkey $PREFIX-ca.key -in $PREFIX-ca.csr -out $PREFIX-$SERIAL.ca-cacert $DIGESTALGO "
-$OPENSSL x509 -set_serial $SERIAL -extfile $PREFIX-ca.prm -days $DURATION -req -signkey $PREFIX-ca.key -in $PREFIX-ca.csr -out $PREFIX-$SERIAL-ca.cacert -sha1
+$OPENSSL x509 -set_serial $SERIAL -extfile $PREFIX-ca.prm -days $DURATION -req -signkey $PREFIX-ca.key -in $PREFIX-ca.csr -out $PREFIX-$SERIAL-ca.cacert $DIGESTALGO
echo "openssl x509 -text -in $PREFIX-$SERIAL-ca.cacert -nameopt multiline > $PREFIX-ca.cacert "
$OPENSSL x509 -text -in $PREFIX-$SERIAL-ca.cacert -nameopt multiline > $PREFIX-ca.cacert
diff --git a/tests/certs/scripts/genserv.sh b/tests/certs/scripts/genserv.sh
index 50bac011..f0f44032 100755
--- a/tests/certs/scripts/genserv.sh
+++ b/tests/certs/scripts/genserv.sh
@@ -15,8 +15,10 @@ USAGE="echo Usage is genserv.sh <prefix> <caprefix>"
HOME=`pwd`
cd $HOME
-KEYSIZE=1024
+KEYSIZE=2048
DURATION=3000
+# The -sha256 option was introduced in OpenSSL 1.0.1
+DIGESTALGO=-sha256
REQ=YES
P12=NO
@@ -24,39 +26,39 @@ DHP=NO
PREFIX=$1
if [ ".$PREFIX" = . ] ; then
- echo No configuration prefix
- NOTOK=1
+ echo No configuration prefix
+ NOTOK=1
else
- if [ ! -f $PREFIX-sv.prm ] ; then
- echo No configuration file $PREFIX-sv.prm
- NOTOK=1
- fi
+ if [ ! -f $PREFIX-sv.prm ] ; then
+ echo No configuration file $PREFIX-sv.prm
+ NOTOK=1
+ fi
fi
CAPREFIX=$2
if [ ".$CAPREFIX" = . ] ; then
- echo No CA prefix
- NOTOK=1
+ echo No CA prefix
+ NOTOK=1
else
- if [ ! -f $CAPREFIX-ca.cacert ] ; then
- echo No CA certificate file $CAPREFIX-ca.caert
- NOTOK=1
- fi
- if [ ! -f $CAPREFIX-ca.key ] ; then
- echo No $CAPREFIX key
- NOTOK=1
- fi
+ if [ ! -f $CAPREFIX-ca.cacert ] ; then
+ echo No CA certificate file $CAPREFIX-ca.caert
+ NOTOK=1
+ fi
+ if [ ! -f $CAPREFIX-ca.key ] ; then
+ echo No $CAPREFIX key
+ NOTOK=1
+ fi
fi
if [ ".$NOTOK" != . ] ; then
- echo "Sorry, I can't do that for you."
- $USAGE
- exit
+ echo "Sorry, I can't do that for you."
+ $USAGE
+ exit
fi
if [ ".$SERIAL" = . ] ; then
- GETSERIAL="\$t = time ;\$d = \$t . substr(\$t+$$ ,-4,4)-1;print \$d"
- SERIAL=`/usr/bin/env perl -e "$GETSERIAL"`
+ GETSERIAL="\$t = time ;\$d = \$t . substr(\$t+$$ ,-4,4)-1;print \$d"
+ SERIAL=`/usr/bin/env perl -e "$GETSERIAL"`
fi
echo SERIAL=$SERIAL PREFIX=$PREFIX CAPREFIX=$CAPREFIX DURATION=$DURATION KEYSIZE=$KEYSIZE
@@ -81,9 +83,9 @@ $OPENSSL rsa -in $PREFIX-sv.key -pubout -outform DER -out $PREFIX-sv.pub.der
echo "openssl rsa -in $PREFIX-sv.key -pubout -outform PEM -out $PREFIX-sv.pub.pem"
$OPENSSL rsa -in $PREFIX-sv.key -pubout -outform PEM -out $PREFIX-sv.pub.pem
-echo "openssl x509 -set_serial $SERIAL -extfile $PREFIX-sv.prm -days $DURATION -CA $CAPREFIX-ca.cacert -CAkey $CAPREFIX-ca.key -in $PREFIX-sv.csr -req -text -nameopt multiline -sha1 > $PREFIX-sv.crt "
+echo "openssl x509 -set_serial $SERIAL -extfile $PREFIX-sv.prm -days $DURATION -CA $CAPREFIX-ca.cacert -CAkey $CAPREFIX-ca.key -in $PREFIX-sv.csr -req -text -nameopt multiline $DIGESTALGO > $PREFIX-sv.crt "
-$OPENSSL x509 -set_serial $SERIAL -extfile $PREFIX-sv.prm -days $DURATION -CA $CAPREFIX-ca.cacert -CAkey $CAPREFIX-ca.key -in $PREFIX-sv.csr -req -text -nameopt multiline -sha1 > $PREFIX-sv.crt
+$OPENSSL x509 -set_serial $SERIAL -extfile $PREFIX-sv.prm -days $DURATION -CA $CAPREFIX-ca.cacert -CAkey $CAPREFIX-ca.key -in $PREFIX-sv.csr -req -text -nameopt multiline $DIGESTALGO > $PREFIX-sv.crt
if [ "$P12." = YES. ] ; then
@@ -114,5 +116,3 @@ cat $PREFIX-sv.prm $PREFIX-sv.key $PREFIX-sv.crt $PREFIX-sv.dhp >$PREFIX-sv.pem
chmod o-r $PREFIX-sv.prm
echo "$PREFIX-sv.pem done"
-
-
diff --git a/tests/data/DISABLED b/tests/data/DISABLED
index 69eeec50..61bdf135 100644
--- a/tests/data/DISABLED
+++ b/tests/data/DISABLED
@@ -20,3 +20,11 @@
1903
# fnmatch differences are just too common to make testing them sensible
1307
+# Pipelining is deprecated
+530
+536
+584
+1900
+1901
+1902
+2033
diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc
index e0457486..35c7aa4f 100644
--- a/tests/data/Makefile.inc
+++ b/tests/data/Makefile.inc
@@ -93,7 +93,7 @@ test809 test810 test811 test812 test813 test814 test815 test816 test817 \
test818 test819 test820 test821 test822 test823 test824 test825 test826 \
test827 test828 test829 test830 test831 test832 test833 test834 test835 \
test836 test837 test838 test839 test840 test841 test842 test843 test844 \
-test845 test846 \
+test845 test846 test847 \
\
test850 test851 test852 test853 test854 test855 test856 test857 test858 \
test859 test860 test861 test862 test863 test864 test865 test866 test867 \
@@ -178,9 +178,13 @@ test1533 test1534 test1535 test1536 test1537 test1538 \
test1540 \
test1550 test1551 test1552 test1553 test1554 test1555 test1556 test1557 \
\
+test1560 \
+\
test1590 \
test1600 test1601 test1602 test1603 test1604 test1605 test1606 test1607 \
-test1608 test1609 \
+test1608 test1609 test1620 \
+\
+test1650 test1651 \
\
test1700 test1701 test1702 \
\
@@ -197,8 +201,8 @@ test2040 test2041 test2042 test2043 test2044 test2045 test2046 test2047 \
test2048 test2049 test2050 test2051 test2052 test2053 test2054 test2055 \
test2056 test2057 test2058 test2059 test2060 test2061 test2062 test2063 \
test2064 test2065 test2066 test2067 test2068 test2069 \
-\
-test2070 test2071 test2072 test2073 \
-test2074 test2075 \
+test2070 test2071 test2072 test2073 test2074 test2075 \
+test2080 \
+test2100 \
\
test3000 test3001
diff --git a/tests/data/test1016 b/tests/data/test1016
index b404cacb..4927f9ea 100644
--- a/tests/data/test1016
+++ b/tests/data/test1016
@@ -22,7 +22,7 @@ file
<name>
X-Y range on a file:// URL to stdout
</name>
- <command>
+<command option="no-include">
-r 1-4 file://localhost/%PWD/log/test1016.txt
</command>
<file name="log/test1016.txt">
diff --git a/tests/data/test1017 b/tests/data/test1017
index 6fbc38ab..cfdd80f9 100644
--- a/tests/data/test1017
+++ b/tests/data/test1017
@@ -23,7 +23,7 @@ file
<name>
0-Y range on a file:// URL to stdout
</name>
- <command>
+<command option="no-include">
-r 0-3 file://localhost/%PWD/log/test1017.txt
</command>
<file name="log/test1017.txt">
diff --git a/tests/data/test1018 b/tests/data/test1018
index 28a7027d..57487014 100644
--- a/tests/data/test1018
+++ b/tests/data/test1018
@@ -22,7 +22,7 @@ file
<name>
X-X range on a file:// URL to stdout
</name>
- <command>
+<command option="no-include">
-r 4-4 file://localhost/%PWD/log/test1018.txt
</command>
<file name="log/test1018.txt">
diff --git a/tests/data/test1019 b/tests/data/test1019
index 4d9872a2..054e38d5 100644
--- a/tests/data/test1019
+++ b/tests/data/test1019
@@ -23,7 +23,7 @@ file
<name>
X- range on a file:// URL to stdout
</name>
- <command>
+<command option="no-include">
-r 7- file://localhost/%PWD/log/test1019.txt
</command>
<file name="log/test1019.txt">
diff --git a/tests/data/test1020 b/tests/data/test1020
index 735871d6..8e03a175 100644
--- a/tests/data/test1020
+++ b/tests/data/test1020
@@ -23,7 +23,7 @@ file
<name>
-Y range on a file:// URL to stdout
</name>
- <command>
+<command option="no-include">
-r -9 file://localhost/%PWD/log/test1020.txt
</command>
<file name="log/test1020.txt">
@@ -39,4 +39,3 @@ file
</stdout>
</verify>
</testcase>
-
diff --git a/tests/data/test1029 b/tests/data/test1029
index 2ffc7c64..c77209ca 100644
--- a/tests/data/test1029
+++ b/tests/data/test1029
@@ -29,7 +29,7 @@ http
<name>
HTTP Location: and 'redirect_url' check
</name>
- <command>
+<command>
http://%HOSTIP:%HTTPPORT/we/want/our/1029 -w '%{redirect_url}\n'
</command>
</client>
diff --git a/tests/data/test1135 b/tests/data/test1135
index 6a80ddf6..3591a543 100644
--- a/tests/data/test1135
+++ b/tests/data/test1135
@@ -16,7 +16,7 @@ none
# The VMS and OS/400 builds extract the CURL_EXTERN protos and use in
# the build. We break binary compatibility by changing order. Only add
# new entries last or bump the SONAME.
-#
+#
<name>
Verify CURL_EXTERN order
</name>
@@ -75,6 +75,7 @@ CURL_EXTERN CURL *curl_easy_duphandle(CURL *curl);
CURL_EXTERN void curl_easy_reset(CURL *curl);
CURL_EXTERN CURLcode curl_easy_recv(CURL *curl, void *buffer, size_t buflen,
CURL_EXTERN CURLcode curl_easy_send(CURL *curl, const void *buffer,
+CURL_EXTERN CURLcode curl_easy_upkeep(CURL *curl);
CURL_EXTERN int curl_mprintf(const char *format, ...);
CURL_EXTERN int curl_mfprintf(FILE *fd, const char *format, ...);
CURL_EXTERN int curl_msprintf(char *buffer, const char *format, ...);
diff --git a/tests/data/test1146 b/tests/data/test1146
index 43f33b79..636748ee 100644
--- a/tests/data/test1146
+++ b/tests/data/test1146
@@ -24,7 +24,7 @@ file
<name>
--proto-default file
</name>
-<command>
+<command option="no-include">
--proto-default file %PWD/log/test1146.txt
</command>
<file name="log/test1146.txt">
diff --git a/tests/data/test1208 b/tests/data/test1208
index b4545b56..055aa932 100644
--- a/tests/data/test1208
+++ b/tests/data/test1208
@@ -40,7 +40,7 @@ s/^EPRT \|1\|(.*)/EPRT \|1\|/
# This test doesn't send a QUIT because the main state machine in multi.c
# triggers the timeout and sets the CURLE_OPERATION_TIMEDOUT error (28) for
-# which the FTP disconect code generically has to assume could mean the
+# which the FTP disconnect code generically has to assume could mean the
# control the connection and thus it cannot send any command.
<protocol>
USER anonymous
diff --git a/tests/data/test1220 b/tests/data/test1220
index 959abbf7..6752eb58 100644
--- a/tests/data/test1220
+++ b/tests/data/test1220
@@ -20,7 +20,7 @@ file
<name>
file:// URLs with query string
</name>
- <command>
+<command option="no-include">
file://localhost/%PWD/log/test1220.txt?a_query=foobar#afragment
</command>
<file name="log/test1220.txt">
diff --git a/tests/data/test1299 b/tests/data/test1299
index 5ed92da5..51e0e798 100644
--- a/tests/data/test1299
+++ b/tests/data/test1299
@@ -34,7 +34,7 @@ http
Send "OPTIONS *" with --request-target
</name>
<command>
---request-target "*" -X OPTIONS http://%HOSTIP:%HTTPPORT/ -H "Testno: 1299"
+--request-target '*' -X OPTIONS http://%HOSTIP:%HTTPPORT/ -H "Testno: 1299"
</command>
</client>
diff --git a/tests/data/test1321 b/tests/data/test1321
index ee1b4785..72a52c93 100644
--- a/tests/data/test1321
+++ b/tests/data/test1321
@@ -51,7 +51,7 @@ http
IMAP FETCH tunneled through HTTP proxy
</name>
<command>
-'imap://imap.1321:%IMAPPORT/1321/;UID=1' -u user:secret -p -x %HOSTIP:%PROXYPORT
+'imap://imap.1321:%IMAPPORT/1321/;MAILINDEX=1' -u user:secret -p -x %HOSTIP:%PROXYPORT
</command>
</client>
diff --git a/tests/data/test1325 b/tests/data/test1325
index 9f5ee58e..6da1cbc6 100644
--- a/tests/data/test1325
+++ b/tests/data/test1325
@@ -1,5 +1,5 @@
<testcase>
-# http://greenbytes.de/tech/webdav/draft-reschke-http-status-308-latest.html
+# https://greenbytes.de/tech/webdav/draft-reschke-http-status-308-latest.html
<info>
<keywords>
HTTP
diff --git a/tests/data/test1331 b/tests/data/test1331
index 3299df46..6b582352 100644
--- a/tests/data/test1331
+++ b/tests/data/test1331
@@ -1,7 +1,7 @@
<testcase>
# Test case inspired by this question on stackoverflow:
#
-# http://stackoverflow.com/questions/10017165/use-libcurl-with-bluecoat-cookie-proxy
+# https://stackoverflow.com/questions/10017165/use-libcurl-with-bluecoat-cookie-proxy
#
<info>
<keywords>
diff --git a/tests/data/test1408 b/tests/data/test1408
index 54d5e777..bf775ed3 100644
--- a/tests/data/test1408
+++ b/tests/data/test1408
@@ -71,4 +71,3 @@ Cookie: time=1
</protocol>
</verify>
</testcase>
-
diff --git a/tests/data/test1420 b/tests/data/test1420
index a5e1c521..081ac6bb 100644
--- a/tests/data/test1420
+++ b/tests/data/test1420
@@ -36,7 +36,7 @@ imap
SSL_CERT_FILE=
</setenv>
<command>
-'imap://%HOSTIP:%IMAPPORT/1420/;UID=1' -u user:secret --libcurl log/test1420.c
+'imap://%HOSTIP:%IMAPPORT/1420/;MAILINDEX=1' -u user:secret --libcurl log/test1420.c
</command>
</client>
@@ -64,7 +64,7 @@ int main(int argc, char *argv[])
hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_BUFFERSIZE, 102400L);
- curl_easy_setopt(hnd, CURLOPT_URL, "imap://%HOSTIP:%IMAPPORT/1420/;UID=1");
+ curl_easy_setopt(hnd, CURLOPT_URL, "imap://%HOSTIP:%IMAPPORT/1420/;MAILINDEX=1");
curl_easy_setopt(hnd, CURLOPT_USERPWD, "user:secret");
curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L);
curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L);
diff --git a/tests/data/test1452 b/tests/data/test1452
index dbbb7d6c..76b0eba0 100644
--- a/tests/data/test1452
+++ b/tests/data/test1452
@@ -3,6 +3,7 @@
<keywords>
TELNET
UPLOAD
+flaky
</keywords>
</info>
diff --git a/tests/data/test1538 b/tests/data/test1538
index b084dac6..98d6731e 100644
--- a/tests/data/test1538
+++ b/tests/data/test1538
@@ -83,7 +83,7 @@ e47: Number of redirects hit maximum amount
e48: An unknown option was passed in to libcurl
e49: Malformed telnet option
e50: Unknown error
-e51: SSL peer certificate or SSH remote key was not OK
+e51: Unknown error
e52: Server returned nothing (no headers, no data)
e53: SSL crypto engine not found
e54: Can not set SSL crypto engine as default
@@ -92,7 +92,7 @@ e56: Failure when receiving data from the peer
e57: Unknown error
e58: Problem with the local SSL certificate
e59: Couldn't use specified SSL cipher
-e60: Peer certificate cannot be authenticated with given CA certificates
+e60: SSL peer certificate or SSH remote key was not OK
e61: Unrecognized or bad HTTP Content or Transfer-Encoding
e62: Invalid LDAP URL
e63: Maximum file size exceeded
diff --git a/tests/data/test1552 b/tests/data/test1552
index c5b1b572..48e55cb5 100644
--- a/tests/data/test1552
+++ b/tests/data/test1552
@@ -39,7 +39,7 @@ IMAP multi transfer error without curl_multi_remove_handle
lib1552
</tool>
<command>
-'imap://%HOSTIP:%IMAPPORT/1552/;UID=1'
+'imap://%HOSTIP:%IMAPPORT/1552/;MAILINDEX=1'
</command>
</client>
diff --git a/tests/data/test1560 b/tests/data/test1560
new file mode 100644
index 00000000..4b6c97a5
--- /dev/null
+++ b/tests/data/test1560
@@ -0,0 +1,34 @@
+<testcase>
+<info>
+<keywords>
+unittest
+URL API
+</keywords>
+</info>
+
+#
+# Client-side
+<client>
+<server>
+none
+</server>
+<features>
+file
+https
+http
+pop3
+smtp
+imap
+ldap
+dict
+ftp
+</features>
+ <name>
+URL API
+ </name>
+<tool>
+lib1560
+</tool>
+</client>
+
+</testcase>
diff --git a/tests/data/test1620 b/tests/data/test1620
new file mode 100644
index 00000000..83b08c7a
--- /dev/null
+++ b/tests/data/test1620
@@ -0,0 +1,26 @@
+<testcase>
+<info>
+<keywords>
+unittest
+URL
+</keywords>
+</info>
+
+#
+# Client-side
+<client>
+<server>
+none
+</server>
+<features>
+unittest
+</features>
+ <name>
+unit tests for url.c
+ </name>
+<tool>
+unit1620
+</tool>
+</client>
+
+</testcase>
diff --git a/tests/data/test1650 b/tests/data/test1650
new file mode 100644
index 00000000..13ca023e
--- /dev/null
+++ b/tests/data/test1650
@@ -0,0 +1,27 @@
+<testcase>
+<info>
+<keywords>
+unittest
+DOH
+</keywords>
+</info>
+
+#
+# Client-side
+<client>
+<server>
+none
+</server>
+<features>
+unittest
+http/2
+</features>
+ <name>
+DOH
+ </name>
+<tool>
+unit1650
+</tool>
+</client>
+
+</testcase>
diff --git a/tests/data/test1651 b/tests/data/test1651
new file mode 100644
index 00000000..28a9b714
--- /dev/null
+++ b/tests/data/test1651
@@ -0,0 +1,26 @@
+<testcase>
+<info>
+<keywords>
+unittest
+x509
+</keywords>
+</info>
+
+#
+# Client-side
+<client>
+<server>
+none
+</server>
+<features>
+unittest
+</features>
+ <name>
+x509 parsing
+ </name>
+<tool>
+unit1651
+</tool>
+</client>
+
+</testcase>
diff --git a/tests/data/test200 b/tests/data/test200
index 8be1de0c..c27f7c09 100644
--- a/tests/data/test200
+++ b/tests/data/test200
@@ -23,7 +23,7 @@ file
<name>
basic file:// file
</name>
- <command>
+<command option="no-include">
file://localhost/%PWD/log/test200.txt
</command>
<file name="log/test200.txt">
diff --git a/tests/data/test2000 b/tests/data/test2000
index d3edb16e..db1ba133 100644
--- a/tests/data/test2000
+++ b/tests/data/test2000
@@ -31,7 +31,7 @@ file
<name>
FTP RETR followed by FILE
</name>
- <command>
+<command option="no-include">
ftp://%HOSTIP:%FTPPORT/2000 file://localhost/%PWD/log/test2000.txt
</command>
<file name="log/test2000.txt">
diff --git a/tests/data/test2001 b/tests/data/test2001
index 68c0df78..88a258eb 100644
--- a/tests/data/test2001
+++ b/tests/data/test2001
@@ -48,7 +48,7 @@ file
<name>
HTTP GET followed by FTP RETR followed by FILE
</name>
- <command>
+<command option="no-include">
http://%HOSTIP:%HTTPPORT/20010001 ftp://%HOSTIP:%FTPPORT/20010002 file://localhost/%PWD/log/test2001.txt
</command>
<file name="log/test2001.txt">
@@ -81,17 +81,6 @@ 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
diff --git a/tests/data/test2002 b/tests/data/test2002
index db96bfea..6dd2f931 100644
--- a/tests/data/test2002
+++ b/tests/data/test2002
@@ -57,7 +57,7 @@ tftp
<name>
HTTP GET followed by FTP RETR followed by FILE followed by TFTP RRQ
</name>
- <command>
+<command option="no-include">
http://%HOSTIP:%HTTPPORT/20020001 ftp://%HOSTIP:%FTPPORT/20020002 file://localhost/%PWD/log/test2002.txt tftp://%HOSTIP:%TFTPPORT//20020003
</command>
<file name="log/test2002.txt">
@@ -96,17 +96,6 @@ filename: /20020003
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
diff --git a/tests/data/test2003 b/tests/data/test2003
index 59a743f8..09bee8e2 100644
--- a/tests/data/test2003
+++ b/tests/data/test2003
@@ -57,8 +57,8 @@ tftp
<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 option="no-include">
+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
@@ -109,17 +109,6 @@ 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
@@ -151,17 +140,6 @@ data
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>
diff --git a/tests/data/test2004 b/tests/data/test2004
index 4773f690..b17890b0 100644
--- a/tests/data/test2004
+++ b/tests/data/test2004
@@ -29,7 +29,7 @@ sftp
<name>
TFTP RRQ followed by SFTP retrieval followed by FILE followed by SCP retrieval then again in reverse order
</name>
- <command>
+<command option="no-include">
--key curl_client_key --pubkey curl_client_key.pub -u %USER: tftp://%HOSTIP:%TFTPPORT//2004 sftp://%HOSTIP:%SSHPORT%POSIX_PWD/log/test2004.txt file://localhost/%PWD/log/test2004.txt scp://%HOSTIP:%SSHPORT%POSIX_PWD/log/test2004.txt file://localhost/%PWD/log/test2004.txt sftp://%HOSTIP:%SSHPORT%POSIX_PWD/log/test2004.txt tftp://%HOSTIP:%TFTPPORT//2004 --insecure
</command>
<file name="log/test2004.txt">
diff --git a/tests/data/test2006 b/tests/data/test2006
index e25556fc..3acbdaee 100644
--- a/tests/data/test2006
+++ b/tests/data/test2006
@@ -4,6 +4,7 @@
Metalink
HTTP
HTTP GET
+FILE
</keywords>
</info>
@@ -85,6 +86,10 @@ Accept: */*
Some data delivered from an HTTP resource
</file1>
<file2 name="log/heads2006">
+Content-Length: 496
+Accept-ranges: bytes
+
+
HTTP/1.1 200 OK
Date: Thu, 21 Jun 2012 14:49:01 GMT
Server: test-server/fake
@@ -105,6 +110,9 @@ Metalink: fetching (log/download2006) from (http://%HOSTIP:%HTTPPORT/2006) OK
Metalink: validating (log/download2006)...
Metalink: validating (log/download2006) [sha-256] OK
</file4>
+<stripfile2>
+s/Last-Modified:.*//
+</stripfile2>
<stripfile4>
$_ = '' if (($_ !~ /^Metalink: /) && ($_ !~ /error/i) && ($_ !~ /warn/i))
</stripfile4>
diff --git a/tests/data/test2007 b/tests/data/test2007
index cc4bd8c3..b169c490 100644
--- a/tests/data/test2007
+++ b/tests/data/test2007
@@ -5,6 +5,7 @@ Metalink
HTTP
HTTP GET
-J
+FILE
</keywords>
</info>
@@ -85,7 +86,14 @@ Accept: */*
<file1 name="log/download2007">
Something delivered from an HTTP resource
</file1>
+<stripfile2>
+s/Last-Modified:.*//
+</stripfile2>
<file2 name="log/heads2007">
+Content-Length: 496
+Accept-ranges: bytes
+
+
HTTP/1.1 200 OK
Date: Thu, 21 Jun 2012 14:50:02 GMT
Server: test-server/fake
diff --git a/tests/data/test2008 b/tests/data/test2008
index 58437926..012f221c 100644
--- a/tests/data/test2008
+++ b/tests/data/test2008
@@ -4,6 +4,7 @@
Metalink
HTTP
HTTP GET
+FILE
</keywords>
</info>
@@ -77,7 +78,14 @@ Accept: */*
<file1 name="log/download2008">
Some stuff delivered from an HTTP resource
</file1>
+<stripfile2>
+s/Last-Modified:.*//
+</stripfile2>
<file2 name="log/heads2008">
+Content-Length: 496
+Accept-ranges: bytes
+
+
HTTP/1.1 200 OK
Date: Thu, 21 Jun 2012 15:23:48 GMT
Server: test-server/fake
diff --git a/tests/data/test2009 b/tests/data/test2009
index 84482ce8..b0e5c6c6 100644
--- a/tests/data/test2009
+++ b/tests/data/test2009
@@ -5,6 +5,7 @@ Metalink
HTTP
HTTP GET
-J
+FILE
</keywords>
</info>
@@ -78,7 +79,14 @@ Accept: */*
<file1 name="log/download2009">
Some contents delivered from an HTTP resource
</file1>
+<stripfile2>
+s/Last-Modified:.*//
+</stripfile2>
<file2 name="log/heads2009">
+Content-Length: 496
+Accept-ranges: bytes
+
+
HTTP/1.1 200 OK
Date: Thu, 21 Jun 2012 16:27:17 GMT
Server: test-server/fake
diff --git a/tests/data/test2010 b/tests/data/test2010
index 91a83f4d..33bb309e 100644
--- a/tests/data/test2010
+++ b/tests/data/test2010
@@ -4,6 +4,7 @@
Metalink
HTTP
HTTP GET
+FILE
</keywords>
</info>
@@ -77,7 +78,14 @@ Accept: */*
<file1 name="log/download2010">
Contents delivered from an HTTP resource
</file1>
+<stripfile2>
+s/Last-Modified:.*//
+</stripfile2>
<file2 name="log/heads2010">
+Content-Length: 496
+Accept-ranges: bytes
+
+
HTTP/1.1 200 OK
Date: Thu, 21 Jun 2012 17:37:27 GMT
Server: test-server/fake
diff --git a/tests/data/test202 b/tests/data/test202
index f863ec50..0b324b1d 100644
--- a/tests/data/test202
+++ b/tests/data/test202
@@ -19,7 +19,7 @@ file
<name>
two file:// URLs to stdout
</name>
- <command>
+<command option="no-include">
file://localhost/%PWD/log/test202.txt FILE://localhost/%PWD/log/test202.txt
</command>
<file name="log/test202.txt">
diff --git a/tests/data/test203 b/tests/data/test203
index 366cc2cd..39384265 100644
--- a/tests/data/test203
+++ b/tests/data/test203
@@ -24,7 +24,7 @@ file
<name>
file:/path URL with a single slash
</name>
- <command>
+<command option="no-include">
file:%PWD/log/test203.txt
</command>
<file name="log/test203.txt">
diff --git a/tests/data/test204 b/tests/data/test204
index 9cc7b015..0ed94512 100644
--- a/tests/data/test204
+++ b/tests/data/test204
@@ -15,7 +15,7 @@ file
<name>
"upload" with file://
</name>
- <command>
+<command option="no-include">
file://localhost/%PWD/log/result204.txt -T log/upload204.txt
</command>
<file name="log/upload204.txt">
diff --git a/tests/data/test2041 b/tests/data/test2041
index dcad2fdc..50018e40 100644
--- a/tests/data/test2041
+++ b/tests/data/test2041
@@ -34,7 +34,7 @@ https Server-localhost-sv.pem
simple HTTPS GET with base64-sha256 public key pinning
</name>
<command>
---cacert %SRCDIR/certs/EdelCurlRoot-ca.crt --pinnedpubkey sha256//pyh+fICi9M8MFEZvherIT0cs3MN+cXNGoU9Giwyx1so= https://localhost:%HTTPSPORT/2041
+--cacert %SRCDIR/certs/EdelCurlRoot-ca.crt --pinnedpubkey sha256//+JYNkp2GTGRgrvZMUkOxbFJQQqYpwNE6toGmBjz00D8= https://localhost:%HTTPSPORT/2041
</command>
# Ensure that we're running on localhost because we're checking the host name
<precheck>
diff --git a/tests/data/test205 b/tests/data/test205
index 4af93f64..f83c5315 100644
--- a/tests/data/test205
+++ b/tests/data/test205
@@ -16,7 +16,7 @@ file
<name>
"upload" with file://
</name>
- <command>
+<command option="no-include">
file://localhost/%PWD/log/nonexisting/result205.txt -T log/upload205.txt
</command>
<file name="log/upload205.txt">
diff --git a/tests/data/test2070 b/tests/data/test2070
index bc3898ab..655cd8a3 100644
--- a/tests/data/test2070
+++ b/tests/data/test2070
@@ -23,7 +23,7 @@ file
<name>
basic file:// file with no authority
</name>
- <command>
+<command option="no-include">
file:%PWD/log/test2070.txt
</command>
<file name="log/test2070.txt">
diff --git a/tests/data/test2071 b/tests/data/test2071
index 997dfffe..eddfa4df 100644
--- a/tests/data/test2071
+++ b/tests/data/test2071
@@ -23,7 +23,7 @@ file
<name>
basic file:// file with "127.0.0.1" hostname
</name>
- <command>
+<command option="no-include">
file://127.0.0.1/%PWD/log/test2070.txt
</command>
<file name="log/test2070.txt">
diff --git a/tests/data/test2072 b/tests/data/test2072
index cd26f22b..1bab1588 100644
--- a/tests/data/test2072
+++ b/tests/data/test2072
@@ -23,7 +23,7 @@ file
<name>
file:// with unix path resolution behavior for the case of extra slashes
</name>
-<command>
+<command option="no-include">
file:////%PWD/log/test2072.txt
</command>
<precheck>
diff --git a/tests/data/test2080 b/tests/data/test2080
new file mode 100644
index 00000000..47e376ec
--- /dev/null
+++ b/tests/data/test2080
Binary files differ
diff --git a/tests/data/test210 b/tests/data/test210
index e9045675..c6fb7030 100644
--- a/tests/data/test210
+++ b/tests/data/test210
@@ -22,7 +22,7 @@ ftp
<name>
Get two FTP files from the same remote dir: no second CWD
</name>
- <command>
+<command option="no-include">
ftp://%HOSTIP:%FTPPORT/a/path/210 ftp://%HOSTIP:%FTPPORT/a/path/210
</command>
<stdout>
diff --git a/tests/data/test2100 b/tests/data/test2100
new file mode 100644
index 00000000..5a44aa70
--- /dev/null
+++ b/tests/data/test2100
Binary files differ
diff --git a/tests/data/test231 b/tests/data/test231
index 6994957c..3d4bc773 100644
--- a/tests/data/test231
+++ b/tests/data/test231
@@ -22,7 +22,7 @@ file
<name>
file:// with resume
</name>
- <command>
+<command option="no-include">
file://localhost/%PWD/log/test231.txt -C 10
</command>
<file name="log/test231.txt">
diff --git a/tests/data/test288 b/tests/data/test288
index ff4db6a4..9f8f6e12 100644
--- a/tests/data/test288
+++ b/tests/data/test288
@@ -30,7 +30,7 @@ file:// with (unsupported) proxy, authentication and range
<setenv>
all_proxy=http://fake:user@%HOSTIP:%HTTPPORT/
</setenv>
- <command>
+<command option="no-include">
file://localhost/%PWD/log/test288.txt
</command>
<file name="log/test288.txt">
diff --git a/tests/data/test311 b/tests/data/test311
index 0465ed1d..87f4dddc 100644
--- a/tests/data/test311
+++ b/tests/data/test311
@@ -37,7 +37,7 @@ perl -e "print 'Test requires default test server host' if ( '%HOSTIP' ne '127.0
# Verify data after the test has been "shot"
<verify>
<errorcode>
-51
+60
</errorcode>
</verify>
</testcase>
diff --git a/tests/data/test312 b/tests/data/test312
index af4422f4..6a79f59a 100644
--- a/tests/data/test312
+++ b/tests/data/test312
@@ -37,7 +37,7 @@ perl -e "print 'Test requires default test server host' if ( '%HOSTIP' ne '127.0
# Verify data after the test has been "shot"
<verify>
<errorcode>
-51
+60
</errorcode>
</verify>
</testcase>
diff --git a/tests/data/test320 b/tests/data/test320
index 457a11eb..87311d4f 100644
--- a/tests/data/test320
+++ b/tests/data/test320
@@ -62,34 +62,18 @@ simple TLS-SRP HTTPS GET, check user in response
HTTP/1.0 200 OK
Content-type: text/html
-
-<HTML><BODY>
-<CENTER><H1>This is <a href="http://www.gnu.org/software/gnutls">GnuTLS</a></H1></CENTER>
-
-
-
-<h5>If your browser supports session resuming, then you should see the same session ID, when you press the <b>reload</b> button.</h5>
-<p>Connected as user 'jsmith'.</p>
-<P>
-<TABLE border=1><TR><TD></TD></TR>
-<TR><TD>Key Exchange:</TD><TD>SRP</TD></TR>
-<TR><TD>Compression</TD><TD>NULL</TD></TR>
-<TR><TD>Cipher</TD><TD>AES-NNN-CBC</TD></TR>
-<TR><TD>MAC</TD><TD>SHA1</TD></TR>
-<TR><TD>Ciphersuite</TD><TD>SRP_SHA_AES_NNN_CBC_SHA1</TD></TR></p></TABLE>
-<hr><P>Your HTTP header was:<PRE>Host: %HOSTIP:%HTTPTLSPORT
+FINE
User-Agent: curl-test-suite
Accept: */*
-</PRE></P>
-</BODY></HTML>
-
</file>
<stripfile>
-s/^<p>Session ID:.*//
+s/^<p>Connected as user 'jsmith'.*/FINE/
s/Protocol version:.*[0-9]//
s/GNUTLS/GnuTLS/
s/(AES[-_])\d\d\d([-_]CBC)/$1NNN$2/
+s/^<.*\n//
+s/^\n//
</stripfile>
</verify>
diff --git a/tests/data/test324 b/tests/data/test324
index b58d940e..461e54c5 100644
--- a/tests/data/test324
+++ b/tests/data/test324
@@ -26,7 +26,7 @@ TLS-SRP with server cert checking
# Verify data after the test has been "shot"
<verify>
<errorcode>
-51
+60
</errorcode>
</verify>
diff --git a/tests/data/test325 b/tests/data/test325
index 6d5898d4..922f37ba 100644
--- a/tests/data/test325
+++ b/tests/data/test325
@@ -15,7 +15,7 @@ HTTP/1.1 301 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Content-Length: 7
-Location: http://%HOSTIP:%HTTPPORT/325
+Location: http://somewhere/325
MooMoo
</data>
@@ -24,7 +24,7 @@ HTTP/1.1 301 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Content-Length: 7
-Location: http://%HOSTIP:%HTTPPORT/325
+Location: http://somewhere/325
</datacheck>
</reply>
diff --git a/tests/data/test523 b/tests/data/test523
index 9abe0ed2..665211d4 100644
--- a/tests/data/test523
+++ b/tests/data/test523
@@ -39,7 +39,7 @@ HTTP GET with proxy and CURLOPT_PORT
</name>
# first URL then proxy
<command>
-http://www.example.com:999/523 http://%HOSTIP:%HTTPPORT
+http://www.example.com:999/523 http://%HOSTIP:%HTTPPORT
</command>
</client>
@@ -50,7 +50,7 @@ http://www.example.com:999/523 http://%HOSTIP:%HTTPPORT
^User-Agent:.*
</strip>
<protocol>
-GET HTTP://www.example.com:19999/523 HTTP/1.1
+GET http://www.example.com:19999/523 HTTP/1.1
Host: www.example.com:19999
Authorization: Basic eHh4Onl5eQ==
Accept: */*
diff --git a/tests/data/test563 b/tests/data/test563
index cecbedc2..c9df7921 100644
--- a/tests/data/test563
+++ b/tests/data/test563
@@ -47,7 +47,7 @@ ftp_proxy=http://%HOSTIP:%HTTPPORT/
# Verify data after the test has been "shot"
<verify>
<protocol>
-GET FTP://%HOSTIP:%FTPPORT/563;type=A HTTP/1.1
+GET ftp://%HOSTIP:%FTPPORT/563;type=A HTTP/1.1
Host: %HOSTIP:%FTPPORT
Accept: */*
Proxy-Connection: Keep-Alive
diff --git a/tests/data/test567 b/tests/data/test567
index de0f6327..4f91c85f 100644
--- a/tests/data/test567
+++ b/tests/data/test567
@@ -47,4 +47,3 @@ Test-Number: 567
</verify>
</testcase>
-
diff --git a/tests/data/test568 b/tests/data/test568
index 09fa81ce..372866dc 100644
--- a/tests/data/test568
+++ b/tests/data/test568
@@ -114,4 +114,3 @@ CSeq: 4
</verify>
</testcase>
-
diff --git a/tests/data/test569 b/tests/data/test569
index ea6cd0bb..924832c1 100644
--- a/tests/data/test569
+++ b/tests/data/test569
@@ -108,4 +108,3 @@ Got Session ID: [A]
</verify>
</testcase>
-
diff --git a/tests/data/test570 b/tests/data/test570
index 65f32a5b..431c79af 100644
--- a/tests/data/test570
+++ b/tests/data/test570
@@ -74,4 +74,3 @@ Session: asdf
</verify>
</testcase>
-
diff --git a/tests/data/test571 b/tests/data/test571
index 494ac416..842410ad 100644
--- a/tests/data/test571
+++ b/tests/data/test571
@@ -105,4 +105,3 @@ $99
</verify>
</testcase>
-
diff --git a/tests/data/test572 b/tests/data/test572
index 903ded96..7f044478 100644
--- a/tests/data/test572
+++ b/tests/data/test572
@@ -119,4 +119,3 @@ Session: getparams-test
</verify>
</testcase>
-
diff --git a/tests/data/test630 b/tests/data/test630
index bb19590b..ffde8ea5 100644
--- a/tests/data/test630
+++ b/tests/data/test630
@@ -25,7 +25,7 @@ SFTP incorrect host key
# Verify data after the test has been "shot"
<verify>
<errorcode>
-51
+60
</errorcode>
<valgrind>
disable
diff --git a/tests/data/test631 b/tests/data/test631
index 649fb70a..ddb7d280 100644
--- a/tests/data/test631
+++ b/tests/data/test631
@@ -25,7 +25,7 @@ SCP incorrect host key
# Verify data after the test has been "shot"
<verify>
<errorcode>
-51
+60
</errorcode>
<valgrind>
disable
diff --git a/tests/data/test75 b/tests/data/test75
index d8836b95..115963df 100644
--- a/tests/data/test75
+++ b/tests/data/test75
@@ -44,7 +44,9 @@ perl %SRCDIR/libtest/test75.pl http://%HOSTIP:%HTTPPORT/ 22
3
</errorcode>
<stdout mode="text">
-curl: (3) [globbing] bad range in column 47
+curl: (3) bad range in URL position 47:
+http://a-site-never-accessed.example.org/[2-1]
+ ^
</stdout>
</verify>
</testcase>
diff --git a/tests/data/test800 b/tests/data/test800
index 360206b4..6b74da90 100644
--- a/tests/data/test800
+++ b/tests/data/test800
@@ -31,7 +31,7 @@ imap
IMAP FETCH message
</name>
<command>
-'imap://%HOSTIP:%IMAPPORT/800/;UID=1' -u '"user:sec"ret{'
+'imap://%HOSTIP:%IMAPPORT/800/;MAILINDEX=1' -u '"user:sec"ret{'
</command>
</client>
diff --git a/tests/data/test801 b/tests/data/test801
index 0012d3e4..90766f79 100644
--- a/tests/data/test801
+++ b/tests/data/test801
@@ -25,10 +25,10 @@ body
imap
</server>
<name>
-IMAP FETCH message by UID and SECTION
+IMAP FETCH message by MAILINDEX and SECTION
</name>
<command>
-'imap://%HOSTIP:%IMAPPORT/801/;UID=123/;SECTION=1' -u user:secret
+'imap://%HOSTIP:%IMAPPORT/801/;MAILINDEX=123/;SECTION=1' -u user:secret
</command>
</client>
diff --git a/tests/data/test802 b/tests/data/test802
index 17349a89..19206a75 100644
--- a/tests/data/test802
+++ b/tests/data/test802
@@ -29,7 +29,7 @@ imap
IMAP SELECT UIDVALIDITY Success
</name>
<command>
-'imap://%HOSTIP:%IMAPPORT/802;UIDVALIDITY=3857529045/;UID=123/;SECTION=TEXT' -u user:secret
+'imap://%HOSTIP:%IMAPPORT/802;UIDVALIDITY=3857529045/;MAILINDEX=123/;SECTION=TEXT' -u user:secret
</command>
</client>
diff --git a/tests/data/test803 b/tests/data/test803
index 5b8cc9eb..834e4211 100644
--- a/tests/data/test803
+++ b/tests/data/test803
@@ -24,7 +24,7 @@ imap
IMAP SELECT UIDVALIDITY Failure
</name>
<command>
-'imap://%HOSTIP:%IMAPPORT/803;UIDVALIDITY=12345/;UID=123' -u user:secret
+'imap://%HOSTIP:%IMAPPORT/803;UIDVALIDITY=12345/;MAILINDEX=123' -u user:secret
</command>
</client>
diff --git a/tests/data/test804 b/tests/data/test804
index c6dfccf4..90635c22 100644
--- a/tests/data/test804
+++ b/tests/data/test804
@@ -28,7 +28,7 @@ imap
IMAP doesn't perform SELECT if re-using the same mailbox
</name>
<command>
-'imap://%HOSTIP:%IMAPPORT/804/;UID=123/;SECTION=1' 'imap://%HOSTIP:%IMAPPORT/804/;UID=456/;SECTION=2.3' -u user:secret
+'imap://%HOSTIP:%IMAPPORT/804/;MAILINDEX=123/;SECTION=1' 'imap://%HOSTIP:%IMAPPORT/804/;MAILINDEX=456/;SECTION=2.3' -u user:secret
</command>
</client>
diff --git a/tests/data/test819 b/tests/data/test819
index d0aa47ba..b88e3505 100644
--- a/tests/data/test819
+++ b/tests/data/test819
@@ -37,7 +37,7 @@ imap
IMAP plain authentication
</name>
<command>
-'imap://%HOSTIP:%IMAPPORT/819/;UID=1' -u user:secret
+'imap://%HOSTIP:%IMAPPORT/819/;MAILINDEX=1' -u user:secret
</command>
</client>
diff --git a/tests/data/test820 b/tests/data/test820
index f638f1cb..0fe9bf2d 100644
--- a/tests/data/test820
+++ b/tests/data/test820
@@ -37,7 +37,7 @@ imap
IMAP login authentication
</name>
<command>
-'imap://%HOSTIP:%IMAPPORT/820/;UID=1' -u user:secret
+'imap://%HOSTIP:%IMAPPORT/820/;MAILINDEX=1' -u user:secret
</command>
</client>
diff --git a/tests/data/test821 b/tests/data/test821
index aee373b9..6c511c1e 100644
--- a/tests/data/test821
+++ b/tests/data/test821
@@ -40,7 +40,7 @@ crypto
IMAP CRAM-MD5 authentication
</name>
<command>
-'imap://%HOSTIP:%IMAPPORT/821/;UID=1' -u user:secret
+'imap://%HOSTIP:%IMAPPORT/821/;MAILINDEX=1' -u user:secret
</command>
</client>
diff --git a/tests/data/test822 b/tests/data/test822
index a6c0407e..60f0cf1d 100644
--- a/tests/data/test822
+++ b/tests/data/test822
@@ -48,7 +48,7 @@ CURL_GETHOSTNAME=curlhost
LD_PRELOAD=%PWD/libtest/.libs/libhostname.so
</setenv>
<command>
-'imap://%HOSTIP:%IMAPPORT/822/;UID=1' -u testuser:testpass
+'imap://%HOSTIP:%IMAPPORT/822/;MAILINDEX=1' -u testuser:testpass
</command>
<precheck>
chkhostname curlhost
diff --git a/tests/data/test823 b/tests/data/test823
index 25c59ec6..32bd9d18 100644
--- a/tests/data/test823
+++ b/tests/data/test823
@@ -43,7 +43,7 @@ crypto
IMAP DIGEST-MD5 authentication
</name>
<command>
-'imap://%HOSTIP:%IMAPPORT/823/;UID=1' -u user:secret
+'imap://%HOSTIP:%IMAPPORT/823/;MAILINDEX=1' -u user:secret
</command>
</client>
diff --git a/tests/data/test824 b/tests/data/test824
index e646eec7..96c8e87b 100644
--- a/tests/data/test824
+++ b/tests/data/test824
@@ -37,7 +37,7 @@ imap
IMAP OAuth 2.0 (XOAUTH2) authentication
</name>
<command>
-'imap://%HOSTIP:%IMAPPORT/824/;UID=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM
+'imap://%HOSTIP:%IMAPPORT/824/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM
</command>
</client>
diff --git a/tests/data/test825 b/tests/data/test825
index 6532b3ac..b489e95d 100644
--- a/tests/data/test825
+++ b/tests/data/test825
@@ -38,7 +38,7 @@ imap
IMAP plain authentication with initial response
</name>
<command>
-'imap://%HOSTIP:%IMAPPORT/825/;UID=1' -u user:secret
+'imap://%HOSTIP:%IMAPPORT/825/;MAILINDEX=1' -u user:secret
</command>
</client>
diff --git a/tests/data/test826 b/tests/data/test826
index 0f928294..a1125e2f 100644
--- a/tests/data/test826
+++ b/tests/data/test826
@@ -38,7 +38,7 @@ imap
IMAP login authentication with initial response
</name>
<command>
-'imap://%HOSTIP:%IMAPPORT/826/;UID=1' -u user:secret
+'imap://%HOSTIP:%IMAPPORT/826/;MAILINDEX=1' -u user:secret
</command>
</client>
diff --git a/tests/data/test827 b/tests/data/test827
index 5005271e..1329ed23 100644
--- a/tests/data/test827
+++ b/tests/data/test827
@@ -49,7 +49,7 @@ CURL_GETHOSTNAME=curlhost
LD_PRELOAD=%PWD/libtest/.libs/libhostname.so
</setenv>
<command>
-'imap://%HOSTIP:%IMAPPORT/827/;UID=1' -u testuser:testpass
+'imap://%HOSTIP:%IMAPPORT/827/;MAILINDEX=1' -u testuser:testpass
</command>
<precheck>
chkhostname curlhost
diff --git a/tests/data/test828 b/tests/data/test828
index c86516a6..912aeff3 100644
--- a/tests/data/test828
+++ b/tests/data/test828
@@ -38,7 +38,7 @@ imap
IMAP OAuth 2.0 (XOAUTH2) authentication with initial response
</name>
<command>
-'imap://%HOSTIP:%IMAPPORT/828/;UID=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM
+'imap://%HOSTIP:%IMAPPORT/828/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM
</command>
</client>
diff --git a/tests/data/test830 b/tests/data/test830
index 5803bb11..c7812b79 100644
--- a/tests/data/test830
+++ b/tests/data/test830
@@ -33,7 +33,7 @@ crypto
IMAP CRAM-MD5 graceful cancellation
</name>
<command>
-'imap://%HOSTIP:%IMAPPORT/830/;UID=1' -u user:secret
+'imap://%HOSTIP:%IMAPPORT/830/;MAILINDEX=1' -u user:secret
</command>
</client>
diff --git a/tests/data/test831 b/tests/data/test831
index 8bff7eac..fdcae29c 100644
--- a/tests/data/test831
+++ b/tests/data/test831
@@ -40,7 +40,7 @@ CURL_GETHOSTNAME=curlhost
LD_PRELOAD=%PWD/libtest/.libs/libhostname.so
</setenv>
<command>
-'imap://%HOSTIP:%IMAPPORT/831/;UID=1' -u testuser:testpass
+'imap://%HOSTIP:%IMAPPORT/831/;MAILINDEX=1' -u testuser:testpass
</command>
<precheck>
chkhostname curlhost
diff --git a/tests/data/test832 b/tests/data/test832
index 044edb19..360654ab 100644
--- a/tests/data/test832
+++ b/tests/data/test832
@@ -35,7 +35,7 @@ crypto
IMAP DIGEST-MD5 graceful cancellation
</name>
<command>
-'imap://%HOSTIP:%IMAPPORT/832/;UID=1' -u user:secret
+'imap://%HOSTIP:%IMAPPORT/832/;MAILINDEX=1' -u user:secret
</command>
</client>
diff --git a/tests/data/test833 b/tests/data/test833
index b5fa03f9..dc8214b8 100644
--- a/tests/data/test833
+++ b/tests/data/test833
@@ -44,7 +44,7 @@ crypto
IMAP CRAM-MD5 authentication with SASL downgrade
</name>
<command>
-'imap://%HOSTIP:%IMAPPORT/833/;UID=1' -u user:secret
+'imap://%HOSTIP:%IMAPPORT/833/;MAILINDEX=1' -u user:secret
</command>
</client>
diff --git a/tests/data/test834 b/tests/data/test834
index 17101ddf..fc131773 100644
--- a/tests/data/test834
+++ b/tests/data/test834
@@ -51,7 +51,7 @@ CURL_GETHOSTNAME=curlhost
LD_PRELOAD=%PWD/libtest/.libs/libhostname.so
</setenv>
<command>
-'imap://%HOSTIP:%IMAPPORT/834/;UID=1' -u user:secret
+'imap://%HOSTIP:%IMAPPORT/834/;MAILINDEX=1' -u user:secret
</command>
<precheck>
chkhostname curlhost
diff --git a/tests/data/test835 b/tests/data/test835
index 34f28b71..400233c0 100644
--- a/tests/data/test835
+++ b/tests/data/test835
@@ -46,7 +46,7 @@ crypto
IMAP DIGEST-MD5 authentication with SASL downgrade
</name>
<command>
-'imap://%HOSTIP:%IMAPPORT/835/;UID=1' -u user:secret
+'imap://%HOSTIP:%IMAPPORT/835/;MAILINDEX=1' -u user:secret
</command>
</client>
diff --git a/tests/data/test836 b/tests/data/test836
index 035d48ff..9478042e 100644
--- a/tests/data/test836
+++ b/tests/data/test836
@@ -36,7 +36,7 @@ imap
IMAP multiple connection authentication
</name>
<command>
-'imap://%HOSTIP:%IMAPPORT/836/;UID=1' -u user.one:secret -: 'imap://%HOSTIP:%IMAPPORT/836/;UID=2' -u user.two:secret
+'imap://%HOSTIP:%IMAPPORT/836/;MAILINDEX=1' -u user.one:secret -: 'imap://%HOSTIP:%IMAPPORT/836/;UID=2' -u user.two:secret
</command>
</client>
diff --git a/tests/data/test837 b/tests/data/test837
index d5974634..03272668 100644
--- a/tests/data/test837
+++ b/tests/data/test837
@@ -37,7 +37,7 @@ imap
IMAP external authentication
</name>
<command>
-'imap://user;AUTH=EXTERNAL@%HOSTIP:%IMAPPORT/837/;UID=1'
+'imap://user;AUTH=EXTERNAL@%HOSTIP:%IMAPPORT/837/;MAILINDEX=1'
</command>
</client>
diff --git a/tests/data/test838 b/tests/data/test838
index da2d28d0..f5378fb4 100644
--- a/tests/data/test838
+++ b/tests/data/test838
@@ -37,7 +37,7 @@ imap
IMAP external authentication without credentials
</name>
<command>
-'imap://;AUTH=EXTERNAL@%HOSTIP:%IMAPPORT/838/;UID=1'
+'imap://;AUTH=EXTERNAL@%HOSTIP:%IMAPPORT/838/;MAILINDEX=1'
</command>
</client>
diff --git a/tests/data/test839 b/tests/data/test839
index 2a544c1c..508fb8e5 100644
--- a/tests/data/test839
+++ b/tests/data/test839
@@ -38,7 +38,7 @@ imap
IMAP external authentication with initial response
</name>
<command>
-'imap://user;AUTH=EXTERNAL@%HOSTIP:%IMAPPORT/839/;UID=1'
+'imap://user;AUTH=EXTERNAL@%HOSTIP:%IMAPPORT/839/;MAILINDEX=1'
</command>
</client>
diff --git a/tests/data/test840 b/tests/data/test840
index eaf1aeea..1e85af39 100644
--- a/tests/data/test840
+++ b/tests/data/test840
@@ -38,7 +38,7 @@ imap
IMAP external authentication with initial response without credentials
</name>
<command>
-'imap://;AUTH=EXTERNAL@%HOSTIP:%IMAPPORT/840/;UID=1'
+'imap://;AUTH=EXTERNAL@%HOSTIP:%IMAPPORT/840/;MAILINDEX=1'
</command>
</client>
diff --git a/tests/data/test842 b/tests/data/test842
index d5aabbca..e86abd43 100644
--- a/tests/data/test842
+++ b/tests/data/test842
@@ -38,7 +38,7 @@ imap
IMAP OAuth 2.0 (OAUTHBEARER) authentication
</name>
<command>
-'imap://%HOSTIP:%IMAPPORT/842/;UID=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM
+'imap://%HOSTIP:%IMAPPORT/842/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM
</command>
# The protocol section doesn't support ways of specifying the raw data in the
# base64 encoded message so we must assert this
diff --git a/tests/data/test843 b/tests/data/test843
index a1c31a45..e286fd93 100644
--- a/tests/data/test843
+++ b/tests/data/test843
@@ -39,7 +39,7 @@ imap
IMAP OAuth 2.0 (OAUTHBEARER) authentication with initial response
</name>
<command>
-'imap://%HOSTIP:%IMAPPORT/843/;UID=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM
+'imap://%HOSTIP:%IMAPPORT/843/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM
</command>
# The protocol section doesn't support ways of specifying the raw data in the
# base64 encoded message so we must assert this
diff --git a/tests/data/test844 b/tests/data/test844
index 055a9d2f..2cdb265f 100644
--- a/tests/data/test844
+++ b/tests/data/test844
@@ -30,7 +30,7 @@ imap
IMAP OAuth 2.0 (OAUTHBEARER) failure as continuation
</name>
<command>
-'imap://%HOSTIP:%IMAPPORT/844/;UID=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM
+'imap://%HOSTIP:%IMAPPORT/844/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM
</command>
# The protocol section doesn't support ways of specifying the raw data in the
# base64 encoded message so we must assert this
diff --git a/tests/data/test845 b/tests/data/test845
index e23b3d69..d8b55748 100644
--- a/tests/data/test845
+++ b/tests/data/test845
@@ -31,7 +31,7 @@ imap
IMAP OAuth 2.0 (OAUTHBEARER) failure as continuation with initial response
</name>
<command>
-'imap://%HOSTIP:%IMAPPORT/845/;UID=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM
+'imap://%HOSTIP:%IMAPPORT/845/;MAILINDEX=1' -u user --oauth2-bearer mF_9.B5f-4.1JqM
</command>
# The protocol section doesn't support ways of specifying the raw data in the
# base64 encoded message so we must assert this
diff --git a/tests/data/test846 b/tests/data/test846
index b363ffd1..8d4d3c5f 100644
--- a/tests/data/test846
+++ b/tests/data/test846
@@ -33,7 +33,7 @@ imap
IMAP PREAUTH response
</name>
<command>
-'imap://%HOSTIP:%IMAPPORT/846/;UID=1' -u notused:still-provided
+'imap://%HOSTIP:%IMAPPORT/846/;MAILINDEX=1' -u notused:still-provided
</command>
</client>
diff --git a/tests/data/test847 b/tests/data/test847
new file mode 100644
index 00000000..d4c10433
--- /dev/null
+++ b/tests/data/test847
@@ -0,0 +1,49 @@
+<testcase>
+<info>
+<keywords>
+IMAP
+Clear Text
+FETCH
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data>
+From: me@somewhere
+To: fake@nowhere
+
+body
+
+--
+ yours sincerely
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+imap
+</server>
+ <name>
+IMAP FETCH message
+ </name>
+ <command>
+'imap://%HOSTIP:%IMAPPORT/847/;UID=1' -u '"user:sec"ret{'
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+A001 CAPABILITY
+A002 LOGIN "\"user" "sec\"ret{"
+A003 SELECT 847
+A004 UID FETCH 1 BODY[]
+A005 LOGOUT
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/ftpserver.pl b/tests/ftpserver.pl
index 97f7b8ea..d401be24 100755
--- a/tests/ftpserver.pl
+++ b/tests/ftpserver.pl
@@ -1560,7 +1560,13 @@ sub UID_imap {
if ($selected eq "") {
sendcontrol "$cmdid BAD Command received in Invalid state\r\n";
}
- elsif (($command ne "COPY") && ($command ne "FETCH") &&
+ elsif (substr($command, 0, 5) eq "FETCH"){
+ my $func = $commandfunc{"FETCH"};
+ if($func) {
+ &$func($args, $command);
+ }
+ }
+ elsif (($command ne "COPY") &&
($command ne "STORE") && ($command ne "SEARCH")) {
sendcontrol "$cmdid BAD Command Argument\r\n";
}
diff --git a/tests/libtest/CMakeLists.txt b/tests/libtest/CMakeLists.txt
index ac8d3332..aa70d053 100644
--- a/tests/libtest/CMakeLists.txt
+++ b/tests/libtest/CMakeLists.txt
@@ -1,5 +1,9 @@
set(TARGET_LABEL_PREFIX "Test ")
+if(MSVC)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4127")
+endif()
+
function(setup_test TEST_NAME) # ARGN are the files in the test
add_executable( ${TEST_NAME} ${ARGN} )
string(TOUPPER ${TEST_NAME} UPPER_TEST_NAME)
@@ -50,10 +54,10 @@ endif()
add_custom_command(
OUTPUT lib1521.c
- COMMAND ${PERL_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/mk-lib1521.pl < ${CMAKE_SOURCE_DIR}/include/curl/curl.h > lib1521.c
+ COMMAND ${PERL_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/mk-lib1521.pl < ${CURL_SOURCE_DIR}/include/curl/curl.h > lib1521.c
DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/mk-lib1521.pl"
- "${CMAKE_SOURCE_DIR}/include/curl/curl.h"
+ "${CURL_SOURCE_DIR}/include/curl/curl.h"
VERBATIM)
set_property(TARGET chkdecimalpoint
diff --git a/tests/libtest/Makefile.am b/tests/libtest/Makefile.am
index d14f37d3..56c84a76 100644
--- a/tests/libtest/Makefile.am
+++ b/tests/libtest/Makefile.am
@@ -44,8 +44,8 @@ AM_CPPFLAGS = -I$(top_srcdir)/include \
-I$(top_srcdir)/lib
endif
-EXTRA_DIST = test75.pl test307.pl test610.pl test613.pl test1013.pl \
-test1022.pl Makefile.inc notexists.pl CMakeLists.txt mk-lib1521.pl
+EXTRA_DIST = test75.pl test307.pl test610.pl test613.pl test1013.pl \
+ test1022.pl Makefile.inc notexists.pl CMakeLists.txt mk-lib1521.pl
CFLAG_CURL_SYMBOL_HIDING = @CFLAG_CURL_SYMBOL_HIDING@
@@ -133,3 +133,8 @@ lib1521.c: $(top_srcdir)/tests/libtest/mk-lib1521.pl $(top_srcdir)/include/curl/
checksrc:
@PERL@ $(top_srcdir)/lib/checksrc.pl $(srcdir)/*.c
+
+if CURLDEBUG
+# for debug builds, we scan the sources on all regular make invokes
+all-local: checksrc
+endif
diff --git a/tests/libtest/Makefile.inc b/tests/libtest/Makefile.inc
index 238ef97d..7a3cd166 100644
--- a/tests/libtest/Makefile.inc
+++ b/tests/libtest/Makefile.inc
@@ -30,6 +30,7 @@ noinst_PROGRAMS = chkhostname libauthretry libntlmconnect \
lib1534 lib1535 lib1536 lib1537 lib1538 \
lib1540 \
lib1550 lib1551 lib1552 lib1553 lib1554 lib1555 lib1556 lib1557 \
+ lib1560 \
lib1900 \
lib2033
@@ -507,6 +508,9 @@ lib1557_SOURCES = lib1557.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib1557_LDADD = $(TESTUTIL_LIBS)
lib1557_CPPFLAGS = $(AM_CPPFLAGS) -DLIB1557
+lib1560_SOURCES = lib1560.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
+lib1560_LDADD = $(TESTUTIL_LIBS)
+
lib1900_SOURCES = lib1900.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib1900_LDADD = $(TESTUTIL_LIBS)
lib1900_CPPFLAGS = $(AM_CPPFLAGS)
diff --git a/tests/libtest/lib1507.c b/tests/libtest/lib1507.c
index 5e3a5926..dc023a07 100644
--- a/tests/libtest/lib1507.c
+++ b/tests/libtest/lib1507.c
@@ -147,5 +147,3 @@ test_cleanup:
return res;
}
-
-
diff --git a/tests/libtest/lib1512.c b/tests/libtest/lib1512.c
index 5e794b29..1c257895 100644
--- a/tests/libtest/lib1512.c
+++ b/tests/libtest/lib1512.c
@@ -88,4 +88,3 @@ test_cleanup:
return res;
}
-
diff --git a/tests/libtest/lib1520.c b/tests/libtest/lib1520.c
index 4d5b0c88..c6ac64bb 100644
--- a/tests/libtest/lib1520.c
+++ b/tests/libtest/lib1520.c
@@ -111,5 +111,3 @@ test_cleanup:
return (int)res;
}
-
-
diff --git a/tests/libtest/lib1526.c b/tests/libtest/lib1526.c
index 704ae497..66346579 100644
--- a/tests/libtest/lib1526.c
+++ b/tests/libtest/lib1526.c
@@ -101,4 +101,3 @@ test_cleanup:
return (int)res;
}
-
diff --git a/tests/libtest/lib1531.c b/tests/libtest/lib1531.c
index 953f062d..4a4dc133 100644
--- a/tests/libtest/lib1531.c
+++ b/tests/libtest/lib1531.c
@@ -155,4 +155,3 @@ test_cleanup:
return res;
}
-
diff --git a/tests/libtest/lib1533.c b/tests/libtest/lib1533.c
index ada94b94..962a222e 100644
--- a/tests/libtest/lib1533.c
+++ b/tests/libtest/lib1533.c
@@ -197,4 +197,3 @@ test_cleanup:
return (int)res;
}
-
diff --git a/tests/libtest/lib1560.c b/tests/libtest/lib1560.c
new file mode 100644
index 00000000..e0faa12b
--- /dev/null
+++ b/tests/libtest/lib1560.c
@@ -0,0 +1,790 @@
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2018, 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 https://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.
+ *
+ ***************************************************************************/
+
+/*
+ * Note:
+ *
+ * Since the URL parser by default only accepts schemes that *this instance*
+ * of libcurl supports, make sure that the test1560 file lists all the schemes
+ * that this test will assume to be present!
+ */
+
+#include "test.h"
+
+#include "testutil.h"
+#include "warnless.h"
+#include "memdebug.h" /* LAST include file */
+
+struct part {
+ CURLUPart part;
+ const char *name;
+};
+
+
+static int checkparts(CURLU *u, const char *in, const char *wanted,
+ unsigned int getflags)
+{
+ int i;
+ CURLUcode rc;
+ char buf[256];
+ char *bufp = &buf[0];
+ size_t len = sizeof(buf);
+ struct part parts[] = {
+ {CURLUPART_SCHEME, "scheme"},
+ {CURLUPART_USER, "user"},
+ {CURLUPART_PASSWORD, "password"},
+ {CURLUPART_OPTIONS, "options"},
+ {CURLUPART_HOST, "host"},
+ {CURLUPART_PORT, "port"},
+ {CURLUPART_PATH, "path"},
+ {CURLUPART_QUERY, "query"},
+ {CURLUPART_FRAGMENT, "fragment"},
+ {0, NULL}
+ };
+ buf[0] = 0;
+
+ for(i = 0; parts[i].name; i++) {
+ char *p = NULL;
+ size_t n;
+ rc = curl_url_get(u, parts[i].part, &p, getflags);
+ if(!rc && p) {
+ snprintf(bufp, len, "%s%s", buf[0]?" | ":"", p);
+ }
+ else
+ snprintf(bufp, len, "%s[%d]", buf[0]?" | ":"", (int)rc);
+
+ n = strlen(bufp);
+ bufp += n;
+ len -= n;
+ curl_free(p);
+ }
+ if(strcmp(buf, wanted)) {
+ fprintf(stderr, "in: %s\nwanted: %s\ngot: %s\n", in, wanted, buf);
+ return 1;
+ }
+ return 0;
+}
+
+struct redircase {
+ const char *in;
+ const char *set;
+ const char *out;
+ unsigned int urlflags;
+ unsigned int setflags;
+ CURLUcode ucode;
+};
+
+struct setcase {
+ const char *in;
+ const char *set;
+ const char *out;
+ unsigned int urlflags;
+ unsigned int setflags;
+ CURLUcode ucode;
+};
+
+struct testcase {
+ const char *in;
+ const char *out;
+ unsigned int urlflags;
+ unsigned int getflags;
+ CURLUcode ucode;
+};
+
+struct urltestcase {
+ const char *in;
+ const char *out;
+ unsigned int urlflags; /* pass to curl_url() */
+ unsigned int getflags; /* pass to curl_url_get() */
+ CURLUcode ucode;
+};
+
+struct querycase {
+ const char *in;
+ const char *q;
+ const char *out;
+ unsigned int urlflags; /* pass to curl_url() */
+ unsigned int qflags; /* pass to curl_url_get() */
+ CURLUcode ucode;
+};
+
+static struct testcase get_parts_list[] ={
+ {"https://[::1%252]:1234",
+ "https | [11] | [12] | [13] | [::1%252] | 1234 | / | [16] | [17]",
+ CURLU_DEFAULT_SCHEME, 0, CURLUE_OK},
+ {"https://127.0.0.1:443",
+ "https | [11] | [12] | [13] | 127.0.0.1 | [15] | / | [16] | [17]",
+ 0, CURLU_NO_DEFAULT_PORT, CURLUE_OK},
+ {"http://%3a:%3a@ex%0ample/%3f+?+%3f+%23#+%23%3f%g7",
+ "http | : | : | [13] | [6] | [15] | /?+ | ? # | +#?%g7",
+ 0, CURLU_URLDECODE, CURLUE_OK},
+ {"http://%3a:%3a@ex%0ample/%3f?%3f%35#%35%3f%g7",
+ "http | %3a | %3a | [13] | ex%0ample | [15] | /%3f | %3f%35 | %35%3f%g7",
+ 0, 0, CURLUE_OK},
+ {"http://HO0_-st%41/",
+ "http | [11] | [12] | [13] | HO0_-st%41 | [15] | / | [16] | [17]",
+ 0, 0, CURLUE_OK},
+ {"file://hello.html",
+ "",
+ 0, 0, CURLUE_MALFORMED_INPUT},
+ {"http://HO0_-st/",
+ "http | [11] | [12] | [13] | HO0_-st | [15] | / | [16] | [17]",
+ 0, 0, CURLUE_OK},
+ {"imap://user:pass;option@server/path",
+ "imap | user | pass | option | server | [15] | /path | [16] | [17]",
+ 0, 0, CURLUE_OK},
+ {"http://user:pass;option@server/path",
+ "http | user | pass;option | [13] | server | [15] | /path | [16] | [17]",
+ 0, 0, CURLUE_OK},
+ {"file:/hello.html",
+ "file | [11] | [12] | [13] | [14] | [15] | /hello.html | [16] | [17]",
+ 0, 0, CURLUE_OK},
+ {"file://127.0.0.1/hello.html",
+ "file | [11] | [12] | [13] | [14] | [15] | /hello.html | [16] | [17]",
+ 0, 0, CURLUE_OK},
+ {"file:////hello.html",
+ "file | [11] | [12] | [13] | [14] | [15] | //hello.html | [16] | [17]",
+ 0, 0, CURLUE_OK},
+ {"file:///hello.html",
+ "file | [11] | [12] | [13] | [14] | [15] | /hello.html | [16] | [17]",
+ 0, 0, CURLUE_OK},
+ {"https://127.0.0.1",
+ "https | [11] | [12] | [13] | 127.0.0.1 | 443 | / | [16] | [17]",
+ 0, CURLU_DEFAULT_PORT, CURLUE_OK},
+ {"https://127.0.0.1",
+ "https | [11] | [12] | [13] | 127.0.0.1 | [15] | / | [16] | [17]",
+ CURLU_DEFAULT_SCHEME, 0, CURLUE_OK},
+ {"https://[::1]:1234",
+ "https | [11] | [12] | [13] | [::1] | 1234 | / | [16] | [17]",
+ CURLU_DEFAULT_SCHEME, 0, CURLUE_OK},
+ {"https://127abc.com",
+ "https | [11] | [12] | [13] | 127abc.com | [15] | / | [16] | [17]",
+ CURLU_DEFAULT_SCHEME, 0, CURLUE_OK},
+ {"https:// example.com?check",
+ "",
+ CURLU_DEFAULT_SCHEME, 0, CURLUE_MALFORMED_INPUT},
+ {"https://e x a m p l e.com?check",
+ "",
+ CURLU_DEFAULT_SCHEME, 0, CURLUE_MALFORMED_INPUT},
+ {"https://example.com?check",
+ "https | [11] | [12] | [13] | example.com | [15] | / | check | [17]",
+ CURLU_DEFAULT_SCHEME, 0, CURLUE_OK},
+ {"https://example.com:65536",
+ "",
+ CURLU_DEFAULT_SCHEME, 0, CURLUE_BAD_PORT_NUMBER},
+ {"https://example.com:0#moo",
+ "",
+ CURLU_DEFAULT_SCHEME, 0, CURLUE_BAD_PORT_NUMBER},
+ {"https://example.com:01#moo",
+ "https | [11] | [12] | [13] | example.com | 1 | / | "
+ "[16] | moo",
+ CURLU_DEFAULT_SCHEME, 0, CURLUE_OK},
+ {"https://example.com:1#moo",
+ "https | [11] | [12] | [13] | example.com | 1 | / | "
+ "[16] | moo",
+ CURLU_DEFAULT_SCHEME, 0, CURLUE_OK},
+ {"http://example.com#moo",
+ "http | [11] | [12] | [13] | example.com | [15] | / | "
+ "[16] | moo",
+ CURLU_DEFAULT_SCHEME, 0, CURLUE_OK},
+ {"http://example.com",
+ "http | [11] | [12] | [13] | example.com | [15] | / | "
+ "[16] | [17]",
+ CURLU_DEFAULT_SCHEME, 0, CURLUE_OK},
+ {"http://example.com/path/html",
+ "http | [11] | [12] | [13] | example.com | [15] | /path/html | "
+ "[16] | [17]",
+ CURLU_DEFAULT_SCHEME, 0, CURLUE_OK},
+ {"http://example.com/path/html?query=name",
+ "http | [11] | [12] | [13] | example.com | [15] | /path/html | "
+ "query=name | [17]",
+ CURLU_DEFAULT_SCHEME, 0, CURLUE_OK},
+ {"http://example.com/path/html?query=name#anchor",
+ "http | [11] | [12] | [13] | example.com | [15] | /path/html | "
+ "query=name | anchor",
+ CURLU_DEFAULT_SCHEME, 0, CURLUE_OK},
+ {"http://example.com:1234/path/html?query=name#anchor",
+ "http | [11] | [12] | [13] | example.com | 1234 | /path/html | "
+ "query=name | anchor",
+ CURLU_DEFAULT_SCHEME, 0, CURLUE_OK},
+ {"http:///user:password@example.com:1234/path/html?query=name#anchor",
+ "http | user | password | [13] | example.com | 1234 | /path/html | "
+ "query=name | anchor",
+ CURLU_DEFAULT_SCHEME, 0, CURLUE_OK},
+ {"https://user:password@example.com:1234/path/html?query=name#anchor",
+ "https | user | password | [13] | example.com | 1234 | /path/html | "
+ "query=name | anchor",
+ CURLU_DEFAULT_SCHEME, 0, CURLUE_OK},
+ {"http://user:password@example.com:1234/path/html?query=name#anchor",
+ "http | user | password | [13] | example.com | 1234 | /path/html | "
+ "query=name | anchor",
+ CURLU_DEFAULT_SCHEME, 0, CURLUE_OK},
+ {"http:/user:password@example.com:1234/path/html?query=name#anchor",
+ "http | user | password | [13] | example.com | 1234 | /path/html | "
+ "query=name | anchor",
+ CURLU_DEFAULT_SCHEME, 0, CURLUE_OK},
+ {"http:////user:password@example.com:1234/path/html?query=name#anchor",
+ "",
+ CURLU_DEFAULT_SCHEME, 0, CURLUE_MALFORMED_INPUT},
+ {NULL, NULL, 0, 0, CURLUE_OK},
+};
+
+static struct urltestcase get_url_list[] = {
+ {"smtp.example.com/path/html",
+ "smtp://smtp.example.com/path/html",
+ CURLU_GUESS_SCHEME, 0, CURLUE_OK},
+ {"https.example.com/path/html",
+ "http://https.example.com/path/html",
+ CURLU_GUESS_SCHEME, 0, CURLUE_OK},
+ {"dict.example.com/path/html",
+ "dict://dict.example.com/path/html",
+ CURLU_GUESS_SCHEME, 0, CURLUE_OK},
+ {"pop3.example.com/path/html",
+ "pop3://pop3.example.com/path/html",
+ CURLU_GUESS_SCHEME, 0, CURLUE_OK},
+ {"ldap.example.com/path/html",
+ "ldap://ldap.example.com/path/html",
+ CURLU_GUESS_SCHEME, 0, CURLUE_OK},
+ {"imap.example.com/path/html",
+ "imap://imap.example.com/path/html",
+ CURLU_GUESS_SCHEME, 0, CURLUE_OK},
+ {"ftp.example.com/path/html",
+ "ftp://ftp.example.com/path/html",
+ CURLU_GUESS_SCHEME, 0, CURLUE_OK},
+ {"example.com/path/html",
+ "http://example.com/path/html",
+ CURLU_GUESS_SCHEME, 0, CURLUE_OK},
+ {"HTTP://test/", "http://test/", 0, 0, CURLUE_OK},
+ {"http://HO0_-st..~./", "http://HO0_-st..~./", 0, 0, CURLUE_OK},
+ {"http:/@example.com: 123/", "", 0, 0, CURLUE_BAD_PORT_NUMBER},
+ {"http:/@example.com:123 /", "", 0, 0, CURLUE_BAD_PORT_NUMBER},
+ {"http:/@example.com:123a/", "", 0, 0, CURLUE_BAD_PORT_NUMBER},
+ {"http://host/file\r", "", 0, 0, CURLUE_MALFORMED_INPUT},
+ {"http://host/file\n\x03", "", 0, 0, CURLUE_MALFORMED_INPUT},
+ {"htt\x02://host/file", "",
+ CURLU_NON_SUPPORT_SCHEME, 0, CURLUE_MALFORMED_INPUT},
+ {" http://host/file", "", 0, 0, CURLUE_MALFORMED_INPUT},
+ /* here the password ends at the semicolon and options is 'word' */
+ {"imap://user:pass;word@host/file",
+ "imap://user:pass;word@host/file",
+ 0, 0, CURLUE_OK},
+ /* here the password has the semicolon */
+ {"http://user:pass;word@host/file",
+ "http://user:pass;word@host/file",
+ 0, 0, CURLUE_OK},
+ {"file:///file.txt#moo",
+ "file:///file.txt#moo",
+ 0, 0, CURLUE_OK},
+ {"file:////file.txt",
+ "file:////file.txt",
+ 0, 0, CURLUE_OK},
+ {"file:///file.txt",
+ "file:///file.txt",
+ 0, 0, CURLUE_OK},
+ {"file:./",
+ "file://",
+ 0, 0, CURLUE_MALFORMED_INPUT},
+ {"http://example.com/hello/../here",
+ "http://example.com/hello/../here",
+ CURLU_PATH_AS_IS, 0, CURLUE_OK},
+ {"http://example.com/hello/../here",
+ "http://example.com/here",
+ 0, 0, CURLUE_OK},
+ {"http://example.com:80",
+ "http://example.com/",
+ 0, CURLU_NO_DEFAULT_PORT, CURLUE_OK},
+ {"tp://example.com/path/html",
+ "",
+ 0, 0, CURLUE_UNSUPPORTED_SCHEME},
+ {"http://hello:fool@example.com",
+ "",
+ CURLU_DISALLOW_USER, 0, CURLUE_USER_NOT_ALLOWED},
+ {"http:/@example.com:123",
+ "http://example.com:123/",
+ 0, 0, CURLUE_OK},
+ {"http:/:password@example.com",
+ "http://:password@example.com/",
+ 0, 0, CURLUE_OK},
+ {"http://user@example.com?#",
+ "http://user@example.com/",
+ 0, 0, CURLUE_OK},
+ {"http://user@example.com?",
+ "http://user@example.com/",
+ 0, 0, CURLUE_OK},
+ {"http://user@example.com#anchor",
+ "http://user@example.com/#anchor",
+ 0, 0, CURLUE_OK},
+ {"example.com/path/html",
+ "https://example.com/path/html",
+ CURLU_DEFAULT_SCHEME, 0, CURLUE_OK},
+ {"example.com/path/html",
+ "",
+ 0, 0, CURLUE_MALFORMED_INPUT},
+ {"http://user:password@example.com:1234/path/html?query=name#anchor",
+ "http://user:password@example.com:1234/path/html?query=name#anchor",
+ 0, 0, CURLUE_OK},
+ {"http://example.com:1234/path/html?query=name#anchor",
+ "http://example.com:1234/path/html?query=name#anchor",
+ 0, 0, CURLUE_OK},
+ {"http://example.com/path/html?query=name#anchor",
+ "http://example.com/path/html?query=name#anchor",
+ 0, 0, CURLUE_OK},
+ {"http://example.com/path/html?query=name",
+ "http://example.com/path/html?query=name",
+ 0, 0, CURLUE_OK},
+ {"http://example.com/path/html",
+ "http://example.com/path/html",
+ 0, 0, CURLUE_OK},
+ {"tp://example.com/path/html",
+ "tp://example.com/path/html",
+ CURLU_NON_SUPPORT_SCHEME, 0, CURLUE_OK},
+ {NULL, NULL, 0, 0, 0}
+};
+
+static int checkurl(const char *url, const char *out)
+{
+ if(strcmp(out, url)) {
+ fprintf(stderr, "Wanted: %s\nGot : %s\n",
+ out, url);
+ return 1;
+ }
+ return 0;
+}
+
+/* !checksrc! disable SPACEBEFORECOMMA 1 */
+static struct setcase set_parts_list[] = {
+ {"https://host/",
+ "path=%4A%4B%4C,",
+ "https://host/%4a%4b%4c",
+ 0, 0, CURLUE_NO_HOST},
+ {"https://host/mooo?q#f",
+ "path=NULL,query=NULL,fragment=NULL,",
+ "https://host/",
+ 0, 0, CURLUE_NO_HOST},
+ {"https://user:secret@host/",
+ "user=NULL,password=NULL,",
+ "https://host/",
+ 0, 0, CURLUE_NO_HOST},
+ {NULL,
+ "scheme=https,user= @:,host=foobar,",
+ "https://%20%20%20%40%3a@foobar/",
+ 0, CURLU_URLENCODE, CURLUE_OK},
+ {NULL,
+ "scheme=https,host= ,path= ,user= ,password= ,query= ,fragment= ,",
+ "https://%20:%20@%20%20/%20?+#%20",
+ 0, CURLU_URLENCODE, CURLUE_OK},
+ {NULL,
+ "scheme=https,host=foobar,path=/this /path /is /here,",
+ "https://foobar/this%20/path%20/is%20/here",
+ 0, CURLU_URLENCODE, CURLUE_OK},
+ {"imap://user:secret;opt@host/",
+ "options=updated,scheme=imaps,password=p4ssw0rd,",
+ "imaps://user:p4ssw0rd;updated@host/",
+ 0, 0, CURLUE_NO_HOST},
+ {"imap://user:secret;optit@host/",
+ "scheme=https,",
+ "https://user:secret@host/",
+ 0, 0, CURLUE_NO_HOST},
+ {"file:///file#anchor",
+ "scheme=https,host=example,",
+ "https://example/file#anchor",
+ 0, 0, CURLUE_NO_HOST},
+ {NULL, /* start fresh! */
+ "scheme=file,host=127.0.0.1,path=/no,user=anonymous,",
+ "file:///no",
+ 0, 0, CURLUE_OK},
+ {NULL, /* start fresh! */
+ "scheme=ftp,host=127.0.0.1,path=/no,user=anonymous,",
+ "ftp://anonymous@127.0.0.1/no",
+ 0, 0, CURLUE_OK},
+ {NULL, /* start fresh! */
+ "scheme=https,host=example.com,",
+ "https://example.com/",
+ 0, CURLU_NON_SUPPORT_SCHEME, CURLUE_OK},
+ {"http://user:foo@example.com/path?query#frag",
+ "fragment=changed,",
+ "http://user:foo@example.com/path?query#changed",
+ 0, CURLU_NON_SUPPORT_SCHEME, CURLUE_OK},
+ {"http://example.com/",
+ "scheme=foo,", /* not accepted */
+ "http://example.com/",
+ 0, 0, CURLUE_OK},
+ {"http://example.com/",
+ "scheme=https,path=/hello,fragment=snippet,",
+ "https://example.com/hello#snippet",
+ 0, 0, CURLUE_OK},
+ {"http://example.com:80",
+ "user=foo,port=1922,",
+ "http://foo@example.com:1922/",
+ 0, 0, CURLUE_OK},
+ {"http://example.com:80",
+ "user=foo,password=bar,",
+ "http://foo:bar@example.com:80/",
+ 0, 0, CURLUE_OK},
+ {"http://example.com:80",
+ "user=foo,",
+ "http://foo@example.com:80/",
+ 0, 0, CURLUE_OK},
+ {"http://example.com",
+ "host=www.example.com,",
+ "http://www.example.com/",
+ 0, 0, CURLUE_OK},
+ {"http://example.com:80",
+ "scheme=ftp,",
+ "ftp://example.com:80/",
+ 0, 0, CURLUE_OK},
+ {NULL, NULL, NULL, 0, 0, 0}
+};
+
+static CURLUPart part2id(char *part)
+{
+ if(!strcmp("url", part))
+ return CURLUPART_URL;
+ if(!strcmp("scheme", part))
+ return CURLUPART_SCHEME;
+ if(!strcmp("user", part))
+ return CURLUPART_USER;
+ if(!strcmp("password", part))
+ return CURLUPART_PASSWORD;
+ if(!strcmp("options", part))
+ return CURLUPART_OPTIONS;
+ if(!strcmp("host", part))
+ return CURLUPART_HOST;
+ if(!strcmp("port", part))
+ return CURLUPART_PORT;
+ if(!strcmp("path", part))
+ return CURLUPART_PATH;
+ if(!strcmp("query", part))
+ return CURLUPART_QUERY;
+ if(!strcmp("fragment", part))
+ return CURLUPART_FRAGMENT;
+ return 9999; /* bad input => bad output */
+}
+
+static void updateurl(CURLU *u, const char *cmd, unsigned int setflags)
+{
+ const char *p = cmd;
+
+ /* make sure the last command ends with a comma too! */
+ while(p) {
+ char *e = strchr(p, ',');
+ if(e) {
+ size_t n = e-p;
+ char buf[80];
+ char part[80];
+ char value[80];
+ memcpy(buf, p, n);
+ buf[n] = 0;
+ if(2 == sscanf(buf, "%79[^=]=%79[^,]", part, value)) {
+ CURLUPart what = part2id(part);
+#if 0
+ /* for debugging this */
+ fprintf(stderr, "%s = %s [%d]\n", part, value, (int)what);
+#endif
+ if(!strcmp("NULL", value))
+ curl_url_set(u, what, NULL, setflags);
+ else
+ curl_url_set(u, what, value, setflags);
+ }
+ p = e + 1;
+ continue;
+ }
+ break;
+ }
+
+}
+
+static struct redircase set_url_list[] = {
+ {"file://localhost/path?query#frag",
+ "foo#another",
+ "file:///foo#another",
+ 0, 0, 0},
+ {"http://example.com/path?query#frag",
+ "https://two.example.com/bradnew",
+ "https://two.example.com/bradnew",
+ 0, 0, 0},
+ {"http://example.com/path?query#frag",
+ "../../newpage#foo",
+ "http://example.com/newpage#foo",
+ 0, 0, 0},
+ {"http://user:foo@example.com/path?query#frag",
+ "../../newpage",
+ "http://user:foo@example.com/newpage",
+ 0, 0, 0},
+ {"http://user:foo@example.com/path?query#frag",
+ "../newpage",
+ "http://user:foo@example.com/newpage",
+ 0, 0, 0},
+ {NULL, NULL, NULL, 0, 0, 0}
+};
+
+static int set_url(void)
+{
+ int i;
+ CURLUcode rc;
+ CURLU *urlp;
+ int error = 0;
+
+ for(i = 0; set_url_list[i].in && !error; i++) {
+ char *url = NULL;
+ urlp = curl_url();
+ if(!urlp)
+ break;
+ rc = curl_url_set(urlp, CURLUPART_URL, set_url_list[i].in,
+ set_url_list[i].urlflags);
+ if(!rc) {
+ rc = curl_url_set(urlp, CURLUPART_URL, set_url_list[i].set,
+ set_url_list[i].setflags);
+ if(rc) {
+ fprintf(stderr, "%s:%d Set URL %s returned %d\n",
+ __FILE__, __LINE__, set_url_list[i].set,
+ (int)rc);
+ error++;
+ }
+ else {
+ rc = curl_url_get(urlp, CURLUPART_URL, &url, 0);
+ if(rc) {
+ fprintf(stderr, "%s:%d Get URL returned %d\n",
+ __FILE__, __LINE__, (int)rc);
+ error++;
+ }
+ else {
+ if(checkurl(url, set_url_list[i].out)) {
+ error++;
+ }
+ }
+ }
+ curl_free(url);
+ }
+ else if(rc != set_url_list[i].ucode) {
+ fprintf(stderr, "Set URL\nin: %s\nreturned %d (expected %d)\n",
+ set_url_list[i].in, (int)rc, set_url_list[i].ucode);
+ error++;
+ }
+ curl_url_cleanup(urlp);
+ }
+ return error;
+}
+
+static int set_parts(void)
+{
+ int i;
+ CURLUcode rc;
+ int error = 0;
+
+ for(i = 0; set_parts_list[i].set && !error; i++) {
+ char *url = NULL;
+ CURLU *urlp = curl_url();
+ if(!urlp) {
+ error++;
+ break;
+ }
+ if(set_parts_list[i].in)
+ rc = curl_url_set(urlp, CURLUPART_URL, set_parts_list[i].in,
+ set_parts_list[i].urlflags);
+ else
+ rc = CURLUE_OK;
+ if(!rc) {
+ updateurl(urlp, set_parts_list[i].set, set_parts_list[i].setflags);
+ rc = curl_url_get(urlp, CURLUPART_URL, &url, 0);
+
+ if(rc) {
+ fprintf(stderr, "%s:%d Get URL returned %d\n",
+ __FILE__, __LINE__, (int)rc);
+ error++;
+ }
+ else if(checkurl(url, set_parts_list[i].out)) {
+ error++;
+ }
+ }
+ else if(rc != set_parts_list[i].ucode) {
+ fprintf(stderr, "Set parts\nin: %s\nreturned %d (expected %d)\n",
+ set_parts_list[i].in, (int)rc, set_parts_list[i].ucode);
+ error++;
+ }
+ curl_free(url);
+ curl_url_cleanup(urlp);
+ }
+ return error;
+}
+
+static int get_url(void)
+{
+ int i;
+ CURLUcode rc;
+ int error = 0;
+ for(i = 0; get_url_list[i].in && !error; i++) {
+ char *url = NULL;
+ CURLU *urlp = curl_url();
+ if(!urlp) {
+ error++;
+ break;
+ }
+ rc = curl_url_set(urlp, CURLUPART_URL, get_url_list[i].in,
+ get_url_list[i].urlflags);
+ if(!rc) {
+ rc = curl_url_get(urlp, CURLUPART_URL, &url, get_url_list[i].getflags);
+
+ if(rc) {
+ fprintf(stderr, "%s:%d returned %d\n",
+ __FILE__, __LINE__, (int)rc);
+ error++;
+ }
+ else {
+ if(checkurl(url, get_url_list[i].out)) {
+ error++;
+ }
+ }
+ }
+ else if(rc != get_url_list[i].ucode) {
+ fprintf(stderr, "Get URL\nin: %s\nreturned %d (expected %d)\n",
+ get_url_list[i].in, (int)rc, get_url_list[i].ucode);
+ error++;
+ }
+ curl_free(url);
+ curl_url_cleanup(urlp);
+ }
+ return error;
+}
+
+static int get_parts(void)
+{
+ int i;
+ CURLUcode rc;
+ CURLU *urlp;
+ int error = 0;
+ for(i = 0; get_parts_list[i].in && !error; i++) {
+ urlp = curl_url();
+ if(!urlp) {
+ error++;
+ break;
+ }
+ rc = curl_url_set(urlp, CURLUPART_URL,
+ get_parts_list[i].in,
+ get_parts_list[i].urlflags);
+ if(rc != get_parts_list[i].ucode) {
+ fprintf(stderr, "Get parts\nin: %s\nreturned %d (expected %d)\n",
+ get_parts_list[i].in, (int)rc, get_parts_list[i].ucode);
+ error++;
+ }
+ else if(get_parts_list[i].ucode) {
+ /* the expected error happened */
+ }
+ else if(checkparts(urlp, get_parts_list[i].in, get_parts_list[i].out,
+ get_parts_list[i].getflags))
+ error++;
+ curl_url_cleanup(urlp);
+ }
+ return error;
+}
+
+static struct querycase append_list[] = {
+ {"HTTP://test/?s", "name=joe\x02", "http://test/?s&name=joe%02",
+ 0, CURLU_URLENCODE, CURLUE_OK},
+ {"HTTP://test/?size=2#f", "name=joe=", "http://test/?size=2&name=joe=#f",
+ 0, CURLU_URLENCODE, CURLUE_OK},
+ {"HTTP://test/?size=2#f", "name=joe doe",
+ "http://test/?size=2&name=joe+doe#f",
+ 0, CURLU_URLENCODE, CURLUE_OK},
+ {"HTTP://test/", "name=joe", "http://test/?name=joe", 0, 0, CURLUE_OK},
+ {"HTTP://test/?size=2", "name=joe", "http://test/?size=2&name=joe",
+ 0, 0, CURLUE_OK},
+ {"HTTP://test/?size=2&", "name=joe", "http://test/?size=2&name=joe",
+ 0, 0, CURLUE_OK},
+ {"HTTP://test/?size=2#f", "name=joe", "http://test/?size=2&name=joe#f",
+ 0, 0, CURLUE_OK},
+ {NULL, NULL, NULL, 0, 0, 0}
+};
+
+static int append(void)
+{
+ int i;
+ CURLUcode rc;
+ CURLU *urlp;
+ int error = 0;
+ for(i = 0; append_list[i].in && !error; i++) {
+ urlp = curl_url();
+ if(!urlp) {
+ error++;
+ break;
+ }
+ rc = curl_url_set(urlp, CURLUPART_URL,
+ append_list[i].in,
+ append_list[i].urlflags);
+ if(rc)
+ error++;
+ else
+ rc = curl_url_set(urlp, CURLUPART_QUERY,
+ append_list[i].q,
+ append_list[i].qflags | CURLU_APPENDQUERY);
+ if(error)
+ ;
+ else if(rc != append_list[i].ucode) {
+ fprintf(stderr, "Append\nin: %s\nreturned %d (expected %d)\n",
+ append_list[i].in, (int)rc, append_list[i].ucode);
+ error++;
+ }
+ else if(append_list[i].ucode) {
+ /* the expected error happened */
+ }
+ else {
+ char *url;
+ rc = curl_url_get(urlp, CURLUPART_URL, &url, 0);
+ if(rc) {
+ fprintf(stderr, "%s:%d Get URL returned %d\n",
+ __FILE__, __LINE__, (int)rc);
+ error++;
+ }
+ else {
+ if(checkurl(url, append_list[i].out)) {
+ error++;
+ }
+ curl_free(url);
+ }
+ }
+ curl_url_cleanup(urlp);
+ }
+ return error;
+}
+
+int test(char *URL)
+{
+ (void)URL; /* not used */
+
+ if(append())
+ return 5;
+
+ if(set_url())
+ return 1;
+
+ if(set_parts())
+ return 2;
+
+ if(get_url())
+ return 3;
+
+ if(get_parts())
+ return 4;
+
+ printf("success\n");
+ return 0;
+}
diff --git a/tests/libtest/lib500.c b/tests/libtest/lib500.c
index 2a6c58bb..8d9b9212 100644
--- a/tests/libtest/lib500.c
+++ b/tests/libtest/lib500.c
@@ -154,4 +154,3 @@ test_cleanup:
return (int)res;
}
-
diff --git a/tests/libtest/lib501.c b/tests/libtest/lib501.c
index af65bd4d..4549cb64 100644
--- a/tests/libtest/lib501.c
+++ b/tests/libtest/lib501.c
@@ -56,4 +56,3 @@ test_cleanup:
return (int)res;
}
-
diff --git a/tests/libtest/lib502.c b/tests/libtest/lib502.c
index ce4bc47d..df8905c8 100644
--- a/tests/libtest/lib502.c
+++ b/tests/libtest/lib502.c
@@ -89,4 +89,3 @@ test_cleanup:
return res;
}
-
diff --git a/tests/libtest/lib503.c b/tests/libtest/lib503.c
index 15b45f95..00791edf 100644
--- a/tests/libtest/lib503.c
+++ b/tests/libtest/lib503.c
@@ -99,4 +99,3 @@ test_cleanup:
return res;
}
-
diff --git a/tests/libtest/lib504.c b/tests/libtest/lib504.c
index 771b2038..8d1fe506 100644
--- a/tests/libtest/lib504.c
+++ b/tests/libtest/lib504.c
@@ -111,4 +111,3 @@ test_cleanup:
return res;
}
-
diff --git a/tests/libtest/lib506.c b/tests/libtest/lib506.c
index 5ed4f37e..9f656e03 100644
--- a/tests/libtest/lib506.c
+++ b/tests/libtest/lib506.c
@@ -377,4 +377,3 @@ test_cleanup:
return res;
}
-
diff --git a/tests/libtest/lib509.c b/tests/libtest/lib509.c
index 4f3e072a..59ced355 100644
--- a/tests/libtest/lib509.c
+++ b/tests/libtest/lib509.c
@@ -144,4 +144,3 @@ test_cleanup:
return (int)res;
}
-
diff --git a/tests/libtest/lib512.c b/tests/libtest/lib512.c
index 0c83ddd5..8a6f0e14 100644
--- a/tests/libtest/lib512.c
+++ b/tests/libtest/lib512.c
@@ -72,4 +72,3 @@ int test(char *URL)
return rc;
}
-
diff --git a/tests/libtest/lib519.c b/tests/libtest/lib519.c
index 5c55aebe..73da7d5c 100644
--- a/tests/libtest/lib519.c
+++ b/tests/libtest/lib519.c
@@ -60,4 +60,3 @@ test_cleanup:
return (int)res;
}
-
diff --git a/tests/libtest/lib521.c b/tests/libtest/lib521.c
index b7efca0b..8d9aa2e2 100644
--- a/tests/libtest/lib521.c
+++ b/tests/libtest/lib521.c
@@ -54,4 +54,3 @@ test_cleanup:
return (int)res;
}
-
diff --git a/tests/libtest/lib523.c b/tests/libtest/lib523.c
index 44aa2e2e..45043893 100644
--- a/tests/libtest/lib523.c
+++ b/tests/libtest/lib523.c
@@ -55,4 +55,3 @@ test_cleanup:
return (int)res;
}
-
diff --git a/tests/libtest/lib524.c b/tests/libtest/lib524.c
index 08fd34df..fe0a8ed2 100644
--- a/tests/libtest/lib524.c
+++ b/tests/libtest/lib524.c
@@ -53,4 +53,3 @@ test_cleanup:
return (int)res;
}
-
diff --git a/tests/libtest/lib547.c b/tests/libtest/lib547.c
index 3db4890d..3cfc81d2 100644
--- a/tests/libtest/lib547.c
+++ b/tests/libtest/lib547.c
@@ -128,4 +128,3 @@ test_cleanup:
return (int)res;
}
-
diff --git a/tests/libtest/lib549.c b/tests/libtest/lib549.c
index 1d832b53..bb41cd61 100644
--- a/tests/libtest/lib549.c
+++ b/tests/libtest/lib549.c
@@ -63,4 +63,3 @@ test_cleanup:
return (int)res;
}
-
diff --git a/tests/libtest/lib555.c b/tests/libtest/lib555.c
index c887b56f..42c89d8c 100644
--- a/tests/libtest/lib555.c
+++ b/tests/libtest/lib555.c
@@ -161,4 +161,3 @@ test_cleanup:
return res;
}
-
diff --git a/tests/libtest/lib556.c b/tests/libtest/lib556.c
index 884f413a..69b2c09d 100644
--- a/tests/libtest/lib556.c
+++ b/tests/libtest/lib556.c
@@ -106,4 +106,3 @@ test_cleanup:
return (int)res;
}
-
diff --git a/tests/libtest/lib558.c b/tests/libtest/lib558.c
index 09a50d6b..d9969738 100644
--- a/tests/libtest/lib558.c
+++ b/tests/libtest/lib558.c
@@ -50,4 +50,3 @@ int test(char *URL)
return (int)res;
}
-
diff --git a/tests/libtest/lib559.c b/tests/libtest/lib559.c
index 8c72dbd0..be112b8f 100644
--- a/tests/libtest/lib559.c
+++ b/tests/libtest/lib559.c
@@ -53,4 +53,3 @@ test_cleanup:
return (int)res;
}
-
diff --git a/tests/libtest/lib566.c b/tests/libtest/lib566.c
index ecf8c553..257738a4 100644
--- a/tests/libtest/lib566.c
+++ b/tests/libtest/lib566.c
@@ -65,4 +65,3 @@ test_cleanup:
return (int)res;
}
-
diff --git a/tests/libtest/lib567.c b/tests/libtest/lib567.c
index 64fb29af..7a730d26 100644
--- a/tests/libtest/lib567.c
+++ b/tests/libtest/lib567.c
@@ -67,4 +67,3 @@ test_cleanup:
return (int)res;
}
-
diff --git a/tests/libtest/lib568.c b/tests/libtest/lib568.c
index 3bb53f61..c1388f16 100644
--- a/tests/libtest/lib568.c
+++ b/tests/libtest/lib568.c
@@ -175,4 +175,3 @@ test_cleanup:
return res;
}
-
diff --git a/tests/libtest/lib569.c b/tests/libtest/lib569.c
index c18c882b..9c25db45 100644
--- a/tests/libtest/lib569.c
+++ b/tests/libtest/lib569.c
@@ -125,4 +125,3 @@ test_cleanup:
return res;
}
-
diff --git a/tests/libtest/lib570.c b/tests/libtest/lib570.c
index 1756a861..d88f100f 100644
--- a/tests/libtest/lib570.c
+++ b/tests/libtest/lib570.c
@@ -113,4 +113,3 @@ test_cleanup:
return res;
}
-
diff --git a/tests/libtest/lib571.c b/tests/libtest/lib571.c
index 70524f2f..c048747d 100644
--- a/tests/libtest/lib571.c
+++ b/tests/libtest/lib571.c
@@ -212,4 +212,3 @@ test_cleanup:
return res;
}
-
diff --git a/tests/libtest/lib572.c b/tests/libtest/lib572.c
index a78c9358..82d5049d 100644
--- a/tests/libtest/lib572.c
+++ b/tests/libtest/lib572.c
@@ -181,4 +181,3 @@ test_cleanup:
return res;
}
-
diff --git a/tests/libtest/lib573.c b/tests/libtest/lib573.c
index eb817b1e..e80824d1 100644
--- a/tests/libtest/lib573.c
+++ b/tests/libtest/lib573.c
@@ -111,4 +111,3 @@ test_cleanup:
return res;
}
-
diff --git a/tests/libtest/lib586.c b/tests/libtest/lib586.c
index a831b83d..24742248 100644
--- a/tests/libtest/lib586.c
+++ b/tests/libtest/lib586.c
@@ -244,4 +244,3 @@ test_cleanup:
return res;
}
-
diff --git a/tests/libtest/lib590.c b/tests/libtest/lib590.c
index cc3afdf0..db433fb9 100644
--- a/tests/libtest/lib590.c
+++ b/tests/libtest/lib590.c
@@ -69,4 +69,3 @@ int test(char *URL)
return (int)res;
}
-
diff --git a/tests/libtest/lib598.c b/tests/libtest/lib598.c
index c27e60b1..bd544701 100644
--- a/tests/libtest/lib598.c
+++ b/tests/libtest/lib598.c
@@ -70,4 +70,3 @@ test_cleanup:
return (int)res;
}
-
diff --git a/tests/libtest/libauthretry.c b/tests/libtest/libauthretry.c
index e9dc0508..8e348ad1 100644
--- a/tests/libtest/libauthretry.c
+++ b/tests/libtest/libauthretry.c
@@ -145,4 +145,3 @@ test_cleanup:
return (int)res;
}
-
diff --git a/tests/libtest/sethostname.h b/tests/libtest/sethostname.h
index 1a1c0775..7a590428 100644
--- a/tests/libtest/sethostname.h
+++ b/tests/libtest/sethostname.h
@@ -38,4 +38,3 @@
LIBHOSTNAME_EXTERN int FUNCALLCONV
gethostname(char *name, GETHOSTNAME_TYPE_ARG2 namelen);
-
diff --git a/tests/libtest/stub_gssapi.h b/tests/libtest/stub_gssapi.h
index 9a302f0f..95726d79 100644
--- a/tests/libtest/stub_gssapi.h
+++ b/tests/libtest/stub_gssapi.h
@@ -180,4 +180,3 @@ OM_uint32 gss_display_status(OM_uint32 * /*minor_status*/,
gss_buffer_t /*status_string*/);
#endif /* HEADER_CURL_GSSAPI_STUBS_H */
-
diff --git a/tests/libtest/testtrace.c b/tests/libtest/testtrace.c
index 3f9eedd8..0a98d006 100644
--- a/tests/libtest/testtrace.c
+++ b/tests/libtest/testtrace.c
@@ -142,4 +142,3 @@ int libtest_debug_cb(CURL *handle, curl_infotype type,
libtest_debug_dump(timebuf, text, stderr, data, size, trace_cfg->nohex);
return 0;
}
-
diff --git a/tests/libtest/testtrace.h b/tests/libtest/testtrace.h
index fafdf299..a09ce348 100644
--- a/tests/libtest/testtrace.h
+++ b/tests/libtest/testtrace.h
@@ -34,4 +34,3 @@ int libtest_debug_cb(CURL *handle, curl_infotype type,
void *userp);
#endif /* HEADER_LIBTEST_TESTTRACE_H */
-
diff --git a/tests/libtest/testutil.h b/tests/libtest/testutil.h
index f2aeae64..6c063ea5 100644
--- a/tests/libtest/testutil.h
+++ b/tests/libtest/testutil.h
@@ -42,4 +42,3 @@ double tutil_tvdiff_secs(struct timeval t1, struct timeval t2);
#endif /* HEADER_CURL_LIBTEST_TESTUTIL_H */
-
diff --git a/tests/negtelnetserver.py b/tests/negtelnetserver.py
index 8cfd4093..f2f2ab50 100755
--- a/tests/negtelnetserver.py
+++ b/tests/negtelnetserver.py
@@ -9,7 +9,6 @@ import argparse
import os
import sys
import logging
-import struct
try: # Python 2
import SocketServer as socketserver
except ImportError: # Python 3
@@ -22,8 +21,8 @@ IDENT = "NTEL"
# The strings that indicate the test framework is checking our aliveness
-VERIFIED_REQ = b"verifiedserver"
-VERIFIED_RSP = b"WE ROOLZ: {pid}"
+VERIFIED_REQ = "verifiedserver"
+VERIFIED_RSP = "WE ROOLZ: {pid}"
def telnetserver(options):
@@ -34,7 +33,7 @@ def telnetserver(options):
if options.pidfile:
pid = os.getpid()
with open(options.pidfile, "w") as f:
- f.write(b"{0}".format(pid))
+ f.write(str(pid))
local_bind = (HOST, options.port)
log.info("Listening on %s", local_bind)
@@ -68,9 +67,10 @@ class NegotiatingTelnetHandler(socketserver.BaseRequestHandler):
data = neg.recv(1024)
log.debug("Incoming data: %r", data)
- if VERIFIED_REQ in data:
+ if VERIFIED_REQ.encode('ascii') in data:
log.debug("Received verification request from test framework")
- response_data = VERIFIED_RSP.format(pid=os.getpid())
+ response = VERIFIED_RSP.format(pid=os.getpid())
+ response_data = response.encode('ascii')
else:
log.debug("Received normal request - echoing back")
response_data = data.strip()
@@ -113,11 +113,9 @@ class Negotiator(object):
# TCP failed to give us any data. Break out.
break
- for byte in data:
- byte_int = self.byte_to_int(byte)
-
+ for byte_int in bytearray(data):
if self.state == self.NO_NEG:
- self.no_neg(byte, byte_int, buffer)
+ self.no_neg(byte_int, buffer)
elif self.state == self.START_NEG:
self.start_neg(byte_int)
elif self.state in [self.WILL, self.WONT, self.DO, self.DONT]:
@@ -131,10 +129,7 @@ class Negotiator(object):
return buffer
- def byte_to_int(self, byte):
- return struct.unpack(b'B', byte)[0]
-
- def no_neg(self, byte, byte_int, buffer):
+ def no_neg(self, byte_int, buffer):
# Not negotiating anything thus far. Check to see if we
# should.
if byte_int == NegTokens.IAC:
@@ -143,7 +138,7 @@ class Negotiator(object):
self.state = self.START_NEG
else:
# Just append the incoming byte to the buffer
- buffer.append(byte)
+ buffer.append(byte_int)
def start_neg(self, byte_int):
# In a negotiation.
@@ -192,12 +187,8 @@ class Negotiator(object):
self.state)
self.state = self.NO_NEG
- def send_message(self, message):
- packed_message = self.pack(message)
- self.tcp.sendall(packed_message)
-
- def pack(self, arr):
- return struct.pack(b'{0}B'.format(len(arr)), *arr)
+ def send_message(self, message_ints):
+ self.tcp.sendall(bytearray(message_ints))
def send_iac(self, arr):
message = [NegTokens.IAC]
diff --git a/tests/pathhelp.pm b/tests/pathhelp.pm
index bd91c91b..3a413b22 100644
--- a/tests/pathhelp.pm
+++ b/tests/pathhelp.pm
@@ -181,7 +181,7 @@ sub get_win32_current_drive {
sub do_msys_transform;
# Internal function. Gets two parameters: first parameter must be single
-# drive letter ('c'), second optional parameter is path relative to drive's
+# drive letter ('c'), second optional parameter is path relative to drive's
# current working directory. Returns Win32 absolute normalized path.
sub get_abs_path_on_win32_drive;
@@ -455,7 +455,7 @@ sub build_sys_abs_path {
my $has_final_slash = ($path =~ m{[\\/]$});
- # Resolve relative directories, as they may be not resolved for
+ # Resolve relative directories, as they may be not resolved for
# Unix-style paths.
# Remove duplicated slashes, as they may be not processed.
$path = normalize_path($path);
@@ -624,7 +624,7 @@ sub do_msys_transform {
}
# Internal function. Gets two parameters: first parameter must be single
-# drive letter ('c'), second optional parameter is path relative to drive's
+# drive letter ('c'), second optional parameter is path relative to drive's
# current working directory. Returns Win32 absolute normalized path.
sub get_abs_path_on_win32_drive {
my ($drv, $rel_path) = @_;
diff --git a/tests/runtests.1 b/tests/runtests.1
index cb3d2867..5b63e563 100644
--- a/tests/runtests.1
+++ b/tests/runtests.1
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH runtests.pl 1 "May 05, 2017" "Curl 7.61.1" "runtests"
+.TH runtests.pl 1 "May 05, 2017" "Curl 7.62.0" "runtests"
.SH NAME
runtests.pl \- run one or more test cases
diff --git a/tests/runtests.pl b/tests/runtests.pl
index e12c1429..5dce3304 100755
--- a/tests/runtests.pl
+++ b/tests/runtests.pl
@@ -142,7 +142,6 @@ my $GOPHER6PORT; # Gopher IPv6 server port
my $HTTPTLSPORT; # HTTP TLS (non-stunnel) server port
my $HTTPTLS6PORT; # HTTP TLS (non-stunnel) IPv6 server port
my $HTTPPROXYPORT; # HTTP proxy port, when using CONNECT
-my $HTTPPIPEPORT; # HTTP pipelining port
my $HTTPUNIXPATH; # HTTP server Unix domain socket path
my $HTTP2PORT; # HTTP/2 server port
my $DICTPORT; # DICT server port
@@ -252,6 +251,7 @@ my $has_darwinssl; # built with DarwinSSL (Secure Transport)
my $has_boringssl; # built with BoringSSL
my $has_libressl; # built with libressl
my $has_mbedtls; # built with mbedTLS
+my $has_mesalink; # built with MesaLink
my $has_sslpinning; # built with a TLS backend that supports pinning
@@ -717,11 +717,11 @@ sub stopserver {
# All servers relative to the given one must be stopped also
#
my @killservers;
- if($server =~ /^(ftp|http|imap|pop3|smtp|httppipe)s((\d*)(-ipv6|-unix|))$/) {
+ if($server =~ /^(ftp|http|imap|pop3|smtp)s((\d*)(-ipv6|-unix|))$/) {
# given a stunnel based ssl server, also kill non-ssl underlying one
push @killservers, "${1}${2}";
}
- elsif($server =~ /^(ftp|http|imap|pop3|smtp|httppipe)((\d*)(-ipv6|-unix|))$/) {
+ elsif($server =~ /^(ftp|http|imap|pop3|smtp)((\d*)(-ipv6|-unix|))$/) {
# given a non-ssl server, also kill stunnel based ssl piggybacking one
push @killservers, "${1}s${2}";
}
@@ -1297,7 +1297,6 @@ my %protofunc = ('http' => \&verifyhttp,
'pop3' => \&verifyftp,
'imap' => \&verifyftp,
'smtp' => \&verifyftp,
- 'httppipe' => \&verifyhttp,
'ftps' => \&verifyftp,
'tftp' => \&verifyftp,
'ssh' => \&verifyssh,
@@ -1436,12 +1435,6 @@ sub runhttpserver {
# basically the same, but another ID
$idnum = 2;
}
- elsif($alt eq "pipe") {
- # basically the same, but another ID
- $idnum = 3;
- $exe = "python $srcdir/http_pipe.py";
- $verbose_flag .= "1 ";
- }
elsif($alt eq "unix") {
# IP (protocol) is mutually exclusive with Unix sockets
$ipvnum = "unix";
@@ -1512,81 +1505,6 @@ sub runhttpserver {
}
#######################################################################
-# start the http server
-#
-sub runhttp_pipeserver {
- my ($proto, $verbose, $alt, $port) = @_;
- my $ip = $HOSTIP;
- my $ipvnum = 4;
- my $idnum = 1;
- my $server;
- my $srvrname;
- my $pidfile;
- my $logfile;
- my $flags = "";
-
- if($alt eq "ipv6") {
- # No IPv6
- }
-
- $server = servername_id($proto, $ipvnum, $idnum);
-
- $pidfile = $serverpidfile{$server};
-
- # don't retry if the server doesn't work
- if ($doesntrun{$pidfile}) {
- return (0,0);
- }
-
- my $pid = processexists($pidfile);
- if($pid > 0) {
- stopserver($server, "$pid");
- }
- unlink($pidfile) if(-f $pidfile);
-
- $srvrname = servername_str($proto, $ipvnum, $idnum);
-
- $logfile = server_logfilename($LOGDIR, $proto, $ipvnum, $idnum);
-
- $flags .= "--verbose 1 " if($debugprotocol);
- $flags .= "--pidfile \"$pidfile\" --logfile \"$logfile\" ";
- $flags .= "--id $idnum " if($idnum > 1);
- $flags .= "--port $port --srcdir \"$srcdir\"";
-
- my $cmd = "$srcdir/http_pipe.py $flags";
- my ($httppid, $pid2) = startnew($cmd, $pidfile, 15, 0);
-
- if($httppid <= 0 || !pidexists($httppid)) {
- # it is NOT alive
- logmsg "RUN: failed to start the $srvrname server\n";
- stopserver($server, "$pid2");
- displaylogs($testnumcheck);
- $doesntrun{$pidfile} = 1;
- return (0,0);
- }
-
- # Server is up. Verify that we can speak to it.
- my $pid3 = verifyserver($proto, $ipvnum, $idnum, $ip, $port);
- if(!$pid3) {
- logmsg "RUN: $srvrname server failed verification\n";
- # failed to talk to it properly. Kill the server and return failure
- stopserver($server, "$httppid $pid2");
- displaylogs($testnumcheck);
- $doesntrun{$pidfile} = 1;
- return (0,0);
- }
- $pid2 = $pid3;
-
- if($verbose) {
- logmsg "RUN: $srvrname server is now running PID $httppid\n";
- }
-
- sleep(1);
-
- return ($httppid, $pid2);
-}
-
-#######################################################################
# start the https stunnel based server
#
sub runhttpsserver {
@@ -2764,10 +2682,10 @@ sub checksystem {
$curl =~ s/^(.*)(libcurl.*)/$1/g;
$libcurl = $2;
- if($curl =~ /linux|bsd|solaris|darwin/) {
+ if($curl =~ /linux|bsd|solaris/) {
$has_ldpreload = 1;
}
- if($curl =~ /win32|mingw(32|64)/) {
+ if($curl =~ /win32|Windows|mingw(32|64)/) {
# This is a Windows MinGW build or native build, we need to use
# Win32-style path.
$pwd = pathhelp::sys_native_current_path();
@@ -2830,6 +2748,10 @@ sub checksystem {
$has_cares=1;
$resolver="c-ares";
}
+ if ($libcurl =~ /mesalink/i) {
+ $has_mesalink=1;
+ $ssllib="MesaLink";
+ }
}
elsif($_ =~ /^Protocols: (.*)/i) {
# these are the protocols compiled in to this libcurl
@@ -2844,9 +2766,6 @@ sub checksystem {
# 'http-proxy' is used in test cases to do CONNECT through
push @protocols, 'http-proxy';
- # 'http-pipe' is the special server for testing pipelining
- push @protocols, 'http-pipe';
-
# 'none' is used in test cases to mean no server
push @protocols, 'none';
}
@@ -3118,7 +3037,6 @@ sub checksystem {
}
logmsg "\n";
}
- logmsg sprintf("* HTTP-PIPE/%d \n", $HTTPPIPEPORT);
if($has_unix) {
logmsg "* Unix socket paths:\n";
@@ -3155,7 +3073,6 @@ sub subVariables {
$$thing =~ s/%HTTPSPORT/$HTTPSPORT/g;
$$thing =~ s/%HTTP2PORT/$HTTP2PORT/g;
$$thing =~ s/%HTTPPORT/$HTTPPORT/g;
- $$thing =~ s/%HTTPPIPEPORT/$HTTPPIPEPORT/g;
$$thing =~ s/%PROXYPORT/$HTTPPROXYPORT/g;
$$thing =~ s/%IMAP6PORT/$IMAP6PORT/g;
@@ -4849,23 +4766,6 @@ sub startservers {
$run{'http-ipv6'}="$pid $pid2";
}
}
- elsif($what eq "http-pipe") {
- if($torture && $run{'http-pipe'} &&
- !responsive_http_server("http", $verbose, "pipe",
- $HTTPPIPEPORT)) {
- stopserver('http-pipe');
- }
- if(!$run{'http-pipe'}) {
- ($pid, $pid2) = runhttpserver("http", $verbose, "pipe",
- $HTTPPIPEPORT);
- if($pid <= 0) {
- return "failed starting HTTP-pipe server";
- }
- logmsg sprintf ("* pid http-pipe => %d %d\n", $pid, $pid2)
- if($verbose);
- $run{'http-pipe'}="$pid $pid2";
- }
- }
elsif($what eq "rtsp") {
if($torture && $run{'rtsp'} &&
!responsive_rtsp_server($verbose)) {
@@ -5315,6 +5215,12 @@ sub runtimestats {
logmsg "\n";
}
+# globally disabled tests
+disabledtests("$TESTDIR/DISABLED");
+
+# locally disabled tests, ignored by git etc
+disabledtests("$TESTDIR/DISABLED.local");
+
#######################################################################
# Check options to this test program
#
@@ -5469,8 +5375,17 @@ EOHELP
elsif($ARGV[0] =~ /^(\d+)/) {
$number = $1;
if($fromnum >= 0) {
- for($fromnum .. $number) {
- push @testthis, $_;
+ for my $n ($fromnum .. $number) {
+ if($disabled{$n}) {
+ # skip disabled test cases
+ my $why = "configured as DISABLED";
+ $skipped++;
+ $skipped{$why}++;
+ $teststat[$n]=$why; # store reason for this test case
+ }
+ else {
+ push @testthis, $n;
+ }
}
$fromnum = -1;
}
@@ -5578,7 +5493,6 @@ $GOPHER6PORT = $base++; # Gopher IPv6 server port
$HTTPTLSPORT = $base++; # HTTP TLS (non-stunnel) server port
$HTTPTLS6PORT = $base++; # HTTP TLS (non-stunnel) IPv6 server port
$HTTPPROXYPORT = $base++; # HTTP proxy port, when using CONNECT
-$HTTPPIPEPORT = $base++; # HTTP pipelining port
$HTTP2PORT = $base++; # HTTP/2 port
$DICTPORT = $base++; # DICT port
$SMBPORT = $base++; # SMB port
@@ -5629,12 +5543,6 @@ sub disabledtests {
}
}
-# globally disabled tests
-disabledtests("$TESTDIR/DISABLED");
-
-# locally disabled tests, ignored by git etc
-disabledtests("$TESTDIR/DISABLED.local");
-
#######################################################################
# If 'all' tests are requested, find out all test numbers
#
diff --git a/tests/server/CMakeLists.txt b/tests/server/CMakeLists.txt
index 9d2a4316..78b9b702 100644
--- a/tests/server/CMakeLists.txt
+++ b/tests/server/CMakeLists.txt
@@ -57,4 +57,3 @@ endforeach()
# SETUP_EXECUTABLE(sockfilt sockfilt.c util.c util.h ${useful} ${CURL_SOURCE_DIR}/lib/inet_pton.c)
# SETUP_EXECUTABLE(getpart testpart.c ${useful})
# SETUP_EXECUTABLE(tftpd tftpd.c util.c util.h ${useful} tftp.h)
-
diff --git a/tests/server/rtspd.c b/tests/server/rtspd.c
index 4519eab6..0629d8a5 100644
--- a/tests/server/rtspd.c
+++ b/tests/server/rtspd.c
@@ -1481,4 +1481,3 @@ server_cleanup:
logmsg("========> rtspd quits");
return 0;
}
-
diff --git a/tests/server/sockfilt.c b/tests/server/sockfilt.c
index 10a16ef0..86a1ff52 100644
--- a/tests/server/sockfilt.c
+++ b/tests/server/sockfilt.c
@@ -1563,4 +1563,3 @@ sockfilt_cleanup:
logmsg("============> sockfilt quits");
return 0;
}
-
diff --git a/tests/server/sws.c b/tests/server/sws.c
index fbe7761d..8df4d76e 100644
--- a/tests/server/sws.c
+++ b/tests/server/sws.c
@@ -2425,4 +2425,3 @@ sws_cleanup:
logmsg("========> sws quits");
return 0;
}
-
diff --git a/tests/server/testpart.c b/tests/server/testpart.c
index 77f14864..7d31e518 100644
--- a/tests/server/testpart.c
+++ b/tests/server/testpart.c
@@ -47,4 +47,3 @@ int main(int argc, char **argv)
}
return 0;
}
-
diff --git a/tests/server/util.c b/tests/server/util.c
index df681968..07ef63ee 100644
--- a/tests/server/util.c
+++ b/tests/server/util.c
@@ -414,7 +414,8 @@ static struct timeval tvnow(void)
** is typically in the range of 10 milliseconds to 16 milliseconds.
*/
struct timeval now;
-#if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0600)
+#if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0600) && \
+ (!defined(__MINGW32__) || defined(__MINGW64_VERSION_MAJOR))
ULONGLONG milliseconds = GetTickCount64();
#else
DWORD milliseconds = GetTickCount();
diff --git a/tests/serverhelp.pm b/tests/serverhelp.pm
index a83a1258..7c9808c8 100644
--- a/tests/serverhelp.pm
+++ b/tests/serverhelp.pm
@@ -244,4 +244,3 @@ sub datasockf_logfilename {
#***************************************************************************
# End of library
1;
-
diff --git a/tests/sshhelp.pm b/tests/sshhelp.pm
index c5618a10..7345eb30 100644
--- a/tests/sshhelp.pm
+++ b/tests/sshhelp.pm
@@ -451,4 +451,3 @@ sub sshversioninfo {
#***************************************************************************
# End of library
1;
-
diff --git a/tests/stunnel.pem b/tests/stunnel.pem
index d9b9679e..2a059417 100644
--- a/tests/stunnel.pem
+++ b/tests/stunnel.pem
@@ -4,7 +4,7 @@
# 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 ]
@@ -39,105 +39,134 @@ commonName_value = "storbror"
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=
+MIIEpAIBAAKCAQEA4m+wAdU3ml4EGud+/rx3ZY9VnNIfRZo6yDGogOk/Pg1NM7zo
++cXsRhQZuFNskxOgiYv9vTLJCocPXGJBRhosnCkUXypbaismZLGXBxyvUNvI4cNi
+/icPnq9RHwWCbX9UpSn6nsjcVyHacQeHEza8pC5MnFDC8tTTy3rCpWe2LKSp3X6g
+E4vKRiLFbXAZshrtk8wKiRuDuiNhxUyYcVs3s5+Il8Y9yu/kGkY6U15SizO+o224
+kfOHL6W9Ut4l2xY7aRZLWhqjyihlaHSLFEiLkR9fPMVDTOF6j/g2fFAjNePw6+9Y
+VbVq0PQF1cY0ew6wMNvu7cVLZo+xz5toebOH4wIDAQABAoIBAGLf1CIowVvVm8NH
+vIttLlGZkg+lLOSOoQZTsLmBoAzvb/ucjLqsMyyykDyNqQZb9qi5CTY5W9IOAaYc
+fVYoDbyur2eSrlIgv2YOqd0AKImNPx1d3PcPhWGMOkbqd/ZqOELansYA/T3K2YCr
+gc7hAuRKF0fWeBni1wyt8Rqau9Cn0AK/aAf/Fn28bCaS5DrkqvsM2wOIRWelGgCM
+3zfn+RbhcLbBPIyP6iC+8Gm39pK8JZznJXC0rhN05edvh0+ILlB7lMJ4t5lnLSxF
+vsfkxLGl5pMXWthJ0VYl+H5JIsD+7+dc45HjX21GLs6eTW0hMxPcrqaNlWgQPMxG
+DQNriPECgYEA8tfVQiyzT7rM2HI562BlV5b0PEafq2F7WAzNWMGiBxxRUpMnAtmn
+VVsWiRrHch4Y4nlbmjvQDhrvDOzpGuEPAi+FtePk23y87q8lB8VjOSDR86TPvSXK
+QqMDZ8ffYvRIh7MKYO8gvIYrjMEDeSQNzGxiyw3e0EIGuuQt+42t8JkCgYEA7rRL
+4sl3fl/npxacrtFNnqZP+R/KKBbdbeOgJPDPknMfzd6/B5Pyznz6dG3N3QwivPPF
+uAjPgqI8Pt+7SFW8Rw7XRVWZP9fZGPWrDdqdP/0lzDLYmmHXICqCVQXQapKofZbI
+HfV0HZSGuJtEiLG3bzjQiQx5jJlXtegMHHpMfdsCgYAzVrvIDKkv3t71l1h1UWC7
+XrdtksSot6ga2kIDVJRLiooKuf9SU+9TVTlzbMzjbEd4gY2DEsgOY1VMVz2EqDXD
+EYbkCDTWzg0nLLHYbbtnVW/tYVdltnqHEe1jYFbylZBL1+cGzScPlBHa5Oc2EhA0
+umk8YkdLodnIYvrxpmcyaQKBgQCd6UJGblcRkCp0e939PFNn/8fqG6ClsrKbjrkT
+lwcKcAR7Mb8YKUS4Wy9otHc6o1ubunxzScjVN7Q5N9LygF1EeMnqgT0XYhipjWOy
+j4v1l+dYVc67Gryw984upuEAj7LNGmGaiBVfuDEDkRvefgrGlkRGVa1XWN4QZckV
+UcamfwKBgQDO9xGun8Q97KonBRih4aNBM+89/8/deZNPAc8MAImzFHyTMNTD06C/
+3wnJwMiyNbZEUfKavapNz3+oe0fXMbgjfEypbaP7jKHSxr2tKwJV+MK1RVF4Sd3l
+ou6XtlnToLp/LO1X3E/IcYameT5VLi/4OyFOMKe9K0Woxvhz42PDww==
-----END RSA PRIVATE KEY-----
Certificate:
Data:
Version: 3 (0x2)
- Serial Number:
- a4:17:70:09:88:8c:48:cd
- Signature Algorithm: sha1WithRSAEncryption
+ Serial Number: 17862059579548371559 (0xf7e2c88ce3d80a67)
+ Signature Algorithm: sha256WithRSAEncryption
Issuer: C=SE, ST=Solna, L=Mooo, O=Haxx, OU=Coolx, CN=storbror, CN=localhost
Validity
- Not Before: Feb 22 15:38:48 2014 GMT
- Not After : Feb 20 15:38:48 2024 GMT
+ Not Before: Aug 31 23:39:18 2018 GMT
+ Not After : Aug 28 23:39:18 2028 GMT
Subject: C=SE, ST=Solna, L=Mooo, O=Haxx, OU=Coolx, CN=storbror, CN=localhost
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
- Public-Key: (1234 bit)
+ Public-Key: (2048 bit)
Modulus:
- 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
+ 00:e2:6f:b0:01:d5:37:9a:5e:04:1a:e7:7e:fe:bc:
+ 77:65:8f:55:9c:d2:1f:45:9a:3a:c8:31:a8:80:e9:
+ 3f:3e:0d:4d:33:bc:e8:f9:c5:ec:46:14:19:b8:53:
+ 6c:93:13:a0:89:8b:fd:bd:32:c9:0a:87:0f:5c:62:
+ 41:46:1a:2c:9c:29:14:5f:2a:5b:6a:2b:26:64:b1:
+ 97:07:1c:af:50:db:c8:e1:c3:62:fe:27:0f:9e:af:
+ 51:1f:05:82:6d:7f:54:a5:29:fa:9e:c8:dc:57:21:
+ da:71:07:87:13:36:bc:a4:2e:4c:9c:50:c2:f2:d4:
+ d3:cb:7a:c2:a5:67:b6:2c:a4:a9:dd:7e:a0:13:8b:
+ ca:46:22:c5:6d:70:19:b2:1a:ed:93:cc:0a:89:1b:
+ 83:ba:23:61:c5:4c:98:71:5b:37:b3:9f:88:97:c6:
+ 3d:ca:ef:e4:1a:46:3a:53:5e:52:8b:33:be:a3:6d:
+ b8:91:f3:87:2f:a5:bd:52:de:25:db:16:3b:69:16:
+ 4b:5a:1a:a3:ca:28:65:68:74:8b:14:48:8b:91:1f:
+ 5f:3c:c5:43:4c:e1:7a:8f:f8:36:7c:50:23:35:e3:
+ f0:eb:ef:58:55:b5:6a:d0:f4:05:d5:c6:34:7b:0e:
+ b0:30:db:ee:ed:c5:4b:66:8f:b1:cf:9b:68:79:b3:
+ 87:e3
Exponent: 65537 (0x10001)
X509v3 extensions:
- X509v3 Subject Alternative Name:
+ X509v3 Subject Alternative Name:
DNS:localhost
- Netscape Cert Type:
+ Netscape Cert Type:
SSL Server
- Netscape Comment:
+ Netscape Comment:
CURL stunnel server test certificate
- X509v3 Key Usage:
+ X509v3 Key Usage:
Digital Signature, Key Encipherment
- X509v3 Extended Key Usage:
+ X509v3 Extended Key Usage:
TLS Web Server Authentication
- X509v3 Basic Constraints:
+ 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:
+ X509v3 Subject Key Identifier:
+ 5D:A5:DB:5A:C8:6D:31:A6:B0:E3:4D:47:50:AA:87:A9:B2:DE:9F:37
+ Subject Information Access:
ad dvcs - URI:https://localhost:8433/509
- Authority Information Access:
+ Authority Information Access:
ad dvcs - URI:https://localhost:8433/509
- Signature Algorithm: sha1WithRSAEncryption
- 00:45:db:09:5b:08:5b:1a:ff:71:50:6c:12:ad:8e:78:32:1d:
- 7d:e7:e4:d3:3e:5f:ca:20:84:aa:ff:9a:c2:b6:a9:48:93:1f:
- 73:27:d1:68:05:76:36:f9:c1:53:90:ad:8a:c0:b3:12:c8:11:
- 5c:2c:65:01:ac:31:d1:8e:60:6e:c6:f5:ba:9d:69:e8:f1:ac:
- 4a:de:52:94:cd:06:24:45:72:64:89:0f:57:8b:26:2b:16:cf:
- 0b:27:c4:e8:73:c7:d3:e5:42:38:95:57:b5:bb:83:b4:92:d4:
- e0:cd:fb:c8:f5:d2:da:1d:11:fe:3c:18:20:8b:bd:22:31:1c:
- 5a:82:d4:f5:71:8d:8a:e3:13:82:c5:2d:f3:9f:d0:b7:b8:4b:
- d2:46:9d:8e:1a:d7:99:6e:c1:b9:a0
+ Signature Algorithm: sha256WithRSAEncryption
+ 63:26:72:df:c4:68:af:f1:30:60:4e:ac:94:bd:37:3e:c4:1f:
+ 6b:43:6e:0f:1c:67:49:f4:fb:19:83:23:b6:75:46:a0:84:bd:
+ 8b:61:21:00:05:6b:d6:09:16:94:8f:5b:9d:98:98:d6:1e:86:
+ 23:26:1e:e8:39:ac:0a:89:ea:17:b5:4f:60:20:9a:2b:4a:d4:
+ 9f:4e:3d:d4:ac:05:db:25:94:56:e3:87:13:ea:ab:83:57:18:
+ ff:26:e3:46:0c:e6:49:7e:74:2e:77:98:54:52:30:ea:6f:58:
+ 35:dc:63:fb:e4:a2:c3:12:87:dd:e9:2a:18:5c:9c:cf:a4:d3:
+ 58:7f:d0:50:50:0f:b9:b7:cb:a8:d9:bd:b8:7c:e4:29:d5:f3:
+ fd:6f:3f:ea:fc:0f:21:3f:ad:2f:ac:3c:28:e3:74:87:43:a9:
+ f0:46:81:4b:c8:a5:75:50:5b:e2:d5:75:0a:98:af:2c:6d:6b:
+ 6a:cc:c6:37:5f:04:52:c4:d8:6a:a0:f6:99:76:c3:3b:3b:50:
+ c8:bc:ea:50:04:a1:c0:54:82:b4:2f:09:b8:6e:ac:cc:64:12:
+ ce:b8:24:7a:5a:e5:f5:e5:79:9f:28:da:a2:11:45:f5:2a:cb:
+ e3:b0:96:6a:ac:2b:d3:02:01:21:6d:38:ef:52:60:5e:50:b1:
+ 25:e5:4f:69
-----BEGIN CERTIFICATE-----
-MIIDtzCCAwWgAwIBAgIJAKQXcAmIjEjNMA0GCSqGSIb3DQEBBQUAMHIxCzAJBgNV
+MIIEhzCCA2+gAwIBAgIJAPfiyIzj2ApnMA0GCSqGSIb3DQEBCwUAMHIxCzAJBgNV
BAYTAlNFMQ4wDAYDVQQIEwVTb2xuYTENMAsGA1UEBxMETW9vbzENMAsGA1UEChME
SGF4eDEOMAwGA1UECxMFQ29vbHgxETAPBgNVBAMTCHN0b3Jicm9yMRIwEAYDVQQD
-Ewlsb2NhbGhvc3QwHhcNMTQwMjIyMTUzODQ4WhcNMjQwMjIwMTUzODQ4WjByMQsw
+Ewlsb2NhbGhvc3QwHhcNMTgwODMxMjMzOTE4WhcNMjgwODI4MjMzOTE4WjByMQsw
CQYDVQQGEwJTRTEOMAwGA1UECBMFU29sbmExDTALBgNVBAcTBE1vb28xDTALBgNV
BAoTBEhheHgxDjAMBgNVBAsTBUNvb2x4MREwDwYDVQQDEwhzdG9yYnJvcjESMBAG
-A1UEAxMJbG9jYWxob3N0MIG5MA0GCSqGSIb3DQEBAQUAA4GnADCBowKBmwNZN+oG
-6vJ8DAze+FvOKSS49X4xGMxALhKRLhQQb7qvM+7BcMgRv+RKxkX7SNgcxKPLcIHf
-7QQ6DBIlLXuAuVHQtWW9b06q64kBElkEwh6gP5Ia9JrRysGbu2U6NRP+xBU33dVw
-ZjF07ocN9Pp392W4VxEc+g3+FkRzUEaahDGOabmjgKuqDdlKdZLzgJj7+9sEKpb7
-+FdG56rZAgMBAAGjggEeMIIBGjAUBgNVHREEDTALgglsb2NhbGhvc3QwEQYJYIZI
-AYb4QgEBBAQDAgZAMDMGCWCGSAGG+EIBDQQmFiRDVVJMIHN0dW5uZWwgc2VydmVy
-IHRlc3QgY2VydGlmaWNhdGUwCwYDVR0PBAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUF
-BwMBMAkGA1UdEwQCMAAwHQYDVR0OBBYEFDV3NTubmDy2x5rnqAS5fHCt+jepMDYG
-CCsGAQUFBwELBCowKDAmBggrBgEFBQcwBIYaaHR0cHM6Ly9sb2NhbGhvc3Q6ODQz
-My81MDkwNgYIKwYBBQUHAQEEKjAoMCYGCCsGAQUFBzAEhhpodHRwczovL2xvY2Fs
-aG9zdDo4NDMzLzUwOTANBgkqhkiG9w0BAQUFAAOBnAAARdsJWwhbGv9xUGwSrY54
-Mh195+TTPl/KIISq/5rCtqlIkx9zJ9FoBXY2+cFTkK2KwLMSyBFcLGUBrDHRjmBu
-xvW6nWno8axK3lKUzQYkRXJkiQ9XiyYrFs8LJ8Toc8fT5UI4lVe1u4O0ktTgzfvI
-9dLaHRH+PBggi70iMRxagtT1cY2K4xOCxS3zn9C3uEvSRp2OGteZbsG5oA==
+A1UEAxMJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
+4m+wAdU3ml4EGud+/rx3ZY9VnNIfRZo6yDGogOk/Pg1NM7zo+cXsRhQZuFNskxOg
+iYv9vTLJCocPXGJBRhosnCkUXypbaismZLGXBxyvUNvI4cNi/icPnq9RHwWCbX9U
+pSn6nsjcVyHacQeHEza8pC5MnFDC8tTTy3rCpWe2LKSp3X6gE4vKRiLFbXAZshrt
+k8wKiRuDuiNhxUyYcVs3s5+Il8Y9yu/kGkY6U15SizO+o224kfOHL6W9Ut4l2xY7
+aRZLWhqjyihlaHSLFEiLkR9fPMVDTOF6j/g2fFAjNePw6+9YVbVq0PQF1cY0ew6w
+MNvu7cVLZo+xz5toebOH4wIDAQABo4IBHjCCARowFAYDVR0RBA0wC4IJbG9jYWxo
+b3N0MBEGCWCGSAGG+EIBAQQEAwIGQDAzBglghkgBhvhCAQ0EJhYkQ1VSTCBzdHVu
+bmVsIHNlcnZlciB0ZXN0IGNlcnRpZmljYXRlMAsGA1UdDwQEAwIFoDATBgNVHSUE
+DDAKBggrBgEFBQcDATAJBgNVHRMEAjAAMB0GA1UdDgQWBBRdpdtayG0xprDjTUdQ
+qoepst6fNzA2BggrBgEFBQcBCwQqMCgwJgYIKwYBBQUHMASGGmh0dHBzOi8vbG9j
+YWxob3N0Ojg0MzMvNTA5MDYGCCsGAQUFBwEBBCowKDAmBggrBgEFBQcwBIYaaHR0
+cHM6Ly9sb2NhbGhvc3Q6ODQzMy81MDkwDQYJKoZIhvcNAQELBQADggEBAGMmct/E
+aK/xMGBOrJS9Nz7EH2tDbg8cZ0n0+xmDI7Z1RqCEvYthIQAFa9YJFpSPW52YmNYe
+hiMmHug5rAqJ6he1T2AgmitK1J9OPdSsBdsllFbjhxPqq4NXGP8m40YM5kl+dC53
+mFRSMOpvWDXcY/vkosMSh93pKhhcnM+k01h/0FBQD7m3y6jZvbh85CnV8/1vP+r8
+DyE/rS+sPCjjdIdDqfBGgUvIpXVQW+LVdQqYryxta2rMxjdfBFLE2Gqg9pl2wzs7
+UMi86lAEocBUgrQvCbhurMxkEs64JHpa5fXleZ8o2qIRRfUqy+OwlmqsK9MCASFt
+OO9SYF5QsSXlT2k=
-----END CERTIFICATE-----
-----BEGIN DH PARAMETERS-----
-MIGHAoGBAMq/KFGh2oy16WzkFs1U71Uz7dIEKvSYfc+zo439pYyVzcD8MkcC15Zb
-ayK3jPBYf07eKzc2TvI3/ZSducmECNP8gk2gAndP1P1rmpheN+owZJS7kQVfQmHl
-UmT87U99NPaMHXMNOsFj/3mbAaANndKEnd8PM2r5fg16C4+2e5KzAgEC
------END DH PARAMETERS-----
+MIIBCAKCAQEA5H4005OFRDtVlHgJ5AGLRMAqvc+f4g7fApALq/1qJCwF7xq3POya
+hFr/O+9WtdlaiXLi0tqJzj5Cfv0ChIUcSOD7qBfUpIYcDFqQhYaRexMP6h0Ugk9x
+sIs2tcUfix7xemGLdawkGD041MJW8SK0+iY/s2wIXH/Pp5w7/e/RmTcjTa3QnL8O
+zbyXnZVvCEpDhRefgYrY5lR4SeZHl8+A6qe+M37g9Lai+ASCDuGfiynRW8JqAA3n
+5ozPhlQF3HaHglvEONUM0Qxd5a4jVjTXQYfV+hqvkz/Ykv8rZa8rVjx/bi1sKM66
++WwPhqnjh31d+nFezqDJC4j0wLmxorDkMwIBAg==
+-----END DH PARAMETERS----- \ No newline at end of file
diff --git a/tests/testcurl.1 b/tests/testcurl.1
index 3c4308c9..68aeb78b 100644
--- a/tests/testcurl.1
+++ b/tests/testcurl.1
@@ -20,7 +20,7 @@
.\" *
.\" **************************************************************************
.\"
-.TH testcurl.pl 1 "October 22, 2016" "Curl 7.61.1" "testcurl"
+.TH testcurl.pl 1 "October 22, 2016" "Curl 7.62.0" "testcurl"
.SH NAME
testcurl.pl \- (automatically) test curl
diff --git a/tests/unit/CMakeLists.txt b/tests/unit/CMakeLists.txt
index 3c0a6c62..4b0cec4a 100644
--- a/tests/unit/CMakeLists.txt
+++ b/tests/unit/CMakeLists.txt
@@ -21,6 +21,7 @@ set(UT_SRC
unit1603.c
# Broken link on Linux
# unit1604.c
+ unit1620.c
)
set(UT_COMMON_FILES ../libtest/first.c ../libtest/test.h curlcheck.h)
diff --git a/tests/unit/Makefile.inc b/tests/unit/Makefile.inc
index a2618813..95d6cb44 100644
--- a/tests/unit/Makefile.inc
+++ b/tests/unit/Makefile.inc
@@ -5,12 +5,13 @@ UNITFILES = curlcheck.h \
../libtest/first.c
# These are all unit test programs
-UNITPROGS = unit1300 unit1301 unit1302 unit1303 unit1304 unit1305 unit1307 \
+UNITPROGS = unit1300 unit1301 unit1302 unit1303 unit1304 unit1305 unit1307 \
unit1308 unit1309 unit1323 \
- unit1330 unit1394 unit1395 unit1396 unit1397 unit1398 \
- unit1399 \
+ unit1330 unit1394 unit1395 unit1396 unit1397 unit1398 \
+ unit1399 \
unit1600 unit1601 unit1602 unit1603 unit1604 unit1605 unit1606 unit1607 \
- unit1608 unit1609
+ unit1608 unit1609 unit1620 \
+ unit1650 unit1651
unit1300_SOURCES = unit1300.c $(UNITFILES)
unit1300_CPPFLAGS = $(AM_CPPFLAGS)
@@ -95,3 +96,12 @@ unit1608_CPPFLAGS = $(AM_CPPFLAGS)
unit1609_SOURCES = unit1609.c $(UNITFILES)
unit1609_CPPFLAGS = $(AM_CPPFLAGS)
+
+unit1620_SOURCES = unit1620.c $(UNITFILES)
+unit1620_CPPFLAGS = $(AM_CPPFLAGS)
+
+unit1650_SOURCES = unit1650.c $(UNITFILES)
+unit1650_CPPFLAGS = $(AM_CPPFLAGS)
+
+unit1651_SOURCES = unit1651.c $(UNITFILES)
+unit1651_CPPFLAGS = $(AM_CPPFLAGS)
diff --git a/tests/unit/curlcheck.h b/tests/unit/curlcheck.h
index 46cb84aa..c358afa6 100644
--- a/tests/unit/curlcheck.h
+++ b/tests/unit/curlcheck.h
@@ -99,4 +99,3 @@ unit_test_abort: \
} \
return unitfail; \
}
-
diff --git a/tests/unit/unit1300.c b/tests/unit/unit1300.c
index 6030db0d..5cfa6daf 100644
--- a/tests/unit/unit1300.c
+++ b/tests/unit/unit1300.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, 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
@@ -43,8 +43,6 @@ static CURLcode unit_setup(void)
static void unit_stop(void)
{
- Curl_llist_destroy(&llist, NULL);
- Curl_llist_destroy(&llist_destination, NULL);
}
UNITTEST_START
@@ -266,5 +264,8 @@ UNITTEST_START
fail_unless(llist_destination.tail == llist_destination.head,
"llist_destination tail doesn't equal llist_destination head");
+
+ Curl_llist_destroy(&llist, NULL);
+ Curl_llist_destroy(&llist_destination, NULL);
}
UNITTEST_STOP
diff --git a/tests/unit/unit1620.c b/tests/unit/unit1620.c
new file mode 100644
index 00000000..a47ff49a
--- /dev/null
+++ b/tests/unit/unit1620.c
@@ -0,0 +1,90 @@
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2018, 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 https://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.
+ *
+ ***************************************************************************/
+#include "curlcheck.h"
+
+#include "urldata.h"
+#include "url.h"
+
+#include "memdebug.h" /* LAST include file */
+
+static CURLcode unit_setup(void)
+{
+ return CURLE_OK;
+}
+
+static void unit_stop(void)
+{
+}
+
+UNITTEST_START
+{
+ int rc;
+ struct Curl_easy *empty;
+ const char *hostname = "hostname";
+ enum dupstring i;
+
+ bool async = FALSE;
+ bool protocol_connect = FALSE;
+
+ rc = Curl_open(&empty);
+ fail_unless(rc == CURLE_OK, "Curl_open() failed");
+
+ rc = Curl_connect(empty, &empty->easy_conn, &async, &protocol_connect);
+ fail_unless(rc == CURLE_URL_MALFORMAT,
+ "Curl_connect() failed to return CURLE_URL_MALFORMAT");
+
+ fail_unless(empty->magic == CURLEASY_MAGIC_NUMBER,
+ "empty->magic should be equal to CURLEASY_MAGIC_NUMBER");
+
+ /* double invoke to ensure no dependency on internal state */
+ rc = Curl_connect(empty, &empty->easy_conn, &async, &protocol_connect);
+ fail_unless(rc == CURLE_URL_MALFORMAT,
+ "Curl_connect() failed to return CURLE_URL_MALFORMAT");
+
+ rc = Curl_init_userdefined(empty);
+ fail_unless(rc == CURLE_OK, "Curl_userdefined() failed");
+
+ rc = Curl_init_do(empty, empty->easy_conn);
+ fail_unless(rc == CURLE_OK, "Curl_init_do() failed");
+
+ rc = Curl_parse_login_details(
+ hostname, strlen(hostname), NULL, NULL, NULL);
+ fail_unless(rc == CURLE_OK,
+ "Curl_parse_login_details() failed");
+
+ rc = Curl_disconnect(empty, empty->easy_conn, FALSE);
+ fail_unless(rc == CURLE_OK,
+ "Curl_disconnect() with dead_connection set FALSE failed");
+
+ Curl_freeset(empty);
+ for(i = (enum dupstring)0; i < STRING_LAST; i++) {
+ fail_unless(empty->set.str[i] == NULL,
+ "Curl_free() did not set to NULL");
+ }
+
+ Curl_free_request_state(empty);
+
+ rc = Curl_close(empty);
+ fail_unless(rc == CURLE_OK, "Curl_close() failed");
+
+}
+UNITTEST_STOP
diff --git a/tests/unit/unit1650.c b/tests/unit/unit1650.c
new file mode 100644
index 00000000..ddf228f8
--- /dev/null
+++ b/tests/unit/unit1650.c
@@ -0,0 +1,294 @@
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 2018, 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 https://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.
+ *
+ ***************************************************************************/
+#include "curlcheck.h"
+
+#include "doh.h"
+
+static CURLcode unit_setup(void)
+{
+ return CURLE_OK;
+}
+
+static void unit_stop(void)
+{
+
+}
+
+#ifdef USE_NGHTTP2
+#define DNS_PREAMBLE "\x00\x00\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00"
+#define LABEL_TEST "\x04\x74\x65\x73\x74"
+#define LABEL_HOST "\x04\x68\x6f\x73\x74"
+#define LABEL_NAME "\x04\x6e\x61\x6d\x65"
+#define DNSA_TYPE "\x01"
+#define DNSAAAA_TYPE "\x1c"
+#define DNSA_EPILOGUE "\x00\x00" DNSA_TYPE "\x00\x01"
+#define DNSAAAA_EPILOGUE "\x00\x00" DNSAAAA_TYPE "\x00\x01"
+
+#define DNS_Q1 DNS_PREAMBLE LABEL_TEST LABEL_HOST LABEL_NAME DNSA_EPILOGUE
+#define DNS_Q2 DNS_PREAMBLE LABEL_TEST LABEL_HOST LABEL_NAME DNSAAAA_EPILOGUE
+
+struct dohrequest {
+ /* input */
+ const char *name;
+ DNStype type;
+
+ /* output */
+ const char *packet;
+ size_t size;
+ int rc;
+};
+
+
+static struct dohrequest req[] = {
+ {"test.host.name", DNS_TYPE_A, DNS_Q1, sizeof(DNS_Q1)-1, 0 },
+ {"test.host.name", DNS_TYPE_AAAA, DNS_Q2, sizeof(DNS_Q2)-1, 0 },
+ {"zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"
+ ".host.name",
+ DNS_TYPE_AAAA, NULL, 0, DOH_DNS_BAD_LABEL }
+};
+
+struct dohresp {
+ /* input */
+ const char *packet;
+ size_t size;
+ DNStype type;
+
+ /* output */
+ int rc;
+ const char *out;
+};
+
+#define DNS_FOO_EXAMPLE_COM \
+ "\x00\x00\x01\x00\x00\x01\x00\x01\x00\x00\x00\x00\x03\x66\x6f\x6f" \
+ "\x07\x65\x78\x61\x6d\x70\x6c\x65\x03\x63\x6f\x6d\x00\x00\x01\x00" \
+ "\x01\xc0\x0c\x00\x01\x00\x01\x00\x00\x00\x37\x00\x04\x7f\x00\x00" \
+ "\x01"
+
+static const char full49[] = DNS_FOO_EXAMPLE_COM;
+
+static struct dohresp resp[] = {
+ {"\x00\x00", 2, DNS_TYPE_A, DOH_TOO_SMALL_BUFFER, NULL },
+ {"\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01", 12,
+ DNS_TYPE_A, DOH_DNS_BAD_ID, NULL },
+ {"\x00\x00\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01", 12,
+ DNS_TYPE_A, DOH_DNS_BAD_RCODE, NULL },
+ {"\x00\x00\x01\x00\x00\x01\x00\x01\x00\x00\x00\x00\x03\x66\x6f\x6f", 16,
+ DNS_TYPE_A, DOH_DNS_OUT_OF_RANGE, NULL },
+ {"\x00\x00\x01\x00\x00\x01\x00\x01\x00\x00\x00\x00\x03\x66\x6f\x6f\x00", 17,
+ DNS_TYPE_A, DOH_DNS_OUT_OF_RANGE, NULL },
+ {"\x00\x00\x01\x00\x00\x01\x00\x01\x00\x00\x00\x00\x03\x66\x6f\x6f\x00"
+ "\x00\x01\x00\x01", 21,
+ DNS_TYPE_A, DOH_DNS_OUT_OF_RANGE, NULL },
+ {"\x00\x00\x01\x00\x00\x01\x00\x01\x00\x00\x00\x00\x03\x66\x6f\x6f\x00"
+ "\x00\x01\x00\x01"
+ "\x04", 18,
+ DNS_TYPE_A, DOH_DNS_OUT_OF_RANGE, NULL },
+
+ {"\x00\x00\x01\x00\x00\x01\x00\x01\x00\x00\x00\x00\x04\x63\x75\x72"
+ "\x6c\x04\x63\x75\x72\x6c\x00\x00\x05\x00\x01\xc0\x0c\x00\x05\x00"
+ "\x01\x00\x00\x00\x37\x00\x11\x08\x61\x6e\x79\x77\x68\x65\x72\x65"
+ "\x06\x72\x65\x61\x6c\x6c\x79\x00", 56,
+ DNS_TYPE_A, DOH_OK, "anywhere.really "},
+
+ {DNS_FOO_EXAMPLE_COM, 49, DNS_TYPE_A, DOH_OK, "127.0.0.1 "},
+
+ {"\x00\x00\x01\x00\x00\x01\x00\x01\x00\x00\x00\x00\x04\x61\x61\x61"
+ "\x61\x07\x65\x78\x61\x6d\x70\x6c\x65\x03\x63\x6f\x6d\x00\x00\x1c"
+ "\x00\x01\xc0\x0c\x00\x1c\x00\x01\x00\x00\x00\x37\x00\x10\x20\x20"
+ "\x20\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x20", 62,
+ DNS_TYPE_AAAA, DOH_OK,
+ "2020:2020:0000:0000:0000:0000:0000:2020 " },
+
+ {"\x00\x00\x01\x00\x00\x01\x00\x01\x00\x00\x00\x00\x04\x63\x75\x72"
+ "\x6c\x04\x63\x75\x72\x6c\x00\x00\x05\x00\x01\xc0\x0c\x00\x05\x00"
+ "\x01\x00\x00\x00\x37\x00"
+ "\x07\x03\x61\x6e\x79\xc0\x27\x00", 46,
+ DNS_TYPE_A, DOH_DNS_LABEL_LOOP, NULL},
+
+ /* packet with NSCOUNT == 1 */
+ {"\x00\x00\x01\x00\x00\x01\x00\x01\x00\x01\x00\x00\x04\x61\x61\x61"
+ "\x61\x07\x65\x78\x61\x6d\x70\x6c\x65\x03\x63\x6f\x6d\x00\x00\x1c"
+ "\x00\x01\xc0\x0c\x00\x1c\x00\x01\x00\x00\x00\x37\x00\x10\x20\x20"
+ "\x20\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x20"
+ LABEL_TEST LABEL_HOST LABEL_NAME DNSAAAA_EPILOGUE "\x00\x00\x00\x01"
+ "\00\x04\x01\x01\x01\x01", /* RDDATA */
+
+ 62 + 30,
+ DNS_TYPE_AAAA, DOH_OK,
+ "2020:2020:0000:0000:0000:0000:0000:2020 " },
+
+ /* packet with ARCOUNT == 1 */
+ {"\x00\x00\x01\x00\x00\x01\x00\x01\x00\x00\x00\x01\x04\x61\x61\x61"
+ "\x61\x07\x65\x78\x61\x6d\x70\x6c\x65\x03\x63\x6f\x6d\x00\x00\x1c"
+ "\x00\x01\xc0\x0c\x00\x1c\x00\x01\x00\x00\x00\x37\x00\x10\x20\x20"
+ "\x20\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x20"
+ LABEL_TEST LABEL_HOST LABEL_NAME DNSAAAA_EPILOGUE "\x00\x00\x00\x01"
+ "\00\x04\x01\x01\x01\x01", /* RDDATA */
+
+ 62 + 30,
+ DNS_TYPE_AAAA, DOH_OK,
+ "2020:2020:0000:0000:0000:0000:0000:2020 " },
+
+};
+
+UNITTEST_START
+{
+ size_t size;
+ unsigned char buffer[256];
+ size_t i;
+ unsigned char *p;
+ for(i = 0; i < sizeof(req) / sizeof(req[0]); i++) {
+ int rc = doh_encode(req[i].name, req[i].type,
+ buffer, sizeof(buffer), &size);
+ if(rc != req[i].rc) {
+ fprintf(stderr, "req %d: Expected return code %d got %d\n", i,
+ req[i].rc, rc);
+ return 1;
+ }
+ else if(size != req[i].size) {
+ fprintf(stderr, "req %d: Expected size %d got %d\n", i,
+ (int)req[i].size, (int)size);
+ fprintf(stderr, "DNS encode made: %s\n", hexdump(buffer, size));
+ return 2;
+ }
+ else if(req[i].packet && memcmp(req[i].packet, buffer, size)) {
+ fprintf(stderr, "DNS encode made: %s\n", hexdump(buffer, size));
+ fprintf(stderr, "... instead of: %s\n",
+ hexdump((unsigned char *)req[i].packet, size));
+ return 3;
+ }
+ }
+
+ for(i = 0; i < sizeof(resp) / sizeof(resp[0]); i++) {
+ struct dohentry d;
+ int rc;
+ char *ptr;
+ size_t len;
+ int u;
+ memset(&d, 0, sizeof(d));
+ rc = doh_decode((unsigned char *)resp[i].packet, resp[i].size,
+ resp[i].type, &d);
+ if(rc != resp[i].rc) {
+ fprintf(stderr, "resp %d: Expected return code %d got %d\n", i,
+ resp[i].rc, rc);
+ return 4;
+ }
+ len = sizeof(buffer);
+ ptr = (char *)buffer;
+ for(u = 0; u < d.numaddr; u++) {
+ size_t o;
+ struct dohaddr *a;
+ a = &d.addr[u];
+ if(resp[i].type == DNS_TYPE_A) {
+ p = &a->ip.v4[0];
+ snprintf(ptr, len, "%u.%u.%u.%u ", p[0], p[1], p[2], p[3]);
+ o = strlen(ptr);
+ len -= o;
+ ptr += o;
+ }
+ else {
+ int j;
+ for(j = 0; j < 16; j += 2) {
+ size_t l;
+ snprintf(ptr, len, "%s%02x%02x", j?":":"", a->ip.v6[j],
+ a->ip.v6[j + 1]);
+ l = strlen(ptr);
+ len -= l;
+ ptr += l;
+ }
+ snprintf(ptr, len, " ");
+ len--;
+ ptr++;
+ }
+ }
+ for(u = 0; u < d.numcname; u++) {
+ size_t o;
+ snprintf(ptr, len, "%s ", d.cname[u].alloc);
+ o = strlen(ptr);
+ len -= o;
+ ptr += o;
+ }
+ de_cleanup(&d);
+ if(resp[i].out && strcmp((char *)buffer, resp[i].out)) {
+ fprintf(stderr, "resp %d: Expected %s got %s\n", i,
+ resp[i].out, buffer);
+ return 1;
+ }
+ }
+
+ {
+ /* pass all sizes into the decoder until full */
+ for(i = 0; i < sizeof(full49)-1; i++) {
+ struct dohentry d;
+ int rc;
+ memset(&d, 0, sizeof(d));
+ rc = doh_decode((unsigned char *)full49, i, DNS_TYPE_A, &d);
+ if(!rc) {
+ /* none of them should work */
+ fprintf(stderr, "%d: %d\n", i, rc);
+ return 5;
+ }
+ }
+ /* and try all pieces from the other end of the packet */
+ for(i = 1; i < sizeof(full49); i++) {
+ struct dohentry d;
+ int rc;
+ memset(&d, 0, sizeof(d));
+ rc = doh_decode((unsigned char *)&full49[i], sizeof(full49)-i-1,
+ DNS_TYPE_A, &d);
+ if(!rc) {
+ /* none of them should work */
+ fprintf(stderr, "2 %d: %d\n", i, rc);
+ return 7;
+ }
+ }
+ {
+ int rc;
+ struct dohentry d;
+ struct dohaddr *a;
+ memset(&d, 0, sizeof(d));
+ rc = doh_decode((unsigned char *)full49, sizeof(full49)-1,
+ DNS_TYPE_A, &d);
+ fail_if(d.numaddr != 1, "missing address");
+ a = &d.addr[0];
+ p = &a->ip.v4[0];
+ snprintf((char *)buffer, sizeof(buffer),
+ "%u.%u.%u.%u", p[0], p[1], p[2], p[3]);
+ if(rc || strcmp((char *)buffer, "127.0.0.1")) {
+ fprintf(stderr, "bad address decoded: %s, rc == %d\n", buffer, rc);
+ return 7;
+ }
+ fail_if(d.numcname, "bad cname counter");
+ }
+ }
+}
+UNITTEST_STOP
+
+#else /* USE_NGHTTP2 */
+UNITTEST_START
+{
+ return 1; /* nothing to do, just fail */
+}
+UNITTEST_STOP
+
+
+#endif
diff --git a/tests/unit/unit1651.c b/tests/unit/unit1651.c
new file mode 100644
index 00000000..fcd3b54d
--- /dev/null
+++ b/tests/unit/unit1651.c
@@ -0,0 +1,386 @@
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 2018, 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 https://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.
+ *
+ ***************************************************************************/
+#include "curlcheck.h"
+
+#include "x509asn1.h"
+
+static CURLcode unit_setup(void)
+{
+ return CURLE_OK;
+}
+
+static void unit_stop(void)
+{
+
+}
+#if defined(USE_GSKIT) || defined(USE_NSS) || defined(USE_GNUTLS) || \
+ defined(USE_CYASSL) || defined(USE_SCHANNEL)
+
+/* cert captured from gdb when connecting to curl.haxx.se on October 26
+ 2018 */
+static unsigned char cert[] = {
+ 0x30, 0x82, 0x0F, 0x5B, 0x30, 0x82, 0x0E, 0x43, 0xA0, 0x03, 0x02, 0x01, 0x02,
+ 0x02, 0x0C, 0x08, 0x77, 0x99, 0x2C, 0x6B, 0x67, 0xE1, 0x18, 0xD6, 0x66, 0x66,
+ 0x9E, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01,
+ 0x0B, 0x05, 0x00, 0x30, 0x57, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04,
+ 0x06, 0x13, 0x02, 0x42, 0x45, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04,
+ 0x0A, 0x13, 0x10, 0x47, 0x6C, 0x6F, 0x62, 0x61, 0x6C, 0x53, 0x69, 0x67, 0x6E,
+ 0x20, 0x6E, 0x76, 0x2D, 0x73, 0x61, 0x31, 0x2D, 0x30, 0x2B, 0x06, 0x03, 0x55,
+ 0x04, 0x03, 0x13, 0x24, 0x47, 0x6C, 0x6F, 0x62, 0x61, 0x6C, 0x53, 0x69, 0x67,
+ 0x6E, 0x20, 0x43, 0x6C, 0x6F, 0x75, 0x64, 0x53, 0x53, 0x4C, 0x20, 0x43, 0x41,
+ 0x20, 0x2D, 0x20, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x2D, 0x20, 0x47,
+ 0x33, 0x30, 0x1E, 0x17, 0x0D, 0x31, 0x38, 0x31, 0x30, 0x32, 0x32, 0x31, 0x37,
+ 0x31, 0x38, 0x32, 0x31, 0x5A, 0x17, 0x0D, 0x31, 0x39, 0x30, 0x33, 0x32, 0x31,
+ 0x31, 0x33, 0x34, 0x33, 0x34, 0x34, 0x5A, 0x30, 0x77, 0x31, 0x0B, 0x30, 0x09,
+ 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11,
+ 0x06, 0x03, 0x55, 0x04, 0x08, 0x0C, 0x0A, 0x43, 0x61, 0x6C, 0x69, 0x66, 0x6F,
+ 0x72, 0x6E, 0x69, 0x61, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x07,
+ 0x0C, 0x0D, 0x53, 0x61, 0x6E, 0x20, 0x46, 0x72, 0x61, 0x6E, 0x63, 0x69, 0x73,
+ 0x63, 0x6F, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0A, 0x0C, 0x0C,
+ 0x46, 0x61, 0x73, 0x74, 0x6C, 0x79, 0x2C, 0x20, 0x49, 0x6E, 0x63, 0x2E, 0x31,
+ 0x24, 0x30, 0x22, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0C, 0x1B, 0x6A, 0x32, 0x2E,
+ 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x2E, 0x67, 0x6C, 0x6F, 0x62, 0x61, 0x6C,
+ 0x2E, 0x66, 0x61, 0x73, 0x74, 0x6C, 0x79, 0x2E, 0x6E, 0x65, 0x74, 0x30, 0x82,
+ 0x01, 0x22, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01,
+ 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0F, 0x00, 0x30, 0x82, 0x01, 0x0A,
+ 0x02, 0x82, 0x01, 0x01, 0x00, 0xC2, 0x72, 0xA2, 0x4A, 0xEF, 0x26, 0x42, 0xD7,
+ 0x85, 0x74, 0xC9, 0xB4, 0x9F, 0xE3, 0x31, 0xD1, 0x40, 0x77, 0xC9, 0x4B, 0x4D,
+ 0xFE, 0xC8, 0x75, 0xF3, 0x32, 0x76, 0xAD, 0xF9, 0x08, 0x22, 0x9E, 0xFA, 0x2F,
+ 0xFE, 0xEC, 0x6C, 0xC4, 0xF5, 0x1F, 0x70, 0xC9, 0x8F, 0x07, 0x48, 0x31, 0xAD,
+ 0x75, 0x18, 0xFC, 0x06, 0x5A, 0x4F, 0xDD, 0xFD, 0x05, 0x39, 0x6F, 0x22, 0xF9,
+ 0xAD, 0x62, 0x1A, 0x9E, 0xA6, 0x16, 0x48, 0x75, 0x8F, 0xB8, 0x07, 0x18, 0x25,
+ 0x1A, 0x87, 0x30, 0xB0, 0x3C, 0x6F, 0xE0, 0x9D, 0x90, 0x63, 0x2A, 0x16, 0x1F,
+ 0x0D, 0x10, 0xFC, 0x06, 0x7E, 0xEA, 0x51, 0xE2, 0xB0, 0x6D, 0x42, 0x4C, 0x2C,
+ 0x59, 0xF4, 0x6B, 0x99, 0x3E, 0x82, 0x1D, 0x08, 0x04, 0x2F, 0xA0, 0x63, 0x3C,
+ 0xAA, 0x0E, 0xE1, 0x5D, 0x67, 0x2D, 0xB3, 0xF4, 0x15, 0xD6, 0x16, 0x4E, 0xAA,
+ 0x91, 0x45, 0x6B, 0xC5, 0xA6, 0xED, 0x83, 0xAF, 0xF1, 0xD7, 0x42, 0x5E, 0x9B,
+ 0xC8, 0x39, 0x0C, 0x06, 0x76, 0x7A, 0xB8, 0x3E, 0x16, 0x70, 0xF5, 0xEB, 0x8B,
+ 0x33, 0x5A, 0xA9, 0x03, 0xED, 0x79, 0x0E, 0xAD, 0xBB, 0xC4, 0xF8, 0xDA, 0x93,
+ 0x53, 0x2A, 0xC4, 0xC9, 0x1A, 0xD1, 0xC3, 0x44, 0xD7, 0xC6, 0xD0, 0xC6, 0xAC,
+ 0x13, 0xE3, 0xB5, 0x73, 0x3A, 0xDF, 0x54, 0x15, 0xFB, 0xB4, 0x6B, 0x36, 0x39,
+ 0x18, 0xB5, 0x61, 0x12, 0xF0, 0x37, 0xAB, 0x81, 0x5F, 0x0C, 0xE7, 0xDF, 0xC1,
+ 0xC5, 0x5E, 0x99, 0x67, 0x85, 0xFF, 0xAD, 0xD6, 0x82, 0x09, 0x1F, 0x27, 0xE5,
+ 0x32, 0x52, 0x18, 0xEC, 0x35, 0x2F, 0x6C, 0xC9, 0xE6, 0x87, 0xCE, 0x30, 0xF6,
+ 0xDA, 0x04, 0x3F, 0xA5, 0x8A, 0x0C, 0xAE, 0x5B, 0xB0, 0xEC, 0x29, 0x9B, 0xEE,
+ 0x8F, 0x52, 0x1E, 0xE2, 0x56, 0x19, 0x45, 0x80, 0x3C, 0x02, 0x57, 0x5C, 0x52,
+ 0xD9, 0x02, 0x03, 0x01, 0x00, 0x01, 0xA3, 0x82, 0x0C, 0x05, 0x30, 0x82, 0x0C,
+ 0x01, 0x30, 0x0E, 0x06, 0x03, 0x55, 0x1D, 0x0F, 0x01, 0x01, 0xFF, 0x04, 0x04,
+ 0x03, 0x02, 0x05, 0xA0, 0x30, 0x81, 0x8A, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x01, 0x01, 0x04, 0x7E, 0x30, 0x7C, 0x30, 0x42, 0x06, 0x08, 0x2B,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x36, 0x68, 0x74, 0x74, 0x70,
+ 0x3A, 0x2F, 0x2F, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x2E, 0x67, 0x6C, 0x6F,
+ 0x62, 0x61, 0x6C, 0x73, 0x69, 0x67, 0x6E, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x63,
+ 0x61, 0x63, 0x65, 0x72, 0x74, 0x2F, 0x63, 0x6C, 0x6F, 0x75, 0x64, 0x73, 0x73,
+ 0x6C, 0x73, 0x68, 0x61, 0x32, 0x67, 0x33, 0x2E, 0x63, 0x72, 0x74, 0x30, 0x36,
+ 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x2A, 0x68,
+ 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x6F, 0x63, 0x73, 0x70, 0x32, 0x2E, 0x67,
+ 0x6C, 0x6F, 0x62, 0x61, 0x6C, 0x73, 0x69, 0x67, 0x6E, 0x2E, 0x63, 0x6F, 0x6D,
+ 0x2F, 0x63, 0x6C, 0x6F, 0x75, 0x64, 0x73, 0x73, 0x6C, 0x73, 0x68, 0x61, 0x32,
+ 0x67, 0x33, 0x30, 0x56, 0x06, 0x03, 0x55, 0x1D, 0x20, 0x04, 0x4F, 0x30, 0x4D,
+ 0x30, 0x41, 0x06, 0x09, 0x2B, 0x06, 0x01, 0x04, 0x01, 0xA0, 0x32, 0x01, 0x14,
+ 0x30, 0x34, 0x30, 0x32, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02,
+ 0x01, 0x16, 0x26, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3A, 0x2F, 0x2F, 0x77, 0x77,
+ 0x77, 0x2E, 0x67, 0x6C, 0x6F, 0x62, 0x61, 0x6C, 0x73, 0x69, 0x67, 0x6E, 0x2E,
+ 0x63, 0x6F, 0x6D, 0x2F, 0x72, 0x65, 0x70, 0x6F, 0x73, 0x69, 0x74, 0x6F, 0x72,
+ 0x79, 0x2F, 0x30, 0x08, 0x06, 0x06, 0x67, 0x81, 0x0C, 0x01, 0x02, 0x02, 0x30,
+ 0x09, 0x06, 0x03, 0x55, 0x1D, 0x13, 0x04, 0x02, 0x30, 0x00, 0x30, 0x82, 0x09,
+ 0x96, 0x06, 0x03, 0x55, 0x1D, 0x11, 0x04, 0x82, 0x09, 0x8D, 0x30, 0x82, 0x09,
+ 0x89, 0x82, 0x1B, 0x6A, 0x32, 0x2E, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x2E,
+ 0x67, 0x6C, 0x6F, 0x62, 0x61, 0x6C, 0x2E, 0x66, 0x61, 0x73, 0x74, 0x6C, 0x79,
+ 0x2E, 0x6E, 0x65, 0x74, 0x82, 0x0D, 0x2A, 0x2E, 0x61, 0x32, 0x70, 0x72, 0x65,
+ 0x73, 0x73, 0x65, 0x2E, 0x66, 0x72, 0x82, 0x19, 0x2A, 0x2E, 0x61, 0x64, 0x76,
+ 0x65, 0x6E, 0x74, 0x69, 0x73, 0x74, 0x62, 0x6F, 0x6F, 0x6B, 0x63, 0x65, 0x6E,
+ 0x74, 0x65, 0x72, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x14, 0x2A, 0x2E, 0x61, 0x70,
+ 0x69, 0x2E, 0x6C, 0x6F, 0x6C, 0x65, 0x73, 0x70, 0x6F, 0x72, 0x74, 0x73, 0x2E,
+ 0x63, 0x6F, 0x6D, 0x82, 0x0C, 0x2A, 0x2E, 0x62, 0x61, 0x61, 0x74, 0x63, 0x68,
+ 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x17, 0x2A, 0x2E, 0x62, 0x69, 0x6F, 0x74, 0x65,
+ 0x63, 0x68, 0x77, 0x65, 0x65, 0x6B, 0x62, 0x6F, 0x73, 0x74, 0x6F, 0x6E, 0x2E,
+ 0x63, 0x6F, 0x6D, 0x82, 0x10, 0x2A, 0x2E, 0x62, 0x6F, 0x78, 0x6F, 0x66, 0x73,
+ 0x74, 0x79, 0x6C, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x0C, 0x2A, 0x2E, 0x63,
+ 0x61, 0x73, 0x70, 0x65, 0x72, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x11, 0x2A, 0x2E,
+ 0x63, 0x68, 0x61, 0x6B, 0x72, 0x61, 0x6C, 0x69, 0x6E, 0x75, 0x78, 0x2E, 0x6F,
+ 0x72, 0x67, 0x82, 0x18, 0x2A, 0x2E, 0x63, 0x6F, 0x6E, 0x76, 0x65, 0x72, 0x74,
+ 0x2E, 0x64, 0x73, 0x2E, 0x76, 0x65, 0x72, 0x69, 0x7A, 0x6F, 0x6E, 0x2E, 0x63,
+ 0x6F, 0x6D, 0x82, 0x15, 0x2A, 0x2E, 0x64, 0x65, 0x76, 0x73, 0x70, 0x61, 0x63,
+ 0x65, 0x73, 0x68, 0x69, 0x70, 0x2E, 0x63, 0x6F, 0x6D, 0x2E, 0x61, 0x75, 0x82,
+ 0x1B, 0x2A, 0x2E, 0x64, 0x65, 0x76, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x68,
+ 0x69, 0x70, 0x69, 0x6E, 0x76, 0x65, 0x73, 0x74, 0x2E, 0x63, 0x6F, 0x6D, 0x2E,
+ 0x61, 0x75, 0x82, 0x0A, 0x2A, 0x2E, 0x65, 0x63, 0x68, 0x6C, 0x2E, 0x63, 0x6F,
+ 0x6D, 0x82, 0x0F, 0x2A, 0x2E, 0x66, 0x69, 0x6C, 0x65, 0x73, 0x74, 0x61, 0x63,
+ 0x6B, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x16, 0x2A, 0x2E, 0x66, 0x69, 0x6C, 0x65,
+ 0x73, 0x74, 0x61, 0x63, 0x6B, 0x2E, 0x6F, 0x6E, 0x65, 0x6D, 0x6F, 0x62, 0x2E,
+ 0x63, 0x6F, 0x6D, 0x82, 0x0D, 0x2A, 0x2E, 0x66, 0x69, 0x73, 0x2D, 0x73, 0x6B,
+ 0x69, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x0C, 0x2A, 0x2E, 0x66, 0x69, 0x73, 0x73,
+ 0x6B, 0x69, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x14, 0x2A, 0x2E, 0x66, 0x70, 0x2E,
+ 0x62, 0x72, 0x61, 0x6E, 0x64, 0x66, 0x6F, 0x6C, 0x64, 0x65, 0x72, 0x2E, 0x63,
+ 0x6F, 0x6D, 0x82, 0x0F, 0x2A, 0x2E, 0x66, 0x73, 0x2E, 0x65, 0x6E, 0x70, 0x6C,
+ 0x75, 0x67, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x0E, 0x2A, 0x2E, 0x66, 0x73, 0x2E,
+ 0x65, 0x6E, 0x70, 0x6C, 0x75, 0x67, 0x2E, 0x69, 0x6E, 0x82, 0x10, 0x2A, 0x2E,
+ 0x66, 0x73, 0x2E, 0x68, 0x65, 0x72, 0x6F, 0x69, 0x6E, 0x65, 0x2E, 0x63, 0x6F,
+ 0x6D, 0x82, 0x18, 0x2A, 0x2E, 0x66, 0x73, 0x2E, 0x6C, 0x65, 0x61, 0x72, 0x6E,
+ 0x7A, 0x69, 0x6C, 0x6C, 0x69, 0x6F, 0x6E, 0x63, 0x64, 0x6E, 0x2E, 0x63, 0x6F,
+ 0x6D, 0x82, 0x18, 0x2A, 0x2E, 0x66, 0x73, 0x2E, 0x6C, 0x6F, 0x63, 0x61, 0x6C,
+ 0x7A, 0x69, 0x6C, 0x6C, 0x69, 0x6F, 0x6E, 0x63, 0x64, 0x6E, 0x2E, 0x63, 0x6F,
+ 0x6D, 0x82, 0x12, 0x2A, 0x2E, 0x66, 0x73, 0x2E, 0x6D, 0x69, 0x6E, 0x64, 0x66,
+ 0x6C, 0x61, 0x73, 0x68, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x16, 0x2A, 0x2E, 0x66,
+ 0x73, 0x2E, 0x6F, 0x70, 0x73, 0x7A, 0x69, 0x6C, 0x6C, 0x69, 0x6F, 0x6E, 0x63,
+ 0x64, 0x6E, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x10, 0x2A, 0x2E, 0x66, 0x73, 0x2E,
+ 0x70, 0x69, 0x78, 0x76, 0x61, 0x6E, 0x61, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x15,
+ 0x2A, 0x2E, 0x66, 0x73, 0x2E, 0x71, 0x61, 0x7A, 0x69, 0x6C, 0x6C, 0x69, 0x6F,
+ 0x6E, 0x63, 0x64, 0x6E, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x17, 0x2A, 0x2E, 0x66,
+ 0x73, 0x2E, 0x74, 0x65, 0x73, 0x74, 0x7A, 0x69, 0x6C, 0x6C, 0x69, 0x6F, 0x6E,
+ 0x63, 0x64, 0x6E, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x09, 0x2A, 0x2E, 0x68, 0x61,
+ 0x78, 0x78, 0x2E, 0x73, 0x65, 0x82, 0x0D, 0x2A, 0x2E, 0x68, 0x6F, 0x6D, 0x65,
+ 0x61, 0x77, 0x61, 0x79, 0x2E, 0x6C, 0x6B, 0x82, 0x0F, 0x2A, 0x2E, 0x69, 0x64,
+ 0x61, 0x74, 0x61, 0x6C, 0x69, 0x6E, 0x6B, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x16,
+ 0x2A, 0x2E, 0x69, 0x64, 0x61, 0x74, 0x61, 0x6C, 0x69, 0x6E, 0x6B, 0x6D, 0x61,
+ 0x65, 0x73, 0x74, 0x72, 0x6F, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x11, 0x2A, 0x2E,
+ 0x69, 0x6D, 0x67, 0x2D, 0x74, 0x61, 0x62, 0x6F, 0x6F, 0x6C, 0x61, 0x2E, 0x63,
+ 0x6F, 0x6D, 0x82, 0x0F, 0x2A, 0x2E, 0x6A, 0x75, 0x6C, 0x69, 0x61, 0x6C, 0x61,
+ 0x6E, 0x67, 0x2E, 0x6F, 0x72, 0x67, 0x82, 0x10, 0x2A, 0x2E, 0x6B, 0x69, 0x6E,
+ 0x64, 0x73, 0x6E, 0x61, 0x63, 0x6B, 0x73, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x10,
+ 0x2A, 0x2E, 0x6B, 0x73, 0x73, 0x76, 0x61, 0x6E, 0x69, 0x6C, 0x6C, 0x61, 0x2E,
+ 0x63, 0x6F, 0x6D, 0x82, 0x0E, 0x2A, 0x2E, 0x6B, 0x73, 0x74, 0x63, 0x6F, 0x72,
+ 0x72, 0x61, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x10, 0x2A, 0x2E, 0x6B, 0x73, 0x74,
+ 0x76, 0x61, 0x6E, 0x69, 0x6C, 0x6C, 0x61, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x0C,
+ 0x2A, 0x2E, 0x6E, 0x65, 0x77, 0x73, 0x31, 0x32, 0x2E, 0x63, 0x6F, 0x6D, 0x82,
+ 0x1B, 0x2A, 0x2E, 0x70, 0x61, 0x72, 0x74, 0x69, 0x64, 0x65, 0x6E, 0x74, 0x69,
+ 0x66, 0x69, 0x65, 0x72, 0x2E, 0x73, 0x77, 0x69, 0x73, 0x63, 0x6F, 0x2E, 0x63,
+ 0x6F, 0x6D, 0x82, 0x13, 0x2A, 0x2E, 0x73, 0x68, 0x6F, 0x70, 0x72, 0x61, 0x63,
+ 0x68, 0x65, 0x6C, 0x7A, 0x6F, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x0A, 0x2A,
+ 0x2E, 0x74, 0x61, 0x73, 0x74, 0x79, 0x2E, 0x63, 0x6F, 0x82, 0x0C, 0x2A, 0x2E,
+ 0x74, 0x65, 0x64, 0x63, 0x64, 0x6E, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x15, 0x2A,
+ 0x2E, 0x75, 0x70, 0x6C, 0x6F, 0x61, 0x64, 0x73, 0x2E, 0x66, 0x6F, 0x6C, 0x69,
+ 0x6F, 0x68, 0x64, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x14, 0x2A, 0x2E, 0x76, 0x6F,
+ 0x75, 0x63, 0x68, 0x65, 0x72, 0x63, 0x6F, 0x64, 0x65, 0x73, 0x2E, 0x63, 0x6F,
+ 0x2E, 0x75, 0x6B, 0x82, 0x0D, 0x2A, 0x2E, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65,
+ 0x72, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x0D, 0x61, 0x2E, 0x69, 0x63, 0x61, 0x6E,
+ 0x76, 0x61, 0x73, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x0B, 0x61, 0x32, 0x70, 0x72,
+ 0x65, 0x73, 0x73, 0x65, 0x2E, 0x66, 0x72, 0x82, 0x17, 0x61, 0x64, 0x76, 0x65,
+ 0x6E, 0x74, 0x69, 0x73, 0x74, 0x62, 0x6F, 0x6F, 0x6B, 0x63, 0x65, 0x6E, 0x74,
+ 0x65, 0x72, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x11, 0x61, 0x70, 0x69, 0x2D, 0x6D,
+ 0x65, 0x72, 0x72, 0x79, 0x6A, 0x61, 0x6E, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x82,
+ 0x12, 0x61, 0x70, 0x69, 0x73, 0x2E, 0x69, 0x64, 0x61, 0x74, 0x61, 0x6C, 0x69,
+ 0x76, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x0F, 0x61, 0x70, 0x70, 0x2D, 0x61,
+ 0x70, 0x69, 0x2E, 0x74, 0x65, 0x64, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x12, 0x61,
+ 0x70, 0x70, 0x2E, 0x62, 0x69, 0x72, 0x63, 0x68, 0x62, 0x6F, 0x78, 0x2E, 0x63,
+ 0x6F, 0x2E, 0x75, 0x6B, 0x82, 0x0F, 0x61, 0x70, 0x70, 0x2E, 0x62, 0x69, 0x72,
+ 0x63, 0x68, 0x62, 0x6F, 0x78, 0x2E, 0x65, 0x73, 0x82, 0x1A, 0x61, 0x70, 0x70,
+ 0x2E, 0x73, 0x74, 0x61, 0x67, 0x69, 0x6E, 0x67, 0x2E, 0x62, 0x69, 0x72, 0x63,
+ 0x68, 0x62, 0x6F, 0x78, 0x2E, 0x63, 0x6F, 0x2E, 0x75, 0x6B, 0x82, 0x17, 0x61,
+ 0x70, 0x70, 0x2E, 0x73, 0x74, 0x61, 0x67, 0x69, 0x6E, 0x67, 0x2E, 0x62, 0x69,
+ 0x72, 0x63, 0x68, 0x62, 0x6F, 0x78, 0x2E, 0x65, 0x73, 0x82, 0x0A, 0x62, 0x61,
+ 0x61, 0x74, 0x63, 0x68, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x13, 0x62, 0x65, 0x72,
+ 0x6E, 0x61, 0x72, 0x64, 0x63, 0x6F, 0x6E, 0x74, 0x72, 0x6F, 0x6C, 0x73, 0x2E,
+ 0x63, 0x6F, 0x6D, 0x82, 0x15, 0x62, 0x69, 0x6F, 0x74, 0x65, 0x63, 0x68, 0x77,
+ 0x65, 0x65, 0x6B, 0x62, 0x6F, 0x73, 0x74, 0x6F, 0x6E, 0x2E, 0x63, 0x6F, 0x6D,
+ 0x82, 0x0E, 0x62, 0x6F, 0x78, 0x6F, 0x66, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x2E,
+ 0x63, 0x6F, 0x6D, 0x82, 0x0A, 0x63, 0x61, 0x73, 0x70, 0x65, 0x72, 0x2E, 0x63,
+ 0x6F, 0x6D, 0x82, 0x0D, 0x63, 0x64, 0x6E, 0x2E, 0x69, 0x72, 0x73, 0x64, 0x6E,
+ 0x2E, 0x6E, 0x65, 0x74, 0x82, 0x0F, 0x63, 0x68, 0x61, 0x6B, 0x72, 0x61, 0x6C,
+ 0x69, 0x6E, 0x75, 0x78, 0x2E, 0x6F, 0x72, 0x67, 0x82, 0x13, 0x64, 0x65, 0x76,
+ 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x68, 0x69, 0x70, 0x2E, 0x63, 0x6F, 0x6D,
+ 0x2E, 0x61, 0x75, 0x82, 0x0B, 0x64, 0x69, 0x67, 0x69, 0x64, 0x61, 0x79, 0x2E,
+ 0x63, 0x6F, 0x6D, 0x82, 0x22, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6C, 0x4C,
+ 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2E, 0x62, 0x65, 0x72, 0x6E, 0x61, 0x72,
+ 0x64, 0x63, 0x6F, 0x6E, 0x74, 0x72, 0x6F, 0x6C, 0x73, 0x2E, 0x63, 0x6F, 0x6D,
+ 0x82, 0x14, 0x64, 0x72, 0x77, 0x70, 0x2E, 0x73, 0x74, 0x61, 0x67, 0x69, 0x6E,
+ 0x67, 0x2E, 0x6D, 0x6F, 0x6F, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x08, 0x65, 0x63,
+ 0x68, 0x6C, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x14, 0x66, 0x69, 0x6C, 0x65, 0x73,
+ 0x74, 0x61, 0x63, 0x6B, 0x2E, 0x6F, 0x6E, 0x65, 0x6D, 0x6F, 0x62, 0x2E, 0x63,
+ 0x6F, 0x6D, 0x82, 0x0D, 0x66, 0x73, 0x2E, 0x65, 0x6E, 0x70, 0x6C, 0x75, 0x67,
+ 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x16, 0x66, 0x73, 0x2E, 0x6C, 0x65, 0x61, 0x72,
+ 0x6E, 0x7A, 0x69, 0x6C, 0x6C, 0x69, 0x6F, 0x6E, 0x63, 0x64, 0x6E, 0x2E, 0x63,
+ 0x6F, 0x6D, 0x82, 0x16, 0x66, 0x73, 0x2E, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x7A,
+ 0x69, 0x6C, 0x6C, 0x69, 0x6F, 0x6E, 0x63, 0x64, 0x6E, 0x2E, 0x63, 0x6F, 0x6D,
+ 0x82, 0x14, 0x66, 0x73, 0x2E, 0x6F, 0x70, 0x73, 0x7A, 0x69, 0x6C, 0x6C, 0x69,
+ 0x6F, 0x6E, 0x63, 0x64, 0x6E, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x13, 0x66, 0x73,
+ 0x2E, 0x71, 0x61, 0x7A, 0x69, 0x6C, 0x6C, 0x69, 0x6F, 0x6E, 0x63, 0x64, 0x6E,
+ 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x15, 0x66, 0x73, 0x2E, 0x74, 0x65, 0x73, 0x74,
+ 0x7A, 0x69, 0x6C, 0x6C, 0x69, 0x6F, 0x6E, 0x63, 0x64, 0x6E, 0x2E, 0x63, 0x6F,
+ 0x6D, 0x82, 0x0B, 0x68, 0x6F, 0x6D, 0x65, 0x61, 0x77, 0x61, 0x79, 0x2E, 0x6C,
+ 0x6B, 0x82, 0x12, 0x69, 0x6D, 0x67, 0x2E, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65,
+ 0x72, 0x6D, 0x61, 0x69, 0x6C, 0x2E, 0x69, 0x6F, 0x82, 0x0E, 0x6B, 0x69, 0x6E,
+ 0x64, 0x73, 0x6E, 0x61, 0x63, 0x6B, 0x73, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x0E,
+ 0x6B, 0x73, 0x73, 0x76, 0x61, 0x6E, 0x69, 0x6C, 0x6C, 0x61, 0x2E, 0x63, 0x6F,
+ 0x6D, 0x82, 0x0C, 0x6B, 0x73, 0x74, 0x63, 0x6F, 0x72, 0x72, 0x61, 0x2E, 0x63,
+ 0x6F, 0x6D, 0x82, 0x0D, 0x6D, 0x65, 0x6E, 0x75, 0x2E, 0x74, 0x72, 0x65, 0x65,
+ 0x7A, 0x2E, 0x69, 0x6F, 0x82, 0x17, 0x6D, 0x6F, 0x62, 0x69, 0x6C, 0x65, 0x61,
+ 0x70, 0x69, 0x2E, 0x69, 0x64, 0x61, 0x74, 0x61, 0x6C, 0x69, 0x6E, 0x6B, 0x2E,
+ 0x63, 0x6F, 0x6D, 0x82, 0x0A, 0x6E, 0x65, 0x77, 0x73, 0x31, 0x32, 0x2E, 0x63,
+ 0x6F, 0x6D, 0x82, 0x0B, 0x6F, 0x6D, 0x6E, 0x69, 0x67, 0x6F, 0x6E, 0x2E, 0x63,
+ 0x6F, 0x6D, 0x82, 0x0E, 0x6F, 0x72, 0x65, 0x69, 0x6C, 0x6C, 0x79, 0x2E, 0x72,
+ 0x65, 0x76, 0x69, 0x65, 0x77, 0x82, 0x11, 0x70, 0x6F, 0x70, 0x79, 0x6F, 0x75,
+ 0x72, 0x62, 0x75, 0x62, 0x62, 0x6C, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x18,
+ 0x70, 0x72, 0x6F, 0x64, 0x2E, 0x62, 0x65, 0x72, 0x6E, 0x61, 0x72, 0x64, 0x63,
+ 0x6F, 0x6E, 0x74, 0x72, 0x6F, 0x6C, 0x73, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x18,
+ 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x2D, 0x70, 0x72, 0x69, 0x6D, 0x65,
+ 0x2E, 0x73, 0x70, 0x6F, 0x6B, 0x65, 0x6F, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x19,
+ 0x72, 0x65, 0x70, 0x6F, 0x73, 0x69, 0x74, 0x6F, 0x72, 0x69, 0x65, 0x73, 0x2E,
+ 0x73, 0x65, 0x6E, 0x73, 0x75, 0x61, 0x70, 0x70, 0x2E, 0x6F, 0x72, 0x67, 0x82,
+ 0x0C, 0x72, 0x6C, 0x2E, 0x74, 0x61, 0x6C, 0x69, 0x73, 0x2E, 0x63, 0x6F, 0x6D,
+ 0x82, 0x11, 0x73, 0x68, 0x6F, 0x70, 0x72, 0x61, 0x63, 0x68, 0x65, 0x6C, 0x7A,
+ 0x6F, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x0F, 0x73, 0x74, 0x61, 0x67, 0x69,
+ 0x6E, 0x67, 0x2E, 0x6D, 0x6F, 0x6F, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x14, 0x73,
+ 0x74, 0x61, 0x74, 0x69, 0x63, 0x2E, 0x70, 0x6C, 0x75, 0x6D, 0x63, 0x61, 0x63,
+ 0x68, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x14, 0x73, 0x74, 0x61, 0x79, 0x69,
+ 0x6E, 0x67, 0x61, 0x6C, 0x69, 0x76, 0x65, 0x2E, 0x6D, 0x73, 0x66, 0x2E, 0x6F,
+ 0x72, 0x67, 0x82, 0x08, 0x74, 0x61, 0x73, 0x74, 0x79, 0x2E, 0x63, 0x6F, 0x82,
+ 0x0C, 0x74, 0x6F, 0x70, 0x73, 0x70, 0x65, 0x65, 0x64, 0x2E, 0x63, 0x6F, 0x6D,
+ 0x82, 0x13, 0x75, 0x70, 0x6C, 0x6F, 0x61, 0x64, 0x73, 0x2E, 0x66, 0x6F, 0x6C,
+ 0x69, 0x6F, 0x68, 0x64, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x1A, 0x75, 0x73, 0x2D,
+ 0x65, 0x75, 0x2E, 0x66, 0x69, 0x6C, 0x65, 0x73, 0x74, 0x61, 0x63, 0x6B, 0x63,
+ 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x12, 0x76,
+ 0x6F, 0x75, 0x63, 0x68, 0x65, 0x72, 0x63, 0x6F, 0x64, 0x65, 0x73, 0x2E, 0x63,
+ 0x6F, 0x2E, 0x75, 0x6B, 0x82, 0x0B, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72,
+ 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x13, 0x77, 0x6F, 0x6D, 0x65, 0x6E, 0x73, 0x68,
+ 0x65, 0x61, 0x6C, 0x74, 0x68, 0x2D, 0x6A, 0x70, 0x2E, 0x63, 0x6F, 0x6D, 0x82,
+ 0x19, 0x77, 0x6F, 0x72, 0x6B, 0x65, 0x72, 0x62, 0x65, 0x65, 0x2E, 0x73, 0x74,
+ 0x61, 0x67, 0x69, 0x6E, 0x67, 0x2E, 0x6D, 0x6F, 0x6F, 0x2E, 0x63, 0x6F, 0x6D,
+ 0x82, 0x0A, 0x77, 0x77, 0x77, 0x2E, 0x61, 0x67, 0x66, 0x2E, 0x64, 0x6B, 0x82,
+ 0x14, 0x77, 0x77, 0x77, 0x2E, 0x61, 0x76, 0x65, 0x6E, 0x69, 0x72, 0x2D, 0x73,
+ 0x75, 0x69, 0x73, 0x73, 0x65, 0x2E, 0x63, 0x68, 0x82, 0x11, 0x77, 0x77, 0x77,
+ 0x2E, 0x63, 0x61, 0x6E, 0x73, 0x74, 0x61, 0x72, 0x2E, 0x63, 0x6F, 0x2E, 0x6E,
+ 0x7A, 0x82, 0x15, 0x77, 0x77, 0x77, 0x2E, 0x63, 0x61, 0x6E, 0x73, 0x74, 0x61,
+ 0x72, 0x62, 0x6C, 0x75, 0x65, 0x2E, 0x63, 0x6F, 0x2E, 0x6E, 0x7A, 0x82, 0x16,
+ 0x77, 0x77, 0x77, 0x2E, 0x63, 0x61, 0x6E, 0x73, 0x74, 0x61, 0x72, 0x62, 0x6C,
+ 0x75, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x2E, 0x61, 0x75, 0x82, 0x1D, 0x77, 0x77,
+ 0x77, 0x2E, 0x63, 0x68, 0x61, 0x6D, 0x70, 0x69, 0x6F, 0x6E, 0x73, 0x68, 0x6F,
+ 0x63, 0x6B, 0x65, 0x79, 0x6C, 0x65, 0x61, 0x67, 0x75, 0x65, 0x2E, 0x6E, 0x65,
+ 0x74, 0x82, 0x0F, 0x77, 0x77, 0x77, 0x2E, 0x65, 0x78, 0x74, 0x65, 0x72, 0x72,
+ 0x6F, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x0C, 0x77, 0x77, 0x77, 0x2E, 0x65, 0x7A,
+ 0x75, 0x70, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x0B, 0x77, 0x77, 0x77, 0x2E, 0x65,
+ 0x7A, 0x75, 0x70, 0x2E, 0x64, 0x65, 0x82, 0x0B, 0x77, 0x77, 0x77, 0x2E, 0x65,
+ 0x7A, 0x75, 0x70, 0x2E, 0x65, 0x75, 0x82, 0x0B, 0x77, 0x77, 0x77, 0x2E, 0x65,
+ 0x7A, 0x75, 0x70, 0x2E, 0x6E, 0x6C, 0x82, 0x11, 0x77, 0x77, 0x77, 0x2E, 0x66,
+ 0x72, 0x61, 0x6E, 0x6B, 0x62, 0x6F, 0x64, 0x79, 0x2E, 0x63, 0x6F, 0x6D, 0x82,
+ 0x0D, 0x77, 0x77, 0x77, 0x2E, 0x67, 0x6C, 0x6F, 0x73, 0x73, 0x79, 0x2E, 0x63,
+ 0x6F, 0x82, 0x0F, 0x77, 0x77, 0x77, 0x2E, 0x67, 0x6F, 0x6C, 0x64, 0x63, 0x75,
+ 0x70, 0x2E, 0x6F, 0x72, 0x67, 0x82, 0x0F, 0x77, 0x77, 0x77, 0x2E, 0x69, 0x63,
+ 0x61, 0x6E, 0x76, 0x61, 0x73, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x0D, 0x77, 0x77,
+ 0x77, 0x2E, 0x6D, 0x6F, 0x6E, 0x69, 0x6E, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x16,
+ 0x77, 0x77, 0x77, 0x2E, 0x6F, 0x64, 0x65, 0x6E, 0x73, 0x65, 0x2D, 0x6D, 0x61,
+ 0x72, 0x63, 0x69, 0x70, 0x61, 0x6E, 0x2E, 0x64, 0x6B, 0x82, 0x15, 0x77, 0x77,
+ 0x77, 0x2E, 0x6F, 0x6E, 0x65, 0x63, 0x6C, 0x69, 0x63, 0x6B, 0x64, 0x72, 0x69,
+ 0x76, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x12, 0x77, 0x77, 0x77, 0x2E, 0x6F,
+ 0x72, 0x65, 0x69, 0x6C, 0x6C, 0x79, 0x2E, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77,
+ 0x82, 0x15, 0x77, 0x77, 0x77, 0x2E, 0x70, 0x6F, 0x70, 0x79, 0x6F, 0x75, 0x72,
+ 0x62, 0x75, 0x62, 0x62, 0x6C, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x0E, 0x77,
+ 0x77, 0x77, 0x2E, 0x72, 0x61, 0x77, 0x6E, 0x65, 0x74, 0x2E, 0x63, 0x6F, 0x6D,
+ 0x82, 0x0E, 0x77, 0x77, 0x77, 0x2E, 0x73, 0x70, 0x6F, 0x6B, 0x65, 0x6F, 0x2E,
+ 0x63, 0x6F, 0x6D, 0x82, 0x10, 0x77, 0x77, 0x77, 0x2E, 0x74, 0x65, 0x61, 0x72,
+ 0x73, 0x68, 0x65, 0x65, 0x74, 0x2E, 0x63, 0x6F, 0x82, 0x10, 0x77, 0x77, 0x77,
+ 0x2E, 0x74, 0x6F, 0x70, 0x73, 0x70, 0x65, 0x65, 0x64, 0x2E, 0x63, 0x6F, 0x6D,
+ 0x82, 0x16, 0x77, 0x77, 0x77, 0x2E, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6B, 0x65,
+ 0x79, 0x76, 0x69, 0x6C, 0x6C, 0x61, 0x73, 0x2E, 0x63, 0x6F, 0x6D, 0x30, 0x1D,
+ 0x06, 0x03, 0x55, 0x1D, 0x25, 0x04, 0x16, 0x30, 0x14, 0x06, 0x08, 0x2B, 0x06,
+ 0x01, 0x05, 0x05, 0x07, 0x03, 0x01, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x03, 0x02, 0x30, 0x1D, 0x06, 0x03, 0x55, 0x1D, 0x0E, 0x04, 0x16, 0x04,
+ 0x14, 0xA8, 0x29, 0xFD, 0xA9, 0xA5, 0x1A, 0x1C, 0x37, 0x0B, 0x20, 0x3B, 0x98,
+ 0xB7, 0x25, 0x39, 0xCC, 0xE5, 0x2F, 0xF4, 0x94, 0x30, 0x1F, 0x06, 0x03, 0x55,
+ 0x1D, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xA9, 0x2B, 0x87, 0xE1, 0xCE,
+ 0x24, 0x47, 0x3B, 0x1B, 0xBF, 0xCF, 0x85, 0x37, 0x02, 0x55, 0x9D, 0x0D, 0x94,
+ 0x58, 0xE6, 0x30, 0x82, 0x01, 0x04, 0x06, 0x0A, 0x2B, 0x06, 0x01, 0x04, 0x01,
+ 0xD6, 0x79, 0x02, 0x04, 0x02, 0x04, 0x81, 0xF5, 0x04, 0x81, 0xF2, 0x00, 0xF0,
+ 0x00, 0x77, 0x00, 0xA4, 0xB9, 0x09, 0x90, 0xB4, 0x18, 0x58, 0x14, 0x87, 0xBB,
+ 0x13, 0xA2, 0xCC, 0x67, 0x70, 0x0A, 0x3C, 0x35, 0x98, 0x04, 0xF9, 0x1B, 0xDF,
+ 0xB8, 0xE3, 0x77, 0xCD, 0x0E, 0xC8, 0x0D, 0xDC, 0x10, 0x00, 0x00, 0x01, 0x66,
+ 0x9C, 0xC8, 0xE7, 0x38, 0x00, 0x00, 0x04, 0x03, 0x00, 0x48, 0x30, 0x46, 0x02,
+ 0x21, 0x00, 0xD9, 0x58, 0x6E, 0xFC, 0x4C, 0x3C, 0xAF, 0xF9, 0x5B, 0x7F, 0xDA,
+ 0x54, 0x95, 0xAF, 0xCF, 0xB3, 0x57, 0xB9, 0x56, 0x2C, 0xE8, 0xE0, 0xB1, 0x20,
+ 0x9B, 0xCB, 0x75, 0xAC, 0x4E, 0x54, 0xE9, 0x9D, 0x02, 0x21, 0x00, 0xE8, 0xF0,
+ 0xC0, 0x49, 0x23, 0x8E, 0x3D, 0x9B, 0xA5, 0x87, 0xA3, 0xBE, 0x6C, 0x21, 0x62,
+ 0xBB, 0xD2, 0x44, 0x5C, 0xE4, 0x7A, 0xCC, 0x46, 0x26, 0x04, 0x19, 0xA4, 0x2D,
+ 0x9B, 0x1C, 0x5D, 0x3A, 0x00, 0x75, 0x00, 0x6F, 0x53, 0x76, 0xAC, 0x31, 0xF0,
+ 0x31, 0x19, 0xD8, 0x99, 0x00, 0xA4, 0x51, 0x15, 0xFF, 0x77, 0x15, 0x1C, 0x11,
+ 0xD9, 0x02, 0xC1, 0x00, 0x29, 0x06, 0x8D, 0xB2, 0x08, 0x9A, 0x37, 0xD9, 0x13,
+ 0x00, 0x00, 0x01, 0x66, 0x9C, 0xC8, 0xE6, 0x20, 0x00, 0x00, 0x04, 0x03, 0x00,
+ 0x46, 0x30, 0x44, 0x02, 0x20, 0x14, 0xC8, 0x9F, 0xAC, 0x27, 0x48, 0xBE, 0x4D,
+ 0x0E, 0xC3, 0x26, 0x2E, 0x34, 0xCA, 0x38, 0xBA, 0x11, 0x3A, 0x68, 0x71, 0x88,
+ 0xEB, 0x24, 0x26, 0x59, 0x3E, 0xAC, 0xA8, 0x63, 0xCC, 0x8A, 0x0A, 0x02, 0x20,
+ 0x0F, 0x22, 0xBF, 0x0D, 0x1F, 0x8A, 0x8D, 0x1D, 0x91, 0x33, 0x3A, 0x40, 0xE4,
+ 0x23, 0x78, 0xFA, 0x22, 0xF5, 0x9B, 0xCB, 0x04, 0x4F, 0x53, 0x2D, 0x20, 0x75,
+ 0x2F, 0x76, 0x8A, 0xB1, 0xCD, 0x9D, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48,
+ 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0B, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00,
+ 0x03, 0x41, 0x0F, 0xF3, 0xA6, 0x62, 0xA2, 0xE5, 0xB4, 0x8D, 0xA8, 0x08, 0x71,
+ 0x7B, 0xB3, 0xE3, 0x51, 0x61, 0x0D, 0xC0, 0x67, 0x6C, 0x3C, 0x9C, 0x00, 0x0B,
+ 0x63, 0x77, 0xB6, 0xB6, 0x11, 0x67, 0x77, 0xA5, 0xE1, 0x49, 0xE0, 0x7F, 0xB7,
+ 0x1D, 0x61, 0xFB, 0x83, 0x9C, 0x83, 0x42, 0xE9, 0x31, 0xCA, 0x51, 0xE3, 0xC1,
+ 0xBD, 0x9B, 0x2F, 0xB5, 0x35, 0x05, 0x72, 0x7F, 0x40, 0xA6, 0x7C, 0xC9, 0xF1,
+ 0x59, 0xA7, 0x15, 0xB8, 0x12, 0xDA, 0xF8, 0xCE, 0x83, 0x61, 0xFC, 0x47, 0x96,
+ 0x9E, 0x74, 0xFE, 0xCD, 0xE4, 0x61, 0x92, 0xF2, 0x2E, 0x0C, 0x08, 0x4B, 0x60,
+ 0x2D, 0xF6, 0x50, 0x07, 0x83, 0xCA, 0xAF, 0xB9, 0x41, 0x33, 0x4A, 0x3E, 0x84,
+ 0xC7, 0x73, 0xC6, 0x1F, 0xFF, 0x7A, 0xDF, 0xAE, 0x47, 0x25, 0x32, 0xEB, 0xC0,
+ 0x43, 0x0C, 0xA6, 0x23, 0x13, 0x46, 0xC3, 0xFA, 0x44, 0xEA, 0x20, 0xEA, 0xCB,
+ 0x18, 0x17, 0x00, 0xB6, 0xE7, 0x6D, 0x8A, 0x14, 0x8C, 0x6A, 0xCA, 0x88, 0x4C,
+ 0xDA, 0xA8, 0xB9, 0x08, 0xAF, 0x39, 0xEE, 0xCF, 0xD7, 0xF7, 0x32, 0xC0, 0xF4,
+ 0xCF, 0x4E, 0x22, 0x38, 0xF7, 0xAF, 0xAE, 0x7D, 0x58, 0x5F, 0xA5, 0x2D, 0x4D,
+ 0xBB, 0x86, 0x10, 0xB3, 0x93, 0x62, 0x64, 0x27, 0xBF, 0xB1, 0xBB, 0x8F, 0x9F,
+ 0xFC, 0x07, 0x3C, 0x4B, 0x16, 0x7A, 0x84, 0x5E, 0xAF, 0xAD, 0x57, 0x9C, 0xFF,
+ 0x7A, 0xA7, 0xE0, 0x90, 0x89, 0x1C, 0xE8, 0xE5, 0x11, 0xF7, 0xB6, 0xDC, 0xCD,
+ 0x5E, 0xF7, 0x30, 0xA2, 0x2E, 0x67, 0x6D, 0x4A, 0x70, 0x26, 0xEA, 0xCD, 0x27,
+ 0x70, 0x77, 0x54, 0x57, 0x09, 0x03, 0x56, 0x4A, 0x33, 0x60, 0x00, 0x27, 0xFE,
+ 0xA7, 0xD7, 0xA9, 0xC4, 0xEC, 0x17, 0x17, 0x8D, 0x87, 0x70, 0x6B, 0x48, 0x88,
+ 0x61, 0x54, 0x4A, 0x2B, 0xB7, 0x6A, 0x12, 0x08, 0xFB,
+};
+
+UNITTEST_START
+{
+ CURLcode result;
+ struct connectdata conn;
+ const char *beg = (const char *)&cert[0];
+ const char *end = (const char *)&cert[sizeof(cert)];
+ struct Curl_easy *data = curl_easy_init();
+ int i;
+ int byte;
+
+ memset(&conn, 0, sizeof(struct connectdata));
+ /* this is a lot of assuming, but we expect the parsing function to only
+ really need the easy handle pointer */
+ conn.data = data;
+ result = Curl_extract_certinfo(&conn, 0, beg, end);
+
+ fail_unless(result == CURLE_OK, "Curl_extract_certinfo returned error");
+
+ /* a poor man's fuzzing of some initial data to make sure nothing bad
+ happens */
+ for(byte = 1 ; byte < 255; byte += 17) {
+ for(i = 0; i < 45; i++) {
+ char backup = cert[i];
+ cert[i] = (unsigned char)byte&0xff;
+ (void) Curl_extract_certinfo(&conn, 0, beg, end);
+ cert[i] = backup;
+ }
+ }
+ curl_easy_cleanup(data);
+}
+UNITTEST_STOP
+
+#else
+
+UNITTEST_START
+{
+ puts("not tested since Curl_extract_certinfo() is not built-in");
+}
+UNITTEST_STOP
+
+#endif
diff --git a/winbuild/BUILD.WINDOWS.txt b/winbuild/BUILD.WINDOWS.txt
index 33252f8e..c75b15c4 100644
--- a/winbuild/BUILD.WINDOWS.txt
+++ b/winbuild/BUILD.WINDOWS.txt
@@ -78,7 +78,7 @@ where <options> is one or many of:
VC=<6,7,8,9,10,11,12,14,15> - VC versions
WITH_DEVEL=<path> - Paths for the development files (SSL, zlib, etc.)
Defaults to sibbling directory deps: ../deps
- Libraries can be fetched at http://windows.php.net/downloads/php-sdk/deps/
+ Libraries can be fetched at https://windows.php.net/downloads/php-sdk/deps/
Uncompress them into the deps folder.
WITH_SSL=<dll or static> - Enable OpenSSL support, DLL or static
WITH_NGHTTP2=<dll or static> - Enable HTTP/2 support, DLL or static
diff --git a/winbuild/Makefile.vc b/winbuild/Makefile.vc
index a874b77f..94ce8db3 100644
--- a/winbuild/Makefile.vc
+++ b/winbuild/Makefile.vc
@@ -40,7 +40,7 @@ CFGSET=true
!MESSAGE VC=<6,7,8,9,10,11,12,14,15> - VC versions
!MESSAGE WITH_DEVEL=<path> - Paths for the development files (SSL, zlib, etc.)
!MESSAGE Defaults to sibbling directory deps: ../deps
-!MESSAGE Libraries can be fetched at http://pecl2.php.net/downloads/php-windows-builds/
+!MESSAGE Libraries can be fetched at https://windows.php.net/downloads/php-sdk/deps/
!MESSAGE Uncompress them into the deps folder.
!MESSAGE WITH_SSL=<dll or static> - Enable OpenSSL support, DLL or static
!MESSAGE WITH_NGHTTP2=<dll or static> - Enable HTTP/2 support, DLL or static
@@ -53,6 +53,8 @@ CFGSET=true
!MESSAGE ENABLE_IPV6=<yes or no> - Enable IPv6, defaults to yes
!MESSAGE ENABLE_SSPI=<yes or no> - Enable SSPI support, defaults to yes
!MESSAGE ENABLE_WINSSL=<yes or no> - Enable native Windows SSL support, defaults to yes
+!MESSAGE ENABLE_OPENSSL_AUTO_LOAD_CONFIG=<yes or no>
+!MESSAGE - Whether the OpenSSL configuration will be loaded automatically, defaults to yes
!MESSAGE GEN_PDB=<yes or no> - Generate Program Database (debug symbols for release build)
!MESSAGE DEBUG=<yes or no> - Debug builds
!MESSAGE MACHINE=<x86 or x64> - Target architecture (default x64 on AMD64, x86 on others)
@@ -130,6 +132,10 @@ USE_WINSSL = true
USE_WINSSL = false
!ENDIF
+!IFNDEF ENABLE_OPENSSL_AUTO_LOAD_CONFIG
+ENABLE_OPENSSL_AUTO_LOAD_CONFIG = true
+!ENDIF
+
CONFIG_NAME_LIB = libcurl
!IF "$(WITH_SSL)"=="dll"
diff --git a/winbuild/MakefileBuild.vc b/winbuild/MakefileBuild.vc
index 019a414a..5cda3900 100644
--- a/winbuild/MakefileBuild.vc
+++ b/winbuild/MakefileBuild.vc
@@ -152,6 +152,9 @@ SSL_CFLAGS = /DUSE_OPENSSL /I"$(SSL_INC_DIR)"
!IF EXISTS("$(SSL_INC_DIR)\is_boringssl.h")
SSL_CFLAGS = $(SSL_CFLAGS) /DHAVE_BORINGSSL
!ENDIF
+!IF "$(ENABLE_OPENSSL_AUTO_LOAD_CONFIG)"=="false"
+SSL_CFLAGS = $(SSL_CFLAGS) /DCURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG
+!ENDIF
!ENDIF
@@ -623,4 +626,3 @@ clean:
@if exist $(LIB_DIROBJ) rd /s/q $(LIB_DIROBJ)
@if exist $(CURL_DIROBJ)rd /s/q $(CURL_DIROBJ)
@if exist $(DIRDIST) rd /s/q $(DIRDIST)
-