#!/bin/sh

iterate()
{
	"$@" GX - bin/opera@@{SUFFIX}
	if ! $repackage
	then
		"$@" GX - bin/uninstall-opera@@{SUFFIX}
	fi
	"$@" NF e85af5a0b1e73dc42e5c5bc9d15df9f1 lib/opera@@{SUFFIX}/gstreamer/plugins/libgstoperamatroska.so
	"$@" NF 6b037bf42f690387a4a993f8120a1f8d lib/opera@@{SUFFIX}/gstreamer/plugins/libgstoperavp8.so
	"$@" NF ecdbdcd9657e4ace83bdbf294715caf7 lib/opera@@{SUFFIX}/liboperagtk2.so
	"$@" NF 57b6d7ce7f2d672fbe87977ff3486ee8 lib/opera@@{SUFFIX}/liboperagtk3.so
	"$@" NF df8681aadb89813385bb9b8bfbc2114e lib/opera@@{SUFFIX}/liboperakde4.so
	"$@" NX 5687f4ffd316e406c870ec7f4232c160 lib/opera@@{SUFFIX}/opera@@{SUFFIX}
	"$@" NX 4d9e2137980f7b276a9d80b873803db3 lib/opera@@{SUFFIX}/opera_autoupdatechecker
	"$@" NF 0a8389b127c477aa2c55ee5d234473ca lib/opera@@{SUFFIX}/plugins/README
	"$@" NX 68a3ae019efd516ed92fd1b5e48d4ae2 lib/opera@@{SUFFIX}/pluginwrapper/operapluginwrapper
	"$@" NX 106ef7f9bc25954c0e0ce6cbb33c62cf lib/opera@@{SUFFIX}/pluginwrapper/operapluginwrapper-ia32-linux
	"$@" NX b560eda6129699f2779cda7364b960f1 lib/opera@@{SUFFIX}/pluginwrapper/operapluginwrapper-native
	"$@" PF 45b63b062396a549264d4774a84d8c58 share/applications/opera@@{SUFFIX}-browser.desktop
	"$@" NF 3214f080875748938ba060314b4f727d share/doc/opera@@{SUFFIX}/LGPL-2
	"$@" NF 6a6a8e020838b23406c81b19c1d46df6 share/doc/opera@@{SUFFIX}/LGPL-3
	"$@" NF d57f31d7938886bed0de6558a31ed3c7 share/doc/opera@@{SUFFIX}/LICENSE
	"$@" NF c9996f43d681b457f038bfc8efeef28a share/doc/opera@@{SUFFIX}/README.gstreamer
	"$@" NF de63aa261020ad76060639c389ed5347 share/icons/hicolor/128x128/apps/opera@@{SUFFIX}-browser.png
	"$@" NF 272f6ee8bbad4dc7029d81286ca4763e share/icons/hicolor/128x128/mimetypes/opera@@{SUFFIX}-extension.png
	"$@" NF c55ae8742265ca2b40dac3ed40303a7f share/icons/hicolor/16x16/apps/opera@@{SUFFIX}-browser.png
	"$@" NF 87c5739d23920500c0815c88fcee8fb1 share/icons/hicolor/16x16/mimetypes/opera@@{SUFFIX}-extension.png
	"$@" NF 4d53865bfb951a749fee62a5035128dc share/icons/hicolor/22x22/apps/opera@@{SUFFIX}-browser.png
	"$@" NF b1aadfffe1a2a4cbc0769505f130f462 share/icons/hicolor/22x22/mimetypes/opera@@{SUFFIX}-extension.png
	"$@" NF 77084cec1838decd600f7b92495858b5 share/icons/hicolor/24x24/apps/opera@@{SUFFIX}-browser.png
	"$@" NF 70c1f737385a88bd616654ef23a187cc share/icons/hicolor/24x24/mimetypes/opera@@{SUFFIX}-extension.png
	"$@" NF d8eb8fe06b7ba0c101a0278019deee7b share/icons/hicolor/256x256/apps/opera@@{SUFFIX}-browser.png
	"$@" NF a3a1464a00ff085f94407307a0add221 share/icons/hicolor/32x32/apps/opera@@{SUFFIX}-browser.png
	"$@" NF 852841f582f95cabb04992397fcc97ce share/icons/hicolor/32x32/mimetypes/opera@@{SUFFIX}-extension.png
	"$@" NF 0309b637a3a808f2a127e343166814b5 share/icons/hicolor/48x48/apps/opera@@{SUFFIX}-browser.png
	"$@" NF 6b94ab4c0f32141dc889207cf3454c43 share/icons/hicolor/48x48/mimetypes/opera@@{SUFFIX}-extension.png
	"$@" NF fe9c0b034eb8961565ee0c19efecc2cd share/icons/hicolor/scalable/mimetypes/opera@@{SUFFIX}-extension.svg
	"$@" PF 01a53bb84f06137ca5abf81fddd0dbad share/man/man1/opera@@{SUFFIX}.1.gz
	"$@" PF a960b3c9c3fabecd6805a4b954d893e1 share/mime/packages/opera@@{SUFFIX}-extension.xml
	"$@" NF 3ffbd4ce19c3f70209b1dfc44f54d26d share/opera@@{SUFFIX}/cert.pem
	"$@" NF b1b011eae66dfc8c495e41a9f990a605 share/opera@@{SUFFIX}/defaults/bookmarks.adr
	"$@" NF 8c82c67376cf11535d0be347051e0600 share/opera@@{SUFFIX}/defaults/dictionaries.xml
	"$@" NF be5b3d761bb4aae49722002eb95d0c89 share/opera@@{SUFFIX}/defaults/feedreaders.ini
	"$@" NF cd2c7135a4f91af45892a366bb5274c8 share/opera@@{SUFFIX}/defaults/filehandler.ini
	"$@" NF 11e6ad8a16f9782144a2c4894a4960d3 share/opera@@{SUFFIX}/defaults/handlers-ignore.ini
	"$@" LL ../../doc/opera@@{SUFFIX}/LICENSE share/opera@@{SUFFIX}/defaults/license.txt
	"$@" NF 2ce537838e09f65583a2edf9fcf08e7b share/opera@@{SUFFIX}/defaults/mailproviders.xml
	"$@" NF 0cb4ac60c1cf45bd08ec4d5d62da5c02 share/opera@@{SUFFIX}/defaults/plugin-ignore.ini
	"$@" NF 0fdbbea86cf8d337071056e5403c9333 share/opera@@{SUFFIX}/defaults/pluginpath.ini
	"$@" NF 0eac0ca005c0bdfcb7259caa0c1fd601 share/opera@@{SUFFIX}/defaults/public_domains.dat
	"$@" NF 85a4e01c835f824d71d10ba54c522418 share/opera@@{SUFFIX}/defaults/search.ini
	"$@" NF 6634058c2f4467e55d1f4370bf4bea02 share/opera@@{SUFFIX}/defaults/standard_speeddial.ini
	"$@" NF a0f37c343f2dff930c6bcb5fcc0738e3 share/opera@@{SUFFIX}/defaults/standard_trusted_repositories.ini
	"$@" NF bd9d8babf17fab74b6ac921034e0c9fe share/opera@@{SUFFIX}/defaults/tips_metadata.ini
	"$@" NF 2ebcfaea7b12329317908592c5c372aa share/opera@@{SUFFIX}/defaults/webmailproviders.ini
	"$@" NF 5978ba5d3fa29bb0f5b210cc8aad57e1 share/opera@@{SUFFIX}/defaults/xmlentities.ini
	"$@" NF 136d9e4fd817aa5def373b1062bffbe6 share/opera@@{SUFFIX}/encoding.bin
	"$@" NF 54f1497ac9cc9ffa04d52213be260559 share/opera@@{SUFFIX}/extra/missingplugin.svg
	"$@" NF 17700f8a405a78dc1afdf69679a3f85b share/opera@@{SUFFIX}/extra/missingpluginhover.svg
	"$@" NF 0547d144b3de633887a8657de0ee1779 share/opera@@{SUFFIX}/extra/svg-mo.dat
	"$@" NF 6ee58550670e206dc93e1b31a7da2c9f share/opera@@{SUFFIX}/extra/svg-mobd.dat
	"$@" NF 0ab7eca84c071dac25dafd3b4569d80f share/opera@@{SUFFIX}/extra/svg-sa.dat
	"$@" NF 23059c42a43dceded9122d8834aa43fe share/opera@@{SUFFIX}/extra/svg-sabd.dat
	"$@" NF f3747a59108df781e04305b1bee29574 share/opera@@{SUFFIX}/extra/svg-se.dat
	"$@" NF bcdb530c010ed72fe6096d46366c57f5 share/opera@@{SUFFIX}/extra/svg-sebd.dat
	"$@" NF 2f92520f80149b5ff2d7a694a1a4b68d share/opera@@{SUFFIX}/extra/unix-opengl.blocklist.json
	"$@" NF f7458709c89049c94a838fcbf9095d49 share/opera@@{SUFFIX}/files.sig
	"$@" NF 07691ad17c3fd15036b85c5fa416f34d share/opera@@{SUFFIX}/files_old.sig
	"$@" NF 7a2db2de5211ab16a6712e4168d17ec7 share/opera@@{SUFFIX}/html40_entities.dtd
	"$@" NF 4cca21dc97bda85b46ea16a0a83a9304 share/opera@@{SUFFIX}/html5_entity_init.dat
	"$@" NF 63827d48e764482a3dcfd678924f6fce share/opera@@{SUFFIX}/lngcode.txt
	"$@" NF d9cab316e521676f10214023d6ff44d8 share/opera@@{SUFFIX}/locale/af/af.lng
	"$@" NF 2b16e1e4848bd89a260805984f8d464e share/opera@@{SUFFIX}/locale/ar/ar.lng
	"$@" NF f88735170e35d4fa4d0c95a88c4e2d65 share/opera@@{SUFFIX}/locale/az/az.lng
	"$@" NF c2971892eb7be22722036e7924bddd79 share/opera@@{SUFFIX}/locale/be/be.lng
	"$@" NF faddf7e6790384651f1694d14434b449 share/opera@@{SUFFIX}/locale/be/bookmarks.adr
	"$@" NF adb4e479ef44a24f90e347ca7600da95 share/opera@@{SUFFIX}/locale/be/search.ini
	"$@" NF 20fa1eb6b5e88f42ead44c7019f735dc share/opera@@{SUFFIX}/locale/be/standard_speeddial.ini
	"$@" NF 28d797e9feca67f04881ef31f167be5d share/opera@@{SUFFIX}/locale/bg/bg.lng
	"$@" NF 13c63b5f59f3e7aa2473d391057ea3d9 share/opera@@{SUFFIX}/locale/bg/bookmarks.adr
	"$@" NF a308493a1c7384fc1bc60757ce1e05f7 share/opera@@{SUFFIX}/locale/bg/search.ini
	"$@" NF f76a42ab19f9d5725ce4530f11cc76cc share/opera@@{SUFFIX}/locale/bg/standard_speeddial.ini
	"$@" NF e2831a4f390c2d6ff016b9efb970c7c4 share/opera@@{SUFFIX}/locale/bn/bn.lng
	"$@" NF 4592ffacaee95091e621fd15e2824551 share/opera@@{SUFFIX}/locale/cs/bookmarks.adr
	"$@" NF 19c689010c5d9bc25491f56cc75aeab1 share/opera@@{SUFFIX}/locale/cs/cs.lng
	"$@" NF 1f203a21485a8b1bc5b66b0d1397d54f share/opera@@{SUFFIX}/locale/cs/search.ini
	"$@" NF bca9ddf506f0af7ab5e945a8fc1a0478 share/opera@@{SUFFIX}/locale/cs/standard_speeddial.ini
	"$@" NF ff59d8f9c443a52ef044583a2ad10eaf share/opera@@{SUFFIX}/locale/da/da.lng
	"$@" NF a6f9a5de02b5784cf3a5d8c2d6efb54e share/opera@@{SUFFIX}/locale/de/bookmarks.adr
	"$@" NF 08bc7bfcd435d214bfaf6ebf661712cd share/opera@@{SUFFIX}/locale/de/de.lng
	"$@" NF 0c1cb4f3a01f81201748951c8ce15572 share/opera@@{SUFFIX}/locale/de/search.ini
	"$@" NF 71c575c281d7ac669e736a1b4b3430ba share/opera@@{SUFFIX}/locale/de/standard_speeddial.ini
	"$@" NF 2797d6eeec567579d0dd0689c0c79afe share/opera@@{SUFFIX}/locale/el/el.lng
	"$@" NF 7d1ebdea47cc75ecb6cd915410570aab share/opera@@{SUFFIX}/locale/en-GB/en-GB.lng
	"$@" NF 730b47d84323d4f124a65118030987e2 share/opera@@{SUFFIX}/locale/en/en.lng
	"$@" NF 95d046f5af00cb40aad7867939fada28 share/opera@@{SUFFIX}/locale/en/en.zip
	"$@" LL ../../../doc/opera@@{SUFFIX}/LICENSE share/opera@@{SUFFIX}/locale/en/license.txt
	"$@" NF 9a8ebc288c28cacbac8a98dafe719480 share/opera@@{SUFFIX}/locale/es-ES/bookmarks.adr
	"$@" NF 382de610a2e23e8cdb42ca5d96d70fb7 share/opera@@{SUFFIX}/locale/es-ES/es-ES.lng
	"$@" NF 6f527c6759734286d846a5c374115b4b share/opera@@{SUFFIX}/locale/es-ES/search.ini
	"$@" NF 1c991a47c2fb0a7822b454ed318d56f4 share/opera@@{SUFFIX}/locale/es-ES/standard_speeddial.ini
	"$@" NF 5954ede772a7d2bb947705f1add470c4 share/opera@@{SUFFIX}/locale/es-LA/es-LA.lng
	"$@" NF d43d6e896c0467313a5e293e0be1b2ee share/opera@@{SUFFIX}/locale/et/et.lng
	"$@" NF 98f7cc63c31c3dc3b295cda7e6cb310d share/opera@@{SUFFIX}/locale/fa/fa.lng
	"$@" NF d82dc88433538d6b90cfc759dd0ac61b share/opera@@{SUFFIX}/locale/fi/fi.lng
	"$@" NF 7dab3b4da3bc7c831b475bf167d9b6d9 share/opera@@{SUFFIX}/locale/fr-CA/fr-CA.lng
	"$@" NF cc95173a796395cbeaffca18a3a27b86 share/opera@@{SUFFIX}/locale/fr/bookmarks.adr
	"$@" NF 223d8c8f0b4a88b617d2de0722b34716 share/opera@@{SUFFIX}/locale/fr/fr.lng
	"$@" NF 21c913061347b575d0c28c74a5b98613 share/opera@@{SUFFIX}/locale/fr/search.ini
	"$@" NF f00308dc1c3420a74091ccfb8706e5c0 share/opera@@{SUFFIX}/locale/fr/standard_speeddial.ini
	"$@" NF 40c7fc5dc6c574d8631340bfd809d2b3 share/opera@@{SUFFIX}/locale/fy/fy.lng
	"$@" NF 443f1cb0142fdeaceb9236e79c7a5c28 share/opera@@{SUFFIX}/locale/gd/gd.lng
	"$@" NF fbb7615d4218d00ea78d42e72ecccaf1 share/opera@@{SUFFIX}/locale/he/he.lng
	"$@" NF 9fe1d5ba7457a4eba610168368bac2ca share/opera@@{SUFFIX}/locale/hi/hi.lng
	"$@" NF 31d2ba3ffa5d25ae63c9c88f7be172c5 share/opera@@{SUFFIX}/locale/hr/hr.lng
	"$@" NF 7594dd900689a854ed4372538e1f4ecd share/opera@@{SUFFIX}/locale/hu/bookmarks.adr
	"$@" NF 1d90bfcf01be65f2ff5401eefdae8a05 share/opera@@{SUFFIX}/locale/hu/hu.lng
	"$@" NF 94e315da70a6ae8c772570ce3bc8fe7e share/opera@@{SUFFIX}/locale/hu/search.ini
	"$@" NF 5e22c7f6ca5297dd9d870177b1570199 share/opera@@{SUFFIX}/locale/hu/standard_speeddial.ini
	"$@" NF 96e01c550b38aaa53e19c2693c73b7e1 share/opera@@{SUFFIX}/locale/id/id.lng
	"$@" NF 1a3bd8ba0e7a3a554c69cfbe6840a25d share/opera@@{SUFFIX}/locale/it/bookmarks.adr
	"$@" NF fbd8777cf1e775ef6310a8b5946dbfa1 share/opera@@{SUFFIX}/locale/it/it.lng
	"$@" NF 1975c15aa85fe8bbf9e1e24f6e8c0424 share/opera@@{SUFFIX}/locale/it/search.ini
	"$@" NF 125082301d8be512778153d25eb12245 share/opera@@{SUFFIX}/locale/it/standard_speeddial.ini
	"$@" NF fd38d2b9782689f5bf9bec2741cafbb1 share/opera@@{SUFFIX}/locale/ja/bookmarks.adr
	"$@" NF 4be5228c013814629c2bae159ec2ae28 share/opera@@{SUFFIX}/locale/ja/ja.lng
	"$@" NF 8ccb73075c32ee317d68a3e941dda627 share/opera@@{SUFFIX}/locale/ja/search.ini
	"$@" NF ff168fe6a338f6c680d21abe58c80e43 share/opera@@{SUFFIX}/locale/ja/standard_speeddial.ini
	"$@" NF a010818a8ef3739fd730cd244adb0970 share/opera@@{SUFFIX}/locale/ka/ka.lng
	"$@" NF ce9fa6ba883b060eaf84e3cb3154b4af share/opera@@{SUFFIX}/locale/kk/kk.lng
	"$@" NF caa6f3b26e22f61efb1e4c8c8a432c55 share/opera@@{SUFFIX}/locale/ko/ko.lng
	"$@" NF d4c6a1bbe648da571d920200f7a0ed3d share/opera@@{SUFFIX}/locale/lt/lt.lng
	"$@" NF 79f1efcaae05ee12800244b65ae7c5eb share/opera@@{SUFFIX}/locale/lv/lv.lng
	"$@" NF 703a71614782eeda09540068ed1df362 share/opera@@{SUFFIX}/locale/me/me.lng
	"$@" NF 98a92e89f5d18775388ff33fd8a62e78 share/opera@@{SUFFIX}/locale/mk/mk.lng
	"$@" NF 421b86ebd13d61eb9c220c403ce6d05e share/opera@@{SUFFIX}/locale/ms/ms.lng
	"$@" NF a59ef747244a2334a4ae2ccefd20ce9a share/opera@@{SUFFIX}/locale/nb/bookmarks.adr
	"$@" NF 1c3b2aa9909379258a1658f04a8f7a28 share/opera@@{SUFFIX}/locale/nb/nb.lng
	"$@" NF 59b9778e8a4cc1499e35785918543a58 share/opera@@{SUFFIX}/locale/nb/search.ini
	"$@" NF ff7c88374d33ca67c38821082e64bcbe share/opera@@{SUFFIX}/locale/nb/standard_speeddial.ini
	"$@" NF 7848f3d7d861b4412c1425129d6fc959 share/opera@@{SUFFIX}/locale/nl/nl.lng
	"$@" NF 5c0c6f0684fa56ab5ee3572ef4bb7500 share/opera@@{SUFFIX}/locale/nn/nn.lng
	"$@" NF 5c0baa6f7db8b88c4a002fad8081b072 share/opera@@{SUFFIX}/locale/pa/pa.lng
	"$@" NF d1c977d58477c635c8c345beab686a02 share/opera@@{SUFFIX}/locale/pl/bookmarks.adr
	"$@" NF 9e9052cd598094917b03157cbe7e167a share/opera@@{SUFFIX}/locale/pl/pl.lng
	"$@" NF 95beca0fc7ffc1775ad61e83e51a5a0d share/opera@@{SUFFIX}/locale/pl/search.ini
	"$@" NF 74b5a6ecba2418eddfd2e53b4bbde995 share/opera@@{SUFFIX}/locale/pl/standard_speeddial.ini
	"$@" NF 59367a5ceb4ffc30369f6cf80ce7e4f3 share/opera@@{SUFFIX}/locale/pt-BR/bookmarks.adr
	"$@" NF 22211c3bc61aa7f8a82f43d6bb431def share/opera@@{SUFFIX}/locale/pt-BR/pt-BR.lng
	"$@" NF 8f6088cace9d990e65d92fa0ca02b0b9 share/opera@@{SUFFIX}/locale/pt-BR/search.ini
	"$@" NF 46e7d0980c6ba48136e2324f4a9016f1 share/opera@@{SUFFIX}/locale/pt-BR/standard_speeddial.ini
	"$@" NF faac5e97f6ab806788750516064a26d3 share/opera@@{SUFFIX}/locale/pt/pt.lng
	"$@" NF ab6c023157cc201d33b0ecc7c3d53e53 share/opera@@{SUFFIX}/locale/ro/bookmarks.adr
	"$@" NF 9a8ee87cc0025ba5518cb35585a62697 share/opera@@{SUFFIX}/locale/ro/ro.lng
	"$@" NF 16f836e53fc5e00cf526ba6a6f1bbe54 share/opera@@{SUFFIX}/locale/ro/search.ini
	"$@" NF b1581b0a01ff4d57156a237c1f023719 share/opera@@{SUFFIX}/locale/ro/standard_speeddial.ini
	"$@" NF 58fff00b0b3a75cfc5119c8f2f1f9a55 share/opera@@{SUFFIX}/locale/ru/bookmarks.adr
	"$@" NF 4e4b781ae90f02988646c155ca5e94a0 share/opera@@{SUFFIX}/locale/ru/ru.lng
	"$@" NF 69464496318f336349f39deb80b858f0 share/opera@@{SUFFIX}/locale/ru/search.ini
	"$@" NF b9829bbf44178329a1fb9e9f32096f16 share/opera@@{SUFFIX}/locale/ru/standard_speeddial.ini
	"$@" NF b3fbf0e0474aa06c16076d76ab0997c5 share/opera@@{SUFFIX}/locale/sk/bookmarks.adr
	"$@" NF 2d9d78498a0ccc5c8a97cd4d9852bdda share/opera@@{SUFFIX}/locale/sk/search.ini
	"$@" NF 7221e700df929d479381f697327cdcf9 share/opera@@{SUFFIX}/locale/sk/sk.lng
	"$@" NF 23e8307594a8b4ef65e095291b06ccf5 share/opera@@{SUFFIX}/locale/sk/standard_speeddial.ini
	"$@" NF fc29ab7506847d069c7f6a0f97f5f8fd share/opera@@{SUFFIX}/locale/sr/bookmarks.adr
	"$@" NF 16487e214eadc24dd45c0f024720ef08 share/opera@@{SUFFIX}/locale/sr/search.ini
	"$@" NF a73c32ca4570d18217cef471f9e14fae share/opera@@{SUFFIX}/locale/sr/sr.lng
	"$@" NF 5339815ce2134793a5c303edb56007c8 share/opera@@{SUFFIX}/locale/sr/standard_speeddial.ini
	"$@" NF 75d4d8d37a75a6be64cebeb6ce039ef7 share/opera@@{SUFFIX}/locale/sv/sv.lng
	"$@" NF 5c5d02c84800476437502ecebf3906ba share/opera@@{SUFFIX}/locale/sw/sw.lng
	"$@" NF be05b9830a185cd40e3a4420997ca8b7 share/opera@@{SUFFIX}/locale/ta/ta.lng
	"$@" NF 2aa432dbbcbd67a18e89688a5b53c97d share/opera@@{SUFFIX}/locale/te/te.lng
	"$@" NF 67048be4efd0a683c28f85edd590a6dd share/opera@@{SUFFIX}/locale/th/th.lng
	"$@" NF c0382b3d5fac26ea0046d51ac62d2eb7 share/opera@@{SUFFIX}/locale/tl/tl.lng
	"$@" NF 5d4e39da3b839e8964a9e8d813eae90f share/opera@@{SUFFIX}/locale/tr/bookmarks.adr
	"$@" NF 3d6d52d6fef170be75c05eac22a37148 share/opera@@{SUFFIX}/locale/tr/search.ini
	"$@" NF adb363c6c73e81e84010f8c517f4bac2 share/opera@@{SUFFIX}/locale/tr/standard_speeddial.ini
	"$@" NF 0c1a27047ba95033e9782510bcd1ba85 share/opera@@{SUFFIX}/locale/tr/tr.lng
	"$@" NF 5d6e308cbdca83dd57e3e7a44f0298ed share/opera@@{SUFFIX}/locale/uk/bookmarks.adr
	"$@" NF 4421a99f62ff0dff0cf66ace00e7b5c4 share/opera@@{SUFFIX}/locale/uk/search.ini
	"$@" NF 0d946e2f6bae3bc3dd6615b5d9377637 share/opera@@{SUFFIX}/locale/uk/standard_speeddial.ini
	"$@" NF 6291c2a076de9946c5fdcd24feddee56 share/opera@@{SUFFIX}/locale/uk/uk.lng
	"$@" NF ffe880bcec9b6e3cbb50dd054981d426 share/opera@@{SUFFIX}/locale/ur/ur.lng
	"$@" NF e52e4cb9f8d8346f75dc044e78eff219 share/opera@@{SUFFIX}/locale/uz/uz.lng
	"$@" NF 956bfd5a34157ca38cfd275e25788604 share/opera@@{SUFFIX}/locale/vi/vi.lng
	"$@" NF 58349d9bc0afb0f58610c806bd446501 share/opera@@{SUFFIX}/locale/zh-cn/bookmarks.adr
	"$@" NF 2d62c016a3b5d3e07085bf7651ee29a1 share/opera@@{SUFFIX}/locale/zh-cn/operaprefs_locale.ini
	"$@" NF 631ceac1f28af02fbce74e10073d6342 share/opera@@{SUFFIX}/locale/zh-cn/search.ini
	"$@" NF d09cc5e0fd301d5553ca7f11f990a8ba share/opera@@{SUFFIX}/locale/zh-cn/standard_speeddial.ini
	"$@" NF 60ae8167605bf23ea96e22cdb235d989 share/opera@@{SUFFIX}/locale/zh-cn/zh-cn.lng
	"$@" NF 2364c457dbf60223ef438196e678e3c7 share/opera@@{SUFFIX}/locale/zh-tw/zh-tw.lng
	"$@" NF acadea2f40f7c869c9a1f2da18ef632f share/opera@@{SUFFIX}/locale/zu/zu.lng
	"$@" NF 1c24deadc6027ab1b7a2cecc7b7c00e4 share/opera@@{SUFFIX}/mathml.dtd
	"$@" NF 546f675ace6be9479b8bc973f3adb37d share/opera@@{SUFFIX}/package-id.ini
	"$@" NF 4b9efdff0eac7dee1c7250668186d1aa share/opera@@{SUFFIX}/pubsuffix.xml
	"$@" NF 3f15cbb07af47ad8b68deadd68724eea share/opera@@{SUFFIX}/region/ar/bookmarks.adr
	"$@" NF 7ace5f37958b331098bf48c9d4e00396 share/opera@@{SUFFIX}/region/ar/search.ini
	"$@" NF c5fb417c6f156db61997c9061589a792 share/opera@@{SUFFIX}/region/ar/standard_speeddial.ini
	"$@" NF 8b97cb63b796360bf7cf7cecb444d047 share/opera@@{SUFFIX}/region/au/bookmarks.adr
	"$@" NF 5433c0807130b2cd082e34b721ab1dd5 share/opera@@{SUFFIX}/region/au/standard_speeddial.ini
	"$@" NF 4c4579461e14575f9f1004767ef35454 share/opera@@{SUFFIX}/region/cis/en/bookmarks.adr
	"$@" NF e517970863631a071803fd460a73187d share/opera@@{SUFFIX}/region/cis/en/search.ini
	"$@" NF 6dd5fbe2392946f5bd59f72c4c51d18d share/opera@@{SUFFIX}/region/cis/en/standard_speeddial.ini
	"$@" NF 58fff00b0b3a75cfc5119c8f2f1f9a55 share/opera@@{SUFFIX}/region/cis/ru/bookmarks.adr
	"$@" NF 69464496318f336349f39deb80b858f0 share/opera@@{SUFFIX}/region/cis/ru/search.ini
	"$@" NF b9829bbf44178329a1fb9e9f32096f16 share/opera@@{SUFFIX}/region/cis/ru/standard_speeddial.ini
	"$@" NF 8b477ff7499e3216a27e186a94c046ca share/opera@@{SUFFIX}/region/cn/browser.js
	"$@" NF d0e56cac3db73c6b29ea2449f5179d05 share/opera@@{SUFFIX}/region/cn/en/bookmarks.adr
	"$@" NF f006462536410d790d037ca7b1090b8a share/opera@@{SUFFIX}/region/cn/en/search.ini
	"$@" NF d09cc5e0fd301d5553ca7f11f990a8ba share/opera@@{SUFFIX}/region/cn/en/standard_speeddial.ini
	"$@" NF d44fc31b4c96a97d22624455874764ca share/opera@@{SUFFIX}/region/cn/turbosettings.xml
	"$@" NF 295022eb22e3830dee6382dc41850d7d share/opera@@{SUFFIX}/region/eg/bookmarks.adr
	"$@" NF 1b1e4ca2f61df9e277529cd56cb1c10d share/opera@@{SUFFIX}/region/eg/search.ini
	"$@" NF ea944c6de3c2852679b2302f167e0d38 share/opera@@{SUFFIX}/region/eg/standard_speeddial.ini
	"$@" NF 3b15e572f496650c4c53ee120cb5ff84 share/opera@@{SUFFIX}/region/gb/bookmarks.adr
	"$@" NF 575f6250e4d86bf7235a6f8f27c45461 share/opera@@{SUFFIX}/region/gb/search.ini
	"$@" NF b61d6c740c752c1251e1962ad3a2514f share/opera@@{SUFFIX}/region/gb/standard_speeddial.ini
	"$@" NF 8b477ff7499e3216a27e186a94c046ca share/opera@@{SUFFIX}/region/hk/browser.js
	"$@" NF 6ea2f98cdeaf54c398dca24aea9df644 share/opera@@{SUFFIX}/region/hk/turbosettings.xml
	"$@" NF ecf0e594ae79ccc5262a5b04af0c7f45 share/opera@@{SUFFIX}/region/id/bookmarks.adr
	"$@" NF aa5d260f84c71205a36e6def2a189d3a share/opera@@{SUFFIX}/region/id/search.ini
	"$@" NF fb1677b86ee1f76fda99d96c5fd007ac share/opera@@{SUFFIX}/region/id/standard_speeddial.ini
	"$@" NF a3d902214b5a38342f50b57998a05c3f share/opera@@{SUFFIX}/region/in/bookmarks.adr
	"$@" NF e969108f6bc8f74c9a4a4109ad8c10d9 share/opera@@{SUFFIX}/region/in/search.ini
	"$@" NF 0ead23a194891407e54b81bf4c4c4aa2 share/opera@@{SUFFIX}/region/in/standard_speeddial.ini
	"$@" NF 30cb76f5aa2d578181fd0a75888a7e67 share/opera@@{SUFFIX}/region/ke/bookmarks.adr
	"$@" NF d00ebe04c88e9b0ac5ead4d9559eee54 share/opera@@{SUFFIX}/region/ke/standard_speeddial.ini
	"$@" NF 19b36f008622667b36500a849dd13240 share/opera@@{SUFFIX}/region/latin_america/bookmarks.adr
	"$@" NF 7ace5f37958b331098bf48c9d4e00396 share/opera@@{SUFFIX}/region/latin_america/search.ini
	"$@" NF 03e4c00a1739286e55a07b4dd3445bbf share/opera@@{SUFFIX}/region/latin_america/standard_speeddial.ini
	"$@" NF 1b558b4fd0f49e9c2cc69b4f73a52d1b share/opera@@{SUFFIX}/region/middle_east/bookmarks.adr
	"$@" NF 1b1e4ca2f61df9e277529cd56cb1c10d share/opera@@{SUFFIX}/region/middle_east/search.ini
	"$@" NF 85ad574ab06fc54fff6f7cf9a4a57b22 share/opera@@{SUFFIX}/region/middle_east/standard_speeddial.ini
	"$@" NF 48623f200ad1b4f70531c38c7ed62576 share/opera@@{SUFFIX}/region/mx/bookmarks.adr
	"$@" NF 7ace5f37958b331098bf48c9d4e00396 share/opera@@{SUFFIX}/region/mx/search.ini
	"$@" NF 03e4c00a1739286e55a07b4dd3445bbf share/opera@@{SUFFIX}/region/mx/standard_speeddial.ini
	"$@" NF 1d9812359df0c24fabec948c4bc9fff0 share/opera@@{SUFFIX}/region/my/bookmarks.adr
	"$@" NF d37b2d6bfc55a9376bbcd56ca7abc927 share/opera@@{SUFFIX}/region/my/standard_speeddial.ini
	"$@" NF de9f6e3eda2795b7d9829e14aed59980 share/opera@@{SUFFIX}/region/ng/bookmarks.adr
	"$@" NF 9096e40153565ed5852426139beb3c16 share/opera@@{SUFFIX}/region/ng/standard_speeddial.ini
	"$@" NF e8f3197bdc0d38fd33177766c363d3f7 share/opera@@{SUFFIX}/region/ph/bookmarks.adr
	"$@" NF 1f75edda909273a86fb387ecf80c867b share/opera@@{SUFFIX}/region/ph/standard_speeddial.ini
	"$@" NF 035b933e85acb20dd2f0202e910c7967 share/opera@@{SUFFIX}/region/pk/bookmarks.adr
	"$@" NF c798e74187d343237d870331032e973b share/opera@@{SUFFIX}/region/pk/standard_speeddial.ini
	"$@" NF 063150b7539ce118221b87528f842e9d share/opera@@{SUFFIX}/region/region.ini
	"$@" NF c91d7ceba5ebfe2597bf977001d367c4 share/opera@@{SUFFIX}/region/ru/bookmarks.adr
	"$@" NF 69464496318f336349f39deb80b858f0 share/opera@@{SUFFIX}/region/ru/search.ini
	"$@" NF f6c7203cf9a610b67fba4f9505cbfd20 share/opera@@{SUFFIX}/region/ru/standard_speeddial.ini
	"$@" NF ed56efce97eacc9a5321685940409048 share/opera@@{SUFFIX}/region/se/bookmarks.adr
	"$@" NF bd0c6628dbd9f95fe77e141f0195c6ae share/opera@@{SUFFIX}/region/se/standard_speeddial.ini
	"$@" NF 8b477ff7499e3216a27e186a94c046ca share/opera@@{SUFFIX}/region/tw/browser.js
	"$@" NF 6ea2f98cdeaf54c398dca24aea9df644 share/opera@@{SUFFIX}/region/tw/turbosettings.xml
	"$@" NF d109a9d6b6543fcad2990ad4bee79832 share/opera@@{SUFFIX}/region/ua/ru/bookmarks.adr
	"$@" NF ec64da7bd526f8b5d504c0f63516390e share/opera@@{SUFFIX}/region/ua/ru/search.ini
	"$@" NF 7b5e8a1a3dd67afc73c260c8d6fcd17c share/opera@@{SUFFIX}/region/ua/ru/standard_speeddial.ini
	"$@" NF 02ae83e3f40b88ab1de2140e2dc4ef30 share/opera@@{SUFFIX}/region/us/bookmarks.adr
	"$@" NF 8f820bad6a8f8d2c7c3cdaa04719a9d1 share/opera@@{SUFFIX}/region/us/search.ini
	"$@" NF e019999f8b5cd7b3b80641c636c60276 share/opera@@{SUFFIX}/region/us/standard_speeddial.ini
	"$@" NF bd7bc5706030939b2146ecb5268123f3 share/opera@@{SUFFIX}/region/vn/bookmarks.adr
	"$@" NF 479c1aa49d6b748cca1171d04f4d41ff share/opera@@{SUFFIX}/region/vn/standard_speeddial.ini
	"$@" NF 02cfdf498ceb351f272b2a4c0d1e453e share/opera@@{SUFFIX}/region/za/bookmarks.adr
	"$@" NF 793a2f81a5184d0d73a11e8abd2dba5e share/opera@@{SUFFIX}/region/za/standard_speeddial.ini
	"$@" NF 05167a4ab1c5e6b495075a764d5d6587 share/opera@@{SUFFIX}/skin/standard_skin.zip
	"$@" NF 64dcb8ae992029b1ceb957a14bfa4c09 share/opera@@{SUFFIX}/skin/unix_skin.zip
	"$@" NF 06820e6bdd581b0a257e5e2648360457 share/opera@@{SUFFIX}/styles/about.css
	"$@" NF 4fb7c857524fd084449266fc70e9288b share/opera@@{SUFFIX}/styles/cache.css
	"$@" NF 6f68a7d0cc2061b9febe2ba3409f4813 share/opera@@{SUFFIX}/styles/certinfo.css
	"$@" NF 5329c00ff20abc527426750a4917bcc0 share/opera@@{SUFFIX}/styles/config.css
	"$@" NF d8e2f7a41167528b4726b897ff251ecf share/opera@@{SUFFIX}/styles/contentblock.css
	"$@" NF 519507ca4e929d783fe8acaf23ff5cd2 share/opera@@{SUFFIX}/styles/cpu.css
	"$@" NF 5365f1d7dfb70324825f560d8e25ee90 share/opera@@{SUFFIX}/styles/debug.css
	"$@" NF 056873687942e8aad4f0f297c1d4a57b share/opera@@{SUFFIX}/styles/dir.css
	"$@" NF a31978a78e87101d4e724487ce63ca0e share/opera@@{SUFFIX}/styles/error.css
	"$@" NF e2fe058194b04269a874420d76ed9261 share/opera@@{SUFFIX}/styles/feed.css
	"$@" NF 2d60ff8563558cb942a2390d1fb3fd56 share/opera@@{SUFFIX}/styles/gpu.css
	"$@" NF e9e1ee1fb6b5ccbb9b9df33ab622421f share/opera@@{SUFFIX}/styles/history.css
	"$@" NF cbc794ef8d6ad3b29465d194becb0b52 share/opera@@{SUFFIX}/styles/im.css
	"$@" NF 85be1afa5bada37e52a454b059af4ec0 share/opera@@{SUFFIX}/styles/image.css
	"$@" NF 73b840d67b16a49008b7ed3d6aec38ab share/opera@@{SUFFIX}/styles/images/Opera_256x256.png
	"$@" NF b769d1013cf6d688b39c36a5e72da222 share/opera@@{SUFFIX}/styles/images/arrow.png
	"$@" NF 35a8968b802c4cd66f70631354cec397 share/opera@@{SUFFIX}/styles/images/bar.png
	"$@" NF 2e242ddd9c9679c584b0fe430b8948cf share/opera@@{SUFFIX}/styles/images/bkgd-rev.png
	"$@" NF b133b79753e118bafa077c594ed22724 share/opera@@{SUFFIX}/styles/images/bkgd.png
	"$@" NF 4289d8db3e0ad4cb825d34c969c142ff share/opera@@{SUFFIX}/styles/images/bullet.png
	"$@" NF cbdbb7032558dae6b04f7691c4b8a41a share/opera@@{SUFFIX}/styles/images/center.png
	"$@" NF 669d3ef423184869eb24b29500330b06 share/opera@@{SUFFIX}/styles/images/container.png
	"$@" NF b423f4149c868ccf56a15abb83228f09 share/opera@@{SUFFIX}/styles/images/customize.gif
	"$@" NF e715da6d7e5314261bdff2942251718a share/opera@@{SUFFIX}/styles/images/darkBox.png
	"$@" NF 0dfc37ae4404b4a6811e4876db6b7df1 share/opera@@{SUFFIX}/styles/images/defaultFavicon.png
	"$@" NF 71bbdb354d7e65183c86aa36a27ddd1d share/opera@@{SUFFIX}/styles/images/error.png
	"$@" NF ac4455a870ed9d5365377c2d9566240c share/opera@@{SUFFIX}/styles/images/file.png
	"$@" NF 86c6ac920bd2fbb7f538ff79d4e34395 share/opera@@{SUFFIX}/styles/images/flag.png
	"$@" NF c6ee6872a8d70dbec976edd11bdaf986 share/opera@@{SUFFIX}/styles/images/folder.png
	"$@" NF 9b0cdaf9d7623041bd00e576cd1733f1 share/opera@@{SUFFIX}/styles/images/hanger.png
	"$@" NF 807f783c2043b0ff19471459cb52ad14 share/opera@@{SUFFIX}/styles/images/opera-icon-red.png
	"$@" NF a2ed905f3862c320bb43e866721729d7 share/opera@@{SUFFIX}/styles/images/opera.png
	"$@" NF dbb6d41150a244186500718eda971047 share/opera@@{SUFFIX}/styles/images/page-bot.png
	"$@" NF d58ef56a726e38bb51da5adf696153fc share/opera@@{SUFFIX}/styles/images/red_center.png
	"$@" NF 3c6c895d2519efa918b4b3f46a897b67 share/opera@@{SUFFIX}/styles/images/red_left.png
	"$@" NF a28ba91c09ea75605d727e9bde7771b1 share/opera@@{SUFFIX}/styles/images/red_right.png
	"$@" NF a0c5f8a66f4e25f5d16ca1696a8f2e03 share/opera@@{SUFFIX}/styles/images/root.png
	"$@" NF 4aecd261352501fa1bad2c5e608df556 share/opera@@{SUFFIX}/styles/images/search.png
	"$@" NF b641cb9df6a4065ec64e6aac43cd5bc8 share/opera@@{SUFFIX}/styles/images/section.png
	"$@" NF 62f6287d95fafa0a8c56287e41760f33 share/opera@@{SUFFIX}/styles/images/smartGroup.png
	"$@" NF 2dab1572b02772c7a4fea3b5d51d1c48 share/opera@@{SUFFIX}/styles/images/tooltiptail.png
	"$@" NF f4dbc8a7b78e98448ad509bedca371c1 share/opera@@{SUFFIX}/styles/images/top.png
	"$@" NF 074b5a2c5386b6f2d12d172aa2f349fa share/opera@@{SUFFIX}/styles/images/warning.png
	"$@" NF b9fea49ba70c66ef2b8b9097ff0e9327 share/opera@@{SUFFIX}/styles/info.css
	"$@" NF 78691c25557de07544eb8bf5068a3ef7 share/opera@@{SUFFIX}/styles/m2_upgrade_1160.mbs
	"$@" NF b54da1c8490fa8698e24bf336c9d3460 share/opera@@{SUFFIX}/styles/m2_welcome_message.mbs
	"$@" NF 3d3c384bea83a19f7a2fb4016f176c78 share/opera@@{SUFFIX}/styles/mail.css
	"$@" NF c1d531fe7db55238ea05422fa869986e share/opera@@{SUFFIX}/styles/mathml.css
	"$@" NF 52b86e5900e043b90a89a6fece013a72 share/opera@@{SUFFIX}/styles/media.css
	"$@" NF e7dd3d81e0088d5fb56df880226cc7e1 share/opera@@{SUFFIX}/styles/message.css
	"$@" NF d6839b61599030bb51575c83fa0f4eb0 share/opera@@{SUFFIX}/styles/mime.css
	"$@" NF d48ccef926d6b1b683dba7a615ff299c share/opera@@{SUFFIX}/styles/opera.css
	"$@" NF 7c03962a468d027a592c7ea937ba3968 share/opera@@{SUFFIX}/styles/plugins.css
	"$@" NF 8d253a1b13404e7237c7711cd9d787c4 share/opera@@{SUFFIX}/styles/private.css
	"$@" NF 028e214f2f1147678d50afc03705e7de share/opera@@{SUFFIX}/styles/search.css
	"$@" NF 4a1307a5ef44ce6f2699910d68353aaf share/opera@@{SUFFIX}/styles/unstyledxml.css
	"$@" NF 64dcb0bb963625b0ff53a9151ff3c938 share/opera@@{SUFFIX}/styles/user/accessibility.css
	"$@" NF 6008deed86fb3dc1b744e1d0c9815d4d share/opera@@{SUFFIX}/styles/user/altdebugger.css
	"$@" NF d764d16bae85fc61fee50ae907458c51 share/opera@@{SUFFIX}/styles/user/classid.css
	"$@" NF 8feb3f239a31b96eefda8f7e79085898 share/opera@@{SUFFIX}/styles/user/contrastbw.css
	"$@" NF 54b6bac7273bba3e84dc9bfcb64f96ad share/opera@@{SUFFIX}/styles/user/contrastwb.css
	"$@" NF 80fc82b496b4446fbd643a6db1444217 share/opera@@{SUFFIX}/styles/user/disablebreaks.css
	"$@" NF 7a47f3f90eea38ac65c29b567a866097 share/opera@@{SUFFIX}/styles/user/disablefloats.css
	"$@" NF 72e71aa6b1b66d1734c011b386a900bc share/opera@@{SUFFIX}/styles/user/disableforms.css
	"$@" NF ac51d694d297ffbef983aec116485b5d share/opera@@{SUFFIX}/styles/user/disablepositioning.css
	"$@" NF 87f145036737726bf73d874bfd8c4697 share/opera@@{SUFFIX}/styles/user/disabletables.css
	"$@" NF 908c147caed483d824559c2d91fe9983 share/opera@@{SUFFIX}/styles/user/outline.css
	"$@" NF 4577302a76e0d18e6fe2db12ff264580 share/opera@@{SUFFIX}/styles/user/structureblock.css
	"$@" NF 4ccc888f578bbb611f974fad8b5ab93d share/opera@@{SUFFIX}/styles/user/structureinline.css
	"$@" NF acf6b9711426e6663b001178962bb307 share/opera@@{SUFFIX}/styles/user/structuretables.css
	"$@" NF b64bab97874b5c7e1235e7758f5108f1 share/opera@@{SUFFIX}/styles/user/tablelayout.css
	"$@" NF b0fe820c83b1828c4fa8ec59c5c18f5d share/opera@@{SUFFIX}/styles/user/toc.css
	"$@" NF b7a538b2531b94aa2b8c1b6d0676c167 share/opera@@{SUFFIX}/styles/warning.css
	"$@" NF a3a2d380e96de00e59628ca99ebba6d1 share/opera@@{SUFFIX}/styles/webfeeds.html
	"$@" NF b506d80eaff21777870d553a86b278d6 share/opera@@{SUFFIX}/styles/webstorage.css
	"$@" NF 155d58f077d713b1bac18f3f5937b8a0 share/opera@@{SUFFIX}/styles/wml.css
	"$@" NF 3533a5e32cd24942ea63b435c29e090d share/opera@@{SUFFIX}/ui/dialog.ini
	"$@" NF 4406f504df7d01f1e406277b61e34273 share/opera@@{SUFFIX}/ui/dialogs.yml
	"$@" NF a1b9cd1bef3f3a9a6c45883c20acfc18 share/opera@@{SUFFIX}/ui/fastforward.ini
	"$@" NF 9e1dc2991af8185061c65e7e303a1cb3 share/opera@@{SUFFIX}/ui/standard_keyboard.ini
	"$@" NF dfb4a1fcda89d9c256b67c4dfb580f91 share/opera@@{SUFFIX}/ui/standard_keyboard_compat.ini
	"$@" NF 0d79600bb43c22f0280641889cd7c6c1 share/opera@@{SUFFIX}/ui/standard_menu.ini
	"$@" NF 83a9aaac418a7e283e4e849fba56a931 share/opera@@{SUFFIX}/ui/standard_mouse.ini
	"$@" NF d10e3b57ab792d7f7e6e260a66729743 share/opera@@{SUFFIX}/ui/standard_toolbar.ini
	"$@" NF af82e7af505956d6eadc44933cbc48fb share/opera@@{SUFFIX}/ui/unix_keyboard.ini
	"$@" NF 8ecf97daad3d4519c13ed83d0caf7e24 share/opera@@{SUFFIX}/ui/widgets.yml
}

available()
{
	command -v "$1" >/dev/null 2>&1
}

lintian_workaround_check_for_existence_of_updatemenus()
{
	# This function is never called and is just here to keep the
	# ubuntu software center from raising ugly errors.  We do
	# check for the existence of update-menus before invoking it.
	# We just do it in a way that lintian doesn't recognize.
	-x update-menus
}

finalize_desktop()
{
	# Menu entries
	if available update-desktop-database
	then
		update-desktop-database $PREFIX/share/applications
	fi

	# MIME associations
	if available update-mime-database
	then
		mkdir -p $PREFIX/share/mime/packages
		update-mime-database $PREFIX/share/mime
		! rmdir $PREFIX/share/mime/packages >/dev/null 2>&1
	fi

	# Icons
	touch -c $PREFIX/share/icons/hicolor
	if available update-icon-caches
	then
		update-icon-caches -tq $PREFIX/share/icons/hicolor
	elif available gtk-update-icon-cache
	then
		gtk-update-icon-cache -tq $PREFIX/share/icons/hicolor
	fi
}

make_tempdir()
{
	if [ -z "$tempdir" ]
	then
		tempdir=$(mktemp -d -t opera-install.XXXXXXXX)
		if [ $? != 0 ]
		then
			ui_error "Cannot create a temporary directory, please set TMPDIR correctly"
		fi
	fi
}

cleanup()
{
	res=$?
	trap - 0
	if [ $res -gt 0 ] && $need_rollback
	then
		rollback
	fi
	if $need_ui_cleanup
	then
		ui_cleanup
	fi
	if [ -n "$tempdir" ]
	then
		rm -rf $tempdir
	fi
	exit $res
}

ui_widget()
{
	local width height
	message=$(
		echo "$2"
		if [ -n "$3" ]
		then
			echo
			cat "$3"
		fi
		if [ -n "$4" ]
		then
			echo
			echo "$4"
		fi
	)
	case $driver in
		dialog|whiptail)
			width=72
			if available fmt
			then
				message=$(echo "$message" | fmt -w $((width - 4)))
				height=$(($(echo "$message" | wc -l) + 6))
				if [ $1 = inputbox ]
				then
					height=$((height + 2))
				fi
			else
				height=20
			fi
			;;
	esac
	need_ui_cleanup=true
	case $driver in
		dialog|whiptail)
			exec 4>&1
			answer=$($driver --title "$windowtitle" --clear --$1 "$message" $height $width 2>&1 1>&4)
			res=$?
			exec 4>&-
			;;
		plain)
			echo
			echo "$message"
			case $1 in
				yesno)
					while true
					do
						read -p 'Please enter Y or N: ' answer
						case "$answer" in
							y*|Y*)
								res=0
								break
								;;
							n*|N*)
								res=1
								break
								;;
						esac
					done
					;;
				inputbox)
					read -p '>' answer
					;;
				msgbox|infobox)
					res=0
					;;
			esac
			;;
	esac
	need_ui_cleanup=false
	return $res
}

ui_info()
{
	ui_widget infobox "$@"
}

ui_message()
{
	ui_widget msgbox "$@"
}

ui_warn()
{
	ui_widget yesno "$1" "$2" 'Continue?' || exit
}

ui_error()
{
	ui_widget msgbox "$1" "$2" 'Installation aborted.'
	exit 1
}

ui_input()
{
	ui_widget inputbox "$1" "$2" ''
}

ui_menu()
{
	local text width height
	case $driver in
		dialog|whiptail)
			width=72
			if available fmt
			then
				height=$(($(echo "$text" | fmt -w $((width - 4)) | wc -l) + $# / 2 + 8))
			else
				height=20
			fi
			;;
	esac
	need_ui_cleanup=true
	case $driver in
		dialog|whiptail)
			text=$1
			shift
			exec 4>&1
			answer=$($driver --menu "$text" $height $width $(($# / 2)) "$@" 2>&1 1>&4) || exit
			res=$?
			exec 4>&-
			;;
		plain)
			echo
			echo "$1"
			shift
			(
				n=1
				while [ -n "$1" ]
				do
					echo "[$n] $2"
					n=$((n + 1))
					shift 2
				done
			)
			while true
			do
				read -p "Your choice: " answer
				if echo "$answer" | grep -q '^[0-9][0-9]*$' && [ $((answer >= 1)) = 1 ] && [ $((answer <= $# / 2)) = 1 ]
				then
					break
				fi
				echo "Please enter an integer between 1 and $(($# / 2))."
			done
			shift $((answer * 2 - 2))
			answer="$1"
			res=0
			;;
	esac
	need_ui_cleanup=false
	return $res
}

ui_progress_begin()
{
	if ! $talk
	then
		return
	fi
	if [ -z "$progress_max" ]
	then
		progress_max=$(iterate echo | wc -l)
	fi
	progress_cur=0
	need_ui_cleanup=true
	case $driver in
		whiptail)
			make_tempdir
			mkfifo $tempdir/gauge
			whiptail --gauge "$1" 0 72 0 <$tempdir/gauge &
			exec 3>$tempdir/gauge
			;;
		*)
			echo
			echo -n "$1"
			;;
	esac
}

ui_progress_advance()
{
	if ! $talk
	then
		return
	fi
	progress_cur=$((progress_cur + 1))
	case $driver in
		whiptail)
			echo $((progress_cur * 100 / progress_max)) >&3
			;;
		*)
			echo -n '.'
			;;
	esac
}

ui_progress_end()
{
	if ! $talk
	then
		return
	fi
	case $driver in
		whiptail)
			exec 3>&-
			rm $tempdir/gauge
			;;
		*)
			echo 'done'
			;;
	esac
	need_ui_cleanup=false
}

ui_cleanup()
{
	case $driver in
		dialog)
			exec 4>&-
			dialog --clear
			stty sane
			clear
			;;
		whiptail)
			exec 3>&- 4>&-
			stty sane
			clear
			;;
		plain)
			echo
			;;
	esac
}

ui_init()
{
	if [ -z "$TERM" -o "$TERM" = dumb ]
	then
		driver=plain
	elif available whiptail && [ "$(whiptail --version)" != 'whiptail (newt): 0.52.13' ]
	then
		driver=whiptail
	elif available dialog
	then
		driver=dialog
	else
		driver=plain
	fi
	answer=''
	progress_max=''
	windowtitle="$1"
}

common_init()
{
	interactive=true
	talk=true
	force=false
	need_rollback=false
	need_ui_cleanup=false
	repackage=false
	tempdir=''

	trap cleanup 0 INT QUIT TERM
}

common_opt()
{
	case "$1" in
		--text)
			driver=plain
			;;
		--unattended)
			interactive=false
			driver=plain
			;;
		--quiet)
			talk=false
			interactive=false
			driver=plain
			;;
		--force)
			force=true
			;;
		*)
			return 1
	esac
}

# EOF_COMMON

version()
{
	ui_message "Opera - Fast and secure web browser and Internet suite

Opera is a small, fast, customizable, powerful and user-friendly web
browser, as well as an Internet suite, including an email client, an IRC
client, and web developer tools (Opera Dragonfly).

This script installs Opera 12.13 build 1734 for Linux on x86_64.

Copyright (c) 1995-2013 Opera Software ASA. All rights reserved."
}

usage()
{
	version
	cat <<EOF

Options:

    --text          Select plain-text user interface.

    --unattended    Ask no questions. Implies --text.
                    The --prefix option becomes mandatory.

    --quiet         Ask no questions and don't show progress.
                    Implies --text.

    --prefix /P     Specify installation directory. Opera will be
                    installed into /P/bin, /P/share and /P/lib.

    --user          Install for the current user. Default for non-root.
                    Alias for --prefix $HOME/.local.

    --system        Install for everybody. Default for root.
                    Alias for --prefix /usr/local.

    --name N        Use N for package name. Must either be "opera" or
                    begin with "opera-". Names of installed files and
                    directories will contain this string in place of
                    "opera". This allows to install several
                    versions of Opera side by side. The default is
                    "opera".

    --suffix S      Obsolete. Same as --name opera-S.

    --force         Ignore all kinds of errors and try to continue.

    --repackage R   Special mode for package maintainers. Extract files
                    into the staging directory R as if it were the
                    installation prefix, but prepare them to be
                    installed under the actual prefix. In this mode, no
                    finalizing actions, such as registration of menu
                    entries, are performed. Sanity checks are disabled.
                    Implies --unattended.

    --version       Show Opera version.

    --help          Show this message.
EOF
}

check_os()
{
	local name version arch res msg
	res=false
	name=$(uname -s)
	case "$name" in
		Linux)
			res=true
			;;
		*BSD)
			;;
	esac
	arch=$(uname -m)
	case "$arch" in
		i?86|i86pc)
			arch=i386
			;;
		amd64)
			arch=x86_64
			;;
	esac
	if [ "$arch" != x86_64 ]
	then
		res=false
	fi
	if ! $res
	then
		msg="You are running $name on $arch, but this package is intended for Linux on x86_64. If you choose to install it, the product may not work correctly."
		if $interactive
		then
			ui_warn "$msg"
		else
			ui_error "$msg"
		fi
	fi
}

check_package_manager()
{
	if available dpkg
	then
		ui_warn "Your system seems to support Debian-style packages. You might want to download and install a Debian package of Opera instead."
	elif available rpm
	then
		ui_warn "Your system seems to support RPM packages. You might want to download and install an RPM package of Opera instead."
	fi
}

install_file()
{
	local source dest existing tomake
	if [ -f $tempdir/damaged ] && ! $force
	then
		return 1
	fi
	source=$(use_suffix '' "$3")
	dest=$INTO/$(use_suffix "$SUFFIX" "$3")
	existing=$dest
	tomake=''
	while [ -n "$existing" -a ! -e "$existing" ]
	do
		tomake=$existing
		existing=${existing%/*}
	done
	if [ ! -d "$existing" -o "$dest" = "$existing" ]
	then
		if { rm -rf "$existing~" && mv "$existing" "$existing~"; } 2>$tempdir/error || $force
		then
			echo "mv '$existing~' '$existing'" >>$tempdir/rollback
			echo "rm -rf '$existing~'" >>$tempdir/commit
		else
			ui_error "Cannot make a backup copy of $existing -- see detailed error message below." $tempdir/error
			echo "$dest">>$tempdir/damaged
			return 1
		fi
	elif [ -n "$tomake" -a "$tomake" != "$dest" ]
	then
		if mkdir -p "${dest%/*}" 2>$tempdir/error || $force
		then
			echo "rm -rf '$tomake'" >>$tempdir/rollback
		else
			ui_error "Cannot create directory ${dest%/*} -- see detailed error message below." $tempdir/error
			echo "$dest">>$tempdir/damaged
			return 1
		fi
	fi
	case "$1" in
		N?)
			cp "$source" "$dest"
			;;
		L?)
			source=$(use_suffix "$SUFFIX" "$2")
			ln -s "$source" "$dest"
			;;
		P?)
			case "$dest" in
				*.gz)
					gzip -dc "$source" | process >"${dest%.gz}" && gzip -9 "${dest%.gz}"
					;;
				*)
					process <"$source" >"$dest"
					;;
			esac
			;;
		G?)
			generate_file "${source##*/}" | process >"$dest"
			;;
	esac 2>$tempdir/error || $force || {
		ui_error "Cannot install $dest -- see detailed error message below." $tempdir/error
		echo "$dest">>$tempdir/damaged
		return 1
	}
	case "$1" in
		?F)
			chmod 0644 "$dest"
			;;
		?X)
			chmod 0755 "$dest"
			;;
	esac 2>$tempdir/error || $force || {
		ui_error "Cannot install $dest -- see detailed error message below." $tempdir/error
		echo "$dest">>$tempdir/damaged
		return 1
	}
	ui_progress_advance
}

generate_file()
{
	case "$1" in
		opera)
			cat <<'EOF_generate_file'
#!/bin/sh
export OPERA_DIR=${OPERA_DIR:-@@{PREFIX}/share/opera@@{SUFFIX}}
export OPERA_PERSONALDIR=${OPERA_PERSONALDIR:-$HOME/.opera@@{SUFFIX}}
exec @@{PREFIX}/lib/opera@@{SUFFIX}/opera@@{SUFFIX} "$@"
EOF_generate_file
			;;
		uninstall-opera)
			sed -ne '1,/EOF_COMMON/p' "${0##*/}"
			cat <<EOF
PREFIX='$PREFIX'
SUFFIX='$SUFFIX'
EOF
			cat <<'EOF_generate_file'

usage()
{
	version
	cat <<EOF

Options:
    --text          Select plaintext user interface
    --unattended    Ask no questions
    --quiet         Ask no questions and don't show progress (implies --text)
    --force         Ignore all kinds of errors and try to continue
    --help          Show this message
EOF
}

uninstall_file()
{
	if $upgrade_mode
	then
		mv "$PREFIX/$3" "$PREFIX/$3~"
		echo "mv '$PREFIX/$3~' '$PREFIX/$3'" >>$install_tempdir/rollback
		echo "rm -f '$PREFIX/$3~'; rmdir -p '$PREFIX/${3%/*}' 2>/dev/null" >>$install_tempdir/commit
	else
		rm -f "$PREFIX/$3"
		rmdir -p "$PREFIX/${3%/*}" 2>/dev/null
	fi
	ui_progress_advance
}

common_init
ui_init 'Uninstalling Opera'

upgrade_mode=false

while [ -n "$1" ]
do
	common_opt "$1" || case "$1" in
		--upgrade)
			shift
			upgrade_mode=true
			talk=false
			interactive=false
			driver=plain
			force=true
			install_tempdir="$1"
			;;
		*)
			driver=plain
			usage
			exit
			;;
	esac
	shift
done

if $talk
then
	msg="This script uninstalls Opera 12.13 build 1734 for Linux on x86_64 installed as $PREFIX/bin/opera$SUFFIX."
	if $interactive
	then
		ui_warn "$msg"
	else
		ui_message "$msg"
	fi
fi

if [ ! -w $PREFIX ] && ! $force
then
	ui_error "You do not have write permissions for $PREFIX. Perhaps you should be uninstalling as root?"
fi

ui_progress_begin "Removing files"
iterate uninstall_file
ui_progress_end

if ! $upgrade_mode
then
	if $talk
	then
		ui_info "Finalizing uninstallation..."
	fi
	finalize_desktop
fi

if $talk
then
	ui_message "Opera has been uninstalled successfully. However, users' profile directories, which are by default ~/.opera$SUFFIX, have been left intact. You might want to delete them manually."
fi
EOF_generate_file
			;;
		*)
			return 1
	esac
}

rollback()
{
	ui_progress_begin "Undoing installation"
	iterate rollback_file
	ui_progress_end
	if [ -f $tempdir/rollback ]
	then
		. $tempdir/rollback
	fi
}

rollback_file()
{
	local dest
	dest=$INTO/$(use_suffix "$SUFFIX" "$3")
	rm -f "$dest"
	while [ -n "$dest" ]
	do
		dest=${dest%/*}
		case "$dest" in
			$INTO/*/opera*)
				rmdir "$dest" 2>/dev/null || break
				;;
		esac
	done
	ui_progress_advance
}

verify_file()
{
	local md5 file
	md5="$2"
	file=$(use_suffix '' "$3")
	case "$1" in
		[GL]?)
			ui_progress_advance
			return
			;;
	esac
	if [ ! -f "$file" ]
	then
		make_tempdir
		echo "$file" >>$tempdir/damaged
	elif [ -n "$md5prog" ]
	then
		if [ $(get_md5 "$file") != "$md5" ]
		then
			make_tempdir
			echo "$file" >>$tempdir/damaged
		fi
	fi
	ui_progress_advance
}

get_md5()
{
	if [ "$md5prog" = md5 ]
	then
		md5 -q "$1"
	else
		md5sum "$1" | { read sum file; echo $sum; }
	fi
}

use_suffix()
{
	echo "$2" | sed -e "s:@@{SUFFIX}:$1:g"
}

process()
{
	sed -e "s:@@{PREFIX}:$PREFIX:g;s:@@{SUFFIX}:$SUFFIX:g;s:@@{_SUFFIX}:$_SUFFIX:g;s:@@{USUFFIX}:$USUFFIX:g"
}

PREFIX=''
INTO=''
orig_pwd=$PWD
suffix_set=false

cd "${0%/*}"

common_init
ui_init 'Installing Opera'

if available md5
then
	md5prog=md5
elif available md5sum
then
	md5prog=md5sum
else
	md5prog=''
fi

while [ -n "$1" ]
do
	common_opt "$1" || case "$1" in
		--user)
			PREFIX=$HOME/.local
			;;
		--system)
			PREFIX=/usr/local
			;;
		--prefix)
			shift
			PREFIX="$1"
			;;
		--name)
			shift
			case "$1" in
				opera|opera-*)
					SUFFIX=${1#opera}
					;;
				*)
					ui_error '--name string must either be "opera" or begin with "opera-".'
					;;
			esac
			suffix_set=true
			;;
		--suffix)
			shift
			if [ -n "$1" ]
			then
				SUFFIX="-$1"
			else
				SUFFIX=''
			fi
			suffix_set=true
			;;
		--repackage)
			shift
			INTO="$1"
			repackage=true
			interactive=false
			driver=plain
			case "$INTO" in
				'')
					ui_error "--repackage needs a non-empty argument."
					;;
				/*)
					;;
				*)
					INTO=$orig_pwd/$INTO
					;;
			esac
			;;
		--version)
			driver=plain
			version
			exit
			;;
		*)
			driver=plain
			usage
			exit
			;;
	esac
	shift
done

if $talk
then
	version
fi

if ! $interactive && [ -z "$PREFIX" ]
then
	ui_error "Please specify --prefix, --user or --system for unattended installation."
fi

if ! $force && ! $repackage
then
	check_os
	if $interactive
	then
		check_package_manager
	fi
fi

if [ $(id -u) -eq 0 ]
then
	prefix_who="running as root"
	prefix_for="for all users"
	prefix_default=/usr/local
else
	prefix_who="not running as root"
	prefix_for="just for yourself"
	prefix_default=$HOME/.local
fi

while true
do
	if [ -n "$PREFIX" ]
	then
		answer=$PREFIX
		bad_answer=ui_error
	elif $interactive
	then
		ui_input "Please choose an installation directory. Opera will be installed in bin, share and lib directories under the specified location.

Since you are $prefix_who, you probably want to install Opera $prefix_for. The recommended installation prefix in this case is $prefix_default.

Press Enter to accept the recommended location, or specify a different prefix." || exit
		if [ -z "$answer" ]
		then
			answer=$prefix_default
		fi
		bad_answer=ui_message
	else
		ui_warn "Since you are $prefix_who, assuming you want to install Opera $prefix_for. Using $prefix_default as the installation prefix."
		answer=$prefix_default
		bad_answer=ui_error
	fi
	case "$answer" in
		''|[!/]*)
			$bad_answer "The installation prefix must begin with a slash."
			continue
			;;
		*' '*)
			$bad_answer "The installation prefix is not allowed to contain whitespace."
			continue
			;;
	esac
	while [ $answer != / -a "${answer%/}" != $answer ]
	do
		answer=${answer%/}
	done
	if $repackage
	then
		PREFIX=$answer
		break
	fi
	prefix_parent=$answer
	while [ ! -e "$prefix_parent" ]
	do
		prefix_parent=${prefix_parent%/*}
		if [ -z "$prefix_parent" ]
		then
			prefix_parent=/
		fi
	done
	if [ -w $prefix_parent ]
	then
		PREFIX=$answer
		break
	elif [ -d $prefix_parent ]
	then
		$bad_answer "You do not have write permissions for $prefix_parent. Perhaps you should be installing as root?"
	else
		$bad_answer "$prefix_parent is not a directory."
	fi
done

if [ -z "$INTO" ]
then
	INTO=$PREFIX
fi

while true
do
	if $suffix_set
	then
		answer=opera$SUFFIX
		bad_answer=ui_error
	elif $interactive
	then
		ui_input "You can install Opera with an alternative package name, so that the installation does not conflict with other installations of Opera you might have. For example, if you specify opera-12.13 as the package name, Opera files will be installed under $PREFIX/share/opera-12.13 and $PREFIX/lib/opera-12.13, and you will have to run $PREFIX/bin/opera-12.13 to run it. The default location of your profile directory will then be ~/.opera-12.13. If you want that, please enter the desired package name below. The name must be either \"opera\" or begin with \"opera-\". Only Latin letters, digits, periods and dashes are allowed.

Pressing Enter to accept the default and install as \"opera\" is a safe choice." || exit
		bad_answer=ui_message
	else
		answer=''
	fi
	case "$answer" in
		'')
			SUFFIX=''
			_SUFFIX=''
			USUFFIX=''
			break
			;;
		opera-*[!-.A-Za-z0-9]*)
			$bad_answer "The package name is only allowed to contain Latin letters, digits, periods and dashes."
			;;
		opera-*)
			SUFFIX=${answer#opera}
			_SUFFIX=' '$(echo ${answer#opera-} | cut -c 1 | tr a-z A-Z)${answer#opera-?}
			USUFFIX=-$(echo ${answer#opera-} | tr a-z A-Z)
			break
			;;
		opera)
			SUFFIX=''
			_SUFFIX=''
			USUFFIX=''
			break
			;;
		*)
			$bad_answer "The package name must either be \"opera\" or begin with \"opera-\"."
			;;
	esac
done

if ! $repackage && [ -f "$INTO/share/opera$SUFFIX/package-id.ini" ]
then
	upgrade_product=$(sed -ne '/^Product=\(.*\)$/s//\1/p' "$INTO/share/opera$SUFFIX/package-id.ini")
	upgrade_version=$(sed -ne '/^Version=\(.*\)$/s//\1/p' "$INTO/share/opera$SUFFIX/package-id.ini")
	upgrade_build=$(sed -ne '/^Build=\(.*\)$/s//\1/p' "$INTO/share/opera$SUFFIX/package-id.ini")
	if [ -z "$upgrade_product" ]
	then
		upgrade_product=opera
	fi
	if [ "$upgrade_product" = opera ]
	then
		upgrade_title='Opera'
	else
		upgrade_title='Opera '$(echo ${upgrade_product#opera-} | cut -c 1 | tr a-z A-Z)${answer#?}
	fi
	if [ -n "$upgrade_version" -a -n "$upgrade_build" ]
	then
		if [ "$upgrade_product" = opera -a "$upgrade_version" = 12.13 -a "$upgrade_build" = 1734 ]
		then
			msg="The chosen location already contains an installation of $upgrade_title 12.13 build 1734. The installer will attempt to refresh it."
		elif [ "$upgrade_product" = opera ]
		then
			msg="The chosen location contains an installation of $upgrade_title $upgrade_version build $upgrade_build. The installer will attempt to upgrade it to version 12.13 build 1734."
		else
			msg="The chosen location contains an installation of $upgrade_title $upgrade_version build $upgrade_build. The installer will attempt to replace it with Opera version 12.13 build 1734."
		fi
		if $interactive
		then
			ui_warn "$msg"
		elif $talk
		then
			ui_message "$msg"
		fi
	fi
fi

ui_progress_begin "Verifying package"
iterate verify_file
ui_progress_end

if [ -n "$tempdir" -a -f $tempdir/damaged ] && ! $force
then
	ui_error "The following files are missing or damaged:" $tempdir/damaged
fi

if ! $force && ! $repackage
then
	need_rollback=true
fi

make_tempdir

if ! $repackage && [ -x "$PREFIX/bin/uninstall-opera$SUFFIX" ]
then
	if $talk
	then
		ui_info "Removing old files..."
	fi
	"$PREFIX/bin/uninstall-opera$SUFFIX" --upgrade $tempdir
fi

ui_progress_begin "Installing files"
iterate install_file
ui_progress_end

need_rollback=false

if ! $repackage
then
	if $talk
	then
		ui_info "Finalizing installation..."
	fi
	if [ -f $tempdir/commit ]
	then
		. $tempdir/commit
	fi
	if $talk && [ "$driver" = plain ]
	then
		finalize_desktop
	else
		finalize_desktop >/dev/null 2>&1
	fi
fi

if $talk
then
	if [ -n "$upgrade_version" -a -n "$upgrade_build" ]
	then
		done='upgraded'
	else
		done='installed'
	fi
	if $repackage
	then
		ui_message "Opera has been installed successfully under $INTO as if it were $PREFIX."
	else
		ui_message "Opera has been $done successfully. To start, run $PREFIX/bin/opera$SUFFIX (you might want to add this location to your PATH).

To uninstall Opera, run $PREFIX/bin/uninstall-opera$SUFFIX."
	fi
fi
