diff options
Diffstat (limited to 'gnu/packages/patches')
6 files changed, 130 insertions, 269 deletions
diff --git a/gnu/packages/patches/dbxfs-remove-sentry-sdk.patch b/gnu/packages/patches/dbxfs-remove-sentry-sdk.patch index e4f660000d..6f7ba53542 100644 --- a/gnu/packages/patches/dbxfs-remove-sentry-sdk.patch +++ b/gnu/packages/patches/dbxfs-remove-sentry-sdk.patch @@ -1,38 +1,48 @@ sentry-sdk provides a link to sentry.io, a service which monitors applications deployed in the wild. Defaults to true. Best to just remove the option. ---- - dbxfs/main.py | 16 ---------------- - setup.py | 1 - - 2 files changed, 17 deletions(-) - diff --git a/dbxfs/main.py b/dbxfs/main.py -index 5a6cea1..5d00818 100755 +index 458e82a..784dd2a 100755 --- a/dbxfs/main.py +++ b/dbxfs/main.py -@@ -40,8 +40,6 @@ import userspacefs +@@ -43,8 +43,6 @@ import userspacefs import keyring from keyring.errors import KeyringError -import sentry_sdk - - from block_tracing import block_tracing, BLOCK_TRACING_INHERITS + from block_tracing import block_tracing from dbxfs.dbxfs import FileSystem as DropboxFileSystem -@@ -299,12 +297,6 @@ def _main(argv=None): - config['keyring_user'] = keyring_user - save_config = True +@@ -127,16 +125,6 @@ def on_new_process(proc_args): + level = [logging.WARNING, logging.INFO, logging.DEBUG][min(2, verbose)] + logging.basicConfig(level=level, handlers=[logging_stream], format=format_) -- if not config.get("asked_send_error_reports", False): -- if yes_no_input("Would you like to help us improve %s by providing anonymous error reports?" % (APP_NAME,), default_yes=True): -- config['send_error_reports'] = True -- config['asked_send_error_reports'] = True +- if int(proc_args.get('send_error_reports', '0')): +- version = proc_args['version'] +- try: +- sentry_sdk.init("https://b4b13ebd300849bd92260507a594e618@sentry.io/1293235", +- release='%s@%s' % (APP_NAME, version), +- with_locals=False) +- sentry_sdk.set_user(dict(id=proc_args['sentry_user'])) +- except Exception: +- log.warning("Failed to initialize sentry", exc_info=True) +- + def create_fs(fs_args): + refresh_token = fs_args.get('refresh_token') + access_token = fs_args.get('access_token') +@@ -527,10 +515,6 @@ deprecated, this functionality will be removed in the future. + config['asked_send_error_reports'] = True + save_config = True + +- if config.get("send_error_reports", False) and not isinstance(config.get("sentry_user", None), str): +- config['sentry_user'] = uuid.uuid4().hex - save_config = True - - if save_access_token and yes_no_input("Do you want \"%s\" to be the default mount point?" % (mount_point,), default_yes=True): + if save_refresh_token and yes_no_input("Do you want \"%s\" to be the default mount point?" % (mount_point,), default_yes=True): config['mount_point'] = mount_point save_config = True -@@ -315,14 +307,6 @@ def _main(argv=None): +@@ -541,15 +525,6 @@ deprecated, this functionality will be removed in the future. log.info("Starting %s...", APP_NAME) @@ -41,24 +51,31 @@ index 5a6cea1..5d00818 100755 - sentry_sdk.init("https://b4b13ebd300849bd92260507a594e618@sentry.io/1293235", - release='%s@%s' % (APP_NAME, version), - with_locals=False) +- sentry_sdk.set_user(dict(id=config['sentry_user'])) - except Exception: - log.warning("Failed to initialize sentry", exc_info=True) - if cache_folder is None: cache_folder = os.path.join(appdirs.user_cache_dir(APP_NAME), "file_cache") try: +@@ -602,8 +577,6 @@ deprecated, this functionality will be removed in the future. + proc_args['verbose'] = str(args.verbose) + proc_args['version'] = version + proc_args['send_error_reports'] = str(int(config.get('send_error_reports', False))) +- if config.get('send_error_reports', False): +- proc_args['sentry_user'] = config['sentry_user'] + + return userspacefs.simple_main(mount_point, display_name, + ('dbxfs.main.create_fs', fs_args), diff --git a/setup.py b/setup.py -index 89e25c6..f940d47 100644 +index ae696e9..869d0db 100644 --- a/setup.py +++ b/setup.py -@@ -43,7 +43,6 @@ setup( +@@ -47,7 +47,6 @@ setup( "privy>=6.0,<7", "keyring>=15.1.0", "keyrings.alt>=3.1,<5", -- "sentry_sdk>=0.3,<1", +- "sentry_sdk>=1.0,<2", ], extras_require={ 'safefs': ["safefs"], --- -2.28.0 - diff --git a/gnu/packages/patches/eigen-fix-strict-aliasing-bug.patch b/gnu/packages/patches/eigen-fix-strict-aliasing-bug.patch new file mode 100644 index 0000000000..139d633c44 --- /dev/null +++ b/gnu/packages/patches/eigen-fix-strict-aliasing-bug.patch @@ -0,0 +1,73 @@ +From f046e326d9e30772725d8fb26dc33328e418d9d3 Mon Sep 17 00:00:00 2001 +From: Antonio Sanchez <cantonios@google.com> +Date: Fri, 17 Sep 2021 12:49:01 -0700 +Subject: [PATCH] Fix strict aliasing bug causing product_small failure. + +Packet loading is skipped due to aliasing violation, leading to nullopt matrix +multiplication. + +Fixes #2327. + + +(cherry picked from commit 3c724c44cff3f9e2e9e35351abff0b5c022b320d) +--- + Eigen/src/Core/arch/AVX/Complex.h | 4 +++- + Eigen/src/Core/arch/AVX512/Complex.h | 4 +++- + Eigen/src/Core/arch/SSE/Complex.h | 11 +++-------- + 3 files changed, 9 insertions(+), 10 deletions(-) + +diff --git a/Eigen/src/Core/arch/AVX/Complex.h b/Eigen/src/Core/arch/AVX/Complex.h +index ab7bd6c65..e9096c0a1 100644 +--- a/Eigen/src/Core/arch/AVX/Complex.h ++++ b/Eigen/src/Core/arch/AVX/Complex.h +@@ -99,7 +99,9 @@ template<> EIGEN_STRONG_INLINE Packet4cf ploadu<Packet4cf>(const std::complex<fl + + template<> EIGEN_STRONG_INLINE Packet4cf pset1<Packet4cf>(const std::complex<float>& from) + { +- return Packet4cf(_mm256_castpd_ps(_mm256_broadcast_sd((const double*)(const void*)&from))); ++ const float re = std::real(from); ++ const float im = std::imag(from); ++ return Packet4cf(_mm256_set_ps(im, re, im, re, im, re, im, re)); + } + + template<> EIGEN_STRONG_INLINE Packet4cf ploaddup<Packet4cf>(const std::complex<float>* from) +diff --git a/Eigen/src/Core/arch/AVX512/Complex.h b/Eigen/src/Core/arch/AVX512/Complex.h +index 49c72b3f1..074253859 100644 +--- a/Eigen/src/Core/arch/AVX512/Complex.h ++++ b/Eigen/src/Core/arch/AVX512/Complex.h +@@ -97,7 +97,9 @@ template<> EIGEN_STRONG_INLINE Packet8cf ploadu<Packet8cf>(const std::complex<fl + + template<> EIGEN_STRONG_INLINE Packet8cf pset1<Packet8cf>(const std::complex<float>& from) + { +- return Packet8cf(_mm512_castpd_ps(pload1<Packet8d>((const double*)(const void*)&from))); ++ const float re = std::real(from); ++ const float im = std::imag(from); ++ return Packet8cf(_mm512_set_ps(im, re, im, re, im, re, im, re, im, re, im, re, im, re, im, re)); + } + + template<> EIGEN_STRONG_INLINE Packet8cf ploaddup<Packet8cf>(const std::complex<float>* from) +diff --git a/Eigen/src/Core/arch/SSE/Complex.h b/Eigen/src/Core/arch/SSE/Complex.h +index 8fe22da46..215bfd7bb 100644 +--- a/Eigen/src/Core/arch/SSE/Complex.h ++++ b/Eigen/src/Core/arch/SSE/Complex.h +@@ -106,14 +106,9 @@ template<> EIGEN_STRONG_INLINE Packet2cf ploadu<Packet2cf>(const std::complex<fl + + template<> EIGEN_STRONG_INLINE Packet2cf pset1<Packet2cf>(const std::complex<float>& from) + { +- Packet2cf res; +-#ifdef EIGEN_VECTORIZE_SSE3 +- res.v = _mm_castpd_ps(_mm_loaddup_pd(reinterpret_cast<double const*>(&from))); +-#else +- res.v = _mm_castpd_ps(_mm_load_sd(reinterpret_cast<double const*>(&from))); +- res.v = _mm_movelh_ps(res.v, res.v); +-#endif +- return res; ++ const float re = std::real(from); ++ const float im = std::imag(from); ++ return Packet2cf(_mm_set_ps(im, re, im, re)); + } + + template<> EIGEN_STRONG_INLINE Packet2cf ploaddup<Packet2cf>(const std::complex<float>* from) { return pset1<Packet2cf>(*from); } +-- +2.37.0 + diff --git a/gnu/packages/patches/eigen-remove-openmp-error-counting.patch b/gnu/packages/patches/eigen-remove-openmp-error-counting.patch deleted file mode 100644 index 556474e8b3..0000000000 --- a/gnu/packages/patches/eigen-remove-openmp-error-counting.patch +++ /dev/null @@ -1,64 +0,0 @@ -From ef3cc72cb65e2d500459c178c63e349bacfa834f Mon Sep 17 00:00:00 2001 -From: Luke Peterson <hazelnusse@gmail.com> -Date: Thu, 8 Oct 2020 12:16:53 -0700 -Subject: [PATCH] Remove error counting in OpenMP parallelize_gemm - -This resolves a compilation error associated with -Eigen::eigen_assert_exception. It also eliminates the counting of -exceptions that may occur in the OpenMP parallel section. If an -unhandled exception occurs in this section, the behavior is non-conforming -according to the OpenMP specification. ---- - Eigen/src/Core/products/Parallelizer.h | 14 +++++--------- - test/CMakeLists.txt | 2 +- - 2 files changed, 6 insertions(+), 10 deletions(-) - -diff --git a/Eigen/src/Core/products/Parallelizer.h b/Eigen/src/Core/products/Parallelizer.h -index 67b2442b5..a3cc05b77 100644 ---- a/Eigen/src/Core/products/Parallelizer.h -+++ b/Eigen/src/Core/products/Parallelizer.h -@@ -132,8 +132,7 @@ void parallelize_gemm(const Functor& func, Index rows, Index cols, Index depth, - - ei_declare_aligned_stack_constructed_variable(GemmParallelInfo<Index>,info,threads,0); - -- int errorCount = 0; -- #pragma omp parallel num_threads(threads) reduction(+: errorCount) -+ #pragma omp parallel num_threads(threads) - { - Index i = omp_get_thread_num(); - // Note that the actual number of threads might be lower than the number of request ones. -@@ -152,14 +151,11 @@ void parallelize_gemm(const Functor& func, Index rows, Index cols, Index depth, - info[i].lhs_start = r0; - info[i].lhs_length = actualBlockRows; - -- EIGEN_TRY { -- if(transpose) func(c0, actualBlockCols, 0, rows, info); -- else func(0, rows, c0, actualBlockCols, info); -- } EIGEN_CATCH(...) { -- ++errorCount; -- } -+ if(transpose) -+ func(c0, actualBlockCols, 0, rows, info); -+ else -+ func(0, rows, c0, actualBlockCols, info); - } -- if (errorCount) EIGEN_THROW_X(Eigen::eigen_assert_exception()); - #endif - } - -diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt -index 0747aa6cb..b02577780 100644 ---- a/test/CMakeLists.txt -+++ b/test/CMakeLists.txt -@@ -163,7 +163,7 @@ ei_add_test(constructor) - ei_add_test(linearstructure) - ei_add_test(integer_types) - ei_add_test(unalignedcount) --if(NOT EIGEN_TEST_NO_EXCEPTIONS) -+if(NOT EIGEN_TEST_NO_EXCEPTIONS AND NOT EIGEN_TEST_OPENMP) - ei_add_test(exceptions) - endif() - ei_add_test(redux) --- -GitLab - diff --git a/gnu/packages/patches/eigen-stabilise-sparseqr-test.patch b/gnu/packages/patches/eigen-stabilise-sparseqr-test.patch deleted file mode 100644 index b95b46077a..0000000000 --- a/gnu/packages/patches/eigen-stabilise-sparseqr-test.patch +++ /dev/null @@ -1,74 +0,0 @@ -From: Tobias Geerinckx-Rice <me@tobias.gr> -Date: Mon, 16 Mar 2020 22:51:37 +0000 -Subject: gnu: eigen: Stabilise sparseqr test. - -Taken verbatim from this[0] upstream commit. - -[0]: https://gitlab.com/libeigen/eigen/-/commit/3b5deeb546d4017b24846f5b0dc3296a50a039fe - -From 3b5deeb546d4017b24846f5b0dc3296a50a039fe Mon Sep 17 00:00:00 2001 -From: Gael Guennebaud <g.gael@free.fr> -Date: Tue, 19 Feb 2019 22:57:51 +0100 -Subject: [PATCH] bug #899: make sparseqr unit test more stable by 1) trying - with larger threshold and 2) relax rank computation for rank-deficient - problems. - ---- - test/sparseqr.cpp | 31 ++++++++++++++++++++++++++----- - 1 file changed, 26 insertions(+), 5 deletions(-) - -diff --git a/test/sparseqr.cpp b/test/sparseqr.cpp -index 3ffe62314..3576cc626 100644 ---- a/test/sparseqr.cpp -+++ b/test/sparseqr.cpp -@@ -43,6 +43,7 @@ int generate_sparse_rectangular_problem(MatrixType& A, DenseMat& dA, int maxRows - - template<typename Scalar> void test_sparseqr_scalar() - { -+ typedef typename NumTraits<Scalar>::Real RealScalar; - typedef SparseMatrix<Scalar,ColMajor> MatrixType; - typedef Matrix<Scalar,Dynamic,Dynamic> DenseMat; - typedef Matrix<Scalar,Dynamic,1> DenseVector; -@@ -91,14 +92,34 @@ template<typename Scalar> void test_sparseqr_scalar() - exit(0); - return; - } -- -- VERIFY_IS_APPROX(A * x, b); -- -- //Compare with a dense QR solver -+ -+ // Compare with a dense QR solver - ColPivHouseholderQR<DenseMat> dqr(dA); - refX = dqr.solve(b); - -- VERIFY_IS_EQUAL(dqr.rank(), solver.rank()); -+ bool rank_deficient = A.cols()>A.rows() || dqr.rank()<A.cols(); -+ if(rank_deficient) -+ { -+ // rank deficient problem -> we might have to increase the threshold -+ // to get a correct solution. -+ RealScalar th = RealScalar(20)*dA.colwise().norm().maxCoeff()*(A.rows()+A.cols()) * NumTraits<RealScalar>::epsilon(); -+ for(Index k=0; (k<16) && !test_isApprox(A*x,b); ++k) -+ { -+ th *= RealScalar(10); -+ solver.setPivotThreshold(th); -+ solver.compute(A); -+ x = solver.solve(b); -+ } -+ } -+ -+ VERIFY_IS_APPROX(A * x, b); -+ -+ // For rank deficient problem, the estimated rank might -+ // be slightly off, so let's only raise a warning in such cases. -+ if(rank_deficient) ++g_test_level; -+ VERIFY_IS_EQUAL(solver.rank(), dqr.rank()); -+ if(rank_deficient) --g_test_level; -+ - if(solver.rank()==A.cols()) // full rank - VERIFY_IS_APPROX(x, refX); - // else --- -2.24.1 - diff --git a/gnu/packages/patches/php-curl-compat.patch b/gnu/packages/patches/php-curl-compat.patch new file mode 100644 index 0000000000..0617251194 --- /dev/null +++ b/gnu/packages/patches/php-curl-compat.patch @@ -0,0 +1,17 @@ +Fix test result with cURL 7.83 and later. + +Taken from upstream: + + https://github.com/php/php-src/commit/a4179e4c92b6365d39e09cb9cd63c476848013af + +diff --git a/ext/curl/tests/curl_basic_007.phpt b/ext/curl/tests/curl_basic_007.phpt +index 3b53658d6a7e..3834e4674f82 100644 +--- a/ext/curl/tests/curl_basic_007.phpt ++++ b/ext/curl/tests/curl_basic_007.phpt +@@ -20,5 +20,5 @@ curl_close($ch); + + ?> + --EXPECTF-- +-string(%d) "No URL set!%w" ++string(%d) "No URL set%A" + int(3) diff --git a/gnu/packages/patches/php-openssl_x509_checkpurpose_basic.patch b/gnu/packages/patches/php-openssl_x509_checkpurpose_basic.patch deleted file mode 100644 index 427965f231..0000000000 --- a/gnu/packages/patches/php-openssl_x509_checkpurpose_basic.patch +++ /dev/null @@ -1,108 +0,0 @@ -From 98175fc7f1623873ceb2e9a017a319d19bfb3912 Mon Sep 17 00:00:00 2001 -From: "Christoph M. Becker" <cmbecker69@gmx.de> -Date: Sun, 12 Dec 2021 13:41:37 +0100 -Subject: [PATCH] Fix openssl_x509_checkpurpose_basic.phpt - -This test fails because san-cert.pem and san-ca.pem have expired. We -fix that by using the CertificateGenerator to generate temporary certs -during the test run. Since san-cert.pem and san-ca.pem have been -identical, we only generate one certificate. - -Closes GH-7763. ---- - .../openssl_x509_checkpurpose_basic.phpt | 10 +++++- - ext/openssl/tests/san-ca.pem | 15 --------- - ext/openssl/tests/san-cert.pem | 31 ------------------- - 3 files changed, 9 insertions(+), 47 deletions(-) - delete mode 100644 ext/openssl/tests/san-ca.pem - delete mode 100644 ext/openssl/tests/san-cert.pem - -diff --git a/ext/openssl/tests/openssl_x509_checkpurpose_basic.phpt b/ext/openssl/tests/openssl_x509_checkpurpose_basic.phpt -index 99b4f0bdff31..35629bd93626 100644 ---- a/ext/openssl/tests/openssl_x509_checkpurpose_basic.phpt -+++ b/ext/openssl/tests/openssl_x509_checkpurpose_basic.phpt -@@ -8,10 +8,14 @@ if (OPENSSL_VERSION_NUMBER < 0x10000000) die("skip Output requires OpenSSL 1.0") - ?> - --FILE-- - <?php -+include 'CertificateGenerator.inc'; -+$certificateGenerator = new CertificateGenerator(); -+$certificateGenerator->saveCaCert(__DIR__ . "/san-cert.pem"); -+ - $cert = "file://" . __DIR__ . "/cert.crt"; - $bert = "file://" . __DIR__ . "/bug41033.pem"; - $sert = "file://" . __DIR__ . "/san-cert.pem"; --$cpca = __DIR__ . "/san-ca.pem"; -+$cpca = __DIR__ . "/san-cert.pem"; - $utfl = __DIR__ . "/sni_server_uk.pem"; - $rcrt = openssl_x509_read($cert); - -@@ -84,6 +88,10 @@ var_dump(openssl_x509_checkpurpose($sert, X509_PURPOSE_SMIME_ENCRYPT, array($cpc - var_dump(openssl_x509_checkpurpose($sert, X509_PURPOSE_CRL_SIGN, array($cpca), $utfl)); - var_dump(openssl_x509_checkpurpose($sert, X509_PURPOSE_ANY, array($cpca), $utfl)); - ?> -+--CLEAN-- -+<?php -+@unlink(__DIR__ . "/san-cert.pem"); -+?> - --EXPECT-- - bool(false) - bool(false) -diff --git a/ext/openssl/tests/san-ca.pem b/ext/openssl/tests/san-ca.pem -deleted file mode 100644 -index 88682ba2dcf6..000000000000 ---- a/ext/openssl/tests/san-ca.pem -+++ /dev/null -@@ -1,15 +0,0 @@ -------BEGIN CERTIFICATE----- --MIICYTCCAcqgAwIBAgIJAIaqxtY5dwjtMA0GCSqGSIb3DQEBBQUAMFMxCzAJBgNV --BAYTAlVTMQswCQYDVQQIEwJNTjEUMBIGA1UEBxMLTWlubmVhcG9saXMxITAfBgNV --BAsTGERvbWFpbiBDb250cm9sIFZhbGlkYXRlZDAeFw0xMzA5MjQwODA1NTFaFw0y --MTEyMTEwODA1NTFaMFMxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJNTjEUMBIGA1UE --BxMLTWlubmVhcG9saXMxITAfBgNVBAsTGERvbWFpbiBDb250cm9sIFZhbGlkYXRl --ZDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAsFGqfbU/8D+KjroQl4XMyt9m --dcSP7iZtqphOu9nVZxYAAqfaqj8FnC/pwYV3TU6ZHndLTQAllwYT3sQBQPPGmZQ9 --clSIMEL003t3pi4ZVXkttG6Vvr+Z9PBcHhlKLQ7WMHnn4qctllWXTSoyTQpkETF3 --Fc3mrG5G37BhoUno7NECAwEAAaM9MDswOQYDVR0RBDIwMIILZXhhbXBsZS5vcmeC --D3d3dy5leGFtcGxlLm9yZ4IQdGVzdC5leGFtcGxlLm9yZzANBgkqhkiG9w0BAQUF --AAOBgQBf/FZhzheIcQJ+dyTk8xQ/nJLvpmBhbd1LNtfwk/MsC9UHsz4QXs9sBw1k --rH0FjoqgM6avj7zKHJFTj6q7Rd+OX5V4HynYPhX67sWbN3KWEHffL98nGGd/bo3X --pSjNk5vnyKYiwdUUe11Ac9csh0HcSBbhOYjy0T/i9AlQcKbuCg== -------END CERTIFICATE----- -diff --git a/ext/openssl/tests/san-cert.pem b/ext/openssl/tests/san-cert.pem -deleted file mode 100644 -index 923d490e72fd..000000000000 ---- a/ext/openssl/tests/san-cert.pem -+++ /dev/null -@@ -1,31 +0,0 @@ -------BEGIN CERTIFICATE----- --MIICYTCCAcqgAwIBAgIJAIaqxtY5dwjtMA0GCSqGSIb3DQEBBQUAMFMxCzAJBgNV --BAYTAlVTMQswCQYDVQQIEwJNTjEUMBIGA1UEBxMLTWlubmVhcG9saXMxITAfBgNV --BAsTGERvbWFpbiBDb250cm9sIFZhbGlkYXRlZDAeFw0xMzA5MjQwODA1NTFaFw0y --MTEyMTEwODA1NTFaMFMxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJNTjEUMBIGA1UE --BxMLTWlubmVhcG9saXMxITAfBgNVBAsTGERvbWFpbiBDb250cm9sIFZhbGlkYXRl --ZDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAsFGqfbU/8D+KjroQl4XMyt9m --dcSP7iZtqphOu9nVZxYAAqfaqj8FnC/pwYV3TU6ZHndLTQAllwYT3sQBQPPGmZQ9 --clSIMEL003t3pi4ZVXkttG6Vvr+Z9PBcHhlKLQ7WMHnn4qctllWXTSoyTQpkETF3 --Fc3mrG5G37BhoUno7NECAwEAAaM9MDswOQYDVR0RBDIwMIILZXhhbXBsZS5vcmeC --D3d3dy5leGFtcGxlLm9yZ4IQdGVzdC5leGFtcGxlLm9yZzANBgkqhkiG9w0BAQUF --AAOBgQBf/FZhzheIcQJ+dyTk8xQ/nJLvpmBhbd1LNtfwk/MsC9UHsz4QXs9sBw1k --rH0FjoqgM6avj7zKHJFTj6q7Rd+OX5V4HynYPhX67sWbN3KWEHffL98nGGd/bo3X --pSjNk5vnyKYiwdUUe11Ac9csh0HcSBbhOYjy0T/i9AlQcKbuCg== -------END CERTIFICATE----- -------BEGIN PRIVATE KEY----- --MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALBRqn21P/A/io66 --EJeFzMrfZnXEj+4mbaqYTrvZ1WcWAAKn2qo/BZwv6cGFd01OmR53S00AJZcGE97E --AUDzxpmUPXJUiDBC9NN7d6YuGVV5LbRulb6/mfTwXB4ZSi0O1jB55+KnLZZVl00q --Mk0KZBExdxXN5qxuRt+wYaFJ6OzRAgMBAAECgYB11e5iWvqjPmQEZRdnnJU0VD8u --n7ItT+Nk6qtb4gY8Abj6DWIW+01th5vqqJ8FvGyartFVYa69kuM+srG/zevAZWeu --fGZtwiwZR4DRSyRcPp4rnNiksK3dkAZA6UewmRDPv8uyHJlXc5i+Ft1ILJ5Q5jgn --UkC4z3EJP5Se9KZywQJBAOO4lRq42wLsYr2SDrQDSs4leie3FKc2bgvjF7Djosh1 --ZYbf55F5b9w1zgnccmni2HkqOnyFu4SKarmXyCsYxrkCQQDGNvnUh7/zZswrdWZ/ --PMp9zVDTh/5Oc2B4ByNLw1ERDwYhjchKgPRlQvn4cp3Pwf3UYPQ/8XGXzzEJey3A --r0rZAkBf/tDEOgcBPXsGZQrTscuYCU5sbY5ESvqrAilbhSp7DJom+D5bIfEYyIm5 --uHd20Yzlzvpmwc1huyPwZt6X5FLpAkATDReoGMAXSesXxjnqwtIHk2NQYYLM0YQV --JUJ8NrKk/Bevw+vbVVeoH+7ctU97t36JGiR/vNoZKD3jVmaIXZDJAkEA4wJbwzIo --L32mu9VmZa7wjmfkraQEmXTPaA5D9lNC0AwRTgkj+x2Qe1vawNblNK9PPLBDdplQ --L//53ADq/wv5rA== -------END PRIVATE KEY----- |