diff options
author | Andreas Grapentin <andreas@grapentin.org> | 2018-01-03 18:56:09 +0000 |
---|---|---|
committer | Andreas Grapentin <andreas@grapentin.org> | 2018-01-03 18:58:04 +0000 |
commit | 880b240b2b4fbe3b1dfe239e90d800a389de78a7 (patch) | |
tree | f1ae9b3d5ddde1a13d0c9c71c07335c6ef77c33c /libre/calibre | |
parent | 86d498d37716f0e009e4d8f9308a8aac799bdeab (diff) | |
download | abslibre-880b240b2b4fbe3b1dfe239e90d800a389de78a7.tar.gz abslibre-880b240b2b4fbe3b1dfe239e90d800a389de78a7.tar.bz2 abslibre-880b240b2b4fbe3b1dfe239e90d800a389de78a7.zip |
libre/calibre: relaxed icu dependencies
Diffstat (limited to 'libre/calibre')
-rw-r--r-- | libre/calibre/PKGBUILD | 8 | ||||
-rw-r--r-- | libre/calibre/libre.patch | 4729 |
2 files changed, 4733 insertions, 4 deletions
diff --git a/libre/calibre/PKGBUILD b/libre/calibre/PKGBUILD index 79b2ccf98..123df5c85 100644 --- a/libre/calibre/PKGBUILD +++ b/libre/calibre/PKGBUILD @@ -12,7 +12,7 @@ pkgname=calibre pkgver=3.13.0 -pkgrel=1.parabola1 +pkgrel=1.parabola2 arch=(x86_64 i686 armv7h) pkgdesc="Ebook management application, without nonfree decompression engine for RAR archives" @@ -27,9 +27,9 @@ depends=(python2-six python2-dateutil python2-cssutils python2-dukpy python2-netifaces python2-cssselect python2-apsw qt5-webkit qt5-svg python2-regex python2-pygments mtdev desktop-file-utils gtk-update-icon-cache optipng udisks2) -depends_x86_64=(icu=60.1) -depends_i686=(icu=60.1) -depends_armv7h=(icu=60.1) +depends_x86_64=("icu>=60" "icu<61") +depends_i686=("icu>=60" "icu<61") +depends_armv7h=("icu>=60" "icu<61") makedepends=(qt5-x11extras xdg-utils) optdepends=('ipython2: to use calibre-debug' 'poppler: required for converting pdf to html') diff --git a/libre/calibre/libre.patch b/libre/calibre/libre.patch new file mode 100644 index 000000000..33f2c2bbd --- /dev/null +++ b/libre/calibre/libre.patch @@ -0,0 +1,4729 @@ +diff --git a/COPYRIGHT b/COPYRIGHT +index 933e771..3ac5369 100644 +--- a/COPYRIGHT ++++ b/COPYRIGHT +@@ -16,11 +16,6 @@ Files: resources/rapydscript/* + Copyright: Various + License: BSD + +-Files: src/unrar/* +-Copyright: Various +-License: Non-free +- Code can be distributed freely. +- + Files: src/html5lib/* + Copyright: Copyright (c) 2006-2013 James Graham and other contributors + License: Expat +diff --git a/Changelog.yaml b/Changelog.yaml +index e4e041d..8105931 100644 +--- a/Changelog.yaml ++++ b/Changelog.yaml +@@ -67,7 +67,7 @@ + + - title: "Save to disk: Dont error out if the user deletes all formats to be saved." + +- - title: "Linux binary: Fix calibre not starting on systems where QT_QPA_PLATFORM is set to use wayland" ++ - title: "GNU/Linux binary: Fix calibre not starting on systems where QT_QPA_PLATFORM is set to use wayland" + + improved recipes: + - The Economist +@@ -94,7 +94,7 @@ + bug fixes: + - title: "Fix a regression that caused clicking the clear button in the main search bar to not unapply the current search until enter is pressed." + +- - title: "Linux: Fix a regression causing calibre to fail to start on systems with no DBUS session bus" ++ - title: "GNU/Linux: Fix a regression causing calibre to fail to start on systems with no DBUS session bus" + + - title: "Browser viewer: Fix body font being forced to sans-serif, overriding in book and user stylesheet settings" + +@@ -134,7 +134,7 @@ + + - title: "Book details panel: Fix metadata field titles not being top aligned" + +- - title: "Linux: Fix long startup delay on systems that do not have a desktop notification service running" ++ - title: "GNU/Linux: Fix long startup delay on systems that do not have a desktop notification service running" + + - title: "3.11.1 fixes a couple of regression in 3.11.0 that broke configuring Get books and creating catalogs" + +@@ -245,12 +245,12 @@ + - title: "Book details popup window: Show the cover size in the bottom right corner if the option to show cover size in the Book details panel is set." + tickets: [1716520] + +- - title: "Linux: Fix regression that broke using calibre on some older VNC servers" ++ - title: "GNU/Linux: Fix regression that broke using calibre on some older VNC servers" + + - title: "Browser viewer: Do not fail if the book contains javascript that has errors." + tickets: [1715781] + +- - title: "Linux: Fix file open dialog on older KDE desktops not working correctly." ++ - title: "GNU/Linux: Fix file open dialog on older KDE desktops not working correctly." + tickets: [1715648] + + - title: "Update Ozon.ru metadata plugin for website changes." +@@ -262,7 +262,7 @@ + - title: "Conversion: Expand -epub-writing-mode to -webkit-writing-mode and writing-mode properties for maximum compatibility." + tickets: [1713509] + +- - title: "Linux: Fix SONY PRS-650 not being detected" ++ - title: "GNU/Linux: Fix SONY PRS-650 not being detected" + + improved recipes: + - The Hindu +@@ -313,9 +313,9 @@ + + - title: "Workaround for Qt bug that prevented using the shift and ctrl keys with the touchscreen" + +- - title: "Linux: fix native KDE file dialog not working on older systems" ++ - title: "GNU/Linux: fix native KDE file dialog not working on older systems" + +- - title: "Linux: Fix KDE dialogs not supporting multiple file name filter groups" ++ - title: "GNU/Linux: Fix KDE dialogs not supporting multiple file name filter groups" + + - title: "Fix libraries being sorted alphabetically by full path rather than just library name" + +@@ -340,7 +340,7 @@ + date: 2017-08-04 + + new features: +- - title: "Linux: Use native file dialogs via zenity or kdialog, if available" ++ - title: "GNU/Linux: Use native file dialogs via zenity or kdialog, if available" + + - title: "Copy to library: Add an action to show a dialog that allows for easy selection of libraries for copy/move. Useful when there are a large number of libraries to choose from." + tickets: [1706198] +@@ -519,7 +519,7 @@ + + - title: "Server: Fix timeout errors when using SSL (particularly common when running the server on windows)" + +- - title: "Linux: Fix slow mouse wheel scrolling in Cover grid because of Qt bug" ++ - title: "GNU/Linux: Fix slow mouse wheel scrolling in Cover grid because of Qt bug" + + - title: "Blacklist the iOS Reader applications and Marvin XD plugins as they were preventing calibre from starting up and they have not worked in a long time anyway, since Apple restricted USB access to their iOS devices" + +@@ -555,8 +555,6 @@ + - title: "Edit metadata dialog: Add buttons to easily set/clear Yes/no columns" + tickets: [1698331] + +- - title: "Support for RAR 5.0 format RAR and CBR files" +- + bug fixes: + - title: "Version 3.1.1 fixes a regression in 3.1.0 that prevented the standalone calibre-server.exe from working on Windows and macOS" + +@@ -3720,7 +3718,7 @@ + + - title: "Add books: Improve performance when adding large numbers of books at once" + +- - title: "Add books: Allow adding books from multiple ZIP/RAR archives, each containing many books, by right clicking on the Add books and choosing 'Add from archive'" ++ - title: "Add books: Allow adding books from multiple ZIP archives, each containing many books, by right clicking on the Add books and choosing 'Add from archive'" + + - title: "Metadata download: Prioritize results that have the same language as the current calibre user interface language" + +diff --git a/README.md b/README.md +index 584157f..df775a7 100644 +--- a/README.md ++++ b/README.md +@@ -3,17 +3,22 @@ calibre + + <img align="left" src="resources/images/lt.png?raw=true"/> + +-calibre is an e-book manager. It can view, convert, edit and catalog e-books +-in all of the major e-book formats. It can also talk to e-book reader +-devices. It can go out to the internet and fetch metadata for your books. +-It can download newspapers and convert them into e-books for convenient +-reading. It is cross platform, running on Linux, Windows and OS X. ++This is a fully-libre fork of calibre, an e-book manager. ++It can view, convert, edit and catalog e-books in all of the major e-book formats. ++It can also talk to e-book reader devices. It can go out to the internet and fetch ++metadata for your books. ++It can download newspapers and convert them into e-books for convenient ++reading. It is cross platform, running on GNU/Linux, Windows and OS X. + + For more information, see the [calibre About page](https://calibre-ebook.com/about) + + [![Build Status](https://api.travis-ci.org/kovidgoyal/calibre.svg)](https://travis-ci.org/kovidgoyal/calibre) + [![Build status](https://ci.appveyor.com/api/projects/status/v3nkfq0t3pse8lep?svg=true&passingText=windows%20OK&failingText=windows%20KO)](https://ci.appveyor.com/project/kovidgoyal/calibre) + ++<br> ++<br> ++<br> ++ + Screenshots + ------------- + [Screenshots page](https://calibre-ebook.com/demo) +@@ -34,12 +39,5 @@ Bugs + ------ + + Bug reports and feature requests should be made in the calibre bug tracker at [launchpad](https://bugs.launchpad.net/calibre). +-GitHub is only used for code hosting and pull requests. +- +-Support calibre +----------------- +- +-calibre is a result of the efforts of many volunteers from all over the world. +-If you find it useful, please consider contributing to support its development. +-[Donate to support calibre development](https://calibre-ebook.com/donate). ++If the bug is particular to this fork, then report it in the [Parabola Bug Tracker](https://labs.parabola.nu/projects) + +diff --git a/imgsrc/mimetypes/rar.svg a/imgsrc/mimetypes/rar.svg +deleted file mode 100644 +index 9b1f34e..0000000 +--- a/imgsrc/mimetypes/rar.svg ++++ /dev/null +@@ -1,2765 +0,0 @@ +-<?xml version="1.0" encoding="UTF-8" standalone="no"?> +-<!-- Created with Inkscape (http://www.inkscape.org/) --> +-<svg +- xmlns:i="http://ns.adobe.com/AdobeIllustrator/10.0/" +- xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/" +- xmlns:dc="http://purl.org/dc/elements/1.1/" +- xmlns:cc="http://web.resource.org/cc/" +- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" +- xmlns:svg="http://www.w3.org/2000/svg" +- xmlns="http://www.w3.org/2000/svg" +- xmlns:xlink="http://www.w3.org/1999/xlink" +- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" +- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" +- width="128" +- height="128" +- id="svg2606" +- sodipodi:version="0.32" +- inkscape:version="0.45.1" +- version="1.0" +- sodipodi:docname="application-x-ace.svg" +- inkscape:output_extension="org.inkscape.output.svg.inkscape" +- sodipodi:docbase="/home/david/sandbox"> +- <defs +- id="defs2608"> +- <linearGradient +- id="linearGradient4360"> +- <stop +- style="stop-color:#ffdfbf;stop-opacity:1;" +- offset="0" +- id="stop4362" /> +- <stop +- style="stop-color:#ffdfbf;stop-opacity:0;" +- offset="1" +- id="stop4364" /> +- </linearGradient> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#linearGradient4360" +- id="linearGradient4366" +- x1="52.25" +- y1="97.514183" +- x2="52.25" +- y2="22.061335" +- gradientUnits="userSpaceOnUse" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#linearGradient6548" +- id="linearGradient2422" +- gradientUnits="userSpaceOnUse" +- x1="13.769808" +- y1="5.4544477" +- x2="50.6035" +- y2="26.3501" +- gradientTransform="translate(100.96362,-31.039526)" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#linearGradient6534" +- id="linearGradient4378" +- gradientUnits="userSpaceOnUse" +- x1="90.050995" +- y1="4.5991001" +- x2="62.9014" +- y2="21.1523" +- gradientTransform="translate(100.96362,-31.039526)" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#linearGradient6524" +- id="linearGradient3400" +- gradientUnits="userSpaceOnUse" +- gradientTransform="translate(100.96362,-31.039526)" +- x1="63.573593" +- y1="16.737045" +- x2="59.166992" +- y2="24.58" /> +- <filter +- inkscape:collect="always" +- x="-0.073966118" +- width="1.1479322" +- y="-0.17647055" +- height="1.3529411" +- id="filter3400"> +- <feGaussianBlur +- inkscape:collect="always" +- stdDeviation="3.1565288" +- id="feGaussianBlur3402" /> +- </filter> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#linearGradient6524" +- id="linearGradient9793" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(1.0024038,0,0,1,-0.2163407,0)" +- x1="64.25" +- y1="45.3125" +- x2="73.5625" +- y2="43.8125" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_26_" +- id="linearGradient9791" +- gradientUnits="userSpaceOnUse" +- x1="0.6016" +- y1="60.5801" +- x2="1.1021" +- y2="60.5801" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_25_" +- id="linearGradient9789" +- gradientUnits="userSpaceOnUse" +- x1="2.1997" +- y1="60.7158" +- x2="3.198" +- y2="60.6601" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_24_" +- id="linearGradient9787" +- gradientUnits="userSpaceOnUse" +- x1="103.8984" +- y1="60.5801" +- x2="103.3984" +- y2="60.5801" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_23_" +- id="linearGradient9785" +- gradientUnits="userSpaceOnUse" +- x1="101.3027" +- y1="60.6592" +- x2="102.3008" +- y2="60.7148" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#linearGradient3329" +- id="linearGradient9779" +- gradientUnits="userSpaceOnUse" +- x1="45.35817" +- y1="9.0646334" +- x2="45.35817" +- y2="25.815258" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_17_" +- id="linearGradient9777" +- gradientUnits="userSpaceOnUse" +- x1="0.25" +- y1="13.2949" +- x2="104.25" +- y2="13.2949" /> +- <radialGradient +- inkscape:collect="always" +- xlink:href="#XMLID_15_" +- id="radialGradient9773" +- gradientUnits="userSpaceOnUse" +- cx="7.5" +- cy="8.3301" +- r="126.4133" /> +- <linearGradient +- id="XMLID_166_" +- gradientUnits="userSpaceOnUse" +- x1="63.106" +- y1="71.9766" +- x2="65.1059" +- y2="80.9765"> +- <stop +- offset="0.0506" +- style="stop-color:#FFFFFF" +- id="stop2629" /> +- <stop +- offset="1" +- style="stop-color:#D3D7CF" +- id="stop2631" /> +- <a:midPointStop +- offset="0.0506" +- style="stop-color:#FFFFFF" /> +- <a:midPointStop +- offset="0.5" +- style="stop-color:#FFFFFF" /> +- <a:midPointStop +- offset="1" +- style="stop-color:#D3D7CF" /> +- </linearGradient> +- <linearGradient +- id="XMLID_165_" +- gradientUnits="userSpaceOnUse" +- x1="62" +- y1="76" +- x2="66" +- y2="76"> +- <stop +- offset="0.0506" +- style="stop-color:#FFFFFF" +- id="stop2620" /> +- <stop +- offset="0.9326" +- style="stop-color:#D3D7CF" +- id="stop2622" /> +- <stop +- offset="1" +- style="stop-color:#888A85" +- id="stop2624" /> +- <a:midPointStop +- offset="0.0506" +- style="stop-color:#FFFFFF" /> +- <a:midPointStop +- offset="0.5" +- style="stop-color:#FFFFFF" /> +- <a:midPointStop +- offset="0.9326" +- style="stop-color:#D3D7CF" /> +- <a:midPointStop +- offset="0.5" +- style="stop-color:#D3D7CF" /> +- <a:midPointStop +- offset="1" +- style="stop-color:#888A85" /> +- </linearGradient> +- <linearGradient +- id="XMLID_164_" +- gradientUnits="userSpaceOnUse" +- x1="61.7065" +- y1="77.5322" +- x2="67.7616" +- y2="107.8077"> +- <stop +- offset="0" +- style="stop-color:#EEEEEC" +- id="stop2613" /> +- <stop +- offset="1" +- style="stop-color:#BABDB6" +- id="stop2615" /> +- <a:midPointStop +- offset="0" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="0.5" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="1" +- style="stop-color:#BABDB6" /> +- </linearGradient> +- <linearGradient +- id="XMLID_163_" +- gradientUnits="userSpaceOnUse" +- x1="61.3159" +- y1="83.0986" +- x2="68.3162" +- y2="101.0992"> +- <stop +- offset="0.0056" +- style="stop-color:#FFFFFF" +- id="stop2600" /> +- <stop +- offset="0.1352" +- style="stop-color:#F0F0F0" +- id="stop2602" /> +- <stop +- offset="0.384" +- style="stop-color:#CACAC9" +- id="stop2604" /> +- <stop +- offset="0.7233" +- style="stop-color:#8C8D8B" +- id="stop2606" /> +- <stop +- offset="1" +- style="stop-color:#555753" +- id="stop2608" /> +- <a:midPointStop +- offset="0.0056" +- style="stop-color:#FFFFFF" /> +- <a:midPointStop +- offset="0.5618" +- style="stop-color:#FFFFFF" /> +- <a:midPointStop +- offset="1" +- style="stop-color:#555753" /> +- </linearGradient> +- <linearGradient +- id="XMLID_162_" +- gradientUnits="userSpaceOnUse" +- x1="63.542" +- y1="74.0918" +- x2="64.5422" +- y2="79.093"> +- <stop +- offset="0" +- style="stop-color:#a9ada4;stop-opacity:1;" +- id="stop2593" /> +- <stop +- offset="1" +- style="stop-color:#3f403d;stop-opacity:1;" +- id="stop2595" /> +- <a:midPointStop +- offset="0" +- style="stop-color:#BABDB6" /> +- <a:midPointStop +- offset="0.5" +- style="stop-color:#BABDB6" /> +- <a:midPointStop +- offset="1" +- style="stop-color:#555753" /> +- </linearGradient> +- <linearGradient +- id="XMLID_161_" +- gradientUnits="userSpaceOnUse" +- x1="62.0503" +- y1="69.625" +- x2="67.0498" +- y2="83.6237"> +- <stop +- offset="0" +- style="stop-color:#FFFFFF" +- id="stop2574" /> +- <stop +- offset="0.1332" +- style="stop-color:#FAFAFA" +- id="stop2576" /> +- <stop +- offset="0.2876" +- style="stop-color:#ECEDEC" +- id="stop2578" /> +- <stop +- offset="0.4525" +- style="stop-color:#D5D6D5" +- id="stop2580" /> +- <stop +- offset="0.6249" +- style="stop-color:#B5B6B4" +- id="stop2582" /> +- <stop +- offset="0.8032" +- style="stop-color:#8C8D8A" +- id="stop2584" /> +- <stop +- offset="0.9838" +- style="stop-color:#5A5C58" +- id="stop2586" /> +- <stop +- offset="1" +- style="stop-color:#555753" +- id="stop2588" /> +- <a:midPointStop +- offset="0" +- style="stop-color:#FFFFFF" /> +- <a:midPointStop +- offset="0.6765" +- style="stop-color:#FFFFFF" /> +- <a:midPointStop +- offset="1" +- style="stop-color:#555753" /> +- </linearGradient> +- <linearGradient +- id="XMLID_160_" +- gradientUnits="userSpaceOnUse" +- x1="56.8906" +- y1="67.8857" +- x2="68.8911" +- y2="82.8864"> +- <stop +- offset="0" +- style="stop-color:#FFFFFF" +- id="stop2567" /> +- <stop +- offset="1" +- style="stop-color:#373836;stop-opacity:1;" +- id="stop2569" /> +- <a:midPointStop +- offset="0" +- style="stop-color:#FFFFFF" /> +- <a:midPointStop +- offset="0.5" +- style="stop-color:#FFFFFF" /> +- <a:midPointStop +- offset="1" +- style="stop-color:#555753" /> +- </linearGradient> +- <linearGradient +- id="XMLID_159_" +- gradientUnits="userSpaceOnUse" +- x1="60.3325" +- y1="67.6123" +- x2="68.4149" +- y2="103.9829"> +- <stop +- offset="0.0506" +- style="stop-color:#515151;stop-opacity:1;" +- id="stop2560" /> +- <stop +- offset="1" +- style="stop-color:#343633;stop-opacity:1;" +- id="stop2562" /> +- <a:midPointStop +- offset="0.0506" +- style="stop-color:#FFFFFF" /> +- <a:midPointStop +- offset="0.5" +- style="stop-color:#FFFFFF" /> +- <a:midPointStop +- offset="1" +- style="stop-color:#555753" /> +- </linearGradient> +- <linearGradient +- id="XMLID_143_" +- gradientUnits="userSpaceOnUse" +- x1="33.7886" +- y1="57.9995" +- x2="33.7886" +- y2="119.0001"> +- <stop +- offset="0.0506" +- style="stop-color:#EEEEEC" +- id="stop2497" /> +- <stop +- offset="1" +- style="stop-color:#888A85" +- id="stop2499" /> +- <a:midPointStop +- offset="0.0506" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="0.5" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="1" +- style="stop-color:#888A85" /> +- </linearGradient> +- <linearGradient +- id="XMLID_115_" +- gradientUnits="userSpaceOnUse" +- x1="84.0117" +- y1="28.52" +- x2="85.3436" +- y2="35.1793" +- gradientTransform="matrix(-0.2556 0.9668 0.9668 0.2556 25.5372 -35.9141)"> +- <stop +- offset="0.0506" +- style="stop-color:#EEEEEC" +- id="stop2301" /> +- <stop +- offset="1" +- style="stop-color:#888A85" +- id="stop2303" /> +- <a:midPointStop +- offset="0.0506" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="0.5" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="1" +- style="stop-color:#888A85" /> +- </linearGradient> +- <linearGradient +- id="XMLID_142_" +- gradientUnits="userSpaceOnUse" +- x1="41.0347" +- y1="58" +- x2="41.0347" +- y2="119.0007"> +- <stop +- offset="0.0506" +- style="stop-color:#EEEEEC" +- id="stop2490" /> +- <stop +- offset="1" +- style="stop-color:#888A85" +- id="stop2492" /> +- <a:midPointStop +- offset="0.0506" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="0.5" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="1" +- style="stop-color:#888A85" /> +- </linearGradient> +- <linearGradient +- id="XMLID_114_" +- gradientUnits="userSpaceOnUse" +- x1="83.3877" +- y1="36.4746" +- x2="84.7196" +- y2="43.1339" +- gradientTransform="matrix(-0.4243 0.9055 0.9055 0.4243 41.46 -36.3299)"> +- <stop +- offset="0.0506" +- style="stop-color:#EEEEEC" +- id="stop2294" /> +- <stop +- offset="1" +- style="stop-color:#888A85" +- id="stop2296" /> +- <a:midPointStop +- offset="0.0506" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="0.5" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="1" +- style="stop-color:#888A85" /> +- </linearGradient> +- <linearGradient +- id="XMLID_141_" +- gradientUnits="userSpaceOnUse" +- x1="48.5864" +- y1="57.9995" +- x2="48.5864" +- y2="118.9997"> +- <stop +- offset="0.0506" +- style="stop-color:#EEEEEC" +- id="stop2483" /> +- <stop +- offset="1" +- style="stop-color:#888A85" +- id="stop2485" /> +- <a:midPointStop +- offset="0.0506" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="0.5" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="1" +- style="stop-color:#888A85" /> +- </linearGradient> +- <linearGradient +- id="XMLID_113_" +- gradientUnits="userSpaceOnUse" +- x1="83.0635" +- y1="44.9131" +- x2="84.3951" +- y2="51.5712" +- gradientTransform="matrix(-0.5962 0.8028 0.8028 0.5962 60.4483 -34.8312)"> +- <stop +- offset="0.0506" +- style="stop-color:#EEEEEC" +- id="stop2287" /> +- <stop +- offset="1" +- style="stop-color:#888A85" +- id="stop2289" /> +- <a:midPointStop +- offset="0.0506" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="0.5" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="1" +- style="stop-color:#888A85" /> +- </linearGradient> +- <linearGradient +- id="XMLID_140_" +- gradientUnits="userSpaceOnUse" +- x1="55.313" +- y1="57.9995" +- x2="55.313" +- y2="119.0003"> +- <stop +- offset="0.0506" +- style="stop-color:#EEEEEC" +- id="stop2476" /> +- <stop +- offset="1" +- style="stop-color:#888A85" +- id="stop2478" /> +- <a:midPointStop +- offset="0.0506" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="0.5" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="1" +- style="stop-color:#888A85" /> +- </linearGradient> +- <linearGradient +- id="XMLID_112_" +- gradientUnits="userSpaceOnUse" +- x1="54.8887" +- y1="61.9019" +- x2="55.8886" +- y2="70.9013"> +- <stop +- offset="0.0506" +- style="stop-color:#EEEEEC" +- id="stop2280" /> +- <stop +- offset="1" +- style="stop-color:#888A85" +- id="stop2282" /> +- <a:midPointStop +- offset="0.0506" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="0.5" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="1" +- style="stop-color:#888A85" /> +- </linearGradient> +- <linearGradient +- id="XMLID_139_" +- gradientUnits="userSpaceOnUse" +- x1="59.3667" +- y1="57.9995" +- x2="59.3667" +- y2="119.0002"> +- <stop +- offset="0.0506" +- style="stop-color:#EEEEEC" +- id="stop2469" /> +- <stop +- offset="1" +- style="stop-color:#888A85" +- id="stop2471" /> +- <a:midPointStop +- offset="0.0506" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="0.5" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="1" +- style="stop-color:#888A85" /> +- </linearGradient> +- <linearGradient +- id="XMLID_111_" +- gradientUnits="userSpaceOnUse" +- x1="81.4268" +- y1="64.792" +- x2="82.7584" +- y2="71.4501" +- gradientTransform="matrix(-0.894 0.4481 0.4481 0.894 102.4965 -24.3783)"> +- <stop +- offset="0.0506" +- style="stop-color:#EEEEEC" +- id="stop2273" /> +- <stop +- offset="1" +- style="stop-color:#888A85" +- id="stop2275" /> +- <a:midPointStop +- offset="0.0506" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="0.5" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="1" +- style="stop-color:#888A85" /> +- </linearGradient> +- <linearGradient +- id="linearGradient3567"> +- <stop +- id="stop3569" +- offset="0" +- style="stop-color:#bbbecc;stop-opacity:0.94117647;" /> +- <stop +- id="stop3571" +- offset="1" +- style="stop-color:#363a52;stop-opacity:1;" /> +- </linearGradient> +- <linearGradient +- id="XMLID_123_" +- gradientUnits="userSpaceOnUse" +- x1="66.5293" +- y1="114.6494" +- x2="67.8614" +- y2="121.3099"> +- <stop +- offset="0.0506" +- style="stop-color:#EEEEEC" +- id="stop2357" /> +- <stop +- offset="1" +- style="stop-color:#888A85" +- id="stop2359" /> +- <a:midPointStop +- offset="0.0506" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="0.5" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="1" +- style="stop-color:#888A85" /> +- </linearGradient> +- <linearGradient +- id="XMLID_120_" +- gradientUnits="userSpaceOnUse" +- x1="72.5303" +- y1="110.6504" +- x2="73.8621" +- y2="117.3097" +- gradientTransform="matrix(-1 0 0 1 134 0)"> +- <stop +- offset="0.0506" +- style="stop-color:#EEEEEC" +- id="stop2336" /> +- <stop +- offset="1" +- style="stop-color:#888A85" +- id="stop2338" /> +- <a:midPointStop +- offset="0.0506" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="0.5" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="1" +- style="stop-color:#888A85" /> +- </linearGradient> +- <linearGradient +- id="XMLID_119_" +- gradientUnits="userSpaceOnUse" +- x1="66.5303" +- y1="106.6494" +- x2="67.8624" +- y2="113.3099"> +- <stop +- offset="0.0506" +- style="stop-color:#EEEEEC" +- id="stop2329" /> +- <stop +- offset="1" +- style="stop-color:#888A85" +- id="stop2331" /> +- <a:midPointStop +- offset="0.0506" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="0.5" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="1" +- style="stop-color:#888A85" /> +- </linearGradient> +- <linearGradient +- id="XMLID_122_" +- gradientUnits="userSpaceOnUse" +- x1="72.5293" +- y1="102.6484" +- x2="73.8619" +- y2="109.3113" +- gradientTransform="matrix(-1 0 0 1 134 0)"> +- <stop +- offset="0.0506" +- style="stop-color:#EEEEEC" +- id="stop2350" /> +- <stop +- offset="1" +- style="stop-color:#888A85" +- id="stop2352" /> +- <a:midPointStop +- offset="0.0506" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="0.5" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="1" +- style="stop-color:#888A85" /> +- </linearGradient> +- <linearGradient +- id="XMLID_121_" +- gradientUnits="userSpaceOnUse" +- x1="66.5303" +- y1="98.6494" +- x2="67.8624" +- y2="105.3099"> +- <stop +- offset="0.0506" +- style="stop-color:#EEEEEC" +- id="stop2343" /> +- <stop +- offset="1" +- style="stop-color:#888A85" +- id="stop2345" /> +- <a:midPointStop +- offset="0.0506" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="0.5" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="1" +- style="stop-color:#888A85" /> +- </linearGradient> +- <linearGradient +- id="XMLID_130_" +- gradientUnits="userSpaceOnUse" +- x1="72.5303" +- y1="94.6514" +- x2="73.8621" +- y2="101.3107" +- gradientTransform="matrix(-1 0 0 1 134 0)"> +- <stop +- offset="0.0506" +- style="stop-color:#EEEEEC" +- id="stop2406" /> +- <stop +- offset="1" +- style="stop-color:#888A85" +- id="stop2408" /> +- <a:midPointStop +- offset="0.0506" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="0.5" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="1" +- style="stop-color:#888A85" /> +- </linearGradient> +- <linearGradient +- id="XMLID_147_" +- gradientUnits="userSpaceOnUse" +- x1="67" +- y1="58.0005" +- x2="67" +- y2="119.0009"> +- <stop +- offset="0.0506" +- style="stop-color:#bdbec4;stop-opacity:1;" +- id="stop2525" /> +- <stop +- offset="1" +- style="stop-color:#ffffff;stop-opacity:1;" +- id="stop2527" /> +- <a:midPointStop +- offset="0.0506" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="0.5" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="1" +- style="stop-color:#888A85" /> +- </linearGradient> +- <linearGradient +- id="XMLID_129_" +- gradientUnits="userSpaceOnUse" +- x1="66.5303" +- y1="90.6494" +- x2="67.8624" +- y2="97.3099"> +- <stop +- offset="0.0506" +- style="stop-color:#EEEEEC" +- id="stop2399" /> +- <stop +- offset="1" +- style="stop-color:#888A85" +- id="stop2401" /> +- <a:midPointStop +- offset="0.0506" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="0.5" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="1" +- style="stop-color:#888A85" /> +- </linearGradient> +- <linearGradient +- id="XMLID_148_" +- gradientUnits="userSpaceOnUse" +- x1="60.9995" +- y1="58.0005" +- x2="60.9995" +- y2="119.0009"> +- <stop +- offset="0.0506" +- style="stop-color:#EEEEEC" +- id="stop2532" /> +- <stop +- offset="1" +- style="stop-color:#f3f3f2;stop-opacity:1;" +- id="stop2534" /> +- <a:midPointStop +- offset="0.0506" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="0.5" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="1" +- style="stop-color:#888A85" /> +- </linearGradient> +- <linearGradient +- id="XMLID_126_" +- gradientUnits="userSpaceOnUse" +- x1="72.5293" +- y1="86.6494" +- x2="73.8614" +- y2="93.3099" +- gradientTransform="matrix(-1 0 0 1 134 0)"> +- <stop +- offset="0.0506" +- style="stop-color:#EEEEEC" +- id="stop2378" /> +- <stop +- offset="1" +- style="stop-color:#888A85" +- id="stop2380" /> +- <a:midPointStop +- offset="0.0506" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="0.5" +- style="stop-color:#EEEEEC" /> +- <a:midPointStop +- offset="1" +- style="stop-color:#888A85" /> +- </linearGradient> +- <linearGradient +- id="linearGradient6642"> +- <stop +- style="stop-color:#616881;stop-opacity:0.94117647;" +- offset="0" +- id="stop6644" /> +- <stop +- style="stop-color:#c2c5d7;stop-opacity:1;" +- offset="1" +- id="stop6646" /> +- </linearGradient> +- <linearGradient +- y2="26.3501" +- x2="50.6035" +- y1="4.1035" +- x1="12.0713" +- gradientUnits="userSpaceOnUse" +- id="linearGradient6548"> +- <stop +- id="stop6550" +- style="stop-color:#AD9C80" +- offset="0.0118" /> +- <stop +- id="stop6552" +- style="stop-color:#FFE6BC" +- offset="0.04393823" /> +- <stop +- id="stop6554" +- style="stop-color:#C4B091" +- offset="0.07207061" /> +- <stop +- id="stop6556" +- style="stop-color:#DEC8A4" +- offset="0.1025845" /> +- <stop +- id="stop6558" +- style="stop-color:#B39E7C" +- offset="1" /> +- </linearGradient> +- <linearGradient +- y2="21.1523" +- x2="62.9014" +- y1="4.5991" +- x1="91.5723" +- gradientUnits="userSpaceOnUse" +- id="linearGradient6534"> +- <stop +- id="stop6536" +- style="stop-color:#AD9C80" +- offset="0.0118" /> +- <stop +- id="stop6538" +- style="stop-color:#FFE6BC" +- offset="0.05232069" /> +- <stop +- id="stop6540" +- style="stop-color:#C4B091" +- offset="0.06798933" /> +- <stop +- id="stop6542" +- style="stop-color:#DEC8A4" +- offset="0.11206073" /> +- <stop +- id="stop6544" +- style="stop-color:#B39E7C" +- offset="1" /> +- </linearGradient> +- <linearGradient +- inkscape:collect="always" +- id="linearGradient6524"> +- <stop +- style="stop-color:#000000;stop-opacity:1;" +- offset="0" +- id="stop6526" /> +- <stop +- style="stop-color:#000000;stop-opacity:0;" +- offset="1" +- id="stop6528" /> +- </linearGradient> +- <linearGradient +- id="linearGradient6505"> +- <stop +- style="stop-color:#000000;stop-opacity:1;" +- offset="0" +- id="stop6507" /> +- <stop +- id="stop6513" +- offset="1" +- style="stop-color:#000000;stop-opacity:0.49803922;" /> +- <stop +- style="stop-color:#000000;stop-opacity:0;" +- offset="1" +- id="stop6509" /> +- </linearGradient> +- <clipPath +- id="XMLID_27_"> +- <path +- d="M 53.057,56.968 C 53.067,56.925 53.076,56.882 53.082,56.839 C 53.09,56.795 53.096,56.752 53.1,56.707 C 53.105,56.663 53.109,56.619 53.112,56.574 C 53.114,56.529 53.115,56.483 53.115,56.438 C 53.115,56.483 53.114,56.529 53.112,56.574 C 53.109,56.619 53.105,56.663 53.1,56.707 C 53.096,56.752 53.09,56.795 53.082,56.839 C 53.075,56.882 53.066,56.925 53.057,56.968 z" +- enable-background="new " +- id="use189" /> +- </clipPath> +- <linearGradient +- id="XMLID_26_" +- gradientUnits="userSpaceOnUse" +- x1="0.6016" +- y1="60.5801" +- x2="1.1021" +- y2="60.5801"> +- <stop +- offset="0" +- style="stop-color:#544C3E" +- id="stop175" /> +- <stop +- offset="1" +- style="stop-color:#000000" +- id="stop177" /> +- </linearGradient> +- <linearGradient +- id="XMLID_25_" +- gradientUnits="userSpaceOnUse" +- x1="2.1997" +- y1="60.7158" +- x2="3.198" +- y2="60.6601"> +- <stop +- offset="0" +- style="stop-color:#B39E7C" +- id="stop168" /> +- <stop +- offset="1" +- style="stop-color:#544C3E" +- id="stop170" /> +- </linearGradient> +- <linearGradient +- id="XMLID_24_" +- gradientUnits="userSpaceOnUse" +- x1="103.8984" +- y1="60.5801" +- x2="103.3984" +- y2="60.5801"> +- <stop +- offset="0" +- style="stop-color:#544C3E" +- id="stop151" /> +- <stop +- offset="0.2162" +- style="stop-color:#50483B" +- id="stop153" /> +- <stop +- offset="0.4356" +- style="stop-color:#443D32" +- id="stop155" /> +- <stop +- offset="0.6567" +- style="stop-color:#2F2B23" +- id="stop157" /> +- <stop +- offset="0.8775" +- style="stop-color:#13110E" +- id="stop159" /> +- <stop +- offset="1" +- style="stop-color:#000000" +- id="stop161" /> +- </linearGradient> +- <linearGradient +- id="XMLID_23_" +- gradientUnits="userSpaceOnUse" +- x1="101.3027" +- y1="60.6592" +- x2="102.3008" +- y2="60.7148"> +- <stop +- offset="0" +- style="stop-color:#544C3E" +- id="stop144" /> +- <stop +- offset="1" +- style="stop-color:#B39E7C" +- id="stop146" /> +- </linearGradient> +- <linearGradient +- id="linearGradient3329"> +- <stop +- style="stop-color:#000000;stop-opacity:1;" +- offset="0" +- id="stop3331" /> +- <stop +- style="stop-color:#000000;stop-opacity:0;" +- offset="1" +- id="stop3333" /> +- </linearGradient> +- <linearGradient +- id="XMLID_17_" +- gradientUnits="userSpaceOnUse" +- x1="0.25" +- y1="13.2949" +- x2="104.25" +- y2="13.2949"> +- <stop +- offset="0" +- style="stop-color:#8F6B32" +- id="stop28" /> +- <stop +- offset="0.5" +- style="stop-color:#3e2e15;stop-opacity:1;" +- id="stop30" /> +- <stop +- offset="1" +- style="stop-color:#8F6B32" +- id="stop32" /> +- </linearGradient> +- <radialGradient +- id="XMLID_15_" +- cx="7.5" +- cy="8.3301" +- r="126.4133" +- gradientUnits="userSpaceOnUse"> +- <stop +- offset="0.2722" +- style="stop-color:#DBC298" +- id="stop4" /> +- <stop +- offset="0.4545" +- style="stop-color:#C7B08A" +- id="stop6" /> +- <stop +- offset="0.71829998" +- style="stop-color:#b99c6f;stop-opacity:1;" +- id="stop8" /> +- <stop +- offset="0.88169998" +- style="stop-color:#b09469;stop-opacity:1;" +- id="stop10" /> +- <stop +- offset="1" +- style="stop-color:#a48a5f;stop-opacity:1;" +- id="stop12" /> +- </radialGradient> +- <linearGradient +- id="linearGradient10207"> +- <stop +- style="stop-color:#a2a2a2;stop-opacity:1;" +- offset="0" +- id="stop10209" /> +- <stop +- style="stop-color:#ffffff;stop-opacity:1;" +- offset="1" +- id="stop10211" /> +- </linearGradient> +- <radialGradient +- id="XMLID_8_" +- cx="102" +- cy="112.3047" +- r="139.55859" +- gradientUnits="userSpaceOnUse"> +- <stop +- offset="0" +- style="stop-color:#b7b8b9;stop-opacity:1;" +- id="stop41" /> +- <stop +- offset="0.18851049" +- style="stop-color:#ECECEC" +- id="stop47" /> +- <stop +- offset="0.25718147" +- style="stop-color:#FAFAFA" +- id="stop49" /> +- <stop +- offset="0.30111277" +- style="stop-color:#FFFFFF" +- id="stop51" /> +- <stop +- offset="0.5313" +- style="stop-color:#FAFAFA" +- id="stop53" /> +- <stop +- offset="0.8449" +- style="stop-color:#EBECEC" +- id="stop55" /> +- <stop +- offset="1" +- style="stop-color:#E1E2E3" +- id="stop57" /> +- </radialGradient> +- <filter +- inkscape:collect="always" +- x="-0.19200002" +- width="1.3839999" +- y="-0.19199999" +- height="1.3839999" +- id="filter6697"> +- <feGaussianBlur +- inkscape:collect="always" +- stdDeviation="1.9447689" +- id="feGaussianBlur6699" /> +- </filter> +- <clipPath +- clipPathUnits="userSpaceOnUse" +- id="clipPath7084"> +- <path +- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" +- d="M 72,88 L 40,120 L 32,120 L 32,80 L 72,80 L 72,88 z" +- id="path7086" /> +- </clipPath> +- <radialGradient +- inkscape:collect="always" +- xlink:href="#XMLID_8_" +- id="radialGradient9437" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(1,0,0,0.9996653,2e-6,3.0160848e-3)" +- cx="102" +- cy="112.3047" +- r="139.55859" /> +- <filter +- inkscape:collect="always" +- id="filter2770"> +- <feGaussianBlur +- inkscape:collect="always" +- stdDeviation="2.0786429" +- id="feGaussianBlur2772" /> +- </filter> +- <radialGradient +- inkscape:collect="always" +- xlink:href="#linearGradient6505" +- id="radialGradient6633" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(1,0,0,0.2156863,0,82.352941)" +- cx="64" +- cy="105" +- fx="64" +- fy="105" +- r="51" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#linearGradient6642" +- id="linearGradient8163" +- gradientUnits="userSpaceOnUse" +- x1="68.325905" +- y1="36" +- x2="64" +- y2="120" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_126_" +- id="linearGradient8165" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(-0.768261,0,0,0.768261,117.6531,-22.96145)" +- x1="72.5293" +- y1="86.6494" +- x2="73.8614" +- y2="93.3099" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_148_" +- id="linearGradient8167" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="60.9995" +- y1="58.0005" +- x2="60.9995" +- y2="119.0009" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_129_" +- id="linearGradient8169" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="66.5303" +- y1="90.6494" +- x2="67.8624" +- y2="97.3099" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_147_" +- id="linearGradient8171" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="67" +- y1="58.0005" +- x2="67" +- y2="119.0009" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_130_" +- id="linearGradient8173" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(-0.768261,0,0,0.768261,117.6531,-22.96145)" +- x1="72.5303" +- y1="94.6514" +- x2="73.8621" +- y2="101.3107" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_148_" +- id="linearGradient8175" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="60.9995" +- y1="58.0005" +- x2="60.9995" +- y2="119.0009" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_121_" +- id="linearGradient8177" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="66.5303" +- y1="98.6494" +- x2="67.8624" +- y2="105.3099" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_147_" +- id="linearGradient8179" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="67" +- y1="58.0005" +- x2="67" +- y2="119.0009" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_122_" +- id="linearGradient8181" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(-0.768261,0,0,0.768261,117.6531,-22.96145)" +- x1="72.5293" +- y1="102.6484" +- x2="73.8619" +- y2="109.3113" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_148_" +- id="linearGradient8183" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="60.9995" +- y1="58.0005" +- x2="60.9995" +- y2="119.0009" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_119_" +- id="linearGradient8185" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="66.5303" +- y1="106.6494" +- x2="67.8624" +- y2="113.3099" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_147_" +- id="linearGradient8187" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="67" +- y1="58.0005" +- x2="67" +- y2="119.0009" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_120_" +- id="linearGradient8189" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(-0.768261,0,0,0.768261,117.6531,-22.96145)" +- x1="72.5303" +- y1="110.6504" +- x2="73.8621" +- y2="117.3097" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_148_" +- id="linearGradient8191" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="60.9995" +- y1="58.0005" +- x2="60.9995" +- y2="119.0009" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_123_" +- id="linearGradient8193" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="66.5293" +- y1="114.6494" +- x2="67.8614" +- y2="121.3099" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_147_" +- id="linearGradient8195" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="67" +- y1="58.0005" +- x2="67" +- y2="119.0009" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_130_" +- id="linearGradient8197" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(-0.768261,0,0,0.768261,117.6531,-3.96145)" +- x1="72.5303" +- y1="94.6514" +- x2="73.8621" +- y2="101.3107" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_148_" +- id="linearGradient8199" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-3.96145)" +- x1="60.9995" +- y1="58.0005" +- x2="60.9995" +- y2="119.0009" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_121_" +- id="linearGradient8201" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-3.96145)" +- x1="66.5303" +- y1="98.6494" +- x2="67.8624" +- y2="105.3099" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_147_" +- id="linearGradient8203" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-3.96145)" +- x1="67" +- y1="58.0005" +- x2="67" +- y2="119.0009" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_122_" +- id="linearGradient8205" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(-0.768261,0,0,0.768261,117.6531,-3.96145)" +- x1="72.5293" +- y1="102.6484" +- x2="73.8619" +- y2="109.3113" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_148_" +- id="linearGradient8207" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-3.96145)" +- x1="60.9995" +- y1="58.0005" +- x2="60.9995" +- y2="119.0009" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_119_" +- id="linearGradient8209" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-3.96145)" +- x1="66.5303" +- y1="106.6494" +- x2="67.8624" +- y2="113.3099" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_147_" +- id="linearGradient8211" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-3.96145)" +- x1="67" +- y1="58.0005" +- x2="67" +- y2="119.0009" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_120_" +- id="linearGradient8213" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(-0.768261,0,0,0.768261,117.6531,-3.96145)" +- x1="72.5303" +- y1="110.6504" +- x2="73.8621" +- y2="117.3097" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_148_" +- id="linearGradient8215" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-3.96145)" +- x1="60.9995" +- y1="58.0005" +- x2="60.9995" +- y2="119.0009" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_123_" +- id="linearGradient8217" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-3.96145)" +- x1="66.5293" +- y1="114.6494" +- x2="67.8614" +- y2="121.3099" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_147_" +- id="linearGradient8219" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-3.96145)" +- x1="67" +- y1="58.0005" +- x2="67" +- y2="119.0009" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_120_" +- id="linearGradient8221" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(-0.768261,0,0,0.768261,117.6531,2.03855)" +- x1="72.5303" +- y1="110.6504" +- x2="73.8621" +- y2="117.3097" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_148_" +- id="linearGradient8223" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,2.03855)" +- x1="60.9995" +- y1="58.0005" +- x2="60.9995" +- y2="119.0009" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_123_" +- id="linearGradient8225" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,2.03855)" +- x1="66.5293" +- y1="114.6494" +- x2="67.8614" +- y2="121.3099" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_147_" +- id="linearGradient8227" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,2.03855)" +- x1="67" +- y1="58.0005" +- x2="67" +- y2="119.0009" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_120_" +- id="linearGradient8229" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(-0.768261,0,0,0.768261,117.6531,8.03855)" +- x1="72.5303" +- y1="110.6504" +- x2="73.8621" +- y2="117.3097" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_148_" +- id="linearGradient8231" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,8.03855)" +- x1="60.9995" +- y1="58.0005" +- x2="60.9995" +- y2="119.0009" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#linearGradient3567" +- id="linearGradient8233" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(1,0,0,-1,0,140)" +- x1="64" +- y1="58.807674" +- x2="64" +- y2="96.377762" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_111_" +- id="linearGradient8235" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(-0.686825,0.344258,0.344258,0.686825,93.45016,-41.69035)" +- x1="81.4268" +- y1="64.792" +- x2="82.7584" +- y2="71.4501" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_139_" +- id="linearGradient8237" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="59.3667" +- y1="57.9995" +- x2="59.3667" +- y2="119.0002" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_112_" +- id="linearGradient8239" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="54.8887" +- y1="61.9019" +- x2="55.8886" +- y2="70.9013" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_140_" +- id="linearGradient8241" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="55.313" +- y1="57.9995" +- x2="55.313" +- y2="119.0003" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_113_" +- id="linearGradient8243" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(-0.458037,0.61676,0.61676,0.458037,61.14617,-49.7209)" +- x1="83.0635" +- y1="44.9131" +- x2="84.3951" +- y2="51.5712" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_141_" +- id="linearGradient8245" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="48.5864" +- y1="57.9995" +- x2="48.5864" +- y2="118.9997" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_114_" +- id="linearGradient8247" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(-0.325973,0.69566,0.69566,0.325973,46.5582,-50.8723)" +- x1="83.3877" +- y1="36.4746" +- x2="84.7196" +- y2="43.1339" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_142_" +- id="linearGradient8249" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="41.0347" +- y1="58" +- x2="41.0347" +- y2="119.0007" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_111_" +- id="linearGradient8251" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(-0.686825,0.344258,0.344258,0.686825,93.45016,-41.69035)" +- x1="81.4268" +- y1="64.792" +- x2="82.7584" +- y2="71.4501" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_139_" +- id="linearGradient8253" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="59.3667" +- y1="57.9995" +- x2="59.3667" +- y2="119.0002" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_112_" +- id="linearGradient8255" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="54.8887" +- y1="61.9019" +- x2="55.8886" +- y2="70.9013" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_140_" +- id="linearGradient8257" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="55.313" +- y1="57.9995" +- x2="55.313" +- y2="119.0003" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_113_" +- id="linearGradient8259" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(-0.458037,0.61676,0.61676,0.458037,61.14617,-49.7209)" +- x1="83.0635" +- y1="44.9131" +- x2="84.3951" +- y2="51.5712" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_141_" +- id="linearGradient8261" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="48.5864" +- y1="57.9995" +- x2="48.5864" +- y2="118.9997" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_114_" +- id="linearGradient8263" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(-0.325973,0.69566,0.69566,0.325973,46.5582,-50.8723)" +- x1="83.3877" +- y1="36.4746" +- x2="84.7196" +- y2="43.1339" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_142_" +- id="linearGradient8265" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="41.0347" +- y1="58" +- x2="41.0347" +- y2="119.0007" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_115_" +- id="linearGradient8267" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(-0.196368,0.742755,0.742755,0.196368,34.3253,-50.55285)" +- x1="84.0117" +- y1="28.52" +- x2="85.3436" +- y2="35.1793" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_143_" +- id="linearGradient8269" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="33.7886" +- y1="57.9995" +- x2="33.7886" +- y2="119.0001" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_159_" +- id="linearGradient8271" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="60.3325" +- y1="67.6123" +- x2="68.4149" +- y2="103.9829" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_160_" +- id="linearGradient8273" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="56.8906" +- y1="67.8857" +- x2="68.8911" +- y2="82.8864" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_161_" +- id="linearGradient8275" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="62.0503" +- y1="69.625" +- x2="67.0498" +- y2="83.6237" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_162_" +- id="linearGradient8277" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="63.542" +- y1="74.0918" +- x2="64.5422" +- y2="79.093" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_163_" +- id="linearGradient8279" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="61.3159" +- y1="83.0986" +- x2="68.3162" +- y2="101.0992" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_164_" +- id="linearGradient8281" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="61.7065" +- y1="77.5322" +- x2="67.7616" +- y2="107.8077" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_165_" +- id="linearGradient8283" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="62" +- y1="76" +- x2="66" +- y2="76" /> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#XMLID_166_" +- id="linearGradient8285" +- gradientUnits="userSpaceOnUse" +- gradientTransform="matrix(0.768261,0,0,0.768261,14.7061,-22.96145)" +- x1="63.106" +- y1="71.9766" +- x2="65.1059" +- y2="80.9765" /> +- <filter +- inkscape:collect="always" +- id="filter8342"> +- <feGaussianBlur +- inkscape:collect="always" +- stdDeviation="0.41168267" +- id="feGaussianBlur8344" /> +- </filter> +- <filter +- inkscape:collect="always" +- x="-0.059497853" +- width="1.1189957" +- y="-0.35594591" +- height="1.7118918" +- id="filter8354"> +- <feGaussianBlur +- inkscape:collect="always" +- stdDeviation="0.2278828" +- id="feGaussianBlur8356" /> +- </filter> +- <linearGradient +- inkscape:collect="always" +- xlink:href="#linearGradient10207" +- id="linearGradient3416" +- gradientUnits="userSpaceOnUse" +- gradientTransform="translate(10,0)" +- x1="98.617439" +- y1="106.41443" +- x2="91.228737" +- y2="99.254974" /> +- </defs> +- <sodipodi:namedview +- id="base" +- pagecolor="#ffffff" +- bordercolor="#666666" +- borderopacity="1.0" +- inkscape:pageopacity="0.0" +- inkscape:pageshadow="2" +- inkscape:zoom="2.8284271" +- inkscape:cx="63.894445" +- inkscape:cy="73.240566" +- inkscape:document-units="px" +- inkscape:current-layer="layer1" +- width="128px" +- height="128px" +- gridspacingx="4px" +- gridspacingy="4px" +- gridempspacing="2" +- showgrid="true" +- inkscape:grid-points="true" +- showguides="true" +- inkscape:guide-bbox="true" +- inkscape:window-width="1016" +- inkscape:window-height="692" +- inkscape:window-x="1" +- inkscape:window-y="1" +- objecttolerance="10000" /> +- <metadata +- id="metadata2611"> +- <rdf:RDF> +- <cc:Work +- rdf:about=""> +- <dc:format>image/svg+xml</dc:format> +- <dc:type +- rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> +- </cc:Work> +- </rdf:RDF> +- </metadata> +- <g +- inkscape:label="Livello 1" +- inkscape:groupmode="layer" +- id="layer1"> +- <path +- style="opacity:0.5;fill:#000000;fill-opacity:1;filter:url(#filter2770)" +- d="M 16,8 L 16,120 C 16,120 79.15625,120 79.15625,120 L 79.1875,120 C 79.187503,120 91.09375,110.09375 96.59375,104.59375 C 102.09375,99.09375 112,87.1875 112,87.1875 L 112,87.15625 L 112,8 L 16,8 z" +- id="path7865" +- sodipodi:nodetypes="csccscccc" +- transform="matrix(1.0416667,0,0,1.0267857,-2.6666667,-1.2142891)" /> +- <path +- style="fill:#ffffff;fill-opacity:1" +- d="M 16.000001,8 L 16,120 C 16,120 79.146418,120 79.146418,120 L 112,87.14642 L 112,8 L 16.000001,8 z" +- id="path34" +- sodipodi:nodetypes="cccccc" /> +- <path +- style="fill:url(#radialGradient9437);fill-opacity:1" +- d="M 18.000002,9.0000034 C 17.449002,9.0000034 17.000002,9.4488534 17.000002,9.9996684 L 17.000002,117.96352 C 17.000002,118.51533 17.449002,118.96318 18.000002,118.96318 L 77.171999,118.96318 C 77.434999,118.96318 79.934679,119.08131 80.12068,118.89438 L 110.707,88.094202 C 110.894,87.907264 111,85.40942 111,85.146508 L 111,9.9996684 C 111,9.4488534 110.552,9.0000034 110,9.0000034 L 18.000002,9.0000034 z" +- id="path59" +- sodipodi:nodetypes="ccccccccccc" /> +- <g +- id="g3298" +- transform="translate(-7.2118459e-7,7.4211846e-6)"> +- <path +- style="opacity:0.6;fill:url(#radialGradient6633);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;filter:url(#filter3400)" +- d="M 18.520833,73.665304 L 109.47917,73.665304 L 115,112.75 C 115,114.5505 113.42971,116 111.47917,116 L 16.520833,116 C 14.570292,116 13,114.5505 13,112.75 C 13,112.75 16.570292,73.665304 18.520833,73.665304 z " +- id="rect4744" +- sodipodi:nodetypes="ccccccc" +- transform="matrix(0.6251619,0,0,0.3488041,23.989638,50.421975)" /> +- <g +- transform="matrix(1.1428571,0,0,1.1428571,-11.42857,-12.571431)" +- id="g9722"> +- <g +- id="g9650" +- transform="matrix(1.0769231,0,0,1.0769231,-2.9230769,-6.7692307)"> +- <g +- transform="matrix(0.5,0,0,0.4969956,-12.60681,55.426509)" +- id="g6413"> +- <polygon +- points="104.25,24.795 100.25,96.58 4.25,96.58 0.25,24.795 104.25,24.795 " +- id="polygon14" +- style="fill:url(#radialGradient9773)" +- transform="translate(100.96362,-31.039526)" /> +- <path +- sodipodi:nodetypes="cccccc" +- id="polygon34" +- d="M 52.25,25.795 L 0.25,24.795 L 32.5,0.795 L 72,0.795 L 104.25,24.795 L 52.25,25.795 z " +- style="fill:url(#linearGradient9777)" +- transform="translate(100.96362,-31.039526)" /> +- <path +- sodipodi:nodetypes="cccccc" +- id="polygon6516" +- d="M 52.25,25.795 L 0.25,24.795 L 47.125,5.6994701 L 52.499999,5.6994701 L 104.25,24.795 L 52.25,25.795 z " +- style="fill:url(#linearGradient9779);fill-opacity:1" +- transform="translate(100.96362,-31.039526)" /> +- <path +- id="path2427" +- d="M 153.21362,-16.326115 L 189.05962,-12.476469 L 205.21362,-6.459526 L 153.21362,-9.1743493 L 153.21362,-16.326115 z " +- style="fill:url(#linearGradient3400);fill-opacity:1" +- sodipodi:nodetypes="ccccc" /> +- <path +- sodipodi:nodetypes="ccccc" +- style="fill:url(#linearGradient4378)" +- d="M 153.21362,-34.309172 L 189.05962,-30.459526 L 205.21362,-6.459526 L 153.21362,-12.443996 L 153.21362,-34.309172 z " +- id="polygon49" /> +- <path +- sodipodi:nodetypes="ccccc" +- id="polygon69" +- d="M 153.21362,-17.22271 L 101.21362,-6.459526 L 117.36962,-30.459526 L 153.21362,-39.087885 L 153.21362,-17.22271 z " +- style="fill:url(#linearGradient2422)" /> +- <path +- d="" +- id="path71" +- style="fill:#eeeeec" /> +- <g +- id="g141" +- transform="translate(100.96362,-31.039526)"> +- <linearGradient +- id="linearGradient2496" +- gradientUnits="userSpaceOnUse" +- x1="101.3027" +- y1="60.659199" +- x2="102.3008" +- y2="60.714802"> +- <stop +- offset="0" +- style="stop-color:#544C3E" +- id="stop2498" /> +- <stop +- offset="1" +- style="stop-color:#B39E7C" +- id="stop2500" /> +- </linearGradient> +- <path +- d="M 99.36,95.555 C 99.33,96.104 99.529,96.566 99.803,96.58 C 100.077,96.594 100.327,96.158 100.358,95.609 L 104.247,25.821 C 104.277,25.272 104.078,24.81 103.804,24.795 C 103.53,24.78 103.28,25.216 103.249,25.766 L 99.36,95.555 z " +- id="path148" +- style="fill:url(#linearGradient9785)" /> +- <linearGradient +- id="linearGradient2503" +- gradientUnits="userSpaceOnUse" +- x1="103.8984" +- y1="60.580101" +- x2="103.3984" +- y2="60.580101"> +- <stop +- offset="0" +- style="stop-color:#544C3E" +- id="stop2505" /> +- <stop +- offset="0.2162" +- style="stop-color:#50483B" +- id="stop2507" /> +- <stop +- offset="0.4356" +- style="stop-color:#443D32" +- id="stop2509" /> +- <stop +- offset="0.6567" +- style="stop-color:#2F2B23" +- id="stop2511" /> +- <stop +- offset="0.8775" +- style="stop-color:#13110E" +- id="stop2513" /> +- <stop +- offset="1" +- style="stop-color:#000000" +- id="stop2515" /> +- </linearGradient> +- <path +- d="M 101.281,65.58 L 101.781,65.58 C 101.818,64.915 101.855,64.248 101.892,63.58 L 101.392,63.58 L 101.281,65.58 z M 100.612,77.58 L 101.113,77.58 C 101.149,76.923 101.186,76.256 101.224,75.58 L 100.723,75.58 L 100.612,77.58 z M 101.058,69.58 L 101.559,69.58 C 101.596,68.917 101.633,68.25 101.67,67.58 L 101.17,67.58 L 101.058,69.58 z M 100.835,73.58 L 101.336,73.58 C 101.372,72.92 101.41,72.253 101.447,71.58 L 100.946,71.58 L 100.835,73.58 z M 99.943,89.58 L 100.444,89.58 C 100.478,88.952 100.515,88.285 100.555,87.58 L 100.054,87.58 L 99.943,89.58 z M 99.721,93.58 L 100.221,93.58 C 100.252,93.018 100.29,92.346 100.332,91.58 L 99.832,91.58 L 99.721,93.58 z M 100.166,85.58 L 100.667,85.58 C 100.703,84.935 100.74,84.268 100.778,83.58 L 100.277,83.58 L 100.166,85.58 z M 100.39,81.58 L 100.89,81.58 C 100.926,80.928 100.963,80.261 101.001,79.58 L 100.501,79.58 L 100.39,81.58 z M 101.727,57.58 L 102.227,57.58 C 102.265,56.911 102.302,56.244 102.339,55.58 L 101.838,55.58 L 101.727,57.58 z M 101.504,61.58 L 102.004,61.58 C 102.041,60.913 102.078,60.246 102.115,59.58 L 101.615,59.58 L 101.504,61.58 z M 102.841,37.58 L 103.342,37.58 C 103.38,36.891 103.417,36.223 103.453,35.58 L 102.952,35.58 L 102.841,37.58 z M 103.064,33.58 L 103.564,33.58 C 103.603,32.873 103.64,32.205 103.675,31.58 L 103.175,31.58 L 103.064,33.58 z M 103.398,27.58 L 103.287,29.58 L 103.787,29.58 C 103.83,28.802 103.868,28.132 103.898,27.58 L 103.398,27.58 z M 102.618,41.58 L 103.119,41.58 C 103.156,40.898 103.193,40.231 103.23,39.58 L 102.729,39.58 L 102.618,41.58 z M 101.949,53.58 L 102.45,53.58 C 102.487,52.909 102.524,52.242 102.561,51.58 L 102.06,51.58 L 101.949,53.58 z M 102.396,45.58 L 102.896,45.58 C 102.934,44.903 102.971,44.236 103.008,43.58 L 102.507,43.58 L 102.396,45.58 z M 102.172,49.58 L 102.673,49.58 C 102.711,48.906 102.748,48.24 102.784,47.58 L 102.283,47.58 L 102.172,49.58 z " +- id="path163" +- style="opacity:0.5;fill:url(#linearGradient9787)" /> +- </g> +- <g +- id="g165" +- transform="translate(100.96362,-31.039526)"> +- <linearGradient +- id="linearGradient2519" +- gradientUnits="userSpaceOnUse" +- x1="2.1997001" +- y1="60.715801" +- x2="3.198" +- y2="60.660099"> +- <stop +- offset="0" +- style="stop-color:#B39E7C" +- id="stop2521" /> +- <stop +- offset="1" +- style="stop-color:#544C3E" +- id="stop2523" /> +- </linearGradient> +- <path +- d="M 5.14,95.555 C 5.171,96.104 4.971,96.566 4.697,96.58 C 4.423,96.594 4.174,96.158 4.142,95.609 L 0.253,25.821 C 0.223,25.272 0.422,24.81 0.696,24.795 C 0.97,24.78 1.22,25.216 1.251,25.766 L 5.14,95.555 z " +- id="path172" +- style="fill:url(#linearGradient9789)" /> +- <linearGradient +- id="linearGradient2526" +- gradientUnits="userSpaceOnUse" +- x1="0.60159999" +- y1="60.580101" +- x2="1.1021" +- y2="60.580101"> +- <stop +- offset="0" +- style="stop-color:#544C3E" +- id="stop2528" /> +- <stop +- offset="1" +- style="stop-color:#000000" +- id="stop2530" /> +- </linearGradient> +- <path +- d="M 3.331,67.58 L 2.831,67.58 C 2.868,68.25 2.905,68.917 2.942,69.58 L 3.442,69.58 L 3.331,67.58 z M 3.554,71.58 L 3.054,71.58 C 3.092,72.253 3.129,72.92 3.166,73.58 L 3.666,73.58 L 3.554,71.58 z M 3.108,63.58 L 2.608,63.58 C 2.645,64.248 2.683,64.915 2.719,65.58 L 3.219,65.58 L 3.108,63.58 z M 3.776,75.58 L 3.276,75.58 C 3.314,76.256 3.351,76.923 3.387,77.58 L 3.887,77.58 L 3.776,75.58 z M 4,79.58 L 3.5,79.58 C 3.538,80.261 3.575,80.928 3.611,81.58 L 4.111,81.58 L 4,79.58 z M 2.885,59.58 L 2.385,59.58 C 2.422,60.246 2.459,60.913 2.496,61.58 L 2.996,61.58 L 2.885,59.58 z M 4.222,83.58 L 3.722,83.58 C 3.761,84.268 3.798,84.935 3.834,85.58 L 4.334,85.58 L 4.222,83.58 z M 4.445,87.58 L 3.945,87.58 C 3.985,88.285 4.022,88.952 4.056,89.58 L 4.556,89.58 L 4.445,87.58 z M 4.668,91.58 L 4.168,91.58 C 4.21,92.346 4.248,93.018 4.279,93.58 L 4.779,93.58 L 4.668,91.58 z M 1.771,39.58 L 1.271,39.58 C 1.307,40.231 1.344,40.898 1.382,41.58 L 1.882,41.58 L 1.771,39.58 z M 2.662,55.58 L 2.162,55.58 C 2.199,56.244 2.236,56.911 2.274,57.58 L 2.774,57.58 L 2.662,55.58 z M 1.548,35.58 L 1.048,35.58 C 1.084,36.223 1.121,36.891 1.159,37.58 L 1.659,37.58 L 1.548,35.58 z M 1.102,27.58 L 0.602,27.58 C 0.633,28.132 0.67,28.802 0.713,29.58 L 1.213,29.58 L 1.102,27.58 z M 1.325,31.58 L 0.825,31.58 C 0.86,32.205 0.897,32.873 0.937,33.58 L 1.437,33.58 L 1.325,31.58 z M 2.439,51.58 L 1.939,51.58 C 1.976,52.242 2.013,52.909 2.05,53.58 L 2.55,53.58 L 2.439,51.58 z M 1.993,43.58 L 1.493,43.58 C 1.53,44.236 1.567,44.903 1.604,45.58 L 2.104,45.58 L 1.993,43.58 z M 2.216,47.58 L 1.716,47.58 C 1.753,48.24 1.79,48.906 1.827,49.58 L 2.327,49.58 L 2.216,47.58 z " +- id="path179" +- style="opacity:0.5;fill:url(#linearGradient9791)" /> +- </g> +- <g +- enable-background="new " +- id="g183" +- transform="translate(100.96362,-31.039526)"> +- <defs +- id="defs185"> +- <path +- id="XMLID_13_" +- enable-background="new " +- d="M 53.057,56.968 C 53.067,56.925 53.076,56.882 53.082,56.839 C 53.09,56.795 53.096,56.752 53.1,56.707 C 53.105,56.663 53.109,56.619 53.112,56.574 C 53.114,56.529 53.115,56.483 53.115,56.438 C 53.115,56.483 53.114,56.529 53.112,56.574 C 53.109,56.619 53.105,56.663 53.1,56.707 C 53.096,56.752 53.09,56.795 53.082,56.839 C 53.075,56.882 53.066,56.925 53.057,56.968 z " /> +- </defs> +- <clipPath +- id="clipPath2537"> +- <use +- xlink:href="#XMLID_13_" +- id="use2539" +- x="0" +- y="0" +- width="128" +- height="128" /> +- </clipPath> +- <g +- clip-path="url(#XMLID_27_)" +- enable-background="new " +- id="g191"> +- <path +- d="M 53.057,56.968 C 53.067,56.925 53.076,56.882 53.082,56.839 C 53.09,56.795 53.096,56.752 53.1,56.707 C 53.105,56.663 53.109,56.619 53.112,56.574 C 53.114,56.529 53.115,56.483 53.115,56.438 C 53.115,56.483 53.114,56.529 53.112,56.574 C 53.109,56.619 53.105,56.663 53.1,56.707 C 53.096,56.752 53.09,56.795 53.082,56.839 C 53.075,56.882 53.066,56.925 53.057,56.968" +- id="path193" +- style="fill:#828282" /> +- </g> +- </g> +- <polygon +- transform="matrix(0.9497077,0,0,0.9497077,103.5914,-27.069162)" +- style="opacity:0.5;fill:none;stroke:url(#linearGradient4366);stroke-width:1.86274767;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" +- id="polygon2416" +- points="104.25,24.795 100.25,96.58 4.25,96.58 0.25,24.795 104.25,24.795 " /> +- </g> +- <path +- sodipodi:nodetypes="ccccc" +- id="rect6520" +- d="M 64.00015,38.4375 L 74.713341,39.5 L 78.722956,51.875 L 63.9375,49.3125 L 64.00015,38.4375 z " +- style="opacity:0.6;fill:url(#linearGradient9793);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1" /> +- </g> +- </g> +- </g> +- <g +- id="g7919"> +- <path +- sodipodi:nodetypes="ccccccccccc" +- id="path7921" +- d="M 16,49.743875 L 16,118 C 16,119.104 16.896,120 18,120 L 77.1875,120 C 77.7175,120 78.21875,119.78125 78.59375,119.40625 C 78.59375,119.40625 88,106.25 88,96 C 98.25,96 111.40625,86.593751 111.40625,86.59375 C 111.78125,86.218751 112,85.7175 112,85.1875 L 112,49.743875 C 112,49.743875 82.12374,46.708365 62,66.832106 C 40.46834,45.300451 16,49.743875 16,49.743875 z" +- style="opacity:0.4;fill:url(#linearGradient8163);fill-opacity:1" /> +- <path +- id="path7923" +- d="M 80.625,54.6875 C 75.78382,56.640966 70.86735,59.294441 66.28125,62.96875 L 97.34375,94.03125 C 100.01217,93.047758 102.56719,91.830207 104.75,90.65625 C 104.86778,90.592559 104.97821,90.53206 105.09375,90.46875 C 105.66574,90.157314 106.17527,89.858234 106.6875,89.5625 C 106.87456,89.454094 107.0093,89.386533 107.1875,89.28125 C 107.95471,88.830952 108.6041,88.430249 109.1875,88.0625 C 109.64167,87.775104 109.92588,87.589778 110.25,87.375 C 110.60575,87.141487 110.61832,87.132882 110.8125,87 C 111.19226,86.742798 111.40625,86.59375 111.40625,86.59375 C 111.59375,86.40625 111.74219,86.175938 111.84375,85.9375 C 111.84756,85.928559 111.84007,85.915245 111.84375,85.90625 L 80.625,54.6875 z" +- style="opacity:0.1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1" /> +- <g +- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" +- id="g7925"> +- <path +- id="path7927" +- d="M 62.348269,44.488024 C 62.329831,44.448843 62.257615,44.305178 62.257615,44.305178 C 62.127778,44.045506 61.861192,43.88033 61.570021,43.88033 L 57.728716,43.88033 C 57.304636,43.88033 56.960455,44.223743 56.960455,44.648591 L 56.960455,47.721635 C 56.960455,48.146483 57.304636,48.489896 57.728716,48.489896 L 65.411326,48.489896 C 65.836174,48.489896 66.179587,48.146483 66.179587,47.721635 L 66.179587,46.185113 C 66.179587,44.914409 65.145508,43.88033 63.874804,43.88033 C 63.283243,43.88033 62.756216,44.120027 62.348269,44.488024 z" +- i:knockout="Off" +- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> +- <path +- id="path7929" +- d="M 61.570021,43.877257 L 62.338282,45.413779 C 62.338282,44.564851 63.026644,43.877257 63.874804,43.877257 C 64.723732,43.877257 65.411326,44.564851 65.411326,45.413779 L 65.411326,46.950301 L 57.728716,46.950301 L 57.728716,43.877257 L 61.570021,43.877257 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8165)" /> +- <path +- id="path7931" +- d="M 63.106543,45.413779 C 63.106543,45.770252 62.861468,46.079861 62.514982,46.162065 C 62.455826,46.175126 62.397438,46.18204 62.338282,46.18204 C 63.444578,46.18204 64.227436,46.18204 64.643065,46.18204 C 64.643065,45.79791 64.643065,45.413779 64.643065,45.413779 C 64.643065,44.989699 64.298116,44.645518 63.874804,44.645518 C 63.451492,44.645518 63.106543,44.989699 63.106543,45.413779 z M 58.496977,44.645518 C 58.496977,45.221714 58.496977,45.605844 58.496977,46.18204 C 59.188412,46.18204 60.494456,46.18204 62.338282,46.18204 C 62.052489,46.18204 61.783598,46.021473 61.651457,45.757192 C 61.651457,45.757192 61.318031,45.090341 61.095236,44.645518 C 60.5321,44.645518 59.328235,44.645518 58.496977,44.645518 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8167)" /> +- </g> +- <g +- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" +- id="g7933"> +- <path +- id="path7935" +- d="M 66.179587,46.953374 C 65.888416,46.953374 65.622598,47.11855 65.491993,47.378222 C 65.491993,47.378222 65.419777,47.522655 65.401339,47.561068 C 64.992624,47.193071 64.465597,46.953374 63.874804,46.953374 C 62.6041,46.953374 61.570021,47.987453 61.570021,49.258157 L 61.570021,50.794679 C 61.570021,51.219527 61.914202,51.56294 62.338282,51.56294 L 70.020892,51.56294 C 70.44574,51.56294 70.789153,51.219527 70.789153,50.794679 L 70.789153,47.721635 C 70.789153,47.296787 70.44574,46.953374 70.020892,46.953374 L 66.179587,46.953374 z" +- i:knockout="Off" +- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> +- <path +- id="path7937" +- d="M 66.179587,46.950301 L 65.411326,48.486823 C 65.411326,47.637895 64.722964,46.950301 63.874804,46.950301 C 63.025876,46.950301 62.338282,47.637895 62.338282,48.486823 L 62.338282,50.023345 L 70.020892,50.023345 L 70.020892,46.950301 L 66.179587,46.950301 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8169)" /> +- <path +- id="path7939" +- d="M 66.654372,47.718562 C 66.431577,48.163385 66.098151,48.830236 66.098151,48.830236 C 65.966779,49.094517 65.697887,49.255084 65.412094,49.255084 C 67.255152,49.255084 68.561964,49.255084 69.252631,49.255084 C 69.252631,48.678888 69.252631,48.294758 69.252631,47.718562 C 68.421373,47.718562 67.217508,47.718562 66.654372,47.718562 z M 63.106543,48.486823 C 63.106543,48.486823 63.106543,48.870953 63.106543,49.255084 C 63.521404,49.255084 64.30503,49.255084 65.410558,49.255084 C 65.352938,49.255084 65.293782,49.24817 65.234626,49.235109 C 64.88814,49.152905 64.643065,48.843296 64.643065,48.486823 C 64.643065,48.062743 64.298116,47.718562 63.874804,47.718562 C 63.451492,47.718562 63.106543,48.062743 63.106543,48.486823 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8171)" /> +- </g> +- <g +- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" +- id="g7941"> +- <path +- id="path7943" +- d="M 62.348269,50.634112 C 62.329831,50.594931 62.257615,50.451266 62.257615,50.451266 C 62.127778,50.191594 61.861192,50.026418 61.570021,50.026418 L 57.728716,50.026418 C 57.304636,50.026418 56.960455,50.369831 56.960455,50.794679 L 56.960455,53.867723 C 56.960455,54.292571 57.304636,54.635984 57.728716,54.635984 L 65.411326,54.635984 C 65.836174,54.635984 66.179587,54.292571 66.179587,53.867723 L 66.179587,52.331201 C 66.179587,51.060497 65.145508,50.026418 63.874804,50.026418 C 63.283243,50.026418 62.756216,50.266115 62.348269,50.634112 z" +- i:knockout="Off" +- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> +- <path +- id="path7945" +- d="M 61.570021,50.023345 L 62.338282,51.559867 C 62.338282,50.710939 63.026644,50.023345 63.874804,50.023345 C 64.723732,50.023345 65.411326,50.710939 65.411326,51.559867 L 65.411326,53.096389 L 57.728716,53.096389 L 57.728716,50.023345 L 61.570021,50.023345 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8173)" /> +- <path +- id="path7947" +- d="M 63.106543,51.559867 C 63.106543,51.91634 62.861468,52.225949 62.514982,52.308153 C 62.455826,52.321214 62.397438,52.328128 62.338282,52.328128 C 63.444578,52.328128 64.227436,52.328128 64.643065,52.328128 C 64.643065,51.943997 64.643065,51.559867 64.643065,51.559867 C 64.643065,51.135787 64.298116,50.791606 63.874804,50.791606 C 63.451492,50.791606 63.106543,51.135787 63.106543,51.559867 z M 58.496977,50.791606 C 58.496977,51.367802 58.496977,51.751932 58.496977,52.328128 C 59.188412,52.328128 60.494456,52.328128 62.338282,52.328128 C 62.052489,52.328128 61.783598,52.167561 61.651457,51.90328 C 61.651457,51.90328 61.318031,51.236429 61.095236,50.791606 C 60.5321,50.791606 59.328235,50.791606 58.496977,50.791606 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8175)" /> +- </g> +- <g +- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" +- id="g7949"> +- <path +- id="path7951" +- d="M 66.179587,53.099462 C 65.888416,53.099462 65.622598,53.264638 65.491993,53.52431 C 65.491993,53.52431 65.419777,53.668743 65.401339,53.707156 C 64.992624,53.339159 64.465597,53.099462 63.874804,53.099462 C 62.6041,53.099462 61.570021,54.133541 61.570021,55.404245 L 61.570021,56.940767 C 61.570021,57.365615 61.914202,57.709028 62.338282,57.709028 L 70.020892,57.709028 C 70.44574,57.709028 70.789153,57.365615 70.789153,56.940767 L 70.789153,53.867723 C 70.789153,53.442875 70.44574,53.099462 70.020892,53.099462 L 66.179587,53.099462 z" +- i:knockout="Off" +- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> +- <path +- id="path7953" +- d="M 66.179587,53.096389 L 65.411326,54.632911 C 65.411326,53.783983 64.722964,53.096389 63.874804,53.096389 C 63.025876,53.096389 62.338282,53.783983 62.338282,54.632911 L 62.338282,56.169433 L 70.020892,56.169433 L 70.020892,53.096389 L 66.179587,53.096389 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8177)" /> +- <path +- id="path7955" +- d="M 66.654372,53.86465 C 66.431577,54.309473 66.098151,54.976324 66.098151,54.976324 C 65.96601,55.240605 65.697887,55.401172 65.411326,55.401172 C 67.254384,55.401172 68.561196,55.401172 69.251863,55.401172 C 69.251863,54.824976 69.251863,54.440846 69.251863,53.86465 C 68.421373,53.86465 67.217508,53.86465 66.654372,53.86465 z M 63.106543,54.632911 C 63.106543,54.632911 63.106543,55.017042 63.106543,55.401172 C 63.521404,55.401172 64.30503,55.401172 65.410558,55.401172 C 65.352938,55.401172 65.293782,55.394258 65.234626,55.381197 C 64.88814,55.298993 64.643065,54.989384 64.643065,54.632911 C 64.643065,54.208831 64.298116,53.86465 63.874804,53.86465 C 63.451492,53.86465 63.106543,54.208831 63.106543,54.632911 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8179)" /> +- </g> +- <g +- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" +- id="g7957"> +- <path +- id="path7959" +- d="M 62.348269,56.7802 C 62.329831,56.741019 62.257615,56.597354 62.257615,56.597354 C 62.127778,56.337682 61.861192,56.172506 61.570021,56.172506 L 57.728716,56.172506 C 57.304636,56.172506 56.960455,56.515919 56.960455,56.940767 L 56.960455,60.013811 C 56.960455,60.438659 57.304636,60.782072 57.728716,60.782072 L 65.411326,60.782072 C 65.836174,60.782072 66.179587,60.438659 66.179587,60.013811 L 66.179587,58.477289 C 66.179587,57.206585 65.145508,56.172506 63.874804,56.172506 C 63.283243,56.172506 62.756216,56.412203 62.348269,56.7802 z" +- i:knockout="Off" +- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> +- <path +- id="path7961" +- d="M 61.570021,56.169433 L 62.338282,57.705955 C 62.338282,56.857027 63.026644,56.169433 63.874804,56.169433 C 64.723732,56.169433 65.411326,56.857027 65.411326,57.705955 L 65.411326,59.242477 L 57.728716,59.242477 L 57.728716,56.169433 L 61.570021,56.169433 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8181)" /> +- <path +- id="path7963" +- d="M 63.106543,57.705955 C 63.106543,58.062428 62.861468,58.372037 62.514982,58.454241 C 62.455826,58.467302 62.397438,58.474216 62.338282,58.474216 C 63.444578,58.474216 64.227436,58.474216 64.643065,58.474216 C 64.643065,58.090086 64.643065,57.705955 64.643065,57.705955 C 64.643065,57.281875 64.298116,56.937694 63.874804,56.937694 C 63.451492,56.937694 63.106543,57.281875 63.106543,57.705955 z M 58.496977,56.937694 C 58.496977,57.51389 58.496977,57.89802 58.496977,58.474216 C 59.188412,58.474216 60.494456,58.474216 62.338282,58.474216 C 62.052489,58.474216 61.783598,58.313649 61.651457,58.049368 C 61.651457,58.049368 61.318031,57.382517 61.095236,56.937694 C 60.5321,56.937694 59.328235,56.937694 58.496977,56.937694 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8183)" /> +- </g> +- <g +- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" +- id="g7965"> +- <path +- id="path7967" +- d="M 66.179587,59.24555 C 65.888416,59.24555 65.622598,59.410726 65.491993,59.670398 C 65.491993,59.670398 65.419777,59.814831 65.401339,59.853244 C 64.992624,59.485247 64.465597,59.24555 63.874804,59.24555 C 62.6041,59.24555 61.570021,60.279629 61.570021,61.550333 L 61.570021,63.086855 C 61.570021,63.511703 61.914202,63.855116 62.338282,63.855116 L 70.020892,63.855116 C 70.44574,63.855116 70.789153,63.511703 70.789153,63.086855 L 70.789153,60.013811 C 70.789153,59.588963 70.44574,59.24555 70.020892,59.24555 L 66.179587,59.24555 z" +- i:knockout="Off" +- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> +- <path +- id="path7969" +- d="M 66.179587,59.242477 L 65.411326,60.778999 C 65.411326,59.930071 64.722964,59.242477 63.874804,59.242477 C 63.025876,59.242477 62.338282,59.930071 62.338282,60.778999 L 62.338282,62.315521 L 70.020892,62.315521 L 70.020892,59.242477 L 66.179587,59.242477 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8185)" /> +- <path +- id="path7971" +- d="M 66.654372,60.010738 C 66.431577,60.455561 66.098151,61.122412 66.098151,61.122412 C 65.96601,61.386693 65.697887,61.54726 65.411326,61.54726 C 67.254384,61.54726 68.561196,61.54726 69.251863,61.54726 C 69.251863,60.971064 69.251863,60.586934 69.251863,60.010738 C 68.421373,60.010738 67.217508,60.010738 66.654372,60.010738 z M 63.106543,60.778999 C 63.106543,60.778999 63.106543,61.163129 63.106543,61.54726 C 63.521404,61.54726 64.30503,61.54726 65.410558,61.54726 C 65.352938,61.54726 65.293782,61.540346 65.234626,61.527285 C 64.88814,61.445081 64.643065,61.135472 64.643065,60.778999 C 64.643065,60.354919 64.298116,60.010738 63.874804,60.010738 C 63.451492,60.010738 63.106543,60.354919 63.106543,60.778999 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8187)" /> +- </g> +- <g +- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" +- id="g7973"> +- <path +- id="path7975" +- d="M 62.348269,62.926288 C 62.329831,62.887107 62.257615,62.743442 62.257615,62.743442 C 62.127778,62.48377 61.861192,62.318594 61.570021,62.318594 L 57.728716,62.318594 C 57.304636,62.318594 56.960455,62.662007 56.960455,63.086855 L 56.960455,66.159899 C 56.960455,66.584747 57.304636,66.92816 57.728716,66.92816 L 65.411326,66.92816 C 65.836174,66.92816 66.179587,66.584747 66.179587,66.159899 L 66.179587,64.623377 C 66.179587,63.352673 65.145508,62.318594 63.874804,62.318594 C 63.283243,62.318594 62.756216,62.558291 62.348269,62.926288 z" +- i:knockout="Off" +- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> +- <path +- id="path7977" +- d="M 61.570021,62.315521 L 62.338282,63.852043 C 62.338282,63.003115 63.026644,62.315521 63.874804,62.315521 C 64.723732,62.315521 65.411326,63.003115 65.411326,63.852043 L 65.411326,65.388565 L 57.728716,65.388565 L 57.728716,62.315521 L 61.570021,62.315521 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8189)" /> +- <path +- id="path7979" +- d="M 63.106543,63.852043 C 63.106543,64.208516 62.861468,64.518125 62.514982,64.600329 C 62.455826,64.61339 62.397438,64.620304 62.338282,64.620304 C 63.444578,64.620304 64.227436,64.620304 64.643065,64.620304 C 64.643065,64.236173 64.643065,63.852043 64.643065,63.852043 C 64.643065,63.427963 64.298116,63.083782 63.874804,63.083782 C 63.451492,63.083782 63.106543,63.427963 63.106543,63.852043 z M 58.496977,63.083782 C 58.496977,63.659978 58.496977,64.044108 58.496977,64.620304 C 59.188412,64.620304 60.494456,64.620304 62.338282,64.620304 C 62.052489,64.620304 61.783598,64.459737 61.651457,64.195456 C 61.651457,64.195456 61.318031,63.528605 61.095236,63.083782 C 60.5321,63.083782 59.328235,63.083782 58.496977,63.083782 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8191)" /> +- </g> +- <g +- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" +- id="g7981"> +- <path +- id="path7983" +- d="M 66.179587,65.391638 C 65.888416,65.391638 65.622598,65.556814 65.491993,65.816486 C 65.491993,65.816486 65.419777,65.960919 65.401339,65.999332 C 64.992624,65.631335 64.465597,65.391638 63.874804,65.391638 C 62.6041,65.391638 61.570021,66.425717 61.570021,67.696421 L 61.570021,69.232943 C 61.570021,69.657791 61.914202,70.001204 62.338282,70.001204 L 70.020892,70.001204 C 70.44574,70.001204 70.789153,69.657791 70.789153,69.232943 L 70.789153,66.159899 C 70.789153,65.735051 70.44574,65.391638 70.020892,65.391638 L 66.179587,65.391638 z" +- i:knockout="Off" +- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> +- <path +- id="path7985" +- d="M 66.179587,65.388565 L 65.411326,66.925087 C 65.411326,66.076159 64.722964,65.388565 63.874804,65.388565 C 63.025876,65.388565 62.338282,66.076159 62.338282,66.925087 L 62.338282,68.461609 L 70.020892,68.461609 L 70.020892,65.388565 L 66.179587,65.388565 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8193)" /> +- <path +- id="path7987" +- d="M 66.654372,66.156826 C 66.431577,66.601649 66.098151,67.2685 66.098151,67.2685 C 65.96601,67.532781 65.697887,67.693348 65.411326,67.693348 C 67.254384,67.693348 68.561196,67.693348 69.251863,67.693348 C 69.251863,67.117152 69.251863,66.733022 69.251863,66.156826 C 68.421373,66.156826 67.217508,66.156826 66.654372,66.156826 z M 63.106543,66.925087 C 63.106543,66.925087 63.106543,67.309218 63.106543,67.693348 C 63.521404,67.693348 64.30503,67.693348 65.410558,67.693348 C 65.352938,67.693348 65.293782,67.686434 65.234626,67.673373 C 64.88814,67.591169 64.643065,67.28156 64.643065,66.925087 C 64.643065,66.501007 64.298116,66.156826 63.874804,66.156826 C 63.451492,66.156826 63.106543,66.501007 63.106543,66.925087 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8195)" /> +- </g> +- <g +- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" +- id="g7989"> +- <path +- id="path7991" +- d="M 62.348269,69.63411 C 62.329831,69.59493 62.257615,69.45127 62.257615,69.45127 C 62.127778,69.19159 61.861192,69.02642 61.570021,69.02642 L 57.728716,69.02642 C 57.304636,69.02642 56.960455,69.36983 56.960455,69.79468 L 56.960455,72.86772 C 56.960455,73.29257 57.304636,73.63598 57.728716,73.63598 L 65.411326,73.63598 C 65.836174,73.63598 66.179587,73.29257 66.179587,72.86772 L 66.179587,71.3312 C 66.179587,70.0605 65.145508,69.02642 63.874804,69.02642 C 63.283243,69.02642 62.756216,69.26612 62.348269,69.63411 z" +- i:knockout="Off" +- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> +- <path +- id="path7993" +- d="M 61.570021,69.02335 L 62.338282,70.55987 C 62.338282,69.71094 63.026644,69.02335 63.874804,69.02335 C 64.723732,69.02335 65.411326,69.71094 65.411326,70.55987 L 65.411326,72.09639 L 57.728716,72.09639 L 57.728716,69.02335 L 61.570021,69.02335 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8197)" /> +- <path +- id="path7995" +- d="M 63.106543,70.55987 C 63.106543,70.91634 62.861468,71.22595 62.514982,71.30815 C 62.455826,71.32121 62.397438,71.32813 62.338282,71.32813 C 63.444578,71.32813 64.227436,71.32813 64.643065,71.32813 C 64.643065,70.944 64.643065,70.55987 64.643065,70.55987 C 64.643065,70.13579 64.298116,69.79161 63.874804,69.79161 C 63.451492,69.79161 63.106543,70.13579 63.106543,70.55987 z M 58.496977,69.79161 C 58.496977,70.3678 58.496977,70.75193 58.496977,71.32813 C 59.188412,71.32813 60.494456,71.32813 62.338282,71.32813 C 62.052489,71.32813 61.783598,71.16756 61.651457,70.90328 C 61.651457,70.90328 61.318031,70.23643 61.095236,69.79161 C 60.5321,69.79161 59.328235,69.79161 58.496977,69.79161 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8199)" /> +- </g> +- <g +- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" +- id="g7997"> +- <path +- id="path7999" +- d="M 66.179587,72.09946 C 65.888416,72.09946 65.622598,72.26464 65.491993,72.52431 C 65.491993,72.52431 65.419777,72.66874 65.401339,72.70716 C 64.992624,72.33916 64.465597,72.09946 63.874804,72.09946 C 62.6041,72.09946 61.570021,73.13354 61.570021,74.40425 L 61.570021,75.94077 C 61.570021,76.36562 61.914202,76.70903 62.338282,76.70903 L 70.020892,76.70903 C 70.44574,76.70903 70.789153,76.36562 70.789153,75.94077 L 70.789153,72.86772 C 70.789153,72.44287 70.44574,72.09946 70.020892,72.09946 L 66.179587,72.09946 z" +- i:knockout="Off" +- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> +- <path +- id="path8001" +- d="M 66.179587,72.09639 L 65.411326,73.63291 C 65.411326,72.78398 64.722964,72.09639 63.874804,72.09639 C 63.025876,72.09639 62.338282,72.78398 62.338282,73.63291 L 62.338282,75.16943 L 70.020892,75.16943 L 70.020892,72.09639 L 66.179587,72.09639 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8201)" /> +- <path +- id="path8003" +- d="M 66.654372,72.86465 C 66.431577,73.30947 66.098151,73.97632 66.098151,73.97632 C 65.96601,74.24061 65.697887,74.40117 65.411326,74.40117 C 67.254384,74.40117 68.561196,74.40117 69.251863,74.40117 C 69.251863,73.82498 69.251863,73.44085 69.251863,72.86465 C 68.421373,72.86465 67.217508,72.86465 66.654372,72.86465 z M 63.106543,73.63291 C 63.106543,73.63291 63.106543,74.01704 63.106543,74.40117 C 63.521404,74.40117 64.30503,74.40117 65.410558,74.40117 C 65.352938,74.40117 65.293782,74.39426 65.234626,74.3812 C 64.88814,74.29899 64.643065,73.98938 64.643065,73.63291 C 64.643065,73.20883 64.298116,72.86465 63.874804,72.86465 C 63.451492,72.86465 63.106543,73.20883 63.106543,73.63291 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8203)" /> +- </g> +- <g +- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" +- id="g8005"> +- <path +- id="path8007" +- d="M 62.348269,75.7802 C 62.329831,75.74102 62.257615,75.59735 62.257615,75.59735 C 62.127778,75.33768 61.861192,75.17251 61.570021,75.17251 L 57.728716,75.17251 C 57.304636,75.17251 56.960455,75.51592 56.960455,75.94077 L 56.960455,79.01381 C 56.960455,79.43866 57.304636,79.78207 57.728716,79.78207 L 65.411326,79.78207 C 65.836174,79.78207 66.179587,79.43866 66.179587,79.01381 L 66.179587,77.47729 C 66.179587,76.20659 65.145508,75.17251 63.874804,75.17251 C 63.283243,75.17251 62.756216,75.4122 62.348269,75.7802 z" +- i:knockout="Off" +- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> +- <path +- id="path8009" +- d="M 61.570021,75.16943 L 62.338282,76.70596 C 62.338282,75.85703 63.026644,75.16943 63.874804,75.16943 C 64.723732,75.16943 65.411326,75.85703 65.411326,76.70596 L 65.411326,78.24248 L 57.728716,78.24248 L 57.728716,75.16943 L 61.570021,75.16943 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8205)" /> +- <path +- id="path8011" +- d="M 63.106543,76.70596 C 63.106543,77.06243 62.861468,77.37204 62.514982,77.45424 C 62.455826,77.4673 62.397438,77.47422 62.338282,77.47422 C 63.444578,77.47422 64.227436,77.47422 64.643065,77.47422 C 64.643065,77.09009 64.643065,76.70596 64.643065,76.70596 C 64.643065,76.28187 64.298116,75.93769 63.874804,75.93769 C 63.451492,75.93769 63.106543,76.28187 63.106543,76.70596 z M 58.496977,75.93769 C 58.496977,76.51389 58.496977,76.89802 58.496977,77.47422 C 59.188412,77.47422 60.494456,77.47422 62.338282,77.47422 C 62.052489,77.47422 61.783598,77.31365 61.651457,77.04937 C 61.651457,77.04937 61.318031,76.38252 61.095236,75.93769 C 60.5321,75.93769 59.328235,75.93769 58.496977,75.93769 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8207)" /> +- </g> +- <g +- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" +- id="g8013"> +- <path +- id="path8015" +- d="M 66.179587,78.24555 C 65.888416,78.24555 65.622598,78.41073 65.491993,78.6704 C 65.491993,78.6704 65.419777,78.81483 65.401339,78.85324 C 64.992624,78.48525 64.465597,78.24555 63.874804,78.24555 C 62.6041,78.24555 61.570021,79.27963 61.570021,80.55033 L 61.570021,82.08686 C 61.570021,82.5117 61.914202,82.85512 62.338282,82.85512 L 70.020892,82.85512 C 70.44574,82.85512 70.789153,82.5117 70.789153,82.08686 L 70.789153,79.01381 C 70.789153,78.58896 70.44574,78.24555 70.020892,78.24555 L 66.179587,78.24555 z" +- i:knockout="Off" +- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> +- <path +- id="path8017" +- d="M 66.179587,78.24248 L 65.411326,79.779 C 65.411326,78.93007 64.722964,78.24248 63.874804,78.24248 C 63.025876,78.24248 62.338282,78.93007 62.338282,79.779 L 62.338282,81.31552 L 70.020892,81.31552 L 70.020892,78.24248 L 66.179587,78.24248 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8209)" /> +- <path +- id="path8019" +- d="M 66.654372,79.01074 C 66.431577,79.45556 66.098151,80.12241 66.098151,80.12241 C 65.96601,80.38669 65.697887,80.54726 65.411326,80.54726 C 67.254384,80.54726 68.561196,80.54726 69.251863,80.54726 C 69.251863,79.97106 69.251863,79.58693 69.251863,79.01074 C 68.421373,79.01074 67.217508,79.01074 66.654372,79.01074 z M 63.106543,79.779 C 63.106543,79.779 63.106543,80.16313 63.106543,80.54726 C 63.521404,80.54726 64.30503,80.54726 65.410558,80.54726 C 65.352938,80.54726 65.293782,80.54035 65.234626,80.52729 C 64.88814,80.44508 64.643065,80.13547 64.643065,79.779 C 64.643065,79.35492 64.298116,79.01074 63.874804,79.01074 C 63.451492,79.01074 63.106543,79.35492 63.106543,79.779 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8211)" /> +- </g> +- <g +- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" +- id="g8021"> +- <path +- id="path8023" +- d="M 62.348269,81.92629 C 62.329831,81.88711 62.257615,81.74344 62.257615,81.74344 C 62.127778,81.48377 61.861192,81.31859 61.570021,81.31859 L 57.728716,81.31859 C 57.304636,81.31859 56.960455,81.66201 56.960455,82.08686 L 56.960455,85.1599 C 56.960455,85.58475 57.304636,85.92816 57.728716,85.92816 L 65.411326,85.92816 C 65.836174,85.92816 66.179587,85.58475 66.179587,85.1599 L 66.179587,83.62338 C 66.179587,82.35267 65.145508,81.31859 63.874804,81.31859 C 63.283243,81.31859 62.756216,81.55829 62.348269,81.92629 z" +- i:knockout="Off" +- style="fill:#000000;fill-opacity:0.65680476;stroke:none;display:inline" /> +- <path +- id="path8025" +- d="M 61.570021,81.31552 L 62.338282,82.85204 C 62.338282,82.00311 63.026644,81.31552 63.874804,81.31552 C 64.723732,81.31552 65.411326,82.00311 65.411326,82.85204 L 65.411326,84.38856 L 57.728716,84.38856 L 57.728716,81.31552 L 61.570021,81.31552 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8213);display:inline" /> +- <path +- id="path8027" +- d="M 63.106543,82.85204 C 63.106543,83.20852 62.861468,83.51813 62.514982,83.60033 C 62.455826,83.61339 62.397438,83.6203 62.338282,83.6203 C 63.444578,83.6203 64.227436,83.6203 64.643065,83.6203 C 64.643065,83.23617 64.643065,82.85204 64.643065,82.85204 C 64.643065,82.42796 64.298116,82.08378 63.874804,82.08378 C 63.451492,82.08378 63.106543,82.42796 63.106543,82.85204 z M 58.496977,82.08378 C 58.496977,82.65998 58.496977,83.04411 58.496977,83.6203 C 59.188412,83.6203 60.494456,83.6203 62.338282,83.6203 C 62.052489,83.6203 61.783598,83.45974 61.651457,83.19546 C 61.651457,83.19546 61.318031,82.52861 61.095236,82.08378 C 60.5321,82.08378 59.328235,82.08378 58.496977,82.08378 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8215);display:inline" /> +- </g> +- <g +- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" +- id="g8029"> +- <path +- id="path8031" +- d="M 66.179587,84.39164 C 65.888416,84.39164 65.622598,84.55681 65.491993,84.81649 C 65.491993,84.81649 65.419777,84.96092 65.401339,84.99933 C 64.992624,84.63134 64.465597,84.39164 63.874804,84.39164 C 62.6041,84.39164 61.570021,85.42572 61.570021,86.69642 L 61.570021,88.23294 C 61.570021,88.65779 61.914202,89.0012 62.338282,89.0012 L 70.020892,89.0012 C 70.44574,89.0012 70.789153,88.65779 70.789153,88.23294 L 70.789153,85.1599 C 70.789153,84.73505 70.44574,84.39164 70.020892,84.39164 L 66.179587,84.39164 z" +- i:knockout="Off" +- style="fill:#000000;fill-opacity:0.65680476;stroke:none;display:inline" /> +- <path +- id="path8033" +- d="M 66.179587,84.38856 L 65.411326,85.92509 C 65.411326,85.07616 64.722964,84.38856 63.874804,84.38856 C 63.025876,84.38856 62.338282,85.07616 62.338282,85.92509 L 62.338282,87.46161 L 70.020892,87.46161 L 70.020892,84.38856 L 66.179587,84.38856 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8217);display:inline" /> +- <path +- id="path8035" +- d="M 66.654372,85.15683 C 66.431577,85.60165 66.098151,86.2685 66.098151,86.2685 C 65.96601,86.53278 65.697887,86.69335 65.411326,86.69335 C 67.254384,86.69335 68.561196,86.69335 69.251863,86.69335 C 69.251863,86.11715 69.251863,85.73302 69.251863,85.15683 C 68.421373,85.15683 67.217508,85.15683 66.654372,85.15683 z M 63.106543,85.92509 C 63.106543,85.92509 63.106543,86.30922 63.106543,86.69335 C 63.521404,86.69335 64.30503,86.69335 65.410558,86.69335 C 65.352938,86.69335 65.293782,86.68643 65.234626,86.67337 C 64.88814,86.59117 64.643065,86.28156 64.643065,85.92509 C 64.643065,85.50101 64.298116,85.15683 63.874804,85.15683 C 63.451492,85.15683 63.106543,85.50101 63.106543,85.92509 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8219);display:inline" /> +- </g> +- <g +- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" +- id="g8037"> +- <path +- id="path8039" +- d="M 62.348269,87.92629 C 62.329831,87.88711 62.257615,87.74344 62.257615,87.74344 C 62.127778,87.48377 61.861192,87.31859 61.570021,87.31859 L 57.728716,87.31859 C 57.304636,87.31859 56.960455,87.66201 56.960455,88.08686 L 56.960455,91.1599 C 56.960455,91.58475 57.304636,91.92816 57.728716,91.92816 L 65.411326,91.92816 C 65.836174,91.92816 66.179587,91.58475 66.179587,91.1599 L 66.179587,89.62338 C 66.179587,88.35267 65.145508,87.31859 63.874804,87.31859 C 63.283243,87.31859 62.756216,87.55829 62.348269,87.92629 z" +- i:knockout="Off" +- style="fill:#000000;fill-opacity:0.65680476;stroke:none;display:inline" /> +- <path +- id="path8041" +- d="M 61.570021,87.31552 L 62.338282,88.85204 C 62.338282,88.00311 63.026644,87.31552 63.874804,87.31552 C 64.723732,87.31552 65.411326,88.00311 65.411326,88.85204 L 65.411326,90.38856 L 57.728716,90.38856 L 57.728716,87.31552 L 61.570021,87.31552 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8221);display:inline" /> +- <path +- id="path8043" +- d="M 63.106543,88.85204 C 63.106543,89.20852 62.861468,89.51813 62.514982,89.60033 C 62.455826,89.61339 62.397438,89.6203 62.338282,89.6203 C 63.444578,89.6203 64.227436,89.6203 64.643065,89.6203 C 64.643065,89.23617 64.643065,88.85204 64.643065,88.85204 C 64.643065,88.42796 64.298116,88.08378 63.874804,88.08378 C 63.451492,88.08378 63.106543,88.42796 63.106543,88.85204 z M 58.496977,88.08378 C 58.496977,88.65998 58.496977,89.04411 58.496977,89.6203 C 59.188412,89.6203 60.494456,89.6203 62.338282,89.6203 C 62.052489,89.6203 61.783598,89.45974 61.651457,89.19546 C 61.651457,89.19546 61.318031,88.52861 61.095236,88.08378 C 60.5321,88.08378 59.328235,88.08378 58.496977,88.08378 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8223);display:inline" /> +- </g> +- <g +- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" +- id="g8045"> +- <path +- id="path8047" +- d="M 66.179587,90.39164 C 65.888416,90.39164 65.622598,90.55681 65.491993,90.81649 C 65.491993,90.81649 65.419777,90.96092 65.401339,90.99933 C 64.992624,90.63134 64.465597,90.39164 63.874804,90.39164 C 62.6041,90.39164 61.570021,91.42572 61.570021,92.69642 L 61.570021,94.23294 C 61.570021,94.65779 61.914202,95.0012 62.338282,95.0012 L 70.020892,95.0012 C 70.44574,95.0012 70.789153,94.65779 70.789153,94.23294 L 70.789153,91.1599 C 70.789153,90.73505 70.44574,90.39164 70.020892,90.39164 L 66.179587,90.39164 z" +- i:knockout="Off" +- style="fill:#000000;fill-opacity:0.65680476;stroke:none;display:inline" /> +- <path +- id="path8049" +- d="M 66.179587,90.38856 L 65.411326,91.92509 C 65.411326,91.07616 64.722964,90.38856 63.874804,90.38856 C 63.025876,90.38856 62.338282,91.07616 62.338282,91.92509 L 62.338282,93.46161 L 70.020892,93.46161 L 70.020892,90.38856 L 66.179587,90.38856 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8225);display:inline" /> +- <path +- id="path8051" +- d="M 66.654372,91.15683 C 66.431577,91.60165 66.098151,92.2685 66.098151,92.2685 C 65.96601,92.53278 65.697887,92.69335 65.411326,92.69335 C 67.254384,92.69335 68.561196,92.69335 69.251863,92.69335 C 69.251863,92.11715 69.251863,91.73302 69.251863,91.15683 C 68.421373,91.15683 67.217508,91.15683 66.654372,91.15683 z M 63.106543,91.92509 C 63.106543,91.92509 63.106543,92.30922 63.106543,92.69335 C 63.521404,92.69335 64.30503,92.69335 65.410558,92.69335 C 65.352938,92.69335 65.293782,92.68643 65.234626,92.67337 C 64.88814,92.59117 64.643065,92.28156 64.643065,91.92509 C 64.643065,91.50101 64.298116,91.15683 63.874804,91.15683 C 63.451492,91.15683 63.106543,91.50101 63.106543,91.92509 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8227);display:inline" /> +- </g> +- <g +- transform="matrix(0.993226,0,0,0.993226,-0.15183,20.257852)" +- id="g8053"> +- <path +- id="path8055" +- d="M 62.348269,93.92629 C 62.329831,93.88711 62.257615,93.74344 62.257615,93.74344 C 62.127778,93.48377 61.861192,93.31859 61.570021,93.31859 L 57.728716,93.31859 C 57.304636,93.31859 56.960455,93.66201 56.960455,94.08686 L 56.960455,97.1599 C 56.960455,97.58475 57.304636,97.92816 57.728716,97.92816 L 65.411326,97.92816 C 65.836174,97.92816 66.179587,97.58475 66.179587,97.1599 L 66.179587,95.62338 C 66.179587,94.35267 65.145508,93.31859 63.874804,93.31859 C 63.283243,93.31859 62.756216,93.55829 62.348269,93.92629 z" +- i:knockout="Off" +- style="fill:#000000;fill-opacity:0.65680476;stroke:none;display:inline" /> +- <path +- id="path8057" +- d="M 61.570021,93.31552 L 62.338282,94.85204 C 62.338282,94.00311 63.026644,93.31552 63.874804,93.31552 C 64.723732,93.31552 65.411326,94.00311 65.411326,94.85204 L 65.411326,96.38856 L 57.728716,96.38856 L 57.728716,93.31552 L 61.570021,93.31552 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8229);display:inline" /> +- <path +- id="path8059" +- d="M 63.106543,94.85204 C 63.106543,95.20852 62.861468,95.51813 62.514982,95.60033 C 62.455826,95.61339 62.397438,95.6203 62.338282,95.6203 C 63.444578,95.6203 64.227436,95.6203 64.643065,95.6203 C 64.643065,95.23617 64.643065,94.85204 64.643065,94.85204 C 64.643065,94.42796 64.298116,94.08378 63.874804,94.08378 C 63.451492,94.08378 63.106543,94.42796 63.106543,94.85204 z M 58.496977,94.08378 C 58.496977,94.65998 58.496977,95.04411 58.496977,95.6203 C 59.188412,95.6203 60.494456,95.6203 62.338282,95.6203 C 62.052489,95.6203 61.783598,95.45974 61.651457,95.19546 C 61.651457,95.19546 61.318031,94.52861 61.095236,94.08378 C 60.5321,94.08378 59.328235,94.08378 58.496977,94.08378 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8231);display:inline" /> +- </g> +- <path +- id="path8061" +- d="M 107.03125,49.59375 C 104.81868,49.614953 101.93733,49.735658 98.6875,50.125 L 112,63.4375 L 112,49.75 C 112,49.75 110.14658,49.563895 107.03125,49.59375 z" +- style="opacity:0.1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1" /> +- <path +- id="path8063" +- d="M 16,80.5625 L 16,103.1875 L 32.8125,120 L 55.4375,120 L 16,80.5625 z" +- style="opacity:0.1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1" /> +- <path +- id="path8065" +- d="M 20.15625,49.375 C 17.52591,49.455139 16,49.75 16,49.75 L 16,57.9375 L 77.90625,119.84375 L 77.9375,119.84375 C 78.17594,119.74219 78.40625,119.59375 78.59375,119.40625 C 78.59375,119.40625 78.85859,119.01914 79,118.8125 C 79.08955,118.68027 79.26027,118.42314 79.375,118.25 C 79.57047,117.9522 79.81163,117.58548 80.0625,117.1875 C 80.10708,117.11705 80.17271,117.01083 80.21875,116.9375 C 80.61846,116.29684 81.08169,115.52028 81.5625,114.6875 C 81.84462,114.20068 82.1723,113.63477 82.46875,113.09375 C 82.52778,112.98533 82.5969,112.86036 82.65625,112.75 C 83.83021,110.56719 85.04776,108.01217 86.03125,105.34375 L 30.9375,50.21875 C 30.92693,50.216854 30.91681,50.220638 30.90625,50.21875 C 26.51577,49.433564 22.78028,49.295053 20.15625,49.375 z" +- style="opacity:0.1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1" /> +- <path +- style="opacity:0.5;fill:#ffffff;fill-opacity:1" +- d="M 20.15625,49.375 C 17.52591,49.455139 16,49.75 16,49.75 L 16,53.75 C 16,53.75 40.46834,49.312093 62,70.84375 C 82.12374,50.720009 112,53.750001 112,53.75 L 112,49.75 C 112,49.750001 82.12374,46.720009 62,66.84375 C 45.85126,50.695008 28.04727,49.134583 20.15625,49.375 z" +- id="path8358" /> +- <path +- id="path8067" +- d="M 20.15625,47.375 C 17.52591,47.455139 16,47.75 16,47.75 L 16,51.75 C 16,51.75 40.46834,47.312093 62,68.84375 C 82.12374,48.720009 112,51.750001 112,51.75 L 112,47.75 C 112,47.750001 82.12374,44.720009 62,64.84375 C 45.85126,48.695008 28.04727,47.134583 20.15625,47.375 z" +- style="opacity:1;fill:url(#linearGradient8233);fill-opacity:1" /> +- <g +- transform="matrix(0.7942217,0,0,0.9648535,8.53772,34.056506)" +- id="g8069" +- style="display:inline"> +- <g +- id="g8071"> +- <path +- style="opacity:1;fill:#000000;fill-opacity:0.65490196" +- i:knockout="Off" +- d="M 61.342616,30.297476 C 60.814052,30.561757 60.450665,31.011958 60.250149,31.52362 C 60.216345,31.498268 60.087277,31.400698 60.087277,31.400698 C 59.854494,31.226303 59.543348,31.199414 59.282908,31.330018 L 55.848781,33.050923 C 55.666703,33.14081 55.528416,33.301376 55.463883,33.494978 C 55.400117,33.68858 55.415482,33.898315 55.506137,34.081929 L 56.882861,36.829231 C 57.073389,37.207215 57.534346,37.361635 57.913867,37.171107 L 64.78212,33.729297 C 65.160873,33.538769 65.314525,33.077812 65.123996,32.698291 L 64.435635,31.323872 C 64.159829,30.773029 63.685812,30.363546 63.101933,30.168408 C 62.518055,29.974806 61.892691,30.020133 61.342616,30.297476 z" +- id="path8073" /> +- <path +- style="fill:url(#linearGradient8235)" +- i:knockout="Off" +- d="M 59.626321,31.244741 L 61.002276,32.274211 C 60.621987,31.515169 60.929291,30.593256 61.687565,30.212199 C 62.446607,29.831141 63.369288,30.136909 63.749577,30.897487 L 64.437939,32.271138 L 57.569686,35.712947 L 56.192194,32.965646 L 59.626321,31.244741 z" +- id="path8075" /> +- <path +- style="fill:url(#linearGradient8237)" +- i:knockout="Off" +- d="M 62.031746,30.898256 L 62.031746,30.898256 C 61.652993,31.088016 61.499341,31.551278 61.688333,31.929262 C 61.848131,32.24809 61.767464,32.634526 61.494731,32.863467 C 61.221231,33.091641 60.826344,33.102396 60.54132,32.88882 C 60.54132,32.88882 59.944381,32.441692 59.545653,32.143607 C 59.042442,32.395596 57.966109,32.934916 57.2232,33.30829 C 57.481336,33.823025 57.653426,34.166438 57.911562,34.681941 C 58.901082,34.185644 62.417413,32.424022 63.406165,31.927725 C 63.234074,31.585081 63.061984,31.2409 63.061984,31.2409 C 62.969793,31.056517 62.812299,30.919767 62.617929,30.855233 C 62.423559,30.791467 62.21536,30.806064 62.031746,30.898256 z" +- id="path8077" /> +- </g> +- <g +- id="g8079"> +- <path +- id="path8081" +- d="M 57.588124,25.064082 C 57.120253,25.43131 56.885934,25.955264 56.793742,26.499961 C 56.742269,26.475377 56.577861,26.398551 56.577861,26.398551 C 56.314347,26.274093 56.00397,26.309433 55.775028,26.489206 L 52.755763,28.861596 C 52.422337,29.124341 52.364718,29.607577 52.626695,29.940234 L 54.525836,32.357183 C 54.651831,32.516213 54.836213,32.619929 55.038266,32.645281 C 55.241087,32.669097 55.444676,32.612246 55.604474,32.486251 L 61.643774,27.736862 C 61.803572,27.610867 61.907288,27.426484 61.931872,27.223663 C 61.955688,27.020842 61.898837,26.818021 61.772842,26.657455 L 60.823271,25.450517 C 60.442214,24.966512 59.89598,24.659208 59.285213,24.586223 C 58.675214,24.514007 58.072129,24.683024 57.588124,25.064082 z" +- a:adobe-blending-mode="multiply" +- i:knockout="Off" +- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> +- <path +- style="fill:url(#linearGradient8239)" +- i:knockout="Off" +- d="M 56.250582,26.320957 L 57.804774,27.053878 C 57.280052,26.385491 57.395291,25.420555 58.06291,24.895832 C 58.72976,24.37111 59.695464,24.486349 60.220955,25.154736 L 61.170525,26.361674 L 55.131226,31.111064 L 53.232084,28.694115 L 56.250582,26.320957 z" +- id="path8083" /> +- <path +- style="fill:url(#linearGradient8241)" +- i:knockout="Off" +- d="M 58.537695,25.499686 C 58.537695,25.500454 58.537695,25.500454 58.537695,25.499686 C 58.20427,25.761663 58.14665,26.246435 58.408627,26.579861 C 58.62835,26.860276 58.626813,27.254394 58.404786,27.532504 C 58.182758,27.811383 57.798628,27.900501 57.476726,27.748386 C 57.476726,27.748386 56.802193,27.430326 56.351992,27.218285 C 55.909474,27.566308 54.963745,28.309984 54.309955,28.823183 C 54.665659,29.276457 54.903052,29.578383 55.259525,30.031657 C 56.129197,29.347137 59.221447,26.916359 60.091119,26.232607 C 59.853726,25.931448 59.616333,25.629522 59.616333,25.629522 C 59.488802,25.467419 59.306724,25.36524 59.103135,25.340656 C 58.900314,25.31684 58.69903,25.372923 58.537695,25.499686 z" +- id="path8085" /> +- </g> +- <g +- id="g8087"> +- <path +- id="path8089" +- d="M 53.071518,20.089592 C 52.463055,20.179478 51.925272,20.50138 51.558044,20.995371 C 51.252276,21.407159 51.104001,21.888859 51.104001,22.366717 C 51.104001,22.442775 51.147792,22.51115 51.154707,22.587208 C 51.10477,22.577989 50.932679,22.548027 50.932679,22.548027 C 50.646118,22.497322 50.356483,22.612561 50.182088,22.84688 L 47.891902,25.929144 C 47.639144,26.269483 47.709824,26.750415 48.050164,27.003941 L 50.51705,28.837011 C 50.68069,28.958397 50.885815,29.011407 51.087868,28.981444 C 51.289152,28.951482 51.47123,28.843157 51.592615,28.679518 L 56.173756,22.510382 C 56.295141,22.346742 56.346614,22.141617 56.317421,21.939564 C 56.287458,21.73828 56.179134,21.556202 56.014726,21.434817 L 54.781667,20.519818 C 54.287675,20.152589 53.680749,19.999705 53.071518,20.089592 z" +- a:adobe-blending-mode="multiply" +- i:knockout="Off" +- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> +- <path +- style="fill:url(#linearGradient8243)" +- i:knockout="Off" +- d="M 50.79977,22.532662 L 52.491481,22.831515 C 51.810033,22.323695 51.668673,21.3626 52.174957,20.681921 C 52.681241,20.000473 53.643104,19.858345 54.324552,20.364629 L 55.55761,21.279628 L 50.97647,27.447996 L 48.509584,25.614925 L 50.79977,22.532662 z" +- id="path8091" /> +- <path +- style="fill:url(#linearGradient8245)" +- i:knockout="Off" +- d="M 53.29585,20.837878 C 53.093029,20.86784 52.914024,20.974628 52.791103,21.139804 L 52.791103,21.139804 C 52.538345,21.479376 52.609793,21.961844 52.950133,22.21537 C 53.235926,22.428178 53.337336,22.808467 53.196744,23.135747 C 53.055384,23.462257 52.70813,23.649713 52.357803,23.587484 C 52.357803,23.587484 51.622578,23.457648 51.133195,23.370834 C 50.797465,23.822572 50.079909,24.788276 49.584381,25.455126 C 50.046874,25.798539 50.354947,26.028249 50.81744,26.371662 C 51.477376,25.483552 53.822109,22.325999 54.482045,21.43789 C 54.173972,21.209716 53.866668,20.980774 53.866668,20.980774 C 53.701492,20.859389 53.498671,20.807916 53.29585,20.837878 z" +- id="path8093" /> +- </g> +- <g +- id="g8095"> +- <path +- id="path8097" +- d="M 46.422987,16.637027 C 45.844487,16.845994 45.382762,17.269306 45.12309,17.826295 C 44.975583,18.141282 44.904903,18.473171 44.904903,18.799681 C 44.904903,19.027087 44.942548,19.251419 45.00785,19.4673 C 44.970974,19.468069 44.819626,19.47191 44.819626,19.47191 C 44.529224,19.479592 44.267247,19.650146 44.144325,19.91366 L 42.514075,23.390809 C 42.464906,23.496061 42.44109,23.607459 42.44109,23.716552 C 42.44109,24.00465 42.60473,24.281992 42.883609,24.412596 L 45.66625,25.717103 C 45.850633,25.803917 46.061904,25.813136 46.25397,25.743993 C 46.446035,25.674849 46.601992,25.531953 46.688037,25.34757 L 49.947769,18.38943 C 50.033814,18.205047 50.043801,17.993007 49.974658,17.80171 C 49.904746,17.610413 49.762618,17.453688 49.577467,17.367643 L 48.186914,16.716926 C 47.629925,16.455717 47.003024,16.427291 46.422987,16.637027 z" +- a:adobe-blending-mode="multiply" +- i:knockout="Off" +- style="fill:#000000;fill-opacity:0.65680476;stroke:none" /> +- <path +- style="fill:url(#linearGradient8247)" +- i:knockout="Off" +- d="M 44.840369,19.468837 L 46.558201,19.424278 C 45.789172,19.063195 45.458051,18.148964 45.819134,17.380703 C 46.17868,16.612442 47.092911,16.280554 47.862708,16.642405 L 49.253261,17.293122 L 45.993529,24.251261 L 43.210888,22.946754 L 44.840369,19.468837 z" +- id="path8099" /> +- <path +- style="fill:url(#linearGradient8249)" +- i:knockout="Off" +- d="M 46.946941,17.310023 C 46.754876,17.379935 46.601224,17.519759 46.515178,17.70491 C 46.515178,17.705678 46.515178,17.706446 46.51441,17.706446 C 46.465241,17.811698 46.442194,17.921559 46.442194,18.030652 C 46.442194,18.319518 46.605833,18.597629 46.88548,18.729001 C 47.158213,18.857301 47.326462,19.130802 47.326462,19.423509 C 47.326462,19.475751 47.321084,19.528761 47.310329,19.581771 C 47.237344,19.930562 46.934649,20.182551 46.578176,20.19177 C 46.578176,20.19177 45.831426,20.210977 45.334361,20.224037 C 45.095432,20.733394 44.584539,21.823557 44.231907,22.575684 C 44.753556,22.819991 45.10081,22.983631 45.623227,23.227938 C 46.092635,22.226125 47.761298,18.664468 48.230705,17.661887 C 47.883451,17.499784 47.536197,17.336912 47.536197,17.336912 C 47.348742,17.249331 47.139775,17.240112 46.946941,17.310023 z" +- id="path8101" /> +- </g> +- </g> +- <g +- style="display:inline" +- id="g8103" +- transform="matrix(-0.7942217,0,0,0.9648535,112.65125,36.056506)"> +- <g +- id="g8105"> +- <path +- id="path8107" +- d="M 61.342616,30.297476 C 60.814052,30.561757 60.450665,31.011958 60.250149,31.52362 C 60.216345,31.498268 60.087277,31.400698 60.087277,31.400698 C 59.854494,31.226303 59.543348,31.199414 59.282908,31.330018 L 55.848781,33.050923 C 55.666703,33.14081 55.528416,33.301376 55.463883,33.494978 C 55.400117,33.68858 55.415482,33.898315 55.506137,34.081929 L 56.882861,36.829231 C 57.073389,37.207215 57.534346,37.361635 57.913867,37.171107 L 64.78212,33.729297 C 65.160873,33.538769 65.314525,33.077812 65.123996,32.698291 L 64.435635,31.323872 C 64.159829,30.773029 63.685812,30.363546 63.101933,30.168408 C 62.518055,29.974806 61.892691,30.020133 61.342616,30.297476 z" +- i:knockout="Off" +- style="opacity:1;fill:#000000;fill-opacity:0.65490196" /> +- <path +- id="path8109" +- d="M 59.626321,31.244741 L 61.002276,32.274211 C 60.621987,31.515169 60.929291,30.593256 61.687565,30.212199 C 62.446607,29.831141 63.369288,30.136909 63.749577,30.897487 L 64.437939,32.271138 L 57.569686,35.712947 L 56.192194,32.965646 L 59.626321,31.244741 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8251)" /> +- <path +- id="path8111" +- d="M 62.031746,30.898256 L 62.031746,30.898256 C 61.652993,31.088016 61.499341,31.551278 61.688333,31.929262 C 61.848131,32.24809 61.767464,32.634526 61.494731,32.863467 C 61.221231,33.091641 60.826344,33.102396 60.54132,32.88882 C 60.54132,32.88882 59.944381,32.441692 59.545653,32.143607 C 59.042442,32.395596 57.966109,32.934916 57.2232,33.30829 C 57.481336,33.823025 57.653426,34.166438 57.911562,34.681941 C 58.901082,34.185644 62.417413,32.424022 63.406165,31.927725 C 63.234074,31.585081 63.061984,31.2409 63.061984,31.2409 C 62.969793,31.056517 62.812299,30.919767 62.617929,30.855233 C 62.423559,30.791467 62.21536,30.806064 62.031746,30.898256 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8253)" /> +- </g> +- <g +- id="g8113"> +- <path +- style="fill:#000000;fill-opacity:0.65680476;stroke:none" +- i:knockout="Off" +- a:adobe-blending-mode="multiply" +- d="M 57.588124,25.064082 C 57.120253,25.43131 56.885934,25.955264 56.793742,26.499961 C 56.742269,26.475377 56.577861,26.398551 56.577861,26.398551 C 56.314347,26.274093 56.00397,26.309433 55.775028,26.489206 L 52.755763,28.861596 C 52.422337,29.124341 52.364718,29.607577 52.626695,29.940234 L 54.525836,32.357183 C 54.651831,32.516213 54.836213,32.619929 55.038266,32.645281 C 55.241087,32.669097 55.444676,32.612246 55.604474,32.486251 L 61.643774,27.736862 C 61.803572,27.610867 61.907288,27.426484 61.931872,27.223663 C 61.955688,27.020842 61.898837,26.818021 61.772842,26.657455 L 60.823271,25.450517 C 60.442214,24.966512 59.89598,24.659208 59.285213,24.586223 C 58.675214,24.514007 58.072129,24.683024 57.588124,25.064082 z" +- id="path8115" /> +- <path +- id="path8117" +- d="M 56.250582,26.320957 L 57.804774,27.053878 C 57.280052,26.385491 57.395291,25.420555 58.06291,24.895832 C 58.72976,24.37111 59.695464,24.486349 60.220955,25.154736 L 61.170525,26.361674 L 55.131226,31.111064 L 53.232084,28.694115 L 56.250582,26.320957 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8255)" /> +- <path +- id="path8119" +- d="M 58.537695,25.499686 C 58.537695,25.500454 58.537695,25.500454 58.537695,25.499686 C 58.20427,25.761663 58.14665,26.246435 58.408627,26.579861 C 58.62835,26.860276 58.626813,27.254394 58.404786,27.532504 C 58.182758,27.811383 57.798628,27.900501 57.476726,27.748386 C 57.476726,27.748386 56.802193,27.430326 56.351992,27.218285 C 55.909474,27.566308 54.963745,28.309984 54.309955,28.823183 C 54.665659,29.276457 54.903052,29.578383 55.259525,30.031657 C 56.129197,29.347137 59.221447,26.916359 60.091119,26.232607 C 59.853726,25.931448 59.616333,25.629522 59.616333,25.629522 C 59.488802,25.467419 59.306724,25.36524 59.103135,25.340656 C 58.900314,25.31684 58.69903,25.372923 58.537695,25.499686 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8257)" /> +- </g> +- <g +- id="g8121"> +- <path +- style="fill:#000000;fill-opacity:0.65680476;stroke:none" +- i:knockout="Off" +- a:adobe-blending-mode="multiply" +- d="M 53.071518,20.089592 C 52.463055,20.179478 51.925272,20.50138 51.558044,20.995371 C 51.252276,21.407159 51.104001,21.888859 51.104001,22.366717 C 51.104001,22.442775 51.147792,22.51115 51.154707,22.587208 C 51.10477,22.577989 50.932679,22.548027 50.932679,22.548027 C 50.646118,22.497322 50.356483,22.612561 50.182088,22.84688 L 47.891902,25.929144 C 47.639144,26.269483 47.709824,26.750415 48.050164,27.003941 L 50.51705,28.837011 C 50.68069,28.958397 50.885815,29.011407 51.087868,28.981444 C 51.289152,28.951482 51.47123,28.843157 51.592615,28.679518 L 56.173756,22.510382 C 56.295141,22.346742 56.346614,22.141617 56.317421,21.939564 C 56.287458,21.73828 56.179134,21.556202 56.014726,21.434817 L 54.781667,20.519818 C 54.287675,20.152589 53.680749,19.999705 53.071518,20.089592 z" +- id="path8123" /> +- <path +- id="path8125" +- d="M 50.79977,22.532662 L 52.491481,22.831515 C 51.810033,22.323695 51.668673,21.3626 52.174957,20.681921 C 52.681241,20.000473 53.643104,19.858345 54.324552,20.364629 L 55.55761,21.279628 L 50.97647,27.447996 L 48.509584,25.614925 L 50.79977,22.532662 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8259)" /> +- <path +- id="path8127" +- d="M 53.29585,20.837878 C 53.093029,20.86784 52.914024,20.974628 52.791103,21.139804 L 52.791103,21.139804 C 52.538345,21.479376 52.609793,21.961844 52.950133,22.21537 C 53.235926,22.428178 53.337336,22.808467 53.196744,23.135747 C 53.055384,23.462257 52.70813,23.649713 52.357803,23.587484 C 52.357803,23.587484 51.622578,23.457648 51.133195,23.370834 C 50.797465,23.822572 50.079909,24.788276 49.584381,25.455126 C 50.046874,25.798539 50.354947,26.028249 50.81744,26.371662 C 51.477376,25.483552 53.822109,22.325999 54.482045,21.43789 C 54.173972,21.209716 53.866668,20.980774 53.866668,20.980774 C 53.701492,20.859389 53.498671,20.807916 53.29585,20.837878 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8261)" /> +- </g> +- <g +- id="g8129"> +- <path +- style="fill:#4a4a4a;fill-opacity:1;stroke:none" +- i:knockout="Off" +- a:adobe-blending-mode="multiply" +- d="M 46.422987,16.637027 C 45.844487,16.845994 45.382762,17.269306 45.12309,17.826295 C 44.975583,18.141282 44.904903,18.473171 44.904903,18.799681 C 44.904903,19.027087 44.942548,19.251419 45.00785,19.4673 C 44.970974,19.468069 44.819626,19.47191 44.819626,19.47191 C 44.529224,19.479592 44.267247,19.650146 44.144325,19.91366 L 42.514075,23.390809 C 42.464906,23.496061 42.44109,23.607459 42.44109,23.716552 C 42.44109,24.00465 42.60473,24.281992 42.883609,24.412596 L 45.66625,25.717103 C 45.850633,25.803917 46.061904,25.813136 46.25397,25.743993 C 46.446035,25.674849 46.601992,25.531953 46.688037,25.34757 L 49.947769,18.38943 C 50.033814,18.205047 50.043801,17.993007 49.974658,17.80171 C 49.904746,17.610413 49.762618,17.453688 49.577467,17.367643 L 48.186914,16.716926 C 47.629925,16.455717 47.003024,16.427291 46.422987,16.637027 z" +- id="path8131" /> +- <path +- id="path8133" +- d="M 44.840369,19.468837 L 46.558201,19.424278 C 45.789172,19.063195 45.458051,18.148964 45.819134,17.380703 C 46.17868,16.612442 47.092911,16.280554 47.862708,16.642405 L 49.253261,17.293122 L 45.993529,24.251261 L 43.210888,22.946754 L 44.840369,19.468837 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8263)" /> +- <path +- id="path8135" +- d="M 46.946941,17.310023 C 46.754876,17.379935 46.601224,17.519759 46.515178,17.70491 C 46.515178,17.705678 46.515178,17.706446 46.51441,17.706446 C 46.465241,17.811698 46.442194,17.921559 46.442194,18.030652 C 46.442194,18.319518 46.605833,18.597629 46.88548,18.729001 C 47.158213,18.857301 47.326462,19.130802 47.326462,19.423509 C 47.326462,19.475751 47.321084,19.528761 47.310329,19.581771 C 47.237344,19.930562 46.934649,20.182551 46.578176,20.19177 C 46.578176,20.19177 45.831426,20.210977 45.334361,20.224037 C 45.095432,20.733394 44.584539,21.823557 44.231907,22.575684 C 44.753556,22.819991 45.10081,22.983631 45.623227,23.227938 C 46.092635,22.226125 47.761298,18.664468 48.230705,17.661887 C 47.883451,17.499784 47.536197,17.336912 47.536197,17.336912 C 47.348742,17.249331 47.139775,17.240112 46.946941,17.310023 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8265)" /> +- </g> +- <g +- id="g8137"> +- <path +- style="fill:#4a4a4a;fill-opacity:1;stroke:none" +- i:knockout="Off" +- a:adobe-blending-mode="multiply" +- d="M 40.094821,14.81087 C 39.56318,15.12048 39.1829,15.618313 39.02617,16.213715 C 38.97393,16.41039 38.94858,16.609369 38.94858,16.807581 C 38.94858,17.168663 39.06151,17.516686 39.22976,17.843965 C 39.1852,17.853184 39.02233,17.886987 39.02233,17.886987 C 38.7373,17.946143 38.51067,18.161257 38.43615,18.44244 L 37.45431,22.154677 C 37.43741,22.220748 37.42819,22.286818 37.42819,22.351352 C 37.42819,22.691692 37.65559,23.002837 38.00054,23.093492 L 40.971407,23.879423 C 41.168082,23.931665 41.377817,23.902471 41.554517,23.800292 C 41.730449,23.698114 41.858749,23.529864 41.91099,23.332421 L 43.874665,15.904106 C 43.926907,15.707431 43.898481,15.497696 43.795535,15.321764 C 43.692588,15.145832 43.524338,15.017533 43.327664,14.965291 L 41.843383,14.573478 C 41.248749,14.416752 40.626458,14.500493 40.094821,14.81087 z" +- id="path8139" /> +- <path +- id="path8141" +- d="M 39.17905,17.867781 L 40.860777,17.516686 C 40.039506,17.299268 39.55089,16.45879 39.76831,15.638287 C 39.98419,14.817785 40.824669,14.328402 41.646708,14.546589 L 43.131757,14.937633 L 41.168082,22.365949 L 38.19722,21.580018 L 39.17905,17.867781 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8267)" /> +- <path +- id="path8143" +- d="M 40.867692,15.367091 C 40.690992,15.470038 40.564229,15.635983 40.511987,15.834194 L 40.511987,15.834962 C 40.494317,15.900264 40.485866,15.967103 40.485866,16.033174 C 40.485866,16.166851 40.521206,16.298992 40.59035,16.417304 C 40.693297,16.594772 40.860009,16.721535 41.058221,16.773777 C 41.395487,16.863664 41.629807,17.168663 41.629807,17.515917 C 41.629807,17.522832 41.629807,17.529746 41.629807,17.53666 C 41.620588,17.892365 41.36783,18.19506 41.019039,18.268045 C 41.019039,18.268045 40.288423,18.420161 39.80135,18.522339 C 39.65768,19.066268 39.34961,20.229415 39.13757,21.033016 C 39.69456,21.180522 40.065627,21.27886 40.622617,21.426366 C 40.905337,20.356178 41.910222,16.554055 42.192942,15.484635 C 41.82264,15.387066 41.452338,15.288729 41.452338,15.288729 C 41.251822,15.235719 41.04516,15.263376 40.867692,15.367091 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8269)" /> +- </g> +- </g> +- <g +- transform="matrix(1.7389025,0,0,1.4755998,-47.048677,13.909947)" +- id="g8145"> +- <path +- id="path8147" +- d="M 63.86789,28.512037 L 63.86789,28.512037 C 63.86789,28.512037 63.867121,28.512037 63.861744,28.512037 C 60.193297,28.512037 57.162508,31.701088 56.963528,35.772872 C 56.961223,35.810516 56.960455,35.847393 56.960455,35.885038 C 56.960455,36.680956 57.372243,37.424633 58.052922,37.846408 C 58.203501,37.939368 58.351776,38.125287 58.496977,38.315047 C 58.496977,38.871268 58.496977,54.632911 58.496977,54.632911 C 58.496977,55.903615 59.531056,56.937694 60.80176,56.937694 L 66.947848,56.937694 C 68.218552,56.937694 69.252631,55.903615 69.252631,54.632911 C 69.252631,54.632911 69.252631,38.844379 69.252631,38.281244 C 69.39015,38.106849 69.529205,37.933222 69.669797,37.846408 C 70.351244,37.425401 70.762264,36.681724 70.762264,35.885806 C 70.762264,35.84893 70.761496,35.811285 70.759959,35.774408 C 70.574808,31.989186 67.875907,28.881571 64.480962,28.54584 C 64.478657,28.54584 63.874804,28.512037 63.874804,28.512037 C 63.869426,28.512037 63.86789,28.511269 63.86789,28.512037 z M 64.643065,43.108996 C 64.643065,43.450104 64.643065,43.536149 64.643065,43.877257 C 64.066869,43.877257 63.682739,43.877257 63.106543,43.877257 C 63.106543,43.536149 63.106543,43.450104 63.106543,43.108996 C 63.682739,43.108996 64.066869,43.108996 64.643065,43.108996 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8271);filter:url(#filter8342)" /> +- <path +- id="path8149" +- d="M 57.730253,35.810516 C 57.730253,35.810516 57.730253,35.810516 57.730253,35.810516 C 57.703363,36.369811 57.982242,36.898374 58.457027,37.192618 C 59.392001,37.77035 60.01967,39.222364 60.01967,40.804213 C 60.01967,41.651605 60.7088,42.340735 61.556192,42.340735 L 66.165758,42.340735 C 67.013918,42.340735 67.70228,41.651605 67.70228,40.804213 C 67.70228,39.221595 68.330718,37.77035 69.265691,37.192618 C 69.741245,36.898374 70.018587,36.369811 69.991698,35.811285 C 69.813462,32.148216 67.120707,29.280298 63.861744,29.280298 C 60.60278,29.280298 57.910026,32.148216 57.730253,35.810516 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8273)" /> +- <path +- id="path8151" +- d="M 58.511574,35.0799 C 58.497745,35.358779 58.637569,35.623829 58.874961,35.770567 C 60.045791,36.495037 60.80176,38.16831 60.80176,40.035952 C 60.80176,40.4608 61.145941,40.804213 61.570021,40.804213 L 66.179587,40.804213 C 66.604435,40.804213 66.947848,40.4608 66.947848,40.035952 C 66.947848,38.16831 67.703817,36.495037 68.875415,35.770567 C 69.113576,35.623829 69.251863,35.358779 69.238802,35.0799 C 69.079004,31.827083 66.723516,29.280298 63.874804,29.280298 C 61.026092,29.280298 58.670604,31.827083 58.511574,35.0799 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8275)" /> +- <path +- id="path8153" +- d="M 68.054144,36.194647 C 68.18859,36.082481 68.326108,35.974924 68.470541,35.885806 C 68.449798,35.460958 68.382191,35.051475 68.281549,34.658125 L 59.467291,34.658125 C 59.367417,35.051475 59.299041,35.460958 59.278298,35.885806 C 59.422732,35.974924 59.56025,36.082481 59.694696,36.194647 L 68.054144,36.194647 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8277);filter:url(#filter8354)" /> +- <path +- id="path8155" +- d="M 60.80176,36.194647 C 59.954368,36.194647 59.265238,36.883777 59.265238,37.731169 L 59.265238,54.632911 C 59.265238,55.480303 59.954368,56.169433 60.80176,56.169433 L 66.947848,56.169433 C 67.79524,56.169433 68.48437,55.480303 68.48437,54.632911 L 68.48437,37.731169 C 68.48437,36.883777 67.79524,36.194647 66.947848,36.194647 L 60.80176,36.194647 z M 62.338282,39.267691 L 65.411326,39.267691 L 65.411326,44.645518 L 62.338282,44.645518 L 62.338282,39.267691 z M 65.411326,51.559867 C 65.411326,51.772675 65.411326,52.11532 65.411326,52.328128 C 65.088656,52.328128 62.660952,52.328128 62.338282,52.328128 C 62.338282,52.11532 62.338282,51.772675 62.338282,51.559867 C 62.660952,51.559867 65.088656,51.559867 65.411326,51.559867 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8279)" /> +- <path +- id="path8157" +- d="M 66.947848,36.194647 L 60.80176,36.194647 C 60.37768,36.194647 60.033499,36.53806 60.033499,36.962908 L 60.033499,53.86465 C 60.033499,54.289498 60.37768,54.632911 60.80176,54.632911 L 66.947848,54.632911 C 67.372696,54.632911 67.716109,54.289498 67.716109,53.86465 L 67.716109,36.962908 C 67.716109,36.53806 67.372696,36.194647 66.947848,36.194647 z M 66.179587,52.520193 C 66.179587,52.838253 65.921451,53.096389 65.603391,53.096389 L 62.146217,53.096389 C 61.828157,53.096389 61.570021,52.838253 61.570021,52.520193 L 61.570021,51.367802 C 61.570021,51.049742 61.828157,50.791606 62.146217,50.791606 L 65.603391,50.791606 C 65.921451,50.791606 66.179587,51.049742 66.179587,51.367802 L 66.179587,52.520193 z M 66.179587,44.645518 C 66.179587,45.070366 65.836174,45.413779 65.411326,45.413779 L 62.338282,45.413779 C 61.914202,45.413779 61.570021,45.070366 61.570021,44.645518 L 61.570021,38.49943 C 61.570021,38.074582 61.914202,37.731169 62.338282,37.731169 L 65.411326,37.731169 C 65.836174,37.731169 66.179587,38.074582 66.179587,38.49943 L 66.179587,44.645518 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8281)" /> +- <path +- id="path8159" +- d="M 65.411326,39.267691 C 65.411326,39.692539 65.067913,40.035952 64.643065,40.035952 L 63.106543,40.035952 C 62.682463,40.035952 62.338282,39.692539 62.338282,39.267691 L 62.338282,31.585081 C 62.338282,31.160233 62.682463,30.81682 63.106543,30.81682 L 64.643065,30.81682 C 65.067913,30.81682 65.411326,31.160233 65.411326,31.585081 L 65.411326,39.267691 z" +- i:knockout="Off" +- style="fill:url(#linearGradient8283)" /> +- <rect +- id="rect8161" +- height="7.68261" +- width="1.536522" +- i:knockout="Off" +- y="31.585079" +- x="63.106544" +- style="fill:url(#linearGradient8285)" /> +- </g> +- </g> +- <g +- id="g3412" +- transform="translate(-10,0)"> +- <path +- transform="translate(50,0)" +- clip-path="url(#clipPath7084)" +- sodipodi:nodetypes="cccc" +- style="opacity:0.4;fill:#000000;fill-opacity:1;filter:url(#filter6697)" +- id="path5540" +- d="M 41.879531,115.98249 C 41.879531,115.98249 66.18914,91.672876 66.18914,91.672876 C 66.18914,91.672876 56.836,94.586 46.586,94.586 C 46.586,104.836 41.879531,115.98249 41.879531,115.98249 z " /> +- <path +- sodipodi:nodetypes="csccc" +- d="M 89.172,120 C 89.172,120 101.086,110.086 106.586,104.586 C 112.086,99.086 122,87.172 122,87.172 C 122,87.172 108.25,96 98,96 C 98,106.25 89.172,120 89.172,120 z " +- id="path14523" +- style="fill:url(#linearGradient3416);fill-opacity:1" /> +- </g> +- </g> +-</svg> +diff --git a/manual/conversion.rst b/manual/conversion.rst +index 8fa28e6..6eca538 100644 +--- a/manual/conversion.rst ++++ b/manual/conversion.rst +@@ -735,7 +735,7 @@ output ranging anywhere from decent to unusable, depending on the input PDF. + Comic book collections + ~~~~~~~~~~~~~~~~~~~~~~~~~ + +-A comic book collection is a .cbc file. A .cbc file is a ZIP file that contains other CBZ/CBR files. In addition the ++A comic book collection is a .cbc file. A .cbc file is a ZIP file that contains other CBZ files. In addition the + .cbc file must contain a simple text file called comics.txt, encoded in UTF-8. The comics.txt file must contain + a list of the comics files inside the .cbc file, in the form filename:title, as shown below:: + +diff --git a/manual/faq.rst b/manual/faq.rst +index 0637394..adb2e84 100644 +--- a/manual/faq.rst ++++ b/manual/faq.rst +@@ -18,7 +18,7 @@ What formats does calibre support conversion to/from? + calibre supports the conversion of many input formats to many output formats. + It can convert every input format in the following list, to every output format. + +-*Input Formats:* AZW, AZW3, AZW4, CBZ, CBR, CBC, CHM, DJVU, DOCX, EPUB, FB2, HTML, HTMLZ, LIT, LRF, MOBI, ODT, PDF, PRC, PDB, PML, RB, RTF, SNB, TCR, TXT, TXTZ ++*Input Formats:* AZW, AZW3, AZW4, CBZ, CBC, CHM, DJVU, DOCX, EPUB, FB2, HTML, HTMLZ, LIT, LRF, MOBI, ODT, PDF, PRC, PDB, PML, RB, RTF, SNB, TCR, TXT, TXTZ + + *Output Formats:* AZW3, EPUB, DOCX, FB2, HTMLZ, OEB, LIT, LRF, MOBI, PDB, PMLZ, RB, PDF, RTF, SNB, TCR, TXT, TXTZ, ZIP + +diff --git a/manual/gui.rst b/manual/gui.rst +index 0c38741..54418f7 100644 +--- a/manual/gui.rst ++++ b/manual/gui.rst +@@ -51,7 +51,7 @@ Add books + + 3. **Add books from directories, including sub-directories (Multiple books per directory, assumes every e-book file is a different book)**: Allows you to choose a directory. The directory and all its sub-directories are scanned recursively and any e-books found are added to the library. calibre assumes that each directory contains many books. All e-book files with the same name in a directory are assumed to be the same book in different formats. E-books with different names are added as different books. + +- 4. **Add multiple books from archive (ZIP/RAR)**: Allows you to add multiple e-books that are stored inside the selected ZIP or RAR files. It is a convenient shortcut that avoids having to first unzip the archive and then add the books via one of the above two options. ++ 4. **Add multiple books from archive (ZIP)**: Allows you to add multiple e-books that are stored inside the selected ZIP files. It is a convenient shortcut that avoids having to first unzip the archive and then add the books via one of the above two options. + + 5. **Add empty book (Book Entry with no formats)**: Allows you to create a blank book record. This can be used to then manually fill out the information about a book that you may not have yet in your collection. + +diff --git a/recipes/economist.recipe b/recipes/economist.recipe +index 0116528..4766232 100644 +--- a/recipes/economist.recipe ++++ b/recipes/economist.recipe +@@ -39,7 +39,7 @@ class Economist(BasicNewsRecipe): + INDEX = 'https://www.economist.com/printedition' + description = ( + 'Global news and current affairs from a European' +- ' perspective. Best downloaded on Friday mornings (GMT)' ++ ' perspective. Best downloaded on Saturday mornings (GMT)' + ) + extra_css = ''' + .headline {font-size: x-large;} +diff --git a/resources/calibre-portable.bat a/resources/calibre-portable.bat +deleted file mode 100644 +index e30cb26..0000000 +--- a/resources/calibre-portable.bat ++++ /dev/null +@@ -1,207 +0,0 @@ +-@echo OFF
+-REM Calibre-Portable.bat
+-REM ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
+-REM
+-REM Batch File to start a Calibre configuration on Windows
+-REM giving explicit control of the location of:
+-REM - Calibre Program Files
+-REM - Calibre Library Files
+-REM - Calibre Config Files
+-REM - Calibre Metadata database
+-REM - Calibre Source files
+-REM - Calibre Temp Files
+-REM By setting the paths correctly it can be used to run:
+-REM - A "portable calibre" off a USB stick.
+-REM - A network installation with local metadata database
+-REM (for performance) and books stored on a network share
+-REM - A local installation using customised settings
+-REM
+-REM If trying to run off a USB stick then the folder structure
+-REM shown below is recommended (relative to the location of
+-REM this batch file). This can structure can also be used
+-REM when running of a local hard disk if you want to get the
+-REM level of control this batch file provides.
+-REM - Calibre2 Location of program files
+-REM - CalibreConfig Location of Configuration files
+-REM - CalibreLibrary Location of Books and metadata
+-REM - CalibreSource Location of Calibre Source files (Optional)
+-REM
+-REM This batch file is designed so that if you create the recommended
+-REM folder structure then it can be used 'as is' without modification.
+-REM
+-REM More information on the Environment Variables used by Calibre can
+-REM be found at:
+-REM https://manual.calibre-ebook.com/customize.html#environment-variables
+-REM
+-REM The documentation for this file in the Calibre manual can be found at:
+-REM https://manual.calibre-ebook.com/portable.html
+-REM
+-REM CHANGE HISTORY
+-REM ¬¬¬¬¬¬¬¬¬¬¬¬¬¬
+-REM 22 Jan 2012 itimpi - Updated to keep it in line with the calibre-portable.sh
+-REM file for Linux systems
+-
+-
+-REM -------------------------------------
+-REM Set up Calibre Config folder
+-REM
+-REM This is where user specific settings
+-REM are stored.
+-REM -------------------------------------
+-
+-IF EXIST CalibreConfig (
+- SET CALIBRE_CONFIG_DIRECTORY=%cd%\CalibreConfig
+- ECHO CONFIG FILES: %cd%\CalibreConfig
+-)
+-
+-
+-REM --------------------------------------------------------------
+-REM Specify Location of ebooks
+-REM
+-REM Location where Book files are located
+-REM Either set explicit path, or if running from a USB stick
+-REM a relative path can be used to avoid need to know the
+-REM drive letter of the USB stick.
+-REM
+-REM Comment out any of the following that are not to be used
+-REM (although leaving them in does not really matter)
+-REM --------------------------------------------------------------
+-
+-IF EXIST U:\eBooks\CalibreLibrary (
+- SET CALIBRE_LIBRARY_DIRECTORY=U:\eBOOKS\CalibreLibrary
+- ECHO LIBRARY FILES: U:\eBOOKS\CalibreLibrary
+-)
+-IF EXIST CalibreLibrary (
+- SET CALIBRE_LIBRARY_DIRECTORY=%cd%\CalibreLibrary
+- ECHO LIBRARY FILES: %cd%\CalibreLibrary
+-)
+-
+-
+-REM --------------------------------------------------------------
+-REM Specify Location of metadata database (optional)
+-REM
+-REM Location where the metadata.db file is located. If not set
+-REM the same location as Books files will be assumed. This.
+-REM option is typically set to get better performance when the
+-REM Library is on a (slow) network drive. Putting the metadata.db
+-REM file locally then makes gives a big performance improvement.
+-REM
+-REM NOTE. If you use this option, then the ability to switch
+-REM libraries within Calibre will be disabled. Therefore
+-REM you do not want to set it if the metadata.db file
+-REM is at the same location as the book files.
+-REM
+-REM Another point to watch is that plugins can cause problems
+-REM as they often store absolute path information
+-REM --------------------------------------------------------------
+-
+-IF EXIST %cd%\CalibreMetadata\metadata.db (
+- IF NOT "%CALIBRE_LIBRARY_DIRECTORY%" == "%cd%\CalibreMetadata" (
+- SET CALIBRE_OVERRIDE_DATABASE_PATH=%cd%\CalibreMetadata\metadata.db
+- ECHO DATABASE: %cd%\CalibreMetadata\metadata.db
+- ECHO '
+- ECHO ***CAUTION*** Library Switching will be disabled
+- ECHO '
+- )
+-)
+-
+-REM --------------------------------------------------------------
+-REM Specify Location of source (optional)
+-REM
+-REM It is easy to run Calibre from source
+-REM Just set the environment variable to where the source is located
+-REM When running from source the GUI will have a '*' after the version.
+-REM number that is displayed at the bottom of the Calibre main screen.
+-REM
+-REM More information on setting up a development environment can
+-REM be found at:
+-REM https://manual.calibre-ebook.com/develop.html#develop
+-REM --------------------------------------------------------------
+-
+-IF EXIST CalibreSource\src (
+- SET CALIBRE_DEVELOP_FROM=%cd%\CalibreSource\src
+- ECHO SOURCE FILES: %cd%\CalibreSource\src
+-) ELSE (
+- ECHO SOURCE FILES: *** Not being Used ***
+-)
+-
+-
+-REM --------------------------------------------------------------
+-REM Specify Location of calibre Windows binaries (optional)
+-REM
+-REM To avoid needing Calibre to be set in the search path, ensure
+-REM that Calibre Program Files is current directory when starting.
+-REM The following test falls back to using search path .
+-REM This folder can be populated by copying the Calibre2 folder from
+-REM an existing installation or by installing direct to here.
+-REM
+-REM NOTE. Do not try and put both Windows and Linux binaries into
+-REM same folder as this can cause problems.
+-REM --------------------------------------------------------------
+-
+-IF EXIST %cd%\Calibre2 (
+- CD %cd%\Calibre2
+- ECHO PROGRAM FILES: %cd%
+-) ELSE (
+- ECHO PROGRAM FILES: *** Use System search PATH ***
+-)
+-
+-
+-REM --------------------------------------------------------------
+-REM Location of Calibre Temporary files (optional)
+-REM
+-REM Calibre creates a lot of temporary files while running
+-REM In theory these are removed when Calibre finishes, but
+-REM in practise files can be left behind (particularily if
+-REM any errors occur). Using this option allows some
+-REM explicit clean-up of these files.
+-REM If not set Calibre uses the normal system TEMP location
+-REM --------------------------------------------------------------
+-
+-SET CALIBRE_TEMP_DIR=%TEMP%\CALIBRE_TEMP
+-ECHO TEMPORARY FILES: %CALIBRE_TEMP_DIR%
+-
+-IF EXIST "%CALIBRE_TEMP_DIR%" RMDIR /s /q "%CALIBRE_TEMP_DIR%"
+-MKDIR "%CALIBRE_TEMP_DIR%"
+-REM set the following for any components that do
+-REM not obey the CALIBRE_TEMP_DIR setting
+-SET TMP=%CALIBRE_TEMP_DIR%
+-SET TEMP=%CALIBRE_TEMP_DIR%
+-
+-
+-REM --------------------------------------------------------------
+-REM Set the Interface language (optional)
+-REM
+-REM If not set Calibre uses the language set in Preferences
+-REM --------------------------------------------------------------
+-
+-SET CALIBRE_OVERRIDE_LANG=EN
+-ECHO INTERFACE LANGUAGE: %CALIBRE_OVERRIDE_LANG%
+-
+-REM ----------------------------------------------------------
+-REM The following gives a chance to check the settings before
+-REM starting Calibre. It can be commented out if not wanted.
+-REM ----------------------------------------------------------
+-
+-ECHO '
+-ECHO Press CTRL-C if you do not want to continue
+-PAUSE
+-
+-
+-REM --------------------------------------------------------
+-REM Start up the calibre program.
+-REM
+-REM The use of 'belownormal' priority helps keep the system
+-REM responsive while Calibre is running. Within Calibre itself
+-REM the backgound processes should be set to run with 'low' priority.
+-
+-REM Using the START command starts up Calibre in a separate process.
+-REM If used without /WAIT option it launches Calibre and contines batch file.
+-REM normally this would simply run off the end and close the Command window.
+-REM Use with /WAIT to wait until Calibre completes to run a task on exit
+-REM --------------------------------------------------------
+-
+-ECHO "Starting up Calibre"
+-ECHO OFF
+-ECHO %cd%
+-START /belownormal Calibre --with-library "%CALIBRE_LIBRARY_DIRECTORY%"
+diff --git a/resources/calibre-portable.sh a/resources/calibre-portable.sh +deleted file mode 100755 +index beafb10..0000000 +--- a/resources/calibre-portable.sh ++++ /dev/null +@@ -1,395 +0,0 @@ +-#!/bin/bash +-# Calibre-Portable.sh +-# ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ +-# +-# Shell script File to start a Calibre configuration on Linux +-# giving explicit control of the location of: +-# - Calibre Program Files +-# - Calibre Library Files +-# - Calibre Config Files +-# - Calibre Metadata database +-# - Calibre Source files +-# - Calibre Temp Files +-# By setting the paths correctly it can be used to run: +-# - A "portable calibre" off a USB stick. +-# - A network installation with local metadata database +-# (for performance) and books stored on a network share +-# - A local installation using customised settings +-# +-# If trying to run off a USB stick then the folder structure +-# shown below is recommended (relative to the location of +-# this script file). This structure can also be used when +-# running of a local hard disk if you want to get the level +-# of control this script file provides. +-# - Calibre Location of linux program files +-# - CalibreConfig Location of Configuration files +-# - CalibreLibrary Location of Books and metadata +-# - CalibreSource Location of Calibre Source files (Optional) +-# +-# This script file is designed so that if you create the recommended +-# folder structure then it can be used 'as is' without modification. +-# To use your own structure, simply set the variables in the generated configuration file. +-# +-# More information on the Environment Variables used by Calibre can +-# be found at: +-# https://manual.calibre-ebook.com/customize.html#environment-variables +-# +-# NOTE: It is quite possible to have both Windows and Linux binaries on the same +-# USB stick but set up to use the same calibre settings otherwise. +-# In this case you use: +-# - calibre-portable.bat to run the Windows version +-# - calibre-portable.sh to run the Linux version +-# +-# CHANGE HISTORY +-# ¬¬¬¬¬¬¬¬¬¬¬¬¬¬ +-# 22 Jan 2012 itimpi ----- First version based on the calibre-portable.bat file for Windows +-# It should have identical functionality but for a linux environment. +-# It might work on MacOS but that has not been validated. +-# +-# 02 Feb 2015 eschwartz -- Fix path issues, allow setting each location in one variable, allow +-# specifying a list of libraries in descending order of priority. +-# +-# 01 Apr 2015 eschwartz -- Fix temp dir and permissions, migrate settings to configuration file. +- +-# ----------------------------------------------------- +-# On exit, make sure all files are marked world-writable. +-# This allows you to use calibre on other computers +-# without changing fstab rules and suchlike. +-# You can now use an ext3 drive instead of vfat so the +-# binaries and script will be executable. +-# ----------------------------------------------------- +- +-cleanup() { +- # Check if user has disabled cleanup +- if [[ "${CALIBRE_NO_CLEANUP}" = "1" ]]; then +- return +- fi +- +- for i in "${CONFIG_DIR}" "${CALIBRE_LIBRARY_DIRECTORY}" \ +- "${METADATA_DIR}" "${SRC_DIR}" "${BIN_DIR}"; do +- if [[ -d "${i}" ]]; then +- chmod a+rwX "${i}" +- fi +- done +- rm -rf "${CALIBRE_TEMP_DIR}" +-} +- +-trap cleanup EXIT +- +-# ------------------------------------------------ +-# Interactive options. +-# ------------------------------------------------ +- +-usage() +-{ +- cat <<- _EOF_ +- Usage: calibre-portable.sh [OPTIONS] +- Run a portable instance of calibre. +- +- OPTIONS +- -u, --upgrade-install upgrade or install the portable calibre binaries +- -h, --help show this usage message then exit +-_EOF_ +-} +- +-do_upgrade() +-{ +- wget -nv -O- https://raw.githubusercontent.com/kovidgoyal/calibre/master/setup/linux-installer.py \ +- | python -c "import sys; main=lambda x,y:sys.stderr.write('Download failed\n'); \ +- exec(sys.stdin.read()); main('$(pwd)', True)" +-} +- +-while [[ "${#}" -gt 0 ]]; do +- case "${1}" in +- -h|--help) +- usage +- exit +- ;; +- -u|--upgrade-install) +- do_upgrade +- exit +- ;; +- *) +- echo "calibre-portable.sh: unecognzed option '${1}'" +- echo "Try 'calibre-portable.sh --help' for more information." +- exit 1 +- esac +- shift +-done +- +-# ------------------------------------------------ +-# Create or read configuration file. +-# ------------------------------------------------ +- +-if [[ -f "$(pwd)/calibre-portable.conf" ]]; then +- source "$(pwd)/calibre-portable.conf" +-else +- cat <<- _EOF_ > $(pwd)/calibre-portable.conf +- # Configuration file for calibre-portable. Generated on $(date) +- # Settings in here will override the defaults specified in the portable launcher. +- +- ################################################## +- # Set up calibre config folder. +- # +- # This is where user specific settings are stored. +- ################################################## +- +- # CONFIG_DIR="\$(pwd)/CalibreConfig" +- +- ################################################################ +- # -- Specify the location of your calibre library. +- # +- # -- Either set an explicit path, or if running from a USB stick +- # -- a relative path can be used to avoid needing to know the +- # -- mount point of the USB stick. +- # +- # -- Specify a list of libraries here, by adding new elements to the +- # -- array. The first value of LIBRARY_DIRS that is an existing directory +- # -- will be used as the current calibre library. +- ################################################################ +- +- # LIBRARY_DIRS[0]="/path/to/first/CalibreLibrary" +- # LIBRARY_DIRS[1]="/path/to/second/CalibreLibrary" +- # LIBRARY_DIRS[2]="\$(pwd)/CalibreLibrary" +- +- ################################################################ +- # -- Specify location of metadata database (optional). +- # +- # -- Location where the metadata.db file is located. If not set +- # -- then the same location as the library folder will be assumed. +- # -- This option is typically used to get better performance when the +- # -- library is on a (slow) network drive. Putting the metadata.db +- # -- file locally then makes gives a big performance improvement. +- # +- # -- NOTE. If you use this option, then the ability to switch +- # -- libraries within calibre will be disabled. Therefore +- # -- you do not want to set it if the metadata.db file +- # -- is at the same location as the book files. +- # +- # -- Another point to watch is that plugins can cause problems +- # -- as they often store absolute path information. +- ################################################################ +- +- # METADATA_DIR="\$(pwd)/CalibreMetadata" +- +- ################################################################ +- # -- Specify location of source (optional). +- # +- # -- It is easy to run calibre from source. Just set the environment +- # -- variable to where the source is located. When running from source +- # -- the GUI will have a '*' after the version number that is displayed +- # -- at the bottom of the calibre main screen. +- # +- # -- More information on setting up a development environment can +- # -- be found at: +- # -- https://manual.calibre-ebook.com/develop.html#develop +- ################################################################ +- +- # SRC_DIR="$\(pwd)/CalibreSource/src" +- +- ################################################################ +- # -- Specify location of calibre linux binaries (optional). +- # +- # -- To avoid needing Calibre to be set in the search path, ensure +- # -- that if Calibre Program Files exists, we manually specify the +- # -- location of the binary. +- # -- The following test falls back to using the search path, or you +- # -- can specifically use the search path by leaving the BIN_DIR blank. +- # +- # -- This folder can be populated by copying the /opt/calibre folder +- # -- from an existing installation or by installing direct to here. +- # +- # -- NOTE. Do not try and put both Windows and Linux binaries into +- # -- the same folder as this can cause problems. +- ################################################################ +- +- # BIN_DIR="$\(pwd)/calibre" +- +- ################################################################ +- # -- Location of calibre temporary files (optional). +- # +- # -- calibre creates a lot of temporary files while running +- # -- In theory these are removed when calibre finishes, but +- # -- in practice files can be left behind (particularly if +- # -- a crash occurs). Using this option allows some +- # -- explicit clean-up of these files. +- # -- If not set calibre uses the normal system TEMP location +- ################################################################ +- +- # CALIBRE_TEMP_DIR="/tmp/CALIBRE_TEMP_\$(tr -dc 'A-Za-z0-9'</dev/urandom |fold -w 7 | head -n1)" +- +- ################################################################ +- # -- Set the Interface language (optional). +- # +- # -- Defaults to whatever is stored in Preferences +- ################################################################ +- +- # CALIBRE_OVERRIDE_LANG="EN" +- +- ################################################################## +- # -- Wait until user can check the settings before starting calibre. +- # -- (default=yes) +- # +- # -- Set CALIBRE_NOCONFIRM_START to "1" to disable. +- # -- Set CALIBRE_NOCONFIRM_START to "0" to enable. +- ################################################################## +- +- # CALIBRE_NOCONFIRM_START=0 +- +- ################################################################## +- # -- Cleanup all files when done (default=yes). +- # +- # -- On launcher termination, change all library, configuration, +- # -- source, binary, etc. files to world-writable, and remove the +- # -- temporary folder. +- # +- # -- Technically this is a security risk. This is a portableapp, so +- # -- we don't care. Disable this if *you* do. +- # +- # -- Set CALIBRE_NO_CLEANUP to "1" to disable. +- # -- Set CALIBRE_NO_CLEANUP to "0" to enable. +- ################################################################## +- +- # CALIBRE_NO_CLEANUP=0 +- +- ################################################################## +- # -- Set and export any other environment variables needed. More +- # -- information can be found at: +- # https://manual.calibre-ebook.com/customize.html#environment-variables +- ################################################################## +- +- # some other example variables calibre recognizes: +- # export CALIBRE_NO_NATIVE_FILEDIALOGS= +- # export CALIBRE_NO_NATIVE_MENUBAR= +- # export CALIBRE_IGNORE_SYSTEM_THEME= +- # export http_proxy= +- _EOF_ +- +- echo "Generating default configuration file at $(pwd)/calibre-portable.conf" +- echo "Set any non-default options here." +-fi +- +-# ------------------------------------------------ +-# Set up calibre config folder. +-# ------------------------------------------------ +- +-: ${CONFIG_DIR:="$(pwd)/CalibreConfig"} +- +-if [[ -d "${CONFIG_DIR}" ]]; then +- export CALIBRE_CONFIG_DIRECTORY="${CONFIG_DIR}" +- echo "CONFIG FILES: ${CONFIG_DIR}" +-else +- echo -e "\033[0;31mCONFIG FILES: Not found\033[0m" +-fi +-echo "--------------------------------------------------" +- +-# -------------------------------------------------------------- +-# Specify the location of your calibre library. +-# -------------------------------------------------------------- +- +-: ${LIBRARY_DIRS[0]:="/path/to/first/CalibreLibrary"} +-: ${LIBRARY_DIRS[1]:="/path/to/second/CalibreLibrary"} +-: ${LIBRARY_DIRS[2]:="$(pwd)/CalibreLibrary"} +- +-for LIBRARY_DIR in "${LIBRARY_DIRS[@]}"; do +- if [[ -d "${LIBRARY_DIR}" ]]; then +- CALIBRE_LIBRARY_DIRECTORY="${LIBRARY_DIR}" +- echo "LIBRARY FILES: ${CALIBRE_LIBRARY_DIRECTORY}" +- break +- fi +-done +- +-[[ -z "${CALIBRE_LIBRARY_DIRECTORY}" ]] && echo -e "\033[0;31mLIBRARY FILES: Not found\033[0m" +-echo "--------------------------------------------------" +- +-# -------------------------------------------------------------- +-# Specify location of metadata database (optional). +-# -------------------------------------------------------------- +- +-: ${METADATA_DIR:="$(pwd)/CalibreMetadata"} +- +-if [[ -f "${METADATA_DIR}/metadata.db" && "${CALIBRE_LIBRARY_DIRECTORY}" != "${METADATA_DIR}" ]]; then +- export CALIBRE_OVERRIDE_DATABASE_PATH="${METADATA_DIR}/metadata.db" +- echo "DATABASE: ${METADATA_DIR}/metadata.db" +- echo +- echo -e "\033[0;31m***CAUTION*** Library Switching will be disabled\033[0m" +- echo +- echo "--------------------------------------------------" +-fi +- +-# -------------------------------------------------------------- +-# Specify location of source (optional). +-# -------------------------------------------------------------- +- +-: ${SRC_DIR:="$(pwd)/CalibreSource/src"} +- +-if [[ -d "${SRC_DIR}" ]]; then +- export CALIBRE_DEVELOP_FROM="${SRC_DIR}" +- echo "SOURCE FILES: ${SRC_DIR}" +-else +- echo "SOURCE FILES: *** Not being Used ***" +-fi +-echo "--------------------------------------------------" +- +-# -------------------------------------------------------------- +-# Specify location of calibre linux binaries (optional). +-# -------------------------------------------------------------- +- +-: ${BIN_DIR:="$(pwd)/calibre"} +- +-if [[ -d "${BIN_DIR}" ]]; then +- CALIBRE="${BIN_DIR}/calibre" +- echo "PROGRAM FILES: ${BIN_DIR}" +-elif [[ -z "${BIN_DIR}" ]]; then +- CALIBRE="calibre" +- echo "PROGRAM FILES: Using System search path" +-else +- CALIBRE="calibre" +- echo "PROGRAM FILES: No portable copy found." +- echo "To intall a portable copy, run './calibre-portable.sh --upgrade-install'" +- echo -e "\033[0;31m*** Using System search path instead***\033[0m" +-fi +-echo "--------------------------------------------------" +- +-# -------------------------------------------------------------- +-# Location of calibre temporary files (optional). +-# -------------------------------------------------------------- +- +-: ${CALIBRE_TEMP_DIR:="/tmp/CALIBRE_TEMP_$(tr -dc 'A-Za-z0-9'</dev/urandom |fold -w 7 | head -n1)"} +- +-if [[ ! -z "${CALIBRE_TEMP_DIR}" ]]; then +- export CALIBRE_TEMP_DIR +- export CALIBRE_CACHE_DIRECTORY="${CALIBRE_TEMP_DIR}/calibre_cache" +- echo "TEMPORARY FILES: ${CALIBRE_TEMP_DIR}" +- echo "--------------------------------------------------" +- rm -rf "${CALIBRE_TEMP_DIR}" +- mkdir "${CALIBRE_TEMP_DIR}" +- mkdir "${CALIBRE_CACHE_DIRECTORY}" +-fi +- +-# -------------------------------------------------------------- +-# Set the Interface language (optional). +-# -------------------------------------------------------------- +- +-if [[ "${CALIBRE_OVERRIDE_LANG}" != "" ]]; then +- export CALIBRE_OVERRIDE_LANG +- echo "INTERFACE LANGUAGE: ${CALIBRE_OVERRIDE_LANG}" +-fi +- +-# --------------------------------------------------------------- +-# Wait until user can check the settings before starting calibre. +-# --------------------------------------------------------------- +- +-if [[ "${CALIBRE_NOCONFIRM_START}" != "1" ]]; then +- echo +- echo "Press CTRL-C if you do not want to continue" +- echo "Press ENTER to continue and start Calibre" +- read DUMMY +-fi +- +-# -------------------------------------------------------- +-# Start up the calibre program. +-# -------------------------------------------------------- +- +-echo "Starting up Calibre from portable directory \"$(pwd)\"" +-$CALIBRE --with-library "${CALIBRE_LIBRARY_DIRECTORY}" +diff --git a/resources/images/lt.png b/resources/images/lt.png +index 81adc85..ee24bd6 100644 +Binary files a/resources/images/lt.png and b/resources/images/lt.png differ +diff --git a/resources/images/mimetypes/cbr.png a/resources/images/mimetypes/cbr.png +deleted file mode 100644 +index 34052fa..0000000 +Binary files a/resources/images/mimetypes/cbr.png and /dev/null differ +diff --git a/resources/images/mimetypes/rar.png a/resources/images/mimetypes/rar.png +deleted file mode 100644 +index b320d28..0000000 +Binary files a/resources/images/mimetypes/rar.png and /dev/null differ +diff --git a/resources/mime.types b/resources/mime.types +index b8acaaa..9ea4742 100644 +--- a/resources/mime.types ++++ b/resources/mime.types +@@ -138,7 +138,6 @@ application/prs.cww cww + application/prs.nprend + application/prs.plucker + application/qsig +-application/rar rar + application/rdf+xml rdf + application/reginfo+xml rif + application/relax-ng-compact-syntax rnc +@@ -849,7 +848,6 @@ application/x-pkcs7-certreqresp p7r + application/x-pkcs7-crl crl + application/x-python-code pyc pyo + application/x-quicktimeplayer qtl +-application/x-rar-compressed rar + application/x-redhat-package-manager rpm + application/x-sh sh + application/x-shar shar +@@ -1372,7 +1370,6 @@ application/x-mobipocket-subscription pobi + application/x-kindle-application azw2 + application/x-mobi8-ebook azw3 + application/x-cbz cbz +-application/x-cbr cbr + application/x-cb7 cb7 + application/x-cbc cbc + application/x-koboreader-ebook kobo +diff --git a/session.vim b/session.vim +index d5ecb06..b3e40d0 100644 +--- a/session.vim ++++ b/session.vim +@@ -11,7 +11,6 @@ let g:syntastic_cpp_include_dirs = [ + \'/usr/include/freetype2', + \'/usr/include/fontconfig', + \'src/qtcurve/common', 'src/qtcurve', +- \'src/unrar', + \'src/qt-harfbuzz/src', + \'/usr/include/ImageMagick', + \] +diff --git a/setup/resources.py b/setup/resources.py +index 7fb34bd..3e5ef3b 100644 +--- a/setup/resources.py ++++ b/setup/resources.py +@@ -341,7 +341,7 @@ class Resources(Command): # {{{ + log = Log() + # log.outputs = [] + for inf in supported_input_formats(): +- if inf in ('zip', 'rar', 'oebzip'): ++ if inf in ('zip', 'oebzip'): + continue + for ouf in available_output_formats(): + of = ouf if ouf == 'oeb' else 'dummy.'+ouf +diff --git a/src/calibre/__init__.py b/src/calibre/__init__.py +index d96f48f..d0855ec 100644 +--- a/src/calibre/__init__.py ++++ b/src/calibre/__init__.py +@@ -292,10 +292,7 @@ def extract(path, dir): + # First use the file header to identify its type + with open(path, 'rb') as f: + id_ = f.read(3) +- if id_ == b'Rar': +- from calibre.utils.unrar import extract as rarextract +- extractor = rarextract +- elif id_.startswith(b'PK'): ++ if id_.startswith(b'PK'): + from calibre.libunzip import extract as zipextract + extractor = zipextract + if extractor is None: +@@ -304,9 +301,6 @@ def extract(path, dir): + if ext in ['zip', 'cbz', 'epub', 'oebzip']: + from calibre.libunzip import extract as zipextract + extractor = zipextract +- elif ext in ['cbr', 'rar']: +- from calibre.utils.unrar import extract as rarextract +- extractor = rarextract + if extractor is None: + raise Exception('Unknown archive type') + extractor(path, dir) +diff --git a/src/calibre/customize/builtins.py b/src/calibre/customize/builtins.py +index f870de8..0474068 100644 +--- a/src/calibre/customize/builtins.py ++++ b/src/calibre/customize/builtins.py +@@ -132,7 +132,7 @@ plugins += [HTML2ZIP, PML2PMLZ, TXT2TXTZ, ArchiveExtract,] + class ComicMetadataReader(MetadataReaderPlugin): + + name = 'Read comic metadata' +- file_types = set(['cbr', 'cbz']) ++ file_types = set(['cbz']) + description = _('Extract cover from comic files') + + def customization_help(self, gui=False): +@@ -143,19 +143,14 @@ class ComicMetadataReader(MetadataReaderPlugin): + pos = stream.tell() + id_ = stream.read(3) + stream.seek(pos) +- if id_ == b'Rar': +- ftype = 'cbr' +- elif id_.startswith(b'PK'): ++ if id_.startswith(b'PK'): + ftype = 'cbz' +- if ftype == 'cbr': +- from calibre.utils.unrar import extract_cover_image +- else: + from calibre.libunzip import extract_cover_image + from calibre.ebooks.metadata import MetaInformation + ret = extract_cover_image(stream) + mi = MetaInformation(None, None) + stream.seek(0) +- if ftype in {'cbr', 'cbz'}: ++ if ftype in {'cbz'}: + series_index = self.site_customization + if series_index not in {'volume', 'issue'}: + series_index = 'volume' +@@ -354,17 +349,6 @@ class PMLMetadataReader(MetadataReaderPlugin): + return get_metadata(stream) + + +-class RARMetadataReader(MetadataReaderPlugin): +- +- name = 'Read RAR metadata' +- file_types = set(['rar']) +- description = _('Read metadata from e-books in RAR archives') +- +- def get_metadata(self, stream, ftype): +- from calibre.ebooks.metadata.rar import get_metadata +- return get_metadata(stream) +- +- + class RBMetadataReader(MetadataReaderPlugin): + + name = 'Read RB metadata' +diff --git a/src/calibre/customize/ui.py b/src/calibre/customize/ui.py +index cea6dee..6e3e531 100644 +--- a/src/calibre/customize/ui.py ++++ b/src/calibre/customize/ui.py +@@ -527,7 +527,7 @@ def available_input_formats(): + if not is_disabled(plugin): + for format in plugin.file_types: + formats.add(format) +- formats.add('zip'), formats.add('rar') ++ formats.add('zip') + return formats + + +diff --git a/src/calibre/devices/kobo/driver.py b/src/calibre/devices/kobo/driver.py +index 6b3566a..ca75d58 100644 +--- a/src/calibre/devices/kobo/driver.py ++++ b/src/calibre/devices/kobo/driver.py +@@ -78,7 +78,7 @@ class KOBO(USBMS): + book_class = Book + + # Ordered list of supported formats +- FORMATS = ['kepub', 'epub', 'pdf', 'txt', 'cbz', 'cbr'] ++ FORMATS = ['kepub', 'epub', 'pdf', 'txt', 'cbz'] + CAN_SET_METADATA = ['collections'] + + VENDOR_ID = [0x2237] +diff --git a/src/calibre/devices/misc.py b/src/calibre/devices/misc.py +index d27348a..874c078 100644 +--- a/src/calibre/devices/misc.py ++++ b/src/calibre/devices/misc.py +@@ -448,7 +448,7 @@ class WAYTEQ(USBMS): + EBOOK_DIR_MAIN = 'Documents' + SCAN_FROM_ROOT = True + +- VENDOR_NAME = ['ROCKCHIP', 'CBR'] ++ VENDOR_NAME = ['ROCKCHIP'] + WINDOWS_MAIN_MEM = WINDOWS_CARD_A_MEM = ['RK28_SDK_DEMO', 'EINK_EBOOK_READE'] + SUPPORTS_SUB_DIRS = True + +diff --git a/src/calibre/devices/mtp/filesystem_cache.py b/src/calibre/devices/mtp/filesystem_cache.py +index ffc5280..79be51e 100644 +--- a/src/calibre/devices/mtp/filesystem_cache.py ++++ b/src/calibre/devices/mtp/filesystem_cache.py +@@ -18,7 +18,7 @@ from calibre.utils.date import local_tz, as_utc + from calibre.utils.icu import sort_key, lower + from calibre.ebooks import BOOK_EXTENSIONS + +-bexts = frozenset(BOOK_EXTENSIONS) - {'mbp', 'tan', 'rar', 'zip', 'xml'} ++bexts = frozenset(BOOK_EXTENSIONS) - {'mbp', 'tan', 'zip', 'xml'} + + + class FileOrFolder(object): +diff --git a/src/calibre/ebooks/__init__.py b/src/calibre/ebooks/__init__.py +index 699be34..5604e5d 100644 +--- a/src/calibre/ebooks/__init__.py ++++ b/src/calibre/ebooks/__init__.py +@@ -30,9 +30,9 @@ class ParserError(ValueError): + pass + + +-BOOK_EXTENSIONS = ['lrf', 'rar', 'zip', 'rtf', 'lit', 'txt', 'txtz', 'text', 'htm', 'xhtm', ++BOOK_EXTENSIONS = ['lrf', 'zip', 'rtf', 'lit', 'txt', 'txtz', 'text', 'htm', 'xhtm', + 'html', 'htmlz', 'xhtml', 'pdf', 'pdb', 'updb', 'pdr', 'prc', 'mobi', 'azw', 'doc', +- 'epub', 'fb2', 'djv', 'djvu', 'lrx', 'cbr', 'cbz', 'cbc', 'oebzip', ++ 'epub', 'fb2', 'djv', 'djvu', 'lrx', 'cbz', 'cbc', 'oebzip', + 'rb', 'imp', 'odt', 'chm', 'tpz', 'azw1', 'pml', 'pmlz', 'mbp', 'tan', 'snb', + 'xps', 'oxps', 'azw4', 'book', 'zbf', 'pobi', 'docx', 'docm', 'md', + 'textile', 'markdown', 'ibook', 'ibooks', 'iba', 'azw3', 'ps', 'kepub', 'kfx'] +diff --git a/src/calibre/ebooks/comic/__init__.py b/src/calibre/ebooks/comic/__init__.py +index f47e177..1767826 100644 +--- a/src/calibre/ebooks/comic/__init__.py ++++ b/src/calibre/ebooks/comic/__init__.py +@@ -4,7 +4,7 @@ __copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net' + __docformat__ = 'restructuredtext en' + + ''' +-Convert CBR/CBZ files to LRF. ++Convert CBZ files to LRF. + ''' + + import sys +diff --git a/src/calibre/ebooks/conversion/plugins/comic_input.py b/src/calibre/ebooks/conversion/plugins/comic_input.py +index f64acc5..2020bae 100644 +--- a/src/calibre/ebooks/conversion/plugins/comic_input.py ++++ b/src/calibre/ebooks/conversion/plugins/comic_input.py +@@ -18,8 +18,8 @@ class ComicInput(InputFormatPlugin): + + name = 'Comic Input' + author = 'Kovid Goyal' +- description = 'Optimize comic files (.cbz, .cbr, .cbc) for viewing on portable devices' +- file_types = set(['cbz', 'cbr', 'cbc']) ++ description = 'Optimize comic files (.cbz, .cbc) for viewing on portable devices' ++ file_types = set(['cbz', 'cbc']) + is_image_collection = True + core_usage = -1 + +diff --git a/src/calibre/ebooks/conversion/plumber.py b/src/calibre/ebooks/conversion/plumber.py +index 8131e99..060a75f 100644 +--- a/src/calibre/ebooks/conversion/plumber.py ++++ b/src/calibre/ebooks/conversion/plumber.py +@@ -43,7 +43,7 @@ various stages of conversion. The stages are: + + def supported_input_formats(): + fmts = available_input_formats() +- for x in ('zip', 'rar', 'oebzip'): ++ for x in ('zip', 'oebzip'): + fmts.add(x) + return fmts + +@@ -64,7 +64,7 @@ class CompositeProgressReporter(object): + self.global_reporter(global_frac, msg) + + +-ARCHIVE_FMTS = ('zip', 'rar', 'oebzip') ++ARCHIVE_FMTS = ('zip', 'oebzip') + + + class Plumber(object): +diff --git a/src/calibre/ebooks/metadata/archive.py b/src/calibre/ebooks/metadata/archive.py +index bf85e58..5a1d03b 100644 +--- a/src/calibre/ebooks/metadata/archive.py ++++ b/src/calibre/ebooks/metadata/archive.py +@@ -29,8 +29,6 @@ def archive_type(stream): + ans = None + if id_ == stringFileHeader: + ans = 'zip' +- elif id_.startswith('Rar'): +- ans = 'rar' + try: + stream.seek(pos) + except: +@@ -42,24 +40,16 @@ class ArchiveExtract(FileTypePlugin): + name = 'Archive Extract' + author = 'Kovid Goyal' + description = _('Extract common e-book formats from archive files ' +- '(ZIP/RAR). Also try to autodetect if they are actually ' +- 'CBZ/CBR files.') +- file_types = set(['zip', 'rar']) ++ '(ZIP). Also try to autodetect if they are actually ' ++ 'CBZ files.') ++ file_types = set(['zip']) + supported_platforms = ['windows', 'osx', 'linux'] + on_import = True + + def run(self, archive): + from calibre.utils.zipfile import ZipFile +- is_rar = archive.lower().endswith('.rar') +- if is_rar: +- from calibre.utils.unrar import extract_member, names +- else: +- zf = ZipFile(archive, 'r') +- +- if is_rar: +- fnames = list(names(archive)) +- else: +- fnames = zf.namelist() ++ zf = ZipFile(archive, 'r') ++ fnames = zf.namelist() + + def fname_ok(fname): + bn = os.path.basename(fname).lower() +@@ -75,7 +65,7 @@ class ArchiveExtract(FileTypePlugin): + + fnames = list(filter(fname_ok, fnames)) + if is_comic(fnames): +- ext = '.cbr' if is_rar else '.cbz' ++ ext = '.cbz' + of = self.temporary_file('_archive_extract'+ext) + with open(archive, 'rb') as f: + of.write(f.read()) +@@ -92,11 +82,7 @@ class ArchiveExtract(FileTypePlugin): + + of = self.temporary_file('_archive_extract.'+ext) + with closing(of): +- if is_rar: +- data = extract_member(archive, match=None, name=fname)[1] +- of.write(data) +- else: +- of.write(zf.read(fname)) ++ of.write(zf.read(fname)) + return of.name + + +@@ -159,9 +145,6 @@ def get_comic_metadata(stream, stream_type, series_index='volume'): + from calibre.utils.zipfile import ZipFile + zf = ZipFile(stream) + comment = zf.comment +- elif stream_type == 'cbr': +- from calibre.utils.unrar import comment as get_comment +- comment = get_comment(stream) + + if comment: + import json +diff --git a/src/calibre/ebooks/metadata/rar.py a/src/calibre/ebooks/metadata/rar.py +deleted file mode 100644 +index 1e7d058..0000000 +--- a/src/calibre/ebooks/metadata/rar.py ++++ /dev/null +@@ -1,38 +0,0 @@ +-#!/usr/bin/env python2 +-__license__ = 'GPL v3' +-__copyright__ = '2009, Kovid Goyal kovid@kovidgoyal.net' +-__docformat__ = 'restructuredtext en' +- +-''' +-Read metadata from RAR archives +-''' +- +-import os +-from io import BytesIO +- +-from calibre.utils.unrar import extract_member, names +- +- +-def get_metadata(stream): +- from calibre.ebooks.metadata.archive import is_comic +- from calibre.ebooks.metadata.meta import get_metadata +- +- file_names = list(names(stream)) +- if is_comic(file_names): +- return get_metadata(stream, 'cbr') +- for f in file_names: +- stream_type = os.path.splitext(f)[1].lower() +- if stream_type: +- stream_type = stream_type[1:] +- if stream_type in {'lit', 'opf', 'prc', 'mobi', 'fb2', 'epub', +- 'rb', 'imp', 'pdf', 'lrf', 'azw', 'azw1', +- 'azw3'}: +- name, data = extract_member(stream, match=None, name=f) +- stream = BytesIO(data) +- stream.name = os.path.basename(name) +- mi = get_metadata(stream, stream_type) +- mi.timestamp = None +- return mi +- raise ValueError('No ebook found in RAR archive') +- +- +diff --git a/src/calibre/ebooks/oeb/iterator/book.py b/src/calibre/ebooks/oeb/iterator/book.py +index 08208c9..ff37b80 100644 +--- a/src/calibre/ebooks/oeb/iterator/book.py ++++ b/src/calibre/ebooks/oeb/iterator/book.py +@@ -152,7 +152,7 @@ class EbookIterator(BookmarksMixin): + self.spine = [] + Spiny = partial(SpineItem, read_anchor_map=read_anchor_map, read_links=read_links, + run_char_count=run_char_count, from_epub=self.book_format == 'EPUB') +- is_comic = input_fmt.lower() in {'cbc', 'cbz', 'cbr', 'cb7'} ++ is_comic = input_fmt.lower() in {'cbc', 'cbz', 'cb7'} + for i in ordered: + spath = i.path + mt = None +diff --git a/src/calibre/ebooks/pdf/from_comic.py b/src/calibre/ebooks/pdf/from_comic.py +index c39b660..26f3627 100644 +--- a/src/calibre/ebooks/pdf/from_comic.py ++++ b/src/calibre/ebooks/pdf/from_comic.py +@@ -3,7 +3,7 @@ __license__ = 'GPL v3' + __copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net' + __docformat__ = 'restructuredtext en' + +-'Convert a comic in CBR/CBZ format to pdf' ++'Convert a comic in CBZ format to pdf' + + import sys + from functools import partial +diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py +index 55ba50a..a5609e6 100644 +--- a/src/calibre/gui2/__init__.py ++++ b/src/calibre/gui2/__init__.py +@@ -177,8 +177,6 @@ def _config(): # {{{ + help=_('Confirm before deleting')) + c.add_opt('main_window_geometry', default=None, + help=_('Main window geometry')) +- c.add_opt('new_version_notification', default=True, +- help=_('Notify when a new version is available')) + c.add_opt('use_roman_numerals_for_series_number', default=True, + help=_('Use Roman numerals for series number')) + c.add_opt('sort_tags_by', default='name', +diff --git a/src/calibre/gui2/actions/add.py b/src/calibre/gui2/actions/add.py +index d602f31..4020fcc 100644 +--- a/src/calibre/gui2/actions/add.py ++++ b/src/calibre/gui2/actions/add.py +@@ -36,8 +36,8 @@ def get_filters(): + (_('HTML books'), ['htm', 'html', 'xhtm', 'xhtml']), + (_('LIT books'), ['lit']), + (_('Text books'), ['txt', 'text', 'rtf', 'md', 'markdown', 'textile', 'txtz']), +- (_('Comics'), ['cbz', 'cbr', 'cbc']), +- (_('Archives'), ['zip', 'rar']), ++ (_('Comics'), ['cbz', 'cbc']), ++ (_('Archives'), ['zip']), + (_('Wordprocessor files'), ['odt', 'doc', 'docx']), + ] + +@@ -64,7 +64,7 @@ class AddAction(InterfaceAction): + 'sub-directories (Multiple books per directory, assumes every ' + 'e-book file is a different book)')).triggered.connect( + self.add_recursive_multiple) +- arm = self.add_archive_menu = self.add_menu.addMenu(_('Add multiple books from archive (ZIP/RAR)')) ++ arm = self.add_archive_menu = self.add_menu.addMenu(_('Add multiple books from archive (ZIP)')) + self.create_menu_action(arm, 'recursive-single-archive', _( + 'One book per directory in the archive')).triggered.connect(partial(self.add_archive, True)) + self.create_menu_action(arm, 'recursive-multiple-archive', _( +@@ -199,7 +199,7 @@ class AddAction(InterfaceAction): + def add_archive(self, single): + paths = choose_files( + self.gui, 'recursive-archive-add', _('Choose archive file'), +- filters=[(_('Archives'), ('zip', 'rar'))], all_files=False, select_only_single_file=False) ++ filters=[(_('Archives'), ('zip'))], all_files=False, select_only_single_file=False) + if paths: + self.do_add_recursive(paths, single, list_of_archives=True) + +diff --git a/src/calibre/gui2/actions/preferences.py b/src/calibre/gui2/actions/preferences.py +index 4d561c0..b9a9b1f 100644 +--- a/src/calibre/gui2/actions/preferences.py ++++ b/src/calibre/gui2/actions/preferences.py +@@ -29,8 +29,6 @@ class PreferencesAction(InterfaceAction): + pm.addAction(QIcon(I('config.png')), _('Preferences'), self.do_config) + cm('welcome wizard', _('Run welcome &wizard'), + icon='wizard.png', triggered=self.gui.run_wizard) +- cm('plugin updater', _('Get plugins to enhance calibre'), +- icon='plugins/plugin_updater.png', triggered=self.get_plugins) + if not DEBUG: + pm.addSeparator() + cm('restart', _('Restart in debug mode'), icon='debug.png', +diff --git a/src/calibre/gui2/add.py b/src/calibre/gui2/add.py +index 2aee3ce..a125939 100644 +--- a/src/calibre/gui2/add.py ++++ b/src/calibre/gui2/add.py +@@ -162,9 +162,6 @@ class Adder(QObject): + prints('Corrupt ZIP file, trying to use local headers') + from calibre.utils.localunzip import extractall + extractall(source, tdir) +- elif source.lower().endswith('.rar'): +- from calibre.utils.unrar import extract +- extract(source, tdir) + return tdir + + try: +diff --git a/src/calibre/gui2/dialogs/comicconf.py b/src/calibre/gui2/dialogs/comicconf.py +index 0793132..ccdb863 100644 +--- a/src/calibre/gui2/dialogs/comicconf.py ++++ b/src/calibre/gui2/dialogs/comicconf.py +@@ -33,7 +33,7 @@ def get_conversion_options(window, defaults, title, author): + class ComicConf(QDialog, Ui_Dialog): + + def __init__(self, window, config_defaults=None, generic=True, +- title=_('Set defaults for conversion of comics (CBR/CBZ files)')): ++ title=_('Set defaults for conversion of comics (CBZ files)')): + QDialog.__init__(self, window) + Ui_Dialog.__init__(self) + self.setupUi(self) +diff --git a/src/calibre/gui2/library/alternate_views.py b/src/calibre/gui2/library/alternate_views.py +index 55b7589..f21f909 100644 +--- a/src/calibre/gui2/library/alternate_views.py ++++ b/src/calibre/gui2/library/alternate_views.py +@@ -19,7 +19,7 @@ from PyQt5.Qt import ( + QMimeData, QUrl, QDrag, QPoint, QPainter, QRect, pyqtProperty, QEvent, + QPropertyAnimation, QEasingCurve, pyqtSlot, QHelpEvent, QAbstractItemView, + QStyleOptionViewItem, QToolTip, QByteArray, QBuffer, QBrush, qRed, qGreen, +- qBlue, QItemSelectionModel, QIcon, QFont) ++ qBlue, QItemSelectionModel, QIcon, QFont, QKeyEvent) + + from calibre import fit_image, prints, prepare_string_for_xml, human_readable + from calibre.constants import DEBUG, config_dir, islinux +@@ -42,29 +42,27 @@ class EncodeError(ValueError): + pass + + +-def handle_enter_press(self, ev, special_action=None, has_edit_cell=True): ++def handle_enter_press(self, ev, special_action=None): + if ev.key() in (Qt.Key_Enter, Qt.Key_Return): +- mods = ev.modifiers() +- if mods & Qt.CTRL or mods & Qt.ALT or mods & Qt.SHIFT or mods & Qt.META: +- return + if self.state() != self.EditingState and self.hasFocus() and self.currentIndex().isValid(): + from calibre.gui2.ui import get_gui + ev.ignore() + tweak = tweaks['enter_key_behavior'] ++ if tweak != 'down_arrow' and special_action is not None: ++ # Don't animate (or whatever) if emulating the down arrow ++ # Could be that this should check == 'do nothing', but the ++ # animation is nice when opening the viewer. ++ special_action(self.currentIndex()) + gui = get_gui() +- if tweak == 'edit_cell': +- if has_edit_cell: +- self.edit(self.currentIndex(), self.EditKeyPressed, ev) +- else: +- gui.iactions['Edit Metadata'].edit_metadata(False) ++ if tweak == 'viewer': ++ gui.iactions['View'].view_triggered(self.currentIndex()) ++ elif tweak == 'down_arrow': ++ nev = QKeyEvent(QEvent.KeyPress, Qt.Key_Down, ev.modifiers(), ev.text()) ++ self.keyPressEvent(nev) + elif tweak == 'edit_metadata': + gui.iactions['Edit Metadata'].edit_metadata(False) +- elif tweak == 'do_nothing': ++ elif tweak == 'do_nothing': # for completeness + pass +- else: +- if special_action is not None: +- special_action(self.currentIndex()) +- gui.iactions['View'].view_triggered(self.currentIndex()) + return True + + +@@ -1029,7 +1027,7 @@ class GridView(QListView): + return self._ncols + + def keyPressEvent(self, ev): +- if handle_enter_press(self, ev, self.start_view_animation, False): ++ if handle_enter_press(self, ev, self.start_view_animation): + return + k = ev.key() + if ev.modifiers() & Qt.ShiftModifier and k in (Qt.Key_Left, Qt.Key_Right, Qt.Key_Up, Qt.Key_Down): +diff --git a/src/calibre/gui2/preferences/behavior.py b/src/calibre/gui2/preferences/behavior.py +index 6db4cb1..cc9b897 100644 +--- a/src/calibre/gui2/preferences/behavior.py ++++ b/src/calibre/gui2/preferences/behavior.py +@@ -40,7 +40,6 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): + + r('network_timeout', prefs) + +- r('new_version_notification', config) + r('upload_news_to_device', config) + r('delete_news_from_library_on_upload', config) + +@@ -140,7 +139,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): + input_map = prefs['input_format_order'] + all_formats = set() + self.opt_input_order.clear() +- for fmt in all_input_formats().union(set(['ZIP', 'RAR'])): ++ for fmt in all_input_formats().union(set(['ZIP'])): + all_formats.add(fmt.upper()) + for format in input_map + list(all_formats.difference(input_map)): + item = QListWidgetItem(format, self.opt_input_order) +diff --git a/src/calibre/gui2/preferences/behavior.ui b/src/calibre/gui2/preferences/behavior.ui +index 8100d05..f6b529f 100644 +--- a/src/calibre/gui2/preferences/behavior.ui ++++ b/src/calibre/gui2/preferences/behavior.ui +@@ -16,13 +16,6 @@ + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <layout class="QFormLayout" name="formLayout"> +- <item row="0" column="0" colspan="2"> +- <widget class="QCheckBox" name="opt_new_version_notification"> +- <property name="text"> +- <string>Show notification when &new version is available</string> +- </property> +- </widget> +- </item> + <item row="3" column="0" colspan="2"> + <widget class="QCheckBox" name="opt_upload_news_to_device"> + <property name="text"> +diff --git a/src/calibre/gui2/preferences/look_feel.ui b/src/calibre/gui2/preferences/look_feel.ui +index baa4a30..5636ef3 100644 +--- a/src/calibre/gui2/preferences/look_feel.ui ++++ b/src/calibre/gui2/preferences/look_feel.ui +@@ -1200,7 +1200,7 @@ column being examined (the left-hand pane)</string> + </property> + </widget> + </item> +- </layout> ++ </layout> + </item> + <item row="3" column="0" rowspan="2"> + <widget class="QGroupBox" name="groupBox"> +diff --git a/src/calibre/gui2/update.py b/src/calibre/gui2/update.py +index 9ea0993..9f59a9d 100644 +--- a/src/calibre/gui2/update.py ++++ b/src/calibre/gui2/update.py +@@ -1,20 +1,18 @@ + __license__ = 'GPL v3' + __copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>' + +-import re, binascii, cPickle, ssl, json ++import binascii, cPickle + from future_builtins import map + from threading import Thread, Event + + from PyQt5.Qt import (QObject, pyqtSignal, Qt, QUrl, QDialog, QGridLayout, +- QLabel, QCheckBox, QDialogButtonBox, QIcon) ++ QLabel, QCheckBox, QIcon) + +-from calibre.constants import (__appname__, __version__, iswindows, isosx, ++from calibre.constants import (__appname__, iswindows, isosx, + isportable, is64bit, numeric_version) + from calibre import prints, as_unicode +-from calibre.utils.config import prefs + from calibre.utils.localization import localize_website_link +-from calibre.utils.https import get_https_resource_securely +-from calibre.gui2 import config, dynamic, open_url ++from calibre.gui2 import dynamic, open_url + from calibre.gui2.dialogs.plugin_updater import get_plugin_updates_available + + URL = 'https://code.calibre-ebook.com/latest' +@@ -31,35 +29,7 @@ def get_download_url(): + + + def get_newest_version(): +- try: +- icon_theme_name = json.loads(I('icon-theme.json', data=True))['name'] +- except Exception: +- icon_theme_name = '' +- headers={ +- 'CALIBRE-VERSION':__version__, +- 'CALIBRE-OS': ('win' if iswindows else 'osx' if isosx else 'oth'), +- 'CALIBRE-INSTALL-UUID': prefs['installation_uuid'], +- 'CALIBRE-ICON-THEME': icon_theme_name, +- } +- try: +- version = get_https_resource_securely(URL, headers=headers) +- except ssl.SSLError as err: +- if getattr(err, 'reason', None) != 'CERTIFICATE_VERIFY_FAILED': +- raise +- # certificate verification failed, since the version check contains no +- # critical information, ignore and proceed +- # We have to do this as if the calibre CA certificate ever +- # needs to be revoked, then we wont be able to do version checks +- version = get_https_resource_securely(URL, headers=headers, cacerts=None) +- try: +- version = version.decode('utf-8').strip() +- except UnicodeDecodeError: +- version = u'' +- ans = NO_CALIBRE_UPDATE +- m = re.match(ur'(\d+)\.(\d+).(\d+)$', version) +- if m is not None: +- ans = tuple(map(int, (m.group(1), m.group(2), m.group(3)))) +- return ans ++ return NO_CALIBRE_UPDATE + + + class Signal(QObject): +@@ -82,12 +52,6 @@ class CheckForUpdates(Thread): + calibre_update_version = NO_CALIBRE_UPDATE + plugins_update_found = 0 + try: +- version = get_newest_version() +- if version[:2] > numeric_version[:2]: +- calibre_update_version = version +- except Exception as e: +- prints('Failed to check for calibre update:', as_unicode(e)) +- try: + update_plugins = get_plugin_updates_available(raise_error=True) + if update_plugins is not None: + plugins_update_found = len(update_plugins) +@@ -126,11 +90,6 @@ class UpdateNotification(QDialog): + self.setWindowIcon(QIcon(I('lt.png'))) + self.l.addWidget(self.logo, 0, 0) + self.l.addWidget(self.label, 0, 1) +- self.cb = QCheckBox( +- _('Show this notification for future updates'), self) +- self.l.addWidget(self.cb, 1, 0, 1, -1) +- self.cb.setChecked(config.get('new_version_notification')) +- self.cb.stateChanged.connect(self.show_future) + self.bb = QDialogButtonBox(self) + b = self.bb.addButton(_('&Get update'), self.bb.AcceptRole) + b.setDefault(True) +@@ -152,9 +111,6 @@ class UpdateNotification(QDialog): + initial_filter=FILTER_UPDATE_AVAILABLE) + d.exec_() + +- def show_future(self, *args): +- config.set('new_version_notification', bool(self.cb.isChecked())) +- + def accept(self): + open_url(QUrl(get_download_url())) + +@@ -202,8 +158,7 @@ class UpdateMixin(object): + self.status_bar.update_label.setVisible(True) + + if has_calibre_update: +- if (force or (config.get('new_version_notification') and +- dynamic.get('update to version %s'%calibre_version, True))): ++ if force: + if not no_show_popup: + self._update_notification__ = UpdateNotification(calibre_version, + number_of_plugin_updates, parent=self) +diff --git a/src/calibre/linux.py b/src/calibre/linux.py +index 17b55cb..f9b06ea 100644 +--- a/src/calibre/linux.py ++++ b/src/calibre/linux.py +@@ -317,7 +317,7 @@ class ZshCompleter(object): # {{{ + ): + for fmt in fmts: + is_input = group_title == input_group +- if is_input and fmt in {'rar', 'zip', 'oebzip'}: ++ if is_input and fmt in {'zip', 'oebzip'}: + continue + p = (get_parser(input_fmt=fmt) if is_input + else get_parser(output_fmt=fmt)) +diff --git a/src/calibre/test_build.py b/src/calibre/test_build.py +index 897e6b5..2af959d 100644 +--- a/src/calibre/test_build.py ++++ b/src/calibre/test_build.py +@@ -205,10 +205,6 @@ class BuildTest(unittest.TestCase): + from calibre.gui2.win_file_dialogs import test + test() + +- def test_unrar(self): +- from calibre.utils.unrar import test_basic +- test_basic() +- + @unittest.skipUnless(iswindows, 'WPD is windows only') + def test_wpd(self): + wpd = plugins['wpd'][0] +diff --git a/src/calibre/utils/search_query_parser.py b/src/calibre/utils/search_query_parser.py +index 9fac662..f9d1535 100644 +--- a/src/calibre/utils/search_query_parser.py ++++ b/src/calibre/utils/search_query_parser.py +@@ -456,16 +456,16 @@ class Tester(SearchQueryParser): + u'Tor Books', + u'lrf'], + 8: [u'Stalky and Co.', u'Rudyard Kipling', u'manybooks.net', u'lrf'], +- 9: [u'A Game of Thrones', u'George R. R. Martin', None, u'lrf,rar'], +- 10: [u'A Clash of Kings', u'George R. R. Martin', None, u'lrf,rar'], +- 11: [u'A Storm of Swords', u'George R. R. Martin', None, u'lrf,rar'], ++ 9: [u'A Game of Thrones', u'George R. R. Martin', None, u'lrf'], ++ 10: [u'A Clash of Kings', u'George R. R. Martin', None, u'lrf'], ++ 11: [u'A Storm of Swords', u'George R. R. Martin', None, u'lrf'], + 12: [u'Biggles - Pioneer Air Fighter', u'W. E. Johns', None, u'lrf,rtf'], + 13: [u'Biggles of the Camel Squadron', + u'W. E. Johns', + u'London:Thames, (1977)', + u'lrf,rtf'], +- 14: [u'A Feast for Crows', u'George R. R. Martin', None, u'lrf,rar'], +- 15: [u'Cryptonomicon', u'Neal Stephenson', None, u'lrf,rar'], ++ 14: [u'A Feast for Crows', u'George R. R. Martin', None, u'lrf'], ++ 15: [u'Cryptonomicon', u'Neal Stephenson', None, u'lrf'], + 16: [u'Quicksilver', u'Neal Stephenson', None, u'lrf,zip'], + 17: [u'The Comedies of William Shakespeare', + u'William Shakespeare', +@@ -480,15 +480,15 @@ class Tester(SearchQueryParser): + None, + u'lrf'], + 20: [u'An Ideal Husband', u'Oscar Wilde', u'manybooks.net', u'lrf'], +- 21: [u'Flight of the Nighthawks', u'Raymond E. Feist', None, u'lrf,rar'], +- 22: [u'Into a Dark Realm', u'Raymond E. Feist', None, u'lrf,rar'], +- 23: [u'The Sundering', u'Walter Jon Williams', None, u'lrf,rar'], +- 24: [u'The Praxis', u'Walter Jon Williams', None, u'lrf,rar'], +- 25: [u'Conventions of War', u'Walter Jon Williams', None, u'lrf,rar'], +- 26: [u'Banewreaker', u'Jacqueline Carey', None, u'lrf,rar'], +- 27: [u'Godslayer', u'Jacqueline Carey', None, u'lrf,rar'], +- 28: [u"Kushiel's Scion", u'Jacqueline Carey', None, u'lrf,rar'], +- 29: [u'Underworld', u'Don DeLillo', None, u'lrf,rar'], ++ 21: [u'Flight of the Nighthawks', u'Raymond E. Feist', None, u'lrf'], ++ 22: [u'Into a Dark Realm', u'Raymond E. Feist', None, u'lrf'], ++ 23: [u'The Sundering', u'Walter Jon Williams', None, u'lrf'], ++ 24: [u'The Praxis', u'Walter Jon Williams', None, u'lrf'], ++ 25: [u'Conventions of War', u'Walter Jon Williams', None, u'lrf'], ++ 26: [u'Banewreaker', u'Jacqueline Carey', None, u'lrf'], ++ 27: [u'Godslayer', u'Jacqueline Carey', None, u'lrf'], ++ 28: [u"Kushiel's Scion", u'Jacqueline Carey', None, u'lrf'], ++ 29: [u'Underworld', u'Don DeLillo', None, u'lrf'], + 30: [u'Genghis Khan and The Making of the Modern World', + u'Jack Weatherford Orc', + u'Three Rivers Press', +@@ -499,9 +499,9 @@ class Tester(SearchQueryParser): + u'lrf,zip'], + 32: [u'The Killer Angels', u'Michael Shaara', None, u'html,lrf'], + 33: [u'Band Of Brothers', u'Stephen E Ambrose', None, u'lrf,txt'], +- 34: [u'The Gates of Rome', u'Conn Iggulden', None, u'lrf,rar'], ++ 34: [u'The Gates of Rome', u'Conn Iggulden', None, u'lrf'], + 35: [u'The Death of Kings', u'Conn Iggulden', u'Bantam Dell', u'lit,lrf'], +- 36: [u'The Field of Swords', u'Conn Iggulden', None, u'lrf,rar'], ++ 36: [u'The Field of Swords', u'Conn Iggulden', None, u'lrf'], + 37: [u'Masterman Ready', u'Marryat, Captain Frederick', None, u'lrf'], + 38: [u'With the Lightnings', + u'David Drake', +@@ -514,16 +514,16 @@ class Tester(SearchQueryParser): + 40: [u'The Far Side of The Stars', + u'David Drake', + u'Baen Publishing Enterprises', +- u'lrf,rar'], ++ u'lrf'], + 41: [u'The Way to Glory', + u'David Drake', + u'Baen Publishing Enterprises', +- u'lrf,rar'], +- 42: [u'Some Golden Harbor', u'David Drake', u'Baen Books', u'lrf,rar'], ++ u'lrf'], ++ 42: [u'Some Golden Harbor', u'David Drake', u'Baen Books', u'lrf'], + 43: [u'Harry Potter And The Half-Blood Prince', + u'J. K. Rowling', + None, +- u'lrf,rar'], ++ u'lrf'], + 44: [u'Harry Potter and the Order of the Phoenix', + u'J. K. Rowling', + None, +@@ -532,12 +532,12 @@ class Tester(SearchQueryParser): + 46: [u'The Stars at War II', + u'Steve White', + u'Baen Publishing Enterprises', +- u'lrf,rar'], +- 47: [u'Exodus', u'Steve White,Shirley Meier', u'Baen Books', u'lrf,rar'], ++ u'lrf'], ++ 47: [u'Exodus', u'Steve White,Shirley Meier', u'Baen Books', u'lrf'], + 48: [u'Harry Potter and the Goblet of Fire', + u'J. K. Rowling', + None, +- u'lrf,rar'], ++ u'lrf'], + 49: [u'Harry Potter and the Prisoner of Azkaban', + u'J. K. Rowling', + None, +@@ -550,20 +550,20 @@ class Tester(SearchQueryParser): + u'J.K. Rowling', + None, + u'lit,lrf,pdf'], +- 52: [u"His Majesty's Dragon", u'Naomi Novik', None, u'lrf,rar'], ++ 52: [u"His Majesty's Dragon", u'Naomi Novik', None, u'lrf'], + 53: [u'Throne of Jade', u'Naomi Novik', u'Del Rey', u'lit,lrf'], +- 54: [u'Black Powder War', u'Naomi Novik', u'Del Rey', u'lrf,rar'], ++ 54: [u'Black Powder War', u'Naomi Novik', u'Del Rey', u'lrf'], + 55: [u'War and Peace', u'Leo Tolstoy', u'gutenberg.org', u'lrf,txt'], + 56: [u'Anna Karenina', u'Leo Tolstoy', u'gutenberg.org', u'lrf,txt'], + 57: [u'A Shorter History of Rome', + u'Eugene Lawrence,Sir William Smith', + u'gutenberg.org', + u'lrf,zip'], +- 58: [u'The Name of the Rose', u'Umberto Eco', None, u'lrf,rar'], ++ 58: [u'The Name of the Rose', u'Umberto Eco', None, u'lrf'], + 71: [u"Wind Rider's Oath", u'David Weber', u'Baen', u'lrf'], + 74: [u'Rally Cry', u'William R Forstchen', None, u'htm,lrf'], +- 86: [u'Empire of Ivory', u'Naomi Novik', None, u'lrf,rar'], +- 87: [u"Renegade's Magic", u'Robin Hobb', None, u'lrf,rar'], ++ 86: [u'Empire of Ivory', u'Naomi Novik', None, u'lrf'], ++ 87: [u"Renegade's Magic", u'Robin Hobb', None, u'lrf'], + 89: [u'Master and commander', + u"Patrick O'Brian", + u'Fontana,\n1971', +@@ -571,7 +571,7 @@ class Tester(SearchQueryParser): + 91: [u'A Companion to Wolves', + u'Sarah Monette,Elizabeth Beär', + None, +- u'lrf,rar'], ++ u'lrf'], + 92: [u'The Lions of al-Rassan', u'Guy Gavriel Kay', u'Eos', u'lit,lrf'], + 93: [u'Gardens of the Moon', u'Steven Erikson', u'Tor Fantasy', u'lit,lrf'], + 95: [u'The Master and Margarita', +@@ -595,7 +595,7 @@ class Tester(SearchQueryParser): + 144: [u'Atonement', + u'Ian McEwan', + u'New York : Nan A. Talese/Doubleday, 2002.', +- u'lrf,rar'], ++ u'lrf'], + 146: [u'1632', u'Eric Flint', u'Baen Books', u'lit,lrf'], + 147: [u'1633', u'David Weber,Eric Flint,Dru Blair', u'Baen', u'lit,lrf'], + 148: [u'1634: The Baltic War', +@@ -648,7 +648,7 @@ class Tester(SearchQueryParser): + 253: [u"Hunter's Run", + u'George R. R. Martin,Gardner Dozois,Daniel Abraham', + u'Eos', +- u'lrf,rar'], ++ u'lrf'], + 257: [u'Knife of Dreams', u'Robert Jordan', None, u'lit,lrf'], + 258: [u'Saturday', + u'Ian McEwan', +@@ -668,7 +668,7 @@ class Tester(SearchQueryParser): + u'New York : Random House, 2005.', + u'lit,lrf'], + 269: [u'Reap the Whirlwind', u'David Mack', u'Star Trek', u'lit,lrf'], +- 272: [u'Mistborn', u'Brandon Sanderson', u'Tor Fantasy', u'lrf,rar'], ++ 272: [u'Mistborn', u'Brandon Sanderson', u'Tor Fantasy', u'lrf'], + 273: [u'The Thousandfold Thought', + u'R. Scott Bakker', + u'Overlook TP', +@@ -676,17 +676,17 @@ class Tester(SearchQueryParser): + 276: [u'Elantris', + u'Brandon Sanderson', + u'New York : Tor, 2005.', +- u'lrf,rar'], ++ u'lrf'], + 291: [u'Sundiver', + u'David Brin', + u'New York : Bantam Books, 1995.', + u'lit,lrf'], +- 299: [u'Imperium', u'Robert Harris', u'Arrow', u'lrf,rar'], ++ 299: [u'Imperium', u'Robert Harris', u'Arrow', u'lrf'], + 300: [u'Startide Rising', u'David Brin', u'Bantam', u'htm,lrf'], + 301: [u'The Uplift War', u'David Brin', u'Spectra', u'lit,lrf'], +- 304: [u'Brightness Reef', u'David Brin', u'Orbit', u'lrf,rar'], ++ 304: [u'Brightness Reef', u'David Brin', u'Orbit', u'lrf'], + 305: [u"Infinity's Shore", u'David Brin', u'Spectra', u'txt'], +- 306: [u"Heaven's Reach", u'David Brin', u'Spectra', u'lrf,rar'], ++ 306: [u"Heaven's Reach", u'David Brin', u'Spectra', u'lrf'], + 325: [u"Foundation's Triumph", u'David Brin', u'Easton Press', u'lit,lrf'], + 327: [u'I am Charlotte Simmons', u'Tom Wolfe', u'Vintage', u'htm,lrf'], + 335: [u'The Currents of Space', u'Isaac Asimov', None, u'lit,lrf'], +@@ -716,15 +716,15 @@ class Tester(SearchQueryParser): + u'Aspect', + u'lit,lrf'], + 356: [u'The Naked God', u'Peter F. Hamilton', u'Aspect', u'lit,lrf'], +- 421: [u'A Shadow in Summer', u'Daniel Abraham', u'Tor Fantasy', u'lrf,rar'], ++ 421: [u'A Shadow in Summer', u'Daniel Abraham', u'Tor Fantasy', u'lrf'], + 427: [u'Lonesome Dove', u'Larry M\\cMurtry', None, u'lit,lrf'], + 440: [u'Ghost', u'John Ringo', u'Baen', u'lit,lrf'], + 441: [u'Kildar', u'John Ringo', u'Baen', u'lit,lrf'], +- 443: [u'Hidden Empire ', u'Kevin J. Anderson', u'Aspect', u'lrf,rar'], ++ 443: [u'Hidden Empire ', u'Kevin J. Anderson', u'Aspect', u'lrf'], + 444: [u'The Gun Seller', + u'Hugh Laurie', + u'Washington Square Press', +- u'lrf,rar'] ++ u'lrf'] + } + + tests = { +diff --git a/src/calibre/utils/unrar.py a/src/calibre/utils/unrar.py +deleted file mode 100644 +index 2fd0af3..0000000 +--- a/src/calibre/utils/unrar.py ++++ /dev/null +@@ -1,158 +0,0 @@ +-#!/usr/bin/env python2 +-# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:fdm=marker:ai +-from __future__ import (unicode_literals, division, absolute_import, print_function) +- +-__license__ = 'GPL v3' +-__copyright__ = '2012, Kovid Goyal <kovid at kovidgoyal.net>' +-__docformat__ = 'restructuredtext en' +- +-import os +-import shutil +-import re +-from io import BytesIO +- +-from calibre.constants import filesystem_encoding, iswindows +-from calibre.ptempfile import PersistentTemporaryFile, TemporaryDirectory +- +- +-def as_unicode(x): +- if isinstance(x, bytes): +- x = x.decode(filesystem_encoding) +- return x +- +- +-class StreamAsPath(object): +- +- def __init__(self, stream): +- self.stream = stream +- +- def __enter__(self): +- self.temppath = None +- if isinstance(self.stream, basestring): +- return as_unicode(self.stream) +- name = getattr(self.stream, 'name', None) +- if name and os.access(name, os.R_OK): +- return as_unicode(name) +- pos = self.stream.tell() +- with PersistentTemporaryFile('for-unar', 'wb') as f: +- shutil.copyfileobj(self.stream, f) +- self.stream.seek(pos) +- self.temppath = f.name +- return as_unicode(f.name) +- +- def __exit__(self, *a): +- if self.temppath is not None: +- try: +- os.remove(self.temppath) +- except EnvironmentError: +- pass +- self.temppath = None +- +- +-def extract(path_or_stream, location): +- from unrardll import extract +- with StreamAsPath(path_or_stream) as path: +- return extract(path, location) +- +- +-def names(path_or_stream): +- from unrardll import names +- with StreamAsPath(path_or_stream) as path: +- for name in names(path, only_useful=True): +- yield name +- +- +-def comment(path_or_stream): +- from unrardll import comment +- with StreamAsPath(path_or_stream) as path: +- return comment(path) +- +- +-def extract_member( +- path_or_stream, match=re.compile(r'\.(jpg|jpeg|gif|png)\s*$', re.I), name=None): +- from unrardll import extract_member +- if iswindows and name is not None: +- name = name.replace(os.sep, '/') +- +- def is_match(header): +- fname = header['filename'] +- if iswindows: +- fname = fname.replace(os.sep, '/') +- return (name is not None and fname == name) or \ +- (match is not None and match.search(fname) is not None) +- +- with StreamAsPath(path_or_stream) as path: +- name, data = extract_member(path, is_match) +- if name is not None: +- return name, data +- +- +-def extract_first_alphabetically(stream): +- from calibre.libunzip import sort_key +- names_ = sorted([ +- x for x in names(stream) +- if os.path.splitext(x)[1][1:].lower() in { +- 'png', 'jpg', 'jpeg', 'gif', 'webp'}], +- key=sort_key) +- return extract_member(stream, name=names_[0], match=None) +- +- +-def extract_cover_image(stream): +- from calibre.libunzip import sort_key, name_ok +- for name in sorted(names(stream), key=sort_key): +- if name_ok(name): +- return extract_member(stream, name=name, match=None) +- +- +-# Test normal RAR file {{{ +- +- +-def test_basic(): +- +- stream = BytesIO( # {{{ +- b"Rar!\x1a\x07\x00\xcf\x90s\x00\x00\r\x00\x00\x00\x00\x00\x00\x00\x14\xe7z\x00\x80#\x00\x17\x00\x00\x00\r\x00\x00\x00\x03\xc2\xb3\x96o\x00\x00\x00\x00\x1d3\x03\x00\x00\x00\x00\x00CMT\x0c\x00\x8b\xec\x8e\xef\x14\xf6\xe6h\x04\x17\xff\xcd\x0f\xffk9b\x11]^\x80\xd3dt \x90+\x00\x14\x00\x00\x00\x08\x00\x00\x00\x03\xf1\x84\x93\\\xb9]yA\x1d3\t\x00\xa4\x81\x00\x001\\sub-one\x00\xc0\x0c\x00\x8f\xec\x89\xfe.JM\x86\x82\x0c_\xfd\xfd\xd7\x11\x1a\xef@\x9eHt \x80'\x00\x0e\x00\x00\x00\x04\x00\x00\x00\x03\x9f\xa8\x17\xf8\xaf]yA\x1d3\x07\x00\xa4\x81\x00\x00one.txt\x00\x08\xbf\x08\xae\xf3\xca\x87\xfeo\xfe\xd2n\x80-Ht \x82:\x00\x18\x00\x00\x00\x10\x00\x00\x00\x03\xa86\x81\xdf\xf9fyA\x1d3\x1a\x00\xa4\x81\x00\x00\xe8\xaf\xb6\xe6\xaf\x94\xe5\xb1\x81.txt\x00\x8bh\xf6\xd4kA\\.\x00txt\x0c\x00\x8b\xec\x8e\xef\x14\xf6\xe2l\x91\x189\xff\xdf\xfe\xc2\xd3:g\x9a\x19F=cYt \x928\x00\x11\x00\x00\x00\x08\x00\x00\x00\x03\x7f\xd6\xb6\x7f\xeafyA\x1d3\x16\x00\xa4\x81\x00\x00F\xc3\xbc\xc3\x9fe.txt\x00\x01\x00F\xfc\xdfe\x00.txt\x00\xc0<D\xfe\xc8\xef\xbc\xd1\x04I?\xfd\xff\xdbF)]\xe8\xb9\xe1t \x90/\x00\x13\x00\x00\x00\x08\x00\x00\x00\x03\x1a$\x932\xc2]yA\x1d3\r\x00\xa4\x81\x00\x002\\sub-two.txt\x00\xc0\x10\x00S\xec\xcb\x7f\x8b\xa5(\x0b\x01\xcb\xef\xdf\xf6t\x89\x97z\x0eft \x90)\x00\r\x00\x00\x00\r\x00\x00\x00\x03c\x89K\xd3\xc8fyA\x140\x07\x00\xff\xa1\x00\x00symlink\x00\xc02/sub-two.txt\xeb\x86t\xe0\x90#\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\xb9]yA\x140\x01\x00\xedA\x00\x001\x00\xc0\xe0Dt\xe0\x90#\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\xc2]yA\x140\x01\x00\xedA\x00\x002\x00\xc0u\xa1t \x80,\x00\r\x00\x00\x00\r\x00\x00\x00\x03T\xea\x04\xca\xe6\x84yA\x140\x0c\x00\xa4\x81\x00\x00uncompresseduncompressed\n\xda\x10t \x900\x00\x0e\x00\x00\x00\x04\x00\x00\x00\x035K.\xa6\x18\x85yA\x1d5\x0e\x00\xa4\x81\x00\x00max-compressed\x00\xc0\x00\x08\xbf\x08\xae\xf2\xcc\x01s\xf8\xff\xec\x96\xe8\xc4={\x00@\x07\x00") # noqa }}} +- +- tdata = { +- u'1': b'', +- u'1/sub-one': b'sub-one\n', +- u'2': b'', +- u'2/sub-two.txt': b'sub-two\n', +- u'F\xfc\xdfe.txt': b'unicode\n', +- u'max-compressed': b'max\n', +- u'one.txt': b'one\n', +- u'symlink': b'2/sub-two.txt', +- u'uncompressed': b'uncompressed\n', +- u'\u8bf6\u6bd4\u5c41.txt': b'chinese unicode\n'} +- +- def do_test(stream): +- c = comment(stream) +- if c != b'some comment\n': +- raise ValueError('Comment not read: %r != %r' % (c, b'some comment\n')) +- if set(names(stream)) != { +- '1/sub-one', 'one.txt', '2/sub-two.txt', '诶比屁.txt', 'Füße.txt', +- 'uncompressed', 'max-compressed'}: +- raise ValueError('Name list does not match') +- with TemporaryDirectory('test-unrar') as tdir: +- extract(stream, tdir) +- for name in tdata: +- if name not in '1 2 symlink'.split(): +- with open(os.path.join(tdir, name), 'rb') as s: +- if s.read() != tdata[name]: +- raise ValueError('Did not extract %s properly' % name) +- for name in tdata: +- if name not in '1 2 symlink'.split(): +- d = extract_member(stream, name=name) +- if d is None or d[1] != tdata[name]: +- raise ValueError( +- 'Failed to extract %s %r != %r' % (name, d, tdata[name])) +- +- do_test(stream) +- with PersistentTemporaryFile('test-unrar') as f: +- shutil.copyfileobj(stream, f) +- with open(f.name, 'rb') as stream: +- do_test(stream) +- os.remove(f.name) +- +- +-if __name__ == '__main__': +- test_basic() +diff --git a/src/calibre/web/feeds/feedparser.py b/src/calibre/web/feeds/feedparser.py +index 16085cf..420efaa 100755 +--- a/src/calibre/web/feeds/feedparser.py ++++ b/src/calibre/web/feeds/feedparser.py +@@ -2081,7 +2081,7 @@ class _MicroformatsParser: + EMAIL = 5 + + known_xfn_relationships = set(['contact', 'acquaintance', 'friend', 'met', 'co-worker', 'coworker', 'colleague', 'co-resident', 'coresident', 'neighbor', 'child', 'parent', 'sibling', 'brother', 'sister', 'spouse', 'wife', 'husband', 'kin', 'relative', 'muse', 'crush', 'date', 'sweetheart', 'me']) +- known_binary_extensions = set(['zip','rar','exe','gz','tar','tgz','tbz2','bz2','z','7z','dmg','img','sit','sitx','hqx','deb','rpm','bz2','jar','rar','iso','bin','msi','mp2','mp3','ogg','ogm','mp4','m4v','m4a','avi','wma','wmv']) ++ known_binary_extensions = set(['zip','exe','gz','tar','tgz','tbz2','bz2','z','7z','dmg','img','sit','sitx','hqx','deb','rpm','bz2','jar','iso','bin','msi','mp2','mp3','ogg','ogm','mp4','m4v','m4a','avi','wma','wmv']) + + def __init__(self, data, baseuri, encoding): + self.document = BeautifulSoup.BeautifulSoup(data) |