Initial import (#1557746).

This commit is contained in:
Elliott Sales de Andrade 2018-03-19 18:51:19 -04:00
parent 56e841138d
commit 47dbf599f1
5 changed files with 573 additions and 3 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/polyclip_1.6-1.tar.gz

View File

@ -0,0 +1,499 @@
From 757c615e76f3bbb258dfa40d261f82c6d5bef50c Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Sun, 18 Mar 2018 05:53:49 -0400
Subject: [PATCH] Allow building against system copy of clipper.
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
configure.ac | 144 ++++++++++++++++++++++++++++++++------------------------
src/Makevars.in | 3 +-
2 files changed, 85 insertions(+), 62 deletions(-)
diff --git a/configure.ac b/configure.ac
index 738c849..9f12759 100644
--- a/configure.ac
+++ b/configure.ac
@@ -18,76 +18,98 @@ else
CXXFLAGS=`"${R_HOME}/bin/R" CMD config CXXFLAGS`
fi
CPPFLAGS=`"${R_HOME}/bin/R" CMD config CPPFLAGS`
-dnl Check for availability of 64-bit integer types in C++
-dnl Signed 64-bit integer
-long64=""
-name64="signed 64-bit integers (cInt)"
-if test "${CXX1X}" != ""; then
- long64="signed long long"
- POLYCLIP_LONG64="${long64}"
-else
- AC_CHECK_TYPES([int64_t],[long64="int64_t"],[],[#include <stdint.h>])
- if test "${long64}" != ""; then
- POLYCLIP_LONG64="${long64}"
+dnl Check for pkgconf or pkg-config
+if test -z "$PKG_CONFIG"; then
+ if command -v pkgconf 2>&1 > /dev/null; then
+ PKG_CONFIG=pkgconf
else
- AC_CHECK_TYPES([int_fast64_t],[long64="int_fast64_t"],[],[#include <stdint.h>])
- if test "${long64}" != ""; then
- POLYCLIP_LONG64="${long64}"
- else
- AC_CHECK_TYPES([int_least64_t],[long64="int_least64_t"],[],[#include <stdint.h>])
- if test "${long64}" != ""; then
- POLYCLIP_LONG64="${long64}"
- else
- AC_CHECK_TYPES([long long],[long64="long long"])
- if test "${long64}" != ""; then
- POLYCLIP_LONG64="${long64}"
- else
- echo "Error: unable to find a C++ data type for ${name64}"
- exit 1
- fi
- fi
- fi
+ if command -v pkg-config 2>&1 > /dev/null; then
+ PKG_CONFIG=pkg-config
+ fi
fi
fi
-echo " In src/clipper.h, ${name64}"
-echo " will be declared as '${long64}'"
-dnl Unsigned 64-bit integer
-ulong64=""
-uname64="unsigned 64-bit integers (cUInt)"
-if test "${CXX1X}" != ""; then
- ulong64="unsigned long long"
- POLYCLIP_ULONG64="${ulong64}"
-else
- AC_CHECK_TYPES([uint64_t],[ulong64="uint64_t"],[],[#include <stdint.h>])
- if test "${ulong64}" != ""; then
- POLYCLIP_ULONG64="${ulong64}"
- else
- AC_CHECK_TYPES([uint_fast64_t],[ulong64="uint_fast64_t"],[],[#include <stdint.h>])
- if test "${ulong64}" != ""; then
- POLYCLIP_ULONG64="${ulong64}"
- else
- AC_CHECK_TYPES([uint_least64_t],[ulong64="uint_least64_t"],[],[#include <stdint.h>])
+echo "Using PKG_CONFIG: $PKG_CONFIG"
+if test -n "$PKG_CONFIG" && $PKG_CONFIG --exists polyclipping; then
+ dnl Check for polyclipping installed on system.
+ echo Compiling against system copy of polyclipping.
+ POLYCLIP_CPPFLAGS=`$PKG_CONFIG --cflags polyclipping`
+ POLYCLIP_LIBS=`$PKG_CONFIG --libs polyclipping`
+else
+ echo Compiling against bundled copy of polyclipping.
+ dnl Check for availability of 64-bit integer types in C++
+ dnl Signed 64-bit integer
+ long64=""
+ name64="signed 64-bit integers (cInt)"
+ if test "${CXX1X}" != ""; then
+ long64="signed long long"
+ POLYCLIP_LONG64="${long64}"
+ else
+ AC_CHECK_TYPES([int64_t],[long64="int64_t"],[],[#include <stdint.h>])
+ if test "${long64}" != ""; then
+ POLYCLIP_LONG64="${long64}"
+ else
+ AC_CHECK_TYPES([int_fast64_t],[long64="int_fast64_t"],[],[#include <stdint.h>])
+ if test "${long64}" != ""; then
+ POLYCLIP_LONG64="${long64}"
+ else
+ AC_CHECK_TYPES([int_least64_t],[long64="int_least64_t"],[],[#include <stdint.h>])
+ if test "${long64}" != ""; then
+ POLYCLIP_LONG64="${long64}"
+ else
+ AC_CHECK_TYPES([long long],[long64="long long"])
+ if test "${long64}" != ""; then
+ POLYCLIP_LONG64="${long64}"
+ else
+ echo "Error: unable to find a C++ data type for ${name64}"
+ exit 1
+ fi
+ fi
+ fi
+ fi
+ fi
+ echo " In src/clipper.h, ${name64}"
+ echo " will be declared as '${long64}'"
+ dnl Unsigned 64-bit integer
+ ulong64=""
+ uname64="unsigned 64-bit integers (cUInt)"
+ if test "${CXX1X}" != ""; then
+ ulong64="unsigned long long"
+ POLYCLIP_ULONG64="${ulong64}"
+ else
+ AC_CHECK_TYPES([uint64_t],[ulong64="uint64_t"],[],[#include <stdint.h>])
if test "${ulong64}" != ""; then
- POLYCLIP_ULONG64="${ulong64}"
- else
- AC_CHECK_TYPES([unsigned long long],[ulong64="unsigned long long"])
- if test "${ulong64}" != ""; then
- POLYCLIP_ULONG64="${ulong64}"
- else
- echo "Error: unable to find a C++ data type for ${uname64}"
- exit 1
- fi
+ POLYCLIP_ULONG64="${ulong64}"
+ else
+ AC_CHECK_TYPES([uint_fast64_t],[ulong64="uint_fast64_t"],[],[#include <stdint.h>])
+ if test "${ulong64}" != ""; then
+ POLYCLIP_ULONG64="${ulong64}"
+ else
+ AC_CHECK_TYPES([uint_least64_t],[ulong64="uint_least64_t"],[],[#include <stdint.h>])
+ if test "${ulong64}" != ""; then
+ POLYCLIP_ULONG64="${ulong64}"
+ else
+ AC_CHECK_TYPES([unsigned long long],[ulong64="unsigned long long"])
+ if test "${ulong64}" != ""; then
+ POLYCLIP_ULONG64="${ulong64}"
+ else
+ echo "Error: unable to find a C++ data type for ${uname64}"
+ exit 1
+ fi
+ fi
+ fi
fi
- fi
- fi
+ fi
+ echo " In src/clipper.h, ${uname64}"
+ echo " will be declared as '${ulong64}'"
+ dnl Put results in C++ preprocessor flags
+ POLYCLIP_CPPFLAGS="-DPOLYCLIP_LONG64=\"${POLYCLIP_LONG64}\" -DPOLYCLIP_ULONG64=\"${POLYCLIP_ULONG64}\""
+ POLYCLIP_OBJECTS="clipper.o"
fi
-echo " In src/clipper.h, ${uname64}"
-echo " will be declared as '${ulong64}'"
-dnl Put results in C++ preprocessor flags
-POLYCLIP_CPPFLAGS="-DPOLYCLIP_LONG64=\"${POLYCLIP_LONG64}\" -DPOLYCLIP_ULONG64=\"${POLYCLIP_ULONG64}\""
POLYCLIP_CXXFLAGS="${CXXFLAGS}"
AC_SUBST(POLYCLIP_CPPFLAGS)
AC_SUBST(POLYCLIP_CXXFLAGS)
+AC_SUBST(POLYCLIP_LIBS)
+AC_SUBST(POLYCLIP_OBJECTS)
AC_SUBST(POLYCLIP_CXX_DECLAR)
AC_CONFIG_FILES([src/Makevars])
AC_OUTPUT
diff --git a/src/Makevars.in b/src/Makevars.in
index 6d77dba..2eb4742 100644
--- a/src/Makevars.in
+++ b/src/Makevars.in
@@ -1,4 +1,5 @@
PKG_CPPFLAGS = @POLYCLIP_CPPFLAGS@
PKG_CXXFLAGS = @POLYCLIP_CXXFLAGS@
+PKG_LIBS = @POLYCLIP_LIBS@
@POLYCLIP_CXX_DECLAR@
-
+OBJECTS = init.o interface.o @POLYCLIP_OBJECTS@
--- a/configure 2017-03-13 02:41:09.000000000 -0400
+++ b/configure 2018-03-18 05:49:47.468480824 -0400
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for polyclip 1.5-4.
+# Generated by GNU Autoconf 2.69 for polyclip 1.7-2.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -577,8 +577,8 @@
# Identity of this package.
PACKAGE_NAME='polyclip'
PACKAGE_TARNAME='polyclip'
-PACKAGE_VERSION='1.5-4'
-PACKAGE_STRING='polyclip 1.5-4'
+PACKAGE_VERSION='1.7-2'
+PACKAGE_STRING='polyclip 1.7-2'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -621,6 +621,8 @@
ac_subst_vars='LTLIBOBJS
LIBOBJS
POLYCLIP_CXX_DECLAR
+POLYCLIP_OBJECTS
+POLYCLIP_LIBS
POLYCLIP_CXXFLAGS
POLYCLIP_CPPFLAGS
EGREP
@@ -1225,7 +1227,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures polyclip 1.5-4 to adapt to many kinds of systems.
+\`configure' configures polyclip 1.7-2 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1286,7 +1288,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of polyclip 1.5-4:";;
+ short | recursive ) echo "Configuration of polyclip 1.7-2:";;
esac
cat <<\_ACEOF
@@ -1366,7 +1368,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-polyclip configure 1.5-4
+polyclip configure 1.7-2
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1585,7 +1587,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by polyclip $as_me 1.5-4, which was
+It was created by polyclip $as_me 1.7-2, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2446,13 +2448,14 @@
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-CXX1X=`"${R_HOME}/bin/R" CMD config CXX1X`
+CXX11FUN=`"${R_HOME}/bin/Rscript" -e 'if(getRversion() < "3.4") cat("CXX1X\\n") else cat("CXX11\\n")'`
+CXX1X=`"${R_HOME}/bin/R" CMD config "${CXX11FUN}"`
if test "${CXX1X}" != ""; then
echo "compiling under C++11"
- CXX1XSTD=`"${R_HOME}/bin/R" CMD config CXX1XSTD`
+ CXX1XSTD=`"${R_HOME}/bin/R" CMD config "${CXX11FUN}STD"`
CXX="${CXX1X} ${CXX1XSTD}"
POLYCLIP_CXX_DECLAR="CXX_STD = CXX11"
- CXXFLAGS=`"${R_HOME}/bin/R" CMD config CXX1XFLAGS`
+ CXXFLAGS=`"${R_HOME}/bin/R" CMD config "${CXX11FUN}FLAGS"`
else
echo "C++11 is not supported; compiling under vanilla C++"
CXX=`"${R_HOME}/bin/R" CMD config CXX`
@@ -2460,12 +2463,28 @@
CXXFLAGS=`"${R_HOME}/bin/R" CMD config CXXFLAGS`
fi
CPPFLAGS=`"${R_HOME}/bin/R" CMD config CPPFLAGS`
-long64=""
-name64="signed 64-bit integers (cInt)"
-if test "${CXX1X}" != ""; then
- long64="signed long long"
- POLYCLIP_LONG64="${long64}"
-else
+if test -z "$PKG_CONFIG"; then
+ if command -v pkgconf 2>&1 > /dev/null; then
+ PKG_CONFIG=pkgconf
+ else
+ if command -v pkg-config 2>&1 > /dev/null; then
+ PKG_CONFIG=pkg-config
+ fi
+ fi
+fi
+echo "Using PKG_CONFIG: $PKG_CONFIG"
+if test -n "$PKG_CONFIG" && $PKG_CONFIG --exists polyclipping; then
+ echo Compiling against system copy of polyclipping.
+ POLYCLIP_CPPFLAGS=`$PKG_CONFIG --cflags polyclipping`
+ POLYCLIP_LIBS=`$PKG_CONFIG --libs polyclipping`
+else
+ echo Compiling against bundled copy of polyclipping.
+ long64=""
+ name64="signed 64-bit integers (cInt)"
+ if test "${CXX1X}" != ""; then
+ long64="signed long long"
+ POLYCLIP_LONG64="${long64}"
+ else
ac_fn_cxx_check_type "$LINENO" "int64_t" "ac_cv_type_int64_t" "#include <stdint.h>
"
@@ -2478,10 +2497,10 @@
long64="int64_t"
fi
- if test "${long64}" != ""; then
- POLYCLIP_LONG64="${long64}"
- else
- ac_fn_cxx_check_type "$LINENO" "int_fast64_t" "ac_cv_type_int_fast64_t" "#include <stdint.h>
+ if test "${long64}" != ""; then
+ POLYCLIP_LONG64="${long64}"
+ else
+ ac_fn_cxx_check_type "$LINENO" "int_fast64_t" "ac_cv_type_int_fast64_t" "#include <stdint.h>
"
if test "x$ac_cv_type_int_fast64_t" = xyes; then :
@@ -2492,10 +2511,10 @@
long64="int_fast64_t"
fi
- if test "${long64}" != ""; then
- POLYCLIP_LONG64="${long64}"
- else
- ac_fn_cxx_check_type "$LINENO" "int_least64_t" "ac_cv_type_int_least64_t" "#include <stdint.h>
+ if test "${long64}" != ""; then
+ POLYCLIP_LONG64="${long64}"
+ else
+ ac_fn_cxx_check_type "$LINENO" "int_least64_t" "ac_cv_type_int_least64_t" "#include <stdint.h>
"
if test "x$ac_cv_type_int_least64_t" = xyes; then :
@@ -2506,10 +2525,10 @@
long64="int_least64_t"
fi
- if test "${long64}" != ""; then
- POLYCLIP_LONG64="${long64}"
- else
- ac_ext=cpp
+ if test "${long64}" != ""; then
+ POLYCLIP_LONG64="${long64}"
+ else
+ ac_ext=cpp
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
@@ -2912,25 +2931,25 @@
long64="long long"
fi
- if test "${long64}" != ""; then
- POLYCLIP_LONG64="${long64}"
- else
- echo "Error: unable to find a C++ data type for ${name64}"
- exit 1
- fi
- fi
- fi
+ if test "${long64}" != ""; then
+ POLYCLIP_LONG64="${long64}"
+ else
+ echo "Error: unable to find a C++ data type for ${name64}"
+ exit 1
+ fi
+ fi
+ fi
+ fi
fi
-fi
-echo " In src/clipper.h, ${name64}"
-echo " will be declared as '${long64}'"
-ulong64=""
-uname64="unsigned 64-bit integers (cUInt)"
-if test "${CXX1X}" != ""; then
- ulong64="unsigned long long"
- POLYCLIP_ULONG64="${ulong64}"
-else
- ac_fn_cxx_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "#include <stdint.h>
+ echo " In src/clipper.h, ${name64}"
+ echo " will be declared as '${long64}'"
+ ulong64=""
+ uname64="unsigned 64-bit integers (cUInt)"
+ if test "${CXX1X}" != ""; then
+ ulong64="unsigned long long"
+ POLYCLIP_ULONG64="${ulong64}"
+ else
+ ac_fn_cxx_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "#include <stdint.h>
"
if test "x$ac_cv_type_uint64_t" = xyes; then :
@@ -2941,10 +2960,10 @@
ulong64="uint64_t"
fi
- if test "${ulong64}" != ""; then
- POLYCLIP_ULONG64="${ulong64}"
- else
- ac_fn_cxx_check_type "$LINENO" "uint_fast64_t" "ac_cv_type_uint_fast64_t" "#include <stdint.h>
+ if test "${ulong64}" != ""; then
+ POLYCLIP_ULONG64="${ulong64}"
+ else
+ ac_fn_cxx_check_type "$LINENO" "uint_fast64_t" "ac_cv_type_uint_fast64_t" "#include <stdint.h>
"
if test "x$ac_cv_type_uint_fast64_t" = xyes; then :
@@ -2955,10 +2974,10 @@
ulong64="uint_fast64_t"
fi
- if test "${ulong64}" != ""; then
- POLYCLIP_ULONG64="${ulong64}"
- else
- ac_fn_cxx_check_type "$LINENO" "uint_least64_t" "ac_cv_type_uint_least64_t" "#include <stdint.h>
+ if test "${ulong64}" != ""; then
+ POLYCLIP_ULONG64="${ulong64}"
+ else
+ ac_fn_cxx_check_type "$LINENO" "uint_least64_t" "ac_cv_type_uint_least64_t" "#include <stdint.h>
"
if test "x$ac_cv_type_uint_least64_t" = xyes; then :
@@ -2969,10 +2988,10 @@
ulong64="uint_least64_t"
fi
- if test "${ulong64}" != ""; then
- POLYCLIP_ULONG64="${ulong64}"
- else
- ac_fn_cxx_check_type "$LINENO" "unsigned long long" "ac_cv_type_unsigned_long_long" "$ac_includes_default"
+ if test "${ulong64}" != ""; then
+ POLYCLIP_ULONG64="${ulong64}"
+ else
+ ac_fn_cxx_check_type "$LINENO" "unsigned long long" "ac_cv_type_unsigned_long_long" "$ac_includes_default"
if test "x$ac_cv_type_unsigned_long_long" = xyes; then :
cat >>confdefs.h <<_ACEOF
@@ -2982,23 +3001,27 @@
ulong64="unsigned long long"
fi
- if test "${ulong64}" != ""; then
- POLYCLIP_ULONG64="${ulong64}"
- else
- echo "Error: unable to find a C++ data type for ${uname64}"
- exit 1
- fi
+ if test "${ulong64}" != ""; then
+ POLYCLIP_ULONG64="${ulong64}"
+ else
+ echo "Error: unable to find a C++ data type for ${uname64}"
+ exit 1
+ fi
+ fi
+ fi
fi
- fi
- fi
+ fi
+ echo " In src/clipper.h, ${uname64}"
+ echo " will be declared as '${ulong64}'"
+ POLYCLIP_CPPFLAGS="-DPOLYCLIP_LONG64=\"${POLYCLIP_LONG64}\" -DPOLYCLIP_ULONG64=\"${POLYCLIP_ULONG64}\""
+ POLYCLIP_OBJECTS="clipper.o"
fi
-echo " In src/clipper.h, ${uname64}"
-echo " will be declared as '${ulong64}'"
-POLYCLIP_CPPFLAGS="-DPOLYCLIP_LONG64=\"${POLYCLIP_LONG64}\" -DPOLYCLIP_ULONG64=\"${POLYCLIP_ULONG64}\""
POLYCLIP_CXXFLAGS="${CXXFLAGS}"
+
+
ac_config_files="$ac_config_files src/Makevars"
cat >confcache <<\_ACEOF
@@ -3543,7 +3566,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by polyclip $as_me 1.5-4, which was
+This file was extended by polyclip $as_me 1.7-2, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -3596,7 +3619,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-polyclip config.status 1.5-4
+polyclip config.status 1.7-2
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
--
2.14.3

72
R-polyclip.spec Normal file
View File

@ -0,0 +1,72 @@
%global packname polyclip
%global rlibdir %{_libdir}/R/library
Name: R-%{packname}
Version: 1.6.1
Release: 1%{?dist}
Summary: Polygon Clipping
License: Boost
URL: https://cran.r-project.org/web/packages/%{packname}/index.html
Source0: https://cran.r-project.org/src/contrib/%{packname}_1.6-1.tar.gz
# https://github.com/baddstats/polyclip/pull/8
Patch0001: 0001-Allow-building-against-system-copy-of-clipper.patch
# Here's the R view of the dependencies world:
# Depends:
# Imports:
# Suggests:
# LinkingTo:
# Enhances:
BuildRequires: R-devel tex(latex)
BuildRequires: polyclipping-devel
%description
R port of Angus Johnson's open source library Clipper. Performs polygon
clipping operations (intersection, union, set minus, set difference) for
polygonal regions of arbitrary complexity, including holes. Computes
offset polygons (spatial buffer zones, morphological dilations, Minkowski
dilations) for polygonal regions and polygonal lines. Computes Minkowski
Sum of general polygons. There is a function for removing
self-intersections from polygon data.
%prep
%setup -q -c -n %{packname}
pushd %{packname}
%patch0001 -p1
popd
%build
%install
mkdir -p %{buildroot}%{rlibdir}
%{_bindir}/R CMD INSTALL -l %{buildroot}%{rlibdir} %{packname}
test -d %{packname}/src && (cd %{packname}/src; rm -f *.o *.so)
rm -f %{buildroot}%{rlibdir}/R.css
%check
%{_bindir}/R CMD check %{packname}
%files
%dir %{rlibdir}/%{packname}
%doc %{rlibdir}/%{packname}/html
%{rlibdir}/%{packname}/DESCRIPTION
%{rlibdir}/%{packname}/INDEX
%{rlibdir}/%{packname}/NAMESPACE
%{rlibdir}/%{packname}/Meta
%{rlibdir}/%{packname}/R
%{rlibdir}/%{packname}/help
%dir %{rlibdir}/%{packname}/libs
%{rlibdir}/%{packname}/libs/%{packname}.so
%changelog
* Sat Mar 17 2018 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 1.6.1-1
- initial package for Fedora

View File

@ -1,3 +0,0 @@
# R-polyclip
The R-polyclip package

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (polyclip_1.6-1.tar.gz) = 829157f37b611bb21ad9cb1559eb2887d27c824bdc516ccecd360b53e84542a23f3bcea18d74e96536410f01da3ccb6db5df57e3622406aed5139c28fed6ace4