# Maintainer: Levente Polyak # Contributor: Jan Alexander Steffens (heftig) # Contributor: Ionut Biru # Contributor: Alexander Baldeck # Contributor: Dale Blount # Contributor: Anders Bostrom # ALARM: Kevin Mihelich # - mozconfig changes for ARM # - disable rust lto for v7 highmem=1 pkgbase=thunderbird pkgname=(thunderbird) pkgver=115.14.0 pkgrel=1 pkgdesc='Standalone mail and news reader from mozilla.org' url='https://www.thunderbird.net/' arch=(x86_64) license=('MPL-2.0' 'GPL-2.0-only' 'LGPL-2.1-only') depends=( glibc gtk3 libgdk-3.so libgtk-3.so mime-types dbus libdbus-1.so dbus-glib alsa-lib nss hunspell sqlite ttf-font libvpx libvpx.so zlib bzip2 libbz2.so botan2 libwebp libwebp.so libwebpdemux.so libevent libjpeg-turbo libffi libffi.so nspr gcc-libs libx11 libxrender libxfixes libxext libxcomposite libxdamage pango libpango-1.0.so cairo gdk-pixbuf2 freetype2 libfreetype.so fontconfig libfontconfig.so glib2 libglib-2.0.so pixman libpixman-1.so gnupg json-c libcanberra ffmpeg icu libicui18n.so libicuuc.so ) makedepends=( unzip zip diffutils python nasm mesa libpulse libice libsm rust clang llvm cbindgen nodejs-lts-iron lld gawk perl findutils libotr ) options=(!emptydirs !makeflags !lto) source=(https://archive.mozilla.org/pub/thunderbird/releases/$pkgver/source/thunderbird-$pkgver.source.tar.xz{,.asc} vendor-prefs.js distribution.ini mozconfig.cfg metainfo.patch org.mozilla.Thunderbird.desktop thunderbird-system-icu-74.patch # https://bugzilla.mozilla.org/show_bug.cgi?id=1862601 0031-bmo-1873379-fix-libc++-18-ignore-tuple-harder.patch 0032-bmo-1841919-llvm-18-variable-does-not-need-to-be-mutable.patch 0033-bmo-1882209-update-crates-for-rust-1.78-stripped-patch-from-bugs.freebsd.org-bug278834.patch 0034-bgo-936072-update-crates-for-rust-1.78-patch-from-bugs.freebsd.org-bug278989.patch ) validpgpkeys=( 14F26682D0916CDD81E37B6D61B7B526D98F0353 # Mozilla Software Releases 4360FE2109C49763186F8E21EBE41E90F6F12F6D # Mozilla Software Releases ) # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) # Note: These are for Arch Linux use ONLY. For your own distribution, please # get your own set of keys. Feel free to contact foutrelis@archlinux.org for # more information. _google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM # Mozilla API keys (see https://location.services.mozilla.com/api) # Note: These are for Arch Linux use ONLY. For your own distribution, please # get your own set of keys. Feel free to contact heftig@archlinux.org for # more information. _mozilla_api_key=16674381-f021-49de-8622-3021c5942aff prepare() { cd $pkgname-$pkgver echo "${noextract[@]}" local src for src in "${source[@]}"; do src="${src%%::*}" src="${src##*/}" [[ $src = *.patch ]] || continue echo "Applying patch $src..." patch -Np1 < "../$src" done sed -e 's|73114a5c28472e77082ad259113ffafb418ed602c1741f26da3e10278b0bf93e|a88d6cc10ec1322b53a8f4c782b5133135ace0fdfcf03d1624b768788e17be0f|' \ -i third_party/rust/mp4parse/.cargo-checksum.json sed -e 's|880c982df0843cbdff38b9f9c3829a2d863a224e4de2260c41c3ac69e9148ad4|239b3e4d20498f69ed5f94481ed932340bd58cb485b26c35b09517f249d20d11|' \ -i third_party/rust/bindgen/.cargo-checksum.json # Make icon transparent sed -i '/^google-api-key printf "%s" "$_mozilla_api_key" >mozilla-api-key cp ../mozconfig.cfg .mozconfig sed "s|@PWD@|${PWD@Q}|g" -i .mozconfig if [[ $CARCH == "armv7h" ]]; then echo "ac_add_options --disable-elf-hack" >> .mozconfig MAKEFLAGS="-j4" # disable hard-coded LTO sed -i '/cargo_rustc_flags += -Clto/d' config/makefiles/rust.mk sed -i '/RUSTFLAGS += -Cembed-bitcode=yes/d' config/makefiles/rust.mk # increase codegen-units due to RAM constraints sed -i 's/codegen-units=1/codegen-units=16/' config/makefiles/rust.mk fi echo 'ac_add_options --enable-optimize="-g0 -O2"' >> .mozconfig echo "mk_add_options MOZ_MAKE_FLAGS=\"${MAKEFLAGS}\"" >> .mozconfig export MOZ_DEBUG_FLAGS=" " export CFLAGS+=" -g0" export CXXFLAGS+=" -g0" #export LDFLAGS+=" -Wl,--no-keep-memory -Wl,--reduce-memory-overheads" export LDFLAGS+=" -Wl,--no-keep-memory" export RUSTFLAGS="-Cdebuginfo=0" CFLAGS=${CFLAGS/-fstack-clash-protection} CXXFLAGS=${CXXFLAGS/-fstack-clash-protection} } build() { cd $pkgname-$pkgver if [[ -n "${SOURCE_DATE_EPOCH}" ]]; then export MOZ_BUILD_DATE=$(date --date "@${SOURCE_DATE_EPOCH}" "+%Y%m%d%H%M%S") fi export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none export MOZBUILD_STATE_PATH="${srcdir}/mozbuild" # malloc_usable_size is used in various parts of the codebase CFLAGS="${CFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}" CXXFLAGS="${CXXFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}" ./mach configure ./mach build ./mach buildsymbols } package_thunderbird() { optdepends=( 'hunspell-en_us: Spell checking, American English' 'libotr: OTR support for active one-to-one chats' 'libnotify: Notification integration' ) cd $pkgname-$pkgver DESTDIR="$pkgdir" ./mach install install -Dm 644 ../vendor-prefs.js -t "$pkgdir/usr/lib/$pkgname/defaults/pref" install -Dm 644 ../distribution.ini -t "$pkgdir/usr/lib/$pkgname/distribution" install -Dm 644 ../org.mozilla.Thunderbird.desktop -t "$pkgdir/usr/share/applications" install -Dm 644 comm/mail/branding/thunderbird/net.thunderbird.Thunderbird.appdata.xml \ "$pkgdir/usr/share/metainfo/net.thunderbird.Thunderbird.appdata.xml" for i in 16 22 24 32 48 64 128 256; do install -Dm644 comm/mail/branding/thunderbird/default${i}.png \ "$pkgdir/usr/share/icons/hicolor/${i}x${i}/apps/org.mozilla.Thunderbird.png" done install -Dm644 comm/mail/branding/thunderbird/TB-symbolic.svg \ "$pkgdir/usr/share/icons/hicolor/symbolic/apps/thunderbird-symbolic.svg" # Use system-provided dictionaries ln -Ts /usr/share/hunspell "$pkgdir/usr/lib/$pkgname/dictionaries" ln -Ts /usr/share/hyphen "$pkgdir/usr/lib/$pkgname/hyphenation" # Install a wrapper to avoid confusion about binary path install -Dm755 /dev/stdin "$pkgdir/usr/bin/$pkgname" <=$pkgver") install -Dm644 thunderbird-i18n-$pkgver-$1.xpi \ "$pkgdir/usr/lib/thunderbird/extensions/langpack-$1@thunderbird.mozilla.org.xpi" } _languages=( 'af "Afrikaans"' 'ar "Arabic"' 'ast "Asturian"' 'be "Belarusian"' 'bg "Bulgarian"' 'br "Breton"' 'ca "Catalan"' 'cak "Kaqchikel"' 'cs "Czech"' 'cy "Welsh"' 'da "Danish"' 'de "German"' 'dsb "Lower Sorbian"' 'el "Greek"' 'en-GB "English (British)"' 'en-US "English (US)"' 'es-AR "Spanish (Argentina)"' 'es-ES "Spanish (Spain)"' 'et "Estonian"' 'eu "Basque"' 'fi "Finnish"' 'fr "French"' 'fy-NL "Frisian"' 'ga-IE "Irish"' 'gd "Gaelic (Scotland)"' 'gl "Galician"' 'he "Hebrew"' 'hr "Croatian"' 'hsb "Upper Sorbian"' 'hu "Hungarian"' 'hy-AM "Armenian"' 'id "Indonesian"' 'is "Icelandic"' 'it "Italian"' 'ja "Japanese"' 'ka "Georgian"' 'kab "Kabyle"' 'kk "Kazakh"' 'ko "Korean"' 'lt "Lithuanian"' 'ms "Malay"' 'nb-NO "Norwegian (Bokmål)"' 'nl "Dutch"' 'nn-NO "Norwegian (Nynorsk)"' 'pa-IN "Punjabi (India)"' 'pl "Polish"' 'pt-BR "Portuguese (Brazilian)"' 'pt-PT "Portuguese (Portugal)"' 'rm "Romansh"' 'ro "Romanian"' 'ru "Russian"' 'sk "Slovak"' 'sl "Slovenian"' 'sq "Albanian"' 'sr "Serbian"' 'sv-SE "Swedish"' 'th "Thai"' 'tr "Turkish"' 'uk "Ukrainian"' 'uz "Uzbek"' 'vi "Vietnamese"' 'zh-CN "Chinese (Simplified)"' 'zh-TW "Chinese (Traditional)"' ) _url=https://archive.mozilla.org/pub/thunderbird/releases/$pkgver/linux-x86_64/xpi for _lang in "${_languages[@]}"; do _locale=${_lang%% *} _pkgname=thunderbird-i18n-${_locale,,} pkgname+=($_pkgname) source+=("thunderbird-i18n-$pkgver-$_locale.xpi::$_url/$_locale.xpi") eval "package_$_pkgname() { _package_i18n $_lang }" done # Don't extract languages noextract=() for _src in "${source[@]%%::*}"; do case "$_src" in *.xpi) noextract+=("$_src") ;; esac done sha512sums=('b12e1302d6be94dd88bee6dd069d3fec944bfce95e1afc1d72c14cc188d952fd5a85f0e70575317250701ac89498d876f3384b022957689fabcef61ad7d78c29' 'SKIP' '6918c0de63deeddc6f53b9ba331390556c12e0d649cf54587dfaabb98b32d6a597b63cf02809c7c58b15501720455a724d527375a8fb9d757ccca57460320734' '5cd3ac4c94ef6dcce72fba02bc18b771a2f67906ff795e0e3d71ce7db6d8a41165bd5443908470915bdbdb98dddd9cf3f837c4ba3a36413f55ec570e6efdbb9f' 'a34dd97954f415a5ffe956ca1f10718bd164950566ceba328805c2ccbb54ed9081df07f2e063479bf932c4a443bb5b7443cca2f82eea3914465ed6e4863e0c0e' '7e43b1f25827ddae615ad43fc1e11c6ba439d6c2049477dfe60e00188a70c0a76160c59a97cc01d1fd99c476f261c7cecb57628b5be48874be7cf991c22db290' 'fffeb73e2055408c5598439b0214b3cb3bb4e53dac3090b880a55f64afcbc56ba5d32d1187829a08ef06d592513d158ced1fde2f20e2f01e967b5fbd3b2fafd4' '9897cb0ababc8e1a0001c4e1f70e0b39f5cdb9c08c69e3afd42088dfd001aa1fc6996cd83df0db1fb57ee0a80686c35c8df783108408dbe9191602cddd1e3c65' '63de65c2d98287dea2db832a870764f621c25bf0c1353d16f8e68e8316e7554d2047b1c7bbb74a6c48de423f6201964491cd89564e5142066b6609a1aed941a7' '346fc7c2bcdf0708f41529886a542d2cf11a02799ef2a69dddfa2c6449b8bd7309033f3893f78f21c4ea0be3f35741e12b448977c966f2ae5a0087f9e0465864' '249706b68ce2450e35216b615b24b7640e75dd120d6d866fa8aab03d644fa6c40b5e129740874d96608bd0c187b6f2456d0d4310729d26d4740d1eca753be4fd' '7bc7969fe03e5cee0ddb844f7917154afdc4a4df8b8af9c8191180a6813faca9f310cf6b689ec358bc45af12fa3ec386cd46cb9feecf9b38557e36552aa0572d' '584013d7b6eea794448f4764c17de7b989155ca782f602948a2d0f745c4344954daacd35327bcb85f9e9cad99d5b917f748d47a4805cef171d806bd8211aa591' '2767eef517e451aedfca4b9a8e254f4388afc1c6021cdc301bd56513073688a63ceb7891aa5bb9dd6c83ae2d5f9078e9b832bdf3e761c88e2379076d15baf519' 'a01c2d85389e7ca86af4bcc73565bca9faea308a77c16457dcb981492433a177761dd20daf3224ee64c7a527408265ae53fdfb2c2a5b4cfa0df8d2325240ca3a' '58f519048e3a5f19e227ace477df49b64ddd622c9ea31e5e819d4efd6bc9667d74414abd1178d356ebb021d11de14cfcda125a1a5ecfc080073c5bded074cef9' '09b931dc2469bb3df21cc85db53c00407d10c067b957ea63cfb921b89bbd4157f075b72abf8abec923c7c553f8e0c64c42b6d98d96b1c9bb8b27b53688dc99d3' '992cf5337f6d6b5761ad7332f11b0bba14eb962bff0c5683ca3f01a064ff13d76361adf177953a9091d48277d59f2263aa4aebedd450ca2b158a692a06e08ab6' 'ca23e0a7f5df0e167c2cb293e1d5f3e8bf7af55de3233107b73c297c79121c2945da0fe470ea69bc2512de5dd9a967f674cd75945ff603769cc356d3cf3569b7' '0c15a5a730f9ad8044004b9caa519da63af0312ef34edd818d691f9310c83ee338ead82ced902f340925c21dd29cf47dd19e766bbb9282dc76dc0944f3f707e7' 'c5fafb40529893b7a84f044fd69b548ef627ff861f63ba3c14411b860471bbdb308b659e033705afde937e99c28e0d80f7a2e456d305a5621662b872e0dc17bd' '4dc1c483f79e0b0986dbf7b6ef9dfc3e939b7621b0418b9f704d99cbcea18f97dfe3843b4d204f673e62050bbfed2fca84c7545f6baaa6c25d532f21d0c0b0ba' 'fded4ba16f3275e0063daf590696590dd7bfa2f9e687666df4e351a864808aa890219f7883e8aee53a299ee6231173ec19e834fdb256a45f0871a329f6bbe360' '63efe71b9ae267b0afdbc8be55e2f66f4b0b86a1eec31df760dcc57ee8e6f11865712bfb5784d4760ec6d75314ac3acae805d105b08c54d0ea619b898da6428a' 'd6c341b1e7283c756b98e9040dafc4c71743d4d4254b6a6e13664a14b4897058334554975e06905f99d0cb9457fb36234413733eee5059b370ab4652d27e25c4' 'ecd1d5896a145b925af0d80255172866e163568822bf306864eabd1c577f002fec022ddacf2cc8212f29287aa56a81448557d4e4c619085db5c41b5a87b2b1d4' 'a64e83decc87c5050e9b3557eda80b33cd076d86f9180d6d33e4068e3aa30c7093f0304a92e4e9c7728809ce62faef1a964053784953f249304483f0df9b7ff2' 'b8b6130304dcc2e7288d455964ba5a9fe1519e63869482750f71825b5834f9a230e3f314f8b932704607a91f2ce4766005d52a1ca0d686449249faa4b59897a0' 'ac84f6a4a4e6a7d026b888da9a23660c048da5993b09059c41542bd699ab8e3fc4dd0d5f3e0b2a49013ce965340b00789bbd8883a4c95e792af7ec1a9b53252e' 'c7dd7d7f92d5e7146f87925e11e61222acf564466ba5fbf9b56761db7f4f5f5d5e91aa40a860d6095f9e484f5e681188a41227559516fdb97ac39966dab0d491' 'b150c1fbb52ad4f2cbbe0ef5a17898324a8c111a6db7bbaa621af478b7dc8ec9a2dcc0abee50c4e38d377964e8f49e2943b9617e81126ce7a3ae73f4dcd794d2' '89a656d9adcd98025c846db4e744f1c44e8f055afe30ae19af32d515133a00e6986b1718eedf0e58cf2c8e116ebb615bd11c9773eaf0e9cc0ad71da54df7aff9' '5c2658f35998147d1e059cee9dde2b239be116ee9805621ad01056c13e39c57c8f23f30e02406d071857c34e19df2e3a313be609bf69c616c1d4a935987cf9af' '6e8d1384030b8c45ae6222faef3949b0502d660c2a61bb1951af8dc800fadd663ad588f789836587240947a909d4abe331b059f9b680307e76520237543ae3c0' '269ace04c16c40d65c44dabe11192756574efd4989f854496d7b0bfabadcfddd14e5fbd051303a63c54eca6622dceaa63df7418bd1b3ee37e06553a7ed1ba942' '5db9010df40ead2755786f35fef01c710827733523135fa131bb6982aec65fec6d33ccb1ec3bb02ad2e8f6d408a4f690442fb80a4dd3b9630c8efee0cb32335d' '0d3075c4c90bc9c0473f79aea4a83b6e2b58fba18b5d5821c459803020955a3ea44114b96f897410ea51cbc5d9cf5fa006a7c8c34c29ad0caaf0aa0a0316f3f9' '1386e78162fba0e7476619038a2b729142967faef8c8767d53fe2c94446719e90db49416f2ec56fa6d9053d52a89a9493d15a9298bb1acc29b3bf4a36731632d' '71892ecde40003ebca1974336a08c63965083c98d18012effc1bc8912cca855c7b02c57f86a1f947e01e6d1f1a993d9586f71244625b8fe40b09fb4135569789' 'fd7b9f632768f05a4e48c5996542191382d6530cff1fae1785cd6a8e6d48425a029b0cbf6a3b345f8b356fab3605bb00a64a88b6fae58949f2811b22735f534c' '9fe042c385bc89a3b2f75f8f0fc4b95823136e6c0c64e763d783218498caadea36e5c23b2898390ea14ff47743cb61528854f7e7171ac815557ea9cfad15e9b5' '72e50ba136d89eda9f97990fc9ba193f81cf7a84c00b40116a5fe6c668823a95e38d47a0ab452f00dbb03855eea17882f88d8ff25676fe0ba720c90202316a78' '5dd005d447f02583a4d42bfee616eee92f74f42490343831842e58b5a1d8559f68605d93b8c30626b07dc83939b0e97d472ed6f6f7bc9ee52f43008edc143b06' '808832a2d44e9ef4744222357bcf07f019f278eb69a0c77cfd420f924ad23749414e99ed48ec0af89ac5e2df202e522ed68de51e8bf97b492f6f499a3be7c5be' '15d3e85812b78f120b1cb13feadd1a465b5cc91db2888a602bd68b3180d5631018114ecb99c6819df2a6626cf736add59eaf01dde585fede8f55fb173e39db40' '359fabee10e9e5bb2130d918782c14007a70f2f912a1e683274ddb723cf10ce9fb256e6155ef299fa7bef5d85608a4c56faf91f951d269179c755068cb3d6583' 'e5c161f7b3814c7d9a3ccd0f858406e9d625e950fd812482955f74eec291d50cb7a4cf06577fb286d2f4742f5c6d8afe7663024b3f4ffbba0d813e269bdf0e6f' 'e1f2621207d7e4e2656c568de5953ffe6042d1490dc66fa96438ed2b5cb8cd946ffcd152f903a33f29b567a548f71b3c2426dc5b49d1dd4d227ddb3d18e6a9bd' 'd0c0b6f17466d935170e873cbf8f28c9b685f7e1c79ba17d19b32cd03d8d727763b472038a8cafbfac7326f2d535b1707baa256c6f4ed86b99c58fcc653b5a80' 'a6d0b22d607d4f9688336e9fa983d9d6664208645948c38d7565542d7e7003a0e8208d12bb768d84848721ef26cca6529bdac828d2713ec3c058fbf24bf9afde' 'cb89874847428199071c9f1fc93cc7dbba2d061c427987ca5b7eb06d404fc149653feb2e2699e7a5fd9c32840a8d6a86470e4bdce103aa54e36bca4c66bc8c89' '46f86a6b7e0f765cf62e4fcc1f79a55afe005a6b0fe532a1ac58099f550b6e726ff271c9e0833d1dc3880aa5e9cf86c78a759d3d83a2a2d022d1147c948de157' '6577ee7d014b809a3a1d41edd57ade0fbac8743c545fc7fcbdd7641f8f8773a060d9f03e9e0472d32a2031d15cb8c00a4594992b0006e9e76d2e1f4133f4354f' '7aa9ac637b3b8e087baae7046e437842f871324f883a94fce17f8efc2ce688cbc648687ba77c877c4beecf4dcff3147a849c11b434dae15a313974b53e845b45' '135f129f2b72d99599ceb5c92f03d96dcef28465717eaaefd1a12a4f8617ede060150cb18caf7ae6ed6053210c32bba0bb5e742b5f99a20f9a1eaf1d86eca37b' '4a54b2254d57c1947fb27728a173270a9f9504c4bca25e2e700c602e6b5b8b9d7538bbd4303c062a55b23cbfc8204975d9699dc82515a80e192295e75898acb5' '728d23c27bb03fcda6c60f83623ac7e66b4e7788767d657def85e976b5eb578a0b0a03df5baa4688e39db4c9d7fe0c57dd7bb1a4baff44c8c5776071d393125b' '623643cb84760e98a8265b617ac709d03c8e301f34837256b8c4a06e1a918656b1a90052d97b67e2a3ba23e0e499e8fc3285cdd558edb4b3e0ad0429f699cde3' '7419835e5a02afa24780de1300f606fc2cb4c4872423f5a91ddbdfe6c2731f962adb769869f4e02381d5593bbf3683168eff562b6a2ab781a41a90ac535d6d23' '18aeb54f46a35e9644bccf6035cfdad6e0448674f38c934857c9184f75ede1e74130e3bab3017b22d286d129680849622cc11a049859a1d14d7df8bf3e62ac8d' '8b72e0772f1c7c4aa00fcd760bc04a3dae69335769d54e9368262fbded96ebf7308a671e46cbb6e921a043d6e297aa77a4510553fd5844f9ad742808b964a476' 'f02addfac0f7e11c43b2f43e15d20f5e877c5300be6a5c23ae9d450096f064ebf597319228f81c7d5c6f598805050aff0431025600874e07a8b512e88fd3d083' 'f94a708b8c08c416ee1e39207c32fff7c27749bd9025faa576a72493025786495851557251feccfa67fffbfd4a8cfeefaf25fc8a87c295af7be68b1d37d1e272' 'f109e8d65417dbd3b0d8f5f37d1c5938d37a09f0387ecd75a690b88d365c56e231ff045010e0d6bfa1ec2c26898fd63a0577d207f837475df558746c46031646' 'c9acc7a1ad4cb54868b0a66c0cf2cd6a3460acd6caee3c33331d0cd1894fe9142f1d5c3238c2b481bd80a390dc95d2c8feb513a2457ac86e28910d8ac968a4db' '15bff4ec3b1bf8045a77cb7c5df6b07c8f0a4cf559490db126218b591e691fcc7cb26b3407ef16518d05609728bfa88f129f6df151133fb9e56fcb14d616bc4f' '10166e70d170ca698d4354b2a60d3ce962281e6e41f12e713d18da269562571ce069b8464fc91777ff8c9c2674b1581d58edc36e80b6bc242d455e177f43207e' '0c3c68ff09a02c01fe05d5e03598b551a91f025ba1366cecd443d6c54995a0334a89d746844698e6e1155a5acc1a857e6b5b3068c23f127047a72b29110955f1' '911034e20151a17e787bc582668bc80323ff72503c0b905e4817a369f05dddf3f0c008e17193f415ae3625339265011f944a9002a1119a89205460a74834c0a4' 'e5e656302cff207b53de54d7d090917193286c08ab584755ae3a7942a21beaddd24c02fa449640bf70f3fa2d5a0aeb3e2e8bbecf0d636c1355b4b38d0ab8f826' 'ecc0e849166198def15a50aac46855be61acb65fbc63e74eb102293ce62e1320475b6700195feba835846130d597a9301455c4b77ed06a3396b5943be5a1590f' 'f05bc3ca4e77a72909c14024fb801b67eb928ca0ea6dc7b8cc6a318e08ac6636f1e24d4584ef40d7f34cf012833f627479cef2abf730dbcdcb0b835375e40f60' '536370b0615b373ee266bf39f434ee5ebec15d535e366fae99a68a2cc7ad75bd44f5abe41af7310b1d5e2e0762e783e4bb88fdd2c9de66f46ccab9c1e87f698e' 'eb4e1894f408b7d90982a447183c3dbd702c654950c772c3adf6ac90be23655e6d6426210542de70682ba70797c247e6271bc7867fe2a8dc04ba8a63ab0e94c0' '661acf4f1eeb803eabb4c5b8f9cfbbb6bd71eb456860fe23debf0de889d204aba490d545334098c8fd302de29b6adb5f1a75c4bd96e3fbd13f3dceec358a15ad') # vim:set sw=2 et: