From 490c1c7bf84a19ff1de1b17715712f4aeac7764e Mon Sep 17 00:00:00 2001 From: Troy Dawson Date: Thu, 21 Mar 2024 18:35:43 +0000 Subject: [PATCH] autogen package is retired on branch c10s for BAKERY-412 --- .gitignore | 1 - autogen-configure-c99.patch | 44 ----- autogen-fortify.patch | 95 ---------- autogen-multilib.patch | 25 --- autogen-overlap.patch | 12 -- autogen.spec | 347 ------------------------------------ dead.package | 1 + sources | 1 - 8 files changed, 1 insertion(+), 525 deletions(-) delete mode 100644 .gitignore delete mode 100644 autogen-configure-c99.patch delete mode 100644 autogen-fortify.patch delete mode 100644 autogen-multilib.patch delete mode 100644 autogen-overlap.patch delete mode 100644 autogen.spec create mode 100644 dead.package delete mode 100644 sources diff --git a/.gitignore b/.gitignore deleted file mode 100644 index feb5dae..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/autogen-5.18.16.tar.xz diff --git a/autogen-configure-c99.patch b/autogen-configure-c99.patch deleted file mode 100644 index 136500c..0000000 --- a/autogen-configure-c99.patch +++ /dev/null @@ -1,44 +0,0 @@ -diff --git a/config/ag_macros.m4 b/config/ag_macros.m4 -index ccce347..ae36cf7 100644 ---- a/config/ag_macros.m4 -+++ b/config/ag_macros.m4 -@@ -113,7 +113,7 @@ AC_DEFUN([INVOKE_AG_MACROS_LAST],[ - fi - - AC_CACHE_CHECK([for static inline], [snv_cv_static_inline], [ -- AC_TRY_COMPILE([static inline foo(bar) int bar; { return bar; }], -+ AC_TRY_COMPILE([static inline int foo(bar) int bar; { return bar; }], - [return foo(0);], - [snv_cv_static_inline='static inline'], - [snv_cv_static_inline='static']) -@@ -428,7 +428,7 @@ int main (int argc, char ** argv) { - char zRej@<:@@:>@ = reject; - char zAcc@<:@@:>@ = "a-ok-eject"; - return strcspn( zAcc, zRej ) - 5; --}] )] -+}] )], - [ag_cv_run_strcspn=yes],[ag_cv_run_strcspn=no],[ag_cv_run_strcspn=no] - ) # end of RUN_IFELSE - ]) # end of AC_CACHE_VAL for ag_cv_run_strcspn -diff --git a/configure b/configure -index 518ac9c..5eacd76 100755 ---- a/configure -+++ b/configure -@@ -17338,7 +17338,7 @@ int main (int argc, char ** argv) { - char zAcc[] = "a-ok-eject"; - return strcspn( zAcc, zRej ) - 5; - } -- ag_cv_run_strcspn=yes -+#error - _ACEOF - if ac_fn_c_try_run "$LINENO"; then : - ag_cv_run_strcspn=no -@@ -18406,7 +18405,7 @@ else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ --static inline foo(bar) int bar; { return bar; } -+static inline int foo(bar) int bar; { return bar; } - int - main () - { diff --git a/autogen-fortify.patch b/autogen-fortify.patch deleted file mode 100644 index ea89fb4..0000000 --- a/autogen-fortify.patch +++ /dev/null @@ -1,95 +0,0 @@ -commit 772b282a4e858a27af610bcdcc8b66925cbf1a83 -Author: Tomas Korbar -Date: Tue Feb 28 16:08:13 2023 +0100 - - avoid GCC code analysis bug - -diff --git a/agen5/defLoad.c b/agen5/defLoad.c -index 0215857..b687263 100644 ---- a/agen5/defLoad.c -+++ b/agen5/defLoad.c -@@ -448,17 +448,28 @@ read_defs(void) - FILE * fp; - def_input_mode_t in_mode = ready_def_input(&def_fname, &data_sz); - -+ /* -+ * "ready_def_input" has a lot of side effects. It's possible that -+ * there are no definitions, so "in_mode" is set to DONE and there's -+ * nothing to do. -+ */ - if (in_mode == INPUT_DONE) - return; - - /* - * Allocate the space we need for our definitions. -+ * "data_sz" was set by read_def_input to the size of the -+ * definitions file (or 4096 if we're reading from a fifo file). -+ * In that alternate case, we'll start the input size at 4096 bytes. -+ * The allocation includes space for context and a NUL byte or two - */ -- rem_sz = data_sz+4+sizeof(*base_ctx); -- base_ctx = (scan_ctx_t *)AGALOC(rem_sz, "file buf"); -- memset(VOIDP(base_ctx), 0, rem_sz); -+ { -+ size_t sz = data_sz + sizeof(long) + sizeof(*base_ctx); -+ base_ctx = (scan_ctx_t *)AGALOC(sz, "file buf"); -+ memset(VOIDP(base_ctx), 0, sz); -+ } - base_ctx->scx_line = 1; -- rem_sz = data_sz; -+ rem_sz = data_sz; // size available for storing def text - - /* - * Our base context will have its currency pointer set to this -@@ -482,6 +493,9 @@ read_defs(void) - if (fp == NULL) - AG_CANT(READ_DEF_OPEN, def_fname); - -+ /* -+ * If we're emitting dependency information, then do so. -+ */ - if (dep_fp != NULL) - add_source_file(def_fname); - } -@@ -516,8 +530,7 @@ read_defs(void) - * See if there is any space left - */ - if (rem_sz == 0) { -- scan_ctx_t * p; -- off_t dataOff; -+ off_t scan_off; - - /* - * IF it is a regular file, then we are done -@@ -527,24 +540,16 @@ read_defs(void) - - /* - * We have more data and we are out of space. -- * Try to reallocate our input buffer. -+ * AGREALOC will succeed or not return. - */ - data_sz += (rem_sz = 0x1000); -- dataOff = data - base_ctx->scx_data; -- p = AGREALOC(VOIDP(base_ctx), data_sz + 4 + sizeof(*base_ctx), -- "expand f buf"); -+ scan_off = data - base_ctx->scx_data; -+ base_ctx = AGREALOC(VOIDP(base_ctx), data_sz + 4 + sizeof(*base_ctx), -+ "expand f buf"); - -- /* -- * The buffer may have moved. Set the data pointer at an -- * offset within the new buffer and make sure our base pointer -- * has been corrected as well. -- */ -- if (p != base_ctx) { -- p->scx_scan = \ -- p->scx_data = (char *)(p + 1); -- data = p->scx_data + dataOff; -- base_ctx = p; -- } -+ base_ctx->scx_scan = \ -+ base_ctx->scx_data = (char *)(base_ctx + 1); -+ data = base_ctx->scx_data + scan_off; - } - } - diff --git a/autogen-multilib.patch b/autogen-multilib.patch deleted file mode 100644 index 4113b36..0000000 --- a/autogen-multilib.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff -up autogen-5.18/autoopts/autoopts-config.in.multilib autogen-5.18/autoopts/autoopts-config.in ---- autogen-5.18/autoopts/autoopts-config.in.multilib 2013-07-15 02:37:20.000000000 +0200 -+++ autogen-5.18/autoopts/autoopts-config.in 2013-07-29 15:41:26.654229342 +0200 -@@ -17,17 +17,17 @@ - includedir="@includedir@" - exec_prefix="@exec_prefix@" - bindir="@bindir@" -- libdir="@libdir@" -- ldopts="@AG_LDFLAGS@" -+ libdir="" -+ ldopts="" - exeext="@EXEEXT@" - version="@AO_CURRENT@:@AO_REVISION@:@AO_AGE@" - dotver="@AO_CURRENT@.@AO_REVISION@.@AO_AGE@" - pkgdatadir="${datadir}/${package}" - autogen="${bindir}/autogen${exeext}" -- ldflags="-L${libdir} -lopts" -+ ldflags="-lopts" - libs="${ldflags}" - libsrc="${pkgdatadir}/libopts-${dotver}.tar.gz" -- static_libs="${libdir}/libopts.a" -+ static_libs="" - cflags="-I${includedir}" - test 'X@ENABLE_STATIC@' = Xno && static_libs='' - case "${libdir}" in diff --git a/autogen-overlap.patch b/autogen-overlap.patch deleted file mode 100644 index 37aefeb..0000000 --- a/autogen-overlap.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up autogen-5.18.16/compat/pathfind.c.orig autogen-5.18.16/compat/pathfind.c ---- autogen-5.18.16/compat/pathfind.c.orig 2018-07-25 21:44:31.000000000 +0200 -+++ autogen-5.18.16/compat/pathfind.c 2019-02-05 12:39:02.625001009 +0100 -@@ -211,7 +211,7 @@ canonicalize_pathname( char *path ) - (result[i + 2] == '/' || !result[i + 2])) { - while (--start > -1 && result[start] != '/') - ; -- strcpy( result + start + 1, result + i + 2 ); -+ memmove( result + start + 1, result + i + 2, strlen(result + i + 2) + 1 ); - i = (start < 0) ? 0 : start; - continue; - } diff --git a/autogen.spec b/autogen.spec deleted file mode 100644 index f9238c6..0000000 --- a/autogen.spec +++ /dev/null @@ -1,347 +0,0 @@ -Summary: Automated text file generator -Name: autogen -Version: 5.18.16 -Release: 17%{?dist} -# Some files are licensed under GPLv2+. -# We redistribute them under GPLv3+. -License: GPL-3.0-or-later AND GPL-2.0-or-later AND LGPL-2.1-or-later AND LGPL-2.0-or-later AND BSD-2-Clause -URL: http://www.gnu.org/software/autogen/ -Source0: ftp://ftp.gnu.org/gnu/autogen/rel%{version}/%{name}-%{version}.tar.xz - -# Fix multilib conflicts -Patch0: autogen-multilib.patch -# Fix gcc error on overlapping strings -Patch1: autogen-overlap.patch -Patch2: autogen-configure-c99.patch -# https://sourceforge.net/p/autogen/bugs/212/ -Patch3: autogen-fortify.patch - -Requires: %{name}-libopts%{?_isa} = %{version}-%{release} - -BuildRequires: gcc -BuildRequires: guile22-devel -BuildRequires: libtool -BuildRequires: libxml2-devel -BuildRequires: make -BuildRequires: perl-generators -BuildRequires: perl(Carp) -BuildRequires: perl(constant) -BuildRequires: perl(Exporter) -BuildRequires: perl(File::Basename) -BuildRequires: perl(lib) -BuildRequires: perl(List::Util) -BuildRequires: perl(strict) -BuildRequires: perl(Text::ParseWords) -BuildRequires: perl(warnings) -BuildRequires: chrpath -BuildRequires: sed - -%description -AutoGen is a tool designed to simplify the creation and maintenance of -programs that contain large amounts of repetitious text. It is especially -valuable in programs that have several blocks of text that must be kept -synchronised. - -%package libopts -Summary: Automated option processing library based on %{name} -# Although sources are dual licensed with BSD, some autogen generated files -# are only under LGPLv3+. We drop BSD to avoid multiple licensing scenario. -License: LGPLv3+ - -%description libopts -Libopts is very powerful command line option parser consisting of a set of -AutoGen templates and a run time library that nearly eliminates the hassle of -parsing and documenting command line options. - -%package libopts-devel -Summary: Development files for libopts -# Although sources are dual licensed with BSD, some autogen generated files -# are only under LGPLv3+. We drop BSD to avoid multiple licensing scenario. -License: LGPLv3+ - -Requires: automake -Requires: %{name} = %{version}-%{release} -Requires: %{name}-libopts%{?_isa} = %{version}-%{release} -Requires: pkgconfig - -%description libopts-devel -This package contains development files for libopts. - -%prep -%setup -q -%patch0 -p1 -b .multilib -%patch1 -p1 -b .overlap -%patch2 -p1 -%patch3 -p1 -b .fortify - -# Disable failing test -sed -i 's|errors.test||' autoopts/test/Makefile.in - -%build -# Static libraries are needed to run test-suite. -export CFLAGS="$RPM_OPT_FLAGS -Wno-implicit-fallthrough -Wno-format-overflow \ - -Wno-format-truncation" -%configure - -# Omit unused direct shared library dependencies. -sed --in-place --expression 's! -shared ! -Wl,--as-needed\0!g' ./libtool - -make %{?_smp_mflags} - -%check -make check - -%install -make install INSTALL="%{__install} -p" DESTDIR=$RPM_BUILD_ROOT -find $RPM_BUILD_ROOT -type f -name "*.la" -delete -find $RPM_BUILD_ROOT -type f -name "*.a" -delete - -# Remove time stamps from generated devel man pages to avoid multilib conflicts -sed -i 's|\(It has been AutoGen-ed\).*.\(by AutoGen\)|\1 \2|' \ - $RPM_BUILD_ROOT%{_mandir}/man3/*.3 - -# Remove rpath. -chrpath --delete $RPM_BUILD_ROOT%{_bindir}/{columns,getdefs,%{name},xml2ag} -chrpath --delete $RPM_BUILD_ROOT%{_libdir}/lib*.so.* - -rm -f $RPM_BUILD_ROOT%{_infodir}/dir - -%ldconfig_scriptlets libopts - -%files -%doc AUTHORS -%doc ChangeLog -%doc COPYING -%doc NEWS -%doc README -%doc THANKS -%doc TODO -%doc pkg/libopts/COPYING.gplv3 -%{_bindir}/columns -%{_bindir}/getdefs -%{_bindir}/%{name} -%{_bindir}/xml2ag -%{_infodir}/%{name}.info*.gz -%{_mandir}/man1/%{name}.1.gz -%{_mandir}/man1/columns.1.gz -%{_mandir}/man1/getdefs.1.gz -%{_mandir}/man1/xml2ag.1.gz -%dir %{_datadir}/%{name} -%{_datadir}/%{name}/* -%dir %{_libdir}/%{name} -%{_libdir}/%{name}/* - -%files libopts -%doc pkg/libopts/COPYING.mbsd -%doc pkg/libopts/COPYING.lgplv3 -%{_libdir}/libopts.so.25* - -%files libopts-devel -%{_bindir}/autoopts-config -%{_datadir}/aclocal/autoopts.m4 -%{_libdir}/libopts.so -%{_libdir}/pkgconfig/autoopts.pc -%{_mandir}/man1/autoopts-config.1.gz -%{_mandir}/man3/* - -%dir %{_includedir}/autoopts -%{_includedir}/autoopts/options.h -%{_includedir}/autoopts/usage-txt.h - -%changelog -* Wed Jul 19 2023 Fedora Release Engineering - 5.18.16-17 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Thu Mar 09 2023 Tomas Korbar - 5.18.16-16 -- Change the License tag to the SPDX format - -* Tue Feb 28 2023 Tomas Korbar - 5.18.16-15 -- Raise fortification level to 3 -- Fix bad way of reallocation when reading from stdin - -* Mon Feb 27 2023 Tomas Korbar - 5.18.16-14 -- Lower fortification level to 2 -- Resolves: rhbz#2171445 - -* Wed Jan 18 2023 Fedora Release Engineering - 5.18.16-13 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Wed Dec 07 2022 Peter Fordham - 5.18.16-12 -- Patch in fix for https://sourceforge.net/p/autogen/bugs/213/, C99 compliance. - -* Wed Jul 20 2022 Fedora Release Engineering - 5.18.16-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Wed Jan 19 2022 Fedora Release Engineering - 5.18.16-10 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Wed Jul 21 2021 Fedora Release Engineering - 5.18.16-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Tue Jan 26 2021 Fedora Release Engineering - 5.18.16-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Mon Jul 27 2020 Fedora Release Engineering - 5.18.16-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Wed Jul 01 2020 Tomas Korbar - 5.18.16-6 -- Rebuild with guile-2.2 - -* Wed Mar 25 2020 Jitka Plesnikova - 5.18.16-5 -- Add perl dependencies needed for build - -* Tue Jan 28 2020 Fedora Release Engineering - 5.18.16-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Wed Jul 24 2019 Fedora Release Engineering - 5.18.16-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Wed Apr 24 2019 Björn Esser - 5.18.16-2 -- Remove hardcoded gzip suffix from GNU info pages - -* Tue Feb 05 2019 Miroslav Lichvar - 5.18.16-1 -- update to 5.18.16 -- fix building with new gcc - -* Thu Jan 31 2019 Fedora Release Engineering - 5.18.14-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Tue Jul 31 2018 Florian Weimer - 5.18.14-2 -- Rebuild with fixed binutils - -* Mon Jul 30 2018 Miroslav Lichvar - 5.18.14-1 -- update to 5.18.14 - -* Thu Jul 12 2018 Fedora Release Engineering - 5.18.12-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Thu Jun 21 2018 Miroslav Lichvar - 5.18.12-8 -- drop obsolete install-info scriptlets - -* Wed Feb 21 2018 Miroslav Lichvar - 5.18.12-7 -- fix linking to use hardening flags (#1547522) -- use macro for ldconfig scriptlets -- add gcc to build requirements -- remove comment with macro - -* Wed Feb 07 2018 Fedora Release Engineering - 5.18.12-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Wed Aug 02 2017 Fedora Release Engineering - 5.18.12-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Wed Jul 26 2017 Fedora Release Engineering - 5.18.12-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Tue Mar 07 2017 Miroslav Lichvar - 5.18.12-3 -- Include verify.h in libopts tear-off tarball (#1400907) - -* Fri Feb 10 2017 Fedora Release Engineering - 5.18.12-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Wed Sep 07 2016 Miroslav Lichvar - 5.18.12-1 -- Update to 5.18.12 -- Add mandatory Perl build-requires - -* Fri May 27 2016 Miroslav Lichvar - 5.18.10-1 -- Update to 5.18.10 - -* Wed Feb 03 2016 Fedora Release Engineering - 5.18.6-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Tue Sep 22 2015 Miroslav Lichvar - 5.18.6-1 -- Update to 5.18.6 - -* Wed Jun 17 2015 Fedora Release Engineering - 5.18.5-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Fri May 15 2015 Miroslav Lichvar - 5.18.5-1 -- Update to 5.18.5 - -* Tue Sep 02 2014 Miroslav Lichvar - 5.18.4-1 -- Update to 5.18.4 - -* Fri Aug 15 2014 Fedora Release Engineering - 5.18.3-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Sat Jun 07 2014 Fedora Release Engineering - 5.18.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Tue May 27 2014 Miroslav Lichvar - 5.18.3-1 -- Update to 5.18.3 -- Compile with -Wno-format-contains-nul -- Use fully versioned dependency on base package - -* Tue Jan 28 2014 Miroslav Lichvar - 5.18.2-2 -- Package libopts tear-off tarball (#441231) - -* Thu Oct 17 2013 Miroslav Lichvar - 5.18.2-1 -- Update to 5.18.2 - -* Thu Sep 19 2013 Miroslav Lichvar - 5.18.1-1 -- Update to 5.18.1 - -* Thu Aug 08 2013 Miroslav Lichvar - 5.18-1 -- Update to 5.18 -- Fix multilib conflicts (#831379) -- Make some dependencies arch-specific -- Remove obsolete macros - -* Sat Aug 03 2013 Fedora Release Engineering - 5.12-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Wed Jul 17 2013 Petr Pisar - 5.12-6 -- Perl 5.18 rebuild - -* Thu Apr 18 2013 Debarshi Ray - 5.12-5 -- Fix build failure with guile2. - -* Wed Feb 13 2013 Fedora Release Engineering - 5.12-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild - -* Wed Jul 18 2012 Fedora Release Engineering - 5.12-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Thu Jan 12 2012 Fedora Release Engineering - 5.12-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Fri Nov 25 2011 Anthony Green - 5.12-1 -- Upgrade. - -* Mon Feb 07 2011 Fedora Release Engineering - 5.9.4-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Mon Aug 10 2009 Ville Skyttä - 5.9.4-7 -- Use bzipped upstream tarball. - -* Fri Jul 24 2009 Fedora Release Engineering - 5.9.4-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild - -* Mon Feb 23 2009 Fedora Release Engineering - 5.9.4-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - -* Mon Feb 25 2008 Debarshi Ray - 5.9.4-4 -- Changed dual licensing of autogen-libopts by dropping BSD. -- Fixed multilib conflicts, static libraries and removed rpath setting bits - from autoopts-config. -- Replaced 'BuildRequires: chrpath' with 'BuildRequires: libtool' for removing - rpaths. - -* Sun Feb 24 2008 Debarshi Ray - 5.9.4-3 -- Added 'Obsoletes: autogen-manuals ...'. -- Changed dual licensing of autogen-libopts-devel by dropping BSD. -- Defined undefined non-weak symbols. -- Omitted unused direct shared library dependencies. -- Removed rpath setting bits from pkgconfig file. -- Miscellaneous fixes. - -* Thu Feb 21 2008 Debarshi Ray - 5.9.4-2 -- Prefixed libopts and libopts-devel with autogen-. -- Removed 'BuildRequires: /usr/sbin/alternatives' and use of alternatives. -- Added Provides & Obsoletes pair in autogen-libopts-devel according to - Fedora naming guidelines. - -* Sat Feb 09 2008 Debarshi Ray - 5.9.4-1 -- Initial build. Imported SPEC from Rawhide. -- Removed 'Obsoletes: libopts ...' and introduced libopts subpackages to avoid - mulitple licensing scenario. diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..e50346f --- /dev/null +++ b/dead.package @@ -0,0 +1 @@ +autogen package is retired on branch c10s for BAKERY-412 \ No newline at end of file diff --git a/sources b/sources deleted file mode 100644 index 9c393ae..0000000 --- a/sources +++ /dev/null @@ -1 +0,0 @@ -SHA512 (autogen-5.18.16.tar.xz) = 5f12c982dbe27873f5649a96049bf019ff183c90cc0c8a9196556b0ca02e72940cd422f6d6601f68cc7d8763b1124f2765c3b1a6335fc92ba07f84b03d2a53a1