diff options
author | 2006-08-25 06:13:38 +0000 | |
---|---|---|
committer | 2006-08-25 06:13:38 +0000 | |
commit | 5449f9a8df7a5c91ee61c0b3b97802abf602b693 (patch) | |
tree | bd8ab1f7650f178116a57919195087f31175320a /net-analyzer | |
parent | Initial port. Ebuild contributed by AJ Armstrong <aja@clanarmstrong.com>. (diff) | |
download | gentoo-2-5449f9a8df7a5c91ee61c0b3b97802abf602b693.tar.gz gentoo-2-5449f9a8df7a5c91ee61c0b3b97802abf602b693.tar.bz2 gentoo-2-5449f9a8df7a5c91ee61c0b3b97802abf602b693.zip |
Version bump. Thank upstream dev Loren Bandiera for report. Also fixed crash during scanning on x86 for all affected versions.
(Portage version: 2.1-r1)
Diffstat (limited to 'net-analyzer')
-rw-r--r-- | net-analyzer/sussen/ChangeLog | 13 | ||||
-rw-r--r-- | net-analyzer/sussen/files/digest-sussen-0.25-r1 | 3 | ||||
-rw-r--r-- | net-analyzer/sussen/files/digest-sussen-0.26-r1 | 3 | ||||
-rw-r--r-- | net-analyzer/sussen/files/digest-sussen-0.27-r1 | 3 | ||||
-rw-r--r-- | net-analyzer/sussen/files/digest-sussen-0.28 | 3 | ||||
-rw-r--r-- | net-analyzer/sussen/files/sussen-0.25-0.28-interface-failsafe.diff | 134 | ||||
-rw-r--r-- | net-analyzer/sussen/sussen-0.25-r1.ebuild | 70 | ||||
-rw-r--r-- | net-analyzer/sussen/sussen-0.26-r1.ebuild | 76 | ||||
-rw-r--r-- | net-analyzer/sussen/sussen-0.27-r1.ebuild | 73 | ||||
-rw-r--r-- | net-analyzer/sussen/sussen-0.28.ebuild | 73 |
10 files changed, 450 insertions, 1 deletions
diff --git a/net-analyzer/sussen/ChangeLog b/net-analyzer/sussen/ChangeLog index f5cabc51a96b..b057fc31eeea 100644 --- a/net-analyzer/sussen/ChangeLog +++ b/net-analyzer/sussen/ChangeLog @@ -1,6 +1,17 @@ # ChangeLog for net-analyzer/sussen # Copyright 2000-2006 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-analyzer/sussen/ChangeLog,v 1.27 2006/08/21 14:43:10 pva Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-analyzer/sussen/ChangeLog,v 1.28 2006/08/25 06:13:38 pva Exp $ + +*sussen-0.28 (25 Aug 2006) +*sussen-0.27-r1 (25 Aug 2006) +*sussen-0.26-r1 (25 Aug 2006) +*sussen-0.25-r1 (25 Aug 2006) + + 25 Aug 2006; Peter Volkov <pva@gentoo.org> + +files/sussen-0.25-0.28-interface-failsafe.diff, +sussen-0.25-r1.ebuild, + +sussen-0.26-r1.ebuild, +sussen-0.27-r1.ebuild, +sussen-0.28.ebuild: + Version bump. Thank upstream dev Loren Bandiera for report. Also fixed crash + during scanning on x86 for all affected versions. *sussen-0.27 (21 Aug 2006) diff --git a/net-analyzer/sussen/files/digest-sussen-0.25-r1 b/net-analyzer/sussen/files/digest-sussen-0.25-r1 new file mode 100644 index 000000000000..c70b5ed1c42d --- /dev/null +++ b/net-analyzer/sussen/files/digest-sussen-0.25-r1 @@ -0,0 +1,3 @@ +MD5 b8222a7296834084351bd3712d1bd014 sussen-0.25.tar.gz 813116 +RMD160 5b9d9cf880edf200f877e7b1753a2cb8ca2166f0 sussen-0.25.tar.gz 813116 +SHA256 01a442979975d41ec648fd92ee2f6aa73678d73f29bb0eb35c2129e7dbf27b8f sussen-0.25.tar.gz 813116 diff --git a/net-analyzer/sussen/files/digest-sussen-0.26-r1 b/net-analyzer/sussen/files/digest-sussen-0.26-r1 new file mode 100644 index 000000000000..b0c138bdde39 --- /dev/null +++ b/net-analyzer/sussen/files/digest-sussen-0.26-r1 @@ -0,0 +1,3 @@ +MD5 437afe876766c2fd124b6bfb00b2f746 sussen-0.26.tar.gz 876168 +RMD160 f7fbdf3166b9136b4d6b5497afa63771e486b79a sussen-0.26.tar.gz 876168 +SHA256 f0796145f30820f07f0b2fddad6c1eabea22813b1111cef5728321dc46a19314 sussen-0.26.tar.gz 876168 diff --git a/net-analyzer/sussen/files/digest-sussen-0.27-r1 b/net-analyzer/sussen/files/digest-sussen-0.27-r1 new file mode 100644 index 000000000000..064f341bf505 --- /dev/null +++ b/net-analyzer/sussen/files/digest-sussen-0.27-r1 @@ -0,0 +1,3 @@ +MD5 045971c9a22988702930903ce99b0272 sussen-0.27.tar.gz 897909 +RMD160 c830166e9d2a2c24d1e4555936df9061a2e8bd6b sussen-0.27.tar.gz 897909 +SHA256 893b0c6dca58a13ffdbee96259ae7407c8877e39665d1594a4d5be9f86b36daa sussen-0.27.tar.gz 897909 diff --git a/net-analyzer/sussen/files/digest-sussen-0.28 b/net-analyzer/sussen/files/digest-sussen-0.28 new file mode 100644 index 000000000000..7491e69447a7 --- /dev/null +++ b/net-analyzer/sussen/files/digest-sussen-0.28 @@ -0,0 +1,3 @@ +MD5 9563670c1676b7df250c55a88fd7a3d8 sussen-0.28.tar.gz 917184 +RMD160 340bb98d9ff471860d9de097f654780113506778 sussen-0.28.tar.gz 917184 +SHA256 0c843ceeab35b3f31f60d9878e072a20ba9321a1624b2c1c038dca552f2ddc50 sussen-0.28.tar.gz 917184 diff --git a/net-analyzer/sussen/files/sussen-0.25-0.28-interface-failsafe.diff b/net-analyzer/sussen/files/sussen-0.25-0.28-interface-failsafe.diff new file mode 100644 index 000000000000..c81ae981b6bd --- /dev/null +++ b/net-analyzer/sussen/files/sussen-0.25-0.28-interface-failsafe.diff @@ -0,0 +1,134 @@ +diff -Naur sussen-0.28.orig/oval/support/unix/interface.c sussen-0.28/oval/support/unix/interface.c +--- sussen-0.28.orig/oval/support/unix/interface.c 2006-06-26 07:27:29.000000000 +0400 ++++ sussen-0.28/oval/support/unix/interface.c 2006-08-25 09:28:21.000000000 +0400 +@@ -33,24 +33,51 @@ + char bc_addr[18]; + char netmask[18]; + short flags; ++ ++ if (ifname == NULL || strlen(ifname) <= 1) { ++ *phw_addr = strdup (hw_addr); ++ *pinet_addr = strdup (inet_addr); ++ *pbc_addr = strdup (bc_addr); ++ *pnetmask = strdup (netmask); ++ *pflags = flags; + +- if (strlen(ifname) <= 1) + return (-1); ++ } + + sfd = socket(AF_INET, SOCK_DGRAM, 0); +- if (sfd < 0) ++ if (sfd < 0) { ++ *phw_addr = strdup (hw_addr); ++ *pinet_addr = strdup (inet_addr); ++ *pbc_addr = strdup (bc_addr); ++ *pnetmask = strdup (netmask); ++ *pflags = flags; ++ + return (-1); ++ } + + strncpy (ifr.ifr_name, ifname, IFNAMSIZ); +- if (ioctl(sfd, SIOCGIFFLAGS, &ifr) < 0) ++ if (ioctl(sfd, SIOCGIFFLAGS, &ifr) < 0) { ++ *phw_addr = strdup (hw_addr); ++ *pinet_addr = strdup (inet_addr); ++ *pbc_addr = strdup (bc_addr); ++ *pnetmask = strdup (netmask); ++ *pflags = flags; ++ + return (-1); +- else ++ } else { + flags = ifr.ifr_flags; ++ } + + strncpy(ifr.ifr_name, ifname, IFNAMSIZ); +- if (ioctl(sfd, SIOCGIFHWADDR, &ifr) < 0) ++ if (ioctl(sfd, SIOCGIFHWADDR, &ifr) < 0) { ++ *phw_addr = strdup (hw_addr); ++ *pinet_addr = strdup (inet_addr); ++ *pbc_addr = strdup (bc_addr); ++ *pnetmask = strdup (netmask); ++ *pflags = flags; ++ + return (-1); +- else ++ } else { + snprintf (hw_addr, 18, "%02x:%02x:%02x:%02x:%02x:%02x", + (int) ((unsigned char *) ifr.ifr_hwaddr.sa_data)[0], + (int) ((unsigned char *) ifr.ifr_hwaddr.sa_data)[1], +@@ -58,6 +85,7 @@ + (int) ((unsigned char *) ifr.ifr_hwaddr.sa_data)[3], + (int) ((unsigned char *) ifr.ifr_hwaddr.sa_data)[4], + (int) ((unsigned char *) ifr.ifr_hwaddr.sa_data)[5]); ++ } + + strcpy(ifr.ifr_name, ifname); + ifr.ifr_addr.sa_family = AF_INET; +@@ -66,19 +94,40 @@ + ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr.s_addr)); + + strncpy(ifr.ifr_name, ifname, IFNAMSIZ); +- if (ioctl(sfd, SIOCGIFBRDADDR, &ifr) < 0) ++ if (ioctl(sfd, SIOCGIFBRDADDR, &ifr) < 0) { ++ *phw_addr = strdup (hw_addr); ++ *pinet_addr = strdup (inet_addr); ++ *pbc_addr = strdup (bc_addr); ++ *pnetmask = strdup (netmask); ++ *pflags = flags; ++ + return (-1); +- else ++ } else { + sprintf (bc_addr, "%s", + ntoa(((struct sockaddr_in *)&ifr.ifr_broadaddr)->sin_addr.s_addr)); ++ } + + strncpy(ifr.ifr_name, ifname, IFNAMSIZ); +- if (ioctl(sfd, SIOCGIFNETMASK, &ifr) < 0) ++ if (ioctl(sfd, SIOCGIFNETMASK, &ifr) < 0) { ++ *phw_addr = strdup (hw_addr); ++ *pinet_addr = strdup (inet_addr); ++ *pbc_addr = strdup (bc_addr); ++ *pnetmask = strdup (netmask); ++ *pflags = flags; ++ + return (-1); +- else ++ } else { + sprintf (netmask, "%s", + ntoa(((struct sockaddr_in *)&ifr.ifr_netmask)->sin_addr.s_addr)); ++ } ++ + } else { ++ *phw_addr = strdup (hw_addr); ++ *pinet_addr = strdup (inet_addr); ++ *pbc_addr = strdup (bc_addr); ++ *pnetmask = strdup (netmask); ++ *pflags = flags; ++ + return (-1); + } + +@@ -122,17 +171,17 @@ + { + FILE *f; + char buf[512]; ++ char interfaces [1024]; + + f = fopen ("/proc/net/dev", "r"); + if (!f) { ++ *found_interfaces = strdup (interfaces); + return (-1); + } + + fgets (buf, sizeof (buf), f); /* eat line */ + fgets (buf, sizeof (buf), f); + +- char interfaces [1024]; +- + int i = 0; + while (fgets(buf, sizeof buf, f)) { + char name[IFNAMSIZ]; diff --git a/net-analyzer/sussen/sussen-0.25-r1.ebuild b/net-analyzer/sussen/sussen-0.25-r1.ebuild new file mode 100644 index 000000000000..4bd547a3d8b0 --- /dev/null +++ b/net-analyzer/sussen/sussen-0.25-r1.ebuild @@ -0,0 +1,70 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-analyzer/sussen/sussen-0.25-r1.ebuild,v 1.1 2006/08/25 06:13:38 pva Exp $ + +inherit eutils gnome2 mono autotools + +DESCRIPTION="Sussen is a tool that checks for vulnerabilities and configuration issues on computer systems" +HOMEPAGE="http://dev.mmgsecurity.com/projects/sussen/" +SRC_URI="http://dev.mmgsecurity.com/downloads//${PN}/${P}.tar.gz" +LICENSE="GPL-2" +IUSE="doc dbus" +SLOT="0" +KEYWORDS="~x86 ~amd64" + +RDEPEND="=dev-lang/mono-1.1* + >=dev-dotnet/gtk-sharp-2.4 + >=dev-dotnet/gnome-sharp-2.4 + >=dev-dotnet/gconf-sharp-2.4 + >=dev-dotnet/glade-sharp-2.4 + gnome-base/gnome-panel + dbus? ( sys-apps/dbus )" + +DEPEND="${RDEPEND} + doc? ( >=dev-util/monodoc-1.1.8 ) + app-arch/rpm + >=dev-util/intltool-0.34.2" + +DOCS="AUTHORS ChangeLog README TODO" + +pkg_setup() { + if use dbus ; then + built_with_use -a sys-apps/dbus mono || die \ + "${PN} requires dbus build with mono support. Please, reemerge dbus with USE=\"mono\"" + fi +} + +src_unpack() { + unpack ${A} + cd ${S} + + epatch ${FILESDIR}/sussen-0.25-0.28-interface-failsafe.diff +} + +src_compile () { + econf ${myconf} \ + $(use_enable dbus) || die "./configure failed" + LANG=C emake -j1 || die +} + +src_install () { + make GACUTIL_FLAGS="/root ${D}/usr/$(get_libdir) /gacdir /usr/$(get_libdir) /package ${PN}" \ + DESTDIR=${D} install || die + + dodoc ${DOCS} + + elog "sussen-applet is a GNOME applet. You can not run it directly from" + elog "the command line. Use GNOME panel to invoke it." + elog "You can also run it as the tray icon: sussen-applet --tray-icon" + echo + ewarn "sussen-editor is still work in progress. Just basic functionality is" + ewarn "working (New, Save, Execute)." + echo + ewarn "Beginning with sussen-0.24 default location for oval definitions changed." + ewarn "If you had previous versions installed, please, run the following" + ewarn "commands to clean outdated locations for each users that ran sussen:" + ewarn + ewarn "gconftool-2 --unset /apps/sussen-applet/oval_xml_directory" + ewarn "gconftool-2 --unset /apps/sussen-applet/oval_download_directory" + echo +} diff --git a/net-analyzer/sussen/sussen-0.26-r1.ebuild b/net-analyzer/sussen/sussen-0.26-r1.ebuild new file mode 100644 index 000000000000..04d88beec0f0 --- /dev/null +++ b/net-analyzer/sussen/sussen-0.26-r1.ebuild @@ -0,0 +1,76 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-analyzer/sussen/sussen-0.26-r1.ebuild,v 1.1 2006/08/25 06:13:38 pva Exp $ + +inherit eutils gnome2 mono autotools + +DESCRIPTION="Sussen is a tool that checks for vulnerabilities and configuration issues on computer systems" +HOMEPAGE="http://dev.mmgsecurity.com/projects/sussen/" +SRC_URI="http://dev.mmgsecurity.com/downloads//${PN}/${P}.tar.gz" +LICENSE="GPL-2" +IUSE="doc dbus gnome" +SLOT="0" +KEYWORDS="~x86 ~amd64" + +RDEPEND="=dev-lang/mono-1.1* + gnome? ( >=dev-dotnet/gtk-sharp-2.4 + >=dev-dotnet/gnome-sharp-2.4 + >=dev-dotnet/gconf-sharp-2.4 + >=dev-dotnet/glade-sharp-2.4 + gnome-base/gnome-panel ) + dbus? ( sys-apps/dbus )" + +DEPEND="${RDEPEND} + doc? ( >=dev-util/monodoc-1.1.8 ) + app-arch/rpm + >=dev-util/intltool-0.34.2" + +DOCS="AUTHORS ChangeLog README TODO" + +pkg_setup() { + if use dbus ; then + built_with_use -a sys-apps/dbus mono || die \ + "${PN} requires dbus build with mono support. Please, reemerge dbus with USE=\"mono\"" + fi + use gnome || { elog "You do not have gnome in your USE flags."; + elog "applet and editor will not be built." ; } +} + +src_unpack() { + unpack ${A} + cd ${S} + + epatch ${FILESDIR}/${P}-agent-empty-definitions.patch + epatch ${FILESDIR}/sussen-0.25-0.28-interface-failsafe.diff + + autoreconf || die +} + +src_compile () { + econf ${myconf} \ + $(use_enable dbus) \ + $(use_enable gnome) || die "./configure failed" + LANG=C emake -j1 || die +} + +src_install () { + make GACUTIL_FLAGS="/root ${D}/usr/$(get_libdir) /gacdir /usr/$(get_libdir) /package ${PN}" \ + DESTDIR=${D} install || die + + dodoc ${DOCS} + + elog "sussen-applet is a GNOME applet. You can not run it directly from" + elog "the command line. Use GNOME panel to invoke it." + elog "You can also run it as the tray icon: sussen-applet --tray-icon" + echo + ewarn "sussen-editor is still work in progress. Just basic functionality is" + ewarn "working (New, Save, Execute)." + echo + ewarn "Beginning with sussen-0.24 default location for oval definitions changed." + ewarn "If you had previous versions installed, please, run the following" + ewarn "commands to clean outdated locations for each users that ran sussen:" + ewarn + ewarn "gconftool-2 --unset /apps/sussen-applet/oval_xml_directory" + ewarn "gconftool-2 --unset /apps/sussen-applet/oval_download_directory" + echo +} diff --git a/net-analyzer/sussen/sussen-0.27-r1.ebuild b/net-analyzer/sussen/sussen-0.27-r1.ebuild new file mode 100644 index 000000000000..397891fd9a7f --- /dev/null +++ b/net-analyzer/sussen/sussen-0.27-r1.ebuild @@ -0,0 +1,73 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-analyzer/sussen/sussen-0.27-r1.ebuild,v 1.1 2006/08/25 06:13:38 pva Exp $ + +inherit eutils gnome2 mono autotools + +DESCRIPTION="Sussen is a tool that checks for vulnerabilities and configuration issues on computer systems" +HOMEPAGE="http://dev.mmgsecurity.com/projects/sussen/" +SRC_URI="http://dev.mmgsecurity.com/downloads//${PN}/${P}.tar.gz" +LICENSE="GPL-2" +IUSE="doc dbus gnome" +SLOT="0" +KEYWORDS="~x86 ~amd64" + +RDEPEND="=dev-lang/mono-1.1* + gnome? ( >=dev-dotnet/gtk-sharp-2.4 + >=dev-dotnet/gnome-sharp-2.4 + >=dev-dotnet/gconf-sharp-2.4 + >=dev-dotnet/glade-sharp-2.4 + gnome-base/gnome-panel ) + dbus? ( sys-apps/dbus )" + +DEPEND="${RDEPEND} + doc? ( >=dev-util/monodoc-1.1.8 ) + app-arch/rpm + >=dev-util/intltool-0.34.2" + +DOCS="AUTHORS ChangeLog README TODO" + +pkg_setup() { + if use dbus ; then + built_with_use -a sys-apps/dbus mono || die \ + "${PN} requires dbus build with mono support. Please, reemerge dbus with USE=\"mono\"" + fi + use gnome || { elog "You do not have gnome in your USE flags."; + elog "applet and editor will not be built." ; } +} + +src_unpack() { + unpack ${A} + cd ${S} + + epatch ${FILESDIR}/sussen-0.25-0.28-interface-failsafe.diff +} + +src_compile () { + econf ${myconf} \ + $(use_enable dbus) \ + $(use_enable gnome) || die "./configure failed" + LANG=C emake -j1 || die +} + +src_install () { + make GACUTIL_FLAGS="/root ${D}/usr/$(get_libdir) /gacdir /usr/$(get_libdir) /package ${PN}" \ + DESTDIR=${D} install || die + + dodoc ${DOCS} + + elog "sussen-applet is a GNOME applet. You can not run it directly from" + elog "the command line. Use GNOME panel to invoke it." + elog "You can also run it as the tray icon: sussen-applet --tray-icon" + echo + ewarn "sussen-editor is still work in progress. Just basic functionality is" + ewarn "working (New, Save, Execute)." + echo + ewarn "Beginning with sussen-0.24 default location for oval definitions changed." + ewarn "If you had previous versions installed, please, run the following" + ewarn "commands to clean outdated locations for each users that ran sussen:" + ewarn + ewarn "gconftool-2 --unset /apps/sussen-applet/oval_xml_directory" + ewarn "gconftool-2 --unset /apps/sussen-applet/oval_download_directory" + echo +} diff --git a/net-analyzer/sussen/sussen-0.28.ebuild b/net-analyzer/sussen/sussen-0.28.ebuild new file mode 100644 index 000000000000..3d2d16de92eb --- /dev/null +++ b/net-analyzer/sussen/sussen-0.28.ebuild @@ -0,0 +1,73 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-analyzer/sussen/sussen-0.28.ebuild,v 1.1 2006/08/25 06:13:38 pva Exp $ + +inherit eutils gnome2 mono autotools + +DESCRIPTION="Sussen is a tool that checks for vulnerabilities and configuration issues on computer systems" +HOMEPAGE="http://dev.mmgsecurity.com/projects/sussen/" +SRC_URI="http://dev.mmgsecurity.com/downloads//${PN}/${P}.tar.gz" +LICENSE="GPL-2" +IUSE="doc dbus gnome" +SLOT="0" +KEYWORDS="~x86 ~amd64" + +RDEPEND="=dev-lang/mono-1.1* + gnome? ( >=dev-dotnet/gtk-sharp-2.4 + >=dev-dotnet/gnome-sharp-2.4 + >=dev-dotnet/gconf-sharp-2.4 + >=dev-dotnet/glade-sharp-2.4 + gnome-base/gnome-panel ) + dbus? ( sys-apps/dbus )" + +DEPEND="${RDEPEND} + doc? ( >=dev-util/monodoc-1.1.8 ) + app-arch/rpm + >=dev-util/intltool-0.34.2" + +DOCS="AUTHORS ChangeLog README TODO" + +pkg_setup() { + if use dbus ; then + built_with_use -a sys-apps/dbus mono || die \ + "${PN} requires dbus build with mono support. Please, reemerge dbus with USE=\"mono\"" + fi + use gnome || { elog "You do not have gnome in your USE flags."; + elog "applet and editor will not be built." ; } +} + +src_unpack() { + unpack ${A} + cd ${S} + + epatch ${FILESDIR}/sussen-0.25-0.28-interface-failsafe.diff +} + +src_compile () { + econf ${myconf} \ + $(use_enable dbus) \ + $(use_enable gnome) || die "./configure failed" + LANG=C emake -j1 || die +} + +src_install () { + make GACUTIL_FLAGS="/root ${D}/usr/$(get_libdir) /gacdir /usr/$(get_libdir) /package ${PN}" \ + DESTDIR=${D} install || die + + dodoc ${DOCS} + + elog "sussen-applet is a GNOME applet. You can not run it directly from" + elog "the command line. Use GNOME panel to invoke it." + elog "You can also run it as the tray icon: sussen-applet --tray-icon" + echo + ewarn "sussen-editor is still work in progress. Just basic functionality is" + ewarn "working (New, Save, Execute)." + echo + ewarn "Beginning with sussen-0.24 default location for oval definitions changed." + ewarn "If you had previous versions installed, please, run the following" + ewarn "commands to clean outdated locations for each users that ran sussen:" + ewarn + ewarn "gconftool-2 --unset /apps/sussen-applet/oval_xml_directory" + ewarn "gconftool-2 --unset /apps/sussen-applet/oval_download_directory" + echo +} |