Info2: << # IM-6.9.6-8 bumps libN+1 for all the libraries Package: libmagickcore%type_pkg[-nox]6.9.q16.2-shlibs # qdepth can be 16, 32, 64, but currently only q16 passes tests # When working, q32 and q64 should be in a separate .info to avoid # defining the pkg "imagemagick" more than once in the same .info. Type: -nox ., vers (6.9.6), patch (6), qdepth (16) Version: 6.9.6.6 Revision: 10 Description: ImageMagick core library (q%type_raw[qdepth]) License: OSI-Approved Maintainer: Hanspeter Niederstrasser Depends: << imagemagick6.9.q%type_raw[qdepth]-common (>= %v-%r), bzip2-shlibs, fftw3-shlibs, fontconfig2-shlibs, freetype219-shlibs (>= 2.12.1-4), glib2-shlibs, lcms2-shlibs, libjbig-shlibs, libjpeg9-shlibs, liblqr1-shlibs, liblzma5-shlibs, libopenjp2.7-shlibs, libpng16-shlibs, libtiff6-shlibs, libtool2-shlibs, libwebp7-shlibs, libxml2-shlibs, libxt-shlibs, x11-shlibs << BuildDepends: << bzip2-dev, cairo (>= 1.12.14-2), fftw3, fink (>= 0.34), fink-buildenv-modules (>= 0.1.3), fink-package-precedence (>= 0.31), fontconfig2-dev, freetype219 (>= 2.12.1-4), glib2-dev, gtk+2-dev, ilmbase12, lcms2, libdjvulibre21-dev, libiconv-dev, libjbig, libjpeg9, liblqr1, liblzma5, libopenexr22, libopenjp2.7, libpng16, librsvg2, libtiff6, libtool2, libwebp7, libwmf, libxml2, libxt, pkgconfig, x11-dev << Recommends: << ghostscript, ghostscript-fonts << Suggests: << libmagickcore%type_pkg[-nox]6.9.q%type_raw[qdepth].2-extra << CustomMirror: << Primary: http://snaggledworks.com/fink/src << Source: mirror:custom:ImageMagick-%type_raw[vers]-%type_raw[patch].tar.xz Source-Checksum: SHA256(9cd1fe001d3ecb68b7d053ede40950d411956d47afc5267acc3ca57a77070d0a) Source2: https://raw.githubusercontent.com/apple-opensource/zlib/9262b43df5648cd5ed4a2d4f79895eeefec0dbe9/zlib/zlib.pc Source2-Checksum: SHA256(b5d9db6f6c7dfdb3719a9c55074fd64713fbc36d8ebf720405b3b23c95cac805) Source2ExtractDir: pkgconfig PatchScript: << ### Make sure we don't find X11/Freetype on 10.7 perl -pi -e 's|CFLAGS\=\"\$FREETYPE_CFLAGS \$CFLAGS\"|CPPFLAGS\=\"\$FREETYPE_CFLAGS \$CPPFLAGS\"|g' configure << ### OpenMP needs not-clang ### frozenpaths hardcodes the full path to 3rd party tools. Needed. ### perl turned off because perlmagick-pm is the package that provides that ### pango needs >= 1.28.1 ### --prefix needed as long as install_names are Core=2, Wand=2, ++=6 #### bindir, docdir, includedir, & mandir are all because of that ConfigureParams: << --prefix=%p/lib/ImageMagick-6.9 \ --bindir=%p/bin \ --docdir=%p/share/doc/ImageMagick-6 \ --includedir=%p/include \ --mandir=%p/share/man \ --disable-silent-rules \ --enable-dependency-tracking \ --x-includes=${X11_INCLUDE_DIR} \ --x-libraries=${X11_LIBRARY_DIR} \ --disable-openmp \ --disable-opencl \ --enable-shared \ --disable-static \ --enable-hdri \ --with-modules \ --with-quantum-depth=%type_raw[qdepth] \ --with-frozenpaths \ --with-magick-plus-plus \ --without-perl \ --with-bzlib \ --with-x \ --without-autotrace \ --without-dps \ --with-djvu \ --with-fftw \ --without-flif \ --without-fpx \ --without-gslib \ --with-gs-font-dir=%p/share/ghostscript/fonts \ --without-gvc \ --with-jbig \ --with-jpeg \ --with-openjp2 \ --with-lcms \ --with-lqr \ --with-lzma \ --with-openexr \ --without-pango \ --with-png \ --with-rsvg \ --with-tiff \ --with-webp \ --with-windows-font-dir=/Library/Fonts \ --with-wmf \ --with-xml << GCC: 4.0 CompileScript: << #!/bin/sh -ev . %p/sbin/fink-buildenv-helper.sh export PKG_CONFIG_PATH=`pwd`/../pkgconfig:%p/lib/glib-2.0/pkgconfig-strict:$PKG_CONFIG_PATH ./configure %c /usr/bin/make -w fink-package-precedence --prohibit-bdep=libmagickcore%type_pkg[-nox]6.9.q%type_raw[qdepth].2-dev,libmagickwand%type_pkg[-nox]6.9.q%type_raw[qdepth].2-dev,libmagick++%type_pkg[-nox]6.9.q%type_raw[qdepth].6-dev . << InfoTest: << TestDepends: fontconfig-path TestScript: << make check || exit 2 fink-package-precedence --prohibit-bdep=libmagickcore%type_pkg[-nox]6.9.q%type_raw[qdepth].2-dev,libmagickwand%type_pkg[-nox]6.9.q%type_raw[qdepth].2-dev,libmagick++%type_pkg[-nox]6.9.q%type_raw[qdepth].6-dev . << << InstallScript: << #!/bin/sh -ev make install DESTDIR=%d # Rename binaries (except *-config) into qdepth variantized names for FILE in animate compare composite conjure convert display identify import mogrify montage stream; do mv %i/bin/$FILE %i/bin/$FILE-Q%type_raw[qdepth] done # Rename manpages (except *-config) into qdepth variantized names for FILE in ImageMagick animate compare composite conjure convert display identify import mogrify montage stream; do mv %i/share/man/man1/$FILE.1 %i/share/man/man1/$FILE-Q%type_raw[qdepth].1 done ### Move docs to %p/share/doc for ease of transition install -m 755 -d %i/share/doc mv %i/lib/ImageMagick-6.9/share/doc/ImageMagick-6 %i/share/doc ### Make symlinks in %p/lib to unversioned dylibs and .pc files in libdir ### .pc install -m 755 -d %i/lib/pkgconfig for FILE in ImageMagick++ ImageMagick Magick++ MagickCore MagickWand Wand; do ln -s %p/lib/ImageMagick-6.9/lib/pkgconfig/$FILE-6.Q%type_raw[qdepth]HDRI.pc %i/lib/pkgconfig/$FILE-6.Q%type_raw[qdepth]HDRI.pc ln -s %p/lib/ImageMagick-6.9/lib/pkgconfig/$FILE.pc %i/lib/pkgconfig/$FILE.pc done ### .dylib for FILE in Magick++ MagickCore MagickWand; do ln -s %p/lib/ImageMagick-6.9/lib/lib$FILE-6.Q%type_raw[qdepth]HDRI.dylib %i/lib/lib$FILE-6.Q%type_raw[qdepth]HDRI.dylib done << DocFiles: AUTHORS.txt ChangeLog LICENSE NEWS.txt NOTICE README.txt Shlibs: << %p/lib/ImageMagick-6.9/lib/libMagickCore-6.Q%type_raw[qdepth]HDRI.2.dylib 3.0.0 %n (>= 6.9.1.2-1) << SplitOff: << Package: libmagickcore%type_pkg[-nox]6.9.q%type_raw[qdepth].2-dev Description: ImageMagick core library (q%type_raw[qdepth]) dev files Depends: %N (= %v-%r) BuildDependsOnly: true Files: << bin/Magick-config bin/MagickCore-config include/ImageMagick-6/magick lib/libMagickCore-6.Q%type_raw[qdepth]HDRI.dylib lib/pkgconfig/ImageMagick-6.Q%type_raw[qdepth]HDRI.pc lib/pkgconfig/ImageMagick.pc lib/pkgconfig/MagickCore-6.Q%type_raw[qdepth]HDRI.pc lib/pkgconfig/MagickCore.pc lib/ImageMagick-6.9/lib/libMagickCore-6.Q%type_raw[qdepth]HDRI.dylib lib/ImageMagick-6.9/lib/libMagickCore-6.Q%type_raw[qdepth]HDRI.la lib/ImageMagick-6.9/lib/pkgconfig/ImageMagick-6.Q%type_raw[qdepth]HDRI.pc lib/ImageMagick-6.9/lib/pkgconfig/ImageMagick.pc lib/ImageMagick-6.9/lib/pkgconfig/MagickCore-6.Q%type_raw[qdepth]HDRI.pc lib/ImageMagick-6.9/lib/pkgconfig/MagickCore.pc share/man/man1/Magick-config.1 share/man/man1/MagickCore-config.1 << Conflicts: << libmagickcore6.9.q32.2-dev, libmagickcore6.9.q64.2-dev, libmagickwand6.9.q32.2-dev, libmagickwand6.9.q64.2-dev, libmagick++6.9.q32.6-dev, libmagick++6.9.q64.6-dev, libmagickcore7.q16.2-dev, libmagickcore7.q16.6-dev, libmagickcore7.q16.9-dev, libmagickwand7.q16.0-dev, libmagickwand7.q16.6-dev, libmagickwand7.q16.9-dev, libmagick++7.q16.2-dev, libmagick++7.q16.4-dev, libmagick++7.q16.5-dev << Replaces: << libmagickcore6.9.q32.2-dev, libmagickcore6.9.q64.2-dev, libmagickwand6.9.q32.2-dev, libmagickwand6.9.q64.2-dev, libmagick++6.9.q32.6-dev, libmagick++6.9.q64.6-dev, libmagickcore7.q16.2-dev, libmagickcore7.q16.6-dev, libmagickcore7.q16.9-dev, libmagickwand7.q16.0-dev, libmagickwand7.q16.6-dev, libmagickwand7.q16.9-dev, libmagick++7.q16.2-dev, libmagick++7.q16.4-dev, libmagick++7.q16.5-dev << DocFiles: AUTHORS.txt ChangeLog LICENSE NEWS.txt NOTICE README.txt << SplitOff2: << Package: libmagickwand%type_pkg[-nox]6.9.q%type_raw[qdepth].2-shlibs Description: MagickWand library (q%type_raw[qdepth]) Depends: << imagemagick6.9.q%type_raw[qdepth]-common (>= %v-%r), %N (= %v-%r), bzip2-shlibs, fftw3-shlibs, fontconfig2-shlibs, freetype219-shlibs (>= 2.12.1-4), glib2-shlibs, lcms2-shlibs, liblqr1-shlibs, liblzma5-shlibs, libtool2-shlibs, libxt-shlibs, x11-shlibs << Files: << lib/ImageMagick-6.9/lib/libMagickWand-6.Q%type_raw[qdepth]HDRI.2.dylib << DocFiles: AUTHORS.txt ChangeLog LICENSE NEWS.txt NOTICE README.txt Shlibs: << %p/lib/ImageMagick-6.9/lib/libMagickWand-6.Q%type_raw[qdepth]HDRI.2.dylib 3.0.0 %n (>= 6.9.1.2-1) << << SplitOff3: << Package: libmagickwand%type_pkg[-nox]6.9.q%type_raw[qdepth].2-dev Description: MagickWand library (q%type_raw[qdepth]) dev files Depends: libmagickwand%type_pkg[-nox]6.9.q%type_raw[qdepth].2-shlibs (= %v-%r) BuildDependsOnly: true Files: << bin/MagickWand-config bin/Wand-config include/ImageMagick-6/wand lib/libMagickWand-6.Q%type_raw[qdepth]HDRI.dylib lib/pkgconfig/MagickWand-6.Q%type_raw[qdepth]HDRI.pc lib/pkgconfig/MagickWand.pc lib/pkgconfig/Wand-6.Q%type_raw[qdepth]HDRI.pc lib/pkgconfig/Wand.pc lib/ImageMagick-6.9/lib/libMagickWand-6.Q%type_raw[qdepth]HDRI.dylib lib/ImageMagick-6.9/lib/libMagickWand-6.Q%type_raw[qdepth]HDRI.la lib/ImageMagick-6.9/lib/pkgconfig/MagickWand-6.Q%type_raw[qdepth]HDRI.pc lib/ImageMagick-6.9/lib/pkgconfig/MagickWand.pc lib/ImageMagick-6.9/lib/pkgconfig/Wand-6.Q%type_raw[qdepth]HDRI.pc lib/ImageMagick-6.9/lib/pkgconfig/Wand.pc share/man/man1/MagickWand-config.1 share/man/man1/Wand-config.1 << Conflicts: << libmagickcore6.9.q32.2-dev, libmagickcore6.9.q64.2-dev, libmagickwand6.9.q32.2-dev, libmagickwand6.9.q64.2-dev, libmagick++6.9.q32.6-dev, libmagick++6.9.q64.6-dev, libmagickcore7.q16.2-dev, libmagickcore7.q16.6-dev, libmagickcore7.q16.9-dev, libmagickwand7.q16.0-dev, libmagickwand7.q16.6-dev, libmagickwand7.q16.9-dev, libmagick++7.q16.2-dev, libmagick++7.q16.4-dev, libmagick++7.q16.5-dev << Replaces: << libmagickcore6.9.q32.2-dev, libmagickcore6.9.q64.2-dev, libmagickwand6.9.q32.2-dev, libmagickwand6.9.q64.2-dev, libmagick++6.9.q32.6-dev, libmagick++6.9.q64.6-dev, libmagickcore7.q16.2-dev, libmagickcore7.q16.6-dev, libmagickcore7.q16.9-dev, libmagickwand7.q16.0-dev, libmagickwand7.q16.6-dev, libmagickwand7.q16.9-dev, libmagick++7.q16.2-dev, libmagick++7.q16.4-dev, libmagick++7.q16.5-dev << DocFiles: AUTHORS.txt ChangeLog LICENSE NEWS.txt NOTICE README.txt << SplitOff4: << Package: libmagick++%type_pkg[-nox]6.9.q%type_raw[qdepth].6-shlibs Description: Magick++ library (q%type_raw[qdepth]) Depends: << imagemagick6.9.q%type_raw[qdepth]-common (>= %v-%r), %N (= %v-%r), libmagickwand%type_pkg[-nox]6.9.q%type_raw[qdepth].2-shlibs (= %v-%r), bzip2-shlibs, fftw3-shlibs, fontconfig2-shlibs, freetype219-shlibs (>= 2.12.1-4), glib2-shlibs, lcms2-shlibs, liblqr1-shlibs, liblzma5-shlibs, libtool2-shlibs, libxt-shlibs, x11-shlibs << Files: << lib/ImageMagick-6.9/lib/libMagick++-6.Q%type_raw[qdepth]HDRI.6.dylib << DocFiles: AUTHORS.txt ChangeLog LICENSE NEWS.txt NOTICE README.txt Shlibs: << %p/lib/ImageMagick-6.9/lib/libMagick++-6.Q%type_raw[qdepth]HDRI.6.dylib 7.0.0 %n (>= 6.9.1.2-1) << << SplitOff5: << Package: libmagick++%type_pkg[-nox]6.9.q%type_raw[qdepth].6-dev Description: Magick++ library (q%type_raw[qdepth]) dev files Depends: libmagick++%type_pkg[-nox]6.9.q%type_raw[qdepth].6-shlibs (= %v-%r) BuildDependsOnly: true Files: << bin/Magick++-config include/ImageMagick-6/Magick++ include/ImageMagick-6/Magick++.h lib/libMagick++-6.Q%type_raw[qdepth]HDRI.dylib lib/pkgconfig/ImageMagick++-6.Q%type_raw[qdepth]HDRI.pc lib/pkgconfig/ImageMagick++.pc lib/pkgconfig/Magick++-6.Q%type_raw[qdepth]HDRI.pc lib/pkgconfig/Magick++.pc lib/ImageMagick-6.9/lib/libMagick++-6.Q%type_raw[qdepth]HDRI.dylib lib/ImageMagick-6.9/lib/libMagick++-6.Q%type_raw[qdepth]HDRI.la lib/ImageMagick-6.9/lib/pkgconfig/ImageMagick++-6.Q%type_raw[qdepth]HDRI.pc lib/ImageMagick-6.9/lib/pkgconfig/ImageMagick++.pc lib/ImageMagick-6.9/lib/pkgconfig/Magick++-6.Q%type_raw[qdepth]HDRI.pc lib/ImageMagick-6.9/lib/pkgconfig/Magick++.pc share/man/man1/Magick++-config.1 << Conflicts: << libmagickcore6.9.q32.2-dev, libmagickcore6.9.q64.2-dev, libmagickwand6.9.q32.2-dev, libmagickwand6.9.q64.2-dev, libmagick++6.9.q32.6-dev, libmagick++6.9.q64.6-dev, libmagickcore7.q16.2-dev, libmagickcore7.q16.6-dev, libmagickcore7.q16.9-dev, libmagickwand7.q16.0-dev, libmagickwand7.q16.6-dev, libmagickwand7.q16.9-dev, libmagick++7.q16.2-dev, libmagick++7.q16.4-dev, libmagick++7.q16.5-dev << Replaces: << libmagickcore6.9.q32.2-dev, libmagickcore6.9.q64.2-dev, libmagickwand6.9.q32.2-dev, libmagickwand6.9.q64.2-dev, libmagick++6.9.q32.6-dev, libmagick++6.9.q64.6-dev, libmagickcore7.q16.2-dev, libmagickcore7.q16.6-dev, libmagickcore7.q16.9-dev, libmagickwand7.q16.0-dev, libmagickwand7.q16.6-dev, libmagickwand7.q16.9-dev, libmagick++7.q16.2-dev, libmagick++7.q16.4-dev, libmagick++7.q16.5-dev << DocFiles: AUTHORS.txt ChangeLog LICENSE NEWS.txt NOTICE README.txt << SplitOff6: << Package: imagemagick6.9.q%type_raw[qdepth]-common Description: Infrastructure for ImageMagick (q%type_raw[qdepth]) Files: << lib/ImageMagick-6.9/etc/ImageMagick-6/coder.xml lib/ImageMagick-6.9/etc/ImageMagick-6/colors.xml lib/ImageMagick-6.9/etc/ImageMagick-6/delegates.xml lib/ImageMagick-6.9/etc/ImageMagick-6/log.xml lib/ImageMagick-6.9/etc/ImageMagick-6/magic.xml lib/ImageMagick-6.9/etc/ImageMagick-6/mime.xml lib/ImageMagick-6.9/etc/ImageMagick-6/policy.xml lib/ImageMagick-6.9/etc/ImageMagick-6/quantization-table.xml lib/ImageMagick-6.9/etc/ImageMagick-6/thresholds.xml lib/ImageMagick-6.9/etc/ImageMagick-6/type-dejavu.xml lib/ImageMagick-6.9/etc/ImageMagick-6/type-ghostscript.xml lib/ImageMagick-6.9/etc/ImageMagick-6/type-windows.xml lib/ImageMagick-6.9/etc/ImageMagick-6/type.xml << DocFiles: AUTHORS.txt ChangeLog LICENSE NEWS.txt NOTICE README.txt << SplitOff7: << Package: imagemagick6.q%type_raw[qdepth]-doc Description: ImageMagick documentation Files: << share/doc/ImageMagick-6 << << SplitOff8: << # The modules in this SplitOff depend on both IMCore and IMWand, so offload # here to avoid circular dependencies in IMCore. # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=524613 Package: libmagickcore%type_pkg[-nox]6.9.q%type_raw[qdepth].2-extra Description: Extra libmagickcore%type_pkg[-nox]6.9.q%type_raw[qdepth].2 modules Depends: << %N (>= %v-%r), libmagickwand%type_pkg[-nox]6.9.q%type_raw[qdepth].2-shlibs (>= %v-%r), bzip2-shlibs, cairo-shlibs (>= 1.12.14-2), fftw3-shlibs, fontconfig2-shlibs, freetype219-shlibs (>= 2.12.1-4), glib2-shlibs, gtk+2-shlibs, ilmbase12-shlibs, lcms2-shlibs, libdjvulibre21-shlibs, libjpeg9-shlibs, liblzma5-shlibs, libopenexr22-shlibs, librsvg2-shlibs, libtool2-shlibs, libwmf-shlibs, libxml2-shlibs, libxt-shlibs, x11-shlibs << Enhances: %N DocFiles: AUTHORS.txt ChangeLog LICENSE NEWS.txt NOTICE README.txt Files: << lib/ImageMagick-6.9/lib/ImageMagick-%type_raw[vers]/modules-Q%type_raw[qdepth]HDRI/coders/djvu.{la,so} lib/ImageMagick-6.9/lib/ImageMagick-%type_raw[vers]/modules-Q%type_raw[qdepth]HDRI/coders/dot.{la,so} lib/ImageMagick-6.9/lib/ImageMagick-%type_raw[vers]/modules-Q%type_raw[qdepth]HDRI/coders/exr.{la,so} lib/ImageMagick-6.9/lib/ImageMagick-%type_raw[vers]/modules-Q%type_raw[qdepth]HDRI/coders/pango.{la,so} lib/ImageMagick-6.9/lib/ImageMagick-%type_raw[vers]/modules-Q%type_raw[qdepth]HDRI/coders/svg.{la,so} lib/ImageMagick-6.9/lib/ImageMagick-%type_raw[vers]/modules-Q%type_raw[qdepth]HDRI/coders/wmf.{la,so} << << SplitOff9: << Package: imagemagick%type_pkg[-nox] Description: Image manipulation tools (q%type_raw[qdepth]) Depends: << %N (>= %v-%r), bzip2-shlibs, fftw3-shlibs, fontconfig2-shlibs, freetype219-shlibs (>= 2.12.1-4), glib2-shlibs, lcms2-shlibs, liblqr1-shlibs, liblzma5-shlibs, libmagickwand%type_pkg[-nox]6.9.q%type_raw[qdepth].2-shlibs (>= %v-%r), libtool2-shlibs, libxt-shlibs, x11-shlibs << # R/S from debian Recommends: << ghostscript, libmagickcore%type_pkg[-nox]6.9.q%type_raw[qdepth].2-extra (>= %v-%r), netpbm-bin << Suggests: << autotrace-bin, curl, enscript, ffmpeg, fig2dev, gimp2-svg, gnuplot-bin, grads, graphviz, libwmf-bin, mplayer, povray << Files: << bin share/man << DocFiles: AUTHORS.txt ChangeLog LICENSE NEWS.txt NOTICE README.txt Conflicts: << imagemagick, imagemagick-nox, graphicsmagick-imagemagick-compat << Replaces: << imagemagick, imagemagick-nox, graphicsmagick-imagemagick-compat << PostInstScript: << # qdepth=16 has the highest priority (16 > 64 > 32) if [ "%type_raw[qdepth]" -eq "16" ]; then QDEPTH=100 else QDEPTH=%type_raw[qdepth] fi # Add unvarianted binaries in %p/bin for FILE in animate compare composite conjure convert display identify import mogrify montage stream; do update-alternatives --install %p/bin/$FILE $FILE %p/bin/$FILE-Q%type_raw[qdepth] $QDEPTH done # Add unvarianted manpages for FILE in ImageMagick animate compare composite conjure convert display identify import mogrify montage stream; do update-alternatives --install %p/share/man/man1/$FILE.1 $FILE.1 %p/share/man/man1/$FILE-Q%type_raw[qdepth].1 $QDEPTH done << PreRmScript: << if [ $1 != "upgrade" ]; then for FILE in animate compare composite conjure convert display identify import mogrify montage stream; do update-alternatives --remove $FILE %p/bin/$FILE-Q%type_raw[qdepth] done for FILE in ImageMagick animate compare composite conjure convert display identify import mogrify montage stream; do update-alternatives --remove $FILE.1 %p/share/man/man1/$FILE-Q%type_raw[qdepth].1 done fi << << Homepage: http://www.imagemagick.org DescDetail: << ImageMagick is a robust collection of tools and libraries to read, write, and manipulate an image in many image formats (over 68 major formats) including popular formats like TIFF, JPEG, PNG, PDF, PhotoCD, and GIF. With ImageMagick you can create images dynamically, making it suitable for Web applications. You can also resize, rotate, sharpen, color reduce, or add special effects to an image and save your completed work in the same or a different image format. The "imagemagick" package installs the standard quantum-depth=16 suite. << DescPackaging: << As of version 6.8, the imagemagick-nox package is no longer provided. The Type: field is kept for ease of maintenance, esp. in case it is ever decided to revive imagemagick-nox as a real package. The various runtime qdepth variants coexist with each other. The -dev packages all C/R with -dev packages from other variants. However, packagers must make sure that all the necessary -dev packages are installed as needed since there is no way to enforce inherited BuildDepends through the .info file. << <<