im_reader 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/Gemfile +9 -0
  4. data/Gemfile.lock +44 -0
  5. data/LICENSE.txt +21 -0
  6. data/README.md +110 -0
  7. data/Rakefile +8 -0
  8. data/app/assets/fonts/im_reader/icons.ttf +0 -0
  9. data/app/assets/fonts/im_reader/icons.woff +0 -0
  10. data/app/assets/fonts/im_reader/icons.woff2 +0 -0
  11. data/app/assets/images/im_reader/logo_colore.svg +26 -0
  12. data/app/assets/javascripts/im_reader/epub.min.js +1 -0
  13. data/app/assets/javascripts/im_reader/jszip.min.js +13 -0
  14. data/app/assets/javascripts/im_reader/reader.js +144 -0
  15. data/app/assets/javascripts/im_reader/semantic/progress.js +793 -0
  16. data/app/assets/javascripts/im_reader/semantic/sidebar.js +1022 -0
  17. data/app/assets/javascripts/im_reader/semantic-ui.js +2 -0
  18. data/app/assets/stylesheets/im_reader/reader.scss +127 -0
  19. data/app/assets/stylesheets/im_reader/semantic/button.scss +3172 -0
  20. data/app/assets/stylesheets/im_reader/semantic/colors.scss +15 -0
  21. data/app/assets/stylesheets/im_reader/semantic/container.scss +154 -0
  22. data/app/assets/stylesheets/im_reader/semantic/grid.scss +2029 -0
  23. data/app/assets/stylesheets/im_reader/semantic/header.scss +719 -0
  24. data/app/assets/stylesheets/im_reader/semantic/icon.scss +2587 -0
  25. data/app/assets/stylesheets/im_reader/semantic/item.scss +482 -0
  26. data/app/assets/stylesheets/im_reader/semantic/menu.scss +2054 -0
  27. data/app/assets/stylesheets/im_reader/semantic/progress.scss +517 -0
  28. data/app/controllers/im_reader/application_controller.rb +8 -0
  29. data/app/controllers/im_reader/epub_reader_controller.rb +62 -0
  30. data/app/views/im_reader/epub_reader/show.html.erb +38 -0
  31. data/app/views/layouts/im_reader/epub_reader.html.erb +23 -0
  32. data/config/locales/de.yml +10 -0
  33. data/config/locales/en.yml +10 -0
  34. data/config/locales/es.yml +10 -0
  35. data/config/locales/fr.yml +10 -0
  36. data/config/locales/pt.yml +10 -0
  37. data/config/routes.rb +4 -0
  38. data/im_reader.gemspec +33 -0
  39. data/lib/im_reader/engine.rb +32 -0
  40. data/lib/im_reader/version.rb +5 -0
  41. data/lib/im_reader.rb +8 -0
  42. data/sig/im_reader.rbs +4 -0
  43. data/spec/im_reader_spec.rb +11 -0
  44. data/spec/spec_helper.rb +15 -0
  45. metadata +115 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 16d4011ce1785af650ee6e0fee1f9086c3dc7e7f7699da7749dc486ead737bee
4
+ data.tar.gz: 5e9d3fc80714da3b4fed4c9fb9b7bcfd12925c189acc5fcce13dce41bac8d22d
5
+ SHA512:
6
+ metadata.gz: 7e812b464dd5a8a99cc8e039599bcedf75fe22e244f5a37225f947b8370f0d71c8b1253809948524e46aab7e3ac4dead16b01b57e5146f4edac3e130fed7100e
7
+ data.tar.gz: 6a2992b497ef8950165ac03c8e1459a01f92ff2ab6b11b1089cb7361dbf1850f95a3a663dd7abc7495ab0cbabe2c2699a75ec108034d38f3785c46eb1822e5c9
data/.gitignore ADDED
@@ -0,0 +1,11 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+
10
+ # rspec failure tracking
11
+ .rspec_status
data/Gemfile ADDED
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ # Specify your gem's dependencies in im_reader.gemspec
6
+ gemspec
7
+
8
+ gem "rake", "~> 13.0"
9
+ gem 'sass', '~> 3.7.0'
data/Gemfile.lock ADDED
@@ -0,0 +1,44 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ im_reader (0.1.0)
5
+ sass (~> 3.7.0)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ ffi (1.17.2-aarch64-linux-gnu)
11
+ ffi (1.17.2-aarch64-linux-musl)
12
+ ffi (1.17.2-arm-linux-gnu)
13
+ ffi (1.17.2-arm-linux-musl)
14
+ ffi (1.17.2-arm64-darwin)
15
+ ffi (1.17.2-x86_64-darwin)
16
+ ffi (1.17.2-x86_64-linux-gnu)
17
+ ffi (1.17.2-x86_64-linux-musl)
18
+ rake (13.3.0)
19
+ rb-fsevent (0.11.2)
20
+ rb-inotify (0.11.1)
21
+ ffi (~> 1.0)
22
+ sass (3.7.4)
23
+ sass-listen (~> 4.0.0)
24
+ sass-listen (4.0.0)
25
+ rb-fsevent (~> 0.9, >= 0.9.4)
26
+ rb-inotify (~> 0.9, >= 0.9.7)
27
+
28
+ PLATFORMS
29
+ aarch64-linux-gnu
30
+ aarch64-linux-musl
31
+ arm-linux-gnu
32
+ arm-linux-musl
33
+ arm64-darwin
34
+ x86_64-darwin
35
+ x86_64-linux-gnu
36
+ x86_64-linux-musl
37
+
38
+ DEPENDENCIES
39
+ im_reader!
40
+ rake (~> 13.0)
41
+ sass (~> 3.7.0)
42
+
43
+ BUNDLED WITH
44
+ 2.5.3
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2025 Elodie Ailleaume
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,110 @@
1
+ # im_reader
2
+
3
+ **im_reader** is a mountable Ruby on Rails engine that provides an elegant in-browser EPUB reader.
4
+ It’s designed to integrate seamlessly into your Rails application, allowing users to read `.epub` files hosted remotely, with a built-in table of contents, cover display, and customizable UI labels.
5
+
6
+ ---
7
+
8
+ ## Features
9
+
10
+ - Seamless EPUB rendering using `epub.js`
11
+ - Interactive table of contents navigation
12
+ - Automatic cover detection and “Start Reading” overlay
13
+ - Supports remote EPUB sources via secure proxy
14
+ - Rails Engine with asset pipeline integration
15
+ - Fully translatable via Rails I18n
16
+ ---
17
+
18
+ ## 🚀 Installation
19
+
20
+ Add **im_reader** to your Gemfile:
21
+
22
+ ```ruby
23
+ gem 'im_reader'
24
+ ```
25
+
26
+ Then install the gem:
27
+
28
+ ```bash
29
+ bundle install
30
+ ```
31
+
32
+ ---
33
+
34
+ ## ⚙️ Mounting the Engine
35
+
36
+ In your `config/routes.rb`, mount the engine at the desired path (for example `/reader`):
37
+
38
+ ```ruby
39
+ mount ImReader::Engine, at: "/reader", as: :im_reader
40
+ ```
41
+
42
+ This will expose the following route inside your application:
43
+
44
+ | HTTP Verb | Path | Controller Action | Purpose |
45
+ |------------|-------------------|-------------------------------|----------|
46
+ | `GET` | `/reader/epub` | `im_reader/epub_reader#show` | Loads and displays a remote EPUB file |
47
+
48
+ ### Example usage
49
+
50
+ ```
51
+ /reader/remote?url=https://your-server.com/path/to/book.epub
52
+ ```
53
+
54
+ This endpoint will download the EPUB file from the given URL, stream it securely to the client, and display it in the embedded reader.
55
+
56
+ ---
57
+
58
+ ## 🌐 Internationalization (I18n)
59
+
60
+ **im_reader** ships with translations for :fr, :en, :es, :de, :pt,
61
+ but you can easily provide additional or override existant ones in your main Rails application.
62
+
63
+ To customize the interface, create or edit a locale file under `config/locales/`
64
+ (for example `config/locales/im_reader_fr.yml`) and redefine the keys you wish to override.
65
+
66
+ ### Default YAML (for reference)
67
+
68
+ ```yaml
69
+ fr:
70
+ im_reader:
71
+ title: "Lecteur EPUB fournis par immatériel.fr"
72
+ elements:
73
+ toc: "Table des matières"
74
+ book_cover: "Couverture du livre"
75
+ buttons:
76
+ start: "Commencer la lecture"
77
+ messages:
78
+ loading: "Chargement du livre ..."
79
+ ```
80
+
81
+ ---
82
+
83
+ ## 🧰 Development
84
+
85
+ To work on the gem locally:
86
+
87
+ ```bash
88
+ git clone https://github.com/your-org/im_reader.git
89
+ cd im_reader
90
+ bundle install
91
+ ```
92
+
93
+ You can test it inside a Rails app by referencing it in your `Gemfile`:
94
+
95
+ ```ruby
96
+ gem 'im_reader', path: '../im_reader'
97
+ ```
98
+
99
+ Then start your Rails server and visit:
100
+
101
+ ```
102
+ http://localhost:3000/reader/epub?url=https://your-server.com/path/to/book.epub
103
+ ```
104
+
105
+ ---
106
+
107
+ ## 📝 License
108
+
109
+ This project is distributed under the MIT License.
110
+ See the `LICENSE` file for more details.
data/Rakefile ADDED
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler/gem_tasks"
4
+ require "rspec/core/rake_task"
5
+
6
+ RSpec::Core::RakeTask.new(:spec)
7
+
8
+ task default: :spec
@@ -0,0 +1,26 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="607px" height="507px" viewBox="0 0 607 507" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>Logo final</title>
4
+ <g id="Logo-final" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
5
+ <path d="M199.62,178.618 L254.901,178.618 L192.799,263.618 L158.901,263.618 L199.62,178.618 Z M263.049,328.532 C281.168,347.993 290.425,375.471 290.859,410.904 C298.743,409.069 303.905,406.72 306.327,403.855 C311.03,398.292 313.39,381.355 313.39,353.027 L313.39,19.026 C313.39,12.28 313.254,6.187 312.986,0.731 C309.491,0.554 305.974,0.464 302.436,0.464 C188.935,0.464 96.924,92.475 96.924,205.976 C96.924,244.471 107.519,280.488 125.936,311.288 C142.749,302.845 162.045,298.618 183.831,298.618 C218.081,298.618 244.487,308.595 263.049,328.532 L263.049,328.532 Z" id="Fill-1" fill="#1E89BE"></path>
6
+ <path d="M378.956,396.757 C394.165,390.651 408.479,382.786 421.635,373.402 C421.8,370.079 421.884,366.368 421.884,362.248 L421.884,221.248 L391.384,221.248 L391.384,204.748 L421.884,204.748 L421.884,194.912 C421.884,163.756 426.938,141.279 437.056,127.467 C446.53,114.531 461.673,107.654 482.481,106.833 C459.083,64.432 421.146,31.187 375.39,13.806 L375.39,353.027 C375.39,373.605 376.577,388.182 378.956,396.757" id="Fill-2" fill="#1E89BE"></path>
7
+ <path d="M232.463,352.04 C221.323,339.759 204.385,333.618 181.651,333.618 C168.526,333.618 156.942,335.849 146.884,340.285 C173.088,370.607 208.011,393.175 247.752,404.118 L249.401,404.118 C249.245,381.681 243.604,364.321 232.463,352.04" id="Fill-3" fill="#1E89BE"></path>
8
+ <path d="M459.384,338.634 C486.799,306.232 504.359,265.233 507.445,220.248 L459.384,220.248 L459.384,338.634" id="Fill-4" fill="#1E89BE"></path>
9
+ <path d="M464.774,129.397 C461.181,136.826 459.384,151.084 459.384,172.17 L459.384,204.748 L507.932,204.748 C507.751,173.851 500.751,144.573 488.362,118.336 C487.395,118.284 486.408,118.248 485.384,118.248 C475.243,118.248 468.368,121.967 464.774,129.397" id="Fill-5" fill="#1E89BE"></path>
10
+ <path d="M290,411.103 C290.288,411.119 290.575,411.141 290.863,411.157 C290.862,411.072 290.86,410.988 290.859,410.904 C290.575,410.971 290.292,411.037 290,411.103" id="Fill-6" fill="#FFFFFE"></path>
11
+ <path d="M6.064,438.125 C8.426,438.125 10.047,437.705 10.928,436.865 C11.809,436.026 12.25,434.447 12.25,432.127 C12.25,429.85 11.818,428.301 10.959,427.481 C10.098,426.66 8.506,426.25 6.186,426.25 C3.822,426.25 2.201,426.67 1.32,427.51 C0.439,428.35 0,429.93 0,432.248 C0,434.527 0.43,436.076 1.291,436.897 C2.15,437.717 3.742,438.125 6.064,438.125" id="Fill-7" fill="#1A1919"></path>
12
+ <path d="M11.125,450.361 C11.125,450.082 11.045,449.822 10.885,449.582 C10.725,449.342 10.467,449.141 10.107,448.981 C9.748,448.82 9.248,448.701 8.611,448.621 C7.973,448.541 7.154,448.5 6.158,448.5 C5.199,448.5 4.4,448.541 3.764,448.621 C3.125,448.701 2.615,448.82 2.236,448.981 C1.857,449.141 1.598,449.342 1.459,449.582 C1.318,449.822 1.25,450.082 1.25,450.361 L1.25,489.166 L11.125,489.166 L11.125,450.361" id="Fill-8" fill="#1A1919"></path>
13
+ <path d="M36.277,466.635 C39.002,463.233 41.527,460.652 43.852,458.891 C46.176,457.131 48.48,456.25 50.766,456.25 C52.609,456.25 54.201,456.611 55.545,457.33 C56.887,458.051 57.998,459.092 58.881,460.451 C59.764,461.813 60.424,463.434 60.865,465.315 C61.307,467.195 61.527,469.276 61.527,471.557 L61.527,489.166 L71.402,489.166 L71.402,466.635 C74.16,463.233 76.688,460.652 78.986,458.891 C81.285,457.131 83.574,456.25 85.854,456.25 C87.691,456.25 89.291,456.611 90.65,457.33 C92.01,458.051 93.129,459.092 94.008,460.451 C94.887,461.813 95.527,463.434 95.928,465.315 C96.326,467.195 96.527,469.276 96.527,471.557 L96.527,489.166 L106.527,489.166 L106.527,470.211 C106.527,467.168 106.217,464.274 105.596,461.531 C104.975,458.789 103.936,456.397 102.475,454.354 C101.014,452.311 99.102,450.68 96.74,449.457 C94.379,448.236 91.457,447.625 87.977,447.625 C86.535,447.625 85.105,447.817 83.684,448.197 C82.262,448.58 80.801,449.192 79.301,450.035 C77.801,450.879 76.24,451.983 74.619,453.348 C72.998,454.713 71.287,456.379 69.486,458.346 C68.846,456.74 68.045,455.285 67.084,453.981 C66.123,452.676 64.961,451.551 63.602,450.608 C62.24,449.664 60.67,448.932 58.889,448.408 C57.107,447.887 55.096,447.625 52.854,447.625 C49.932,447.625 47.039,448.418 44.176,450.004 C41.312,451.59 38.361,454.09 35.32,457.504 L35.32,450.361 C35.32,450.041 35.25,449.772 35.109,449.551 C34.969,449.332 34.74,449.131 34.422,448.951 C34.102,448.772 33.652,448.651 33.074,448.59 C32.496,448.531 31.768,448.5 30.891,448.5 C29.973,448.5 29.234,448.531 28.676,448.59 C28.117,448.651 27.658,448.772 27.299,448.951 C26.94,449.131 26.701,449.332 26.582,449.551 C26.461,449.772 26.402,450.041 26.402,450.361 L26.402,489.166 L36.277,489.166 L36.277,466.635" id="Fill-9" fill="#1A1919"></path>
14
+ <path d="M201.708,504.389 C201.708,504.709 201.626,504.981 201.466,505.199 C201.306,505.42 201.044,505.61 200.683,505.77 C200.322,505.93 199.82,506.049 199.177,506.131 C198.535,506.209 197.732,506.25 196.769,506.25 C195.765,506.25 194.941,506.209 194.298,506.131 C193.656,506.049 193.144,505.93 192.763,505.77 C192.38,505.61 192.109,505.42 191.949,505.199 C191.789,504.981 191.708,504.709 191.708,504.389 L191.708,471.557 C191.708,469.276 191.507,467.195 191.109,465.315 C190.708,463.434 190.068,461.813 189.189,460.451 C188.31,459.092 187.191,458.051 185.832,457.33 C184.472,456.611 182.873,456.25 181.035,456.25 C178.755,456.25 176.466,457.131 174.167,458.891 C171.869,460.652 169.341,463.233 166.583,466.635 L166.583,504.389 C166.583,504.709 166.503,504.981 166.343,505.199 C166.183,505.42 165.916,505.61 165.537,505.77 C165.158,505.93 164.648,506.049 164.009,506.131 C163.371,506.209 162.574,506.25 161.617,506.25 C160.699,506.25 159.91,506.209 159.251,506.131 C158.593,506.049 158.074,505.93 157.695,505.77 C157.316,505.61 157.056,505.42 156.917,505.199 C156.777,504.981 156.708,504.709 156.708,504.389 L156.708,471.557 C156.708,469.276 156.488,467.195 156.046,465.315 C155.605,463.434 154.945,461.813 154.062,460.451 C153.179,459.092 152.068,458.051 150.726,457.33 C149.382,456.611 147.791,456.25 145.947,456.25 C143.662,456.25 141.357,457.131 139.033,458.891 C136.708,460.652 134.183,463.233 131.458,466.635 L131.458,504.389 C131.458,504.709 131.378,504.981 131.218,505.199 C131.058,505.42 130.8,505.61 130.441,505.77 C130.082,505.93 129.582,506.049 128.945,506.131 C128.306,506.209 127.488,506.25 126.492,506.25 C125.533,506.25 124.734,506.209 124.097,506.131 C123.458,506.049 122.949,505.93 122.57,505.77 C122.191,505.61 121.931,505.42 121.792,505.199 C121.652,504.981 121.583,504.709 121.583,504.389 L121.583,450.361 C121.583,450.041 121.642,449.772 121.763,449.551 C121.882,449.332 122.121,449.131 122.48,448.951 C122.839,448.772 123.298,448.651 123.857,448.59 C124.416,448.531 125.154,448.5 126.072,448.5 C126.949,448.5 127.677,448.531 128.255,448.59 C128.833,448.651 129.283,448.772 129.603,448.951 C129.921,449.131 130.15,449.332 130.291,449.551 C130.431,449.772 130.501,450.041 130.501,450.361 L130.501,457.504 C133.542,454.09 136.494,451.59 139.357,450.004 C142.22,448.418 145.113,447.625 148.035,447.625 C150.277,447.625 152.289,447.887 154.07,448.408 C155.851,448.932 157.421,449.664 158.783,450.608 C160.142,451.551 161.304,452.676 162.265,453.981 C163.226,455.285 164.027,456.74 164.667,458.346 C166.468,456.379 168.179,454.713 169.8,453.348 C171.421,451.983 172.982,450.879 174.482,450.035 C175.982,449.192 177.443,448.58 178.865,448.197 C180.287,447.817 181.716,447.625 183.158,447.625 C186.638,447.625 189.56,448.236 191.921,449.457 C194.283,450.68 196.195,452.311 197.656,454.354 C199.117,456.397 200.156,458.789 200.777,461.531 C201.398,464.274 201.708,467.168 201.708,470.211 L201.708,504.389" id="Fill-10" fill="#1A1919"></path>
15
+ <path d="M247.514,479.75 L239.049,479.75 C236.327,479.75 233.965,479.981 231.965,480.442 C229.963,480.902 228.301,481.582 226.981,482.481 C225.661,483.381 224.69,484.461 224.069,485.721 C223.448,486.981 223.139,488.43 223.139,490.07 C223.139,492.871 224.03,495.1 225.811,496.76 C227.592,498.42 230.083,499.25 233.286,499.25 C235.887,499.25 238.297,498.59 240.52,497.27 C242.741,495.949 245.073,493.93 247.514,491.211 L247.514,479.75 Z M257.389,504.447 C257.389,504.928 257.227,505.289 256.907,505.529 C256.586,505.77 256.145,505.947 255.583,506.07 C255.02,506.19 254.196,506.25 253.114,506.25 C252.069,506.25 251.235,506.19 250.614,506.07 C249.993,505.949 249.542,505.772 249.26,505.531 C248.979,505.291 248.838,504.93 248.838,504.449 L248.838,499.043 C246.477,501.567 243.846,503.524 240.946,504.914 C238.045,506.305 234.975,507 231.737,507 C228.895,507 226.325,506.629 224.024,505.891 C221.723,505.152 219.764,504.082 218.145,502.682 C216.524,501.281 215.264,499.561 214.364,497.522 C213.463,495.483 213.014,493.162 213.014,490.563 C213.014,487.524 213.633,484.885 214.874,482.645 C216.114,480.404 217.893,478.545 220.213,477.065 C222.534,475.584 225.374,474.475 228.733,473.735 C232.092,472.996 235.874,472.625 240.075,472.625 L247.514,472.625 L247.514,468.404 C247.514,466.315 247.293,464.467 246.854,462.86 C246.413,461.252 245.704,459.916 244.723,458.85 C243.743,457.785 242.471,456.983 240.911,456.44 C239.35,455.897 237.43,455.625 235.149,455.625 C232.708,455.625 230.516,455.918 228.575,456.502 C226.633,457.088 224.934,457.733 223.473,458.438 C222.012,459.145 220.792,459.789 219.811,460.373 C218.831,460.959 218.1,461.25 217.62,461.25 C217.299,461.25 217.018,461.172 216.78,461.012 C216.54,460.852 216.329,460.613 216.149,460.293 C215.969,459.973 215.838,459.565 215.758,459.065 C215.678,458.565 215.639,458.016 215.639,457.416 C215.639,456.42 215.708,455.631 215.848,455.051 C215.989,454.473 216.329,453.924 216.87,453.404 C217.411,452.885 218.342,452.274 219.665,451.57 C220.985,450.867 222.506,450.225 224.229,449.643 C225.952,449.061 227.833,448.58 229.875,448.197 C231.918,447.817 233.981,447.625 236.063,447.625 C239.948,447.625 243.252,448.067 245.975,448.947 C248.698,449.828 250.901,451.119 252.583,452.82 C254.264,454.524 255.485,456.635 256.247,459.158 C257.008,461.682 257.389,464.625 257.389,467.988 L257.389,504.447 L257.389,504.447 Z" id="Fill-11" fill="#1A1919"></path>
16
+ <path d="M299.465,500.365 C299.465,501.531 299.385,502.455 299.225,503.139 C299.065,503.822 298.825,504.324 298.504,504.645 C298.184,504.967 297.704,505.268 297.063,505.549 C296.422,505.83 295.694,506.061 294.874,506.242 C294.053,506.422 293.182,506.572 292.262,506.695 C291.34,506.815 290.42,506.875 289.5,506.875 C286.7,506.875 284.297,506.504 282.297,505.766 C280.297,505.026 278.657,503.904 277.375,502.404 C276.094,500.904 275.165,499.002 274.584,496.701 C274.004,494.401 273.715,491.692 273.715,488.57 L273.715,457 L266.188,457 C265.59,457 265.112,456.68 264.752,456.037 C264.393,455.395 264.215,454.35 264.215,452.904 C264.215,452.143 264.264,451.502 264.364,450.979 C264.463,450.457 264.592,450.026 264.752,449.684 C264.913,449.344 265.122,449.102 265.379,448.961 C265.637,448.82 265.926,448.75 266.247,448.75 L273.715,448.75 L273.715,435.918 C273.715,435.639 273.784,435.379 273.924,435.139 C274.063,434.901 274.323,434.69 274.702,434.51 C275.081,434.33 275.59,434.201 276.229,434.121 C276.866,434.041 277.665,434 278.624,434 C279.62,434 280.438,434.041 281.077,434.121 C281.713,434.201 282.213,434.33 282.573,434.51 C282.932,434.69 283.19,434.901 283.35,435.139 C283.51,435.379 283.59,435.639 283.59,435.918 L283.59,448.75 L297.481,448.75 C297.801,448.75 298.081,448.82 298.323,448.961 C298.563,449.102 298.774,449.344 298.954,449.684 C299.133,450.026 299.264,450.457 299.344,450.979 C299.424,451.502 299.465,452.143 299.465,452.904 C299.465,454.35 299.284,455.395 298.924,456.037 C298.563,456.68 298.083,457 297.481,457 L283.59,457 L283.59,487.102 C283.59,490.82 284.141,493.629 285.243,495.527 C286.344,497.426 288.319,498.375 291.167,498.375 C292.088,498.375 292.909,498.285 293.631,498.106 C294.354,497.926 294.995,497.735 295.557,497.535 C296.118,497.336 296.598,497.145 297,496.965 C297.401,496.785 297.762,496.693 298.083,496.693 C298.282,496.693 298.473,496.744 298.653,496.844 C298.833,496.945 298.973,497.135 299.075,497.414 C299.174,497.695 299.264,498.076 299.344,498.557 C299.424,499.039 299.465,499.643 299.465,500.365" id="Fill-12" fill="#1A1919"></path>
17
+ <path d="M334.708,423.967 C334.946,423.527 335.226,423.168 335.546,422.889 C335.864,422.61 336.253,422.391 336.714,422.231 C337.173,422.07 337.741,421.951 338.421,421.871 C339.101,421.791 339.919,421.75 340.878,421.75 C341.997,421.75 342.905,421.82 343.604,421.961 C344.304,422.102 344.792,422.301 345.073,422.559 C345.354,422.818 345.474,423.117 345.435,423.457 C345.394,423.797 345.214,424.147 344.894,424.504 L334.048,438.459 C333.728,438.858 333.438,439.178 333.179,439.416 C332.919,439.656 332.62,439.846 332.28,439.986 C331.94,440.127 331.501,440.227 330.962,440.285 C330.423,440.346 329.753,440.375 328.954,440.375 C328.075,440.375 327.376,440.317 326.856,440.195 C326.337,440.076 325.968,439.916 325.747,439.717 C325.526,439.518 325.446,439.258 325.507,438.938 C325.567,438.619 325.737,438.24 326.019,437.801 L334.708,423.967 Z M344.394,472.125 C344.515,466.904 343.354,462.807 340.917,459.834 C338.479,456.861 334.862,455.375 330.067,455.375 C327.608,455.375 325.452,455.838 323.599,456.762 C321.743,457.686 320.192,458.91 318.942,460.438 C317.692,461.965 316.726,463.742 316.042,465.77 C315.356,467.797 314.974,469.916 314.894,472.125 L344.394,472.125 Z M354.394,475.045 C354.394,476.61 354.001,477.723 353.216,478.383 C352.431,479.045 351.534,479.375 350.528,479.375 L314.894,479.375 C314.894,482.377 315.194,485.078 315.8,487.479 C316.405,489.879 317.413,491.94 318.823,493.66 C320.233,495.381 322.069,496.701 324.327,497.621 C326.585,498.541 329.347,499 332.612,499 C335.19,499 337.489,498.789 339.505,498.363 C341.521,497.94 343.263,497.465 344.735,496.938 C346.206,496.412 347.415,495.938 348.364,495.512 C349.312,495.088 350.026,494.875 350.511,494.875 C350.792,494.875 351.044,494.945 351.267,495.084 C351.487,495.225 351.659,495.434 351.78,495.711 C351.901,495.99 351.991,496.379 352.052,496.875 C352.112,497.373 352.144,497.981 352.144,498.695 C352.144,499.215 352.122,499.662 352.083,500.039 C352.042,500.418 351.991,500.756 351.933,501.055 C351.872,501.354 351.772,501.623 351.632,501.861 C351.491,502.1 351.312,502.328 351.091,502.547 C350.87,502.766 350.22,503.129 349.138,503.633 C348.056,504.139 346.651,504.635 344.929,505.119 C343.204,505.606 341.21,506.039 338.944,506.424 C336.679,506.807 334.265,507 331.7,507 C327.251,507 323.353,506.379 320.005,505.139 C316.657,503.899 313.843,502.057 311.558,499.615 C309.272,497.174 307.55,494.113 306.388,490.43 C305.224,486.748 304.644,482.465 304.644,477.582 C304.644,472.942 305.243,468.77 306.446,465.067 C307.647,461.363 309.38,458.223 311.644,455.641 C313.905,453.059 316.64,451.078 319.845,449.697 C323.048,448.317 326.634,447.625 330.601,447.625 C334.847,447.625 338.46,448.307 341.444,449.67 C344.429,451.033 346.882,452.867 348.806,455.172 C350.728,457.477 352.14,460.184 353.042,463.289 C353.942,466.397 354.394,469.715 354.394,473.242 L354.394,475.045 L354.394,475.045 Z" id="Fill-13" fill="#1E89BE"></path>
18
+ <path d="M398.019,453.875 C398.019,454.758 397.997,455.498 397.958,456.1 C397.917,456.701 397.837,457.172 397.716,457.512 C397.595,457.852 397.444,458.113 397.265,458.293 C397.085,458.473 396.833,458.563 396.513,458.563 C396.19,458.563 395.798,458.473 395.337,458.293 C394.876,458.113 394.353,457.932 393.771,457.752 C393.188,457.572 392.534,457.401 391.812,457.24 C391.089,457.08 390.306,457 389.464,457 C388.458,457 387.474,457.201 386.511,457.602 C385.546,458.004 384.532,458.666 383.468,459.588 C382.403,460.51 381.288,461.733 380.124,463.256 C378.96,464.779 377.675,466.645 376.269,468.85 L376.269,504.389 C376.269,504.709 376.188,504.981 376.028,505.199 C375.868,505.42 375.61,505.61 375.251,505.77 C374.892,505.93 374.392,506.049 373.755,506.131 C373.116,506.209 372.298,506.25 371.302,506.25 C370.343,506.25 369.544,506.209 368.907,506.131 C368.269,506.049 367.759,505.93 367.38,505.77 C367.001,505.61 366.741,505.42 366.603,505.199 C366.462,504.981 366.394,504.709 366.394,504.389 L366.394,450.361 C366.394,450.041 366.452,449.772 366.573,449.551 C366.692,449.332 366.931,449.131 367.29,448.951 C367.649,448.772 368.108,448.651 368.667,448.59 C369.226,448.531 369.964,448.5 370.882,448.5 C371.759,448.5 372.487,448.531 373.065,448.59 C373.644,448.651 374.093,448.772 374.413,448.951 C374.731,449.131 374.96,449.332 375.101,449.551 C375.241,449.772 375.312,450.041 375.312,450.361 L375.312,458.225 C376.796,456.057 378.192,454.291 379.497,452.926 C380.802,451.561 382.036,450.486 383.2,449.703 C384.364,448.922 385.521,448.379 386.665,448.078 C387.81,447.777 388.964,447.625 390.128,447.625 C390.649,447.625 391.241,447.656 391.905,447.715 C392.567,447.776 393.261,447.885 393.983,448.045 C394.706,448.205 395.358,448.387 395.94,448.586 C396.522,448.787 396.933,448.988 397.175,449.188 C397.415,449.389 397.575,449.58 397.657,449.76 C397.737,449.94 397.808,450.17 397.868,450.451 C397.927,450.733 397.968,451.143 397.987,451.682 C398.007,452.223 398.019,452.953 398.019,453.875" id="Fill-14" fill="#1A1919"></path>
19
+ <path d="M416.075,504.389 C416.075,504.709 415.995,504.981 415.835,505.199 C415.675,505.42 415.417,505.61 415.058,505.77 C414.698,505.93 414.198,506.049 413.562,506.131 C412.923,506.209 412.104,506.25 411.108,506.25 C410.149,506.25 409.351,506.209 408.714,506.131 C408.075,506.049 407.565,505.93 407.187,505.77 C406.808,505.61 406.548,505.42 406.409,505.199 C406.269,504.981 406.2,504.709 406.2,504.389 L406.2,450.361 C406.2,450.082 406.269,449.822 406.409,449.582 C406.548,449.342 406.808,449.141 407.187,448.981 C407.565,448.82 408.075,448.701 408.714,448.621 C409.351,448.541 410.149,448.5 411.108,448.5 C412.104,448.5 412.923,448.541 413.562,448.621 C414.198,448.701 414.698,448.82 415.058,448.981 C415.417,449.141 415.675,449.342 415.835,449.582 C415.995,449.822 416.075,450.082 416.075,450.361 L416.075,504.389 Z M417.2,432.127 C417.2,434.447 416.759,436.026 415.878,436.865 C414.997,437.705 413.376,438.125 411.015,438.125 C408.692,438.125 407.101,437.717 406.241,436.897 C405.38,436.076 404.95,434.527 404.95,432.248 C404.95,429.93 405.39,428.35 406.271,427.51 C407.151,426.67 408.772,426.25 411.136,426.25 C413.456,426.25 415.048,426.66 415.909,427.481 C416.769,428.301 417.2,429.85 417.2,432.127 L417.2,432.127 Z" id="Fill-15" fill="#1A1919"></path>
20
+ <path d="M467.479,472.125 C467.601,466.904 466.44,462.807 464.003,459.834 C461.565,456.861 457.948,455.375 453.153,455.375 C450.694,455.375 448.538,455.838 446.685,456.762 C444.829,457.686 443.278,458.91 442.028,460.438 C440.778,461.965 439.812,463.742 439.128,465.77 C438.442,467.797 438.06,469.916 437.979,472.125 L467.479,472.125 Z M477.479,475.045 C477.479,476.61 477.087,477.723 476.302,478.383 C475.517,479.045 474.62,479.375 473.614,479.375 L437.979,479.375 C437.979,482.377 438.28,485.078 438.886,487.479 C439.491,489.879 440.499,491.94 441.909,493.66 C443.319,495.381 445.155,496.701 447.413,497.621 C449.671,498.541 452.433,499 455.698,499 C458.276,499 460.575,498.789 462.591,498.363 C464.606,497.94 466.349,497.465 467.821,496.938 C469.292,496.412 470.501,495.938 471.45,495.512 C472.397,495.088 473.112,494.875 473.597,494.875 C473.878,494.875 474.13,494.945 474.353,495.084 C474.573,495.225 474.745,495.434 474.866,495.711 C474.987,495.99 475.077,496.379 475.138,496.875 C475.198,497.373 475.229,497.981 475.229,498.695 C475.229,499.215 475.208,499.662 475.169,500.039 C475.128,500.418 475.077,500.756 475.019,501.055 C474.958,501.354 474.858,501.623 474.718,501.861 C474.577,502.1 474.397,502.328 474.177,502.547 C473.956,502.766 473.306,503.129 472.224,503.633 C471.142,504.139 469.737,504.635 468.015,505.119 C466.29,505.606 464.296,506.039 462.03,506.424 C459.765,506.807 457.351,507 454.786,507 C450.337,507 446.438,506.379 443.091,505.139 C439.743,503.899 436.929,502.057 434.644,499.615 C432.358,497.174 430.636,494.113 429.474,490.43 C428.31,486.748 427.729,482.465 427.729,477.582 C427.729,472.942 428.329,468.77 429.532,465.067 C430.733,461.363 432.466,458.223 434.729,455.641 C436.991,453.059 439.726,451.078 442.931,449.697 C446.134,448.317 449.72,447.625 453.687,447.625 C457.933,447.625 461.546,448.307 464.53,449.67 C467.515,451.033 469.968,452.867 471.892,455.172 C473.813,457.477 475.226,460.184 476.128,463.289 C477.028,466.397 477.479,469.715 477.479,473.242 L477.479,475.045 L477.479,475.045 Z" id="Fill-16" fill="#1A1919"></path>
21
+ <path d="M499.353,504.389 C499.353,504.709 499.272,504.981 499.112,505.199 C498.952,505.42 498.694,505.61 498.335,505.77 C497.976,505.93 497.476,506.049 496.839,506.131 C496.2,506.209 495.382,506.25 494.386,506.25 C493.427,506.25 492.628,506.209 491.991,506.131 C491.353,506.049 490.843,505.93 490.464,505.77 C490.085,505.61 489.825,505.42 489.687,505.199 C489.546,504.981 489.478,504.709 489.478,504.389 L489.478,424.172 C489.478,423.852 489.546,423.572 489.687,423.332 C489.825,423.092 490.085,422.891 490.464,422.731 C490.843,422.57 491.353,422.451 491.991,422.371 C492.628,422.291 493.427,422.25 494.386,422.25 C495.382,422.25 496.2,422.291 496.839,422.371 C497.476,422.451 497.976,422.57 498.335,422.731 C498.694,422.891 498.952,423.092 499.112,423.332 C499.272,423.572 499.353,423.852 499.353,424.172 L499.353,504.389" id="Fill-17" fill="#1A1919"></path>
22
+ <path d="M527.417,499.285 C527.417,502.129 526.946,504.022 526.005,504.963 C525.063,505.904 523.353,506.375 520.87,506.375 C518.468,506.375 516.806,505.914 515.886,504.994 C514.964,504.072 514.505,502.231 514.505,499.465 C514.505,496.621 514.974,494.729 515.915,493.787 C516.856,492.846 518.567,492.375 521.052,492.375 C523.454,492.375 525.114,492.836 526.036,493.758 C526.956,494.68 527.417,496.522 527.417,499.285" id="Fill-18" fill="#1A1919"></path>
23
+ <path d="M569.702,428.072 C569.702,428.836 569.661,429.447 569.581,429.908 C569.501,430.369 569.411,430.74 569.312,431.022 C569.212,431.303 569.083,431.492 568.923,431.592 C568.763,431.692 568.563,431.74 568.325,431.74 C568.046,431.74 567.696,431.651 567.278,431.471 C566.858,431.291 566.349,431.092 565.751,430.871 C565.153,430.651 564.444,430.449 563.626,430.27 C562.808,430.09 561.86,430 560.782,430 C559.306,430 558.048,430.24 557.011,430.721 C555.974,431.201 555.136,431.953 554.497,432.975 C553.858,433.998 553.399,435.32 553.12,436.942 C552.841,438.565 552.702,440.537 552.702,442.861 L552.702,448.75 L564.728,448.75 C565.046,448.75 565.315,448.82 565.534,448.961 C565.753,449.102 565.954,449.344 566.134,449.684 C566.313,450.026 566.452,450.457 566.552,450.979 C566.651,451.502 566.702,452.143 566.702,452.904 C566.702,454.35 566.522,455.395 566.163,456.037 C565.804,456.68 565.325,457 564.728,457 L552.702,457 L552.702,504.389 C552.702,504.709 552.62,504.981 552.46,505.199 C552.3,505.42 552.028,505.61 551.647,505.77 C551.265,505.93 550.753,506.049 550.11,506.131 C549.468,506.209 548.665,506.25 547.702,506.25 C546.737,506.25 545.935,506.209 545.292,506.131 C544.649,506.049 544.138,505.93 543.757,505.77 C543.374,505.61 543.103,505.42 542.942,505.199 C542.782,504.981 542.702,504.709 542.702,504.389 L542.702,457 L535.114,457 C534.476,457 533.997,456.68 533.679,456.037 C533.36,455.395 533.202,454.35 533.202,452.904 C533.202,452.143 533.241,451.502 533.321,450.979 C533.399,450.457 533.519,450.026 533.679,449.684 C533.839,449.344 534.038,449.102 534.276,448.961 C534.515,448.82 534.794,448.75 535.114,448.75 L542.702,448.75 L542.702,443.158 C542.702,439.391 543.052,436.154 543.751,433.447 C544.45,430.74 545.521,428.526 546.962,426.801 C548.401,425.078 550.212,423.805 552.392,422.983 C554.571,422.162 557.142,421.75 560.103,421.75 C561.501,421.75 562.862,421.881 564.183,422.143 C565.503,422.404 566.522,422.684 567.241,422.985 C567.96,423.285 568.44,423.557 568.681,423.797 C568.921,424.039 569.122,424.35 569.282,424.731 C569.442,425.113 569.552,425.574 569.612,426.117 C569.671,426.66 569.702,427.311 569.702,428.072" id="Fill-19" fill="#1A1919"></path>
24
+ <path d="M606.29,453.875 C606.29,454.758 606.269,455.498 606.229,456.1 C606.188,456.701 606.108,457.172 605.987,457.512 C605.866,457.852 605.716,458.113 605.536,458.293 C605.356,458.473 605.104,458.563 604.784,458.563 C604.462,458.563 604.069,458.473 603.608,458.293 C603.147,458.113 602.624,457.932 602.042,457.752 C601.46,457.572 600.806,457.401 600.083,457.24 C599.36,457.08 598.577,457 597.735,457 C596.729,457 595.745,457.201 594.782,457.602 C593.817,458.004 592.804,458.666 591.739,459.588 C590.675,460.51 589.56,461.733 588.396,463.256 C587.231,464.779 585.946,466.645 584.54,468.85 L584.54,504.389 C584.54,504.709 584.46,504.981 584.3,505.199 C584.14,505.42 583.882,505.61 583.522,505.77 C583.163,505.93 582.663,506.049 582.026,506.131 C581.388,506.209 580.569,506.25 579.573,506.25 C578.614,506.25 577.815,506.209 577.179,506.131 C576.54,506.049 576.03,505.93 575.651,505.77 C575.272,505.61 575.013,505.42 574.874,505.199 C574.733,504.981 574.665,504.709 574.665,504.389 L574.665,450.361 C574.665,450.041 574.724,449.772 574.845,449.551 C574.964,449.332 575.202,449.131 575.562,448.951 C575.921,448.772 576.38,448.651 576.938,448.59 C577.497,448.531 578.235,448.5 579.153,448.5 C580.03,448.5 580.759,448.531 581.337,448.59 C581.915,448.651 582.364,448.772 582.685,448.951 C583.003,449.131 583.231,449.332 583.372,449.551 C583.513,449.772 583.583,450.041 583.583,450.361 L583.583,458.225 C585.067,456.057 586.464,454.291 587.769,452.926 C589.073,451.561 590.308,450.486 591.472,449.703 C592.636,448.922 593.792,448.379 594.937,448.078 C596.081,447.777 597.235,447.625 598.399,447.625 C598.921,447.625 599.513,447.656 600.177,447.715 C600.839,447.776 601.532,447.885 602.255,448.045 C602.978,448.205 603.63,448.387 604.212,448.586 C604.794,448.787 605.204,448.988 605.446,449.188 C605.687,449.389 605.847,449.58 605.929,449.76 C606.009,449.94 606.079,450.17 606.14,450.451 C606.198,450.733 606.239,451.143 606.259,451.682 C606.278,452.223 606.29,452.953 606.29,453.875" id="Fill-20" fill="#1A1919"></path>
25
+ </g>
26
+ </svg>