Commits vergleichen

...

Keine gemeinsamen Commits. „legacy-1.0“ und „master“ haben vollständig unterschiedliche Historien.

296 geänderte Dateien mit 15784 neuen und 3475 gelöschten Zeilen

7
.github/renovate.json gevendort
Datei anzeigen

@ -3,9 +3,12 @@
"timezone": "Europe/Berlin",
"dependencyDashboard": true,
"dependencyDashboardTitle": "Renovate Dashboard",
"commitBody": "Signed-off-by: Peter <magic@kthx.at>",
"commitBody": "Signed-off-by: milkmaker <milkmaker@mailcow.de>",
"rebaseWhen": "auto",
"labels": ["renovate"],
"assignees": [
"@magiccc"
]
],
"baseBranches": ["master"],
"enabledManagers": ["github-actions", "pip_requirements"]
}

Datei anzeigen

@ -1,36 +0,0 @@
name: 'Close stale issues and PRs'
on:
schedule:
# Once every day at midnight UTC
- cron: "0 0 * * *"
workflow_dispatch: # Allow to run workflow manually
issue_comment: # Run workflow on comments
jobs:
stale:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- name: Mark/Close Stale Issues and Pull Requests 🗑️
uses: actions/stale@v4
with:
repo-token: ${{ secrets.STALE_ACTION_PAT }}
days-before-stale: 60
days-before-close: 7
stale-issue-message: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs.
stale-pr-message: >
This pull request has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs.
exempt-issue-labels: "pinned,enhancement,neverstale"
exempt-pr-labels: "pinned,enhancement,neverstale"
stale-issue-label: "stale"
stale-pr-label: "stale"
exempt-draft-pr: "true"
operations-per-run: "250"
ascending: "true"
#DRY-RUN
debug-only: "false"

5
.github/workflows/fix_redirects.sh gevendort Normale Datei
Datei anzeigen

@ -0,0 +1,5 @@
#/bin/bash
find ./site/ -maxdepth 2 -mindepth 2 -type f -name 'index.html' -not -path './site/de/*' -not -path './site/en/*' | while read f; do
echo "Fixing redirect '$f'..."
sed -i -E 's/\.en\/"/\/"/' $f
done

Datei anzeigen

@ -3,14 +3,17 @@ on:
push:
branches:
- master
workflow_dispatch: # Allow to run workflow manually
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout 📥
uses: actions/checkout@v2.4.0
uses: actions/checkout@v3.5.3
with:
token: '${{ secrets.GHPAGES_ACTION_CHECKOUT_TOKEN_PAT }}'
fetch-depth: '0' # https://github.com/timvink/mkdocs-git-revision-date-localized-plugin#note-when-using-build-environments
- name: Install dependencies 🐄
run: |
@ -22,8 +25,12 @@ jobs:
run: |
mkdocs build --verbose --clean
- name: Fixing redirects 🚧
run: |
bash .github/workflows/fix_redirects.sh
- name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@v4.2.3
uses: JamesIves/github-pages-deploy-action@v4.4.2
with:
token: '${{ secrets.GHPAGES_ACTION_DEPLOY_TOKEN_PAT }}'
git-config-name: '${{ secrets.GHPAGES_ACTION_DEPLOY_GITNAME_PAT }}'

Datei anzeigen

@ -8,9 +8,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout 📥
uses: actions/checkout@v2.4.0
uses: actions/checkout@v3.5.3
with:
token: '${{ secrets.GHPAGES_ACTION_CHECKOUT_TOKEN_PAT }}'
fetch-depth: '0' # https://github.com/timvink/mkdocs-git-revision-date-localized-plugin#note-when-using-build-environments
- name: Install dependencies 🐄
run: |
@ -21,3 +22,7 @@ jobs:
- name: Build site 🔧
run: |
mkdocs build --verbose --clean
- name: Fixing redirects 🚧
run: |
bash .github/workflows/fix_redirects.sh

2
.gitignore gevendort
Datei anzeigen

@ -1 +1 @@
site
.cache

159
README.md
Datei anzeigen

@ -1,18 +1,161 @@
> ⚠️: _**This branch of the mailcow docs is deprecated!**_<br>
> All Old Pull requests have been closed in case of incompatibility.<br>
> This Branch is for archiving purposes only!
# mailcow-docs | [![pages-build-deployment](https://github.com/mailcow/mailcow-dockerized-docs/actions/workflows/pages/pages-build-deployment/badge.svg)](https://github.com/mailcow/mailcow-dockerized-docs/actions/workflows/pages/pages-build-deployment)
The official mailcow docs based on mkdocs-material
# mailcow: dockerized documentation
## Introduction:
The mailcow documentation has been redesigned from scratch based on the original (legacy-1.0 branch).
This project aims to provide the mailcow: dockerized documentation for the [mailcow: dockerized](https://github.com/mailcow/mailcow-dockerized) project.
Advantages compared to the legacy version:
- Full translation support (English and German are officially supported by Servercow/tinc).
- New folder structure for better overview/ordering of sub-pages.
- Switches for Command Syntax (Docker Compose especially)
https://mailcow.github.io/mailcow-dockerized-docs
To build it locally, you need the [Material theme for MkDocs](https://squidfunk.github.io/mkdocs-material/), [MkDocs](https://www.mkdocs.org/) itself and [Pygments](http://pygments.org/). To install these with [pip](https://pip.pypa.io/en/stable/) and get it up and running, fire up your terminal and enter
## Contributions:
### About contributions:
The documentation lives (just like the actual mailcow project) from community contributions.
Of course, we will also make our contributions to the documentation, but especially the new translation support naturally brings some scope for multiple community supported languages.
To contribute new pages/translations simply clone the repository and then work with your cloned repository.
Once you are done with your work start a pull request, if approved this will then be implemented into the actual documentation.
### Use the Compose Switch in a new/edited Page:
If you plan to contribute to our docs please make sure to always specify **both** docker compose syntaxes! This can be done by using a "switch". Example:
```
=== "docker compose (Plugin)"
``` bash
docker compose exec rspamd-mailcow bash
```
=== "docker-compose (Standalone)"
``` bash
docker-compose exec rspamd-mailcow bash
```
```
Simply change the Content of this two cases acording to your desired needs.
### Translations
#### About Translations:
So you want to provide a new translation for the documentation? Great, thanks for that <3
There are a few things to keep in mind, which are essential for a smooth process:
#### Add the new Language to the Language selector:
As a start for possible translations, the language must first be added to the language selection. To add it, edit the mkdocs.yml file and add the language in the "translations" section (under the already existing languages):
```
[...]
- i18n: # <--- Translation plugin
default_language: en
languages:
en: English
de: Deutsch
[...] <--- Add the languages here.
[...]
```
The new language will now appear in the language selector once the mkdocs are rebuilt (see [Testing](#Testing)).
The i18n plugin for mkdocs (see [here](https://github.com/ultrabug/mkdocs-static-i18n) is used for our documentation, so the standard notations of the plugin apply (see [here](https://github.com/ultrabug/mkdocs-static-i18n#referencing-localized-content-in-your-markdown-pages)) i.e. each language of a page will be a separate `.md` file which is composed of the `filename.languagecode.md`.
**The filenames must remain the same for the other languages, only the country code in front of the .md extension is set to the desired language.**
If a page does **NOT** exist in a language, the English version of the page will be used by default, because English is set as default_language in mkdocs.yml.
Images can also be "translated"! These are distinguished (similar to the pages) by the country codes.
#### Translate the menu:
The menu is **NOT** translated by default and must be translated by hand, this is also done in the mkdocs.yml:
```
[...]
- i18n: # <--- Translation plugin
default_language: en
languages:
en: English
de: Deutsch
nav_translations:
#### Begin of german translation
de: #<--- Language code here
'Information & Support': 'Informationen & Support'
### Prerequisites Section
'Prerequisites': 'Voraussetzungen'
'Prepare your system': 'Systemvoraussetzungen'
'DNS setup': 'DNS Einstellungen'
[...]
```
The preceding English variant **MUST be kept**, otherwise the translation will **not work**.
### Folder structure:
```
docs <-- Root Folder
├── assets
│   └── images <-- Folder where the images are located (sorted by main chapter)
│ ├─ topic1
| │ ├── image.en.png
| │ ├── image.de.png
| │ ├── image.XX.png
| ├─ topic2
| │ ├── image.en.png
| │ ├── image.de.png
| │ ├── image.XX.png
| ├─ topicX
| ├── image.en.png
| ├── image.de.png
| ├── image.XX.png
|
├── topic1 <-- Folder where the documentation sites are located (sorted by main chapter)
│   ├── file.en.md
| ├── file.de.md
│   ├── file.XX.md
|
├── topic2
│   ├── subtopic1 <-- Some Chapters are divided into multiple subtopics
| | ├── file.en.md
| | ├── file.de.md
| | ├── file.XX.md
│   ├── subtopicX
| ├── file.en.md
| ├── file.de.md
| ├── file.XX.md
|
├── topicX
│   ├── file.en.md
| ├── file.de.md
│   ├── file.XX.md
```
## Testing
To build and test it locally, you need the [Material theme for MkDocs](https://squidfunk.github.io/mkdocs-material/), [MkDocs](https://www.mkdocs.org/) itself and [Pygments](http://pygments.org/). To install these with [pip](https://pip.pypa.io/en/stable/) and get it up and running, fire up your terminal and enter
```
git clone https://github.com/mailcow/mailcow-dockerized-docs.git
pip install -r requirements.txt
mkdocs serve
```
The Placeholder values get replaced by the javascript in the file docs/assets/javascript/client.js.
If you want to test how the documentation looks like with the placeholder values filled in, you can set the values via url parameters.
For Example:
```
http://127.0.0.1:8000/client/client-manual/#host=mail.test.org&email=mail@example.org&name=mail&ui=mail.example.org&port=443
```
## Misc
mailcow is a registered word mark of The Infrastructure Company GmbH, Parkstr. 42, 47877 Willich, Germany.
The project is managed and maintained by The Infrastructure Company GmbH.
Originated from @andryyy (André)

Binäre Datei nicht angezeigt.

Datei anzeigen

@ -0,0 +1,326 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg">
<defs >
<font id="SourceCodePro" horiz-adv-x="600" ><font-face
font-family="Source Code Pro ExtraLight"
units-per-em="1000"
panose-1="2 11 3 9 3 4 3 2 2 4"
ascent="984"
descent="-273"
alphabetic="0" />
<glyph unicode=" " />
<glyph unicode="!" d="M272 232L262 576L260 670H340L338 576L328 232H272ZM300 -12Q270 -12 249 9T227 66Q227 101 248 121T300 142Q330 142 351 122T373 66Q373 30 352 9T300 -12Z" />
<glyph unicode="&quot;" d="M413 352L388 577L386 687H496L494 577L469 352H413ZM387 352L362 577L360 687H470L468 577L443 352H387Z" />
<glyph unicode="#" d="M328 0L408 650H461L382 0H328ZM142 0L222 650H275L196 0H142ZM107 409V467H519V409H107ZM87 204V261H499V204H87Z" />
<glyph unicode="$" d="M85 113L124 170Q161 143 207 123T310 102Q369 102 400 126T431 189Q431 220 408 241T349 277T273 308T196 343T137 392T114 465Q114 512 139 546T208 599T310 618Q376 618 418 596T495 541L451 493Q417 520 386 535T304 550Q253 550 224
528T194 467Q194 440 217 421T276 388T352 359T429 323T489 272T512 195Q512 147 485 111T411 54T300 34Q260 34 220 45T146 74T85 113ZM276 587V748H336V587H276ZM276 63H336V-110H276V63Z" />
<glyph unicode="%" d="M166 321Q126 321 95 340T45 398T27 487Q27 565 66 607T166 650Q227 650 266 608T305 487Q305 436 287 398T238 341T166 321ZM166 371Q199 371 221 399T244 487Q244 547 222 574T166 601Q134 601 111 574T88 487Q88 428 111 400T166 371ZM77
32L28 77L211 265L244 235L77 32ZM389 391L356 421L523 624L572 579L389 391ZM434 -12Q394 -12 363 7T313 65T295 154Q295 232 334 274T434 317Q495 317 534 275T573 154Q573 103 555 65T506 8T434 -12ZM434 38Q467 38 489 66T512 154Q512 214 490 241T434 268Q402
268 379 241T356 154Q356 95 379 67T434 38Z" />
<glyph unicode="&amp;" d="M238 -12Q180 -12 136 11T67 76T42 170Q42 217 62 253T115 318T183 372T252 421T304 474T325 537Q325 566 312 587T265 609Q231 609 212 582T192 514Q192 468 214 417T272 314T354 216T445 134Q481 105 514 86T577 56L554 -12Q518 0
478 22T396 79Q343 121 294 174T206 287T144 404T121 513Q121 556 139 591T189 647T265 668Q326 668 359 632T392 538Q392 498 373 465T323 405T257 351T191 299T141 242T122 175Q122 138 139 111T184 69T248 54Q286 54 321 75T387 131Q424 174 450 230T494 354H570Q550
281 519 214T444 91Q405 46 355 17T238 -12Z" />
<glyph unicode="&apos;" d="M272 352L247 577L245 687H355L353 577L328 352H272Z" />
<glyph unicode="(" d="M433 -176Q329 -94 269 19T208 278Q208 423 268 537T433 732L478 690Q378 606 330 505T282 278Q282 152 330 52T478 -134L433 -176Z" />
<glyph unicode=")" d="M167 -176L122 -134Q222 -49 270 51T318 278Q318 404 270 505T122 690L167 732Q272 651 332 537T392 278Q392 133 332 20T167 -176Z" />
<glyph unicode="*" d="M180 111L138 141L246 306L84 376L100 422L267 367L276 556H324L333 367L500 422L516 376L354 306L462 141L420 111L300 270L180 111Z" />
<glyph unicode="+" d="M267 104V299H85V361H267V556H333V361H515V299H333V104H267Z" />
<glyph unicode="," d="M220 -213L197 -161Q261 -133 292 -91T323 14L304 106L360 27Q348 13 334 9T304 4Q283 4 265 12T237 37T226 79Q226 116 250 135T306 155Q350 155 373 121T396 27Q396 -61 349 -121T220 -213Z" />
<glyph unicode="-" d="M85 299V361H515V299H85Z" />
<glyph unicode="." d="M300 -12Q267 -12 243 11T219 72Q219 110 243 133T300 157Q334 157 357 134T381 72Q381 35 358 12T300 -12Z" />
<glyph unicode="/" d="M99 -160L427 710H501L173 -160H99Z" />
<glyph unicode="0" d="M300 -12Q229 -12 178 27T99 141T71 321Q71 482 132 566T300 650Q407 650 468 566T529 321Q529 215 502 141T423 28T300 -12ZM300 54Q345 54 379 82T432 170T452 321Q452 413 433 471T379 556T300 584Q256 584 222 557T168 471T148 321Q148
230 167 171T221 83T300 54ZM300 261Q275 261 257 279T238 328Q238 359 256 376T300 394Q326 394 344 377T362 328Q362 297 344 279T300 261Z" />
<glyph unicode="1" d="M97 0V68H281V538H138V591Q176 596 205 603T258 618T302 638H363V68H530V0H97Z" />
<glyph unicode="2" d="M73 0V49Q181 144 255 216T369 347T408 458Q408 513 374 548T269 583Q224 583 186 561T116 506L69 553Q112 597 161 623T279 650Q343 650 389 627T461 561T487 462Q487 402 450 341T347 213T193 65Q223 68 253 69T312 71H522V0H73Z" />
<glyph unicode="3" d="M287 -12Q232 -12 189 1T114 34T57 78L99 132Q131 102 176 79T282 56Q326 56 360 70T415 111T435 173Q435 211 412 239T338 284T203 300V363Q279 363 325 379T391 421T412 482Q412 529 377 556T282 583Q237 583 197 565T125 518L81 570Q121
605 172 627T285 650Q345 650 392 631T468 576T496 488Q496 430 458 393T360 336V332Q402 323 438 302T496 247T518 170Q518 113 487 73T403 10T287 -12Z" />
<glyph unicode="4" d="M368 0V440Q369 466 370 496T373 553H368Q353 530 336 507T303 460L130 242H545V176H39V231L358 638H446V0H368Z" />
<glyph unicode="5" d="M286 -12Q229 -12 186 0T112 33T56 75L97 129Q118 110 143 94T202 67T277 56Q322 56 359 74T417 124T439 202Q439 268 396 305T282 342Q242 342 214 332T152 303L108 331L129 638H490V567H202L185 378Q212 390 239 397T303 404Q364 404 414
383T493 318T522 204Q522 135 489 87T401 13T286 -12Z" />
<glyph unicode="6" d="M321 -12Q269 -12 225 7T147 64T96 160T77 295Q77 391 99 458T158 568T244 630T344 650Q402 650 446 631T522 582L476 531Q452 554 419 567T349 581Q297 581 253 554T182 465T154 295Q154 216 173 162T230 81T321 53Q359 53 389 70T438 119T456
193Q456 259 421 293T320 328Q282 328 238 308T153 238L150 303Q190 343 237 366T335 390Q394 390 439 368T509 302T534 193Q534 132 505 86T427 14T321 -12Z" />
<glyph unicode="7" d="M226 0Q230 91 243 166T281 307T345 437T438 567H70V638H532V587Q468 515 427 449T362 315T327 171T312 0H226Z" />
<glyph unicode="8" d="M302 -12Q230 -12 178 10T97 73T68 163Q68 207 88 239T139 294T205 333V337Q165 363 137 399T108 486Q108 535 133 572T203 629T305 650Q398 650 450 603T503 480Q503 435 475 396T406 328V324Q441 306 469 285T514 234T531 158Q531 111
505 73T427 11T302 -12ZM352 348Q432 406 432 476Q432 507 417 532T374 573T303 589Q251 589 217 561T183 486Q183 448 205 423T266 381T352 348ZM304 49Q375 49 413 80T452 161Q452 194 437 216T394 254T331 283T252 310Q221 293 196 273T157 228T143 171Q143
136 162 109T218 65T304 49Z" />
<glyph unicode="9" d="M257 -12Q198 -12 154 7T79 55L125 107Q149 84 182 70T252 56Q304 56 348 83T419 173T446 343Q446 422 427 475T370 557T280 585Q242 585 212 568T163 519T145 445Q145 380 180 345T281 310Q319 310 363 330T448 400L451 335Q412 295 364
272T265 248Q206 248 162 270T92 336T67 445Q67 506 96 552T174 624T279 650Q332 650 376 631T453 574T505 478T524 343Q524 247 502 179T443 69T357 8T257 -12Z" />
<glyph unicode=":" d="M300 346Q267 346 243 369T219 430Q219 468 243 491T300 515Q334 515 357 492T381 430Q381 393 358 370T300 346ZM300 -12Q267 -12 243 11T219 72Q219 110 243 133T300 157Q334 157 357 134T381 72Q381 35 358 12T300 -12Z" />
<glyph unicode=";" d="M300 346Q267 346 243 369T219 430Q219 468 243 491T300 515Q334 515 357 492T381 430Q381 393 358 370T300 346ZM220 -213L197 -161Q261 -133 292 -91T323 14L304 106L360 27Q348 13 334 9T304 4Q283 4 265 12T237 37T226 79Q226 116 250
135T306 155Q350 155 373 121T396 27Q396 -61 349 -121T220 -213Z" />
<glyph unicode="&lt;" d="M493 48L120 301V363L493 616V537L192 334V330L493 127V48Z" />
<glyph unicode="=" d="M85 406V468H515V406H85ZM85 448V510H515V448H85Z" />
<glyph unicode="&gt;" d="M107 48V127L408 330V334L107 537V616L480 363V301L107 48Z" />
<glyph unicode="?" d="M242 232Q235 275 248 307T286 365T336 413T380 461T398 517Q398 558 371 586T288 614Q250 614 218 599T158 556L109 601Q143 636 189 659T293 682Q349 682 390 663T455 608T479 526Q479 485 461 456T417 401T365 353T325 300T315 232H242ZM286
-12Q256 -12 235 9T213 66Q213 101 234 121T286 142Q316 142 337 122T359 66Q359 30 338 9T286 -12Z" />
<glyph unicode="@" d="M341 -144Q282 -144 229 -119T136 -44T73 80T49 250Q49 378 88 463T194 592T343 635Q412 635 457 604T524 519T546 397V100H496L489 158H485Q463 130 428 109T353 88Q318 88 289 104T242 149T224 219Q224 270 254 304T344 359T488 390V404Q488
452 473 492T425 556T339 580Q294 580 253 559T180 497T130 393T112 247Q112 140 142 65T225 -50T343 -89Q388 -89 421 -78T484 -44L512 -89Q473 -115 432 -129T341 -144ZM370 146Q398 146 426 162T482 210V336Q378 321 334 294T290 221Q290 186 312 166T370 146Z"
/>
<glyph unicode="A" d="M32 0L253 656H347L568 0H480L366 367Q349 422 333 476T301 588H297Q281 531 265 477T232 367L117 0H32ZM148 200V267H449V200H148Z" />
<glyph unicode="B" d="M99 0V656H285Q352 656 402 640T481 589T510 496Q510 447 482 408T395 353V349Q467 338 507 299T547 192Q547 128 516 85T430 21T300 0H99ZM182 380H271Q355 380 391 407T428 489Q428 542 390 564T275 586H182V380ZM182 70H288Q372 70 418
99T465 196Q465 257 420 283T288 310H182V70Z" />
<glyph unicode="C" d="M351 -12Q290 -12 238 11T147 77T87 184T65 328Q65 433 103 509T207 627T359 668Q418 668 464 644T538 588L491 535Q466 563 433 579T359 595Q296 595 250 563T177 471T151 330Q151 247 177 187T249 94T359 61Q404 61 440 80T507 134L554
83Q516 38 466 13T351 -12Z" />
<glyph unicode="D" d="M87 0V656H249Q348 656 415 619T518 508T553 331Q553 226 519 152T417 39T253 0H87ZM170 68H243Q318 68 367 99T442 189T467 331Q467 413 442 471T368 558T243 588H170V68Z" />
<glyph unicode="E" d="M114 0V656H520V586H198V380H470V309H198V71H530V0H114Z" />
<glyph unicode="F" d="M133 0V656H536V586H217V364H487V294H217V0H133Z" />
<glyph unicode="G" d="M337 -12Q255 -12 191 28T90 145T53 328Q53 434 90 510T193 627T344 668Q409 668 453 643T525 588L478 535Q454 561 423 578T344 595Q283 595 237 563T166 471T140 330Q140 247 164 187T233 94T342 61Q376 61 407 71T456 100V271H325V340H533V64Q502
32 452 10T337 -12Z" />
<glyph unicode="H" d="M79 0V656H163V381H437V656H521V0H437V309H163V0H79Z" />
<glyph unicode="I" d="M95 0V71H258V586H95V656H505V586H342V71H505V0H95Z" />
<glyph unicode="J" d="M276 -12Q221 -12 168 14T81 97L133 148Q161 104 198 83T274 61Q344 61 377 98T410 217V587H135V657H493V210Q493 149 473 99T406 18T276 -12Z" />
<glyph unicode="K" d="M98 0V656H182V327H185L461 656H556L182 209V0H98ZM486 0L283 366L334 432L580 0H486Z" />
<glyph unicode="L" d="M134 0V656H216V71H541V0H134Z" />
<glyph unicode="M" d="M72 0V656H174L266 376L298 270H302L333 376L426 656H528V0H448V328Q448 352 449 383T453 447T458 509T462 560H459L422 432L328 174H268L176 432L138 560H136Q138 539 140 510T145 447T148 383T150 328V0H72Z" />
<glyph unicode="N" d="M82 0V656H174L384 244L447 108H449Q447 157 443 210T438 316V656H518V0H426L216 412L153 548H151Q153 498 157 446T162 343V0H82Z" />
<glyph unicode="O" d="M300 -12Q226 -12 169 29T80 146T48 331Q48 437 80 512T169 628T300 668Q374 668 431 628T520 513T552 331Q552 223 520 147T431 29T300 -12ZM300 61Q350 61 387 93T445 186T466 331Q466 414 446 473T388 563T300 595Q250 595 213 564T155
473T134 331Q134 247 154 187T212 94T300 61Z" />
<glyph unicode="P" d="M102 0V656H300Q373 656 427 638T512 577T543 463Q543 394 513 350T427 283T300 260H185V0H102ZM185 328H290Q376 328 417 361T459 463Q459 534 417 561T290 589H185V328Z" />
<glyph unicode="Q" d="M300 -12Q226 -12 169 29T80 146T48 331Q48 437 80 512T169 628T300 668Q374 668 431 628T520 513T552 331Q552 223 520 147T431 29T300 -12ZM300 57Q350 57 387 89T445 183T466 331Q466 413 445 472T387 563T300 595Q250 595 213 564T155
473T134 331Q134 244 155 183T213 90T300 57ZM481 -163Q392 -163 337 -117T257 -1L343 6Q353 -26 373 -48T424 -81T490 -92Q505 -92 518 -89T539 -82L555 -149Q539 -155 521 -159T481 -163Z" />
<glyph unicode="R" d="M100 0V656H304Q371 656 422 639T503 581T533 472Q533 406 504 363T423 299T304 277H183V0H100ZM183 345H292Q369 345 409 376T450 472Q450 536 410 562T292 589H183V345ZM287 300L353 344L553 0H458L287 300Z" />
<glyph unicode="S" d="M305 -12Q233 -12 173 14T67 85L117 143Q154 106 203 84T309 61Q377 61 414 90T452 165Q452 200 437 221T395 256T334 284L240 325Q207 339 175 360T120 413T98 494Q98 544 125 583T202 645T313 668Q375 668 427 646T515 587L471 533Q439
562 400 578T310 595Q253 595 218 570T183 499Q183 468 200 448T245 415T300 390L392 350Q433 334 466 312T518 256T537 175Q537 123 509 81T429 13T305 -12Z" />
<glyph unicode="T" d="M258 0V586H42V656H558V586H342V0H258Z" />
<glyph unicode="U" d="M301 -12Q253 -12 213 2T142 47T96 128T79 248V656H163V246Q163 178 181 138T230 79T301 61Q341 61 372 79T422 137T440 246V656H521V248Q521 178 505 128T459 48T389 3T301 -12Z" />
<glyph unicode="V" d="M252 0L43 656H131L237 302Q255 244 268 194T300 85H304Q323 143 336 193T367 302L472 656H557L349 0H252Z" />
<glyph unicode="W" d="M110 0L10 657H104L152 245Q155 218 157 196T162 150T165 93H168Q174 126 179 149T189 195T200 244L264 488H344L406 244Q413 217 418 195T427 150T438 93H442Q444 126 445 149T449 195T454 244L500 657H590L494 0H390L326 264Q319 294 313
323T302 382H299Q294 352 289 323T276 264L212 0H110Z" />
<glyph unicode="X" d="M54 0L250 339L67 656H159L251 488Q264 466 276 444T304 393H308Q321 422 332 444T355 488L445 656H533L350 335L546 0H454L355 177Q342 201 328 226T297 282H293Q279 252 266 227T240 177L142 0H54Z" />
<glyph unicode="Y" d="M258 0V234L38 656H126L225 461Q244 424 262 386T300 308H304Q324 348 343 386T381 462L476 656H562L342 234V0H258Z" />
<glyph unicode="Z" d="M65 0V50L431 587H97V657H534V607L167 71H539V0H65Z" />
<glyph unicode="[" d="M225 -152V708H502V661H291V-105H502V-152H225Z" />
<glyph unicode="\" d="M427 -160L99 710H173L501 -160H427Z" />
<glyph unicode="]" d="M98 -152V-105H309V661H98V708H375V-152H98Z" />
<glyph unicode="^" d="M111 284L264 670H336L489 284H417L351 460L302 593H298L249 460L183 284H111Z" />
<glyph unicode="_" d="M60 -140V-69H540V-140H60Z" />
<glyph unicode="`" d="M321 568L164 721L222 777L364 609L321 568Z" />
<glyph unicode="a" d="M246 -12Q201 -12 163 4T103 52T81 126Q81 208 163 250T433 308Q432 341 420 369T379 413T304 430Q273 430 243 422T185 400T134 372L102 428Q126 444 160 460T235 487T318 498Q385 498 428 473T493 404T515 298V0H448L441 66H438Q398 34
348 11T246 -12ZM268 54Q310 54 351 73T433 126V254Q329 245 270 229T186 189T161 132Q161 105 176 88T215 62T268 54Z" />
<glyph unicode="b" d="M320 -12Q284 -12 244 5T169 54H166L159 0H93V712H175V518L172 424H175Q208 458 251 478T338 498Q404 498 449 468T517 382T540 251Q540 168 510 109T429 19T320 -12ZM307 57Q349 57 382 80T435 146T455 250Q455 303 441 343T397 406T318
429Q285 429 249 412T175 356V114Q210 83 245 70T307 57Z" />
<glyph unicode="c" d="M346 -12Q270 -12 210 18T115 105T80 242Q80 324 117 381T215 468T351 498Q411 498 454 477T528 427L487 374Q457 400 425 415T354 430Q298 430 255 407T189 341T165 242Q165 187 188 145T253 80T352 56Q397 56 434 74T502 117L539 64Q499
28 450 8T346 -12Z" />
<glyph unicode="d" d="M271 -12Q176 -12 118 54T60 242Q60 321 91 378T173 467T281 498Q324 498 359 482T426 435H429L425 525V712H507V0H439L432 64H429Q400 33 359 11T271 -12ZM288 57Q324 57 358 75T425 130V372Q392 403 361 416T297 429Q255 429 221 406T166
341T145 243Q145 156 183 107T288 57Z" />
<glyph unicode="e" d="M330 -12Q257 -12 198 18T103 105T68 244Q68 323 103 380T194 467T316 498Q386 498 435 470T511 390T538 270Q538 256 537 243T534 220H123V284H485L464 261Q464 347 425 390T318 433Q273 433 235 411T173 347T150 244Q150 181 175 139T243
76T340 54Q384 54 419 66T488 100L518 46Q482 22 436 5T330 -12Z" />
<glyph unicode="f" d="M242 0V527Q242 586 263 630T328 699T438 724Q474 724 508 718T578 696L559 634Q529 648 504 652T446 657Q381 657 352 623T323 530V0H242ZM103 419V481L245 486H527V419H103Z" />
<glyph unicode="g" d="M296 -224Q225 -224 175 -208T99 -162T72 -89Q72 -60 92 -32T152 19V23Q133 34 118 53T102 103Q102 126 117 150T160 194V198Q135 217 118 249T100 324Q100 377 126 416T196 476T291 498Q332 498 363 486H564V419H438Q455 402 467 376T479
321Q479 269 454 232T387 174T291 154Q272 154 251 158T209 172Q191 161 181 147T171 116Q171 88 197 74T272 60H381Q475 60 520 34T566 -54Q566 -99 533 -138T440 -200T296 -224ZM291 209Q322 209 347 223T388 263T403 324Q403 358 388 383T348 423T291 438Q261
438 236 424T195 384T179 324Q179 289 194 263T235 223T291 209ZM302 -164Q359 -164 400 -150T463 -114T485 -67Q485 -32 458 -20T374 -8H279Q258 -8 240 -6T205 0Q171 -19 157 -39T143 -81Q143 -119 183 -141T302 -164Z" />
<glyph unicode="h" d="M93 0V712H175V518L170 403H173Q210 443 254 470T355 498Q441 498 482 448T523 302V0H441V291Q441 360 415 393T329 427Q286 427 252 405T175 339V0H93Z" />
<glyph unicode="i" d="M316 0V419H90V486H398V0H316ZM348 588Q320 588 301 605T282 652Q282 681 301 698T348 716Q376 716 395 699T414 652Q414 623 395 606T348 588Z" />
<glyph unicode="j" d="M194 -217Q156 -217 120 -208T55 -184L82 -123Q108 -136 136 -143T193 -150Q242 -150 268 -135T305 -89T316 -18V419H90V486H398V-12Q398 -57 388 -94T355 -159T293 -202T194 -217ZM348 588Q320 588 301 605T282 652Q282 681 301 698T348
716Q376 716 395 699T414 652Q414 623 395 606T348 588Z" />
<glyph unicode="k" d="M106 0V712H188V230H192L454 486H548L188 132V0H106ZM482 0L292 259L342 312L574 0H482Z" />
<glyph unicode="l" d="M406 -12Q329 -12 288 32T247 163V645H81V712H329V157Q329 104 355 80T424 56Q445 56 467 61T516 79L537 17Q504 5 475 -3T406 -12Z" />
<glyph unicode="m" d="M58 0V486H124L131 422H133Q152 456 177 477T244 498Q280 498 303 477T336 414Q357 453 382 475T450 498Q501 498 529 460T558 348V0H476V342Q476 427 424 427Q399 427 383 409T346 352V0H270V342Q270 384 259 405T220 427Q195 427 177 409T140
352V0H58Z" />
<glyph unicode="n" d="M93 0V486H161L168 403H172Q210 444 254 471T355 498Q441 498 482 448T523 302V0H441V291Q441 360 415 393T329 427Q286 427 252 405T175 339V0H93Z" />
<glyph unicode="o" d="M300 -12Q236 -12 182 18T94 105T60 242Q60 324 93 381T181 468T300 498Q364 498 418 468T506 381T540 242Q540 162 507 105T419 18T300 -12ZM300 56Q347 56 382 79T436 145T455 242Q455 298 436 340T382 406T300 430Q253 430 219 407T165
341T145 242Q145 187 164 145T218 80T300 56Z" />
<glyph unicode="p" d="M93 -205V486H161L168 424H171Q205 456 249 477T339 498Q405 498 449 468T517 382T540 250Q540 168 509 109T428 19T319 -12Q286 -12 247 4T174 51H171L175 -41V-205H93ZM305 57Q348 57 382 80T435 146T455 250Q455 303 441 343T397 406T318
429Q285 429 249 412T175 356V114Q210 83 245 70T305 57Z" />
<glyph unicode="q" d="M425 -205V-28L429 62H426Q397 31 356 10T270 -12Q176 -12 118 54T60 242Q60 321 91 378T173 467T281 498Q325 498 361 482T431 432H434L441 486H507V-205H425ZM288 57Q324 57 358 75T425 130V372Q392 403 361 416T297 429Q255 429 221 406T166
341T145 243Q145 156 183 107T288 57Z" />
<glyph unicode="r" d="M146 0V486H214L221 371H224Q262 430 318 464T441 498Q468 498 491 494T537 478L518 407Q493 416 475 420T428 424Q373 424 323 393T228 285V0H146Z" />
<glyph unicode="s" d="M310 -12Q239 -12 177 11T71 64L109 118Q151 88 202 70T320 52Q382 52 412 75T443 128Q443 142 438 154T417 177T371 198T291 218Q196 238 149 272T101 360Q101 419 152 458T303 498Q359 498 411 480T499 436L459 383Q426 407 384 420T296
434Q254 434 230 425T195 399T184 364Q184 333 217 316T325 283Q406 266 449 245T509 197T526 133Q526 93 501 61T428 8T310 -12Z" />
<glyph unicode="t" d="M394 -12Q323 -12 282 13T224 84T206 189V419H69V481L209 486L220 642H288V486H527V419H288V188Q288 145 299 115T337 70T411 55Q446 55 474 61T528 77L546 17Q513 5 477 -3T394 -12Z" />
<glyph unicode="u" d="M246 -12Q159 -12 118 38T77 184V486H160V195Q160 126 185 93T272 59Q314 59 348 80T423 149V486H505V0H438L431 85H427Q390 43 346 16T246 -12Z" />
<glyph unicode="v" d="M256 0L51 486H134L246 210Q261 174 274 138T301 67H305Q318 102 331 138T358 210L470 486H549L348 0H256Z" />
<glyph unicode="w" d="M114 0L8 486H90L148 204Q155 170 160 138T170 70H174Q179 105 186 137T202 204L262 456H344L402 204Q410 170 419 138T432 70H436Q442 105 446 137T458 204L516 486H592L488 0H382L326 232Q320 258 314 294T302 376H298Q292 330 286 294T274
232L220 0H114Z" />
<glyph unicode="x" d="M64 0L249 252L78 486H169L246 379Q259 360 274 339T303 297H307Q320 318 334 339T362 381L435 486H522L349 245L535 0H445L360 112Q345 133 329 156T296 200H292Q277 179 262 157T232 112L152 0H64Z" />
<glyph unicode="y" d="M131 -209Q115 -209 98 -206T67 -199L84 -134Q94 -137 105 -139T128 -141Q179 -141 211 -112T261 -37L276 -1L49 486H132L251 217Q265 185 280 149T311 76H315Q328 111 341 147T367 217L473 486H551L337 -40Q319 -88 292 -126T226 -187T131 -209Z" />
<glyph unicode="z" d="M71 0V44L404 419H108V486H522V442L188 67H531V0H71Z" />
<glyph unicode="{" d="M441 -152Q347 -152 302 -124T256 -19Q256 18 258 49T262 110T265 174Q265 194 254 211T211 240T120 252V304Q179 304 210 315T253 345T265 382Q265 413 263 444T258 508T256 575Q256 652 301 680T441 708H502V661H450Q399 661 373 652T336
623T326 570Q326 527 329 482T332 389Q332 341 313 315T241 280V276Q293 267 312 241T332 167Q332 117 329 75T326 -14Q326 -46 336 -66T372 -95T450 -105H502V-152H441Z" />
<glyph unicode="|" d="M263 -250V750H337V-250H263Z" />
<glyph unicode="}" d="M99 -152V-105H150Q202 -105 228 -96T265 -66T275 -14Q275 32 272 74T269 167Q269 215 288 241T359 276V280Q307 289 288 315T269 389Q269 436 272 481T275 570Q275 603 265 622T229 651T150 661H99V708H160Q254 708 299 680T344 575Q344
540 342 508T338 445T335 382Q335 363 346 345T389 316T480 304V252Q421 252 390 241T347 212T335 174Q335 141 337 111T342 49T344 -19Q344 -96 299 -124T160 -152H99Z" />
<glyph unicode="~" d="M388 257Q359 257 335 270T291 299T251 328T210 341Q195 341 181 334T154 309T129 255L76 278Q102 349 138 376T212 403Q242 403 265 390T309 361T349 332T390 319Q406 319 420 326T447 351T471 405L524 381Q498 311 462 284T388 257Z" />
<glyph unicode="&#xa0;" />
<glyph unicode="&#xa1;" d="M260 -184L262 -90L272 254H328L338 -90L340 -184H260ZM300 344Q270 344 249 364T227 421Q227 457 248 477T300 498Q330 498 351 478T373 421Q373 385 352 365T300 344Z" />
<glyph unicode="&#xa2;" d="M348 69Q279 69 226 97T143 179T113 310Q113 387 146 441T233 522T354 550Q402 550 437 533T496 492L456 440Q435 460 411 471T358 482Q309 482 272 461T215 401T194 310Q194 232 237 185T355 138Q390 138 419 152T470 185L506 133Q473
103 433 86T348 69ZM314 -33V653H365V-33H314Z" />
<glyph unicode="&#xa3;" d="M78 0V50Q140 78 171 126T202 230Q202 260 194 290T173 349T153 407T144 466Q144 523 170 564T243 627T354 650Q416 650 458 629T530 575L482 528Q459 552 430 566T358 581Q293 581 258 549T223 464Q223 434 230 407T248 351T267 293T275
229Q275 177 257 142T203 75V71H531V0H78ZM77 285V337L180 341H442V285H77Z" />
<glyph unicode="&#xa4;" d="M102 83L58 128L142 213Q124 236 115 265T106 329Q106 364 115 393T141 446L58 532L102 577L189 487Q238 524 300 524Q361 524 411 487L498 577L542 532L458 446Q475 423 484 394T494 329Q494 295 485 266T458 213L542 128L498 83L410
172Q387 153 359 144T300 134Q237 134 189 172L102 83ZM300 195Q332 195 359 212T402 259T418 329Q418 369 403 399T360 446T300 463Q268 463 241 446T198 399T182 329Q182 289 198 259T241 212T300 195Z" />
<glyph unicode="&#xa5;" d="M258 0V158H77V206H258V271H77V318H238L53 638H138L230 467Q247 434 264 401T299 332H303Q321 367 338 400T373 467L465 638H547L361 318H523V271H340V206H523V158H340V0H258Z" />
<glyph unicode="&#xa6;" d="M263 -250V190H337V-250H263ZM263 310V750H337V310H263Z" />
<glyph unicode="&#xa7;" d="M287 -64Q233 -64 187 -45T108 7L158 52Q184 28 214 14T287 0Q327 0 350 20T373 69Q373 97 353 116T300 149T232 179T163 214T111 266T91 343Q91 393 124 428T206 484L245 443Q207 426 185 405T162 348Q162 315 183 293T236 255T305
224T374 190T427 143T448 73Q448 33 428 3T371 -46T287 -64ZM348 183Q392 199 415 219T438 278Q438 313 417 335T364 374T294 405T225 438T172 485T151 554Q151 588 168 618T218 666T302 684Q351 684 392 667T463 627L423 574Q398 594 370 607T306 620Q263 620
245 602T226 557Q226 530 246 512T299 480T368 450T436 413T489 361T509 284Q509 248 495 222T454 176T393 141L348 183Z" />
<glyph unicode="&#xa8;" d="M203 588Q179 588 164 604T148 644Q148 667 163 683T203 700Q227 700 242 684T258 644Q258 621 243 605T203 588ZM397 588Q373 588 358 604T342 644Q342 667 357 683T397 700Q421 700 436 684T452 644Q452 621 437 605T397 588Z" />
<glyph unicode="&#xa9;" d="M300 -11Q223 -11 163 30T66 146T30 323Q30 426 66 500T162 613T300 653Q377 653 437 614T534 500T570 323Q570 221 534 146T438 30T300 -11ZM300 31Q367 31 417 67T496 170T524 323Q524 411 496 475T418 576T300 612Q233 612 183 576T104
476T76 323Q76 236 104 170T182 68T300 31ZM308 125Q263 125 227 148T168 216T146 323Q146 381 169 423T229 489T311 512Q347 512 371 499T415 465L381 426Q365 441 350 449T314 457Q269 457 241 420T212 323Q212 257 239 219T310 180Q337 180 356 190T391 214L421
172Q399 152 373 139T308 125Z" />
<glyph unicode="&#xaa;" d="M269 387Q225 387 194 412T163 479Q163 531 216 560T382 598Q381 619 374 636T351 663T307 673Q279 673 252 663T201 639L176 682Q202 698 240 711T318 724Q383 724 414 689T446 590V395H393L389 433H387Q362 414 332 401T269 387ZM285
436Q311 436 334 446T382 476V559Q297 551 261 533T225 485Q225 459 243 448T285 436Z" />
<glyph unicode="&#xab;" d="M491 52L338 212V292L491 452L530 417L403 252L530 86L491 52ZM465 52L312 212V292L465 452L504 417L377 252L504 86L465 52Z" />
<glyph unicode="&#xac;" d="M449 104V299H85V361H515V104H449Z" />
<glyph unicode="&#xad;" d="M85 299V361H515V299H85Z" />
<glyph unicode="&#xae;" d="M300 319Q248 319 205 344T137 413T112 516Q112 574 137 618T205 688T300 713Q351 713 394 688T462 619T488 516Q488 457 463 413T394 344T300 319ZM300 356Q342 356 375 376T428 432T448 516Q448 563 429 599T376 656T300 677Q258
677 224 657T171 600T151 516Q151 469 170 433T224 376T300 356ZM227 417V620H303Q335 620 358 606T382 555Q382 537 372 522T344 500L390 417H344L309 487H268V417H227ZM268 519H294Q314 519 326 527T338 553Q338 568 329 577T296 586H268V519Z" />
<glyph unicode="&#xaf;" d="M167 601V658H433V601H167Z" />
<glyph unicode="&#xb0;" d="M300 429Q267 429 239 444T193 489T175 556Q175 595 192 624T238 669T300 685Q334 685 362 669T408 624T426 556Q426 518 409 489T363 445T300 429ZM300 475Q334 475 355 498T376 556Q376 593 355 616T300 639Q267 639 246 616T225
556Q225 521 246 498T300 475Z" />
<glyph unicode="&#xb1;" d="M267 127V304H85V366H267V556H333V366H515V304H333V127H267ZM85 0V62H515V0H85Z" />
<glyph unicode="&#xb2;" d="M162 395L158 432Q225 489 271 529T340 600T363 661Q363 699 340 721T278 743Q251 743 226 727T184 686L146 721Q169 755 206 776T287 797Q349 797 388 765T427 670Q427 633 406 600T347 530T262 449H446V395H162Z" />
<glyph unicode="&#xb3;" d="M297 383Q246 383 206 404T142 459L184 492Q203 464 231 449T293 434Q329 434 355 452T381 503Q381 538 349 555T250 573V613Q310 613 338 633T366 684Q366 712 344 729T286 746Q261 746 238 733T196 698L158 732Q183 763 217 780T295
797Q332 797 362 785T411 748T430 692Q430 657 411 634T351 596Q394 588 419 563T445 500Q445 464 425 438T372 397T297 383Z" />
<glyph unicode="&#xb4;" d="M279 568L236 609L378 777L436 721L279 568Z" />
<glyph unicode="&#xb5;" d="M84 -187V486H166V195Q166 128 191 94T269 59Q294 59 318 67T367 97T417 164V486H500Q499 420 498 352T495 217T494 92Q494 73 502 65T522 56Q526 56 529 56T540 58L551 -4Q543 -7 531 -9T504 -12Q466 -12 447 10T424 92H422Q392 40
353 15T268 -10Q235 -10 208 0T160 43Q160 -7 160 -44T162 -114T167 -187H84Z" />
<glyph unicode="&#xb6;" d="M318 226Q247 226 192 249T105 320T72 443Q72 521 103 568T187 635T307 656H350V226H318ZM404 -80V656H485V-80H404Z" />
<glyph unicode="&#xb7;" d="M300 263Q267 263 243 286T219 347Q219 385 243 408T300 432Q334 432 357 409T381 347Q381 310 358 287T300 263Z" />
<glyph unicode="&#xb8;" d="M213 -226L205 -186Q268 -181 291 -170T314 -136Q314 -116 297 -105T237 -88L277 8H331L305 -64Q340 -72 359 -88T378 -135Q378 -178 336 -200T213 -226Z" />
<glyph unicode="&#xb9;" d="M298 395V703H193V744Q234 751 260 759T310 785H362V395H298ZM175 395V449H476V395H175Z" />
<glyph unicode="&#xba;" d="M300 387Q258 387 222 406T164 464T142 555Q142 609 164 646T222 704T300 724Q342 724 378 704T436 647T458 555Q458 502 436 464T378 407T300 387ZM300 439Q343 439 367 471T392 555Q392 608 368 640T300 672Q257 672 233 640T208
555Q208 503 232 471T300 439Z" />
<glyph unicode="&#xbb;" d="M391 52L352 86L479 252L352 417L391 452L544 292V212L391 52ZM365 52L326 86L453 252L326 417L365 452L518 292V212L365 52Z" />
<glyph unicode="&#xbc;" d="M149 333V563H67V605Q100 610 120 618T162 638H212V333H149ZM77 32L28 77L211 265L244 235L77 32ZM389 391L356 421L523 624L572 579L389 391ZM468 0V213H525V0H468ZM306 74V105L419 317L465 297L368 116H575V74H306Z" />
<glyph unicode="&#xbd;" d="M149 333V563H67V605Q100 610 120 618T162 638H212V333H149ZM77 32L28 77L211 265L244 235L77 32ZM389 391L356 421L523 624L572 579L389 391ZM324 0V36Q376 76 412 106T466 160T485 206Q485 234 470 249T425 265Q405 265 386 254T353
223L314 256Q336 282 366 299T432 317Q486 317 517 290T548 214Q548 187 532 162T488 110T427 53H563V0H324Z" />
<glyph unicode="&#xbe;" d="M158 321Q124 321 90 335T31 375L63 414Q78 396 102 384T154 371Q181 371 198 382T216 418Q216 443 193 456T120 469V507Q161 507 181 521T201 558Q201 578 188 589T146 601Q128 601 108 592T73 567L43 605Q62 625 93 637T158 650Q205
650 234 628T264 566Q264 538 251 520T208 491Q241 484 260 465T279 414Q279 385 263 364T220 332T158 321ZM102 32L53 77L236 265L269 235L102 32ZM414 391L381 421L548 624L597 579L414 391ZM468 0V213H525V0H468ZM306 74V105L419 317L465 297L368 116H575V74H306Z"
/>
<glyph unicode="&#xbf;" d="M307 -196Q251 -196 210 -177T145 -122T121 -40Q121 1 139 31T183 85T235 133T275 186T285 254H358Q365 211 352 179T314 122T264 73T220 25T202 -31Q202 -72 230 -99T312 -127Q351 -127 383 -112T442 -70L491 -115Q458 -150 412 -173T307
-196ZM314 344Q284 344 263 364T241 421Q241 457 262 477T314 498Q344 498 365 478T387 421Q387 385 366 365T314 344Z" />
<glyph unicode="&#xc0;" d="M32 0L253 656H347L568 0H480L366 367Q349 422 333 476T301 588H297Q281 531 265 477T232 367L117 0H32ZM148 200V267H449V200H148ZM329 697L177 812L224 867L365 739L329 697Z" />
<glyph unicode="&#xc1;" d="M32 0L253 656H347L568 0H480L366 367Q349 422 333 476T301 588H297Q281 531 265 477T232 367L117 0H32ZM148 200V267H449V200H148ZM271 697L235 739L376 867L423 812L271 697Z" />
<glyph unicode="&#xc2;" d="M32 0L253 656H347L568 0H480L366 367Q349 422 333 476T301 588H297Q281 531 265 477T232 367L117 0H32ZM148 200V267H449V200H148ZM188 699L152 725L257 838H343L448 725L412 699L302 792H298L188 699Z" />
<glyph unicode="&#xc3;" d="M32 0L253 656H347L568 0H480L366 367Q349 422 333 476T301 588H297Q281 531 265 477T232 367L117 0H32ZM148 200V267H449V200H148ZM375 709Q347 709 327 719T291 744T260 769T227 780Q208 780 195 763T179 714L123 718Q126 776 153
808T225 841Q253 841 273 830T310 806T340 781T373 770Q392 770 405 787T421 836L477 832Q475 774 448 742T375 709Z" />
<glyph unicode="&#xc4;" d="M32 0L253 656H347L568 0H480L366 367Q349 422 333 476T301 588H297Q281 531 265 477T232 367L117 0H32ZM148 200V267H449V200H148ZM209 715Q187 715 173 729T158 766Q158 788 172 802T209 816Q231 816 245 802T259 766Q259 744 245
730T209 715ZM391 715Q370 715 356 729T341 766Q341 788 355 802T391 816Q414 816 428 802T442 766Q442 744 428 730T391 715Z" />
<glyph unicode="&#xc5;" d="M32 0L253 656H347L568 0H480L366 367Q349 422 333 476T301 588H297Q281 531 265 477T232 367L117 0H32ZM148 200V267H449V200H148ZM300 699Q258 699 231 724T203 789Q203 830 230 855T300 880Q341 880 369 855T397 789Q397 749 369
724T300 699ZM300 735Q320 735 335 749T351 789Q351 814 336 828T300 843Q278 843 263 829T248 789Q248 763 263 749T300 735Z" />
<glyph unicode="&#xc6;" d="M-1 0L263 656H582V586H393V381H540V310H393V71H591V0H317V590H314Q294 537 273 484T231 377L86 0H-1ZM131 191V258H357V191H131Z" />
<glyph unicode="&#xc7;" d="M351 -12Q290 -12 238 11T147 77T87 184T65 328Q65 433 103 509T207 627T359 668Q418 668 464 644T538 588L491 535Q466 563 433 579T359 595Q296 595 250 563T177 471T151 330Q151 247 177 187T249 94T359 61Q404 61 440 80T507 134L554
83Q516 38 466 13T351 -12ZM263 -226L255 -186Q318 -181 341 -170T364 -136Q364 -116 347 -105T287 -88L327 8H381L355 -64Q390 -72 409 -88T428 -135Q428 -178 386 -200T263 -226Z" />
<glyph unicode="&#xc8;" d="M114 0V656H520V586H198V380H470V309H198V71H530V0H114ZM360 697L208 812L255 867L396 739L360 697Z" />
<glyph unicode="&#xc9;" d="M114 0V656H520V586H198V380H470V309H198V71H530V0H114ZM302 697L266 739L407 867L454 812L302 697Z" />
<glyph unicode="&#xca;" d="M114 0V656H520V586H198V380H470V309H198V71H530V0H114ZM219 699L183 725L288 838H374L479 725L443 699L333 792H329L219 699Z" />
<glyph unicode="&#xcb;" d="M114 0V656H520V586H198V380H470V309H198V71H530V0H114ZM240 715Q218 715 204 729T189 766Q189 788 203 802T240 816Q262 816 276 802T290 766Q290 744 276 730T240 715ZM422 715Q401 715 387 729T372 766Q372 788 386 802T422 816Q445
816 459 802T473 766Q473 744 459 730T422 715Z" />
<glyph unicode="&#xcc;" d="M95 0V71H258V586H95V656H505V586H342V71H505V0H95ZM329 697L177 812L224 867L365 739L329 697Z" />
<glyph unicode="&#xcd;" d="M95 0V71H258V586H95V656H505V586H342V71H505V0H95ZM271 697L235 739L376 867L423 812L271 697Z" />
<glyph unicode="&#xce;" d="M95 0V71H258V586H95V656H505V586H342V71H505V0H95ZM188 699L152 725L257 838H343L448 725L412 699L302 792H298L188 699Z" />
<glyph unicode="&#xcf;" d="M95 0V71H258V586H95V656H505V586H342V71H505V0H95ZM209 715Q187 715 173 729T158 766Q158 788 172 802T209 816Q231 816 245 802T259 766Q259 744 245 730T209 715ZM391 715Q370 715 356 729T341 766Q341 788 355 802T391 816Q414
816 428 802T442 766Q442 744 428 730T391 715Z" />
<glyph unicode="&#xd0;" d="M87 0V314H12V370L87 376V656H249Q348 656 415 618T518 508T553 331Q553 226 518 152T417 39T253 0H87ZM170 68H243Q318 68 367 99T441 189T466 331Q466 414 442 471T368 558T243 588H170V376H314V314H170V68Z" />
<glyph unicode="&#xd1;" d="M82 0V656H174L384 244L447 108H449Q447 157 443 210T438 316V656H518V0H426L216 412L153 548H151Q153 498 157 446T162 343V0H82ZM385 709Q357 709 337 719T301 744T270 769T237 780Q218 780 205 763T189 714L133 718Q136 776 163
808T235 841Q263 841 283 830T320 806T350 781T383 770Q402 770 415 787T431 836L487 832Q485 774 458 742T385 709Z" />
<glyph unicode="&#xd2;" d="M300 -12Q226 -12 169 29T80 146T48 331Q48 437 80 512T169 628T300 668Q374 668 431 628T520 513T552 331Q552 223 520 147T431 29T300 -12ZM300 61Q350 61 387 93T445 186T466 331Q466 414 446 473T388 563T300 595Q250 595 213 564T155
473T134 331Q134 247 154 187T212 94T300 61ZM329 697L177 812L224 867L365 739L329 697Z" />
<glyph unicode="&#xd3;" d="M300 -12Q226 -12 169 29T80 146T48 331Q48 437 80 512T169 628T300 668Q374 668 431 628T520 513T552 331Q552 223 520 147T431 29T300 -12ZM300 61Q350 61 387 93T445 186T466 331Q466 414 446 473T388 563T300 595Q250 595 213 564T155
473T134 331Q134 247 154 187T212 94T300 61ZM271 697L235 739L376 867L423 812L271 697Z" />
<glyph unicode="&#xd4;" d="M300 -12Q226 -12 169 29T80 146T48 331Q48 437 80 512T169 628T300 668Q374 668 431 628T520 513T552 331Q552 223 520 147T431 29T300 -12ZM300 61Q350 61 387 93T445 186T466 331Q466 414 446 473T388 563T300 595Q250 595 213 564T155
473T134 331Q134 247 154 187T212 94T300 61ZM188 699L152 725L257 838H343L448 725L412 699L302 792H298L188 699Z" />
<glyph unicode="&#xd5;" d="M300 -12Q226 -12 169 29T80 146T48 331Q48 437 80 512T169 628T300 668Q374 668 431 628T520 513T552 331Q552 223 520 147T431 29T300 -12ZM300 61Q350 61 387 93T445 186T466 331Q466 414 446 473T388 563T300 595Q250 595 213 564T155
473T134 331Q134 247 154 187T212 94T300 61ZM375 709Q347 709 327 719T291 744T260 769T227 780Q208 780 195 763T179 714L123 718Q126 776 153 808T225 841Q253 841 273 830T310 806T340 781T373 770Q392 770 405 787T421 836L477 832Q475 774 448 742T375 709Z"
/>
<glyph unicode="&#xd6;" d="M300 -12Q226 -12 169 29T80 146T48 331Q48 437 80 512T169 628T300 668Q374 668 431 628T520 513T552 331Q552 223 520 147T431 29T300 -12ZM300 61Q350 61 387 93T445 186T466 331Q466 414 446 473T388 563T300 595Q250 595 213 564T155
473T134 331Q134 247 154 187T212 94T300 61ZM209 715Q187 715 173 729T158 766Q158 788 172 802T209 816Q231 816 245 802T259 766Q259 744 245 730T209 715ZM391 715Q370 715 356 729T341 766Q341 788 355 802T391 816Q414 816 428 802T442 766Q442 744 428 730T391
715Z" />
<glyph unicode="&#xd7;" d="M146 126L102 171L256 330L102 488L146 533L300 374L454 533L498 488L344 330L498 171L454 126L300 286L146 126Z" />
<glyph unicode="&#xd8;" d="M36 4L504 688L560 652L92 -32L36 4ZM300 -12Q226 -12 169 29T80 146T48 331Q48 437 80 512T169 628T300 668Q374 668 431 628T520 513T552 331Q552 223 520 147T431 29T300 -12ZM300 61Q350 61 387 93T445 186T466 331Q466 414 446
473T388 563T300 595Q250 595 213 564T155 473T134 331Q134 247 154 187T212 94T300 61Z" />
<glyph unicode="&#xd9;" d="M301 -12Q253 -12 213 2T142 47T96 128T79 248V656H163V246Q163 178 181 138T230 79T301 61Q341 61 372 79T422 137T440 246V656H521V248Q521 178 505 128T459 48T389 3T301 -12ZM329 697L177 812L224 867L365 739L329 697Z" />
<glyph unicode="&#xda;" d="M301 -12Q253 -12 213 2T142 47T96 128T79 248V656H163V246Q163 178 181 138T230 79T301 61Q341 61 372 79T422 137T440 246V656H521V248Q521 178 505 128T459 48T389 3T301 -12ZM271 697L235 739L376 867L423 812L271 697Z" />
<glyph unicode="&#xdb;" d="M301 -12Q253 -12 213 2T142 47T96 128T79 248V656H163V246Q163 178 181 138T230 79T301 61Q341 61 372 79T422 137T440 246V656H521V248Q521 178 505 128T459 48T389 3T301 -12ZM188 699L152 725L257 838H343L448 725L412 699L302
792H298L188 699Z" />
<glyph unicode="&#xdc;" d="M301 -12Q253 -12 213 2T142 47T96 128T79 248V656H163V246Q163 178 181 138T230 79T301 61Q341 61 372 79T422 137T440 246V656H521V248Q521 178 505 128T459 48T389 3T301 -12ZM209 715Q187 715 173 729T158 766Q158 788 172 802T209
816Q231 816 245 802T259 766Q259 744 245 730T209 715ZM391 715Q370 715 356 729T341 766Q341 788 355 802T391 816Q414 816 428 802T442 766Q442 744 428 730T391 715Z" />
<glyph unicode="&#xdd;" d="M258 0V234L38 656H126L225 461Q244 424 262 386T300 308H304Q324 348 343 386T381 462L476 656H562L342 234V0H258ZM271 697L235 739L376 867L423 812L271 697Z" />
<glyph unicode="&#xde;" d="M101 0V656H185V546H303Q375 546 429 528T514 467T545 353Q545 284 515 239T429 172T303 150H185V0H101ZM185 218H292Q378 218 420 250T462 353Q462 424 420 451T292 478H185V218Z" />
<glyph unicode="&#xdf;" d="M401 -12Q359 -12 324 0T257 33L290 91Q318 71 344 62T399 52Q442 52 464 75T486 130Q486 159 472 178T434 211T385 238T336 267T299 306T284 364Q284 399 297 423T329 470T360 516T374 571Q374 608 352 632T288 657Q234 657 202 619T170
507V0H88V519Q88 580 112 626T181 698T289 724Q342 724 378 704T434 650T453 576Q453 539 440 512T408 464T377 421T363 374Q363 350 377 334T415 305T463 279T512 247T549 203T564 137Q564 95 544 62T488 8T401 -12Z" />
<glyph unicode="&#xe0;" d="M246 -12Q201 -12 163 4T103 52T81 126Q81 208 163 250T433 308Q432 341 420 369T379 413T304 430Q273 430 243 422T185 400T134 372L102 428Q126 444 160 460T235 487T318 498Q385 498 428 473T493 404T515 298V0H448L441 66H438Q398
34 348 11T246 -12ZM268 54Q310 54 351 73T433 126V254Q329 245 270 229T186 189T161 132Q161 105 176 88T215 62T268 54ZM341 568L184 721L242 777L384 609L341 568Z" />
<glyph unicode="&#xe1;" d="M246 -12Q201 -12 163 4T103 52T81 126Q81 208 163 250T433 308Q432 341 420 369T379 413T304 430Q273 430 243 422T185 400T134 372L102 428Q126 444 160 460T235 487T318 498Q385 498 428 473T493 404T515 298V0H448L441 66H438Q398
34 348 11T246 -12ZM268 54Q310 54 351 73T433 126V254Q329 245 270 229T186 189T161 132Q161 105 176 88T215 62T268 54ZM299 568L256 609L398 777L456 721L299 568Z" />
<glyph unicode="&#xe2;" d="M246 -12Q201 -12 163 4T103 52T81 126Q81 208 163 250T433 308Q432 341 420 369T379 413T304 430Q273 430 243 422T185 400T134 372L102 428Q126 444 160 460T235 487T318 498Q385 498 428 473T493 404T515 298V0H448L441 66H438Q398
34 348 11T246 -12ZM268 54Q310 54 351 73T433 126V254Q329 245 270 229T186 189T161 132Q161 105 176 88T215 62T268 54ZM200 568L165 600L279 740H361L475 600L440 568L322 681H318L200 568Z" />
<glyph unicode="&#xe3;" d="M246 -12Q201 -12 163 4T103 52T81 126Q81 208 163 250T433 308Q432 341 420 369T379 413T304 430Q273 430 243 422T185 400T134 372L102 428Q126 444 160 460T235 487T318 498Q385 498 428 473T493 404T515 298V0H448L441 66H438Q398
34 348 11T246 -12ZM268 54Q310 54 351 73T433 126V254Q329 245 270 229T186 189T161 132Q161 105 176 88T215 62T268 54ZM392 577Q366 577 347 589T311 619T281 648T249 661Q227 661 216 640T202 582L147 585Q148 625 159 655T191 703T248 721Q275 721 294 709T329
679T359 650T392 637Q414 637 425 659T438 716L493 712Q492 674 481 644T449 595T392 577Z" />
<glyph unicode="&#xe4;" d="M246 -12Q201 -12 163 4T103 52T81 126Q81 208 163 250T433 308Q432 341 420 369T379 413T304 430Q273 430 243 422T185 400T134 372L102 428Q126 444 160 460T235 487T318 498Q385 498 428 473T493 404T515 298V0H448L441 66H438Q398
34 348 11T246 -12ZM268 54Q310 54 351 73T433 126V254Q329 245 270 229T186 189T161 132Q161 105 176 88T215 62T268 54ZM223 588Q199 588 184 604T168 644Q168 667 183 683T223 700Q247 700 262 684T278 644Q278 621 263 605T223 588ZM417 588Q393 588 378 604T362
644Q362 667 377 683T417 700Q441 700 456 684T472 644Q472 621 457 605T417 588Z" />
<glyph unicode="&#xe5;" d="M246 -12Q201 -12 163 4T103 52T81 126Q81 208 163 250T433 308Q432 341 420 369T379 413T304 430Q273 430 243 422T185 400T134 372L102 428Q126 444 160 460T235 487T318 498Q385 498 428 473T493 404T515 298V0H448L441 66H438Q398
34 348 11T246 -12ZM268 54Q310 54 351 73T433 126V254Q329 245 270 229T186 189T161 132Q161 105 176 88T215 62T268 54ZM320 569Q269 569 240 597T210 665Q210 706 239 733T320 761Q372 761 401 734T430 665Q430 625 401 597T320 569ZM320 606Q344 606 360 623T377
665Q377 691 361 707T320 724Q296 724 280 708T263 665Q263 640 280 623T320 606Z" />
<glyph unicode="&#xe6;" d="M145 -12Q90 -12 54 23T17 120Q17 171 44 208T131 270T285 304V251Q210 242 168 225T110 184T93 128Q93 93 113 74T167 54Q198 54 232 76T294 139L322 97Q283 46 239 17T145 -12ZM454 -12Q394 -12 352 20T288 110T266 242V291Q266 369
242 399T178 430Q148 430 118 418T64 390L33 446Q63 466 102 482T185 498Q235 498 268 468T317 366H296Q319 437 360 467T448 498Q499 498 532 468T581 387T597 276Q597 262 596 248T593 220H308V284H545L530 264Q530 349 509 391T443 433Q415 433 390 415T348
355T331 244Q331 186 345 144T388 78T457 55Q485 55 509 64T552 87L582 31Q557 13 525 1T454 -12Z" />
<glyph unicode="&#xe7;" d="M346 -12Q270 -12 210 18T115 105T80 242Q80 324 117 381T215 468T351 498Q411 498 454 477T528 427L487 374Q457 400 425 415T354 430Q298 430 255 407T189 341T165 242Q165 187 188 145T253 80T352 56Q397 56 434 74T502 117L539
64Q499 28 450 8T346 -12ZM259 -226L251 -186Q314 -181 337 -170T360 -136Q360 -116 343 -105T283 -88L323 8H377L351 -64Q386 -72 405 -88T424 -135Q424 -178 382 -200T259 -226Z" />
<glyph unicode="&#xe8;" d="M330 -12Q257 -12 198 18T103 105T68 244Q68 323 103 380T194 467T316 498Q386 498 435 470T511 390T538 270Q538 256 537 243T534 220H123V284H485L464 261Q464 347 425 390T318 433Q273 433 235 411T173 347T150 244Q150 181 175
139T243 76T340 54Q384 54 419 66T488 100L518 46Q482 22 436 5T330 -12ZM337 568L180 721L238 777L380 609L337 568Z" />
<glyph unicode="&#xe9;" d="M330 -12Q257 -12 198 18T103 105T68 244Q68 323 103 380T194 467T316 498Q386 498 435 470T511 390T538 270Q538 256 537 243T534 220H123V284H485L464 261Q464 347 425 390T318 433Q273 433 235 411T173 347T150 244Q150 181 175
139T243 76T340 54Q384 54 419 66T488 100L518 46Q482 22 436 5T330 -12ZM295 568L252 609L394 777L452 721L295 568Z" />
<glyph unicode="&#xea;" d="M330 -12Q257 -12 198 18T103 105T68 244Q68 323 103 380T194 467T316 498Q386 498 435 470T511 390T538 270Q538 256 537 243T534 220H123V284H485L464 261Q464 347 425 390T318 433Q273 433 235 411T173 347T150 244Q150 181 175
139T243 76T340 54Q384 54 419 66T488 100L518 46Q482 22 436 5T330 -12ZM196 568L161 600L275 740H357L471 600L436 568L318 681H314L196 568Z" />
<glyph unicode="&#xeb;" d="M330 -12Q257 -12 198 18T103 105T68 244Q68 323 103 380T194 467T316 498Q386 498 435 470T511 390T538 270Q538 256 537 243T534 220H123V284H485L464 261Q464 347 425 390T318 433Q273 433 235 411T173 347T150 244Q150 181 175
139T243 76T340 54Q384 54 419 66T488 100L518 46Q482 22 436 5T330 -12ZM219 588Q195 588 180 604T164 644Q164 667 179 683T219 700Q243 700 258 684T274 644Q274 621 259 605T219 588ZM413 588Q389 588 374 604T358 644Q358 667 373 683T413 700Q437 700 452
684T468 644Q468 621 453 605T413 588Z" />
<glyph unicode="&#xec;" d="M316 0V419H90V486H398V0H316ZM369 568L212 721L270 777L412 609L369 568Z" />
<glyph unicode="&#xed;" d="M316 0V419H90V486H398V0H316ZM327 568L284 609L426 777L484 721L327 568Z" />
<glyph unicode="&#xee;" d="M316 0V419H90V486H398V0H316ZM228 568L193 600L307 740H389L503 600L468 568L350 681H346L228 568Z" />
<glyph unicode="&#xef;" d="M316 0V419H90V486H398V0H316ZM251 588Q227 588 212 604T196 644Q196 667 211 683T251 700Q275 700 290 684T306 644Q306 621 291 605T251 588ZM445 588Q421 588 406 604T390 644Q390 667 405 683T445 700Q469 700 484 684T500 644Q500
621 485 605T445 588Z" />
<glyph unicode="&#xf0;" d="M298 -12Q235 -12 181 16T93 97T60 222Q60 290 89 340T170 419T288 447Q340 447 386 421T459 348L460 292Q425 342 383 362T300 383Q246 383 210 362T156 305T137 222Q137 172 159 135T218 77T300 56Q353 56 388 81T440 151T457 254Q457
342 437 407T379 521T287 607T165 678L203 730Q272 698 332 657T438 559T510 429T536 257Q536 177 507 117T425 22T298 -12ZM180 494L150 546L484 716L514 666L180 494Z" />
<glyph unicode="&#xf1;" d="M93 0V486H161L168 403H172Q210 444 254 471T355 498Q441 498 482 448T523 302V0H441V291Q441 360 415 393T329 427Q286 427 252 405T175 339V0H93ZM390 577Q364 577 345 589T309 619T279 648T247 661Q225 661 214 640T200 582L145
585Q146 625 157 655T189 703T246 721Q273 721 292 709T327 679T357 650T390 637Q412 637 423 659T436 716L491 712Q490 674 479 644T447 595T390 577Z" />
<glyph unicode="&#xf2;" d="M300 -12Q236 -12 182 18T94 105T60 242Q60 324 93 381T181 468T300 498Q364 498 418 468T506 381T540 242Q540 162 507 105T419 18T300 -12ZM300 56Q347 56 382 79T436 145T455 242Q455 298 436 340T382 406T300 430Q253 430 219 407T165
341T145 242Q145 187 164 145T218 80T300 56ZM321 568L164 721L222 777L364 609L321 568Z" />
<glyph unicode="&#xf3;" d="M300 -12Q236 -12 182 18T94 105T60 242Q60 324 93 381T181 468T300 498Q364 498 418 468T506 381T540 242Q540 162 507 105T419 18T300 -12ZM300 56Q347 56 382 79T436 145T455 242Q455 298 436 340T382 406T300 430Q253 430 219 407T165
341T145 242Q145 187 164 145T218 80T300 56ZM279 568L236 609L378 777L436 721L279 568Z" />
<glyph unicode="&#xf4;" d="M300 -12Q236 -12 182 18T94 105T60 242Q60 324 93 381T181 468T300 498Q364 498 418 468T506 381T540 242Q540 162 507 105T419 18T300 -12ZM300 56Q347 56 382 79T436 145T455 242Q455 298 436 340T382 406T300 430Q253 430 219 407T165
341T145 242Q145 187 164 145T218 80T300 56ZM180 568L145 600L259 740H341L455 600L420 568L302 681H298L180 568Z" />
<glyph unicode="&#xf5;" d="M300 -12Q236 -12 182 18T94 105T60 242Q60 324 93 381T181 468T300 498Q364 498 418 468T506 381T540 242Q540 162 507 105T419 18T300 -12ZM300 56Q347 56 382 79T436 145T455 242Q455 298 436 340T382 406T300 430Q253 430 219 407T165
341T145 242Q145 187 164 145T218 80T300 56ZM372 577Q346 577 327 589T291 619T261 648T229 661Q207 661 196 640T182 582L127 585Q128 625 139 655T171 703T228 721Q255 721 274 709T309 679T339 650T372 637Q394 637 405 659T418 716L473 712Q472 674 461 644T429
595T372 577Z" />
<glyph unicode="&#xf6;" d="M300 -12Q236 -12 182 18T94 105T60 242Q60 324 93 381T181 468T300 498Q364 498 418 468T506 381T540 242Q540 162 507 105T419 18T300 -12ZM300 56Q347 56 382 79T436 145T455 242Q455 298 436 340T382 406T300 430Q253 430 219 407T165
341T145 242Q145 187 164 145T218 80T300 56ZM203 588Q179 588 164 604T148 644Q148 667 163 683T203 700Q227 700 242 684T258 644Q258 621 243 605T203 588ZM397 588Q373 588 358 604T342 644Q342 667 357 683T397 700Q421 700 436 684T452 644Q452 621 437 605T397
588Z" />
<glyph unicode="&#xf7;" d="M300 456Q277 456 262 471T246 510Q246 533 261 548T300 563Q323 563 338 548T354 510Q354 486 339 471T300 456ZM300 96Q277 96 262 111T246 150Q246 173 261 188T300 203Q323 203 338 188T354 150Q354 126 339 111T300 96ZM85 299V361H515V299H85Z"
/>
<glyph unicode="&#xf8;" d="M300 -12Q236 -12 182 18T94 105T60 242Q60 324 93 381T181 468T300 498Q364 498 418 468T506 381T540 242Q540 162 507 105T419 18T300 -12ZM300 54Q347 54 381 78T435 144T455 242Q455 298 436 341T382 408T300 432Q254 432 219 408T165
341T145 242Q145 187 164 145T219 78T300 54ZM108 -30L62 12L492 516L538 474L108 -30Z" />
<glyph unicode="&#xf9;" d="M246 -12Q159 -12 118 38T77 184V486H160V195Q160 126 185 93T272 59Q314 59 348 80T423 149V486H505V0H438L431 85H427Q390 43 346 16T246 -12ZM572 568L415 721L473 777L615 609L572 568Z" />
<glyph unicode="&#xfa;" d="M246 -12Q159 -12 118 38T77 184V486H160V195Q160 126 185 93T272 59Q314 59 348 80T423 149V486H505V0H438L431 85H427Q390 43 346 16T246 -12ZM530 568L487 609L629 777L687 721L530 568Z" />
<glyph unicode="&#xfb;" d="M246 -12Q159 -12 118 38T77 184V486H160V195Q160 126 185 93T272 59Q314 59 348 80T423 149V486H505V0H438L431 85H427Q390 43 346 16T246 -12ZM431 568L396 600L510 740H592L706 600L671 568L553 681H549L431 568Z" />
<glyph unicode="&#xfc;" d="M246 -12Q159 -12 118 38T77 184V486H160V195Q160 126 185 93T272 59Q314 59 348 80T423 149V486H505V0H438L431 85H427Q390 43 346 16T246 -12ZM454 588Q430 588 415 604T399 644Q399 667 414 683T454 700Q478 700 493 684T509 644Q509
621 494 605T454 588ZM648 588Q624 588 609 604T593 644Q593 667 608 683T648 700Q672 700 687 684T703 644Q703 621 688 605T648 588Z" />
<glyph unicode="&#xfd;" d="M131 -209Q115 -209 98 -206T67 -199L84 -134Q94 -137 105 -139T128 -141Q179 -141 211 -112T261 -37L276 -1L49 486H132L251 217Q265 185 280 149T311 76H315Q328 111 341 147T367 217L473 486H551L337 -40Q319 -88 292 -126T226 -187T131
-209ZM283 568L240 609L382 777L440 721L283 568Z" />
<glyph unicode="&#xfe;" d="M93 -205V712H175V511L172 424H175Q209 458 251 478T337 498Q403 498 448 468T516 382T540 250Q540 168 509 109T428 19T319 -12Q283 -12 245 5T175 51H172L175 -41V-205H93ZM305 57Q347 57 381 80T435 146T455 250Q455 303 441 343T397
406T317 429Q285 429 249 412T175 356V114Q209 83 244 70T305 57Z" />
<glyph unicode="&#xff;" d="M131 -209Q115 -209 98 -206T67 -199L84 -134Q94 -137 105 -139T128 -141Q179 -141 211 -112T261 -37L276 -1L49 486H132L251 217Q265 185 280 149T311 76H315Q328 111 341 147T367 217L473 486H551L337 -40Q319 -88 292 -126T226 -187T131
-209ZM207 588Q183 588 168 604T152 644Q152 667 167 683T207 700Q231 700 246 684T262 644Q262 621 247 605T207 588ZM401 588Q377 588 362 604T346 644Q346 667 361 683T401 700Q425 700 440 684T456 644Q456 621 441 605T401 588Z" />
<glyph unicode="&#x2013;" d="M80 216V288H520V216H80Z" />
<glyph unicode="&#x2014;" d="M0 216V288H600V216H0Z" />
<glyph unicode="&#x2018;" d="M299 350Q260 350 235 382T209 470Q209 546 247 605T353 699L380 651Q330 622 303 579T276 478L295 400L240 466Q253 480 269 489T303 499Q334 499 353 479T373 427Q373 393 353 372T299 350Z" />
<glyph unicode="&#x2019;" d="M245 350L217 398Q267 427 294 470T322 571L302 649L357 582Q344 568 328 559T295 550Q264 550 244 570T224 621Q224 656 245 677T298 699Q337 699 362 667T388 578Q388 503 350 444T245 350Z" />
<glyph unicode="&#x201a;" d="M245 -226L217 -178Q267 -149 294 -106T322 -5L302 73L357 6Q344 -8 328 -17T295 -26Q264 -26 244 -6T224 45Q224 80 245 101T298 123Q337 123 362 91T388 2Q388 -73 350 -132T245 -226Z" />
<glyph unicode="&#x201c;" d="M440 350Q401 350 376 382T350 470Q350 546 388 605T494 699L521 651Q471 622 444 579T417 478L436 400L381 466Q394 480 410 489T444 499Q475 499 494 479T514 427Q514 393 494 372T440 350ZM414 350Q375 350 350 382T324 470Q324
546 362 605T468 699L495 651Q445 622 418 579T391 478L410 400L355 466Q368 480 384 489T418 499Q449 499 468 479T488 427Q488 393 468 372T414 350Z" />
<glyph unicode="&#x201d;" d="M386 350L358 398Q408 427 435 470T463 571L443 649L498 582Q485 568 469 559T436 550Q405 550 385 570T365 621Q365 656 386 677T439 699Q478 699 503 667T529 578Q529 503 491 444T386 350ZM360 350L332 398Q382 427 409 470T437
571L417 649L472 582Q459 568 443 559T410 550Q379 550 359 570T339 621Q339 656 360 677T413 699Q452 699 477 667T503 578Q503 503 465 444T360 350Z" />
<glyph unicode="&#x201e;" d="M130 -226L102 -178Q152 -149 179 -106T207 -5L187 73L242 6Q229 -8 213 -17T180 -26Q149 -26 129 -6T109 45Q109 80 130 101T183 123Q222 123 247 91T273 2Q273 -73 235 -132T130 -226ZM360 -226L332 -178Q382 -149 409 -106T437
-5L417 73L472 6Q459 -8 443 -17T410 -26Q379 -26 359 -6T339 45Q339 80 360 101T413 123Q452 123 477 91T503 2Q503 -73 465 -132T360 -226Z" />
<glyph unicode="&#x2022;" d="M300 115Q260 115 227 133T172 185T151 262Q151 306 172 339T226 390T300 409Q340 409 373 391T428 339T449 262Q449 218 428 185T374 134T300 115Z" />
<glyph unicode="&#x2039;" d="M350 52L197 212V292L350 452L389 417L262 252L389 86L350 52Z" />
<glyph unicode="&#x203a;" d="M250 52L211 86L338 252L211 417L250 452L403 292V212L250 52Z" />
</font>
</defs>
</svg>

Nachher

Breite:  |  Höhe:  |  Größe: 50 KiB

Binäre Datei nicht angezeigt.

Binäre Datei nicht angezeigt.

Binäre Datei nicht angezeigt.

Binäre Datei nicht angezeigt.

Datei anzeigen

@ -0,0 +1,337 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg">
<defs >
<font id="SourceSansPro" horiz-adv-x="554" ><font-face
font-family="Source Sans Pro"
units-per-em="1000"
panose-1="2 11 7 3 3 4 3 2 2 4"
ascent="984"
descent="-273"
alphabetic="0" />
<glyph unicode=" " glyph-name="space" horiz-adv-x="200" />
<glyph unicode="!" glyph-name="exclam" horiz-adv-x="340" d="M122 231L101 537L96 670H244L239 537L218 231H122ZM170 -12Q132 -12 107 14T81 80Q81 120 106 146T170 173Q208 173 233 147T259 80Q259 41 234 15T170 -12Z" />
<glyph unicode="&quot;" glyph-name="quotedbl" horiz-adv-x="537" d="M110 354L81 553L76 686H224L219 553L190 354H110ZM347 354L318 553L313 686H461L456 553L427 354H347Z" />
<glyph unicode="#" glyph-name="numbersign" horiz-adv-x="528" d="M86 0L108 187H34V281H119L133 391H54V485H145L166 650H250L230 485H334L355 650H439L419 485H498V391H407L394 281H478V187H383L360 0H275L297 187H194L171 0H86ZM205 281H308L322 391H218L205 281Z" />
<glyph unicode="$" glyph-name="dollar" horiz-adv-x="528" d="M215 -110V-10Q171 -5 123 14T39 66L103 165Q141 137 175 122T246 107Q327 107 327 176Q327 202 308 220T259 255T195 288T131 327T82 380T63 457Q63 531 104 579T215 642V745H312V644Q360 637 396
615T461 562L387 478Q360 503 335 515T278 528Q242 528 223 513T204 464Q204 440 223 424T272 392T336 361T400 322T449 267T468 186Q468 114 429 63T312 -6V-110H215Z" />
<glyph unicode="%" glyph-name="percent" horiz-adv-x="857" d="M188 250Q118 250 72 305T26 458Q26 556 72 610T188 664Q259 664 305 610T351 458Q351 360 305 305T188 250ZM188 332Q213 332 230 360T248 458Q248 528 231 555T188 582Q163 582 146 555T128 458Q128
388 145 360T188 332ZM210 -12L562 664H647L295 -12H210ZM669 -12Q599 -12 553 43T507 196Q507 294 553 348T669 402Q740 402 786 348T832 196Q832 98 786 43T669 -12ZM669 70Q694 70 711 98T729 196Q729 266 712 293T669 320Q644 320 627 293T609 196Q609 126
626 98T669 70Z" />
<glyph unicode="&amp;" glyph-name="ampersand" horiz-adv-x="667" d="M225 494Q225 476 230 456T246 416Q281 437 305 460T329 516Q329 539 318 553T284 567Q259 567 242 548T225 494ZM242 -12Q171 -12 123 13T50 81T25 174Q25 242 60 284T144 358Q125 393 115
427T104 493Q104 540 125 578T187 640T281 664Q355 664 398 624T441 516Q441 474 421 441T370 381T305 331Q333 299 366 269T436 212Q461 244 480 283T511 368H645Q627 309 601 254T536 148Q567 132 595 122T649 107L614 -12Q574 -4 532 13T447 54Q406 23 355 6T242
-12ZM164 183Q164 146 191 123T261 100Q302 100 343 126Q306 157 272 191T208 261Q189 244 177 225T164 183Z" />
<glyph unicode="&apos;" glyph-name="quotesingle" horiz-adv-x="300" d="M110 354L81 553L76 686H224L219 553L190 354H110Z" />
<glyph unicode="(" glyph-name="parenleft" horiz-adv-x="344" d="M204 -179Q141 -76 107 35T72 278Q72 410 106 521T204 735L296 697Q241 600 216 493T191 278Q191 172 216 65T296 -141L204 -179Z" />
<glyph unicode=")" glyph-name="parenright" horiz-adv-x="344" d="M140 -179L48 -141Q104 -43 129 64T154 278Q154 385 129 492T48 697L140 735Q203 632 237 521T272 278Q272 146 238 35T140 -179Z" />
<glyph unicode="*" glyph-name="asterisk" horiz-adv-x="457" d="M148 349L87 393L146 497L38 546L61 618L177 594L190 712H267L280 593L395 618L419 546L311 497L370 393L309 349L229 438L148 349Z" />
<glyph unicode="+" glyph-name="plus" horiz-adv-x="528" d="M210 94V278H34V382H210V566H318V382H494V278H318V94H210Z" />
<glyph unicode="," glyph-name="comma" horiz-adv-x="300" d="M76 -194L46 -116Q102 -96 131 -64T159 6Q157 6 155 6T151 6Q116 6 89 27T62 89Q62 127 89 150T154 173Q204 173 230 136T256 34Q256 -48 210 -108T76 -194Z" />
<glyph unicode="-" glyph-name="hyphen" horiz-adv-x="332" d="M43 201V305H289V201H43Z" />
<glyph unicode="." glyph-name="period" horiz-adv-x="300" d="M150 -12Q112 -12 87 14T61 80Q61 120 86 146T150 173Q188 173 213 147T239 80Q239 41 214 15T150 -12Z" />
<glyph unicode="/" glyph-name="slash" horiz-adv-x="339" d="M13 -160L214 710H310L109 -160H13Z" />
<glyph unicode="0" glyph-name="zero" horiz-adv-x="528" d="M264 -12Q162 -12 100 73T37 320Q37 482 99 564T264 647Q366 647 428 565T491 320Q491 158 429 73T264 -12ZM264 102Q289 102 309 120T340 186T352 320Q352 407 341 453T309 516T264 533Q240 533 220
516T188 453T176 320Q176 233 188 186T220 121T264 102Z" />
<glyph unicode="1" glyph-name="one" horiz-adv-x="528" d="M70 0V119H208V486H89V577Q141 587 177 601T247 635H355V119H474V0H70Z" />
<glyph unicode="2" glyph-name="two" horiz-adv-x="528" d="M37 0V84Q118 161 180 223T278 338T313 436Q313 483 289 507T223 532Q189 532 162 513T110 467L30 546Q77 596 126 621T243 647Q306 647 353 622T426 552T453 445Q453 392 424 337T348 226T250 116Q274
119 304 121T356 124H484V0H37Z" />
<glyph unicode="3" glyph-name="three" horiz-adv-x="528" d="M243 -12Q166 -12 112 13T22 78L90 171Q119 143 154 125T229 107Q276 107 304 126T332 182Q332 210 318 230T267 262T161 273V377Q247 377 279 400T311 462Q311 495 291 513T233 532Q199 532 172 517T114
476L40 566Q84 604 133 625T240 647Q338 647 398 602T459 473Q459 424 432 389T353 332V328Q408 312 443 274T479 173Q479 114 447 73T361 10T243 -12Z" />
<glyph unicode="4" glyph-name="four" horiz-adv-x="528" d="M160 264H294V367Q294 398 296 438T300 509H296Q284 483 271 456T244 402L160 264ZM294 0V152H19V253L251 635H431V264H504V152H431V0H294Z" />
<glyph unicode="5" glyph-name="five" horiz-adv-x="528" d="M247 -12Q169 -12 115 14T23 77L89 170Q118 144 152 126T226 107Q275 107 304 132T333 206Q333 254 305 279T233 304Q205 304 187 297T139 272L73 314L91 635H451V511H218L207 392Q240 407 278 407Q333
407 378 386T452 322T480 210Q480 140 448 90T362 14T247 -12Z" />
<glyph unicode="6" glyph-name="six" horiz-adv-x="528" d="M275 293Q250 293 225 279T179 230Q189 155 217 127T278 98Q311 98 334 122T358 201Q358 251 335 272T275 293ZM281 -12Q220 -12 165 20T76 122T41 303Q41 422 77 498T172 610T298 647Q361 647 407 625T483
571L406 483Q390 501 363 514T307 528Q272 528 243 510T197 448T176 330Q201 362 237 379T303 397Q385 397 438 350T492 201Q492 135 463 88T387 14T281 -12Z" />
<glyph unicode="7" glyph-name="seven" horiz-adv-x="528" d="M159 0Q165 106 182 190T234 351T329 511H44V635H486V545Q431 478 398 419T346 299T319 165T307 0H159Z" />
<glyph unicode="8" glyph-name="eight" horiz-adv-x="528" d="M263 -12Q200 -12 150 10T71 71T42 162Q42 220 73 257T150 318V322Q113 350 89 386T65 472Q65 526 91 565T163 626T268 647Q355 647 408 600T461 473Q461 427 436 392T378 334V330Q424 305 456 266T488
164Q488 114 460 74T382 11T263 -12ZM303 370Q342 415 342 463Q342 500 322 522T265 545Q236 545 215 527T194 472Q194 433 224 411T303 370ZM266 90Q303 90 327 109T351 169Q351 197 334 215T287 248T217 280Q196 261 182 235T168 179Q168 137 197 114T266 90Z"
/>
<glyph unicode="9" glyph-name="nine" horiz-adv-x="528" d="M168 434Q168 384 192 363T252 342Q277 342 302 356T347 405Q337 480 310 508T248 537Q216 537 192 513T168 434ZM229 -12Q166 -12 120 11T43 64L121 152Q137 134 164 121T219 107Q255 107 283 125T330
187T350 305Q325 274 289 256T223 238Q169 238 127 259T59 323T34 434Q34 500 63 548T140 621T245 647Q307 647 362 615T451 513T486 332Q486 214 450 138T355 25T229 -12Z" />
<glyph unicode=":" glyph-name="colon" horiz-adv-x="300" d="M150 312Q112 312 87 338T61 404Q61 444 86 470T150 497Q188 497 213 471T239 404Q239 365 214 339T150 312ZM150 -12Q112 -12 87 14T61 80Q61 120 86 146T150 173Q188 173 213 147T239 80Q239 41
214 15T150 -12Z" />
<glyph unicode=";" glyph-name="semicolon" horiz-adv-x="300" d="M150 312Q112 312 87 338T61 404Q61 444 86 470T150 497Q188 497 213 471T239 404Q239 365 214 339T150 312ZM76 -194L46 -116Q102 -96 131 -64T159 6Q157 6 155 6T151 6Q116 6 89 27T62 89Q62
127 89 150T154 173Q204 173 230 136T256 34Q256 -48 210 -108T76 -194Z" />
<glyph unicode="&lt;" glyph-name="less" horiz-adv-x="528" d="M494 104L34 281V383L494 560V439L318 381L183 334V330L318 283L494 225V104Z" />
<glyph unicode="=" glyph-name="equal" horiz-adv-x="528" d="M34 394V498H494V394H34ZM34 418V522H494V418H34Z" />
<glyph unicode="&gt;" glyph-name="greater" horiz-adv-x="528" d="M34 104V225L210 283L345 330V334L210 381L34 439V560L494 383V281L34 104Z" />
<glyph unicode="?" glyph-name="question" horiz-adv-x="463" d="M154 231Q148 272 159 304T189 363T230 412T265 456T280 500Q280 531 262 547T213 563Q185 563 164 550T122 517L41 591Q76 632 125 657T232 682Q286 682 328 664T396 608T421 511Q421 474 406
446T369 393T326 346T292 295T283 231H154ZM218 -12Q180 -12 155 14T130 80Q130 120 155 146T218 173Q256 173 281 147T307 80Q307 41 282 15T218 -12Z" />
<glyph unicode="@" glyph-name="at" horiz-adv-x="903" d="M428 -172Q353 -172 285 -149T164 -79T80 38T49 205Q49 310 84 395T182 542T326 636T500 669Q608 669 687 624T810 498T854 313Q854 244 834 193T780 107T706 55T626 38Q583 38 551 58T511 114H509Q488
85 454 67T389 48Q330 48 294 88T257 198Q257 244 272 287T314 366T379 422T459 443Q484 443 503 432T535 393H537L551 435H642L596 215Q575 129 642 129Q672 129 699 151T744 213T761 309Q761 381 734 442T646 542T488 580Q424 580 363 554T254 479T177 362T148
209Q148 111 188 46T295 -51T440 -83Q479 -83 520 -72T592 -44L624 -124Q578 -149 530 -160T428 -172ZM420 140Q436 140 451 150T486 185L510 320Q495 349 464 349Q434 349 413 326T380 270T368 207Q368 140 420 140Z" />
<glyph unicode="A" glyph-name="A" horiz-adv-x="573" d="M230 330L214 270H353L338 330Q325 379 312 434T285 540H281Q269 488 257 434T230 330ZM-6 0L198 652H375L579 0H423L383 155H184L144 0H-6Z" />
<glyph unicode="B" glyph-name="B" horiz-adv-x="605" d="M77 0V652H300Q368 652 422 638T508 588T540 490Q540 447 518 406T455 349V345Q505 332 538 295T572 192Q572 125 538 83T447 21T319 0H77ZM224 391H293Q347 391 371 412T396 468Q396 506 371 522T294
538H224V391ZM224 114H307Q428 114 428 202Q428 245 398 263T307 282H224V114Z" />
<glyph unicode="C" glyph-name="C" horiz-adv-x="582" d="M349 -12Q267 -12 198 26T88 138T46 322Q46 430 88 506T201 623T354 664Q417 664 467 639T550 579L472 485Q447 508 420 522T357 537Q313 537 277 512T219 440T197 327Q197 227 240 171T355 115Q395 115
426 133T482 176L560 84Q478 -12 349 -12Z" />
<glyph unicode="D" glyph-name="D" horiz-adv-x="635" d="M77 0V652H261Q361 652 434 618T547 513T588 329Q588 217 548 144T437 36T269 0H77ZM224 119H252Q308 119 349 139T414 205T437 329Q437 407 414 451T350 514T252 533H224V119Z" />
<glyph unicode="E" glyph-name="E" horiz-adv-x="548" d="M77 0V652H485V528H224V397H446V274H224V124H495V0H77Z" />
<glyph unicode="F" glyph-name="F" horiz-adv-x="524" d="M77 0V652H488V528H224V377H450V253H224V0H77Z" />
<glyph unicode="G" glyph-name="G" horiz-adv-x="638" d="M365 -12Q276 -12 204 26T89 138T46 322Q46 430 89 506T205 623T364 664Q435 664 486 638T569 579L492 485Q467 507 439 522T369 537Q293 537 245 481T197 327Q197 227 243 171T380 115Q400 115 419 120T450
135V247H342V367H580V67Q546 34 490 11T365 -12Z" />
<glyph unicode="H" glyph-name="H" horiz-adv-x="674" d="M77 0V652H224V401H449V652H597V0H449V272H224V0H77Z" />
<glyph unicode="I" glyph-name="I" horiz-adv-x="301" d="M77 0V652H224V0H77Z" />
<glyph unicode="J" glyph-name="J" horiz-adv-x="509" d="M226 -12Q152 -12 101 17T16 106L116 180Q134 147 158 131T207 115Q247 115 267 139T288 229V652H435V217Q435 154 413 102T345 19T226 -12Z" />
<glyph unicode="K" glyph-name="K" horiz-adv-x="614" d="M77 0V652H224V385H228L422 652H584L387 392L620 0H459L300 275L224 175V0H77Z" />
<glyph unicode="L" glyph-name="L" horiz-adv-x="518" d="M77 0V652H224V124H482V0H77Z" />
<glyph unicode="M" glyph-name="M" horiz-adv-x="762" d="M77 0V652H238L343 362Q353 334 362 303T381 242H385Q395 272 403 303T422 362L525 652H685V0H551V239Q551 271 554 310T562 390T570 461H566L513 306L420 57H339L246 306L194 461H190Q194 430 198 390T205
311T209 239V0H77Z" />
<glyph unicode="N" glyph-name="N" horiz-adv-x="665" d="M77 0V652H228L398 328L462 184H466Q462 236 455 300T448 422V652H588V0H437L267 325L203 467H199Q204 413 210 351T217 231V0H77Z" />
<glyph unicode="O" glyph-name="O" horiz-adv-x="684" d="M342 -12Q254 -12 188 29T84 146T46 329Q46 436 83 510T187 624T342 664Q430 664 496 625T600 510T638 329Q638 223 601 147T497 29T342 -12ZM342 115Q409 115 448 173T487 329Q487 427 448 482T342 537Q275
537 236 482T197 329Q197 231 236 173T342 115Z" />
<glyph unicode="P" glyph-name="P" horiz-adv-x="596" d="M77 0V652H301Q373 652 431 633T525 567T560 442Q560 366 525 317T432 245T305 221H224V0H77ZM224 338H296Q416 338 416 442Q416 493 384 514T292 535H224V338Z" />
<glyph unicode="Q" glyph-name="Q" horiz-adv-x="684" d="M342 108Q409 108 448 166T487 329Q487 427 448 482T342 537Q275 537 236 482T197 329Q197 225 236 167T342 108ZM557 -182Q454 -182 382 -132T275 -5Q171 17 109 104T46 329Q46 436 83 510T187 624T342
664Q430 664 496 625T600 510T638 329Q638 198 582 113T431 0Q454 -34 493 -49T574 -64Q595 -64 613 -61T646 -53L672 -160Q654 -169 625 -175T557 -182Z" />
<glyph unicode="R" glyph-name="R" horiz-adv-x="613" d="M77 0V652H312Q381 652 438 634T529 571T563 449Q563 377 532 331T447 261L595 0H430L305 235H224V0H77ZM224 352H300Q358 352 388 376T419 449Q419 497 389 516T300 535H224V352Z" />
<glyph unicode="S" glyph-name="S" horiz-adv-x="556" d="M276 -12Q212 -12 149 12T35 82L119 183Q154 153 197 134T280 115Q326 115 348 132T371 178Q371 209 346 223T277 256L192 292Q159 306 129 329T80 388T61 470Q61 524 90 568T172 638T293 664Q349 664
405 642T503 578L428 485Q396 510 364 523T293 537Q255 537 233 522T210 478Q210 448 238 433T309 401L393 367Q452 343 487 301T522 190Q522 136 493 90T409 16T276 -12Z" />
<glyph unicode="T" glyph-name="T" horiz-adv-x="556" d="M204 0V528H25V652H531V528H352V0H204Z" />
<glyph unicode="U" glyph-name="U" horiz-adv-x="665" d="M334 -12Q207 -12 140 63T73 302V652H221V287Q221 191 250 153T334 115Q389 115 419 153T449 287V652H591V302Q591 138 526 63T334 -12Z" />
<glyph unicode="V" glyph-name="V" horiz-adv-x="556" d="M190 0L-7 652H149L227 348Q242 295 253 244T280 139H284Q298 193 310 244T336 348L413 652H563L367 0H190Z" />
<glyph unicode="W" glyph-name="W" horiz-adv-x="813" d="M135 0L14 652H165L210 347Q216 296 223 245T236 141H240Q250 193 259 244T279 347L349 652H474L544 347Q554 298 563 246T583 141H587Q594 194 600 245T614 347L659 652H800L684 0H499L435 296Q427 334
421 372T409 447H405Q399 411 393 373T378 296L317 0H135Z" />
<glyph unicode="X" glyph-name="X" horiz-adv-x="567" d="M11 0L192 335L22 652H186L243 529Q254 507 265 481T290 424H294Q305 455 315 481T336 529L388 652H545L376 328L556 0H392L327 133Q315 159 304 184T278 240H274Q263 210 252 185T230 133L169 0H11Z" />
<glyph unicode="Y" glyph-name="Y" horiz-adv-x="525" d="M189 0V232L-8 652H150L208 502Q222 465 235 431T261 358H265Q279 396 293 430T320 502L379 652H533L336 232V0H189Z" />
<glyph unicode="Z" glyph-name="Z" horiz-adv-x="541" d="M36 0V89L324 528H63V652H505V563L217 124H508V0H36Z" />
<glyph unicode="[" glyph-name="bracketleft" horiz-adv-x="344" d="M87 -152V708H298V630H197V-74H298V-152H87Z" />
<glyph unicode="\" glyph-name="backslash" horiz-adv-x="339" d="M230 -160L28 710H124L326 -160H230Z" />
<glyph unicode="]" glyph-name="bracketright" horiz-adv-x="344" d="M46 -152V-74H148V630H46V708H257V-152H46Z" />
<glyph unicode="^" glyph-name="asciicircum" horiz-adv-x="528" d="M50 274L205 670H323L478 274H357L311 402L266 537H262L217 402L171 274H50Z" />
<glyph unicode="_" glyph-name="underscore" horiz-adv-x="500" d="M12 -140V-57H488V-140H12Z" />
<glyph unicode="`" glyph-name="grave" horiz-adv-x="555" d="M268 572L87 729L186 826L340 644L268 572Z" />
<glyph unicode="a" glyph-name="a" horiz-adv-x="527" d="M190 -12Q122 -12 82 31T42 138Q42 216 108 260T321 319Q319 352 302 371T243 391Q212 391 180 379T112 346L59 443Q106 472 159 490T271 508Q366 508 417 453T468 284V0H348L338 51H334Q303 23 268 6T190
-12ZM240 102Q265 102 283 113T321 144V231Q243 221 213 200T183 149Q183 125 198 114T240 102Z" />
<glyph unicode="b" glyph-name="b" horiz-adv-x="573" d="M325 -12Q292 -12 259 4T196 53H192L180 0H65V701H212V529L208 453Q237 479 271 493T339 508Q399 508 443 477T510 390T534 257Q534 172 504 112T427 20T325 -12ZM291 108Q329 108 356 143T383 254Q383
388 297 388Q253 388 212 343V140Q232 122 252 115T291 108Z" />
<glyph unicode="c" glyph-name="c" horiz-adv-x="467" d="M281 -12Q212 -12 157 18T69 107T36 248Q36 331 72 389T167 477T294 508Q340 508 375 493T439 455L370 360Q335 389 303 389Q250 389 219 351T187 248Q187 184 218 146T298 107Q322 107 345 117T387 143L445
47Q408 15 365 2T281 -12Z" />
<glyph unicode="d" glyph-name="d" horiz-adv-x="573" d="M242 -12Q150 -12 95 57T39 248Q39 329 68 387T145 477T245 508Q286 508 314 494T367 456L361 532V701H508V0H388L378 49H374Q348 23 313 6T242 -12ZM280 108Q304 108 323 118T361 153V356Q342 374 321
381T279 388Q244 388 217 355T190 250Q190 177 213 143T280 108Z" />
<glyph unicode="e" glyph-name="e" horiz-adv-x="518" d="M287 -12Q216 -12 159 19T69 108T36 248Q36 329 69 387T157 476T270 508Q341 508 387 477T457 392T481 270Q481 251 479 233T475 205H178Q188 151 223 126T307 100Q360 100 414 133L463 44Q425 18 378
3T287 -12ZM177 302H356Q356 343 337 369T273 396Q239 396 212 373T177 302Z" />
<glyph unicode="f" glyph-name="f" horiz-adv-x="341" d="M90 0V381H24V490L90 495V522Q90 575 108 618T166 687T273 713Q304 713 330 707T372 695L345 587Q332 592 319 594T294 597Q267 597 252 581T237 526V496H326V381H237V0H90Z" />
<glyph unicode="g" glyph-name="g" horiz-adv-x="534" d="M242 -211Q184 -211 137 -198T62 -157T34 -85Q34 -25 105 15V19Q86 32 73 52T59 103Q59 130 75 155T115 196V200Q89 218 69 252T48 329Q48 389 77 428T153 488T253 508Q297 508 330 496H511V389H432Q439
378 443 361T448 324Q448 267 422 230T352 175T253 157Q224 157 193 167Q175 152 175 130Q175 111 192 102T250 93H330Q422 93 470 64T519 -33Q519 -84 485 -124T389 -188T242 -211ZM253 246Q282 246 301 267T321 329Q321 368 302 388T253 409Q224 409 205 389T185
329Q185 288 204 267T253 246ZM265 -119Q315 -119 347 -101T379 -58Q379 -35 360 -27T303 -19H252Q227 -19 211 -18T182 -13Q155 -37 155 -62Q155 -90 185 -104T265 -119Z" />
<glyph unicode="h" glyph-name="h" horiz-adv-x="571" d="M65 0V701H212V529L205 440Q233 465 270 486T358 508Q439 508 475 455T512 308V0H365V289Q365 343 351 363T304 383Q276 383 256 371T212 335V0H65Z" />
<glyph unicode="i" glyph-name="i" horiz-adv-x="276" d="M65 0V496H212V0H65ZM138 569Q101 569 78 590T55 646Q55 681 78 702T138 723Q175 723 198 702T221 646Q221 611 198 590T138 569Z" />
<glyph unicode="j" glyph-name="j" horiz-adv-x="278" d="M36 -196Q5 -196 -15 -192T-51 -182L-25 -74Q-15 -77 -6 -79T14 -81Q43 -81 54 -62T66 -1V496H213V3Q213 -51 197 -96T143 -168T36 -196ZM140 569Q103 569 80 590T57 646Q57 681 80 702T140 723Q177 723
200 702T223 646Q223 611 200 590T140 569Z" />
<glyph unicode="k" glyph-name="k" horiz-adv-x="548" d="M65 0V701H208V299H212L369 496H529L355 292L542 0H383L271 193L208 122V0H65Z" />
<glyph unicode="l" glyph-name="l" horiz-adv-x="286" d="M200 -12Q124 -12 95 33T65 154V701H212V148Q212 125 220 116T238 107Q243 107 246 107T256 109L274 0Q262 -5 244 -8T200 -12Z" />
<glyph unicode="m" glyph-name="m" horiz-adv-x="857" d="M65 0V496H185L195 432H199Q230 463 265 485T349 508Q402 508 434 487T486 425Q519 459 556 483T642 508Q722 508 759 455T797 308V0H650V289Q650 343 636 363T589 383Q552 383 504 335V0H357V289Q357
343 343 363T296 383Q259 383 212 335V0H65Z" />
<glyph unicode="n" glyph-name="n" horiz-adv-x="572" d="M65 0V496H185L195 433H199Q231 463 269 485T358 508Q439 508 475 455T512 308V0H365V289Q365 343 351 363T304 383Q276 383 256 371T212 335V0H65Z" />
<glyph unicode="o" glyph-name="o" horiz-adv-x="555" d="M278 -12Q215 -12 160 18T70 107T36 248Q36 331 70 389T159 477T278 508Q341 508 396 478T485 389T519 248Q519 166 485 108T396 19T278 -12ZM278 107Q323 107 346 145T369 248Q369 313 346 351T278 389Q232
389 210 351T187 248Q187 184 209 146T278 107Z" />
<glyph unicode="p" glyph-name="p" horiz-adv-x="573" d="M65 -184V496H185L195 447H199Q228 473 264 490T340 508Q430 508 482 440T534 256Q534 171 504 111T427 20T325 -12Q293 -12 263 1T207 40L212 -39V-184H65ZM291 108Q329 108 356 143T383 254Q383 388
297 388Q254 388 212 343V140Q232 122 252 115T291 108Z" />
<glyph unicode="q" glyph-name="q" horiz-adv-x="573" d="M361 -184V-33L367 43Q342 19 309 4T242 -12Q150 -12 95 57T39 248Q39 329 68 387T145 477T245 508Q286 508 317 494T377 447H381L393 496H508V-184H361ZM280 108Q304 108 323 118T361 153V356Q342 374
321 381T279 388Q244 388 217 355T190 250Q190 177 213 143T280 108Z" />
<glyph unicode="r" glyph-name="r" horiz-adv-x="398" d="M65 0V496H185L195 409H199Q226 459 264 483T340 508Q361 508 375 506T399 498L375 371Q362 375 350 377T321 379Q293 379 263 359T212 288V0H65Z" />
<glyph unicode="s" glyph-name="s" horiz-adv-x="443" d="M211 -12Q162 -12 111 7T21 57L87 149Q121 124 152 111T215 97Q248 97 263 108T278 139Q278 156 264 167T226 187T177 207Q147 219 118 237T68 283T48 353Q48 422 100 465T238 508Q295 508 338 489T413
445L347 357Q321 377 295 388T243 399Q186 399 186 360Q186 336 214 324T281 297Q313 286 343 269T394 223T415 148Q415 81 363 35T211 -12Z" />
<glyph unicode="t" glyph-name="t" horiz-adv-x="383" d="M256 -12Q164 -12 125 41T85 180V381H17V490L93 496L110 628H232V496H351V381H232V182Q232 140 249 122T296 103Q308 103 320 106T343 113L366 6Q347 0 320 -6T256 -12Z" />
<glyph unicode="u" glyph-name="u" horiz-adv-x="568" d="M214 -12Q133 -12 97 41T60 188V496H207V207Q207 154 222 134T269 113Q297 113 316 126T357 168V496H504V0H384L373 69H370Q339 32 302 10T214 -12Z" />
<glyph unicode="v" glyph-name="v" horiz-adv-x="523" d="M179 0L12 496H160L224 262Q234 225 243 187T263 109H267Q276 148 285 186T305 262L370 496H511L349 0H179Z" />
<glyph unicode="w" glyph-name="w" horiz-adv-x="776" d="M148 0L24 496H170L218 266Q224 229 229 193T240 119H244Q251 157 257 194T273 266L328 496H455L511 266Q520 229 527 193T542 119H546Q553 157 557 193T569 266L616 496H752L633 0H461L416 198Q409 233
403 268T389 343H385Q378 303 373 268T360 198L316 0H148Z" />
<glyph unicode="x" glyph-name="x" horiz-adv-x="514" d="M14 0L166 258L23 496H181L225 416Q235 395 246 374T267 331H271Q279 352 288 373T305 416L339 496H491L347 241L500 0H342L294 82Q282 103 271 125T247 168H243Q234 147 224 126T205 82L166 0H14Z" />
<glyph unicode="y" glyph-name="y" horiz-adv-x="521" d="M120 -194Q98 -194 82 -191T50 -184L76 -72Q83 -73 92 -75T109 -78Q146 -78 166 -60T196 -13L203 13L12 496H160L231 283Q242 249 251 214T270 142H274Q282 177 290 212T308 283L368 496H509L337 -5Q314
-67 286 -109T219 -173T120 -194Z" />
<glyph unicode="z" glyph-name="z" horiz-adv-x="460" d="M38 0V79L246 381H61V496H429V418L221 115H436V0H38Z" />
<glyph unicode="{" glyph-name="braceleft" horiz-adv-x="344" d="M235 -152Q169 -152 138 -122T107 -10Q107 26 109 52T114 104T117 161Q117 187 99 210T31 235V321Q80 323 98 346T117 395Q117 427 115 452T110 504T107 566Q107 647 138 677T235 708H298V630H279Q248
630 237 616T226 560Q226 520 228 482T230 397Q230 340 212 315T156 280V276Q194 267 212 242T230 159Q230 113 228 75T226 -4Q226 -45 237 -59T279 -74H298V-152H235Z" />
<glyph unicode="|" glyph-name="bar" horiz-adv-x="268" d="M86 -250V750H182V-250H86Z" />
<glyph unicode="}" glyph-name="braceright" horiz-adv-x="344" d="M46 -152V-74H65Q97 -74 107 -60T118 -4Q118 37 116 75T114 159Q114 216 132 241T188 276V280Q151 289 133 314T114 397Q114 443 116 481T118 560Q118 601 108 615T65 630H46V708H109Q175 708
206 678T237 566Q237 531 235 504T230 452T227 395Q227 369 245 346T313 321V235Q264 234 246 211T227 161Q227 130 229 105T234 53T237 -10Q237 -91 206 -121T109 -152H46Z" />
<glyph unicode="~" glyph-name="asciitilde" horiz-adv-x="528" d="M349 240Q318 240 295 251T253 278T216 304T177 316Q138 316 105 258L29 317Q66 373 104 396T179 420Q210 420 233 409T275 382T312 356T351 344Q372 344 389 359T423 402L499 343Q462 287 425
264T349 240Z" />
<glyph unicode="&#xa0;" glyph-name="space" horiz-adv-x="200" />
<glyph unicode="&#xa1;" glyph-name="exclamdown" horiz-adv-x="340" d="M96 -174L101 -41L122 265H218L239 -41L244 -174H96ZM170 323Q132 323 107 349T81 416Q81 455 106 481T170 508Q208 508 233 482T259 416Q259 376 234 350T170 323Z" />
<glyph unicode="&#xa2;" glyph-name="cent" horiz-adv-x="528" d="M275 -41V54Q178 67 119 132T60 307Q60 378 88 430T164 515T275 558V655H356V562Q395 558 426 544T480 506L413 416Q383 440 356 443V171Q377 175 395 184T428 206L487 113Q459 88 425 74T356
54V-41H275ZM203 307Q203 262 221 230T275 182V432Q239 416 221 384T203 307Z" />
<glyph unicode="&#xa3;" glyph-name="sterling" horiz-adv-x="528" d="M48 0V91Q93 111 123 151T154 244Q154 251 154 257T152 271H52V357L120 362H126Q119 382 115 402T110 442Q110 505 137 551T213 622T324 647Q380 647 421 626T497 566L417 486Q400 507 381
517T338 528Q298 528 275 505T251 434Q251 416 254 398T262 362H410V271H281Q282 264 282 258T283 243Q283 207 273 181T238 128V124H497V0H48Z" />
<glyph unicode="&#xa4;" glyph-name="currency" horiz-adv-x="528" d="M93 83L20 157L81 219Q47 265 47 330Q47 393 80 439L20 501L93 575L162 505Q210 530 264 530Q316 530 366 505L435 575L508 501L447 439Q481 394 481 330Q481 297 472 270T447 219L508 157L435
83L365 154Q342 142 316 136T264 130Q210 130 163 154L93 83ZM264 232Q300 232 325 258T350 330Q350 374 325 401T264 428Q228 428 203 401T178 330Q178 285 203 259T264 232Z" />
<glyph unicode="&#xa5;" glyph-name="yen" horiz-adv-x="528" d="M190 0V147H37V217H190V272H37V342H159L12 635H163L214 502Q226 469 238 436T264 371H268Q281 404 293 437T318 502L368 635H516L369 342H491V272H337V217H491V147H337V0H190Z" />
<glyph unicode="&#xa6;" glyph-name="brokenbar" horiz-adv-x="268" d="M86 312V750H182V312H86ZM86 -250V204H182V-250H86Z" />
<glyph unicode="&#xa7;" glyph-name="section" horiz-adv-x="528" d="M240 -84Q185 -84 133 -64T46 0L131 75Q180 24 240 24Q271 24 285 36T300 67Q300 87 281 100T232 127T169 155T105 192T56 246T37 326Q37 364 58 398T117 454Q104 470 96 490T88 537Q88 605
135 647T266 690Q324 690 369 670T446 625L379 533Q356 553 328 567T274 581Q220 581 220 542Q220 524 239 511T290 484T355 454T421 416T471 361T491 284Q491 241 470 208T409 151Q420 135 426 116T432 74Q432 7 383 -38T240 -84ZM161 337Q161 313 177 297T218
267T274 241T333 213Q367 234 367 272Q367 304 341 323T275 359T196 395Q161 372 161 337Z" />
<glyph unicode="&#xa8;" glyph-name="dieresis" horiz-adv-x="555" d="M169 569Q138 569 118 589T97 641Q97 671 117 691T169 712Q201 712 220 692T240 641Q240 610 221 590T169 569ZM387 569Q356 569 336 589T316 641Q316 671 336 691T387 712Q419 712 439 692T459
641Q459 610 439 590T387 569Z" />
<glyph unicode="&#xa9;" glyph-name="copyright" horiz-adv-x="750" d="M375 -9Q309 -9 250 14T144 80T72 185T45 325Q45 403 71 464T144 567T249 632T375 655Q441 655 500 633T606 567T678 463T704 325Q704 247 678 186T606 81T501 14T375 -9ZM375 52Q449 52
508 86T602 181T637 325Q637 407 602 467T508 561T375 595Q302 595 243 562T148 468T113 325Q113 243 148 182T242 86T375 52ZM387 127Q331 127 288 151T219 219T194 324Q194 383 221 426T292 492T387 516Q433 516 464 499T519 457L464 396Q448 413 432 421T396
430Q349 430 324 399T299 324Q299 273 324 243T391 213Q416 213 434 222T471 247L519 179Q491 157 459 142T387 127Z" />
<glyph unicode="&#xaa;" glyph-name="ordfeminine" horiz-adv-x="359" d="M130 367Q84 367 57 397T29 467Q29 520 73 549T216 587Q214 608 203 619T167 631Q147 631 124 623T77 601L40 669Q73 689 109 701T185 713Q249 713 284 676T320 564V375H237L227 409H223Q205
391 182 379T130 367ZM165 446Q180 446 191 453T216 472V527Q167 522 148 508T128 476Q128 446 165 446Z" />
<glyph unicode="&#xab;" glyph-name="guillemotleft" horiz-adv-x="480" d="M183 56L49 200V304L183 448L238 404L127 252L238 100L183 56ZM371 56L237 200V304L371 448L426 404L315 252L426 100L371 56Z" />
<glyph unicode="&#xac;" glyph-name="logicalnot" horiz-adv-x="528" d="M386 94V278H34V382H494V94H386Z" />
<glyph unicode="&#xad;" glyph-name="hyphen" horiz-adv-x="332" d="M43 201V305H289V201H43Z" />
<glyph unicode="&#xae;" glyph-name="registered" horiz-adv-x="462" d="M231 311Q176 311 131 337T59 408T32 513Q32 572 59 617T131 689T231 715Q286 715 330 689T402 618T429 513Q429 454 402 409T331 337T231 311ZM231 360Q294 360 334 401T374 513Q374 583
334 624T231 666Q168 666 128 625T87 513Q87 443 127 402T231 360ZM150 416V613H239Q274 613 297 597T320 547Q320 510 285 493L326 416H266L236 476H207V416H150ZM207 516H228Q243 516 250 524T258 544Q258 555 251 562T228 570H207V516Z" />
<glyph unicode="&#xaf;" glyph-name="overscore" horiz-adv-x="555" d="M130 592V685H426V592H130Z" />
<glyph unicode="&#xb0;" glyph-name="degree" horiz-adv-x="365" d="M183 398Q143 398 111 416T59 467T39 542Q39 584 58 616T110 667T183 686Q224 686 256 668T308 617T328 542Q328 500 309 468T257 417T183 398ZM183 468Q213 468 231 488T250 542Q250 574 232
594T183 615Q154 615 135 595T116 542Q116 509 135 489T183 468Z" />
<glyph unicode="&#xb1;" glyph-name="plusminus" horiz-adv-x="528" d="M210 158V294H34V398H210V566H318V398H494V294H318V158H210ZM34 0V104H494V0H34Z" />
<glyph unicode="&#xb2;" glyph-name="two.sups" horiz-adv-x="376" d="M45 375V433Q120 495 168 542T216 627Q216 656 201 672T159 688Q140 688 123 676T88 641L27 697Q87 777 176 777Q241 777 280 743T320 645Q320 598 289 555T216 465H334V375H45Z" />
<glyph unicode="&#xb3;" glyph-name="three.sups" horiz-adv-x="376" d="M186 363Q135 363 94 383T27 442L92 493Q127 445 175 445Q198 445 214 457T231 492Q231 543 138 543V605Q174 605 195 616T217 653Q217 673 204 684T168 695Q149 695 134 684T104 656L43
710Q75 745 108 761T187 777Q223 777 254 764T304 727T323 668Q323 637 308 616T266 578Q296 566 316 543T337 484Q337 448 316 421T261 379T186 363Z" />
<glyph unicode="&#xb4;" glyph-name="acute" horiz-adv-x="555" d="M288 572L216 644L370 826L469 729L288 572Z" />
<glyph unicode="&#xb5;" glyph-name="mu" horiz-adv-x="594" d="M65 -177V496H212V207Q212 155 227 134T273 113Q298 113 318 127T358 178V496H506Q505 438 503 374T498 250T496 149Q496 125 508 116T540 107Q556 107 572 113L589 4Q573 -3 554 -7T502 -12Q398
-12 374 71H370Q333 -7 265 -7Q247 -7 231 -3T203 16Q204 -39 206 -82T213 -177H65Z" />
<glyph unicode="&#xb6;" glyph-name="paragraph" horiz-adv-x="636" d="M393 -80V652H540V-80H393ZM297 197Q226 197 168 223T74 301T39 429Q39 513 73 562T166 631T293 652H337V197H297Z" />
<glyph unicode="&#xb7;" glyph-name="middot" horiz-adv-x="300" d="M150 228Q112 228 87 254T61 320Q61 360 86 386T150 413Q188 413 213 387T239 320Q239 281 214 255T150 228Z" />
<glyph unicode="&#xb8;" glyph-name="cedilla" horiz-adv-x="555" d="M177 -239L166 -180Q225 -177 247 -167T269 -136Q269 -121 254 -111T192 -94L240 4H326L298 -61Q336 -70 355 -87T374 -136Q374 -187 323 -211T177 -239Z" />
<glyph unicode="&#xb9;" glyph-name="one.sups" horiz-adv-x="376" d="M165 375V656H76V722Q117 728 140 738T188 765H274V375H165Z" />
<glyph unicode="&#xba;" glyph-name="ordmasculine" horiz-adv-x="373" d="M186 367Q144 367 107 387T47 446T24 539Q24 594 47 632T107 692T186 713Q229 713 265 692T325 633T348 539Q348 485 325 447T266 388T186 367ZM186 449Q215 449 229 474T243 539Q243
580 229 605T186 631Q157 631 144 606T130 539Q130 499 143 474T186 449Z" />
<glyph unicode="&#xbb;" glyph-name="guillemotright" horiz-adv-x="480" d="M109 56L54 100L165 252L54 404L109 448L243 304V200L109 56ZM297 56L242 100L353 252L242 404L297 448L431 304V200L297 56Z" />
<glyph unicode="&#xbc;" glyph-name="onequarter" horiz-adv-x="809" d="M135 262V543H46V609Q87 615 110 625T158 652H244V262H135ZM185 -12L537 664H622L270 -12H185ZM567 157H647V198L653 315H649L609 238L567 157ZM647 0V87H468V141L609 390H743V157H801V87H743V0H647Z"
/>
<glyph unicode="&#xbd;" glyph-name="onehalf" horiz-adv-x="846" d="M135 262V543H46V609Q87 615 110 625T158 652H244V262H135ZM170 -12L522 664H607L255 -12H170ZM514 0V58Q589 120 637 167T685 252Q685 281 670 297T628 313Q609 313 592 301T557 266L496 322Q556
402 645 402Q710 402 749 368T789 270Q789 223 758 180T685 90H803V0H514Z" />
<glyph unicode="&#xbe;" glyph-name="threequarters" horiz-adv-x="818" d="M183 250Q132 250 91 270T24 329L89 380Q124 332 172 332Q195 332 211 344T228 379Q228 430 135 430V492Q171 492 192 503T214 540Q214 560 201 571T165 582Q146 582 131 571T101 543L40
597Q72 632 105 648T184 664Q220 664 251 651T301 614T320 555Q320 524 305 503T263 465Q293 453 313 430T334 371Q334 335 313 308T258 266T183 250ZM207 -12L559 664H644L292 -12H207ZM575 157H655V198L661 315H657L617 238L575 157ZM655 0V87H476V141L617 390H751V157H809V87H751V0H655Z"
/>
<glyph unicode="&#xbf;" glyph-name="questiondown" horiz-adv-x="463" d="M232 -186Q178 -186 135 -168T67 -112T42 -14Q42 23 57 51T94 103T137 151T171 202T181 265H309Q315 224 304 192T274 133T233 84T198 40T183 -4Q183 -35 202 -51T250 -67Q278 -67 299
-54T341 -21L422 -95Q386 -135 339 -160T232 -186ZM245 323Q207 323 182 349T156 416Q156 455 181 481T245 508Q283 508 308 482T334 416Q334 376 309 350T245 323Z" />
<glyph unicode="&#xc0;" glyph-name="Agrave" horiz-adv-x="573" d="M230 330L214 270H353L338 330Q325 379 312 434T285 540H281Q269 488 257 434T230 330ZM-6 0L198 652H375L579 0H423L383 155H184L144 0H-6ZM295 680L112 799L190 894L361 754L295 680Z" />
<glyph unicode="&#xc1;" glyph-name="Aacute" horiz-adv-x="573" d="M230 330L214 270H353L338 330Q325 379 312 434T285 540H281Q269 488 257 434T230 330ZM-6 0L198 652H375L579 0H423L383 155H184L144 0H-6ZM275 680L209 754L380 894L458 799L275 680Z" />
<glyph unicode="&#xc2;" glyph-name="Acircumflex" horiz-adv-x="573" d="M230 330L214 270H353L338 330Q325 379 312 434T285 540H281Q269 488 257 434T230 330ZM-6 0L198 652H375L579 0H423L383 155H184L144 0H-6ZM179 685L115 724L205 835H365L455 724L391
685L287 769H283L179 685Z" />
<glyph unicode="&#xc3;" glyph-name="Atilde" horiz-adv-x="573" d="M230 330L214 270H353L338 330Q325 379 312 434T285 540H281Q269 488 257 434T230 330ZM-6 0L198 652H375L579 0H423L383 155H184L144 0H-6ZM356 692Q321 692 297 706T254 735T219 750Q205 750
195 739T182 701L87 708Q91 784 126 818T214 852Q250 852 274 838T316 809T351 794Q365 794 375 805T388 843L483 836Q479 761 444 727T356 692Z" />
<glyph unicode="&#xc4;" glyph-name="Adieresis" horiz-adv-x="573" d="M230 330L214 270H353L338 330Q325 379 312 434T285 540H281Q269 488 257 434T230 330ZM-6 0L198 652H375L579 0H423L383 155H184L144 0H-6ZM174 700Q143 700 124 720T104 770Q104 800 123
820T174 840Q205 840 224 820T244 770Q244 740 225 720T174 700ZM396 700Q365 700 346 720T326 770Q326 800 345 820T396 840Q427 840 446 820T466 770Q466 740 447 720T396 700Z" />
<glyph unicode="&#xc5;" glyph-name="Aring" horiz-adv-x="573" d="M230 330L214 270H353L338 330Q325 379 312 434T285 540H281Q269 488 257 434T230 330ZM-6 0L198 652H375L579 0H423L383 155H184L144 0H-6ZM285 697Q234 697 203 724T171 796Q171 841 202 867T285
894Q335 894 367 868T399 796Q399 751 367 724T285 697ZM285 752Q302 752 314 764T327 796Q327 816 315 827T285 839Q268 839 256 828T243 796Q243 776 255 764T285 752Z" />
<glyph unicode="&#xc6;" glyph-name="AE" horiz-adv-x="845" d="M303 356L261 263H386V541H382Q362 493 343 446T303 356ZM-14 0L296 652H783V528H533V397H744V274H533V124H793V0H386V149H209L141 0H-14Z" />
<glyph unicode="&#xc7;" glyph-name="Ccedilla" horiz-adv-x="582" d="M349 -12Q267 -12 198 26T88 138T46 322Q46 430 88 506T201 623T354 664Q417 664 467 639T550 579L472 485Q447 508 420 522T357 537Q313 537 277 512T219 440T197 327Q197 227 240 171T355
115Q395 115 426 133T482 176L560 84Q478 -12 349 -12ZM248 -239L237 -180Q296 -177 318 -167T340 -136Q340 -121 325 -111T263 -94L311 4H397L369 -61Q407 -70 426 -87T445 -136Q445 -187 394 -211T248 -239Z" />
<glyph unicode="&#xc8;" glyph-name="Egrave" horiz-adv-x="548" d="M77 0V652H485V528H224V397H446V274H224V124H495V0H77ZM300 680L117 799L195 894L366 754L300 680Z" />
<glyph unicode="&#xc9;" glyph-name="Eacute" horiz-adv-x="548" d="M77 0V652H485V528H224V397H446V274H224V124H495V0H77ZM280 680L214 754L385 894L463 799L280 680Z" />
<glyph unicode="&#xca;" glyph-name="Ecircumflex" horiz-adv-x="548" d="M77 0V652H485V528H224V397H446V274H224V124H495V0H77ZM184 685L120 724L210 835H370L460 724L396 685L292 769H288L184 685Z" />
<glyph unicode="&#xcb;" glyph-name="Edieresis" horiz-adv-x="548" d="M77 0V652H485V528H224V397H446V274H224V124H495V0H77ZM179 700Q148 700 129 720T109 770Q109 800 128 820T179 840Q210 840 229 820T249 770Q249 740 230 720T179 700ZM401 700Q370 700
351 720T331 770Q331 800 350 820T401 840Q432 840 451 820T471 770Q471 740 452 720T401 700Z" />
<glyph unicode="&#xcc;" glyph-name="Igrave" horiz-adv-x="301" d="M77 0V652H224V0H77ZM162 680L-21 799L57 894L228 754L162 680Z" />
<glyph unicode="&#xcd;" glyph-name="Iacute" horiz-adv-x="301" d="M77 0V652H224V0H77ZM142 680L76 754L247 894L325 799L142 680Z" />
<glyph unicode="&#xce;" glyph-name="Icircumflex" horiz-adv-x="301" d="M77 0V652H224V0H77ZM46 685L-18 724L72 835H232L322 724L258 685L154 769H150L46 685Z" />
<glyph unicode="&#xcf;" glyph-name="Idieresis" horiz-adv-x="301" d="M77 0V652H224V0H77ZM41 700Q10 700 -9 720T-29 770Q-29 800 -10 820T41 840Q72 840 91 820T111 770Q111 740 92 720T41 700ZM263 700Q232 700 213 720T193 770Q193 800 212 820T263 840Q294
840 313 820T333 770Q333 740 314 720T263 700Z" />
<glyph unicode="&#xd0;" glyph-name="Eth" horiz-adv-x="660" d="M102 0V301H26V367L102 372V652H286Q386 652 459 618T572 513T613 329Q613 217 573 144T462 36T294 0H102ZM249 119H277Q333 119 374 139T439 205T462 329Q462 407 439 451T375 514T277 533H249V372H374V301H249V119Z"
/>
<glyph unicode="&#xd1;" glyph-name="Ntilde" horiz-adv-x="665" d="M77 0V652H228L398 328L462 184H466Q462 236 455 300T448 422V652H588V0H437L267 325L203 467H199Q204 413 210 351T217 231V0H77ZM409 692Q374 692 350 706T307 735T272 750Q258 750 248 739T235
701L140 708Q144 784 179 818T267 852Q303 852 327 838T369 809T404 794Q418 794 428 805T441 843L536 836Q532 761 497 727T409 692Z" />
<glyph unicode="&#xd2;" glyph-name="Ograve" horiz-adv-x="684" d="M342 -12Q254 -12 188 29T84 146T46 329Q46 436 83 510T187 624T342 664Q430 664 496 625T600 510T638 329Q638 223 601 147T497 29T342 -12ZM342 115Q409 115 448 173T487 329Q487 427 448
482T342 537Q275 537 236 482T197 329Q197 231 236 173T342 115ZM352 680L169 799L247 894L418 754L352 680Z" />
<glyph unicode="&#xd3;" glyph-name="Oacute" horiz-adv-x="684" d="M342 -12Q254 -12 188 29T84 146T46 329Q46 436 83 510T187 624T342 664Q430 664 496 625T600 510T638 329Q638 223 601 147T497 29T342 -12ZM342 115Q409 115 448 173T487 329Q487 427 448
482T342 537Q275 537 236 482T197 329Q197 231 236 173T342 115ZM332 680L266 754L437 894L515 799L332 680Z" />
<glyph unicode="&#xd4;" glyph-name="Ocircumflex" horiz-adv-x="684" d="M342 -12Q254 -12 188 29T84 146T46 329Q46 436 83 510T187 624T342 664Q430 664 496 625T600 510T638 329Q638 223 601 147T497 29T342 -12ZM342 115Q409 115 448 173T487 329Q487 427
448 482T342 537Q275 537 236 482T197 329Q197 231 236 173T342 115ZM236 685L172 724L262 835H422L512 724L448 685L344 769H340L236 685Z" />
<glyph unicode="&#xd5;" glyph-name="Otilde" horiz-adv-x="684" d="M342 -12Q254 -12 188 29T84 146T46 329Q46 436 83 510T187 624T342 664Q430 664 496 625T600 510T638 329Q638 223 601 147T497 29T342 -12ZM342 115Q409 115 448 173T487 329Q487 427 448
482T342 537Q275 537 236 482T197 329Q197 231 236 173T342 115ZM413 692Q378 692 354 706T311 735T276 750Q262 750 252 739T239 701L144 708Q148 784 183 818T271 852Q307 852 331 838T373 809T408 794Q422 794 432 805T445 843L540 836Q536 761 501 727T413
692Z" />
<glyph unicode="&#xd6;" glyph-name="Odieresis" horiz-adv-x="684" d="M342 -12Q254 -12 188 29T84 146T46 329Q46 436 83 510T187 624T342 664Q430 664 496 625T600 510T638 329Q638 223 601 147T497 29T342 -12ZM342 115Q409 115 448 173T487 329Q487 427 448
482T342 537Q275 537 236 482T197 329Q197 231 236 173T342 115ZM231 700Q200 700 181 720T161 770Q161 800 180 820T231 840Q262 840 281 820T301 770Q301 740 282 720T231 700ZM453 700Q422 700 403 720T383 770Q383 800 402 820T453 840Q484 840 503 820T523
770Q523 740 504 720T453 700Z" />
<glyph unicode="&#xd7;" glyph-name="multiply" horiz-adv-x="528" d="M121 112L48 186L190 329L48 473L121 547L264 403L407 547L480 473L338 329L480 186L407 112L264 256L121 112Z" />
<glyph unicode="&#xd8;" glyph-name="Oslash" horiz-adv-x="684" d="M116 -41L40 17L109 103Q80 146 64 203T47 329Q47 436 84 510T188 624T343 664Q445 664 518 611L584 693L660 634L584 540Q610 500 624 447T639 329Q639 223 602 147T498 29T343 -12Q249 -12
178 36L116 -41ZM198 329Q198 301 201 276T211 230L431 503Q395 537 343 537Q276 537 237 482T198 329ZM343 115Q410 115 449 173T488 329Q488 374 479 410L264 143Q298 115 343 115Z" />
<glyph unicode="&#xd9;" glyph-name="Ugrave" horiz-adv-x="665" d="M334 -12Q207 -12 140 63T73 302V652H221V287Q221 191 250 153T334 115Q389 115 419 153T449 287V652H591V302Q591 138 526 63T334 -12ZM342 680L159 799L237 894L408 754L342 680Z" />
<glyph unicode="&#xda;" glyph-name="Uacute" horiz-adv-x="665" d="M334 -12Q207 -12 140 63T73 302V652H221V287Q221 191 250 153T334 115Q389 115 419 153T449 287V652H591V302Q591 138 526 63T334 -12ZM322 680L256 754L427 894L505 799L322 680Z" />
<glyph unicode="&#xdb;" glyph-name="Ucircumflex" horiz-adv-x="665" d="M334 -12Q207 -12 140 63T73 302V652H221V287Q221 191 250 153T334 115Q389 115 419 153T449 287V652H591V302Q591 138 526 63T334 -12ZM226 685L162 724L252 835H412L502 724L438 685L334
769H330L226 685Z" />
<glyph unicode="&#xdc;" glyph-name="Udieresis" horiz-adv-x="665" d="M334 -12Q207 -12 140 63T73 302V652H221V287Q221 191 250 153T334 115Q389 115 419 153T449 287V652H591V302Q591 138 526 63T334 -12ZM221 700Q190 700 171 720T151 770Q151 800 170 820T221
840Q252 840 271 820T291 770Q291 740 272 720T221 700ZM443 700Q412 700 393 720T373 770Q373 800 392 820T443 840Q474 840 493 820T513 770Q513 740 494 720T443 700Z" />
<glyph unicode="&#xdd;" glyph-name="Yacute" horiz-adv-x="525" d="M189 0V232L-8 652H150L208 502Q222 465 235 431T261 358H265Q279 396 293 430T320 502L379 652H533L336 232V0H189ZM252 680L186 754L357 894L435 799L252 680Z" />
<glyph unicode="&#xde;" glyph-name="Thorn" horiz-adv-x="617" d="M77 0V652H224V553H315Q386 553 443 534T535 469T570 344Q570 267 535 218T442 146T315 123H224V0H77ZM224 240H306Q426 240 426 344Q426 395 396 415T306 436H224V240Z" />
<glyph unicode="&#xdf;" glyph-name="germandbls" horiz-adv-x="632" d="M421 -12Q377 -12 342 0T270 33L321 133Q370 97 416 97Q442 97 456 110T471 145Q471 168 453 183T409 212T357 243T313 285T295 350Q295 379 305 400T330 440T355 479T366 527Q366 556 350
575T302 595Q256 595 233 562T210 470V0H65V487Q65 552 90 602T169 682T302 711Q371 711 416 687T484 625T507 544Q507 508 495 483T468 440T441 404T429 368Q429 348 447 335T491 308T543 276T587 228T605 152Q605 107 584 70T523 10T421 -12Z" />
<glyph unicode="&#xe0;" glyph-name="agrave" horiz-adv-x="527" d="M190 -12Q122 -12 82 31T42 138Q42 216 108 260T321 319Q319 352 302 371T243 391Q212 391 180 379T112 346L59 443Q106 472 159 490T271 508Q366 508 417 453T468 284V0H348L338 51H334Q303
23 268 6T190 -12ZM240 102Q265 102 283 113T321 144V231Q243 221 213 200T183 149Q183 125 198 114T240 102ZM266 572L85 729L184 826L338 644L266 572Z" />
<glyph unicode="&#xe1;" glyph-name="aacute" horiz-adv-x="527" d="M190 -12Q122 -12 82 31T42 138Q42 216 108 260T321 319Q319 352 302 371T243 391Q212 391 180 379T112 346L59 443Q106 472 159 490T271 508Q366 508 417 453T468 284V0H348L338 51H334Q303
23 268 6T190 -12ZM240 102Q265 102 283 113T321 144V231Q243 221 213 200T183 149Q183 125 198 114T240 102ZM286 572L214 644L368 826L467 729L286 572Z" />
<glyph unicode="&#xe2;" glyph-name="acircumflex" horiz-adv-x="527" d="M190 -12Q122 -12 82 31T42 138Q42 216 108 260T321 319Q319 352 302 371T243 391Q212 391 180 379T112 346L59 443Q106 472 159 490T271 508Q366 508 417 453T468 284V0H348L338 51H334Q303
23 268 6T190 -12ZM240 102Q265 102 283 113T321 144V231Q243 221 213 200T183 149Q183 125 198 114T240 102ZM93 613L201 744H351L459 613L403 561L278 653H274L149 561L93 613Z" />
<glyph unicode="&#xe3;" glyph-name="atilde" horiz-adv-x="527" d="M190 -12Q122 -12 82 31T42 138Q42 216 108 260T321 319Q319 352 302 371T243 391Q212 391 180 379T112 346L59 443Q106 472 159 490T271 508Q366 508 417 453T468 284V0H348L338 51H334Q303
23 268 6T190 -12ZM240 102Q265 102 283 113T321 144V231Q243 221 213 200T183 149Q183 125 198 114T240 102ZM342 573Q318 573 300 582T266 605T238 627T213 637Q198 637 190 624T178 582L86 587Q88 664 120 701T210 739Q234 739 252 730T286 707T314 685T339
675Q368 675 374 730L466 725Q464 648 432 611T342 573Z" />
<glyph unicode="&#xe4;" glyph-name="adieresis" horiz-adv-x="527" d="M190 -12Q122 -12 82 31T42 138Q42 216 108 260T321 319Q319 352 302 371T243 391Q212 391 180 379T112 346L59 443Q106 472 159 490T271 508Q366 508 417 453T468 284V0H348L338 51H334Q303
23 268 6T190 -12ZM240 102Q265 102 283 113T321 144V231Q243 221 213 200T183 149Q183 125 198 114T240 102ZM167 569Q136 569 116 589T95 641Q95 671 115 691T167 712Q199 712 218 692T238 641Q238 610 219 590T167 569ZM385 569Q354 569 334 589T314 641Q314
671 334 691T385 712Q417 712 437 692T457 641Q457 610 437 590T385 569Z" />
<glyph unicode="&#xe5;" glyph-name="aring" horiz-adv-x="527" d="M190 -12Q122 -12 82 31T42 138Q42 216 108 260T321 319Q319 352 302 371T243 391Q212 391 180 379T112 346L59 443Q106 472 159 490T271 508Q366 508 417 453T468 284V0H348L338 51H334Q303
23 268 6T190 -12ZM240 102Q265 102 283 113T321 144V231Q243 221 213 200T183 149Q183 125 198 114T240 102ZM276 564Q211 564 178 594T144 668Q144 712 177 742T276 772Q341 772 374 742T408 668Q408 625 375 595T276 564ZM276 619Q294 619 306 632T319 668Q319
690 307 703T276 717Q258 717 246 704T233 668Q233 646 245 633T276 619Z" />
<glyph unicode="&#xe6;" glyph-name="ae" horiz-adv-x="786" d="M194 -12Q149 -12 116 8T65 62T47 137Q47 216 112 260T323 320Q321 352 304 371T246 391Q216 391 184 379T116 346L64 443Q111 472 162 490T267 508Q313 508 348 488T405 433Q437 469 472 488T552
508Q618 508 661 476T727 390T749 267Q749 247 747 231T743 205H457Q465 153 498 128T576 103Q604 103 629 113T681 139L731 44Q693 18 647 3T556 -12Q501 -12 459 9T385 65Q333 23 289 6T194 -12ZM244 102Q270 102 293 113T337 144Q326 175 323 210L322 231Q249
221 218 200T187 149Q187 125 202 114T244 102ZM457 295H624Q624 340 606 368T547 396Q513 396 488 372T457 295Z" />
<glyph unicode="&#xe7;" glyph-name="ccedilla" horiz-adv-x="467" d="M281 -12Q212 -12 157 18T69 107T36 248Q36 331 72 389T167 477T294 508Q340 508 375 493T439 455L370 360Q335 389 303 389Q250 389 219 351T187 248Q187 184 218 146T298 107Q322 107 345
117T387 143L445 47Q408 15 365 2T281 -12ZM160 -239L149 -180Q208 -177 230 -167T252 -136Q252 -121 237 -111T175 -94L223 4H309L281 -61Q319 -70 338 -87T357 -136Q357 -187 306 -211T160 -239Z" />
<glyph unicode="&#xe8;" glyph-name="egrave" horiz-adv-x="518" d="M287 -12Q216 -12 159 19T69 108T36 248Q36 329 69 387T157 476T270 508Q341 508 387 477T457 392T481 270Q481 251 479 233T475 205H178Q188 151 223 126T307 100Q360 100 414 133L463 44Q425
18 378 3T287 -12ZM177 302H356Q356 343 337 369T273 396Q239 396 212 373T177 302ZM258 572L77 729L176 826L330 644L258 572Z" />
<glyph unicode="&#xe9;" glyph-name="eacute" horiz-adv-x="518" d="M287 -12Q216 -12 159 19T69 108T36 248Q36 329 69 387T157 476T270 508Q341 508 387 477T457 392T481 270Q481 251 479 233T475 205H178Q188 151 223 126T307 100Q360 100 414 133L463 44Q425
18 378 3T287 -12ZM177 302H356Q356 343 337 369T273 396Q239 396 212 373T177 302ZM278 572L206 644L360 826L459 729L278 572Z" />
<glyph unicode="&#xea;" glyph-name="ecircumflex" horiz-adv-x="518" d="M287 -12Q216 -12 159 19T69 108T36 248Q36 329 69 387T157 476T270 508Q341 508 387 477T457 392T481 270Q481 251 479 233T475 205H178Q188 151 223 126T307 100Q360 100 414 133L463
44Q425 18 378 3T287 -12ZM177 302H356Q356 343 337 369T273 396Q239 396 212 373T177 302ZM85 613L193 744H343L451 613L395 561L270 653H266L141 561L85 613Z" />
<glyph unicode="&#xeb;" glyph-name="edieresis" horiz-adv-x="518" d="M287 -12Q216 -12 159 19T69 108T36 248Q36 329 69 387T157 476T270 508Q341 508 387 477T457 392T481 270Q481 251 479 233T475 205H178Q188 151 223 126T307 100Q360 100 414 133L463 44Q425
18 378 3T287 -12ZM177 302H356Q356 343 337 369T273 396Q239 396 212 373T177 302ZM159 569Q128 569 108 589T87 641Q87 671 107 691T159 712Q191 712 210 692T230 641Q230 610 211 590T159 569ZM377 569Q346 569 326 589T306 641Q306 671 326 691T377 712Q409
712 429 692T449 641Q449 610 429 590T377 569Z" />
<glyph unicode="&#xec;" glyph-name="igrave" horiz-adv-x="276" d="M65 0V496H212V0H65ZM128 572L-53 729L46 826L200 644L128 572Z" />
<glyph unicode="&#xed;" glyph-name="iacute" horiz-adv-x="276" d="M65 0V496H212V0H65ZM148 572L76 644L230 826L329 729L148 572Z" />
<glyph unicode="&#xee;" glyph-name="icircumflex" horiz-adv-x="276" d="M65 0V496H212V0H65ZM-45 613L63 744H213L321 613L265 561L140 653H136L11 561L-45 613Z" />
<glyph unicode="&#xef;" glyph-name="idieresis" horiz-adv-x="276" d="M65 0V496H212V0H65ZM29 569Q-2 569 -22 589T-43 641Q-43 671 -23 691T29 712Q61 712 80 692T100 641Q100 610 81 590T29 569ZM247 569Q216 569 196 589T176 641Q176 671 196 691T247 712Q279
712 299 692T319 641Q319 610 299 590T247 569Z" />
<glyph unicode="&#xf0;" glyph-name="eth" horiz-adv-x="560" d="M176 228Q176 169 206 138T278 107Q320 107 346 144T373 258Q373 270 373 281T372 303Q350 328 326 337T275 346Q232 346 204 317T176 228ZM273 -12Q211 -12 159 17T74 101T42 228Q42 300 71 350T146
428T245 455Q274 455 302 446T351 413Q325 490 266 546L124 475L86 540L202 598Q182 612 160 625T112 651L176 740Q211 722 246 701T314 655L457 727L495 662L375 601Q434 541 472 460T510 266Q510 186 482 123T400 24T273 -12Z" />
<glyph unicode="&#xf1;" glyph-name="ntilde" horiz-adv-x="572" d="M65 0V496H185L195 433H199Q231 463 269 485T358 508Q439 508 475 455T512 308V0H365V289Q365 343 351 363T304 383Q276 383 256 371T212 335V0H65ZM379 573Q355 573 337 582T303 605T275 627T250
637Q235 637 227 624T215 582L123 587Q125 664 157 701T247 739Q271 739 289 730T323 707T351 685T376 675Q405 675 411 730L503 725Q501 648 469 611T379 573Z" />
<glyph unicode="&#xf2;" glyph-name="ograve" horiz-adv-x="555" d="M278 -12Q215 -12 160 18T70 107T36 248Q36 331 70 389T159 477T278 508Q341 508 396 478T485 389T519 248Q519 166 485 108T396 19T278 -12ZM278 107Q323 107 346 145T369 248Q369 313 346
351T278 389Q232 389 210 351T187 248Q187 184 209 146T278 107ZM268 572L87 729L186 826L340 644L268 572Z" />
<glyph unicode="&#xf3;" glyph-name="oacute" horiz-adv-x="555" d="M278 -12Q215 -12 160 18T70 107T36 248Q36 331 70 389T159 477T278 508Q341 508 396 478T485 389T519 248Q519 166 485 108T396 19T278 -12ZM278 107Q323 107 346 145T369 248Q369 313 346
351T278 389Q232 389 210 351T187 248Q187 184 209 146T278 107ZM288 572L216 644L370 826L469 729L288 572Z" />
<glyph unicode="&#xf4;" glyph-name="ocircumflex" horiz-adv-x="555" d="M278 -12Q215 -12 160 18T70 107T36 248Q36 331 70 389T159 477T278 508Q341 508 396 478T485 389T519 248Q519 166 485 108T396 19T278 -12ZM278 107Q323 107 346 145T369 248Q369 313
346 351T278 389Q232 389 210 351T187 248Q187 184 209 146T278 107ZM95 613L203 744H353L461 613L405 561L280 653H276L151 561L95 613Z" />
<glyph unicode="&#xf5;" glyph-name="otilde" horiz-adv-x="555" d="M278 -12Q215 -12 160 18T70 107T36 248Q36 331 70 389T159 477T278 508Q341 508 396 478T485 389T519 248Q519 166 485 108T396 19T278 -12ZM278 107Q323 107 346 145T369 248Q369 313 346
351T278 389Q232 389 210 351T187 248Q187 184 209 146T278 107ZM344 573Q320 573 302 582T268 605T240 627T215 637Q200 637 192 624T180 582L88 587Q90 664 122 701T212 739Q236 739 254 730T288 707T316 685T341 675Q370 675 376 730L468 725Q466 648 434 611T344
573Z" />
<glyph unicode="&#xf6;" glyph-name="odieresis" horiz-adv-x="555" d="M278 -12Q215 -12 160 18T70 107T36 248Q36 331 70 389T159 477T278 508Q341 508 396 478T485 389T519 248Q519 166 485 108T396 19T278 -12ZM278 107Q323 107 346 145T369 248Q369 313 346
351T278 389Q232 389 210 351T187 248Q187 184 209 146T278 107ZM169 569Q138 569 118 589T97 641Q97 671 117 691T169 712Q201 712 220 692T240 641Q240 610 221 590T169 569ZM387 569Q356 569 336 589T316 641Q316 671 336 691T387 712Q419 712 439 692T459 641Q459
610 439 590T387 569Z" />
<glyph unicode="&#xf7;" glyph-name="divide" horiz-adv-x="528" d="M34 278V382H494V278H34ZM264 73Q230 73 207 94T183 150Q183 184 206 205T264 227Q299 227 322 206T345 150Q345 116 322 95T264 73ZM264 433Q230 433 207 454T183 510Q183 544 206 565T264
587Q299 587 322 566T345 510Q345 476 322 455T264 433Z" />
<glyph unicode="&#xf8;" glyph-name="oslash" horiz-adv-x="555" d="M178 256Q178 216 185 189L334 375Q312 394 278 394Q232 394 205 356T178 256ZM101 -25L46 17L93 75Q67 107 52 150T36 248Q36 331 70 389T159 477T278 508Q349 508 410 469L454 523L509 480L462
422Q488 389 503 346T519 248Q519 166 485 108T396 19T278 -12Q204 -12 144 28L101 -25ZM278 102Q323 102 350 140T377 240Q377 260 376 277T370 308L220 122Q243 102 278 102Z" />
<glyph unicode="&#xf9;" glyph-name="ugrave" horiz-adv-x="568" d="M214 -12Q133 -12 97 41T60 188V496H207V207Q207 154 222 134T269 113Q297 113 316 126T357 168V496H504V0H384L373 69H370Q339 32 302 10T214 -12ZM275 572L94 729L193 826L347 644L275 572Z" />
<glyph unicode="&#xfa;" glyph-name="uacute" horiz-adv-x="568" d="M214 -12Q133 -12 97 41T60 188V496H207V207Q207 154 222 134T269 113Q297 113 316 126T357 168V496H504V0H384L373 69H370Q339 32 302 10T214 -12ZM295 572L223 644L377 826L476 729L295 572Z" />
<glyph unicode="&#xfb;" glyph-name="ucircumflex" horiz-adv-x="568" d="M214 -12Q133 -12 97 41T60 188V496H207V207Q207 154 222 134T269 113Q297 113 316 126T357 168V496H504V0H384L373 69H370Q339 32 302 10T214 -12ZM102 613L210 744H360L468 613L412 561L287
653H283L158 561L102 613Z" />
<glyph unicode="&#xfc;" glyph-name="udieresis" horiz-adv-x="568" d="M214 -12Q133 -12 97 41T60 188V496H207V207Q207 154 222 134T269 113Q297 113 316 126T357 168V496H504V0H384L373 69H370Q339 32 302 10T214 -12ZM176 569Q145 569 125 589T104 641Q104
671 124 691T176 712Q208 712 227 692T247 641Q247 610 228 590T176 569ZM394 569Q363 569 343 589T323 641Q323 671 343 691T394 712Q426 712 446 692T466 641Q466 610 446 590T394 569Z" />
<glyph unicode="&#xfd;" glyph-name="yacute" horiz-adv-x="521" d="M120 -194Q98 -194 82 -191T50 -184L76 -72Q83 -73 92 -75T109 -78Q146 -78 166 -60T196 -13L203 13L12 496H160L231 283Q242 249 251 214T270 142H274Q282 177 290 212T308 283L368 496H509L337
-5Q314 -67 286 -109T219 -173T120 -194ZM277 572L205 644L359 826L458 729L277 572Z" />
<glyph unicode="&#xfe;" glyph-name="thorn" horiz-adv-x="573" d="M65 -184V701H212V530L208 459Q234 482 266 495T332 508Q426 508 480 440T534 256Q534 171 504 111T427 20T325 -12Q289 -12 262 0T208 35L212 -39V-184H65ZM291 108Q329 108 356 143T383 254Q383
388 297 388Q254 388 212 343V140Q232 122 252 115T291 108Z" />
<glyph unicode="&#xff;" glyph-name="ydieresis" horiz-adv-x="521" d="M120 -194Q98 -194 82 -191T50 -184L76 -72Q83 -73 92 -75T109 -78Q146 -78 166 -60T196 -13L203 13L12 496H160L231 283Q242 249 251 214T270 142H274Q282 177 290 212T308 283L368 496H509L337
-5Q314 -67 286 -109T219 -173T120 -194ZM158 569Q127 569 107 589T86 641Q86 671 106 691T158 712Q190 712 209 692T229 641Q229 610 210 590T158 569ZM376 569Q345 569 325 589T305 641Q305 671 325 691T376 712Q408 712 428 692T448 641Q448 610 428 590T376
569Z" />
<glyph unicode="&#x2013;" glyph-name="endash" horiz-adv-x="480" d="M43 206V300H437V206H43Z" />
<glyph unicode="&#x2014;" glyph-name="emdash" horiz-adv-x="800" d="M43 206V300H757V206H43Z" />
<glyph unicode="&#x2018;" glyph-name="quoteleft" horiz-adv-x="300" d="M149 338Q103 338 79 373T55 469Q55 540 90 594T197 683L229 619Q184 597 162 567T139 492Q141 493 144 493T149 493Q181 493 203 474T226 420Q226 383 204 361T149 338Z" />
<glyph unicode="&#x2019;" glyph-name="quoteright" horiz-adv-x="300" d="M103 352L71 416Q116 439 138 469T161 543Q158 542 152 542Q120 542 98 561T75 615Q75 653 96 675T152 697Q198 697 222 663T246 566Q246 422 103 352Z" />
<glyph unicode="&#x201a;" glyph-name="quotesinglbase" horiz-adv-x="300" d="M103 -169L71 -105Q116 -82 138 -52T161 22Q158 21 152 21Q120 21 98 40T75 94Q75 132 96 154T152 176Q198 176 222 142T246 45Q246 -99 103 -169Z" />
<glyph unicode="&#x201c;" glyph-name="quotedblleft" horiz-adv-x="537" d="M149 338Q103 338 79 373T55 469Q55 540 90 594T197 683L229 619Q184 597 162 567T139 492Q141 493 144 493T149 493Q181 493 203 474T226 420Q226 383 204 361T149 338ZM386 338Q340
338 316 373T292 469Q292 540 327 594T434 683L466 619Q421 597 399 567T376 492Q378 493 381 493T386 493Q418 493 440 474T463 420Q463 383 441 361T386 338Z" />
<glyph unicode="&#x201d;" glyph-name="quotedblright" horiz-adv-x="537" d="M103 352L71 416Q116 439 138 469T161 543Q158 542 152 542Q120 542 98 561T75 615Q75 653 96 675T152 697Q198 697 222 663T246 566Q246 422 103 352ZM340 352L308 416Q353 439 375
469T398 543Q395 542 389 542Q357 542 335 561T312 615Q312 653 333 675T389 697Q435 697 459 663T483 566Q483 422 340 352Z" />
<glyph unicode="&#x201e;" glyph-name="quotedblbase" horiz-adv-x="537" d="M103 -169L71 -105Q116 -82 138 -52T161 22Q158 21 152 21Q120 21 98 40T75 94Q75 132 96 154T152 176Q198 176 222 142T246 45Q246 -99 103 -169ZM340 -169L308 -105Q353 -82 375 -52T398
22Q395 21 389 21Q357 21 335 40T312 94Q312 132 333 154T389 176Q435 176 459 142T483 45Q483 -99 340 -169Z" />
<glyph unicode="&#x2022;" glyph-name="bullet" horiz-adv-x="345" d="M172 123Q135 123 105 141T58 191T40 262Q40 302 57 333T105 383T172 401Q210 401 240 383T287 334T305 262Q305 223 288 192T240 142T172 123Z" />
<glyph unicode="&#x2039;" glyph-name="guilsinglleft" horiz-adv-x="292" d="M183 56L49 200V304L183 448L238 404L127 252L238 100L183 56Z" />
<glyph unicode="&#x203a;" glyph-name="guilsinglright" horiz-adv-x="292" d="M109 56L54 100L165 252L54 404L109 448L243 304V200L109 56Z" />
</font>
</defs>
</svg>

Nachher

Breite:  |  Höhe:  |  Größe: 55 KiB

Binäre Datei nicht angezeigt.

Binäre Datei nicht angezeigt.

Binäre Datei nicht angezeigt.

Binäre Datei nicht angezeigt.

Datei anzeigen

@ -0,0 +1,337 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg">
<defs >
<font id="SourceSansPro" horiz-adv-x="521" ><font-face
font-family="Source Sans Pro"
units-per-em="1000"
panose-1="2 11 5 3 3 4 3 2 2 4"
ascent="984"
descent="-273"
alphabetic="0" />
<glyph unicode=" " glyph-name="space" horiz-adv-x="200" />
<glyph unicode="!" glyph-name="exclam" horiz-adv-x="289" d="M116 198L105 576L103 670H186L184 576L173 198H116ZM145 -12Q120 -12 103 5T85 50Q85 79 102 96T145 114Q169 114 186 97T204 50Q204 23 187 6T145 -12Z" />
<glyph unicode="&quot;" glyph-name="quotedbl" horiz-adv-x="426" d="M99 431L83 598L80 690H168L165 598L149 431H99ZM276 431L260 598L257 690H345L342 598L326 431H276Z" />
<glyph unicode="#" glyph-name="numbersign" horiz-adv-x="497" d="M90 0L115 204H35V261H122L140 409H55V467H147L170 650H223L200 467H333L357 650H410L386 467H467V409H380L362 261H447V204H355L330 0H277L301 204H169L144 0H90ZM176 261H308L326 409H194L176 261Z" />
<glyph unicode="$" glyph-name="dollar" horiz-adv-x="497" d="M222 -110V-11Q174 -6 129 15T52 66L90 123Q122 95 160 76T245 56Q301 56 328 84T356 159Q356 200 336 226T284 271T217 307T149 346T97 400T77 481Q77 548 117 592T222 647V748H282V649Q330 644
363 623T424 573L380 524Q352 551 326 566T258 581Q212 581 185 555T158 485Q158 449 178 426T230 385T297 351T365 312T417 254T437 165Q437 94 395 48T282 -9V-110H222Z" />
<glyph unicode="%" glyph-name="percent" horiz-adv-x="824" d="M184 254Q117 254 76 308T35 462Q35 560 76 614T184 668Q251 668 292 614T333 462Q333 362 292 308T184 254ZM184 305Q222 305 246 344T270 462Q270 540 246 578T184 617Q145 617 121 579T97 462Q97
384 121 345T184 305ZM203 -12L565 668H621L259 -12H203ZM641 -12Q574 -12 533 42T492 196Q492 294 533 348T641 402Q708 402 749 348T790 196Q790 96 749 42T641 -12ZM641 39Q679 39 703 78T727 196Q727 274 703 312T641 351Q602 351 578 313T554 196Q554 118
578 79T641 39Z" />
<glyph unicode="&amp;" glyph-name="ampersand" horiz-adv-x="609" d="M189 514Q189 487 197 458T220 399Q265 429 298 461T332 537Q332 566 318 587T270 609Q233 609 211 582T189 514ZM232 -12Q173 -12 128 11T57 76T32 170Q32 214 50 248T98 309T161 359Q141
400 130 438T118 513Q118 557 137 592T190 647T270 668Q331 668 365 632T399 538Q399 495 377 461T322 399T251 344Q283 294 327 247T417 160Q447 201 470 249T509 354H586Q567 290 539 231T471 119Q505 96 536 80T594 56L572 -12Q538 -2 500 16T421 63Q384 29
337 9T232 -12ZM112 175Q112 120 149 87T241 54Q275 54 306 68T366 107Q318 149 274 199T194 302Q160 274 136 244T112 175Z" />
<glyph unicode="&apos;" glyph-name="quotesingle" horiz-adv-x="249" d="M99 431L83 598L80 690H168L165 598L149 431H99Z" />
<glyph unicode="(" glyph-name="parenleft" horiz-adv-x="303" d="M214 -176Q152 -75 117 35T82 278Q82 410 117 521T214 732L265 708Q207 613 179 503T150 278Q150 164 178 54T265 -152L214 -176Z" />
<glyph unicode=")" glyph-name="parenright" horiz-adv-x="303" d="M89 -176L38 -152Q96 -57 124 53T153 278Q153 392 125 502T38 708L89 732Q151 632 186 521T221 278Q221 146 186 36T89 -176Z" />
<glyph unicode="*" glyph-name="asterisk" horiz-adv-x="418" d="M138 420L98 449L155 543L58 583L73 629L175 604L184 712H233L242 605L345 629L360 583L263 543L319 449L280 420L209 506L138 420Z" />
<glyph unicode="+" glyph-name="plus" horiz-adv-x="497" d="M216 104V299H34V361H216V556H281V361H463V299H281V104H216Z" />
<glyph unicode="," glyph-name="comma" horiz-adv-x="249" d="M67 -170L47 -122Q90 -103 114 -72T137 0Q135 -1 132 -1T127 -1Q103 -1 86 13T68 56Q68 83 86 98T129 114Q161 114 179 88T198 17Q198 -47 163 -95T67 -170Z" />
<glyph unicode="-" glyph-name="hyphen" horiz-adv-x="311" d="M41 219V282H271V219H41Z" />
<glyph unicode="." glyph-name="period" horiz-adv-x="249" d="M125 -12Q100 -12 83 5T65 50Q65 79 82 96T125 114Q149 114 166 97T184 50Q184 23 167 6T125 -12Z" />
<glyph unicode="/" glyph-name="slash" horiz-adv-x="350" d="M10 -160L277 710H337L70 -160H10Z" />
<glyph unicode="0" glyph-name="zero" horiz-adv-x="497" d="M249 -12Q153 -12 99 74T44 321Q44 482 98 566T249 650Q344 650 398 566T453 321Q453 161 399 75T249 -12ZM249 54Q305 54 339 117T373 321Q373 461 339 522T249 584Q193 584 159 523T124 321Q124 181
158 118T249 54Z" />
<glyph unicode="1" glyph-name="one" horiz-adv-x="497" d="M79 0V68H225V538H109V591Q153 599 185 610T244 638H307V68H439V0H79Z" />
<glyph unicode="2" glyph-name="two" horiz-adv-x="497" d="M40 0V49Q136 145 203 217T305 348T340 458Q340 513 310 548T219 583Q179 583 145 561T83 506L36 553Q76 597 121 623T229 650Q318 650 369 599T420 462Q420 402 387 341T295 212T160 65Q186 67 214
69T267 71H452V0H40Z" />
<glyph unicode="3" glyph-name="three" horiz-adv-x="497" d="M236 -12Q160 -12 109 15T26 78L68 132Q97 102 136 79T231 56Q289 56 326 88T363 173Q363 211 344 239T280 284T159 300V363Q227 363 266 379T323 422T340 482Q340 529 311 556T230 583Q190 583 157
565T94 518L50 570Q87 605 132 627T233 650Q316 650 370 608T424 488Q424 430 392 393T308 336V332Q366 319 406 278T446 170Q446 114 418 73T343 10T236 -12Z" />
<glyph unicode="4" glyph-name="four" horiz-adv-x="497" d="M104 242H304V427Q304 453 306 489T309 550H305Q293 527 280 505T253 460L104 242ZM304 0V176H17V230L290 638H382V242H469V176H382V0H304Z" />
<glyph unicode="5" glyph-name="five" horiz-adv-x="497" d="M234 -12Q158 -12 108 15T25 75L65 129Q94 101 132 79T226 56Q285 56 325 95T366 202Q366 268 329 305T230 342Q197 342 174 332T121 303L77 331L98 638H417V567H170L153 378Q176 390 199 397T251 404Q306
404 350 383T422 317T449 204Q449 135 419 87T339 13T234 -12Z" />
<glyph unicode="6" glyph-name="six" horiz-adv-x="497" d="M261 328Q230 328 194 308T128 244Q136 151 171 102T268 53Q315 53 347 91T379 193Q379 255 350 291T261 328ZM268 -12Q206 -12 156 22T77 124T48 295Q48 423 82 501T172 614T291 650Q343 650 380 631T445
582L399 531Q380 554 352 567T294 581Q249 581 212 556T152 471T126 310Q156 347 196 368T275 390Q358 390 407 341T457 193Q457 132 431 86T363 14T268 -12Z" />
<glyph unicode="7" glyph-name="seven" horiz-adv-x="497" d="M177 0Q183 120 202 215T260 395T362 567H44V638H455V587Q398 515 362 449T306 315T276 170T262 0H177Z" />
<glyph unicode="8" glyph-name="eight" horiz-adv-x="497" d="M250 -12Q190 -12 143 10T69 73T41 163Q41 205 58 237T103 294T161 335V339Q126 364 99 400T72 486Q72 535 96 572T161 629T253 650Q336 650 384 602T433 480Q433 447 419 418T385 365T345 326V322Q374
306 399 284T440 232T456 158Q456 111 431 72T359 11T250 -12ZM295 348Q327 377 344 409T362 476Q362 523 333 556T251 589Q207 589 178 561T148 486Q148 448 168 423T223 381T295 348ZM252 49Q308 49 342 80T377 161Q377 202 353 228T290 273T204 310Q166 285
141 250T115 171Q115 118 154 84T252 49Z" />
<glyph unicode="9" glyph-name="nine" horiz-adv-x="497" d="M117 445Q117 383 146 347T235 310Q267 310 302 330T369 395Q361 488 325 536T228 585Q182 585 150 547T117 445ZM205 -12Q154 -12 116 7T51 55L97 107Q117 84 144 70T202 56Q247 56 285 82T346 168T371
330Q341 292 301 270T221 248Q139 248 90 297T40 445Q40 506 66 552T134 624T228 650Q291 650 341 616T419 514T448 343Q448 215 414 137T324 24T205 -12Z" />
<glyph unicode=":" glyph-name="colon" horiz-adv-x="249" d="M125 349Q100 349 83 366T65 411Q65 440 82 457T125 475Q149 475 166 458T184 411Q184 384 167 367T125 349ZM125 -12Q100 -12 83 5T65 50Q65 79 82 96T125 114Q149 114 166 97T184 50Q184 23 167 6T125 -12Z" />
<glyph unicode=";" glyph-name="semicolon" horiz-adv-x="249" d="M125 349Q100 349 83 366T65 411Q65 440 82 457T125 475Q149 475 166 458T184 411Q184 384 167 367T125 349ZM67 -170L47 -122Q90 -103 114 -72T137 0Q135 -1 132 -1T127 -1Q103 -1 86 13T68 56Q68
83 86 98T129 114Q161 114 179 88T198 17Q198 -47 163 -95T67 -170Z" />
<glyph unicode="&lt;" glyph-name="less" horiz-adv-x="497" d="M463 131L34 299V365L463 533V462L252 384L118 334V330L252 280L463 202V131Z" />
<glyph unicode="=" glyph-name="equal" horiz-adv-x="497" d="M34 406V468H463V406H34ZM34 448V510H463V448H34Z" />
<glyph unicode="&gt;" glyph-name="greater" horiz-adv-x="497" d="M34 131V202L245 280L379 330V334L245 384L34 462V533L463 365V299L34 131Z" />
<glyph unicode="?" glyph-name="question" horiz-adv-x="425" d="M160 198Q153 245 165 281T198 347T242 404T281 458T297 517Q297 557 273 585T200 614Q167 614 138 599T85 556L38 599Q70 635 112 658T210 682Q286 682 331 639T377 522Q377 483 361 452T322 392T276
335T241 273T232 198H160ZM198 -12Q173 -12 156 5T139 50Q139 79 156 96T198 114Q223 114 240 97T258 50Q258 23 241 6T198 -12Z" />
<glyph unicode="@" glyph-name="at" horiz-adv-x="847" d="M403 -155Q305 -155 225 -114T98 7T51 203Q51 304 84 385T175 525T309 614T468 646Q569 646 642 605T756 489T796 315Q796 228 765 169T688 79T596 49Q556 49 527 68T493 125H491Q466 96 434 77T369 57Q318
57 284 93T249 198Q249 238 262 279T301 354T361 409T441 430Q467 430 487 419T521 382H523L534 422H589L550 222Q520 105 604 105Q636 105 666 129T717 200T738 312Q738 393 707 456T614 555T461 591Q394 591 332 564T219 487T140 365T111 206Q111 109 150 41T256
-64T409 -100Q455 -100 496 -87T571 -55L593 -104Q550 -130 503 -142T403 -155ZM385 113Q406 113 429 127T477 172L506 331Q492 354 477 363T442 373Q403 373 375 346T331 280T315 203Q315 155 335 134T385 113Z" />
<glyph unicode="A" glyph-name="A" horiz-adv-x="544" d="M203 367L172 267H369L338 367Q320 422 304 476T272 588H268Q253 531 237 477T203 367ZM3 0L225 656H319L541 0H452L390 200H151L88 0H3Z" />
<glyph unicode="B" glyph-name="B" horiz-adv-x="588" d="M90 0V656H285Q352 656 402 640T481 589T510 496Q510 447 486 408T414 353V349Q473 338 510 299T548 192Q548 128 517 85T429 21T299 0H90ZM173 377H270Q354 377 391 406T428 485Q428 542 390 566T274
590H173V377ZM173 66H287Q372 66 419 97T466 195Q466 256 420 284T287 313H173V66Z" />
<glyph unicode="C" glyph-name="C" horiz-adv-x="571" d="M338 -12Q256 -12 192 28T90 145T52 328Q52 434 90 510T194 627T343 668Q403 668 449 644T523 587L478 533Q452 561 419 578T344 595Q282 595 236 563T164 471T138 330Q138 248 163 188T233 94T341 61Q388
61 425 81T493 135L539 83Q500 38 451 13T338 -12Z" />
<glyph unicode="D" glyph-name="D" horiz-adv-x="615" d="M90 0V656H254Q406 656 485 572T564 331Q564 174 486 87T258 0H90ZM173 68H248Q363 68 420 137T478 331Q478 455 421 521T248 588H173V68Z" />
<glyph unicode="E" glyph-name="E" horiz-adv-x="527" d="M90 0V656H468V586H173V380H422V309H173V71H478V0H90Z" />
<glyph unicode="F" glyph-name="F" horiz-adv-x="494" d="M90 0V656H468V586H173V364H423V294H173V0H90Z" />
<glyph unicode="G" glyph-name="G" horiz-adv-x="617" d="M348 -12Q262 -12 195 28T90 145T52 328Q52 434 91 510T198 627T353 668Q421 668 467 643T542 587L496 533Q471 559 438 577T355 595Q289 595 240 563T165 471T138 330Q138 206 194 134T356 61Q391 61
423 71T474 100V271H335V340H550V64Q519 31 467 10T348 -12Z" />
<glyph unicode="H" glyph-name="H" horiz-adv-x="652" d="M90 0V656H173V381H478V656H562V0H478V309H173V0H90Z" />
<glyph unicode="I" glyph-name="I" horiz-adv-x="263" d="M90 0V656H173V0H90Z" />
<glyph unicode="J" glyph-name="J" horiz-adv-x="480" d="M212 -12Q89 -12 31 93L91 135Q113 96 141 79T204 61Q257 61 283 93T309 201V656H393V193Q393 137 375 90T316 16T212 -12Z" />
<glyph unicode="K" glyph-name="K" horiz-adv-x="579" d="M90 0V656H173V327H176L449 656H543L338 406L575 0H482L286 341L173 208V0H90Z" />
<glyph unicode="L" glyph-name="L" horiz-adv-x="486" d="M90 0V656H173V71H460V0H90Z" />
<glyph unicode="M" glyph-name="M" horiz-adv-x="727" d="M90 0V656H190L316 306Q328 272 339 238T363 169H367Q379 203 389 237T412 306L536 656H637V0H559V361Q559 405 563 458T570 555H566L514 406L390 66H335L211 406L159 555H155Q158 512 161 459T165 361V0H90Z" />
<glyph unicode="N" glyph-name="N" horiz-adv-x="647" d="M90 0V656H176L413 244L484 108H488Q485 158 482 211T478 317V656H557V0H471L233 413L162 548H158Q162 499 165 447T169 343V0H90Z" />
<glyph unicode="O" glyph-name="O" horiz-adv-x="664" d="M332 -12Q250 -12 187 30T88 149T52 331Q52 436 87 511T186 627T332 668Q415 668 478 628T577 512T613 331Q613 226 577 149T478 30T332 -12ZM332 61Q391 61 434 94T502 188T526 331Q526 453 473 524T332
595Q244 595 191 524T138 331Q138 249 162 189T230 95T332 61Z" />
<glyph unicode="P" glyph-name="P" horiz-adv-x="566" d="M90 0V656H277Q351 656 406 638T492 578T523 463Q523 360 456 310T281 260H173V0H90ZM173 328H271Q357 328 398 360T440 463Q440 534 397 561T267 589H173V328Z" />
<glyph unicode="Q" glyph-name="Q" horiz-adv-x="664" d="M332 57Q391 57 434 90T502 185T526 331Q526 453 473 524T332 595Q244 595 191 524T138 331Q138 247 162 186T230 91T332 57ZM533 -165Q442 -165 381 -121T291 -9Q220 1 166 45T82 162T52 331Q52 436 87
511T186 627T332 668Q415 668 478 628T577 512T613 331Q613 237 584 165T503 49T381 -8Q404 -51 446 -73T542 -95Q564 -95 581 -93T611 -86L627 -150Q612 -156 587 -160T533 -165Z" />
<glyph unicode="R" glyph-name="R" horiz-adv-x="569" d="M90 0V656H295Q362 656 414 639T495 581T525 472Q525 396 485 350T377 286L544 0H450L292 277H173V0H90ZM173 345H283Q360 345 401 376T442 472Q442 537 401 563T283 589H173V345Z" />
<glyph unicode="S" glyph-name="S" horiz-adv-x="534" d="M272 -12Q203 -12 144 14T42 85L92 143Q127 106 174 84T273 61Q338 61 374 90T410 168Q410 202 396 222T357 256T301 284L207 325Q176 338 146 359T95 413T74 494Q74 544 100 583T174 645T280 668Q339
668 389 646T474 587L429 533Q399 562 363 578T280 595Q225 595 192 569T158 499Q158 468 174 448T216 414T267 390L360 350Q398 334 428 312T477 257T495 175Q495 123 468 81T391 13T272 -12Z" />
<glyph unicode="T" glyph-name="T" horiz-adv-x="536" d="M226 0V586H28V656H508V586H310V0H226Z" />
<glyph unicode="U" glyph-name="U" horiz-adv-x="645" d="M323 -12Q256 -12 203 15T118 104T87 271V656H170V269Q170 190 190 145T245 80T323 61Q367 61 402 80T457 144T478 269V656H558V271Q558 166 527 104T443 15T323 -12Z" />
<glyph unicode="V" glyph-name="V" horiz-adv-x="515" d="M210 0L0 656H89L194 302Q212 244 225 194T258 85H262Q280 143 294 193T325 302L430 656H515L307 0H210Z" />
<glyph unicode="W" glyph-name="W" horiz-adv-x="786" d="M162 0L23 656H109L178 299Q187 246 197 193T216 87H220Q231 140 243 193T266 299L357 656H433L524 299Q536 247 548 194T572 87H576Q585 140 594 193T613 299L682 656H762L626 0H526L427 395Q418 433
411 469T395 544H391Q384 506 375 470T358 395L261 0H162Z" />
<glyph unicode="X" glyph-name="X" horiz-adv-x="513" d="M15 0L206 339L28 656H120L209 488Q222 466 233 444T260 393H264Q278 422 288 444T311 488L398 656H486L307 335L498 0H406L310 177Q297 201 284 226T254 282H250Q236 252 223 227T198 177L103 0H15Z" />
<glyph unicode="Y" glyph-name="Y" horiz-adv-x="476" d="M196 0V254L-1 656H88L173 471Q189 435 204 400T236 328H240Q257 365 274 400T306 471L390 656H477L280 254V0H196Z" />
<glyph unicode="Z" glyph-name="Z" horiz-adv-x="539" d="M45 0V50L390 586H76V656H494V607L148 71H497V0H45Z" />
<glyph unicode="[" glyph-name="bracketleft" horiz-adv-x="303" d="M94 -152V708H273V661H156V-105H273V-152H94Z" />
<glyph unicode="\" glyph-name="backslash" horiz-adv-x="350" d="M281 -160L14 710H73L340 -160H281Z" />
<glyph unicode="]" glyph-name="bracketright" horiz-adv-x="303" d="M31 -152V-105H147V661H31V708H209V-152H31Z" />
<glyph unicode="^" glyph-name="asciicircum" horiz-adv-x="497" d="M60 284L212 670H285L437 284H365L300 460L251 593H247L197 460L132 284H60Z" />
<glyph unicode="_" glyph-name="underscore" horiz-adv-x="500" d="M12 -126V-71H488V-126H12Z" />
<glyph unicode="`" glyph-name="grave" horiz-adv-x="542" d="M285 573L128 726L186 781L327 614L285 573Z" />
<glyph unicode="a" glyph-name="a" horiz-adv-x="504" d="M194 -12Q133 -12 93 24T52 126Q52 206 123 248T350 308Q350 339 342 367T312 412T250 430Q208 430 171 414T105 378L73 435Q107 457 156 477T264 498Q353 498 393 444T433 298V0H365L358 58H355Q321 30
281 9T194 -12ZM218 54Q253 54 284 71T350 119V254Q229 239 181 209T132 132Q132 91 157 73T218 54Z" />
<glyph unicode="b" glyph-name="b" horiz-adv-x="553" d="M297 -12Q263 -12 227 4T158 50H155L148 0H82V712H164V518L162 430Q195 459 234 478T314 498Q409 498 458 431T507 251Q507 168 478 109T401 19T297 -12ZM283 57Q343 57 382 108T422 250Q422 330 393 379T294
429Q263 429 231 412T164 363V108Q196 80 227 69T283 57Z" />
<glyph unicode="c" glyph-name="c" horiz-adv-x="456" d="M274 -12Q210 -12 158 18T76 105T46 242Q46 324 78 381T164 468T280 498Q328 498 362 481T422 441L380 387Q359 406 336 418T283 430Q239 430 205 407T151 341T131 242Q131 159 172 108T281 56Q315 56
344 70T395 105L431 50Q398 21 358 5T274 -12Z" />
<glyph unicode="d" glyph-name="d" horiz-adv-x="555" d="M248 -12Q157 -12 102 54T47 242Q47 321 76 378T154 467T258 498Q300 498 331 483T394 442L390 525V712H473V0H405L398 57H395Q367 29 329 9T248 -12ZM266 57Q330 57 390 124V378Q359 406 331 417T272
429Q233 429 202 406T151 341T132 243Q132 156 167 107T266 57Z" />
<glyph unicode="e" glyph-name="e" horiz-adv-x="496" d="M279 -12Q214 -12 161 18T77 106T46 242Q46 322 77 379T159 467T264 498Q357 498 407 436T458 270Q458 257 458 245T455 223H127Q132 146 175 100T289 54Q324 54 353 64T410 92L439 38Q408 18 369 3T279
-12ZM126 282H386Q386 356 355 394T266 433Q215 433 175 394T126 282Z" />
<glyph unicode="f" glyph-name="f" horiz-adv-x="292" d="M96 0V419H30V481L96 486V563Q96 637 130 680T238 724Q261 724 282 720T319 708L301 645Q274 657 246 657Q178 657 178 563V486H281V419H178V0H96Z" />
<glyph unicode="g" glyph-name="g" horiz-adv-x="504" d="M246 -224Q157 -224 101 -190T45 -93Q45 -62 64 -34T116 17V21Q98 32 86 52T73 100Q73 131 90 154T126 190V194Q102 214 83 248T63 325Q63 378 88 417T155 477T246 498Q266 498 284 495T315 486H484V423H384Q401
407 412 381T424 323Q424 271 400 233T336 175T246 154Q207 154 173 171Q160 160 151 147T142 113Q142 90 160 75T228 60H322Q407 60 449 33T492 -56Q492 -101 462 -139T377 -200T246 -224ZM246 209Q288 209 318 240T349 325Q349 378 319 408T246 438Q203 438 173
408T143 325Q143 272 173 241T246 209ZM258 -167Q328 -167 370 -137T412 -68Q412 -34 387 -21T314 -8H230Q216 -8 200 -6T167 0Q141 -19 129 -40T117 -82Q117 -121 154 -144T258 -167Z" />
<glyph unicode="h" glyph-name="h" horiz-adv-x="544" d="M82 0V712H164V518L161 418Q196 451 234 474T323 498Q400 498 435 450T471 308V0H389V297Q389 365 367 396T297 427Q260 427 231 408T164 352V0H82Z" />
<glyph unicode="i" glyph-name="i" horiz-adv-x="246" d="M82 0V486H164V0H82ZM124 586Q100 586 85 600T69 640Q69 664 84 679T124 694Q148 694 163 679T179 640Q179 615 164 601T124 586Z" />
<glyph unicode="j" glyph-name="j" horiz-adv-x="247" d="M32 -217Q10 -217 -8 -213T-40 -204L-23 -142Q-14 -145 -2 -147T23 -150Q59 -150 71 -125T83 -55V486H165V-55Q165 -129 135 -173T32 -217ZM123 586Q99 586 84 600T68 640Q68 664 83 679T123 694Q147 694
162 679T178 640Q178 615 163 601T123 586Z" />
<glyph unicode="k" glyph-name="k" horiz-adv-x="495" d="M82 0V712H163V230H166L373 486H464L301 291L486 0H396L254 234L163 128V0H82Z" />
<glyph unicode="l" glyph-name="l" horiz-adv-x="255" d="M169 -12Q123 -12 103 16T82 98V712H164V92Q164 73 171 65T187 56Q191 56 194 56T205 58L216 -4Q208 -8 197 -10T169 -12Z" />
<glyph unicode="m" glyph-name="m" horiz-adv-x="829" d="M82 0V486H150L157 416H160Q192 451 230 474T311 498Q367 498 398 474T445 405Q483 446 522 472T605 498Q680 498 716 450T753 308V0H671V297Q671 365 649 396T581 427Q527 427 459 352V0H377V297Q377
365 355 396T286 427Q232 427 164 352V0H82Z" />
<glyph unicode="n" glyph-name="n" horiz-adv-x="547" d="M82 0V486H150L157 416H160Q195 451 234 474T323 498Q400 498 435 450T471 308V0H389V297Q389 365 367 396T297 427Q260 427 231 408T164 352V0H82Z" />
<glyph unicode="o" glyph-name="o" horiz-adv-x="542" d="M271 -12Q212 -12 161 18T78 105T46 242Q46 324 77 381T160 468T271 498Q331 498 382 468T464 381T496 242Q496 162 465 105T382 18T271 -12ZM271 56Q334 56 372 107T411 242Q411 326 373 378T271 430Q209
430 170 378T131 242Q131 159 170 108T271 56Z" />
<glyph unicode="p" glyph-name="p" horiz-adv-x="555" d="M82 -205V486H150L157 430H160Q193 458 232 478T315 498Q409 498 458 431T507 250Q507 168 478 109T401 19T297 -12Q263 -12 230 3T162 44L164 -41V-205H82ZM283 57Q343 57 382 108T422 250Q422 330 393
379T294 429Q263 429 232 412T164 363V108Q197 80 228 69T283 57Z" />
<glyph unicode="q" glyph-name="q" horiz-adv-x="555" d="M390 -205V-32L394 56Q365 28 328 8T248 -12Q157 -12 102 54T47 242Q47 321 76 378T154 467T258 498Q300 498 332 484T397 440H399L407 486H473V-205H390ZM266 57Q330 57 390 124V378Q359 406 331 417T272
429Q233 429 202 406T151 341T132 243Q132 156 167 107T266 57Z" />
<glyph unicode="r" glyph-name="r" horiz-adv-x="347" d="M82 0V486H150L157 398H160Q185 444 221 471T298 498Q327 498 350 488L334 416Q322 420 312 422T287 424Q256 424 223 399T164 312V0H82Z" />
<glyph unicode="s" glyph-name="s" horiz-adv-x="419" d="M209 -12Q157 -12 110 7T28 55L69 110Q101 85 135 69T212 52Q260 52 284 74T308 128Q308 153 292 170T250 198T197 220Q163 233 130 249T76 292T55 360Q55 419 99 458T223 498Q268 498 307 482T374 443L334
391Q309 410 282 422T223 434Q177 434 156 413T134 364Q134 341 149 327T188 302T239 280Q274 267 308 251T364 207T387 133Q387 94 367 61T307 8T209 -12Z" />
<glyph unicode="t" glyph-name="t" horiz-adv-x="338" d="M235 -12Q157 -12 127 33T96 150V419H24V481L100 486L110 622H179V486H310V419H179V149Q179 104 195 80T254 55Q267 55 282 59T309 68L325 6Q305 -1 282 -6T235 -12Z" />
<glyph unicode="u" glyph-name="u" horiz-adv-x="544" d="M224 -12Q147 -12 111 36T75 178V486H158V189Q158 121 179 90T249 59Q287 59 316 78T380 141V486H462V0H394L387 76H384Q350 36 312 12T224 -12Z" />
<glyph unicode="v" glyph-name="v" horiz-adv-x="467" d="M187 0L12 486H97L189 210Q200 174 211 138T234 67H238Q249 102 260 138T282 210L374 486H455L283 0H187Z" />
<glyph unicode="w" glyph-name="w" horiz-adv-x="718" d="M159 0L24 486H108L180 205Q188 171 195 138T209 70H213Q221 104 229 137T246 205L321 486H401L477 205Q486 171 494 138T511 70H515Q523 104 530 137T545 205L616 486H694L564 0H464L394 261Q385 296
378 330T361 401H357Q349 364 341 330T323 260L255 0H159Z" />
<glyph unicode="x" glyph-name="x" horiz-adv-x="446" d="M14 0L173 254L26 486H115L180 379Q191 360 203 339T228 298H232Q243 318 254 339T276 379L335 486H421L274 245L432 0H343L272 113Q259 135 246 157T219 200H215Q202 179 190 158T166 113L100 0H14Z" />
<glyph unicode="y" glyph-name="y" horiz-adv-x="467" d="M90 -209Q74 -209 60 -206T33 -199L49 -134Q57 -136 67 -138T86 -141Q127 -141 154 -112T196 -37L207 -1L12 486H97L196 217Q207 186 219 150T243 80H247Q258 113 268 149T288 217L375 486H455L272 -40Q255
-88 232 -126T174 -186T90 -209Z" />
<glyph unicode="z" glyph-name="z" horiz-adv-x="425" d="M31 0V44L287 419H59V486H391V442L135 67H399V0H31Z" />
<glyph unicode="{" glyph-name="braceleft" horiz-adv-x="303" d="M228 -152Q169 -152 140 -124T111 -19Q111 36 115 80T120 174Q120 203 103 227T34 252V304Q85 305 102 329T120 381Q120 432 116 476T111 575Q111 652 140 680T228 708H273V661H246Q206 661 192
640T178 570Q178 524 181 482T184 389Q184 340 170 315T124 280V276Q156 267 170 241T184 167Q184 116 181 74T178 -14Q178 -63 192 -84T246 -105H273V-152H228Z" />
<glyph unicode="|" glyph-name="bar" horiz-adv-x="241" d="M92 -250V750H150V-250H92Z" />
<glyph unicode="}" glyph-name="braceright" horiz-adv-x="303" d="M31 -152V-105H57Q98 -105 111 -84T125 -14Q125 32 123 74T120 167Q120 215 133 241T179 276V280Q147 289 134 314T120 389Q120 440 122 482T125 570Q125 619 112 640T57 661H31V708H75Q135 708
163 680T192 575Q192 520 188 476T183 381Q183 353 201 329T269 304V252Q219 251 201 227T183 174Q183 124 187 80T192 -19Q192 -96 164 -124T75 -152H31Z" />
<glyph unicode="~" glyph-name="asciitilde" horiz-adv-x="497" d="M336 257Q306 257 283 269T239 299T200 328T159 341Q137 341 118 327T82 280L36 313Q63 361 96 382T161 403Q191 403 214 391T258 361T297 332T338 319Q360 319 379 333T415 380L461 346Q434
299 401 278T336 257Z" />
<glyph unicode="&#xa0;" glyph-name="space" horiz-adv-x="200" />
<glyph unicode="&#xa1;" glyph-name="exclamdown" horiz-adv-x="289" d="M103 -184L105 -90L116 288H173L184 -90L186 -184H103ZM145 372Q120 372 103 390T85 436Q85 463 102 480T145 498Q169 498 186 481T204 436Q204 408 187 390T145 372Z" />
<glyph unicode="&#xa2;" glyph-name="cent" horiz-adv-x="497" d="M262 -33V71Q173 82 117 143T61 310Q61 379 87 429T160 509T262 547V653H314V550Q358 548 390 531T445 492L405 440Q385 458 363 469T314 482V138Q346 140 372 153T418 185L454 133Q425 107 389
90T314 70V-33H262ZM143 310Q143 243 174 199T262 142V477Q207 464 175 420T143 310Z" />
<glyph unicode="&#xa3;" glyph-name="sterling" horiz-adv-x="497" d="M54 0V50Q105 78 132 126T160 230Q160 244 158 258T153 285H53V337L120 341H138Q128 373 120 404T111 466Q111 551 162 600T297 650Q350 650 388 629T452 575L404 528Q385 551 361 566T303
581Q249 581 221 549T192 464Q192 433 199 403T216 341H375V285H229Q231 272 232 258T234 229Q234 177 218 142T172 75V71H453V0H54Z" />
<glyph unicode="&#xa4;" glyph-name="currency" horiz-adv-x="497" d="M70 103L26 148L90 213Q54 262 54 329Q54 397 90 446L26 512L70 557L138 487Q186 524 249 524Q311 524 359 487L427 557L471 512L406 446Q423 423 433 394T443 329Q443 295 433 266T406 213L471
148L427 103L359 172Q336 153 307 144T249 134Q185 134 138 172L70 103ZM249 195Q297 195 332 232T367 329Q367 389 332 426T249 463Q200 463 165 426T130 329Q130 269 165 232T249 195Z" />
<glyph unicode="&#xa5;" glyph-name="yen" horiz-adv-x="497" d="M207 0V158H45V206H207V271H45V318H186L23 638H109L187 467Q202 434 216 401T247 332H251Q268 367 282 400T312 467L390 638H474L310 318H452V271H289V206H452V158H289V0H207Z" />
<glyph unicode="&#xa6;" glyph-name="brokenbar" horiz-adv-x="241" d="M92 291V750H150V291H92ZM92 -250V214H150V-250H92Z" />
<glyph unicode="&#xa7;" glyph-name="section" horiz-adv-x="497" d="M236 -64Q183 -64 139 -45T63 7L113 52Q138 28 167 14T236 0Q276 0 298 20T321 69Q321 98 301 116T250 149T183 179T117 214T65 266T45 343Q45 387 69 419T131 472Q116 488 108 508T99 554Q99
606 137 645T251 684Q298 684 337 667T405 627L365 574Q341 594 314 607T254 620Q212 620 194 602T175 557Q175 530 195 512T246 479T313 449T380 413T432 361T452 284Q452 237 429 207T367 155Q381 139 389 119T397 73Q397 34 377 3T320 -46T236 -64ZM117 348Q117
315 136 294T187 256T253 226T320 193Q349 207 364 226T380 278Q380 312 361 334T310 372T244 402T178 435Q150 419 134 399T117 348Z" />
<glyph unicode="&#xa8;" glyph-name="dieresis" horiz-adv-x="542" d="M175 587Q153 587 139 601T125 637Q125 658 139 672T175 687Q196 687 210 673T224 637Q224 616 210 602T175 587ZM367 587Q346 587 332 601T318 637Q318 658 332 672T367 687Q389 687 403
673T417 637Q417 616 403 602T367 587Z" />
<glyph unicode="&#xa9;" glyph-name="copyright" horiz-adv-x="744" d="M372 -11Q307 -11 249 12T145 79T75 185T49 323Q49 399 74 460T145 564T248 630T372 653Q437 653 495 630T599 564T669 460T695 323Q695 247 670 185T599 80T496 13T372 -11ZM372 31Q448
31 510 67T610 170T648 323Q648 410 611 475T511 576T372 612Q297 612 234 576T134 475T96 323Q96 236 133 170T234 68T372 31ZM380 125Q330 125 289 148T223 216T198 323Q198 381 224 423T292 489T383 512Q425 512 454 496T508 455L473 416Q453 436 433 446T386
457Q331 457 298 420T264 323Q264 257 296 219T383 180Q415 180 439 192T485 224L515 182Q487 158 456 142T380 125Z" />
<glyph unicode="&#xaa;" glyph-name="ordfeminine" horiz-adv-x="345" d="M136 387Q92 387 65 412T37 481Q37 534 85 562T236 600Q235 632 222 652T174 673Q148 673 121 663T73 639L50 682Q75 697 109 710T183 724Q243 724 270 689T298 591V395H248L241 432H237Q217
414 192 401T136 387ZM154 436Q193 436 236 476V561Q159 553 129 534T98 486Q98 461 113 449T154 436Z" />
<glyph unicode="&#xab;" glyph-name="guillemotleft" horiz-adv-x="429" d="M181 66L45 221V283L181 438L217 408L99 252L217 94L181 66ZM339 66L203 221V283L339 438L375 408L257 252L375 94L339 66Z" />
<glyph unicode="&#xac;" glyph-name="logicalnot" horiz-adv-x="497" d="M397 104V299H34V361H463V104H397Z" />
<glyph unicode="&#xad;" glyph-name="hyphen" horiz-adv-x="311" d="M41 219V282H271V219H41Z" />
<glyph unicode="&#xae;" glyph-name="registered" horiz-adv-x="423" d="M211 319Q160 319 117 344T49 413T23 516Q23 575 48 619T117 688T211 713Q263 713 306 688T374 619T400 516Q400 458 375 414T306 344T211 319ZM211 356Q253 356 286 376T340 432T360 516Q360
563 340 599T287 656T211 677Q169 677 136 657T83 600T63 516Q63 469 82 433T135 376T211 356ZM139 417V620H215Q247 620 270 606T293 555Q293 537 283 522T256 500L302 417H256L221 487H180V417H139ZM180 519H206Q249 519 249 553Q249 568 240 577T208 586H180V519Z"
/>
<glyph unicode="&#xaf;" glyph-name="overscore" horiz-adv-x="542" d="M138 601V658H404V601H138Z" />
<glyph unicode="&#xb0;" glyph-name="degree" horiz-adv-x="331" d="M166 429Q133 429 105 444T59 489T41 556Q41 615 78 650T166 685Q216 685 253 650T291 556Q291 518 274 489T228 445T166 429ZM166 475Q199 475 220 498T241 556Q241 593 220 616T166 639Q133
639 112 616T91 556Q91 521 112 498T166 475Z" />
<glyph unicode="&#xb1;" glyph-name="plusminus" horiz-adv-x="497" d="M216 127V304H34V366H216V556H281V366H463V304H281V127H216ZM34 0V62H463V0H34Z" />
<glyph unicode="&#xb2;" glyph-name="two.sups" horiz-adv-x="367" d="M52 395V432Q143 514 190 565T237 661Q237 699 217 721T162 743Q137 743 116 727T78 686L40 721Q63 755 96 776T170 797Q229 797 264 765T300 671Q300 634 281 600T230 529T155 450H320V395H52Z" />
<glyph unicode="&#xb3;" glyph-name="three.sups" horiz-adv-x="367" d="M180 383Q133 383 96 404T35 459L78 492Q96 465 121 450T177 434Q209 434 232 452T255 504Q255 538 223 555T134 573V614Q184 614 212 634T240 684Q240 712 221 729T169 746Q147 746 127
733T90 699L51 733Q77 762 108 779T179 797Q229 797 266 770T303 692Q303 658 284 634T235 596Q268 588 293 564T319 500Q319 446 278 415T180 383Z" />
<glyph unicode="&#xb4;" glyph-name="acute" horiz-adv-x="542" d="M257 573L215 614L356 781L414 726L257 573Z" />
<glyph unicode="&#xb5;" glyph-name="mu" horiz-adv-x="562" d="M82 -179V486H164V189Q164 125 185 92T253 59Q286 59 317 76T382 154V486H465Q464 388 462 286T459 95Q459 75 469 66T495 56Q508 56 524 62L535 0Q525 -5 511 -8T477 -12Q436 -12 415 10T389 82H387Q361
36 327 13T252 -10Q223 -10 199 -1T158 37Q159 -11 159 -45T161 -109T165 -179H82Z" />
<glyph unicode="&#xb6;" glyph-name="paragraph" horiz-adv-x="560" d="M380 -80V656H464V-80H380ZM293 226Q221 226 164 249T74 320T41 443Q41 522 72 568T158 635T282 656H326V226H293Z" />
<glyph unicode="&#xb7;" glyph-name="middot" horiz-adv-x="249" d="M125 259Q100 259 83 276T65 321Q65 350 82 367T125 385Q149 385 166 368T184 321Q184 294 167 277T125 259Z" />
<glyph unicode="&#xb8;" glyph-name="cedilla" horiz-adv-x="542" d="M190 -226L182 -186Q245 -181 268 -170T291 -136Q291 -116 274 -105T214 -88L258 3H311L282 -64Q317 -72 336 -88T355 -135Q355 -178 313 -200T190 -226Z" />
<glyph unicode="&#xb9;" glyph-name="one.sups" horiz-adv-x="367" d="M172 395V703H87V745Q120 751 142 760T184 785H236V395H172Z" />
<glyph unicode="&#xba;" glyph-name="ordmasculine" horiz-adv-x="365" d="M182 387Q141 387 106 407T51 464T30 555Q30 609 50 647T106 704T182 724Q223 724 257 705T313 647T334 555Q334 502 313 465T258 407T182 387ZM182 438Q223 438 246 470T270 555Q270
608 247 640T182 673Q141 673 117 641T93 555Q93 503 117 471T182 438Z" />
<glyph unicode="&#xbb;" glyph-name="guillemotright" horiz-adv-x="429" d="M89 66L54 94L172 252L54 408L89 438L226 283V221L89 66ZM247 66L212 94L330 252L212 408L247 438L384 283V221L247 66Z" />
<glyph unicode="&#xbc;" glyph-name="onequarter" horiz-adv-x="781" d="M148 266V574H63V616Q96 622 118 631T160 656H212V266H148ZM180 -12L542 668H598L236 -12H180ZM522 150H633V220L637 329H633L583 248L522 150ZM633 0V104H455V137L619 390H691V150H749V104H691V0H633Z"
/>
<glyph unicode="&#xbd;" glyph-name="onehalf" horiz-adv-x="808" d="M148 266V574H63V616Q96 622 118 631T160 656H212V266H148ZM160 -12L522 668H578L216 -12H160ZM493 0V37Q584 119 631 170T678 266Q678 304 658 326T603 348Q578 348 557 332T519 291L481 326Q504
360 537 381T611 402Q670 402 705 370T741 276Q741 239 722 205T671 134T596 55H761V0H493Z" />
<glyph unicode="&#xbe;" glyph-name="threequarters" horiz-adv-x="796" d="M179 254Q132 254 95 275T34 330L77 363Q95 336 120 321T176 305Q208 305 231 323T254 375Q254 409 222 426T133 444V485Q183 485 211 505T239 555Q239 583 220 600T168 617Q146 617
126 604T89 570L50 604Q76 633 107 650T178 668Q228 668 265 641T302 563Q302 529 283 505T234 467Q267 459 292 435T318 371Q318 317 277 286T179 254ZM218 -12L580 668H636L274 -12H218ZM537 150H648V220L652 329H648L598 248L537 150ZM648 0V104H470V137L634
390H706V150H764V104H706V0H648Z" />
<glyph unicode="&#xbf;" glyph-name="questiondown" horiz-adv-x="425" d="M215 -196Q139 -196 94 -153T48 -36Q48 3 64 34T103 94T149 151T184 213T192 288H265Q272 241 260 205T227 139T183 82T144 28T128 -31Q128 -71 152 -99T225 -127Q258 -127 287 -112T339
-70L387 -113Q355 -148 313 -172T215 -196ZM227 372Q202 372 185 390T167 436Q167 463 184 480T227 498Q251 498 268 481T286 436Q286 408 269 390T227 372Z" />
<glyph unicode="&#xc0;" glyph-name="Agrave" horiz-adv-x="544" d="M203 367L172 267H369L338 367Q320 422 304 476T272 588H268Q253 531 237 477T203 367ZM3 0L225 656H319L541 0H452L390 200H151L88 0H3ZM288 697L136 812L183 867L325 739L288 697Z" />
<glyph unicode="&#xc1;" glyph-name="Aacute" horiz-adv-x="544" d="M203 367L172 267H369L338 367Q320 422 304 476T272 588H268Q253 531 237 477T203 367ZM3 0L225 656H319L541 0H452L390 200H151L88 0H3ZM254 697L217 739L359 867L406 812L254 697Z" />
<glyph unicode="&#xc2;" glyph-name="Acircumflex" horiz-adv-x="544" d="M203 367L172 267H369L338 367Q320 422 304 476T272 588H268Q253 531 237 477T203 367ZM3 0L225 656H319L541 0H452L390 200H151L88 0H3ZM159 699L123 725L228 838H314L419 725L383 699L273
792H269L159 699Z" />
<glyph unicode="&#xc3;" glyph-name="Atilde" horiz-adv-x="544" d="M203 367L172 267H369L338 367Q320 422 304 476T272 588H268Q253 531 237 477T203 367ZM3 0L225 656H319L541 0H452L390 200H151L88 0H3ZM346 709Q318 709 298 719T262 744T231 769T198 780Q179
780 166 763T150 714L94 718Q97 775 124 808T196 841Q224 841 244 831T280 806T311 781T344 770Q384 770 392 836L448 832Q445 774 418 742T346 709Z" />
<glyph unicode="&#xc4;" glyph-name="Adieresis" horiz-adv-x="544" d="M203 367L172 267H369L338 367Q320 422 304 476T272 588H268Q253 531 237 477T203 367ZM3 0L225 656H319L541 0H452L390 200H151L88 0H3ZM168 715Q147 715 133 729T119 764Q119 786 133 799T168
813Q190 813 203 800T217 764Q217 743 204 729T168 715ZM374 715Q352 715 339 729T325 764Q325 786 338 799T374 813Q395 813 409 800T423 764Q423 743 409 729T374 715Z" />
<glyph unicode="&#xc5;" glyph-name="Aring" horiz-adv-x="544" d="M203 367L172 267H369L338 367Q320 422 304 476T272 588H268Q253 531 237 477T203 367ZM3 0L225 656H319L541 0H452L390 200H151L88 0H3ZM271 699Q229 699 202 724T174 789Q174 830 201 855T271
880Q312 880 340 855T368 789Q368 749 340 724T271 699ZM271 735Q291 735 306 749T322 789Q322 815 307 829T271 843Q249 843 234 829T219 789Q219 763 234 749T271 735Z" />
<glyph unicode="&#xc6;" glyph-name="AE" horiz-adv-x="822" d="M290 376L229 258H401V590H397Q344 483 290 376ZM8 0L352 656H763V586H485V380H717V309H485V71H773V0H401V191H195L96 0H8Z" />
<glyph unicode="&#xc7;" glyph-name="Ccedilla" horiz-adv-x="571" d="M338 -12Q256 -12 192 28T90 145T52 328Q52 434 90 510T194 627T343 668Q403 668 449 644T523 587L478 533Q452 561 419 578T344 595Q282 595 236 563T164 471T138 330Q138 248 163 188T233
94T341 61Q388 61 425 81T493 135L539 83Q500 38 451 13T338 -12ZM256 -226L248 -186Q311 -181 334 -170T357 -136Q357 -116 340 -105T280 -88L324 3H377L348 -64Q383 -72 402 -88T421 -135Q421 -178 379 -200T256 -226Z" />
<glyph unicode="&#xc8;" glyph-name="Egrave" horiz-adv-x="527" d="M90 0V656H468V586H173V380H422V309H173V71H478V0H90ZM307 697L155 812L202 867L344 739L307 697Z" />
<glyph unicode="&#xc9;" glyph-name="Eacute" horiz-adv-x="527" d="M90 0V656H468V586H173V380H422V309H173V71H478V0H90ZM273 697L236 739L378 867L425 812L273 697Z" />
<glyph unicode="&#xca;" glyph-name="Ecircumflex" horiz-adv-x="527" d="M90 0V656H468V586H173V380H422V309H173V71H478V0H90ZM178 699L142 725L247 838H333L438 725L402 699L292 792H288L178 699Z" />
<glyph unicode="&#xcb;" glyph-name="Edieresis" horiz-adv-x="527" d="M90 0V656H468V586H173V380H422V309H173V71H478V0H90ZM187 715Q166 715 152 729T138 764Q138 786 152 799T187 813Q209 813 222 800T236 764Q236 743 223 729T187 715ZM393 715Q371 715 358
729T344 764Q344 786 357 799T393 813Q414 813 428 800T442 764Q442 743 428 729T393 715Z" />
<glyph unicode="&#xcc;" glyph-name="Igrave" horiz-adv-x="263" d="M90 0V656H173V0H90ZM149 697L-3 812L44 867L186 739L149 697Z" />
<glyph unicode="&#xcd;" glyph-name="Iacute" horiz-adv-x="263" d="M90 0V656H173V0H90ZM115 697L78 739L220 867L267 812L115 697Z" />
<glyph unicode="&#xce;" glyph-name="Icircumflex" horiz-adv-x="263" d="M90 0V656H173V0H90ZM20 699L-16 725L89 838H175L280 725L244 699L134 792H130L20 699Z" />
<glyph unicode="&#xcf;" glyph-name="Idieresis" horiz-adv-x="263" d="M90 0V656H173V0H90ZM29 715Q8 715 -6 729T-20 764Q-20 786 -6 799T29 813Q51 813 64 800T78 764Q78 743 65 729T29 715ZM235 715Q213 715 200 729T186 764Q186 786 199 799T235 813Q256
813 270 800T284 764Q284 743 270 729T235 715Z" />
<glyph unicode="&#xd0;" glyph-name="Eth" horiz-adv-x="638" d="M112 0V321H33V364L112 368V656H276Q428 656 507 572T586 331Q586 174 508 87T280 0H112ZM195 68H270Q385 68 442 137T500 331Q500 455 443 521T270 588H195V368H344V321H195V68Z" />
<glyph unicode="&#xd1;" glyph-name="Ntilde" horiz-adv-x="647" d="M90 0V656H176L413 244L484 108H488Q485 158 482 211T478 317V656H557V0H471L233 413L162 548H158Q162 499 165 447T169 343V0H90ZM409 709Q381 709 361 719T325 744T294 769T261 780Q242 780
229 763T213 714L157 718Q160 775 187 808T259 841Q287 841 307 831T343 806T374 781T407 770Q447 770 455 836L511 832Q508 774 481 742T409 709Z" />
<glyph unicode="&#xd2;" glyph-name="Ograve" horiz-adv-x="664" d="M332 -12Q250 -12 187 30T88 149T52 331Q52 436 87 511T186 627T332 668Q415 668 478 628T577 512T613 331Q613 226 577 149T478 30T332 -12ZM332 61Q391 61 434 94T502 188T526 331Q526 453
473 524T332 595Q244 595 191 524T138 331Q138 249 162 189T230 95T332 61ZM349 697L197 812L244 867L386 739L349 697Z" />
<glyph unicode="&#xd3;" glyph-name="Oacute" horiz-adv-x="664" d="M332 -12Q250 -12 187 30T88 149T52 331Q52 436 87 511T186 627T332 668Q415 668 478 628T577 512T613 331Q613 226 577 149T478 30T332 -12ZM332 61Q391 61 434 94T502 188T526 331Q526 453
473 524T332 595Q244 595 191 524T138 331Q138 249 162 189T230 95T332 61ZM315 697L278 739L420 867L467 812L315 697Z" />
<glyph unicode="&#xd4;" glyph-name="Ocircumflex" horiz-adv-x="664" d="M332 -12Q250 -12 187 30T88 149T52 331Q52 436 87 511T186 627T332 668Q415 668 478 628T577 512T613 331Q613 226 577 149T478 30T332 -12ZM332 61Q391 61 434 94T502 188T526 331Q526
453 473 524T332 595Q244 595 191 524T138 331Q138 249 162 189T230 95T332 61ZM220 699L184 725L289 838H375L480 725L444 699L334 792H330L220 699Z" />
<glyph unicode="&#xd5;" glyph-name="Otilde" horiz-adv-x="664" d="M332 -12Q250 -12 187 30T88 149T52 331Q52 436 87 511T186 627T332 668Q415 668 478 628T577 512T613 331Q613 226 577 149T478 30T332 -12ZM332 61Q391 61 434 94T502 188T526 331Q526 453
473 524T332 595Q244 595 191 524T138 331Q138 249 162 189T230 95T332 61ZM407 709Q379 709 359 719T323 744T292 769T259 780Q240 780 227 763T211 714L155 718Q158 775 185 808T257 841Q285 841 305 831T341 806T372 781T405 770Q445 770 453 836L509 832Q506
774 479 742T407 709Z" />
<glyph unicode="&#xd6;" glyph-name="Odieresis" horiz-adv-x="664" d="M332 -12Q250 -12 187 30T88 149T52 331Q52 436 87 511T186 627T332 668Q415 668 478 628T577 512T613 331Q613 226 577 149T478 30T332 -12ZM332 61Q391 61 434 94T502 188T526 331Q526
453 473 524T332 595Q244 595 191 524T138 331Q138 249 162 189T230 95T332 61ZM229 715Q208 715 194 729T180 764Q180 786 194 799T229 813Q251 813 264 800T278 764Q278 743 265 729T229 715ZM435 715Q413 715 400 729T386 764Q386 786 399 799T435 813Q456 813
470 800T484 764Q484 743 470 729T435 715Z" />
<glyph unicode="&#xd7;" glyph-name="multiply" horiz-adv-x="497" d="M94 126L50 171L205 330L50 488L94 533L249 374L403 533L447 488L292 330L447 171L403 126L249 286L94 126Z" />
<glyph unicode="&#xd8;" glyph-name="Oslash" horiz-adv-x="664" d="M96 -30L50 6L120 97Q89 141 72 200T55 331Q55 436 90 511T189 627T335 668Q439 668 511 605L573 686L619 651L550 562Q582 519 599 461T616 331Q616 226 580 149T481 30T335 -12Q231 -12 160
53L96 -30ZM141 331Q141 283 149 242T174 168L462 541Q411 595 335 595Q247 595 194 524T141 331ZM335 61Q394 61 437 94T505 188T529 331Q529 379 521 419T496 491L209 117Q259 61 335 61Z" />
<glyph unicode="&#xd9;" glyph-name="Ugrave" horiz-adv-x="645" d="M323 -12Q256 -12 203 15T118 104T87 271V656H170V269Q170 190 190 145T245 80T323 61Q367 61 402 80T457 144T478 269V656H558V271Q558 166 527 104T443 15T323 -12ZM339 697L187 812L234 867L376
739L339 697Z" />
<glyph unicode="&#xda;" glyph-name="Uacute" horiz-adv-x="645" d="M323 -12Q256 -12 203 15T118 104T87 271V656H170V269Q170 190 190 145T245 80T323 61Q367 61 402 80T457 144T478 269V656H558V271Q558 166 527 104T443 15T323 -12ZM305 697L268 739L410 867L457
812L305 697Z" />
<glyph unicode="&#xdb;" glyph-name="Ucircumflex" horiz-adv-x="645" d="M323 -12Q256 -12 203 15T118 104T87 271V656H170V269Q170 190 190 145T245 80T323 61Q367 61 402 80T457 144T478 269V656H558V271Q558 166 527 104T443 15T323 -12ZM210 699L174 725L279
838H365L470 725L434 699L324 792H320L210 699Z" />
<glyph unicode="&#xdc;" glyph-name="Udieresis" horiz-adv-x="645" d="M323 -12Q256 -12 203 15T118 104T87 271V656H170V269Q170 190 190 145T245 80T323 61Q367 61 402 80T457 144T478 269V656H558V271Q558 166 527 104T443 15T323 -12ZM219 715Q198 715 184
729T170 764Q170 786 184 799T219 813Q241 813 254 800T268 764Q268 743 255 729T219 715ZM425 715Q403 715 390 729T376 764Q376 786 389 799T425 813Q446 813 460 800T474 764Q474 743 460 729T425 715Z" />
<glyph unicode="&#xdd;" glyph-name="Yacute" horiz-adv-x="476" d="M196 0V254L-1 656H88L173 471Q189 435 204 400T236 328H240Q257 365 274 400T306 471L390 656H477L280 254V0H196ZM221 697L184 739L326 867L373 812L221 697Z" />
<glyph unicode="&#xde;" glyph-name="Thorn" horiz-adv-x="583" d="M90 0V656H173V546H291Q364 546 418 528T502 467T533 353Q533 249 466 200T291 150H173V0H90ZM173 218H281Q367 218 408 250T450 353Q450 424 408 451T281 478H173V218Z" />
<glyph unicode="&#xdf;" glyph-name="germandbls" horiz-adv-x="576" d="M387 -12Q346 -12 312 1T246 37L279 95Q331 52 385 52Q426 52 447 76T469 132Q469 167 449 188T400 224T342 255T292 297T272 364Q272 398 285 422T316 468T346 513T360 568Q360 606 339
630T277 655Q224 655 194 616T164 500V0H82V515Q82 609 133 665T278 722Q331 722 367 702T422 649T441 576Q441 539 428 512T396 464T364 421T350 374Q350 345 370 328T419 296T478 263T527 215T547 137Q547 74 504 31T387 -12Z" />
<glyph unicode="&#xe0;" glyph-name="agrave" horiz-adv-x="504" d="M194 -12Q133 -12 93 24T52 126Q52 206 123 248T350 308Q350 339 342 367T312 412T250 430Q208 430 171 414T105 378L73 435Q107 457 156 477T264 498Q353 498 393 444T433 298V0H365L358 58H355Q321
30 281 9T194 -12ZM218 54Q253 54 284 71T350 119V254Q229 239 181 209T132 132Q132 91 157 73T218 54ZM281 573L124 726L182 781L323 614L281 573Z" />
<glyph unicode="&#xe1;" glyph-name="aacute" horiz-adv-x="504" d="M194 -12Q133 -12 93 24T52 126Q52 206 123 248T350 308Q350 339 342 367T312 412T250 430Q208 430 171 414T105 378L73 435Q107 457 156 477T264 498Q353 498 393 444T433 298V0H365L358 58H355Q321
30 281 9T194 -12ZM218 54Q253 54 284 71T350 119V254Q229 239 181 209T132 132Q132 91 157 73T218 54ZM253 573L211 614L352 781L410 726L253 573Z" />
<glyph unicode="&#xe2;" glyph-name="acircumflex" horiz-adv-x="504" d="M194 -12Q133 -12 93 24T52 126Q52 206 123 248T350 308Q350 339 342 367T312 412T250 430Q208 430 171 414T105 378L73 435Q107 457 156 477T264 498Q353 498 393 444T433 298V0H365L358
58H355Q321 30 281 9T194 -12ZM218 54Q253 54 284 71T350 119V254Q229 239 181 209T132 132Q132 91 157 73T218 54ZM112 600L226 740H308L422 600L387 568L269 681H265L147 568L112 600Z" />
<glyph unicode="&#xe3;" glyph-name="atilde" horiz-adv-x="504" d="M194 -12Q133 -12 93 24T52 126Q52 206 123 248T350 308Q350 339 342 367T312 412T250 430Q208 430 171 414T105 378L73 435Q107 457 156 477T264 498Q353 498 393 444T433 298V0H365L358 58H355Q321
30 281 9T194 -12ZM218 54Q253 54 284 71T350 119V254Q229 239 181 209T132 132Q132 91 157 73T218 54ZM339 577Q312 577 293 589T259 619T228 648T196 661Q174 661 163 639T149 582L94 585Q96 644 119 682T195 721Q222 721 241 709T276 679T306 650T339 637Q361
637 372 659T385 716L440 712Q438 654 415 616T339 577Z" />
<glyph unicode="&#xe4;" glyph-name="adieresis" horiz-adv-x="504" d="M194 -12Q133 -12 93 24T52 126Q52 206 123 248T350 308Q350 339 342 367T312 412T250 430Q208 430 171 414T105 378L73 435Q107 457 156 477T264 498Q353 498 393 444T433 298V0H365L358
58H355Q321 30 281 9T194 -12ZM218 54Q253 54 284 71T350 119V254Q229 239 181 209T132 132Q132 91 157 73T218 54ZM171 587Q149 587 135 601T121 637Q121 658 135 672T171 687Q192 687 206 673T220 637Q220 616 206 602T171 587ZM363 587Q342 587 328 601T314
637Q314 658 328 672T363 687Q385 687 399 673T413 637Q413 616 399 602T363 587Z" />
<glyph unicode="&#xe5;" glyph-name="aring" horiz-adv-x="504" d="M194 -12Q133 -12 93 24T52 126Q52 206 123 248T350 308Q350 339 342 367T312 412T250 430Q208 430 171 414T105 378L73 435Q107 457 156 477T264 498Q353 498 393 444T433 298V0H365L358 58H355Q321
30 281 9T194 -12ZM218 54Q253 54 284 71T350 119V254Q229 239 181 209T132 132Q132 91 157 73T218 54ZM267 554Q217 554 187 582T157 653Q157 695 187 723T267 751Q317 751 347 723T377 653Q377 610 347 582T267 554ZM267 591Q291 591 307 608T324 653Q324 681
308 697T267 714Q243 714 227 698T210 653Q210 625 226 608T267 591Z" />
<glyph unicode="&#xe6;" glyph-name="ae" horiz-adv-x="785" d="M201 -12Q140 -12 99 24T58 126Q58 206 129 248T352 308Q352 339 344 367T315 412T253 430Q213 430 177 414T112 378L79 435Q113 457 161 477T263 498Q317 498 352 470T402 395Q431 442 472 470T562
498Q651 498 699 436T747 269Q747 241 744 223H429Q432 147 475 101T580 55Q615 55 643 66T698 95L728 38Q697 18 659 3T570 -12Q509 -12 468 15T399 79Q297 -12 201 -12ZM224 54Q258 54 298 73T371 129Q363 148 358 174T352 229V254Q237 239 188 209T139 132Q139
91 163 73T224 54ZM429 278H675Q675 353 646 393T560 433Q510 433 473 391T429 278Z" />
<glyph unicode="&#xe7;" glyph-name="ccedilla" horiz-adv-x="456" d="M274 -12Q210 -12 158 18T76 105T46 242Q46 324 78 381T164 468T280 498Q328 498 362 481T422 441L380 387Q359 406 336 418T283 430Q239 430 205 407T151 341T131 242Q131 159 172 108T281
56Q315 56 344 70T395 105L431 50Q398 21 358 5T274 -12ZM179 -226L171 -186Q234 -181 257 -170T280 -136Q280 -116 263 -105T203 -88L247 3H300L271 -64Q306 -72 325 -88T344 -135Q344 -178 302 -200T179 -226Z" />
<glyph unicode="&#xe8;" glyph-name="egrave" horiz-adv-x="496" d="M279 -12Q214 -12 161 18T77 106T46 242Q46 322 77 379T159 467T264 498Q357 498 407 436T458 270Q458 257 458 245T455 223H127Q132 146 175 100T289 54Q324 54 353 64T410 92L439 38Q408 18
369 3T279 -12ZM126 282H386Q386 356 355 394T266 433Q215 433 175 394T126 282ZM278 573L121 726L179 781L320 614L278 573Z" />
<glyph unicode="&#xe9;" glyph-name="eacute" horiz-adv-x="496" d="M279 -12Q214 -12 161 18T77 106T46 242Q46 322 77 379T159 467T264 498Q357 498 407 436T458 270Q458 257 458 245T455 223H127Q132 146 175 100T289 54Q324 54 353 64T410 92L439 38Q408 18
369 3T279 -12ZM126 282H386Q386 356 355 394T266 433Q215 433 175 394T126 282ZM250 573L208 614L349 781L407 726L250 573Z" />
<glyph unicode="&#xea;" glyph-name="ecircumflex" horiz-adv-x="496" d="M279 -12Q214 -12 161 18T77 106T46 242Q46 322 77 379T159 467T264 498Q357 498 407 436T458 270Q458 257 458 245T455 223H127Q132 146 175 100T289 54Q324 54 353 64T410 92L439 38Q408
18 369 3T279 -12ZM126 282H386Q386 356 355 394T266 433Q215 433 175 394T126 282ZM109 600L223 740H305L419 600L384 568L266 681H262L144 568L109 600Z" />
<glyph unicode="&#xeb;" glyph-name="edieresis" horiz-adv-x="496" d="M279 -12Q214 -12 161 18T77 106T46 242Q46 322 77 379T159 467T264 498Q357 498 407 436T458 270Q458 257 458 245T455 223H127Q132 146 175 100T289 54Q324 54 353 64T410 92L439 38Q408
18 369 3T279 -12ZM126 282H386Q386 356 355 394T266 433Q215 433 175 394T126 282ZM168 587Q146 587 132 601T118 637Q118 658 132 672T168 687Q189 687 203 673T217 637Q217 616 203 602T168 587ZM360 587Q339 587 325 601T311 637Q311 658 325 672T360 687Q382
687 396 673T410 637Q410 616 396 602T360 587Z" />
<glyph unicode="&#xec;" glyph-name="igrave" horiz-adv-x="246" d="M82 0V486H164V0H82ZM138 573L-19 726L39 781L180 614L138 573Z" />
<glyph unicode="&#xed;" glyph-name="iacute" horiz-adv-x="246" d="M82 0V486H164V0H82ZM110 573L68 614L209 781L267 726L110 573Z" />
<glyph unicode="&#xee;" glyph-name="icircumflex" horiz-adv-x="246" d="M82 0V486H164V0H82ZM-31 600L83 740H165L279 600L244 568L126 681H122L4 568L-31 600Z" />
<glyph unicode="&#xef;" glyph-name="idieresis" horiz-adv-x="246" d="M82 0V486H164V0H82ZM28 587Q6 587 -8 601T-22 637Q-22 658 -8 672T28 687Q49 687 63 673T77 637Q77 616 63 602T28 587ZM220 587Q199 587 185 601T171 637Q171 658 185 672T220 687Q242
687 256 673T270 637Q270 616 256 602T220 587Z" />
<glyph unicode="&#xf0;" glyph-name="eth" horiz-adv-x="545" d="M131 222Q131 172 150 135T201 77T271 56Q339 56 372 111T406 254Q406 268 406 282T404 309Q371 353 338 368T271 383Q204 383 168 337T131 222ZM269 -12Q213 -12 164 16T84 97T53 222Q53 290 80
340T154 419T259 447Q297 447 332 431T393 381Q380 443 352 489T286 573L145 500L121 541L248 606Q196 646 136 678L174 730Q210 711 245 689T312 639L454 712L478 671L349 605Q409 544 447 460T485 257Q485 177 458 117T383 22T269 -12Z" />
<glyph unicode="&#xf1;" glyph-name="ntilde" horiz-adv-x="547" d="M82 0V486H150L157 416H160Q195 451 234 474T323 498Q400 498 435 450T471 308V0H389V297Q389 365 367 396T297 427Q260 427 231 408T164 352V0H82ZM367 577Q340 577 321 589T287 619T256 648T224
661Q202 661 191 639T177 582L122 585Q124 644 147 682T223 721Q250 721 269 709T304 679T334 650T367 637Q389 637 400 659T413 716L468 712Q466 654 443 616T367 577Z" />
<glyph unicode="&#xf2;" glyph-name="ograve" horiz-adv-x="542" d="M271 -12Q212 -12 161 18T78 105T46 242Q46 324 77 381T160 468T271 498Q331 498 382 468T464 381T496 242Q496 162 465 105T382 18T271 -12ZM271 56Q334 56 372 107T411 242Q411 326 373 378T271
430Q209 430 170 378T131 242Q131 159 170 108T271 56ZM285 573L128 726L186 781L327 614L285 573Z" />
<glyph unicode="&#xf3;" glyph-name="oacute" horiz-adv-x="542" d="M271 -12Q212 -12 161 18T78 105T46 242Q46 324 77 381T160 468T271 498Q331 498 382 468T464 381T496 242Q496 162 465 105T382 18T271 -12ZM271 56Q334 56 372 107T411 242Q411 326 373 378T271
430Q209 430 170 378T131 242Q131 159 170 108T271 56ZM257 573L215 614L356 781L414 726L257 573Z" />
<glyph unicode="&#xf4;" glyph-name="ocircumflex" horiz-adv-x="542" d="M271 -12Q212 -12 161 18T78 105T46 242Q46 324 77 381T160 468T271 498Q331 498 382 468T464 381T496 242Q496 162 465 105T382 18T271 -12ZM271 56Q334 56 372 107T411 242Q411 326 373
378T271 430Q209 430 170 378T131 242Q131 159 170 108T271 56ZM116 600L230 740H312L426 600L391 568L273 681H269L151 568L116 600Z" />
<glyph unicode="&#xf5;" glyph-name="otilde" horiz-adv-x="542" d="M271 -12Q212 -12 161 18T78 105T46 242Q46 324 77 381T160 468T271 498Q331 498 382 468T464 381T496 242Q496 162 465 105T382 18T271 -12ZM271 56Q334 56 372 107T411 242Q411 326 373 378T271
430Q209 430 170 378T131 242Q131 159 170 108T271 56ZM343 577Q316 577 297 589T263 619T232 648T200 661Q178 661 167 639T153 582L98 585Q100 644 123 682T199 721Q226 721 245 709T280 679T310 650T343 637Q365 637 376 659T389 716L444 712Q442 654 419 616T343
577Z" />
<glyph unicode="&#xf6;" glyph-name="odieresis" horiz-adv-x="542" d="M271 -12Q212 -12 161 18T78 105T46 242Q46 324 77 381T160 468T271 498Q331 498 382 468T464 381T496 242Q496 162 465 105T382 18T271 -12ZM271 56Q334 56 372 107T411 242Q411 326 373
378T271 430Q209 430 170 378T131 242Q131 159 170 108T271 56ZM175 587Q153 587 139 601T125 637Q125 658 139 672T175 687Q196 687 210 673T224 637Q224 616 210 602T175 587ZM367 587Q346 587 332 601T318 637Q318 658 332 672T367 687Q389 687 403 673T417
637Q417 616 403 602T367 587Z" />
<glyph unicode="&#xf7;" glyph-name="divide" horiz-adv-x="497" d="M34 299V361H463V299H34ZM249 96Q226 96 210 111T194 150Q194 173 210 188T249 203Q272 203 287 188T303 150Q303 126 288 111T249 96ZM249 456Q226 456 210 471T194 510Q194 533 210 548T249
563Q272 563 287 548T303 510Q303 486 288 471T249 456Z" />
<glyph unicode="&#xf8;" glyph-name="oslash" horiz-adv-x="542" d="M127 246Q127 179 150 133L364 392Q327 432 271 432Q230 432 197 409T146 343T127 246ZM83 -23L46 6L100 71Q75 103 61 146T46 242Q46 324 77 381T160 468T271 498Q351 498 410 448L460 509L496
480L442 415Q467 383 481 340T496 242Q496 162 465 105T382 18T271 -12Q192 -12 132 37L83 -23ZM271 54Q334 54 374 105T415 239Q415 307 391 353L178 93Q217 54 271 54Z" />
<glyph unicode="&#xf9;" glyph-name="ugrave" horiz-adv-x="544" d="M224 -12Q147 -12 111 36T75 178V486H158V189Q158 121 179 90T249 59Q287 59 316 78T380 141V486H462V0H394L387 76H384Q350 36 312 12T224 -12ZM285 573L128 726L186 781L327 614L285 573Z" />
<glyph unicode="&#xfa;" glyph-name="uacute" horiz-adv-x="544" d="M224 -12Q147 -12 111 36T75 178V486H158V189Q158 121 179 90T249 59Q287 59 316 78T380 141V486H462V0H394L387 76H384Q350 36 312 12T224 -12ZM257 573L215 614L356 781L414 726L257 573Z" />
<glyph unicode="&#xfb;" glyph-name="ucircumflex" horiz-adv-x="544" d="M224 -12Q147 -12 111 36T75 178V486H158V189Q158 121 179 90T249 59Q287 59 316 78T380 141V486H462V0H394L387 76H384Q350 36 312 12T224 -12ZM116 600L230 740H312L426 600L391 568L273
681H269L151 568L116 600Z" />
<glyph unicode="&#xfc;" glyph-name="udieresis" horiz-adv-x="544" d="M224 -12Q147 -12 111 36T75 178V486H158V189Q158 121 179 90T249 59Q287 59 316 78T380 141V486H462V0H394L387 76H384Q350 36 312 12T224 -12ZM175 587Q153 587 139 601T125 637Q125 658
139 672T175 687Q196 687 210 673T224 637Q224 616 210 602T175 587ZM367 587Q346 587 332 601T318 637Q318 658 332 672T367 687Q389 687 403 673T417 637Q417 616 403 602T367 587Z" />
<glyph unicode="&#xfd;" glyph-name="yacute" horiz-adv-x="467" d="M90 -209Q74 -209 60 -206T33 -199L49 -134Q57 -136 67 -138T86 -141Q127 -141 154 -112T196 -37L207 -1L12 486H97L196 217Q207 186 219 150T243 80H247Q258 113 268 149T288 217L375 486H455L272
-40Q255 -88 232 -126T174 -186T90 -209ZM229 573L187 614L328 781L386 726L229 573Z" />
<glyph unicode="&#xfe;" glyph-name="thorn" horiz-adv-x="555" d="M82 -205V712H164V519L163 435Q195 461 233 479T311 498Q407 498 457 431T507 250Q507 168 478 109T401 19T297 -12Q262 -12 229 2T163 42L164 -41V-205H82ZM283 57Q343 57 382 108T422 250Q422
330 393 379T294 429Q263 429 232 412T164 363V108Q197 80 228 69T283 57Z" />
<glyph unicode="&#xff;" glyph-name="ydieresis" horiz-adv-x="467" d="M90 -209Q74 -209 60 -206T33 -199L49 -134Q57 -136 67 -138T86 -141Q127 -141 154 -112T196 -37L207 -1L12 486H97L196 217Q207 186 219 150T243 80H247Q258 113 268 149T288 217L375 486H455L272
-40Q255 -88 232 -126T174 -186T90 -209ZM147 587Q125 587 111 601T97 637Q97 658 111 672T147 687Q168 687 182 673T196 637Q196 616 182 602T147 587ZM339 587Q318 587 304 601T290 637Q290 658 304 672T339 687Q361 687 375 673T389 637Q389 616 375 602T339
587Z" />
<glyph unicode="&#x2013;" glyph-name="endash" horiz-adv-x="480" d="M41 223V280H439V223H41Z" />
<glyph unicode="&#x2014;" glyph-name="emdash" horiz-adv-x="800" d="M41 223V280H759V223H41Z" />
<glyph unicode="&#x2018;" glyph-name="quoteleft" horiz-adv-x="249" d="M120 428Q90 428 74 451T57 518Q57 578 84 622T163 696L187 657Q149 632 130 604T111 533Q114 534 120 534Q140 534 156 521T173 483Q173 458 158 443T120 428Z" />
<glyph unicode="&#x2019;" glyph-name="quoteright" horiz-adv-x="249" d="M86 431L63 469Q101 494 119 522T138 594Q135 593 130 593Q109 593 93 606T77 643Q77 669 92 684T130 699Q159 699 176 676T193 608Q193 548 166 505T86 431Z" />
<glyph unicode="&#x201a;" glyph-name="quotesinglbase" horiz-adv-x="249" d="M86 -145L63 -107Q101 -82 119 -54T138 18Q135 17 130 17Q109 17 93 30T77 67Q77 93 92 108T130 123Q159 123 176 100T193 32Q193 -28 166 -71T86 -145Z" />
<glyph unicode="&#x201c;" glyph-name="quotedblleft" horiz-adv-x="426" d="M120 428Q90 428 74 451T57 518Q57 578 84 622T163 696L187 657Q149 632 130 604T111 533Q114 534 120 534Q140 534 156 521T173 483Q173 458 158 443T120 428ZM297 428Q267 428 251
451T234 518Q234 578 261 622T340 696L364 657Q326 632 307 604T288 533Q291 534 297 534Q317 534 333 521T350 483Q350 458 335 443T297 428Z" />
<glyph unicode="&#x201d;" glyph-name="quotedblright" horiz-adv-x="426" d="M86 431L63 469Q101 494 119 522T138 594Q135 593 130 593Q109 593 93 606T77 643Q77 669 92 684T130 699Q159 699 176 676T193 608Q193 548 166 505T86 431ZM263 431L240 469Q278
494 296 522T315 594Q312 593 307 593Q286 593 270 606T254 643Q254 669 269 684T307 699Q336 699 353 676T370 608Q370 548 343 505T263 431Z" />
<glyph unicode="&#x201e;" glyph-name="quotedblbase" horiz-adv-x="426" d="M86 -145L63 -107Q101 -82 119 -54T138 18Q135 17 130 17Q109 17 93 30T77 67Q77 93 92 108T130 123Q159 123 176 100T193 32Q193 -28 166 -71T86 -145ZM263 -145L240 -107Q278 -82
296 -54T315 18Q312 17 307 17Q286 17 270 30T254 67Q254 93 269 108T307 123Q336 123 353 100T370 32Q370 -28 343 -71T263 -145Z" />
<glyph unicode="&#x2022;" glyph-name="bullet" horiz-adv-x="304" d="M152 143Q107 143 74 176T40 263Q40 317 73 350T152 384Q197 384 230 351T264 263Q264 209 231 176T152 143Z" />
<glyph unicode="&#x2039;" glyph-name="guilsinglleft" horiz-adv-x="271" d="M181 66L45 221V283L181 438L217 408L99 252L217 94L181 66Z" />
<glyph unicode="&#x203a;" glyph-name="guilsinglright" horiz-adv-x="271" d="M89 66L54 94L172 252L54 408L89 438L226 283V221L89 66Z" />
</font>
</defs>
</svg>

Nachher

Breite:  |  Höhe:  |  Größe: 55 KiB

Binäre Datei nicht angezeigt.

Binäre Datei nicht angezeigt.

Binäre Datei nicht angezeigt.

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 75 KiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 3,2 KiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 3,9 KiB

Datei anzeigen

Vorher

Breite:  |  Höhe:  |  Größe: 10 KiB

Nachher

Breite:  |  Höhe:  |  Größe: 10 KiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 6,1 KiB

Datei anzeigen

Vorher

Breite:  |  Höhe:  |  Größe: 11 KiB

Nachher

Breite:  |  Höhe:  |  Größe: 11 KiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 70 KiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 55 KiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 65 KiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 57 KiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 27 KiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 24 KiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 72 KiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 72 KiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 55 KiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 51 KiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 24 KiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 24 KiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 88 KiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 77 KiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 68 KiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 54 KiB

Datei anzeigen

Vorher

Breite:  |  Höhe:  |  Größe: 6,6 KiB

Nachher

Breite:  |  Höhe:  |  Größe: 6,6 KiB

Datei anzeigen

@ -109,4 +109,4 @@ if (window.location.href.indexOf('/client') >= 0) {
});
}
});
}
}

Datei anzeigen

@ -0,0 +1,67 @@
/* source-code-pro-regular - latin */
@font-face {
font-family: 'Source Code Pro';
font-style: normal;
font-weight: 400;
src: url('../fonts/source-code-pro-v21-latin-regular.eot'); /* IE9 Compat Modes */
src: local(''),
url('../fonts/source-code-pro-v21-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/source-code-pro-v21-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */
url('../fonts/source-code-pro-v21-latin-regular.woff') format('woff'), /* Modern Browsers */
url('../fonts/source-code-pro-v21-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/source-code-pro-v21-latin-regular.svg#SourceCodePro') format('svg'); /* Legacy iOS */
}
/* source-sans-pro-regular - latin */
@font-face {
font-family: 'Source Sans Pro';
font-style: normal;
font-weight: 400;
src: url('../fonts/source-sans-pro-v21-latin-regular.eot'); /* IE9 Compat Modes */
src: local(''),
url('../fonts/source-sans-pro-v21-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/source-sans-pro-v21-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */
url('../fonts/source-sans-pro-v21-latin-regular.woff') format('woff'), /* Modern Browsers */
url('../fonts/source-sans-pro-v21-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/source-sans-pro-v21-latin-regular.svg#SourceSansPro') format('svg'); /* Legacy iOS */
}
/* source-sans-pro-700 - latin */
@font-face {
font-family: 'Source Sans Pro';
font-style: normal;
font-weight: 700;
src: url('../fonts/source-sans-pro-v21-latin-700.eot'); /* IE9 Compat Modes */
src: local(''),
url('../fonts/source-sans-pro-v21-latin-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/source-sans-pro-v21-latin-700.woff2') format('woff2'), /* Super Modern Browsers */
url('../fonts/source-sans-pro-v21-latin-700.woff') format('woff'), /* Modern Browsers */
url('../fonts/source-sans-pro-v21-latin-700.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/source-sans-pro-v21-latin-700.svg#SourceSansPro') format('svg'); /* Legacy iOS */
}
.md-nav {
font-size: 14px;
line-height: 1.4;
}
.md-typeset {
font-size: 14px;
line-height: 1.5;
}
code {
display: inline-block;
white-space: pre-wrap;
}
:root {
--md-text-font: "Source Sans Pro";
}
:root {
--md-code-font: "Source Code Pro";
}
[data-md-color-scheme="slate"] {
--md-typeset-a-color: #6390e5;
}

Datei anzeigen

@ -0,0 +1,74 @@
Sie haben also ein Postfach gelöscht und haben keine Sicherungskopien?
Wenn Sie Ihren Fehler innerhalb von ein paar Stunden bemerken, können Sie die Daten des Benutzers wahrscheinlich wiederherstellen.
### SOGo
Wir erstellen automatisch tägliche Backups (24 Stunden Intervall ab dem Hochfahren -d) in `/var/lib/docker/volumes/mailcowdockerized_sogo-userdata-backup-vol-1/_data/`.
**Stellen Sie sicher, dass der Benutzer, den Sie wiederherstellen wollen, in Ihrem mailcow-Backend existiert**. Legen Sie diesen neu an, falls nicht mehr existent.
Kopieren Sie die Datei mit dem Namen des Benutzers, den Sie wiederherstellen wollen, nach `__MAILCOW_DIRECTORY__/data/conf/sogo`.
1. Kopieren Sie die Sicherung: `cp /var/lib/docker/volumes/mailcowdockerized_sogo-userdata-backup-vol-1/_data/restoreme@example.org __MAILCOW_DIRECTORY__/data/conf/sogo`
2. Führen Sie folgenden Befehl aus:
=== "docker compose (Plugin)"
``` bash
docker compose exec -u sogo sogo-mailcow sogo-tool restore -F ALL /etc/sogo restoreme@example.org
```
=== "docker-compose (Standalone)"
``` bash
docker-compose exec -u sogo sogo-mailcow sogo-tool restore -F ALL /etc/sogo restoreme@example.org
```
Führen Sie `sogo-tool` ohne Parameter aus, um nach möglichen Wiederherstellungsoptionen zu suchen.
3. Löschen Sie die kopierte Sicherung, indem Sie `rm __MAILCOW_DIRECTORY__/data/conf/sogo` ausführen
4. Starten Sie SOGo und Memcached neu:
=== "docker compose (Plugin)"
``` bash
docker compose restart sogo-mailcow memcached-mailcow
```
=== "docker-compose (Standalone)"
``` bash
docker-compose restart sogo-mailcow memcached-mailcow
```
### Mail
Im Falle einer versehentlichen Löschung einer Mailbox, können Sie diese (standardmäßig) 5 Tage lang wiederherstellen. Dies hängt von dem `MAILDIR_GC_TIME` Parameter in `mailcow.conf` ab.
Eine gelöschte Mailbox wird in ihrer verschlüsselten Form nach `/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data/_garbage` kopiert.
Der Ordner innerhalb von `_garbage` folgt der Struktur `[timestamp]_[domain_sanitized][user_sanitized]`, zum Beispiel `1629109708_exampleorgtest` im Falle von test@example.org, das am 1629109708 gelöscht wurde.
Um die Mailbox wiederherzustellen, stellen Sie sicher, dass Sie tatsächlich auf die gleiche mailcow wiederherstellen, von der sie gelöscht wurde, oder Sie die gleichen Verschlüsselungsschlüssel in `crypt-vol-1` verwenden.
**Stellen Sie sicher, dass der Benutzer, den Sie wiederherstellen wollen, in Ihrer mailcow existiert**. Legen Sie diesen neu an, wenn der Benutzer fehlt.
Kopieren Sie die Ordner von `/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data/_garbage/[timestamp]_[domain_sanitized][user_sanitized]` zurück nach `/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data/[domain]/[user]` und synchronisieren Sie die Ordner neu und berechnen Sie die Quota (Speicherplatz) neu:
=== "docker compose (Plugin)"
``` bash
docker compose exec dovecot-mailcow doveadm force-resync -u restoreme@example.net '*'
docker compose exec dovecot-mailcow doveadm quota recalc -u restoreme@example.net
```
=== "docker-compose (Standalone)"
``` bash
docker-compose exec dovecot-mailcow doveadm force-resync -u restoreme@example.net '*'
docker-compose exec dovecot-mailcow doveadm quota recalc -u restoreme@example.net
```

Datei anzeigen

@ -10,15 +10,39 @@ We automatically create daily backups (24h interval starting from running up -d)
Copy the file named after the user you want to restore to `__MAILCOW_DIRECTORY__/data/conf/sogo`.
1\. Copy the backup: `cp /var/lib/docker/volumes/mailcowdockerized_sogo-userdata-backup-vol-1/_data/restoreme@example.org __MAILCOW_DIRECTORY__/data/conf/sogo`
1. Copy the backup: `cp /var/lib/docker/volumes/mailcowdockerized_sogo-userdata-backup-vol-1/_data/restoreme@example.org __MAILCOW_DIRECTORY__/data/conf/sogo`
2\. Run `docker-compose exec -u sogo sogo-mailcow sogo-tool restore -F ALL /etc/sogo restoreme@example.org`
2. Run the following command:
Run `sogo-tool` without parameters to check for possible restore options.
=== "docker compose (Plugin)"
3\. Delete the copied backup by running `rm __MAILCOW_DIRECTORY__/data/conf/sogo`
``` bash
docker compose exec -u sogo sogo-mailcow sogo-tool restore -F ALL /etc/sogo restoreme@example.org
```
4\. Restart SOGo and Memcached: `docker-compose restart sogo-mailcow memcached-mailcow`
=== "docker-compose (Standalone)"
``` bash
docker-compose exec -u sogo sogo-mailcow sogo-tool restore -F ALL /etc/sogo restoreme@example.org
```
Run `sogo-tool` without parameters to check for possible restore options.
3. Delete the copied backup by running `rm __MAILCOW_DIRECTORY__/data/conf/sogo`
4. Restart SOGo and Memcached:
=== "docker compose (Plugin)"
``` bash
docker compose restart sogo-mailcow memcached-mailcow
```
=== "docker-compose (Standalone)"
``` bash
docker-compose restart sogo-mailcow memcached-mailcow
```
### Mail
@ -34,7 +58,16 @@ To restore make sure you are actually restoring to the same mailcow it was delet
Copy the folders from `/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data/_garbage/[timestamp]_[domain_sanitized][user_sanitized]` back to `/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data/[domain]/[user]` and resync the folder and recalc the quota:
```
docker-compose exec dovecot-mailcow doveadm force-resync -u restoreme@example.net '*'
docker-compose exec dovecot-mailcow doveadm quota recalc -u restoreme@example.net
```
=== "docker compose (Plugin)"
``` bash
docker compose exec dovecot-mailcow doveadm force-resync -u restoreme@example.net '*'
docker compose exec dovecot-mailcow doveadm quota recalc -u restoreme@example.net
```
=== "docker-compose (Standalone)"
``` bash
docker-compose exec dovecot-mailcow doveadm force-resync -u restoreme@example.net '*'
docker-compose exec dovecot-mailcow doveadm quota recalc -u restoreme@example.net
```

Datei anzeigen

@ -0,0 +1,131 @@
### Sicherung
#### Anleitung
Sie können das mitgelieferte Skript `helper-scripts/backup_and_restore.sh` verwenden, um mailcow automatisch zu sichern.
Bitte kopieren Sie dieses Skript nicht an einen anderen Ort.
Um ein Backup zu starten, geben Sie "backup" als ersten Parameter an und entweder eine oder mehrere zu sichernde Komponenten als folgende Parameter.
Sie können auch "all" als zweiten Parameter verwenden, um alle Komponenten zu sichern. Fügen Sie `--delete-days n` an, um Sicherungen zu löschen, die älter als n Tage sind.
```
# Syntax:
# ./helper-scripts/backup_and_restore.sh backup (vmail|crypt|redis|rspamd|postfix|mysql|all|--delete-days)
# Alles sichern, Sicherungen älter als 3 Tage löschen
./helper-scripts/backup_and_restore.sh backup all --delete-days 3
# vmail-, crypt- und mysql-Daten sichern, Sicherungen löschen, die älter als 30 Tage sind
./helper-scripts/backup_and_restore.sh backup vmail crypt mysql --delete-days 30
# vmail sichern
./helper-scripts/backup_and_restore.sh backup vmail
```
#### Variablen für Backup/Restore Skript
##### Multithreading
Seit dem 2022-10 Update ist es möglich das Skript mit Multithreading Support laufen zu lassen. Dies lässt sich sowohl für Backups aber auch für Restores nutzen.
Um das Backup/den Restore mit Multithreading zu starten muss `THREADS` als Umgebungsvariable vor dem Befehl zum starten hinzugefügt werden.
```
THREADS=14 /opt/mailcow-dockerized/helper-scripts/backup_and_restore.sh backup all
```
Die Anzahl hinter dem `=` Zeichen gibt dabei dann die Thread Anzahl an. Nehmen Sie bitte immer ihre Kernanzahl -2 um mailcow selber noch genug CPU Leistung zu lassen.
##### Backup Pfad
Das Skript wird Sie nach einem Speicherort für die Sicherung fragen. Innerhalb dieses Speicherortes wird es Ordner im Format "mailcow_DATE" erstellen.
Sie sollten diese Ordner nicht umbenennen, um den Wiederherstellungsprozess nicht zu stören.
Um ein Backup unbeaufsichtigt durchzuführen, definieren Sie MAILCOW_BACKUP_LOCATION als Umgebungsvariable, bevor Sie das Skript starten:
```
MAILCOW_BACKUP_LOCATION=/opt/backup /opt/mailcow-dockerized/helper-scripts/backup_and_restore.sh backup all
```
!!! tip "Tipp"
Beide oben genannten Variablen können auch kombiniert werden! Bsp:
```
MAILCOW_BACKUP_LOCATION=/opt/backup THREADS=14 /opt/mailcow-dockerized/helper-scripts/backup_and_restore.sh backup all
```
#### Cronjob
Sie können das Backup-Skript regelmäßig über einen Cronjob laufen lassen. Stellen Sie sicher, dass `BACKUP_LOCATION` existiert:
```
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
5 4 * * * cd /opt/mailcow-dockerized/; MAILCOW_BACKUP_LOCATION=/mnt/mailcow_backups /opt/mailcow-dockerized/helper-scripts/backup_and_restore.sh backup mysql crypt redis --delete-days 3
```
Standardmäßig sendet Cron das komplette Ergebnis jeder Backup-Operation per E-Mail. Wenn Sie möchten, dass cron nur im Fehlerfall (Exit-Code ungleich Null) eine E-Mail sendet, können Sie den folgenden Ausschnitt verwenden. Die Pfade müssen entsprechend Ihrer Einrichtung angepasst werden (dieses Skript ist ein Beitrag eines Benutzers).
Das folgende Skript kann in `/etc/cron.daily/mailcow-backup` platziert werden - vergessen Sie nicht, es mit `chmod +x` als ausführbar zu markieren:
```
#!/bin/sh
# Backup mailcow data
# https://mailcow.github.io/mailcow-dockerized-docs/b_n_r_backup/
set -e
OUT="$(mktemp)"
export MAILCOW_BACKUP_LOCATION="/opt/backup"
SCRIPT="/opt/mailcow-dockerized/helper-scripts/backup_and_restore.sh"
PARAMETERS="backup all"
OPTIONS="--delete-days 30"
# run command
set +e
"${SCRIPT}" ${PARAMETERS} ${OPTIONS} 2>&1 > "$OUT"
RESULT=$?
if [ $RESULT -ne 0 ]
then
echo "${SCRIPT} ${PARAMETERS} ${OPTIONS} encounters an error:"
echo "RESULT=$RESULT"
echo "STDOUT / STDERR:"
cat "$OUT"
fi
```
# Backup-Strategie mit rsync und mailcow Backup-Skript
Erstellen Sie das Zielverzeichnis für mailcows Hilfsskript:
```
mkdir -p /external_share/backups/backup_script
```
Cronjobs erstellen:
```
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
25 1 * * * rsync -aH --delete /opt/mailcow-dockerized /external_share/backups/mailcow-dockerized
40 2 * * * rsync -aH --delete /var/lib/docker/volumes /external_share/backups/var_lib_docker_volumes
5 4 * * * cd /opt/mailcow-dockerized/; BACKUP_LOCATION=/external_share/backups/backup_script /opt/mailcow-dockerized/helper-scripts/backup_and_restore.sh backup mysql crypt redis --delete-days 3
# Wenn Sie wollen, benutzen Sie das Werkzeug acl, um die Berechtigungen einiger/aller Ordner/Dateien zu sichern: getfacl -Rn /path
```
Am Zielort (in diesem Fall `/external_share/backups`) möchten Sie vielleicht Snapshot-Möglichkeiten haben (ZFS, Btrfs usw.). Machen Sie täglich einen Snapshot und bewahren Sie ihn für n Tage auf, um ein konsistentes Backup zu erhalten.
Führen Sie **kein** rsync auf eine Samba-Freigabe durch, Sie müssen die richtigen Berechtigungen behalten!
Zum Wiederherstellen müssen Sie rsync einfach in umgekehrter Richtung ausführen und Docker neu starten, um die Volumes erneut zu lesen. Führen Sie folgende Befehle aus:
=== "docker compose (Plugin)"
``` bash
docker compose pull
docker compose up -d
```
=== "docker-compose (Standalone)"
``` bash
docker-compose pull
docker-compose up -d
```
Wenn Sie Glück haben, können Redis und MariaDB die inkonsistenten Datenbanken automatisch reparieren (wenn sie inkonsistent _sind_).
Im Falle einer beschädigten Datenbank müssen Sie das Hilfsskript verwenden, um die inkonsistenten Elemente wiederherzustellen. Wenn die Wiederherstellung fehlschlägt, versuchen Sie, die Sicherungen zu extrahieren und die Dateien manuell zurück zu kopieren. Behalten Sie die Dateiberechtigungen bei!

Datei anzeigen

@ -24,6 +24,18 @@ You can also use "all" as second parameter to backup all components. Append `--d
```
#### Variables for backup/restore script
##### Multithreading
With the 2022-10 update it is possible to run the script with multithreading support. This can be used for backups as well as for restores.
To start the backup/restore with multithreading you have to add `THREADS` as an environment variable in front of the command to execute the script.
```
THREADS=14 /opt/mailcow-dockerized/helper-scripts/backup_and_restore.sh backup all
```
The number after the `=` character indicates the number of threads. Please keep your core count -2 to leave enough CPU power for mailcow itself.
##### Backup path
The script will ask you for a backup location. Inside of this location it will create folders in the format "mailcow_DATE".
You should not rename those folders to not break the restore process.
@ -33,11 +45,18 @@ To run a backup unattended, define MAILCOW_BACKUP_LOCATION as environment variab
MAILCOW_BACKUP_LOCATION=/opt/backup /opt/mailcow-dockerized/helper-scripts/backup_and_restore.sh backup all
```
!!! tip
Both variables mentioned above can also be combined! Ex:
```
MAILCOW_BACKUP_LOCATION=/opt/backup THREADS=14 /opt/mailcow-dockerized/helper-scripts/backup_and_restore.sh backup all
```
#### Cronjob
You can run the backup script regularly via cronjob. Make sure `BACKUP_LOCATION` exists:
```
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
5 4 * * * cd /opt/mailcow-dockerized/; MAILCOW_BACKUP_LOCATION=/mnt/mailcow_backups /opt/mailcow-dockerized/helper-scripts/backup_and_restore.sh backup mysql crypt redis --delete-days 3
```
@ -49,7 +68,7 @@ This following script may be placed in `/etc/cron.daily/mailcow-backup` - do not
#!/bin/sh
# Backup mailcow data
# https://mailcow.github.io/mailcow-dockerized-docs/b_n_r_backup/
# https://mailcow.github.io/mailcow-dockerized-docs/backup_restore/b_n_r-backup/
set -e
@ -82,6 +101,7 @@ mkdir -p /external_share/backups/backup_script
Create cronjobs:
```
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
25 1 * * * rsync -aH --delete /opt/mailcow-dockerized /external_share/backups/mailcow-dockerized
40 2 * * * rsync -aH --delete /var/lib/docker/volumes /external_share/backups/var_lib_docker_volumes
5 4 * * * cd /opt/mailcow-dockerized/; BACKUP_LOCATION=/external_share/backups/backup_script /opt/mailcow-dockerized/helper-scripts/backup_and_restore.sh backup mysql crypt redis --delete-days 3
@ -91,7 +111,21 @@ Create cronjobs:
On the destination (in this case `/external_share/backups`) you may want to have snapshot capabilities (ZFS, Btrfs etc.). Snapshot daily and keep for n days for a consistent backup.
Do **not** rsync to a Samba share, you need to keep the correct permissions!
To restore you'd simply need to run rsync the other way round and restart Docker to re-read the volumes. Run `docker-compose pull` and `docker-compose up -d`.
To restore you'd simply need to run rsync the other way round and restart Docker to re-read the volumes. Run:
=== "docker compose (Plugin)"
``` bash
docker compose pull
docker compose up -d
```
=== "docker-compose (Standalone)"
``` bash
docker-compose pull
docker-compose up -d
```
If you are lucky Redis and MariaDB can automatically fix the inconsistent databases (if they _are_ inconsistent).
In case of a corrupted database you'd need to use the helper script to restore the inconsistent elements. If a restore fails, try to extract the backups and copy the files back manually. Keep the file permissions!

Datei anzeigen

@ -0,0 +1,36 @@
### Sicherung
Diese Zeile sichert das vmail-Verzeichnis in eine Datei backup_vmail.tar.gz im mailcow-Root-Verzeichnis:
=== "docker compose (Plugin)"
``` bash
cd /pfad/zu/mailcow-dockerized
docker run --rm -i -v $(docker inspect --format '{{ range .Mounts }}{{ if eq .Destination "/var/vmail" }}{{ .Name }}{{ end }}{{ end }}' $(docker compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:bullseye-slim tar cvfz /backup/backup_vmail.tar.gz /vmail
```
=== "docker-compose (Standalone)"
``` bash
cd /pfad/zu/mailcow-dockerized
docker run --rm -i -v $(docker inspect --format '{{ range .Mounts }}{{ if eq .Destination "/var/vmail" }}{{ .Name }}{{ end }}{{ end }}' $(docker-compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:bullseye-slim tar cvfz /backup/backup_vmail.tar.gz /vmail
```
Sie können den Pfad ändern, indem Sie ${PWD} (das dem aktuellen Verzeichnis entspricht) zu einem beliebigen Pfad ändern, auf den Sie Schreibzugriff haben.
Setzen Sie den Dateinamen `backup_vmail.tar.gz` auf einen beliebigen Namen, aber lassen Sie den Pfad so wie er ist. Beispiel: `[...] tar cvfz /backup/mein_eigener_dateiname_.tar.gz`
### Wiederherstellen
=== "docker compose (Plugin)"
``` bash
cd /pfad/zu/mailcow-dockerized
docker run --rm -it -v $(docker inspect --format '{{ range .Mounts }}{{ if eq .Destination "/var/vmail" }}{{ .Name }}{{ end }}{{ end }}' $(docker compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:bullseye-slim tar xvfz /backup/backup_vmail.tar.gz
```
=== "docker-compose (Standalone)"
``` bash
cd /pfad/zu/mailcow-dockerized
docker run --rm -it -v $(docker inspect --format '{{ range .Mounts }}{{ if eq .Destination "/var/vmail" }}{{ .Name }}{{ end }}{{ end }}' $(docker-compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:bullseye-slim tar xvfz /backup/backup_vmail.tar.gz
```

Datei anzeigen

@ -0,0 +1,36 @@
### Backup
This line backups the vmail directory to a file backup_vmail.tar.gz in the mailcow root directory:
=== "docker compose (Plugin)"
``` bash
cd /path/to/mailcow-dockerized
docker run --rm -i -v $(docker inspect --format '{{ range .Mounts }}{{ if eq .Destination "/var/vmail" }}{{ .Name }}{{ end }}{{ end }}' $(docker compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:bullseye-slim tar cvfz /backup/backup_vmail.tar.gz /vmail
```
=== "docker-compose (Standalone)"
``` bash
cd /path/to/mailcow-dockerized
docker run --rm -i -v $(docker inspect --format '{{ range .Mounts }}{{ if eq .Destination "/var/vmail" }}{{ .Name }}{{ end }}{{ end }}' $(docker-compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:bullseye-slim tar cvfz /backup/backup_vmail.tar.gz /vmail
```
You can change the path by adjusting ${PWD} (which equals to the current directory) to any path you have write-access to.
Set the filename `backup_vmail.tar.gz` to any custom name, but leave the path as it is. Example: `[...] tar cvfz /backup/my_own_filename_.tar.gz`
### Restore
=== "docker compose (Plugin)"
``` bash
cd /path/to/mailcow-dockerized
docker run --rm -it -v $(docker inspect --format '{{ range .Mounts }}{{ if eq .Destination "/var/vmail" }}{{ .Name }}{{ end }}{{ end }}' $(docker compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:bullseye-slim tar xvfz /backup/backup_vmail.tar.gz
```
=== "docker-compose (Standalone)"
``` bash
cd /path/to/mailcow-dockerized
docker run --rm -it -v $(docker inspect --format '{{ range .Mounts }}{{ if eq .Destination "/var/vmail" }}{{ .Name }}{{ end }}{{ end }}' $(docker-compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:bullseye-slim tar xvfz /backup/backup_vmail.tar.gz
```

Datei anzeigen

@ -0,0 +1,35 @@
## Sicherung
=== "docker compose (Plugin)"
``` bash
cd /pfad/zu/mailcow-dockerized
source mailcow.conf
DATE=$(date +"%Y%m%d_%H%M%S")
docker compose exec -T mysql-mailcow mysqldump --default-character-set=utf8mb4 -u${DBUSER} -p${DBPASS} ${DBNAME} > backup_${DBNAME}_${DATE}.sql
```
=== "docker-compose (Standalone)"
``` bash
cd /pfad/zu/mailcow-dockerized
source mailcow.conf
DATE=$(date +"%Y%m%d_%H%M%S")
docker-compose exec -T mysql-mailcow mysqldump --default-character-set=utf8mb4 -u${DBUSER} -p${DBPASS} ${DBNAME} > backup_${DBNAME}_${DATE}.sql
```
## Wiederherstellen
!!! warning "Warnung"
=== "docker compose (Plugin)"
Sie sollten den SQL-Dump ohne `docker compose` umleiten, um Parsing-Fehler zu vermeiden.
=== "docker-compose (Standalone)"
Sie sollten den SQL-Dump ohne `docker-compose` umleiten, um Parsing-Fehler zu vermeiden.
``` bash
cd /pfad/zu/mailcow-dockerized
source mailcow.conf
docker exec -i $(docker compose ps -q mysql-mailcow) mysql -u${DBUSER} -p${DBPASS} ${DBNAME} < backup_file.sql
```

Datei anzeigen

@ -0,0 +1,35 @@
## Backup
=== "docker compose (Plugin)"
``` bash
cd /path/to/mailcow-dockerized
source mailcow.conf
DATE=$(date +"%Y%m%d_%H%M%S")
docker compose exec -T mysql-mailcow mysqldump --default-character-set=utf8mb4 -u${DBUSER} -p${DBPASS} ${DBNAME} > backup_${DBNAME}_${DATE}.sql
```
=== "docker-compose (Standalone)"
``` bash
cd /path/to/mailcow-dockerized
source mailcow.conf
DATE=$(date +"%Y%m%d_%H%M%S")
docker-compose exec -T mysql-mailcow mysqldump --default-character-set=utf8mb4 -u${DBUSER} -p${DBPASS} ${DBNAME} > backup_${DBNAME}_${DATE}.sql
```
## Restore
!!! warning
=== "docker compose (Plugin)"
You should redirect the SQL dump without `docker compose` to prevent parsing errors.
=== "docker-compose (Standalone)"
You should redirect the SQL dump without `docker-compose` to prevent parsing errors.
``` bash
cd /path/to/mailcow-dockerized
source mailcow.conf
docker exec -i $(docker compose ps -q mysql-mailcow) mysql -u${DBUSER} -p${DBPASS} ${DBNAME} < backup_file.sql
```

Datei anzeigen

@ -0,0 +1,110 @@
# Cold-standby-Backup
mailcow bietet eine einfache Möglichkeit, eine konsistente Kopie von sich selbst zu erstellen, die per rsync an einen entfernten Ort ohne Ausfallzeit übertragen werden kann.
Dies kann auch verwendet werden, um Ihre mailcow auf einen neuen Server zu übertragen.
## Das sollten Sie wissen
Das bereitgestellte Skript funktioniert auf Standardinstallationen.
Es kann versagen, wenn Sie nicht unterstützte Volume Overrides verwenden. Wir unterstützen das nicht und wir werden keine Hacks einbauen, die das unterstützen. Bitte erstellen und pflegen Sie einen Fork, wenn Sie Ihre Änderungen beibehalten wollen.
Das Skript wird **die gleichen Pfade** wie Ihre Standard-mailcow-Installation verwenden. Das ist das mailcow-Basisverzeichnis - für die meisten Nutzer `/opt/mailcow-dockerized` - sowie die Mountpoints.
Um die Pfade Ihrer Quellvolumes zu finden, verwenden wir `docker inspect` und lesen das Zielverzeichnis jedes Volumes, das mit Ihrem mailcow compose Projekt verbunden ist. Das bedeutet, dass wir auch Volumes übertragen, die Sie in einer Override-Datei hinzugefügt haben. Lokale Bind-Mounts können funktionieren, müssen aber nicht.
Das Skript verwendet rsync mit dem `--delete` Flag. Das Ziel wird eine exakte Kopie der Quelle sein.
`mariabackup` wird verwendet, um eine konsistente Kopie des SQL-Datenverzeichnisses zu erstellen.
Nach dem Rsync der Daten führen wir folgenden Befehl aus (anhand der gesetzten docker compose Version in der mailcow.conf) und entfernen alte Image-Tags aus dem Ziel:
=== "docker compose (Plugin)"
``` bash
docker compose pull
```
=== "docker-compose (Standalone)"
``` bash
docker-compose pull
```
Ihre Quelle wird zu keinem Zeitpunkt verändert.
**Sie sollten sicherstellen, dass Sie die gleiche `/etc/docker/daemon.json` auf dem entfernten Ziel verwenden.**
Sie sollten keine Festplatten-Snapshots (z. B. über ZFS, LVM usw.) auf dem Ziel ausführen, während dieses Skript ausgeführt wird.
Die Versionierung ist nicht Teil dieses Skripts, wir verlassen uns auf das Ziel (Snapshots oder Backups). Sie können dafür auch jedes andere Tool verwenden.
## Vorbereiten
Sie benötigen ein SSH-fähiges Ziel und eine Schlüsseldatei, um sich mit diesem Ziel zu verbinden. Der Schlüssel sollte nicht durch ein Passwort geschützt sein, damit das Skript unbeaufsichtigt arbeiten kann.
In Ihrem mailcow-Basisverzeichnis, z.B. `/opt/mailcow-dockerized`, finden Sie eine Datei `create_cold_standby.sh`.
Bearbeiten Sie diese Datei und ändern Sie die exportierten Variablen:
```
export REMOTE_SSH_KEY=/pfad/zum/keyfile
export REMOTE_SSH_PORT=22
export REMOTE_SSH_HOST=mailcow-backup.host.name
```
Der Schlüssel muss im Besitz von root sein und darf nur von diesem gelesen werden können.
Sowohl die Quelle als auch das Ziel benötigen `rsync` >= v3.1.0.
Das Ziel muss über Docker und docker compose **v2** verfügen.
Das Skript wird Fehler automatisch erkennen und sich beenden.
Sie können die Verbindung testen, indem Sie `ssh mailcow-backup.host.name -p22 -i /path/to/keyfile` ausführen.
## Backup und Aktualisierung des Cold-Standby
Starten Sie das erste Backup, dies kann je nach Verbindung eine Weile dauern:
```
bash /opt/mailcow-dockerized/create_cold_standby.sh
```
Das war einfach, nicht wahr?
Das Aktualisieren des Cold-Standby ist genauso einfach:
```
bash /opt/mailcow-dockerized/create_cold_standby.sh
```
Es ist derselbe Befehl.
## Automatisierte Backups mit cron
Stellen Sie zunächst sicher, dass der `cron` Dienst aktiviert ist und läuft:
```
systemctl enable cron.service && systemctl start cron.service
```
Um die Backups auf dem Cold-Standby-Server zu automatisieren, können Sie einen Cron-Job verwenden. Um die Cron-Jobs für den Root-Benutzer zu bearbeiten, führen Sie aus:
```
crontab -e
```
Fügen Sie die folgenden Zeilen hinzu, um den Cold-Standby-Server täglich um 03:00 Uhr zu synchronisieren. In diesem Beispiel werden Fehler der letzten Ausführung in einer Datei protokolliert.
```
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
0 3 * * * bash /opt/mailcow-dockerized/create_cold_standby.sh 2> /var/log/mailcow-coldstandby-sync.log
```
Wenn korrekt gespeichert, sollte der Cron-Job durch folgende Eingabe angezeigt werden:
```
crontab -l
```

Datei anzeigen

@ -10,15 +10,27 @@ The provided script will work on default installations.
It may break when you use unsupported volume overrides. We don't support that and we will not include hacks to support that. Please run and maintain a fork if you plan to keep your changes.
The script will use **the same pathes** as your default mailcow installation. That is the mailcow base directory - for most users `/opt/mailcow-dockerized` - as well as the mountpoints.
The script will use **the same paths** as your default mailcow installation. That is the mailcow base directory - for most users `/opt/mailcow-dockerized` - as well as the mountpoints.
To find the pathes of your source volumes we use `docker inspect` and read the destination directory of every volume related to your mailcow compose project. This means we will also transfer volumes you may have added in a override file. Local bind mounts may or may not work.
To find the paths of your source volumes we use `docker inspect` and read the destination directory of every volume related to your mailcow compose project. This means we will also transfer volumes you may have added in an override file. Local bind mounts may or may not work.
The use rsync with the `--delete` flag. The destination will be an exact copy of the source.
The script uses rsync with the `--delete` flag. The destination will be an exact copy of the source.
`mariabackup` is used to create a consistent copy of the SQL data directory.
After rsync'ing the data we will run `docker-compose pull` and remove old image tags from the destination.
After rsync'ing the data we will run the command below (depending on your set docker compose type in mailcow.conf) and remove old image tags from the destination:
=== "docker compose (Plugin)"
``` bash
docker compose pull
```
=== "docker-compose (Standalone)"
``` bash
docker-compose pull
```
Your source will not be changed at any time.
@ -30,7 +42,7 @@ Versioning is not part of this script, we rely on the destination (snapshots or
## Prepare
You will need a SSH-enabled destination and a keyfile to connect to said destination. The key should not be protected by a password for the script to work unattended.
You will need an SSH-enabled destination and a keyfile to connect to said destination. The key should not be protected by a password for the script to work unattended.
In your mailcow base directory, e.g. `/opt/mailcow-dockerized` you will find a file `create_cold_standby.sh`.
@ -45,7 +57,7 @@ export REMOTE_SSH_HOST=mailcow-backup.host.name
The key must be owned and readable by root only.
Both the source and destination require `rsync` >= v3.1.0.
The destination must have Docker and docker-compose **v1** available.
The destination must have Docker and docker compose **v2** available.
The script will detect errors automatically and exit.
@ -95,4 +107,4 @@ If saved correctly, the cron job should be shown by typing:
```
crontab -l
```
```

Datei anzeigen

@ -0,0 +1,13 @@
### Wiederherstellung
Bitte kopieren Sie dieses Skript nicht an einen anderen Ort.
Um eine Wiederherstellung durchzuführen, **starten Sie mailcow**, verwenden Sie das Skript mit "restore" als ersten Parameter.
```
# Syntax:
# ./helper-scripts/backup_and_restore.sh restore
```
Das Skript wird Sie nach einem Speicherort für die Sicherung der mailcow_DATE-Ordner fragen.

Datei anzeigen

@ -10,5 +10,4 @@ To run a restore, **start mailcow**, use the script with "restore" as first para
```
The script will ask you for a backup location containing the mailcow_DATE folders.
The script will ask you for a backup location containing the mailcow_DATE folders.

Datei anzeigen

@ -0,0 +1,5 @@
1. Öffnen Sie die App *Email*.
2. Wenn dies Ihr erstes E-Mail-Konto ist, tippen Sie auf *Konto hinzufügen*; wenn nicht, tippen Sie auf *Mehr* und *Einstellungen* und dann *Konto hinzufügen*.
3. Wählen Sie *Microsoft Exchange ActiveSync*.
4. Geben Sie Ihre E-Mail Adresse<span class="client_variables_available"> (<code><span class="client_var_email"></span></code>)</span> und Ihr Passwort ein.
5. Tippen Sie auf *Anmelden*.

Datei anzeigen

@ -2,4 +2,4 @@
2. If this is your first email account, tap *Add Account*; if not, tap *More* and *Settings* and then *Add account*.
3. Select *Microsoft Exchange ActiveSync*.
4. Enter your email address<span class="client_variables_available"> (<code><span class="client_var_email"></span></code>)</span> and password.
5. Tap *Sign in*.
5. Tap *Sign in*.

Datei anzeigen

@ -0,0 +1,28 @@
## Methode 1 über Mobileconfig
E-Mail, Kontakte und Kalender können auf Apple-Geräten automatisch konfiguriert werden, indem ein Profil installiert wird. Um ein Profil herunterzuladen, müssen Sie sich zuerst in der mailcow UI anmelden.
## Methode 1.1: IMAP, SMTP und Cal/CardDAV
Diese Methode konfiguriert IMAP, CardDAV und CalDAV.
1. Downloaden und öffnen <span class="client_variables_unavailable">die Datei von <i>https://${MAILCOW_HOSTNAME}/mobileconfig.php</i></span><span class="client_variables_available"><a class="client_var_link" href="mobileconfig.php">mailcow.mobileconfig</a></span>.
2. Geben Sie den Entsperrungscode (iPhone) oder das Computerpasswort (Mac) ein.
3. Geben Sie Ihr E-Mail-Passwort dreimal ein, wenn Sie dazu aufgefordert werden.
## Methode 1.2: IMAP, SMTP (kein DAV)
Diese Methode konfiguriert nur IMAP und SMTP.
1. Downloaden und öffnen Sie <span class="client_variables_unavailable">die Datei von <i>https://${MAILCOW_HOSTNAME}/mobileconfig.php?only_email</i></span><span class="client_variables_available"><a class="client_var_link" href="mobileconfig.php?only_email">mailcow.mobileconfig</a></span>.
2. Geben Sie den Entsperrungscode (iPhone) oder das Computerpasswort (Mac) ein.
3. Geben Sie Ihr E-Mail-Passwort dreimal ein, wenn Sie dazu aufgefordert werden.
## Methode 2 (Exchange ActiveSync-Emulation)
Unter iOS wird auch Exchange ActiveSync als Alternative zum obigen Verfahren unterstützt. Es hat den Vorteil, dass es Push-E-Mail unterstützt (d. h. Sie werden sofort über eingehende Nachrichten benachrichtigt), hat aber einige Einschränkungen, z. B. unterstützt es nicht mehr als drei E-Mail-Adressen pro Kontakt in Ihrem Adressbuch. Befolgen Sie die folgenden Schritte, wenn Sie stattdessen Exchange verwenden möchten.
1. Öffnen Sie die App *Einstellungen*, tippen Sie auf *Mail*, tippen Sie auf *Konten*, tippen Sie auf *Konto hinzufügen*, wählen Sie *Exchange*.
2. Geben Sie Ihre E-Mail Adresse<span class="client_variables_available"> (<code><span class="client_var_email"></span></code>)</span> ein und tippen Sie auf *Weiter*.
3. Geben Sie Ihr Passwort ein und tippen Sie erneut auf *Weiter*.
4. Tippen Sie abschließend auf *Speichern*.

Datei anzeigen

@ -25,4 +25,4 @@ On iOS, Exchange ActiveSync is also supported as an alternative to the procedure
1. Open the *Settings* app, tap *Mail*, tap *Accounts*, tap *Add Acccount*, select *Exchange*.
2. Enter your email address<span class="client_variables_available"> (<code><span class="client_var_email"></span></code>)</span> and tap *Next*.
3. Enter your password, tap *Next* again.
4. Finally, tap *Save*.
4. Finally, tap *Save*.

Datei anzeigen

@ -0,0 +1,7 @@
1. Starten Sie eM Client.
2. Wenn Sie eM Client zum ersten Mal starten, werden Sie aufgefordert, Ihr Konto einzurichten. Fahren Sie mit Schritt 4 fort.
3. Gehen Sie oben auf *Menü*, wählen Sie *Tools* und *Konten*.
4. Geben Sie Ihre E-Mail Adresse ein<span class="client_variables_available"> (<code><span class="client_var_email"></span></code>)</span> und klicken Sie auf *Jetzt starten*.
5. Geben Sie Ihr Passwort ein und klicken Sie auf *Weiter*.
6. Geben Sie Ihren Namen ein<span class="client_variables_available"> (<code><span class="client_var_name"></span></code>)</span> und klicken Sie auf *Weiter*.
7. Klicken Sie auf *Fertigstellen*.

Datei anzeigen

@ -4,4 +4,4 @@
4. Enter your email address<span class="client_variables_available"> (<code><span class="client_var_email"></span></code>)</span> and click *Start Now*.
5. Enter your password and click *Continue*.
6. Enter your name<span class="client_variables_available"> (<code><span class="client_var_name"></span></code>)</span> and click *Next*.
7. Click *Finish*.
7. Click *Finish*.

Datei anzeigen

@ -0,0 +1,16 @@
1. Starten Sie Kontact.
2. Wenn Sie Kontact oder KMail zum ersten Mal gestartet haben, werden Sie aufgefordert, Ihr Konto einzurichten. Fahren Sie mit Schritt 4 fort.
3. Gehen Sie zu *Mail* in der Seitenleiste. Gehen Sie zum Menü *Tools* und wählen Sie *Account Wizard*.
4. Geben Sie Ihren Namen <span class="client_variables_available"> (<code><span class="client_var_name"></span></code>)</span>, E-Mail Adresse<span class="client_variables_available"> (<code><span class="client_var_email"></span></code>)</span> und Ihr Passwort ein. Klicken Sie auf *Weiter*.
5. Klicken Sie auf *Konto erstellen*. Wenn Sie dazu aufgefordert werden, geben Sie Ihr Passwort erneut ein und klicken Sie auf *OK*.
6. Schließen Sie das Fenster, indem Sie auf *Beenden* klicken.
7. Gehen Sie zu *Kalender* in der Seitenleiste.
8. Gehen Sie zum Menü *Einstellungen* und wählen Sie *Konfigurieren Sie KOrganizer*.
9. Gehen Sie zur Registerkarte *Kalender* und klicken Sie auf die Schaltfläche *Hinzufügen*.
10. Wählen Sie *DAV-Groupware-Ressource* und klicken Sie auf *OK*.
11. Geben Sie Ihre E-Mail Adresse<span class="client_variables_available"> (<code><span class="client_var_email"></span></code>)</span> und Ihr Passwort ein. Klicken Sie auf *Weiter*.
12. Wählen Sie *ScalableOGo* aus dem Dropdown-Menü und klicken Sie auf *Weiter*.
13. Geben Sie den<span class="client_variables_available"> <code><span class="client_var_host"></span><span class="client_var_port"></span></code></span><span class="client_variables_unavailable"> mailcow Hostname</span> in das Feld *Host* ein und klicken Sie auf *Weiter*.
14. Klicken Sie auf *Verbindung testen* und dann auf *Fertigstellen*. Klicken Sie abschließend zweimal auf *OK*.
Sobald Sie Kontact eingerichtet haben, können Sie KMail, KOrganizer und KAddressBook auch einzeln verwenden.

Datei anzeigen

@ -13,4 +13,4 @@
13. Enter<span class="client_variables_available"> <code><span class="client_var_host"></span><span class="client_var_port"></span></code></span><span class="client_variables_unavailable"> your mailcow hostname</span> into the *Host* field and click *Next*.
14. Click *Test Connection* and then *Finish*. Finally, click *OK* twice.
Once you have set up Kontact, you can also use KMail, KOrganizer and KAddressBook individually.
Once you have set up Kontact, you can also use KMail, KOrganizer and KAddressBook individually.

Datei anzeigen

@ -0,0 +1,23 @@
Diese Anweisungen gelten nur für unveränderte Portbindungen!
## E-Mail
|Dienst|Verschlüsselung|Host|Port|
|--- |--- |--- |--- |
|IMAP|STARTTLS|<span class="client_variables_available"> <code><span class="client_var_host"></span><span class="client_var_port"></span></code></span><span class="client_variables_unavailable">mailcow hostname</span>|143|
|IMAPS|SSL|<span class="client_variables_available"> <code><span class="client_var_host"></span><span class="client_var_port"></span></code></span><span class="client_variables_unavailable">mailcow hostname</span>|993|
|POP3|STARTTLS|<span class="client_variables_available"> <code><span class="client_var_host"></span><span class="client_var_port"></span></code></span><span class="client_variables_unavailable">mailcow hostname</span>|110|
|POP3S|SSL|<span class="client_variables_available"> <code><span class="client_var_host"></span><span class="client_var_port"></span></code></span><span class="client_variables_unavailable">mailcow hostname</span>|995|
|SMTP|STARTTLS|<span class="client_variables_available"> <code><span class="client_var_host"></span><span class="client_var_port"></span></code></span><span class="client_variables_unavailable">mailcow hostname</span>|587|
|SMTPS|SSL|<span class="client_variables_available"> <code><span class="client_var_host"></span><span class="client_var_port"></span></code></span><span class="client_variables_unavailable">mailcow hostname</span>|465|
Bitte verwenden Sie "plain" als Authentifizierungsmechanismus. Entgegen der Annahme werden keine Passwörter im Klartext übertragen, da ohne TLS keine Authentifizierung stattfinden darf.
## Kontakte und Kalender
SOGos Standard-URLs für Kalender (CalDAV) und Kontakte (CardDAV):
1. **CalDAV** <span class="client_variables_unavailable">https://mail.example.com/SOGo/dav/user@example.com/Calendar/personal/</span><span class="client_variables_available">https://<span class="client_var_host"></span>/SOGo/dav/<span class="client_var_email"></span>/Calendar/personal/</span>
2. **CardDAV** <span class="client_variables_unavailable">https://mail.example.com/SOGo/dav/user@example.com/Contacts/personal/</span><span class="client_variables_available">https://<span class="client_var_host"></span>/SOGo/dav/<span class="client_var_email"></span>/Contacts/personal/</span>
Einige Anwendungen verlangen möglicherweise die Verwendung von <span class="client_variables_unavailable">https://mail.example.com/SOGo/dav/</span><span class="client_variables_available">https://<span class="client_var_host"></span>/SOGo/dav/</span> _oder_ den vollständigen Pfad zu Ihrem Kalender, der in SOGo gefunden und kopiert werden kann.

Datei anzeigen

@ -11,13 +11,14 @@ These instructions are valid for unchanged port bindings only!
|SMTP|STARTTLS|<span class="client_variables_available"> <code><span class="client_var_host"></span><span class="client_var_port"></span></code></span><span class="client_variables_unavailable">mailcow hostname</span>|587|
|SMTPS|SSL|<span class="client_variables_available"> <code><span class="client_var_host"></span><span class="client_var_port"></span></code></span><span class="client_variables_unavailable">mailcow hostname</span>|465|
Please use "plain" as authentication mechanisms. Contrary to the assumption no passwords will be transferred plain text, as no authentication is allowed to take place without TLS.
Please use the "plain" password setting as the authentication mechanism. Contrary to what the name implies, the password will not be transferred to the server in plain text as no authentication is allowed to take place without TLS.
## Contacts and calendars
SOGos default calendar (CalDAV) and contacts (CardDAV) URLs:
1. **CalDAV** - https://mail.example.com/SOGo/dav/user@example.com/Calendar/personal/
2. **CardDAV** - https://mail.example.com/SOGo/dav/user@example.com/Contacts/personal/
1. **CalDAV** <span class="client_variables_unavailable">https://mail.example.com/SOGo/dav/user@example.com/Calendar/personal/</span><span class="client_variables_available">https://<span class="client_var_host"></span>/SOGo/dav/<span class="client_var_email"></span>/Calendar/personal/</span>
Some applications may require you to use https://mail.example.com/SOGo/dav/ _or_ the full path to your calendar, which can be found and copied from within SOGo.
2. **CardDAV** <span class="client_variables_unavailable">https://mail.example.com/SOGo/dav/user@example.com/Contacts/personal/</span><span class="client_variables_available">https://<span class="client_var_host"></span>/SOGo/dav/<span class="client_var_email"></span>/Contacts/personal/</span>
Some applications may require you to use <span class="client_variables_unavailable">https://mail.example.com/SOGo/dav/</span><span class="client_variables_available">https://<span class="client_var_host"></span>/SOGo/dav/</span> _or_ the full path to your calendar, which can be found and copied from within SOGo.

Datei anzeigen

@ -0,0 +1,48 @@
<div class="client_outlookEAS_enabled" markdown="1">
## Outlook 2016 oder höher von Office 365 unter Windows
<div class="client_variables_unavailable" markdown="1">
Dies gilt nur, wenn Ihr Serveradministrator EAS für Outlook nicht deaktiviert hat. Wenn es deaktiviert ist, folgen Sie bitte stattdessen der Anleitung für Outlook 2007.
</div>
Outlook 2016 hat ein [Problem mit der automatischen Erkennung](https://github.com/mailcow/mailcow-dockerized/issues/615). Nur Outlook von Office 365 ist betroffen. Wenn Sie Outlook aus einer anderen Quelle installiert haben, folgen Sie bitte der Anleitung für Outlook 2013 oder höher.
Für EAS müssen Sie den alten Assistenten verwenden, indem Sie `C:\Program Files (x86)\Microsoft Office\root\Office16\OLCFG.EXE` starten. Wenn diese Anwendung geöffnet wird, können Sie mit Schritt 4 der Anleitung für Outlook 2013 unten fortfahren.
Wenn die Anwendung nicht geöffnet wird, können Sie den [Assistenten zum Erstellen eines neuen Kontos vollständig deaktivieren](https://support.microsoft.com/en-us/help/3189194/how-to-disable-simplified-account-creation-in-outlook) und die nachstehende Anleitung für Outlook 2013 befolgen.
## Outlook 2007 oder höher auf Windows (Kalender/Kontakte via CalDav Synchronizer)
</div>
1. Downloaden und installieren Sie [Outlook CalDav Synchronizer](https://caldavsynchronizer.org).
2. Starten Sie Outlook.
3. Wenn Sie Outlook zum ersten Mal gestartet haben, werden Sie aufgefordert, Ihr Konto einzurichten. Fahren Sie mit Schritt 5 fort.
4. Gehen Sie zum Menü *Datei* und klicken Sie auf *Konto hinzufügen*.
5. Geben Sie Ihren Namen<span class="client_variables_available"> (<code><span class="client_var_name"></span></code>)</span>, Ihre E-Mail Adresse<span class="client_variables_available"> (<code><span class="client_var_email"></span></code>)</span> und Ihr Passwort ein. Klicken Sie auf *Weiter*.
6. Klicken Sie auf *Finish*.
7. Gehen Sie zur Multifunktionsleiste *CalDav Synchronizer* und klicken Sie auf *Synchronisationsprofile*.
8. Klicken Sie auf die zweite Schaltfläche oben (*Mehrere Profile hinzufügen*), wählen Sie *Sogo* und klicken Sie auf *Ok*.
9. Klicken Sie auf die Schaltfläche *IMAP/POP3-Kontoeinstellungen abrufen*.
10. Klicken Sie auf *Ressourcen erkennen und Outlook-Ordnern zuweisen*.
11. Wählen Sie im Fenster *Ressource auswählen* Ihren Hauptkalender (in der Regel *Persönlicher Kalender*), klicken Sie auf die Schaltfläche *...*, weisen Sie ihn dem Ordner *Kalender* zu, und klicken Sie auf *OK*. Gehen Sie zu den Registerkarten *Adressbücher* und *Aufgaben* und wiederholen Sie den Vorgang entsprechend. Weisen Sie nicht mehreren Kalendern, Adressbüchern oder Aufgabenlisten zu!
12. Schließen Sie alle Fenster mit den Tasten *OK*.
## Outlook 2013 oder höher unter Windows (Active Sync - nicht empfohlen)
<div class="client_variables_unavailable" markdown="1">
Dies gilt nur, wenn Ihr Serveradministrator EAS für Outlook nicht deaktiviert hat. Wenn es deaktiviert ist, folgen Sie bitte stattdessen der Anleitung für Outlook 2007.
</div>
1. Starten Sie Outlook.
2. Wenn Sie Outlook zum ersten Mal gestartet haben, werden Sie aufgefordert, Ihr Konto einzurichten. Fahren Sie mit Schritt 4 fort.
3. Öffnen Sie das Menü *Datei* und klicken Sie auf *Konto hinzufügen*.
4. Geben Sie Ihren Namen<span class="client_variables_available"> (<code><span class="client_var_name"></span></code>)</span>, Ihre E-Mail Adresse<span class="client_variables_available"> (<code><span class="client_var_email"></span></code>)</span> und Ihr Passwort ein. Klicken Sie auf *Weiter*.
5. Wenn Sie dazu aufgefordert werden, geben Sie Ihr Passwort erneut ein, markieren Sie *Meine Anmeldedaten speichern* und klicken Sie auf *OK*.
6. Klicken Sie auf die Schaltfläche *Zulassen*.
7. Klicken Sie auf *Fertigstellen*.
## Outlook 2011 oder höher unter macOS
Die Mac-Version von Outlook synchronisiert keine Kalender und Kontakte und wird daher nicht unterstützt.

Datei anzeigen

@ -12,27 +12,13 @@ For EAS you must use the old assistant by launching `C:\Program Files (x86)\Micr
If it does not open, you can completely [disable the new account creation wizard](https://support.microsoft.com/en-us/help/3189194/how-to-disable-simplified-account-creation-in-outlook) and follow the guide for Outlook 2013 below.
## Outlook 2013 or higher on Windows
<div class="client_variables_unavailable" markdown="1">
This is only applicable if your server administrator has not disabled EAS for Outlook. If it is disabled, please follow the guide for Outlook 2007 instead.
</div>
1. Launch Outlook.
2. If this is the first time you launched Outlook, it asks you to set up your account. Proceed to step 4.
3. Go to the *File* menu and click *Add Account*.
4. Enter your name<span class="client_variables_available"> (<code><span class="client_var_name"></span></code>)</span>, email address<span class="client_variables_available"> (<code><span class="client_var_email"></span></code>)</span> and your password. Click *Next*.
5. When prompted, enter your password again, check *Remember my credentials* and click *OK*.
6. Click the *Allow* button.
7. Click *Finish*.
## Outlook 2007 or 2010 on Windows
</div>
<div class="client_outlookEAS_disabled" markdown="1">
## Outlook 2007 or higher on Windows
## Outlook 2007 or higher on Windows (Calender/Contacts via CalDav Synchronizer)
</div>
@ -49,6 +35,20 @@ If it does not open, you can completely [disable the new account creation wizard
11. In the *Select Resource* window that pops up, select your main calendar (usually *Personal Calendar*), click the *...* button, assign it to *Calendar*, and click *OK*. Go to the *Address Books* and *Tasks* tabs and repeat repeat the process accordingly. Do not assign multiple calendars, address books or task lists!
12. Close all windows with the *OK* buttons.
## Outlook 2013 or higher on Windows (Active Sync - not recommended)
<div class="client_variables_unavailable" markdown="1">
This is only applicable if your server administrator has not disabled EAS for Outlook. If it is disabled, please follow the guide for Outlook 2007 instead.
</div>
1. Launch Outlook.
2. If this is the first time you launched Outlook, it asks you to set up your account. Proceed to step 4.
3. Go to the *File* menu and click *Add Account*.
4. Enter your name<span class="client_variables_available"> (<code><span class="client_var_name"></span></code>)</span>, email address<span class="client_variables_available"> (<code><span class="client_var_email"></span></code>)</span> and your password. Click *Next*.
5. When prompted, enter your password again, check *Remember my credentials* and click *OK*.
6. Click the *Allow* button.
7. Click *Finish*.
## Outlook 2011 or higher on macOS
The Mac version of Outlook does not synchronize calendars and contacts and therefore is not supported.

Datei anzeigen

@ -0,0 +1,29 @@
<ol>
<li>
Öffnen Sie Thunderbird.
</li>
<li>
Wenn Sie Thunderbird zum ersten Mal öffnen, werden Sie gefragt, ob Sie eine neue E-Mail-Adresse einrichten möchten. Klicken Sie auf <i>Überspringen und eine bereits vorhandene E-Mail-Adresse verwenden</i> und gehen Sie zum Schritt 4.
</li>
<li>
Klicken Sie auf das Menü <i>Datei</i> und wählen Sie <i>Neu</i>, <i>Bestehendes Mail-Konto...</i>.
</li>
<li>
Geben Sie Ihren Namen<span class="client_variables_available"> (<code><span class="client_var_name"></span></code>)</span>, Ihre E-Mail-Adresse<span class="client_variables_available"> (<code><span class="client_var_email"></span></code>)</span> und Ihr Passwort ein. Stellen Sie sicher, dass die Option <i>Passwort merken</i> aktiviert ist und klicken Sie auf <i>Weiter</i>.
</li>
<li>
Sobald die Konfiguration automatisch erkannt wurde, stellen Sie sicher, dass <i>IMAP</i> ausgewählt ist und klicken Sie auf <i>Fertig</i>.
</li>
<li>
Um Ihre Kontakte vom Server zu verwenden, klicken Sie auf den Pfeil neben "Adressbücher" und auf die Schaltfläche <i>Verbinden</i> für jedes Adressbuch, das Sie verwenden möchten.
</li>
<li>
Um Ihre Kalender vom Server zu verwenden, klicken Sie auf den Pfeil neben "Kalender" und dann auf die Schaltfläche <i>Verbinden</i> für jeden Kalender, den Sie verwenden möchten.
</li>
<li>
(Optional) Wenn Sie alle Unterordner synchronisieren möchten, gehen Sie zum Menü <i>Kontoeinstellungen</i> und wählen Sie <i>Server-Einstellungen</i>. Klicken Sie im Tab <i>Server-Einstellungen</i> auf die Schaltfläche <i>Erweitert</i>. In dem Fenster <i>Erweiterte Kontoeinstellungen</i> deaktivieren Sie das Kontrollkästchen "Nur abonnierte Ordner anzeigen". Klicken Sie auf <i>OK</i>, um die Änderungen zu speichern.
</li>
<li>
Klicken Sie auf <i>Beenden</i>, um das Fenster "Konto-Einrichtung" zu schließen.
</li>
</ol>

Datei anzeigen

@ -21,7 +21,9 @@
To use your calendars from the server, click on the arrow next to "Calendars" and click the <i>Connect</i> button on each calendar you would like to use.
</li>
<li>
Click <i>Finish to close the Account Setup window.
(Optional) If you want Thunderbird to sync all subfolders, go to the <i>Account Settings</i> menu and select <i>Server Settings</i>. In the <i>Server Settings</i> tab, click on the <i>Advanced</i> button. In the <i>Advanced Account Settings</i> window, uncheck the "Show only subscribed folders" checkbox. Click <i>OK</i> to save the changes.
</li>
</ol>
<li>
Click <i>Finish</i> to close the Account Setup window.
</li>
</ol>

Datei anzeigen

@ -0,0 +1,10 @@
Windows 8 und höher unterstützen E-Mail, Kontakte und Kalender über Exchange ActiveSync.
1. Öffnen Sie die App *Mail*.
2. Wenn Sie Mail noch nicht verwendet haben, können Sie im Hauptfenster auf *Konto hinzufügen* klicken. Fahren Sie mit Schritt 4 fort.
3. Klicken Sie auf *Konten* in der Seitenleiste links und dann auf *Konto hinzufügen* ganz rechts.
4. Wählen Sie *Exchange*.
5. Geben Sie Ihre E-Mail Adresse<span class="client_variables_available"> (<code><span class="client_var_email"></span></code>)</span> ein und klicken Sie auf *Weiter*..
6. Geben Sie Ihr Passwort ein und klicken Sie auf *Anmelden*.
Sobald Sie die Mail-App eingerichtet haben, können Sie auch die Apps "Kontakte" und "Kalender" verwenden.

Datei anzeigen

@ -7,4 +7,4 @@ Windows 8 and higher support email, contacts and calendar via Exchange ActiveSyn
5. Enter your email address<span class="client_variables_available"> (<code><span class="client_var_email"></span></code>)</span> and click *Next*.
6. Enter your password and click *Log in*.
Once you have set up the Mail app, you can also use the People and Calendar apps.
Once you have set up the Mail app, you can also use the People and Calendar apps.

Datei anzeigen

@ -1,4 +0,0 @@
1. Open the *Settings* app. Select *email + accounts* and tap *add an account*.
2. Tap *Exchange*.
3. Enter your email address<span class="client_variables_available"> (<code><span class="client_var_email"></span></code>)</span> and your password. Tap *Sign in*.
4. Tap *done*.

25
docs/client/client.de.md Normale Datei
Datei anzeigen

@ -0,0 +1,25 @@
mailcow unterstützt eine Vielzahl von E-Mail-Clients, sowohl auf Desktop-Computern als auch auf Smartphones.
Im Folgenden finden Sie eine Reihe von Konfigurationsanleitungen, die erklären, wie Sie Ihr mailcow-Konto konfigurieren können.
<div class="client_variables_unavailable" markdown="1">
<div class="admonition tip">
<p class="admonition-title">Tipp</p>
Wenn Sie auf diese Seite zugreifen, indem Sie sich bei Ihrem mailcow-Server anmelden und auf den Link "Konfigurationsanleitungen für E-Mail-Clients und Smartphones anzeigen" klicken, werden alle Anleitungen mit Ihrer E-Mail-Adresse und Ihrem Servernamen personalisiert.
</div>
</div>
<div class="client_variables_available" markdown="1">
<div class="admonition success">
<p class="admonition-title">Erfolgreich</p>
Da Sie diese Seite aufgerufen haben, nachdem Sie sich in Ihren mailcow-Server eingeloggt haben, wurden alle Anleitungen mit Ihrer E-Mail-Adresse und Ihrem Servernamen personalisiert.
</div>
</div>
- [Android](client-android.md)
- [Apple iOS / macOS](client-apple.md)
- [eM Client](client-emclient.md)
- [KDE Kontact / KMail](client-kontact.md)
- [Microsoft Outlook](client-outlook.md)
- [Mozilla Thunderbird](client-thunderbird.md)
- [Windows Mail](client-windows.md)
- [Manual configuration](client-manual.md)

Datei anzeigen

@ -15,12 +15,11 @@ Since you accessed this page after logging into your mailcow server, all of the
</div>
</div>
- [Android](client-android)
- [Apple iOS / macOS](client-apple)
- [eM Client](client-emclient)
- [KDE Kontact / KMail](client-kontact)
- [Microsoft Outlook](client-outlook)
- [Mozilla Thunderbird](client-thunderbird)
- [Windows Mail](client-windows)
- [Windows Phone](client-windowsphone)
- [Manual configuration](client-manual)
- [Android](client-android.md)
- [Apple iOS / macOS](client-apple.md)
- [eM Client](client-emclient.md)
- [KDE Kontact / KMail](client-kontact.md)
- [Microsoft Outlook](client-outlook.md)
- [Mozilla Thunderbird](client-thunderbird.md)
- [Windows Mail](client-windows.md)
- [Manual configuration](client-manual.md)

Datei anzeigen

@ -1,27 +0,0 @@
A quick guide to deeply analyze a malfunctioning Rspamd.
```
docker-compose exec rspamd-mailcow bash
if ! grep -qi 'apt-stable-asan' /etc/apt/sources.list.d/rspamd.list; then
sed -i 's/apt-stable/apt-stable-asan/i' /etc/apt/sources.list.d/rspamd.list
fi
apt-get update ; apt-get upgrade rspamd
nano /docker-entrypoint.sh
# Before "exec "$@"" add the following lines:
export G_SLICE=always-malloc
export ASAN_OPTIONS=new_delete_type_mismatch=0:detect_leaks=1:detect_odr_violation=0:log_path=/tmp/rspamd-asan:quarantine_size_mb=2048:malloc_context_size=8:fast_unwind_on_malloc=0
```
Restart Rspamd: `docker-compose restart rspamd-mailcow`
Your memory consumption will increase by a lot, it will also steadily grow, which is not related to a possible memory leak you are looking for.
Leave the container running for a few minutes, hours or days (it should match the time you usually wait for the leak to "happen") and restart it: `docker-compose restart rspamd-mailcow`.
Now enter the container by running `docker-compose exec rspamd-mailcow bash`, change the directory to /tmp and copy the asan Files to your desired location or upload them via termbin.com (`cat /tmp/rspamd-asan.* | nc termbin.com 9999`).

Datei anzeigen

@ -1,14 +0,0 @@
!!! warning
This section only applies for Dockers default logging driver (JSON).
To view the logs of all mailcow: dockerized related containers, you can use `docker-compose logs` inside your mailcow-dockerized folder that contains your `mailcow.conf`. This is usually a bit much, but you could trim the output with `--tail=100` to the last 100 lines per container, or add a `-f` to follow the live output of all your services.
To view the logs of a specific service you can use `docker-compose logs [options] $service_name`
!!! info
The available options for the command **docker-compose logs** are:
- **--no-color**: Produce monochrome output.
- **-f**: Follow the log output.
- **-t**: Show timestamps.
- **--tail="all"**: Number of lines to show from the end of the logs for each container.

Datei anzeigen

@ -1,22 +0,0 @@
## MariaDB: Aria recovery after crash
If your server crashed and MariaDB logs an error similar to `[ERROR] mysqld: Aria recovery failed. Please run aria_chk -r on all Aria tables (*.MAI) and delete all aria_log.######## files` you may want to try the following to recover the database to a healthy state:
Start the stack and wait until mysql-mailcow begins to report a restarting state. Check by running `docker-compose ps`.
Now run the following commands:
```
# Stop the stack, don't run "down"
docker-compose stop
# Run a bash in the stopped container as user mysql
docker-compose run --rm --entrypoint '/bin/sh -c "gosu mysql bash"' mysql-mailcow
# cd to the SQL data directory
cd /var/lib/mysql
# Run aria_chk
aria_chk --check --force */*.MAI
# Delete aria log files
rm aria_log.*
```
Now run `docker-compose down` followed by `docker-compose up -d`.

Datei anzeigen

@ -1,16 +0,0 @@
## Run a manual mysql_upgrade
This step is usually not necessary.
```
docker-compose stop mysql-mailcow watchdog-mailcow
docker-compose run --rm --entrypoint '/bin/sh -c "gosu mysql mysqld --skip-grant-tables & sleep 10 && bash && exit 0"' mysql-mailcow
```
As soon as the SQL shell spawned, run `mysql_upgrade` and exit the container:
```
mysql_upgrade
exit
```

Datei anzeigen

@ -1,17 +0,0 @@
@import url('https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400i,700,700i');
.md-nav {
font-size: 14px;
line-height: 1.4;
}
.md-typeset {
font-size: 14px;
line-height: 1.5;
}
body, input {
font-family: "Source Sans Pro", "Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;
color: black;
}
code {
display: inline-block;
white-space: pre-wrap;
}

Datei anzeigen

@ -1,125 +0,0 @@
DMARC Reporting done via Rspamd DMARC Module.
Rspamd documentation can be found here: https://rspamd.com/doc/modules/dmarc.html
**Important:**
1. Change `example.com`, `mail.example.com` and `Example` to reflect your setup
2. DMARC reporting requires additional attention, especially over the first few days
3. All receiving domains hosted on mailcow send from one reporting domain. It is recommended to use the parent domain of your `MAILCOW_HOSTNAME`:
- If your `MAILCOW_HOSTNAME` is `mail.example.com` change the following config to `domain = "example.com";`
- Set `email` equally, e.g. `email = "noreply-dmarc@example.com";`
4. It is optional but recommended to create an email user `noreply-dmarc` in mailcow to handle bounces.
## Enable DMARC reporting
Create the file `data/conf/rspamd/local.d/dmarc.conf` and set the following content:
```
reporting {
enabled = true;
email = 'noreply-dmarc@example.com';
domain = 'example.com';
org_name = 'Example';
helo = 'rspamd';
smtp = 'postfix';
smtp_port = 25;
from_name = 'Example DMARC Report';
msgid_from = 'rspamd.mail.example.com';
max_entries = 2k;
keys_expire = 2d;
}
```
Create or modify `docker-compose.override.yml` in the mailcow-dockerized base directory:
```
version: '2.1'
services:
rspamd-mailcow:
environment:
- MASTER=${MASTER:-y}
labels:
ofelia.enabled: "true"
ofelia.job-exec.rspamd_dmarc_reporting.schedule: "@every 24h"
ofelia.job-exec.rspamd_dmarc_reporting.command: "/bin/bash -c \"[[ $${MASTER} == y ]] && /usr/bin/rspamadm dmarc_report > /var/lib/rspamd/dmarc_reports_last_log 2>&1 || exit 0\""
ofelia-mailcow:
depends_on:
- rspamd-mailcow
```
Run `docker-compose up -d`
## Send a copy reports to yourself
To receive a hidden copy of reports generated by Rspamd you can set a `bcc_addrs` list in the `reporting` config section of `data/conf/rspamd/local.d/dmarc.conf`:
```
reporting {
enabled = true;
email = 'noreply-dmarc@example.com';
bcc_addrs = ["noreply-dmarc@example.com","parsedmarc@example.com"];
[...]
```
Rspamd will load changes in real time, so you won't need to restart the container at this point.
This can be useful if you...
- ...want to check that your DMARC reports are sent correctly and authenticated.
- ...want to analyze your own reports to get statistics, i.e. to use with ParseDMARC or other analytic systems.
## Troubleshooting
Check when the report schedule last ran:
```
docker-compose exec rspamd-mailcow date -r /var/lib/rspamd/dmarc_reports_last_log
```
See the latest report output:
```
docker-compose exec rspamd-mailcow cat /var/lib/rspamd/dmarc_reports_last_log
```
Manually trigger a DMARC report:
```
docker-compose exec rspamd-mailcow rspamadm dmarc_report
```
Validate that Rspamd has recorded data in Redis:
```
docker-compose exec redis-mailcow redis-cli KEYS 'dmarc;*'
docker-compose exec redis-mailcow redis-cli HGETALL "dmarc;example.com;20211231"
```
## Change DMARC reporting frequency
In the example above reports are sent once every 24 hours.
Olefia schedule has same implementation as `cron` in Go, supported syntax described at [cron Documentation](https://pkg.go.dev/github.com/robfig/cron)
To change schedule:
1. Edit `docker-compose.override.yml` and a djust `ofelia.job-exec.rspamd_dmarc_reporting.schedule: "@every 24h"` to a desired value, for example to `"@midnight"`
2. Run `docker-compose up -d`
3. Run `docker-compose restart ofelia-mailcow`
## Disable DMARC Reporting
To disable reporting:
1. Set `enabled` to `false` in `data/conf/rspamd/local.d/dmarc.conf`
2. Revert changes done in `docker-compose.override.yml` to `rspamd-mailcow` and `ofelia-mailcow`
3. Run `docker-compose up -d`

Datei anzeigen

@ -1,265 +0,0 @@
You don't need to change the Nginx site that comes with mailcow: dockerized.
mailcow: dockerized trusts the default gateway IP 172.22.1.1 as proxy.
1\. Make sure you change HTTP_BIND and HTTPS_BIND in `mailcow.conf` to a local address and set the ports accordingly, for example:
``` bash
HTTP_BIND=127.0.0.1
HTTP_PORT=8080
HTTPS_BIND=127.0.0.1
HTTPS_PORT=8443
```
This will also change the bindings inside the Nginx container! This is important, if you decide to use a proxy within Docker.
**IMPORTANT:** Do not use port 8081, 9081 or 65510!
Recreate affected containers by running `docker-compose up -d`.
**Important information, please read them carefully!**
!!! info
If you plan to use a reverse proxy and want to use another server name that is **not** MAILCOW_HOSTNAME, you need to read **Adding additional server names for mailcow UI** at the bottom of this page.
!!! warning
Make sure you run `generate_config.sh` before you enable any site configuration examples below.
The script `generate_config.sh` copies snake-oil certificates to the correct location, so the services will not fail to start due to missing files.
!!! warning
If you enable TLS SNI (`ENABLE_TLS_SNI` in mailcow.conf), the certificate paths in your reverse proxy **must** match the correct paths in data/assets/ssl/{hostname}. The certificates will be split into `data/assets/ssl/{hostname1,hostname2,etc}` and therefore will not work when you copy the examples from below pointing to `data/assets/ssl/cert.pem` etc.
!!! info
Using the site configs below will **forward ACME requests to mailcow** and let it handle certificates itself.
The downside of using mailcow as ACME client behind a reverse proxy is, that you will need to reload your webserver after acme-mailcow changed/renewed/created the certificate. You can either reload your webserver daily or write a script to watch the file for changes.
On many servers logrotate will reload the webserver daily anyway.
If you want to use a local certbot installation, you will need to change the SSL certificate parameters accordingly.
**Make sure you run a post-hook script** when you decide to use external ACME clients. You will find an example at the bottom of this page.
2\. Configure your local webserver as reverse proxy:
### Apache 2.4
Required modules:
```
a2enmod rewrite proxy proxy_http headers ssl
```
Let's Encrypt will follow our rewrite, certificate requests in mailcow will work fine.
**Take care of highlighted lines.**
``` apache hl_lines="2 10 11 17 22 23 24 25 30 31"
<VirtualHost *:80>
ServerName CHANGE_TO_MAILCOW_HOSTNAME
ServerAlias autodiscover.*
ServerAlias autoconfig.*
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^/?(.*) https://%{HTTP_HOST}/$1 [R=301,L]
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
ProxyPreserveHost On
ProxyAddHeaders On
RequestHeader set X-Forwarded-Proto "http"
</VirtualHost>
<VirtualHost *:443>
ServerName CHANGE_TO_MAILCOW_HOSTNAME
ServerAlias autodiscover.*
ServerAlias autoconfig.*
# You should proxy to a plain HTTP session to offload SSL processing
ProxyPass /Microsoft-Server-ActiveSync http://127.0.0.1:8080/Microsoft-Server-ActiveSync connectiontimeout=4000
ProxyPassReverse /Microsoft-Server-ActiveSync http://127.0.0.1:8080/Microsoft-Server-ActiveSync
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
ProxyPreserveHost On
ProxyAddHeaders On
RequestHeader set X-Forwarded-Proto "https"
SSLCertificateFile MAILCOW_PATH/data/assets/ssl/cert.pem
SSLCertificateKeyFile MAILCOW_PATH/data/assets/ssl/key.pem
# If you plan to proxy to a HTTPS host:
#SSLProxyEngine On
# If you plan to proxy to an untrusted HTTPS host:
#SSLProxyVerify none
#SSLProxyCheckPeerCN off
#SSLProxyCheckPeerName off
#SSLProxyCheckPeerExpire off
</VirtualHost>
```
### Nginx
Let's Encrypt will follow our rewrite, certificate requests will work fine.
**Take care of highlighted lines.**
``` hl_lines="4 10 12 13 25 39"
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name CHANGE_TO_MAILCOW_HOSTNAME autodiscover.* autoconfig.*;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name CHANGE_TO_MAILCOW_HOSTNAME autodiscover.* autoconfig.*;
ssl_certificate MAILCOW_PATH/data/assets/ssl/cert.pem;
ssl_certificate_key MAILCOW_PATH/data/assets/ssl/key.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
# See https://ssl-config.mozilla.org/#server=nginx for the latest ssl settings recommendations
# An example config is given below
ssl_protocols TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5:!SHA1:!kRSA;
ssl_prefer_server_ciphers off;
location /Microsoft-Server-ActiveSync {
proxy_pass http://127.0.0.1:8080/Microsoft-Server-ActiveSync;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 75;
proxy_send_timeout 3650;
proxy_read_timeout 3650;
proxy_buffers 64 256k;
client_body_buffer_size 512k;
client_max_body_size 0;
}
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 0;
}
}
```
### HAProxy (community supported)
!!! warning
This is an unsupported community contribution. Feel free to provide fixes.
**Important/Fixme**: This example only forwards HTTPS traffic and does not use mailcows built-in ACME client.
```
frontend https-in
bind :::443 v4v6 ssl crt mailcow.pem
default_backend mailcow
backend mailcow
option forwardfor
http-request set-header X-Forwarded-Proto https if { ssl_fc }
http-request set-header X-Forwarded-Proto http if !{ ssl_fc }
server mailcow 127.0.0.1:8080 check
```
### Traefik v2 (community supported)
!!! warning
This is an unsupported community contribution. Feel free to provide fixes.
**Important**: This config only covers the "reverseproxing" of the webpannel (nginx-mailcow) using Traefik v2, if you also want to reverseproxy the mail services such as dovecot, postfix... you'll just need to adapt the following config to each container and create an [EntryPoint](https://docs.traefik.io/routing/entrypoints/) on your `traefik.toml` or `traefik.yml` (depending which config you use) for each port.
For this section we'll assume you have your Traefik 2 `[certificatesresolvers]` properly configured on your traefik configuration file, and also using acme, also, the following example uses Lets Encrypt, but feel free to change it to your own cert resolver. You can find a basic Traefik 2 toml config file with all the above implemented which can be used for this example here [traefik.toml](https://github.com/Frenzoid/TraefikBasicConfig/blob/master/traefik.toml) if you need one, or a hint on how to adapt your config.
So, first of all, we are going to disable the acme-mailcow container since we'll use the certs that traefik will provide us.
For this we'll have to set `SKIP_LETS_ENCRYPT=y` on our `mailcow.conf`, and run `docker-compose up -d` to apply the changes.
Then we'll create a `docker-compose.override.yml` file in order to override the main `docker-compose.yml` found in your mailcow root folder.
```yaml
version: '2.1'
services:
nginx-mailcow:
networks:
# add Traefik's network
web:
labels:
- traefik.enable=true
# Creates a router called "moo" for the container, and sets up a rule to link the container to certain rule,
# in this case, a Host rule with our MAILCOW_HOSTNAME var.
- traefik.http.routers.moo.rule=Host(`${MAILCOW_HOSTNAME}`)
# Enables tls over the router we created before.
- traefik.http.routers.moo.tls=true
# Specifies which kind of cert resolver we'll use, in this case le (Lets Encrypt).
- traefik.http.routers.moo.tls.certresolver=le
# Creates a service called "moo" for the container, and specifies which internal port of the container
# should traefik route the incoming data to.
- traefik.http.services.moo.loadbalancer.server.port=${HTTP_PORT}
# Specifies which entrypoint (external port) should traefik listen to, for this container.
# websecure being port 443, check the traefik.toml file liked above.
- traefik.http.routers.moo.entrypoints=websecure
# Make sure traefik uses the web network, not the mailcowdockerized_mailcow-network
- traefik.docker.network=web
certdumper:
image: humenius/traefik-certs-dumper
container_name: traefik_certdumper
network_mode: none
volumes:
# mount the folder which contains Traefik's `acme.json' file
# in this case Traefik is started from its own docker-compose in ../traefik
- ../traefik/data:/traefik:ro
# mount mailcow's SSL folder
- ./data/assets/ssl/:/output:rw
environment:
# only change this, if you're using another domain for mailcow's web frontend compared to the standard config
- DOMAIN=${MAILCOW_HOSTNAME}
networks:
web:
external: true
```
Start the new containers with `docker-compose up -d`.
Now, there's only one thing left to do, which is setup the certs so that the mail services can use them as well, since Traefik 2 uses an acme v2 format to save ALL the license from all the domains we have, we'll need to find a way to dump the certs, lucky we have [this tiny container](https://hub.docker.com/r/humenius/traefik-certs-dumper) which grabs the `acme.json` file trough a volume, and a variable `DOMAIN=example.org`, and with these, the container will output the `cert.pem` and `key.pem` files, for this we'll simply run the `traefik-certs-dumper` container binding the `/traefik` volume to the folder where our `acme.json` is saved, bind the `/output` volume to our mailcow `data/assets/ssl/` folder, and set up the `DOMAIN=example.org` variable to the domain we want the certs dumped from.
This container will watch over the `acme.json` file for any changes, and regenerate the `cert.pem` and `key.pem` files directly into `data/assets/ssl/` being the path binded to the container's `/output` path.
You can use the command line to run it, or use the docker-compose shown [here](https://hub.docker.com/r/humenius/traefik-certs-dumper).
After we have the certs dumped, we'll have to reload the configs from our postfix and dovecot containers, and check the certs, you can see how [here](https://mailcow.github.io/mailcow-dockerized-docs/firststeps-ssl/#how-to-use-your-own-certificate).
Aaand that should be it 😊, you can check if the Traefik router works fine trough Traefik's dashboard / traefik logs / accessing the setted domain trough https, or / and check HTTPS, SMTP and IMAP trough the commands shown on the page linked before.
### Optional: Post-hook script for non-mailcow ACME clients
Using a local certbot (or any other ACME client) requires to restart some containers, you can do this with a post-hook script.
Make sure you change the paths accordingly:
```
#!/bin/bash
cp /etc/letsencrypt/live/my.domain.tld/fullchain.pem /opt/mailcow-dockerized/data/assets/ssl/cert.pem
cp /etc/letsencrypt/live/my.domain.tld/privkey.pem /opt/mailcow-dockerized/data/assets/ssl/key.pem
postfix_c=$(docker ps -qaf name=postfix-mailcow)
dovecot_c=$(docker ps -qaf name=dovecot-mailcow)
nginx_c=$(docker ps -qaf name=nginx-mailcow)
docker restart ${postfix_c} ${dovecot_c} ${nginx_c}
```
### Adding additional server names for mailcow UI
If you plan to use a server name that is not `MAILCOW_HOSTNAME` in your reverse proxy, make sure to populate that name in mailcow.conf via `ADDITIONAL_SERVER_NAMES` first. Names must be separated by commas and **must not** contain spaces. If you skip this step, mailcow may respond to your reverse proxy with an incorrect site.
```
ADDITIONAL_SERVER_NAMES=webmail.domain.tld,other.example.tld
```
Run `docker-compose up -d` to apply.

Datei anzeigen

@ -0,0 +1,18 @@
Um mailcow: dockerized mit all seinen Volumes, Images und Containern zu entfernen, tun Sie dies:
=== "docker compose (Plugin)"
``` bash
docker compose down -v --rmi all --remove-orphans
```
=== "docker-compose (Standalone)"
``` bash
docker-compose down -v --rmi all --remove-orphans
```
!!! info
- **-v** Entfernt benannte Volumes, die im Abschnitt `volumes` der Compose-Datei deklariert sind, und anonyme Volumes, die an Container angehängt sind.
- **--rmi <Typ>** Images entfernen. Der Typ muss einer der folgenden sein: `all`: Entfernt alle Images, die von einem beliebigen Dienst verwendet werden. `local`: Entfernt nur Bilder, die kein benutzerdefiniertes Tag haben, das durch das Feld "image" gesetzt wurde.
- **--remove-orphans** Entfernt Container für Dienste, die nicht in der Compose-Datei definiert sind.
- Standardmäßig entfernt `docker compose down` nur derzeit aktive Container und Netzwerke, die in der Datei `docker-compose.yml` definiert sind.

Datei anzeigen

@ -1,11 +1,18 @@
To remove mailcow: dockerized with all it's volumes, images and containers do:
=== "docker compose (Plugin)"
```
docker-compose down -v --rmi all --remove-orphans
```
``` bash
docker compose down -v --rmi all --remove-orphans
```
=== "docker-compose (Standalone)"
``` bash
docker-compose down -v --rmi all --remove-orphans
```
!!! info
- **-v** Remove named volumes declared in the `volumes` section of the Compose file and anonymous volumes attached to containers.
- **--rmi <type>** Remove images. Type must be one of: `all`: Remove all images used by any service. `local`: Remove only images that don't have a custom tag set by the `image` field.
- **--remove-orphans** Remove containers for services not defined in the compose file.
- By default `docker-compose down` only removes currently active containers and networks defined in the `docker-compose.yml`.
- By default `docker compose down` only removes currently active containers and networks defined in the `docker-compose.yml`.

165
docs/i_u_m/i_u_m_install.de.md Normale Datei
Datei anzeigen

@ -0,0 +1,165 @@
## Docker und Docker Compose Installation
Sie benötigen Docker (eine Version >= `20.10.2` ist erforderlich) und Docker Compose (eine Version `>= 2.0` ist erforderlich).
Erfahren Sie, wie Sie [Docker](https://docs.docker.com/install/) und [Docker Compose](https://docs.docker.com/compose/install/) installieren.
Schnelle Installation für die meisten Betriebssysteme:
### Docker
```
curl -sSL https://get.docker.com/ | CHANNEL=stable sh
# Nachdem der Installationsprozess abgeschlossen ist, müssen Sie eventuell den Dienst aktivieren und sicherstellen, dass er gestartet ist (z. B. CentOS 7)
systemctl enable --now docker
```
Bitte verwenden Sie die neueste verfügbare Docker-Engine und nicht die Engine, die mit Ihrem Distros-Repository ausgeliefert wird.
### docker compose
!!! danger "Achtung"
**mailcow benötigt eine Version von Docker Compose >= v2**.
<br>Sollte die Installation von Docker über das obenstehende Skript erfolgt sein wird das Docker Compose Plugin bereits automatisch
in einer Version >=2.0 installiert. <br>
Ist die mailcow Installation älter oder Docker wurde auf einem anderen Weg installiert, muss das Compose Plugin bzw. die Standalone Version von Docker manuell installiert werden.
#### Installation via Paketmanager (Plugin)
!!! info "Hinweis"
Diese Vorgehensweise mit den Paketquellen ist nur dann möglich, wenn das Docker Repository eingebunden wurde. Dies kann entweder durch die Anleitung oben (siehe [Docker](#docker)) oder durch eine manuelle Einbindung passieren.
Auf Debian/Ubuntu Systemen:
```
apt update
apt install docker-compose-plugin
```
Auf Centos 7 Systemen:
```
yum update
yum install docker-compose-plugin
```
!!! danger "Achtung"
Die Syntax der Docker Compose Befehle lautet **`docker compose`** bei der **Plugin Variante** von Docker Compose!!
#### Installation via Script (Standalone)
!!! info "Hinweis"
Diese Installation ist die alt bekannte Weise. Sie installiert Docker Compose als Standalone Programm und ist nicht auf die Art und weise der Docker Installation angewiesen.
```
LATEST=$(curl -Ls -w %{url_effective} -o /dev/null https://github.com/docker/compose/releases/latest) && LATEST=${LATEST##*/} && curl -L https://github.com/docker/compose/releases/download/$LATEST/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
```
!!! danger "Achtung"
Die Syntax der Docker Compose Befehle lautet **`docker-compose`** bei der **Standalone Variante** von Docker Compose!!
## SELinux Besonderheiten prüfen
Auf SELinux-aktivierten Systemen, z.B. CentOS 7:
- Prüfen Sie, ob das Paket "container-selinux" auf Ihrem System vorhanden ist:
```
rpm -qa | grep container-selinux
```
Wenn der obige Befehl eine leere oder keine Ausgabe liefert, sollten Sie es über Ihren Paketmanager installieren.
- Prüfen Sie, ob Docker SELinux-Unterstützung aktiviert hat:
```
docker info | grep selinux
```
Wenn der obige Befehl eine leere oder keine Ausgabe liefert, erstellen oder bearbeiten Sie `/etc/docker/daemon.json` und fügen Sie `"selinux-enabled": true` hinzu. Beispielhafter Inhalt der Datei:
```
{
"selinux-enabled": true
}
```
Starten Sie den Docker-Daemon neu und überprüfen Sie, ob SELinux nun aktiviert ist.
Dieser Schritt ist erforderlich, um sicherzustellen, dass die mailcows-Volumes richtig gekennzeichnet sind, wie in der Compose-Datei angegeben.
Wenn Sie daran interessiert sind, wie das funktioniert, können Sie sich die Readme-Datei von https://github.com/containers/container-selinux ansehen, die auf viele nützliche Informationen zu diesem Thema verweist.
## mailcow Installieren
Klonen Sie den Master-Zweig des Repositorys und stellen Sie sicher, dass Ihre umask gleich 0022 ist. Bitte klonen Sie das Repository als root-Benutzer und kontrollieren Sie auch den Stack als root. Wir werden die Attribute - wenn nötig - ändern, während wir die Container automatisch bereitstellen und sicherstellen, dass alles gesichert ist. Das update.sh-Skript muss daher ebenfalls als root ausgeführt werden. Es kann notwendig sein, den Besitzer und andere Attribute von Dateien zu ändern, auf die Sie sonst keinen Zugriff haben. **Wir geben die Berechtigungen für jede exponierte Anwendung** auf und führen einen exponierten Dienst nicht als root aus! Wenn Sie den Docker-Daemon als Nicht-Root-Benutzer steuern, erhalten Sie keine zusätzliche Sicherheit. Der unprivilegierte Benutzer wird die Container ebenfalls als root spawnen. Das Verhalten des Stacks ist identisch.
```
$ su
# umask
0022 # <- Überprüfen, dass es 0022 ist
# cd /opt
# git clone https://github.com/mailcow/mailcow-dockerized
# cd mailcow-dockerized
```
## mailcow Initialisieren
Erzeugen Sie eine Konfigurationsdatei. Verwenden Sie einen FQDN (`host.domain.tld`) als Hostname, wenn Sie gefragt werden.
```
./generate_config.sh
```
Ändern Sie die Konfiguration, wenn Sie wollen oder müssen.
```
nano mailcow.conf
```
Wenn Sie planen, einen Reverse Proxy zu verwenden, können Sie zum Beispiel HTTPS an 127.0.0.1 auf Port 8443 und HTTP an 127.0.0.1 auf Port 8080 binden.
Möglicherweise müssen Sie einen vorinstallierten MTA stoppen, der Port 25/tcp blockiert. Siehe [dieses Kapitel](../post_installation/firststeps-local_mta.de.md), um zu erfahren, wie man Postfix rekonfiguriert, um nach einer erfolgreichen Installation neben mailcow laufen zu lassen.
Einige Updates modifizieren mailcow.conf und fügen neue Parameter hinzu. Es ist schwer, in der Dokumentation den Überblick zu behalten. Bitte überprüfen Sie deren Beschreibung und fragen Sie, wenn Sie unsicher sind, in den bekannten Kanälen nach Rat.
## Problembehandlungen
### Benutzer mit einer MTU ungleich 1500 (z.B. OpenStack)
**Wenn Sie auf Probleme und seltsame Phänomene stoßen, überprüfen Sie bitte Ihre MTU.**
Bearbeiten Sie `docker-compose.yml` und ändern Sie die Netzwerkeinstellungen entsprechend Ihrer MTU.
Fügen Sie den neuen Parameter driver_opts wie folgt hinzu:
```
networks:
mailcow-network:
...
driver_opts:
com.docker.network.driver.mtu: 1450
...
```
### Benutzer ohne ein IPv6-aktiviertes Netzwerk auf ihrem Hostsystem
**Schalten Sie IPv6 bitte nicht ab, auch wenn es Ihnen nicht gefällt. IPv6 ist die Zukunft und sollte nicht ignoriert werden.**
Sollten Sie jedoch kein IPv6-fähiges Netzwerk auf Ihrem Host haben und Sie sich nicht um ein besseres Internet kümmern wollen (hehe), ist es empfehlenswert, IPv6 für das mailcow-Netzwerk zu [deaktivieren](../post_installation/firststeps-disable_ipv6.de.md), um unvorhergesehene Probleme zu vermeiden.
## mailcow starten
Laden Sie die Images herunter und führen Sie die Compose-Datei aus. Der Parameter `-d` wird ihre mailcow dann im Hintergrund starten:
=== "docker compose (Plugin)"
``` bash
docker compose pull
docker compose up -d
```
=== "docker-compose (Standalone)"
``` bash
docker-compose pull
docker-compose up -d
```
Geschafft!
Sie können nun auf **https://${MAILCOW_HOSTNAME}** mit den Standard-Zugangsdaten `admin` + Passwort `moohoo` zugreifen.
!!! info
Wenn Sie mailcow nicht hinter einem Reverse Proxy verwenden, sollten Sie [alle HTTP-Anfragen auf HTTPS umleiten](../manual-guides/u_e-80_to_443.md).
Die Datenbank wird sofort initialisiert, nachdem eine Verbindung zu MySQL hergestellt werden kann.
Ihre Daten bleiben in mehreren Docker-Volumes erhalten, die nicht gelöscht werden, wenn Sie Container neu erstellen oder löschen. Führen Sie `docker volume ls` aus, um eine Liste aller Volumes zu sehen. Sie können `docker compose down` sicher ausführen, ohne persistente Daten zu entfernen.

165
docs/i_u_m/i_u_m_install.en.md Normale Datei
Datei anzeigen

@ -0,0 +1,165 @@
## Docker and Docker Compose Installation
You need Docker (a version >= `20.10.2` is required) and Docker Compose (a version `>= 2.0` is required).
Learn how to install [Docker](https://docs.docker.com/install/) and [Docker Compose](https://docs.docker.com/compose/install/).
Quick installation for most operation systems:
### Docker
```
curl -sSL https://get.docker.com/ | CHANNEL=stable sh
# After the installation process is finished, you may need to enable the service and make sure it is started (e.g. CentOS 7)
systemctl enable --now docker
```
### docker compose
!!! danger
**mailcow requires the latest version of docker compose v2.**<br>
If Docker was installed using the script above, the Docker Compose plugin is already automatically installed in a version >=2.0.<br>
Is your mailcow installation older or Docker was installed in a different way, the Compose plugin or the standalone version of Docker must be installed manually.
#### Installation via Paketmanager (plugin)
!!! info
This approach with the package sources is only possible if the Docker repository has been included. This can happen either through the instructions above (see [Docker](#docker)) or through a manually integration.
On Debian/Ubuntu systems:
```
apt update
apt install docker-compose-plugin
```
On Centos 7 systems:
```
yum update
yum install docker-compose-plugin
```
!!! danger
The Docker Compose command syntax is **`docker compose`** for the **plugin variant** of Docker Compose!!!
#### Installation via Script (standalone)
!!! info
This installation is the old familiar way. It installs Docker Compose as a standalone program and does not rely on the Docker installation way.
```
LATEST=$(curl -Ls -w %{url_effective} -o /dev/null https://github.com/docker/compose/releases/latest) && LATEST=${LATEST##*/} && curl -L https://github.com/docker/compose/releases/download/$LATEST/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
```
!!! danger
The Docker Compose command syntax is **`docker-compose`** for the **standalone variant** of Docker Compose!!!
Please use the latest Docker engine available and do not use the engine that ships with your distros repository.
## Check SELinux specifics
On SELinux enabled systems, e.g. CentOS 7:
- Check if "container-selinux" package is present on your system:
```
rpm -qa | grep container-selinux
```
If the above command returns an empty or no output, you should install it via your package manager.
- Check if docker has SELinux support enabled:
```
docker info | grep selinux
```
If the above command returns an empty or no output, create or edit `/etc/docker/daemon.json` and add `"selinux-enabled": true`. Example file content:
```
{
"selinux-enabled": true
}
```
Restart the docker daemon and verify SELinux is now enabled.
This step is required to make sure mailcows volumes are properly labeled as declared in the compose file.
If you are interested in how this works, you can check out the readme of https://github.com/containers/container-selinux which links to a lot of useful information on that topic.
## Install mailcow
Clone the master branch of the repository, make sure your umask equals 0022. Please clone the repository as root user and also control the stack as root. We will modify attributes - if necessary - while bootstrapping the containers automatically and make sure everything is secured. The update.sh script must therefore also be run as root. It might be necessary to change ownership and other attributes of files you will otherwise not have access to. **We drop permissions for every exposed application** and will not run an exposed service as root! Controlling the Docker daemon as non-root user does not give you additional security. The unprivileged user will spawn the containers as root likewise. The behaviour of the stack is identical.
```
$ su
# umask
0022 # <- Verify it is 0022
# cd /opt
# git clone https://github.com/mailcow/mailcow-dockerized
# cd mailcow-dockerized
```
## Initialize mailcow
Generate a configuration file. Use a FQDN (`host.domain.tld`) as hostname when asked.
```
./generate_config.sh
```
Change configuration if you want or need to.
```
nano mailcow.conf
```
If you plan to use a reverse proxy, you can, for example, bind HTTPS to 127.0.0.1 on port 8443 and HTTP to 127.0.0.1 on port 8080.
You may need to stop an existing pre-installed MTA which blocks port 25/tcp. See [this chapter](../post_installation/firststeps-local_mta.en.md) to learn how to reconfigure Postfix to run besides mailcow after a successful installation.
Some updates modify mailcow.conf and add new parameters. It is hard to keep track of them in the documentation. Please check their description and, if unsure, ask at the known channels for advise.
## Troubleshooting
### Users with a MTU not equal to 1500 (e.g. OpenStack)
**Whenever you run into trouble and strange phenomena, please check your MTU.**
Edit `docker-compose.yml` and change the network settings according to your MTU.
Add the new driver_opts parameter like this:
```
networks:
mailcow-network:
...
driver_opts:
com.docker.network.driver.mtu: 1450
...
```
### Users without an IPv6 enabled network on their host system
**Please don't turn off IPv6, even if you don't like it. IPv6 is the future and should not be ignored.**
If you do not have an IPv6 enabled network on your host and you don't care for a better internet (thehe), it is recommended to [disable IPv6](../post_installation/firststeps-disable_ipv6.en.md) for the mailcow network to prevent unforeseen issues.
## Start mailcow
Pull the images and run the compose file. The parameter `-d` will start mailcow: dockerized detached:
=== "docker compose (Plugin)"
``` bash
docker compose pull
docker compose up -d
```
=== "docker-compose (Standalone)"
``` bash
docker-compose pull
docker-compose up -d
```
Done!
You can now access **https://${MAILCOW_HOSTNAME}** with the default credentials `admin` + password `moohoo`.
!!! info
If you are not using mailcow behind a reverse proxy, you should [redirect all HTTP requests to HTTPS](../manual-guides/u_e-80_to_443.md).
The database will be initialized right after a connection to MySQL can be established.
Your data will persist in multiple Docker volumes, that are not deleted when you recreate or delete containers. Run `docker volume ls` to see a list of all volumes. You can safely run `docker compose down` without removing persistent data.

Datei anzeigen

@ -0,0 +1,74 @@
!!! warning "Warnung"
Diese Anleitung geht davon aus, dass Sie beabsichtigen, einen bestehenden mailcow-Server (Quelle) auf einen brandneuen, leeren Server (Ziel) zu migrieren. Sie kümmert sich nicht um die Erhaltung bestehender Daten auf dem Zielserver und löscht alles innerhalb von `/var/lib/docker/volumes` und somit alle Docker-Volumes, die Sie bereits eingerichtet haben.
!!! tip
Alternativ können Sie das Skript `./helper-scripts/backup_and_restore.sh` verwenden, um ein vollständiges Backup auf der Quellmaschine zu erstellen, dann installieren Sie mailcow auf der Zielmaschine wie gewohnt, kopieren Sie Ihre `mailcow.conf` und verwenden Sie das gleiche Skript, um Ihr Backup auf der Zielmaschine wiederherzustellen.
**1\.**
Befolgen Sie die [Installationsanleitung](i_u_m_install.de.md) von Docker und Compose.
**2\.** Stoppen Sie Docker und stellen Sie sicher, dass Docker gestoppt wurde:
```
systemctl stop docker.service
systemctl status docker.service
```
**3\.** Führen Sie die folgenden Befehle auf dem Quellcomputer aus (achten Sie darauf, die abschließenden Schrägstriche im ersten Pfadparameter wie unten gezeigt hinzuzufügen!) - **WARNUNG: Dieser Befehl löscht alles, was bereits unter `/var/lib/docker/volumes` auf dem Zielrechner existiert**:
```
rsync -aHhP --numeric-ids --delete /opt/mailcow-dockerized/ root@target-machine.example.com:/opt/mailcow-dockerized
rsync -aHhP --numeric-ids --delete /var/lib/docker/volumes/ root@target-machine.example.com:/var/lib/docker/volumes
```
**4\.** Schalten Sie mailcow ab und stoppen Sie Docker auf dem Quellrechner.
=== "docker compose (Plugin)"
``` bash
cd /opt/mailcow-dockerized
docker compose down
systemctl stop docker.service
```
=== "docker-compose (Standalone)"
``` bash
cd /opt/mailcow-dockerized
docker-compose down
systemctl stop docker.service
```
**Wiederholen Sie Schritt 3 mit denselben Befehlen. Dies wird viel schneller gehen als beim ersten Mal.
**6\.** Wechseln Sie auf den Zielrechner und starten Sie Docker.
```
systemctl start docker.service
```
**7\.** Ziehen Sie nun die mailcow Docker-Images auf den Zielrechner.
=== "docker compose (Plugin)"
``` bash
cd /opt/mailcow-dockerized
docker compose pull
```
=== "docker-compose (Standalone)"
``` bash
cd /opt/mailcow-dockerized
docker-compose pull
```
**8\.** Starten Sie den gesamten mailcow-Stack und alles sollte fertig sein!
=== "docker compose (Plugin)"
``` bash
docker compose up -d
```
=== "docker-compose (Standalone)"
``` bash
docker compose up -d
```
**9\.** Zum Schluss ändern Sie Ihre DNS-Einstellungen so, dass sie auf den Zielserver zeigen. Prüfen und ändern Sie gegebenenfalls die `SNAT_TO_SOURCE` Variable in der `mailcow.conf` im mailcow-dockerized Ordner, da andernfalls SOGo nicht richtig funktioniert, wenn die ausgehende IP eine andere ist.

Datei anzeigen

@ -4,32 +4,15 @@
!!! tip
Alternatively, you can use the `./helper-scripts/backup_and_restore.sh` script to create a full backup on the source machine, then install mailcow on the target machine as usual, copy over your `mailcow.conf` and use the same script to restore your backup to the target machine.
**1\.**
Install [Docker](https://docs.docker.com/engine/installation/linux/) and [Docker Compose](https://docs.docker.com/compose/install/) on your new server.
Quick installation for most operation systems:
- Docker
```
curl -sSL https://get.docker.com/ | CHANNEL=stable sh
# After the installation process is finished, you may need to enable the service and make sure it is started (e.g. CentOS 7)
systemctl enable docker.service
```
- docker-compose
```
curl -L https://github.com/docker/compose/releases/download/$(curl -Ls https://www.servercow.de/docker-compose/latest.php)/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
```
Please use the latest Docker engine available and do not use the engine that ships with your distros repository.
**1\.**
Follow the [installation guide](i_u_m_install.en.md) to install Docker and Compose.
**2\.** Stop Docker and assure Docker has stopped:
```
systemctl stop docker.service
systemctl status docker.service
```
**3\.** Run the following commands on the source machine (take care of adding the trailing slashes in the first path parameter as shown below!) - **WARNING: This command will erase anything that may already exist under `/var/lib/docker/volumes` on the target machine**:
```
rsync -aHhP --numeric-ids --delete /opt/mailcow-dockerized/ root@target-machine.example.com:/opt/mailcow-dockerized
@ -37,11 +20,21 @@ rsync -aHhP --numeric-ids --delete /var/lib/docker/volumes/ root@target-machine.
```
**4\.** Shut down mailcow and stop Docker on the source machine.
```
cd /opt/mailcow-dockerized
docker-compose down
systemctl stop docker.service
```
=== "docker compose (Plugin)"
``` bash
cd /opt/mailcow-dockerized
docker compose down
systemctl stop docker.service
```
=== "docker-compose (Standalone)"
``` bash
cd /opt/mailcow-dockerized
docker-compose down
systemctl stop docker.service
```
**5\.** Repeat step 3 with the same commands. This will be much quicker than the first time.
@ -51,14 +44,31 @@ systemctl start docker.service
```
**7\.** Now pull the mailcow Docker images on the target machine.
```
cd /opt/mailcow-dockerized
docker-compose pull
```
=== "docker compose (Plugin)"
``` bash
cd /opt/mailcow-dockerized
docker compose pull
```
=== "docker-compose (Standalone)"
``` bash
cd /opt/mailcow-dockerized
docker-compose pull
```
**8\.** Start the whole mailcow stack and everything should be done!
```
docker-compose up -d
```
=== "docker compose (Plugin)"
**9\.** Finally, change your DNS settings to point to the target server.
``` bash
docker compose up -d
```
=== "docker-compose (Standalone)"
``` bash
docker compose up -d
```
**9\.** Finally, change your DNS settings to point to the target server. Also check the `SNAT_TO_SOURCE` variable in your `mailcow.conf` file if you have changed your public IP address, otherwise SOGo may not work.

128
docs/i_u_m/i_u_m_update.de.md Normale Datei
Datei anzeigen

@ -0,0 +1,128 @@
## mailcow automatisch Updaten
Ein Update-Skript in Ihrem mailcow-dockerized Verzeichnis kümmert sich um Updates.
Aber benutzen Sie es mit Bedacht! Wenn Sie denken, dass Sie viele Änderungen am mailcow-Code vorgenommen haben, sollten Sie die manuelle Update-Anleitung unten verwenden.
Führen sie das Update-Skript aus:
```
./update.sh
```
Wenn es nötig ist, wird es Sie fragen, wie Sie fortfahren möchten.
Merge-Fehler werden gemeldet.
Einige kleinere Konflikte werden automatisch korrigiert (zugunsten des mailcow-dockerized repository code).
### Optionen
```
# Optionen können kombiniert werden
# - Prüft auf Updates und zeigt Änderungen an
./update.sh --check
# - Starten Sie mailcow nicht, nachdem Sie ein Update durchgeführt haben
./update.sh --skip-start
# - Überspringt den ICMP Check auf die öffentlichen DNS Resolver (Bitte nur nutzen, wenn keinerlei ICMP Verbindungen von und zur mailcow erlaubt sind)
./update.sh --skip-ping-check
# - Wechselt die Update Quellen der mailcow auf nightly (unstabile) Inhalte.
NUR ZUM TESTEN VERWENDEN!! KEIN PRODUKTIV BETRIEB!!!
./update.sh --nightly
# - Wechselt die Update Quellen der mailcow auf stable (stabile) Inhalte (standard).
./update.sh --stable
# - Erzwinge Update (unbeaufsichtigt, aber nicht unterstützt, Benutzung auf eigenes Risiko)
./update.sh --force
# - Garbage Collector ausführen, um alte Image-Tags zu bereinigen und beenden
./update.sh --gc
# - Update mit der Merge-Strategie-Option "ours" statt "theirs"
# Dies wird **Konflikte** beim Zusammenführen zugunsten Ihrer lokalen Änderungen lösen und sollte vermieden werden. Lokale Änderungen werden immer beibehalten, es sei denn, wir haben auch die Datei XY geändert.
./update.sh --ours
# - Nicht aktualisieren, nur holen von Docker Images
./update.sh --prefetch
```
### Ich habe vergessen, was ich vor dem Ausführen von update.sh geändert habe.
Siehe `git log --pretty=oneline | grep -i "before update"`, Sie werden eine Ausgabe ähnlich dieser haben:
```
22cd00b5e28893ef9ddef3c2b5436453cc5223ab Before update on 2020-09-28_19_25_45
dacd4fb9b51e9e1c8a37d84485b92ffaf6c59353 Before update on 2020-08-07_13_31_31
```
Führen Sie `git diff 22cd00b5e28893ef9ddef3c2b5436453cc5223ab` aus, um zu sehen, was sich geändert hat.
### Kann ich ein Rollback durchführen?
Ja.
Siehe das obige Thema, anstelle eines Diffs führen Sie checkout aus:
=== "docker compose (Plugin)"
``` bash
docker compose down
# Ersetzen Sie die Commit-ID 22cd00b5e28893ef9ddef3c2b5436453cc5223ab durch Ihre ID
git checkout 22cd00b5e28893ef9ddef3c2b5436453cc5223ab
docker compose pull
docker compose up -d
```
=== "docker-compose (Standalone)"
``` bash
docker-compose down
# Ersetzen Sie die Commit-ID 22cd00b5e28893ef9ddef3c2b5436453cc5223ab durch Ihre ID
git checkout 22cd00b5e28893ef9ddef3c2b5436453cc5223ab
docker-compose pull
docker-compose up -d
```
### Hooks
Sie können sich in den Update-Mechanismus einklinken, indem Sie Skripte namens `pre_commit_hook.sh` und `post_commit_hook.sh` zu Ihrem mailcows-Root-Verzeichnis hinzufügen. Siehe [hier](../manual-guides/u_e-update-hooks.md) für weitere Details.
## Update-Zyklus
- Wir planen in jedem Monat ein neues Hauptupdate zu veröffentlichen.
- Die Updates sind wie folgt nummeriert: `JJJJ-MM` (Beispiel: `2022-05`).
- Fehlerkorrekturen eines Hauptupdates werden bei uns als "Revisionen" wie a,b,c (Beispiele: `2022-05a`, `2022-05b` usw.) erscheinen.
## Update-Varianten
**stable (stabile Updates)**: Diese Updates sind für den Produktivbetrieb geeignet. Sie erscheinen in einem Zyklus von mindest 1x im Monat.
**nightly (instabile Updates)**: Diese Updates sind **NICHT** für den Produktivbetrieb geeignet und dienen lediglich dem Testen. Die nightly Updates sind den stabilen Updates vorraus, da in diesen neue und auch umfangreichere Funktionen getestet werden bevor diese für alle User Live gehen.
## NEU: Nightly Updates beziehen
### Infos zu den Nightly Updates
Seit dem 2022-08 Update gibt es die Möglichkeit die Update quellen zu ändern. Bisher diente der master Branch auf GitHub als einzige (offizieller) Update Quelle. Mit dem August 2022 Update gibt es aber nun noch den Nightly Branch welcher instabile und größere Änderungen zum testen und Feedback geben enthält.
Dabei bekommt der Nightly Branch immer dann neue Updates, wenn irgendetwas am mailcow Projekt fertig gemacht wurde was in die neue Hauptversion reinkommt.
Neben den offensichtlichen neuerungen welche sowieso im nächsten Major Update enthalten sein werden enthält er ebenfalls erstmal exklusive Features welche eine längere Testzeit brauchen (bspw. das UI Update auf Bootstrap 5).
### Wie bekomme ich Nightly Updates?
Der Vorgang ist relativ simpel. Mit dem 2022-08 Update (ein Update auf die Version voraussgesetzt) ist es möglich die `update.sh` mit dem Parameter `--nightly` zu starten.
!!! danger "Achtung"
Bitte machen Sie vorher ein Backup oder folgen Sie dem Abschnitt [Best Practice Nightly Update](#best-practice-nightly-update) bevor Sie auf die Nightly Builds von mailcow wechseln. Wir sind für keinerlei Datenverluste/korruptionen verantwortlich, also arbeiten Sie mit bedacht!
Das Skript wird nun den Branch wechseln mit `git checkout nightly` d.h. es wird auch wieder nach den IPv6 Einstellungen fragen. Das ist aber normal.
Sollte alles problemlos geklappt haben (wofür wir ja auch vorsichtshalber ein Backup vorher gemacht haben) sollte nun in der mailcow UI unten rechts die aktuelle Versionsnummer samt Datumsstempel abgebildet sein: <br>
![nightly footer](../assets/images/i_u_m/nightly_footer.png)
### Best Practice Nightly Update
!!! info
Wir empfehlen die Benutzung des Nightly Updates nur dann, wenn Ihr eine weitere Maschine oder VM besitzt und diese **NICHT** Produktiv nutzt.
1. Das [Cold-Standby Skript](../backup_restore/b_n_r-coldstandby.de.md) nutzen um die Maschine **vor** dem Schwenk auf die Nightly Builds auf ein anderes System zu kopieren.
2. Das `update.sh` Skript auf der neuen Maschine mit dem Parameter `--nightly` ausführen und bestätigen.
3. Die Nightly Updates auf der sekundären Maschine erleben/testen.

128
docs/i_u_m/i_u_m_update.en.md Normale Datei
Datei anzeigen

@ -0,0 +1,128 @@
## Automatic update
An update script in your mailcow-dockerized directory will take care of updates.
But use it with caution! If you think you made a lot of changes to the mailcow code, you should use the manual update guide below.
Run the update script:
```
./update.sh
```
If it needs to, it will ask you how you wish to proceed.
Merge errors will be reported.
Some minor conflicts will be auto-corrected (in favour for the mailcow-dockerized repository code).
### Options
```
# Options can be combined
# - Check for updates and show changes
./update.sh --check
# - Do not start mailcow after applying an update
./update.sh --skip-start
# - Skip ICMP Check to public DNS resolvers (Use it only if you´ve blocked any ICMP Connections to your mailcow machine)
./update.sh --skip-ping-check
# - Switch your mailcow updates to the unstable (nightly) branch.
FOR TESTING PURPOSES ONLY!!!! NOT READY FOR PRODUCTION!!!
./update.sh --nightly
# - Switch your mailcow updates to the stable (master) branch. Default unless you changed it with --nightly.
./update.sh --stable
# - Force update (unattended, but unsupported, use at own risk)
./update.sh --force
# - Run garbage collector to cleanup old image tags and exit
./update.sh --gc
# - Update with merge strategy option "ours" instead of "theirs"
# This will **solve conflicts** when merging in favor for your local changes and should be avoided. Local changes will always be kept, unless we changed file XY, too.
./update.sh --ours
# - Don't update, but prefetch images and exit
./update.sh --prefetch
```
### I forgot what I changed before running update.sh
See `git log --pretty=oneline | grep -i "before update"`, you will have an output similar to this:
```
22cd00b5e28893ef9ddef3c2b5436453cc5223ab Before update on 2020-09-28_19_25_45
dacd4fb9b51e9e1c8a37d84485b92ffaf6c59353 Before update on 2020-08-07_13_31_31
```
Run `git diff 22cd00b5e28893ef9ddef3c2b5436453cc5223ab` to see what changed.
### Can I roll back?
Yes.
See the topic above, instead of a diff, you run checkout:
=== "docker compose (Plugin)"
``` bash
docker compose down
# Ersetzen Sie die Commit-ID 22cd00b5e28893ef9ddef3c2b5436453cc5223ab durch Ihre ID
git checkout 22cd00b5e28893ef9ddef3c2b5436453cc5223ab
docker compose pull
docker compose up -d
```
=== "docker-compose (Standalone)"
``` bash
docker-compose down
# Ersetzen Sie die Commit-ID 22cd00b5e28893ef9ddef3c2b5436453cc5223ab durch Ihre ID
git checkout 22cd00b5e28893ef9ddef3c2b5436453cc5223ab
docker-compose pull
docker-compose up -d
```
### Hooks
You can hook into the update mechanism by adding scripts called `pre_commit_hook.sh` and `post_commit_hook.sh` to your mailcows root directory. See [this](../manual-guides/u_e-update-hooks.md) for more details.
## Update Cycle
- We schedule a monthly release cycle for a major update.
- The releases are numbered like this: `YYYY-MM` (e.g. `2022-05`)
- Fixes for a main Update will be stated as "Revisions" like a,b,c (e.g. `2022-05a`, `2022-05b` etc.)
## Update variants
**stable (stable updates)**: These updates are suitable for productive usage. They appear in a cycle of at least 1x per month.
**nightly (unstable updates)**: These updates are **NOT** suitable for production use and are for testing only. The nightly updates are ahead of the stable updates, since in these updates we test newer and more extensive features before they go live for all users.
## NEW: Get Nightly Updates
### Info about the Nightly Updates
Since the 2022-08 update there is the possibility to change the update sources. Until now, the master branch on GitHub served as the only (official) update source. With the August 2022 update, however, there is now the Nightly Branch which contains unstable and major changes for testing and feedback.
The Nightly Branch always gets new updates when something is finished on the mailcow project that will be included in the new main version.
Besides the obvious changes that will be included in the next major update anyway, it also contains exclusive features that need a longer testing time (e.g. the UI update to Bootstrap 5).
### How do I get Nightly Updates?
The process is relatively simple. With the 2022-08 update (assuming an update to the version) it is possible to run `update.sh` with the parameter `--nightly`.
!!! danger
Please make a backup before or follow the [Best Practice Nightly Update](#best-practice-nightly-update) section before switching to mailcow nightly builds. We are not responsible for any data loss/corruption, so work with caution!
The script will now change the branch with `git checkout nightly`, which means it will ask for the IPv6 settings again. But this is normal.
If everything worked fine (for which we made a backup before) the mailcow UI should now show the current version number and date stamp in the lower right corner:<br>
![nightly footer](../assets/images/i_u_m/nightly_footer.png)
### Best Practice Nightly Update
!!! info
We recommend using the Nightly Update only if you have another machine or VM and **NOT** use it productively.
1. use the [cold standby script](../backup_restore/b_n_r-coldstandby.en.md) to copy the machine **before** the switch to the nightly builds on another system.
2. run the `update.sh` script on the new machine with the parameter `--nightly` and confirm.
3. experience/test the nightly updates on the secondary machine.

Datei anzeigen

@ -1,120 +0,0 @@
You need Docker (a version >= `20.10.2` is required) and Docker Compose (a version `<= 2.0` is required).
**1\.** Learn how to install [Docker](https://docs.docker.com/install/) and [Docker Compose](https://docs.docker.com/compose/install/).
Quick installation for most operation systems:
- Docker
```
curl -sSL https://get.docker.com/ | CHANNEL=stable sh
# After the installation process is finished, you may need to enable the service and make sure it is started (e.g. CentOS 7)
systemctl enable --now docker
```
- Docker-Compose
!!! warning
**mailcow requires the latest version of docker-compose v1.** It is highly recommended to use the commands below to install `docker-compose`. Package managers (e.g. `apt`, `yum`) **likely won't** give you the correct version.
_Note: This command downloads docker-compose from the official Docker Github repository and is a safe method. The snippet will determine the latest supported version by mailcow. In almost all cases this is the latest version available (exceptions are broken releases or major changes not yet supported by mailcow)._
```
curl -L https://github.com/docker/compose/releases/download/$(curl -Ls https://www.servercow.de/docker-compose/latest.php)/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
```
Please use the latest Docker engine available and do not use the engine that ships with your distros repository.
**1\.1\.** On SELinux enabled systems, e.g. CentOS 7:
- Check if "container-selinux" package is present on your system:
```
rpm -qa | grep container-selinux
```
If the above command returns an empty or no output, you should install it via your package manager.
- Check if docker has SELinux support enabled:
```
docker info | grep selinux
```
If the above command returns an empty or no output, create or edit `/etc/docker/daemon.json` and add `"selinux-enabled": true`. Example file content:
```
{
"selinux-enabled": true
}
```
Restart the docker daemon and verify SELinux is now enabled.
This step is required to make sure mailcows volumes are properly labeled as declared in the compose file.
If you are interested in how this works, you can check out the readme of https://github.com/containers/container-selinux which links to a lot of useful information on that topic.
**2\.** Clone the master branch of the repository, make sure your umask equals 0022. Please clone the repository as root user and also control the stack as root. We will modify attributes - if necessary - while boostrapping the containers automatically and make sure everything is secured. The update.sh script must therefore also be run as root. It might be necessary to change ownership and other attributes of files you will otherwise not have access to. **We drop permissions for every exposed application** and will not run an exposed service as root! Controlling the Docker daemon as non-root user does not give you additional security. The unprivileged user will spawn the containers as root likewise. The behaviour of the stack is identical.
```
$ su
# umask
0022 # <- Verify it is 0022
# cd /opt
# git clone https://github.com/mailcow/mailcow-dockerized
# cd mailcow-dockerized
```
**3\.** Generate a configuration file. Use a FQDN (`host.domain.tld`) as hostname when asked.
```
./generate_config.sh
```
**4\.** Change configuration if you want or need to.
```
nano mailcow.conf
```
If you plan to use a reverse proxy, you can, for example, bind HTTPS to 127.0.0.1 on port 8443 and HTTP to 127.0.0.1 on port 8080.
You may need to stop an existing pre-installed MTA which blocks port 25/tcp. See [this chapter](https://mailcow.github.io/mailcow-dockerized-docs/firststeps-local_mta/) to learn how to reconfigure Postfix to run besides mailcow after a successful installation.
Some updates modify mailcow.conf and add new parameters. It is hard to keep track of them in the documentation. Please check their description and, if unsure, ask at the known channels for advise.
**4\.1\.** Users with a MTU not equal to 1500 (e.g. OpenStack):
**Whenever you run into trouble and strange phenomena, please check your MTU.**
Edit `docker-compose.yml` and change the network settings according to your MTU.
Add the new driver_opts parameter like this:
```
networks:
mailcow-network:
...
driver_opts:
com.docker.network.driver.mtu: 1450
...
```
**4\.2\.** Users without an IPv6 enabled network on their host system:
**Enable IPv6. Finally.**
If you do not have an IPv6 enabled network on your host and you don't care for a better internet (thehe), it is recommended to [disable IPv6](https://mailcow.github.io/mailcow-dockerized-docs/firststeps-disable_ipv6/) for the mailcow network to prevent unforeseen issues.
**5\.** Pull the images and run the compose file. The parameter `-d` will start mailcow: dockerized detached:
```
docker-compose pull
docker-compose up -d
```
Done!
You can now access **https://${MAILCOW_HOSTNAME}** with the default credentials `admin` + password `moohoo`.
!!! info
If you are not using mailcow behind a reverse proxy, you should [redirect all HTTP requests to HTTPS](https://mailcow.github.io/mailcow-dockerized-docs/u_e-80_to_443/).
The database will be initialized right after a connection to MySQL can be established.
Your data will persist in multiple Docker volumes, that are not deleted when you recreate or delete containers. Run `docker volume ls` to see a list of all volumes. You can safely run `docker-compose down` without removing persistent data.

Datei anzeigen

@ -1,75 +0,0 @@
## Automatic update
An update script in your mailcow-dockerized directory will take care of updates.
But use it with caution! If you think you made a lot of changes to the mailcow code, you should use the manual update guide below.
Run the update script:
```
./update.sh
```
If it needs to, it will ask you how you wish to proceed.
Merge errors will be reported.
Some minor conflicts will be auto-corrected (in favour for the mailcow: dockerized repository code).
### Options
```
# Options can be combined
# - Check for updates and show changes
./update.sh --check
# Do not try to update docker-compose, **make sure to use the latest docker-compose available**
./update.sh --no-update-compose
# - Do not start mailcow after applying an update
./update.sh --skip-start
# - Force update (unattended, but unsupported, use at own risk)
./update.sh --force
# - Run garbage collector to cleanup old image tags and exit
./update.sh --gc
# - Update with merge strategy option "ours" instead of "theirs"
# This will **solve conflicts** when merging in favor for your local changes and should be avoided. Local changes will always be kept, unless we changed file XY, too.
./update.sh --ours
# - Don't update, but prefetch images and exit
./update.sh --prefetch
```
### I forgot what I changed before running update.sh
See `git log --pretty=oneline | grep -i "before update"`, you will have an output similar to this:
```
22cd00b5e28893ef9ddef3c2b5436453cc5223ab Before update on 2020-09-28_19_25_45
dacd4fb9b51e9e1c8a37d84485b92ffaf6c59353 Before update on 2020-08-07_13_31_31
```
Run `git diff 22cd00b5e28893ef9ddef3c2b5436453cc5223ab` to see what changed.
### Can I roll back?
Yes.
See the topic above, instead of a diff, you run checkout:
```
docker-compose down
# Replace commit ID 22cd00b5e28893ef9ddef3c2b5436453cc5223ab by your ID
git checkout 22cd00b5e28893ef9ddef3c2b5436453cc5223ab
docker-compose pull
docker-compose up -d
```
### Hooks
You can hook into the update mechanism by adding scripts called `pre_commit_hook.sh` and `post_commit_hook.sh` to your mailcows root directory. See [this](./u_e-update-hooks.md) for more details.
## Footnotes
- There is no release cycle regarding updates.

Binäre Datei nicht angezeigt.

Vorher

Breite:  |  Höhe:  |  Größe: 12 KiB

Binäre Datei nicht angezeigt.

Vorher

Breite:  |  Höhe:  |  Größe: 40 KiB

Binäre Datei nicht angezeigt.

Vorher

Breite:  |  Höhe:  |  Größe: 32 KiB

Binäre Datei nicht angezeigt.

Vorher

Breite:  |  Höhe:  |  Größe: 24 KiB

137
docs/index.de.md Normale Datei
Datei anzeigen

@ -0,0 +1,137 @@
<figure markdown>
![mailcow Logo](assets/images/logo.svg){ width="150" }
</figure>
# mailcow: dockerized - :cow: + :whale: = :two_hearts:
**Die Mailserver-Suite mit dem 'moo'**
## Was ist mailcow: dockerized?
!!! question "Frage"
Mailcow, MailCow oder doch mailcow? Wie heißt das Projekt nun genau?
Richtig: **mailcow**, denn mailcow ist eine eingetragene Wortmarke mit kleinem m :grin:
mailcow: dockerized ist eine Open-Source Groupware/E-Mail Suite auf Docker Basis.
Dabei setzt mailcow auf viele bekannte und lang bewertete Komponenten, welche im Zusammenspiel einen Rund um Sorglosen E-Mail Server ergeben.
Jeder Container repräsentiert eine einzelne Anwendung, die in einem überbrückten (Bridged) Netzwerk verbunden sind.
- [ACME](https://letsencrypt.org/) (Automatische Generation von Let's Encrypt Zertifikaten)
- [ClamAV](https://www.clamav.net/) (Antiviren Scanner) (optional)
- [Dovecot](https://www.dovecot.org/) (IMAP/POP Server zum Abrufen der E-Mails)
- [MariaDB](https://mariadb.org/) (Datenbank zum Speichern der Nutzer Informationen u.w.)
- [Memcached](https://www.memcached.org/) (Cache für den Webmailer SOGo)
- [Netfilter](https://www.netfilter.org/) (Fail2ban-ähnliche Integration von [@mkuron](https://github.com/mkuron))
- [Nginx](https://nginx.org/) (Webserver für die mailcow UI)
- [Oletools](https://github.com/decalage2/oletools) über [Olefy](https://github.com/HeinleinSupport/olefy) (Analyse von Office Dokumenten nach Viren, Makros etc.)
- [PHP](https://php.net/) (Programmiersprache der meisten Webbasierten mailcow Aktionen)
- [Postfix](http://www.postfix.org/) (Empfänger/Sender für den E-Mail-Verkehr im Internet)
- [Redis](https://redis.io/) (Speicher für Spaminformationen, DKIM Schlüssel u.w.)
- [Rspamd](https://www.rspamd.com/) (Spamfilter mit automatischem Lernen von Spammails)
- [SOGo](https://sogo.nu/) (Integrierter Webmailer und Cal-/Carddav Schnittstelle)
- [Solr](https://solr.apache.org/) (Voll-Text-Suche für IMAP Verbindungen zum schnellen durchsuchen von E-Mails) (optional)
- [Unbound](https://unbound.net/) (Integrierter DNS-Server zum Verifizieren von DNSSEC u.w)
- Ein Watchdog für die grundlegende Überwachung des Containerstatus innerhalb von mailcow
Doch das Herzstück bzw. das, was mailcow besonders macht, ist die grafische Weboberfläche, die **mailcow UI**.
Diese bietet für so gut wie alle Einstellungen einen Platz und erlaubt das bequeme Anlegen von neuen Domains und E-Mail-Adressen mit wenigen Klicks.
Aber auch andere bzw. kniffligere Themen können in ihr problemlos erledigt werden:
- [DKIM](http://dkim.org) und [ARC](http://arc-spec.org/) Unterstützung bzw. Generation.
- Black- und Whitelists pro Domain und pro Benutzer
- Spam-Score-Verwaltung pro Benutzer (Spam ablehnen, Spam markieren, Greylist)
- Erlauben Sie Mailbox-Benutzern, temporäre Spam-Aliase zu erstellen
- Voranstellen von E-Mail-Tags an den Betreff oder Verschieben von E-Mails in Unterordner (pro Benutzer)
- Mailbox-Benutzer können die TLS-Durchsetzung für eingehende und ausgehende Nachrichten umschalten
- Benutzer können die Caches von SOGo ActiveSync-Geräten zurücksetzen
- imapsync, um entfernte Postfächer regelmäßig zu migrieren oder abzurufen
- TFA: Yubikey OTP und WebAuthn USB (nur Google Chrome und Derivate), TOTP
- Hinzufügen von Whitelist-Hosts zur Weiterleitung von Mails an mailcow
- Fail2ban-ähnliche Integration
- Quarantäne-System
- Antivirus-Scanning inkl. Makro-Scanning in Office-Dokumenten
- Integrierte Basisüberwachung
- Und weitere...
Die mailcow Daten (wie bspw. E-Mails, Userdaten etc.) werden in **Docker-Volumes** aufbewahrt - geben Sie gut auf diese Volumes acht:
- clamd-db-vol-1
- crypt-vol-1
- mysql-socket-vol-1
- mysql-vol-1
- postfix-vol-1
- redis-vol-1
- rspamd-vol-1
- sogo-userdata-backup-vol-1
- sogo-web-vol-1
- solr-vol-1
- vmail-index-vol-1
- vmail-vol-1
!!! warning "Achtung"
Die Mails werden komprimiert und verschlüsselt gespeichert. Das Schlüsselpaar ist in crypt-vol-1 zu finden. Bitte vergessen Sie nicht, dieses und andere Volumes zu sichern. #KeinBackupkeinMitleid
---
## Unterstützen Sie das mailcow Projekt
Bitte erwägen Sie einen Supportvertrag gegen eine geringe monatliche Gebühr unter [Servercow](https://www.servercow.de/mailcow?#support)[^1], um die weitere Entwicklung zu unterstützen. _Wir_ unterstützen _Sie_, während _Sie_ _uns_ unterstützen. :)
Wenn Sie super toll sind und uns ohne Vertrag unterstützen möchten, können Sie eine SAL (Stay-Awesome License) erhalten, die Ihre Unterstützung bestätigt (kaufbar als flexible Einmalzahlung) bei [Servercow](https://www.servercow.de/mailcow#sal).
---
## Hilfe gefällig?
Es gibt zwei Möglichkeiten, Support für Ihre mailcow-Installation zu erhalten.
### Kommerzieller Support
Für professionellen und priorisierten kommerziellen Support können Sie ein Basis-Support-Abonnement unter [Servercow](https://www.servercow.de/mailcow#support) abschließen. Für kundenspezifische Anfragen oder Fragen kontaktieren Sie uns stattdessen bitte unter [info@servercow.de](mailto:info@servercow.de).
Darüber hinaus bieten wir auch eine voll ausgestattete und verwaltete [managed mailcow](https://www.servercow.de/mailcow#managed) an. Auf diese Weise kümmern wir uns um alles technische und Sie können Ihr ganzes Mail-Erlebnis auf eine problemlose Weise genießen.
### Community Support und Chat
Die Alternative ist unser kostenloser Community-Support auf unseren verschiedenen Kanälen unten. Bitte beachten Sie, dass dieser Support von unserer großartigen Community rund um mailcow betrieben wird. Diese Art von Support ist best-effort, freiwillig und es gibt keine Garantie für irgendetwas.
- Unsere mailcow Community @ [community.mailcow.email](https://community.mailcow.email)
- Telegram (Support) @ [t.me/mailcow](https://t.me/mailcow).
- Telegram (Off-Topic) @ [t.me/mailcowOfftopic](https://t.me/mailcowOfftopic).
- Twitter [@mailcow_email](https://twitter.com/mailcow_email)
Telegram Desktop-Clients sind für [mehrere Plattformen](https://desktop.telegram.org) verfügbar. Sie können den Gruppenverlauf nach Stichworten durchsuchen.
Nur für **Bug Tracking, Feature Requests und Codebeiträge**:
- GitHub @ [mailcow/mailcow-dockerized](https://github.com/mailcow/mailcow-dockerized)
---
## Neugierig? Gleich ausprobieren!
Haben wir Ihr Interesse geweckt? Verschaffen Sie sich in unseren offiziellen **mailcow Demos** einen ersten Überblick über die Funktionalitäten von mailcow und Ihrer mailcow UI!
Seit September 2022 stellen wir zwei verschiedene Demos bereit:
+ **[demo.mailcow.email](https://demo.mailcow.email)** ist die altbekannte Demo, welche sich am **Stabilen Stand** der mailcow orrientiert (master Branch auf GitHub).
+ **[nightly-demo.mailcow.email](https://nightly-demo.mailcow.email)** ist die neue **Nightly Demo**, welche Testfunktionen beherbergt. (Also insbesondere für alle interessant, die keine Möglichkeit haben sich eine Testinstanz selbst zu erstellen.) (nightly Branch auf GitHub)
!!! abstract "Nutzen Sie diese Anmeldedaten für die Demos"
- **Administrator**: admin / moohoo
- **Domänen-Administrator**: department / moohoo
- **Mailbox**: demo@440044.xyz / moohoo
*Die Anmeldedaten für die Logins funktionieren bei beiden Varianten*
!!! success "Immer auf dem neusten Stand"
Die Demo Instanzen erhalten die neusten Updates direkt nach Release von GitHub. Vollautomatisch, ohne Downtime!
[^1]: Servercow ist eine Hosting/Support Sparte der The Infrastructure Company GmbH (mailcow Maintainer)

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden Mehr anzeigen