From 540e689826cd9bb8b753e59a0f44d5e592bb21ed Mon Sep 17 00:00:00 2001 From: JosephK Date: Tue, 17 May 2022 14:23:20 +0200 Subject: [PATCH 1/2] Refactoring --- .bookignore | 14 + .gitignore | 10 +- .gitlab-ci.yml | 36 +- book.json | 2 +- en/README.md | 92 +- en/SUMMARY.md | 50 +- en/_layouts/website/page.html | 26 + en/styles/bootstrap.min.css | 11 +- en/styles/website.css | 342 +- fr/README.md | 345 +- fr/SUMMARY.md | 351 +- fr/_layouts/website/page.html | 26 + fr/manueldumo/TEX/dumo.tex | 5413 ----------------- fr/manueldumo/TEX/fncychapleo.sty | 433 -- fr/manueldumo/TEX/framatex_entete_titres.sty | 286 - fr/manueldumo/TEX/framatexclass.cls | 585 -- fr/manueldumo/TEX/images/FK112.png | Bin 99698 -> 0 bytes fr/manueldumo/TEX/images/FredEtKaty_pgp.pdf | Bin 68149 -> 0 bytes fr/manueldumo/TEX/images/FredEtKaty_pgp.png | Bin 509622 -> 0 bytes .../TEX/images/IBM_System360_Mainframe.jpg | Bin 3113789 -> 0 bytes fr/manueldumo/TEX/images/affiche-mineur.jpg | Bin 179478 -> 0 bytes .../TEX/images/bvarresadresserecherche.pdf | Bin 29406 -> 0 bytes .../TEX/images/bvarresadresserecherche.png | Bin 84547 -> 0 bytes fr/manueldumo/TEX/images/cleparcoeur.pdf | Bin 26103 -> 0 bytes fr/manueldumo/TEX/images/cleparcoeur.png | Bin 651402 -> 0 bytes .../config_thunderbirdnouveaucompte.pdf | Bin 100207 -> 0 bytes .../config_thunderbirdnouveaucompte.png | Bin 115094 -> 0 bytes .../TEX/images/configthunderbird2.pdf | Bin 190040 -> 0 bytes .../TEX/images/configthunderbird2.png | Bin 186501 -> 0 bytes .../TEX/images/configthunderbird3.pdf | Bin 185282 -> 0 bytes .../TEX/images/configthunderbird3.png | Bin 154626 -> 0 bytes .../TEX/images/configthunderbird4.pdf | Bin 194293 -> 0 bytes .../TEX/images/configthunderbird4.png | Bin 157626 -> 0 bytes .../TEX/images/configthunderbird5.pdf | Bin 228417 -> 0 bytes .../TEX/images/configthunderbird5.png | Bin 202120 -> 0 bytes fr/manueldumo/TEX/images/encarts/cloch.pdf | Bin 1276 -> 0 bytes fr/manueldumo/TEX/images/encarts/info.pdf | Bin 3843 -> 0 bytes fr/manueldumo/TEX/images/encarts/info.svg | 147 - .../TEX/images/encarts/logospourbclogo.svg | 117 - fr/manueldumo/TEX/images/firefox-module1.pdf | Bin 128677 -> 0 bytes fr/manueldumo/TEX/images/firefox-module1.png | Bin 95403 -> 0 bytes fr/manueldumo/TEX/images/firefox-module2.pdf | Bin 55348 -> 0 bytes fr/manueldumo/TEX/images/firefox-module2.png | Bin 79931 -> 0 bytes fr/manueldumo/TEX/images/firefox_certif.pdf | Bin 222015 -> 0 bytes fr/manueldumo/TEX/images/firefox_certif.png | Bin 284559 -> 0 bytes .../TEX/images/firefox_vieprivee.png | Bin 75603 -> 0 bytes fr/manueldumo/TEX/images/framadate.png | Bin 60019 -> 0 bytes .../TEX/images/framasphere_screen.png | Bin 134404 -> 0 bytes fr/manueldumo/TEX/images/get_http.pdf | Bin 389966 -> 0 bytes fr/manueldumo/TEX/images/get_http.png | Bin 461202 -> 0 bytes .../TEX/images/gnuprivacyassistant1.png | Bin 225317 -> 0 bytes .../TEX/images/grammalecte-options.pdf | Bin 219970 -> 0 bytes .../TEX/images/grammalecte-options.png | Bin 230929 -> 0 bytes fr/manueldumo/TEX/images/html-mineur.pdf | Bin 282607 -> 0 bytes fr/manueldumo/TEX/images/html-mineur.png | Bin 368819 -> 0 bytes fr/manueldumo/TEX/images/keepassx1.png | Bin 13643 -> 0 bytes fr/manueldumo/TEX/images/keepassx2.png | Bin 49239 -> 0 bytes .../TEX/images/libreofficeformat.pdf | Bin 153830 -> 0 bytes .../TEX/images/libreofficeformat.png | Bin 214533 -> 0 bytes .../TEX/images/libreofficeoptionsPDF.pdf | Bin 179144 -> 0 bytes .../TEX/images/libreofficeoptionsPDF.png | Bin 215376 -> 0 bytes fr/manueldumo/TEX/images/logofbook.png | Bin 32516 -> 0 bytes fr/manueldumo/TEX/images/lpdonner.png | Bin 5359 -> 0 bytes fr/manueldumo/TEX/images/lpdonner.svg | 96 - fr/manueldumo/TEX/images/mastodon.png | Bin 289791 -> 0 bytes fr/manueldumo/TEX/images/mimieunicetrad.pdf | Bin 80768 -> 0 bytes fr/manueldumo/TEX/images/mimieunicetrad.png | Bin 730304 -> 0 bytes fr/manueldumo/TEX/images/movim-screen.png | Bin 781404 -> 0 bytes .../TEX/images/nextcloud_interfaceweb.png | Bin 17025 -> 0 bytes .../TEX/images/pgpfonctionnement.pdf | Bin 59011 -> 0 bytes .../TEX/images/pgpfonctionnement.png | Bin 116726 -> 0 bytes fr/manueldumo/TEX/images/pidgin1.png | Bin 59606 -> 0 bytes fr/manueldumo/TEX/images/pidgin2.png | Bin 30500 -> 0 bytes fr/manueldumo/TEX/images/plugin-flash.pdf | Bin 40603 -> 0 bytes fr/manueldumo/TEX/images/plugin-flash.png | Bin 83499 -> 0 bytes fr/manueldumo/TEX/images/screen-darktable.png | Bin 658331 -> 0 bytes fr/manueldumo/TEX/images/screen-retext.pdf | Bin 255949 -> 0 bytes fr/manueldumo/TEX/images/screen-retext.png | Bin 296718 -> 0 bytes fr/manueldumo/TEX/images/screen-vlc.png | Bin 570629 -> 0 bytes .../TEX/images/screenLibreofficeWriter.png | Bin 202824 -> 0 bytes .../TEX/images/screen_privacybadger.png | Bin 622294 -> 0 bytes fr/manueldumo/TEX/images/securite_gege.png | Bin 614185 -> 0 bytes fr/manueldumo/TEX/images/seenthis-screen.png | Bin 114251 -> 0 bytes fr/manueldumo/TEX/images/surflien.pdf | Bin 471899 -> 0 bytes fr/manueldumo/TEX/images/surflien.png | Bin 301123 -> 0 bytes fr/manueldumo/TEX/picins.sty | 578 -- fr/styles/bootstrap.min.css | 11 +- fr/styles/website.css | 331 +- lang.js | 3 +- package-lock.json | 1 - package.json | 4 +- prepare-commons.sh | 52 + 92 files changed, 997 insertions(+), 8365 deletions(-) create mode 100644 .bookignore delete mode 100644 fr/manueldumo/TEX/dumo.tex delete mode 100755 fr/manueldumo/TEX/fncychapleo.sty delete mode 100644 fr/manueldumo/TEX/framatex_entete_titres.sty delete mode 100644 fr/manueldumo/TEX/framatexclass.cls delete mode 100644 fr/manueldumo/TEX/images/FK112.png delete mode 100644 fr/manueldumo/TEX/images/FredEtKaty_pgp.pdf delete mode 100644 fr/manueldumo/TEX/images/FredEtKaty_pgp.png delete mode 100644 fr/manueldumo/TEX/images/IBM_System360_Mainframe.jpg delete mode 100644 fr/manueldumo/TEX/images/affiche-mineur.jpg delete mode 100644 fr/manueldumo/TEX/images/bvarresadresserecherche.pdf delete mode 100644 fr/manueldumo/TEX/images/bvarresadresserecherche.png delete mode 100644 fr/manueldumo/TEX/images/cleparcoeur.pdf delete mode 100644 fr/manueldumo/TEX/images/cleparcoeur.png delete mode 100644 fr/manueldumo/TEX/images/config_thunderbirdnouveaucompte.pdf delete mode 100644 fr/manueldumo/TEX/images/config_thunderbirdnouveaucompte.png delete mode 100644 fr/manueldumo/TEX/images/configthunderbird2.pdf delete mode 100644 fr/manueldumo/TEX/images/configthunderbird2.png delete mode 100644 fr/manueldumo/TEX/images/configthunderbird3.pdf delete mode 100644 fr/manueldumo/TEX/images/configthunderbird3.png delete mode 100644 fr/manueldumo/TEX/images/configthunderbird4.pdf delete mode 100644 fr/manueldumo/TEX/images/configthunderbird4.png delete mode 100644 fr/manueldumo/TEX/images/configthunderbird5.pdf delete mode 100644 fr/manueldumo/TEX/images/configthunderbird5.png delete mode 100644 fr/manueldumo/TEX/images/encarts/cloch.pdf delete mode 100644 fr/manueldumo/TEX/images/encarts/info.pdf delete mode 100644 fr/manueldumo/TEX/images/encarts/info.svg delete mode 100644 fr/manueldumo/TEX/images/encarts/logospourbclogo.svg delete mode 100644 fr/manueldumo/TEX/images/firefox-module1.pdf delete mode 100644 fr/manueldumo/TEX/images/firefox-module1.png delete mode 100644 fr/manueldumo/TEX/images/firefox-module2.pdf delete mode 100644 fr/manueldumo/TEX/images/firefox-module2.png delete mode 100644 fr/manueldumo/TEX/images/firefox_certif.pdf delete mode 100644 fr/manueldumo/TEX/images/firefox_certif.png delete mode 100644 fr/manueldumo/TEX/images/firefox_vieprivee.png delete mode 100644 fr/manueldumo/TEX/images/framadate.png delete mode 100644 fr/manueldumo/TEX/images/framasphere_screen.png delete mode 100644 fr/manueldumo/TEX/images/get_http.pdf delete mode 100644 fr/manueldumo/TEX/images/get_http.png delete mode 100644 fr/manueldumo/TEX/images/gnuprivacyassistant1.png delete mode 100644 fr/manueldumo/TEX/images/grammalecte-options.pdf delete mode 100644 fr/manueldumo/TEX/images/grammalecte-options.png delete mode 100644 fr/manueldumo/TEX/images/html-mineur.pdf delete mode 100644 fr/manueldumo/TEX/images/html-mineur.png delete mode 100644 fr/manueldumo/TEX/images/keepassx1.png delete mode 100644 fr/manueldumo/TEX/images/keepassx2.png delete mode 100644 fr/manueldumo/TEX/images/libreofficeformat.pdf delete mode 100644 fr/manueldumo/TEX/images/libreofficeformat.png delete mode 100644 fr/manueldumo/TEX/images/libreofficeoptionsPDF.pdf delete mode 100644 fr/manueldumo/TEX/images/libreofficeoptionsPDF.png delete mode 100644 fr/manueldumo/TEX/images/logofbook.png delete mode 100644 fr/manueldumo/TEX/images/lpdonner.png delete mode 100644 fr/manueldumo/TEX/images/lpdonner.svg delete mode 100644 fr/manueldumo/TEX/images/mastodon.png delete mode 100644 fr/manueldumo/TEX/images/mimieunicetrad.pdf delete mode 100644 fr/manueldumo/TEX/images/mimieunicetrad.png delete mode 100644 fr/manueldumo/TEX/images/movim-screen.png delete mode 100644 fr/manueldumo/TEX/images/nextcloud_interfaceweb.png delete mode 100644 fr/manueldumo/TEX/images/pgpfonctionnement.pdf delete mode 100644 fr/manueldumo/TEX/images/pgpfonctionnement.png delete mode 100644 fr/manueldumo/TEX/images/pidgin1.png delete mode 100644 fr/manueldumo/TEX/images/pidgin2.png delete mode 100644 fr/manueldumo/TEX/images/plugin-flash.pdf delete mode 100644 fr/manueldumo/TEX/images/plugin-flash.png delete mode 100644 fr/manueldumo/TEX/images/screen-darktable.png delete mode 100644 fr/manueldumo/TEX/images/screen-retext.pdf delete mode 100644 fr/manueldumo/TEX/images/screen-retext.png delete mode 100644 fr/manueldumo/TEX/images/screen-vlc.png delete mode 100644 fr/manueldumo/TEX/images/screenLibreofficeWriter.png delete mode 100644 fr/manueldumo/TEX/images/screen_privacybadger.png delete mode 100644 fr/manueldumo/TEX/images/securite_gege.png delete mode 100644 fr/manueldumo/TEX/images/seenthis-screen.png delete mode 100644 fr/manueldumo/TEX/images/surflien.pdf delete mode 100644 fr/manueldumo/TEX/images/surflien.png delete mode 100644 fr/manueldumo/TEX/picins.sty create mode 100755 prepare-commons.sh diff --git a/.bookignore b/.bookignore new file mode 100644 index 0000000..bf4002b --- /dev/null +++ b/.bookignore @@ -0,0 +1,14 @@ +# +# Files we don't want to end up in '_book/' +# +/README.md +/package.json +/package-lock.json +/prepare-commons.sh +/redirections.sh +/.* + +# Bring in the generated files (having them in .gitignore would otherwise leave them out) +!en/* +!fr/* +!uploads \ No newline at end of file diff --git a/.gitignore b/.gitignore index 1d04e4e..e72219d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,10 @@ _book -node_modules \ No newline at end of file +node_modules +en/* +!en/_layouts +!en/styles +fr/* +!fr/_layouts +!fr/styles +uploads +tmp diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fb03dcb..8084abb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,14 +2,42 @@ image: node:12-buster pages: script: - - npm i - - npx honkit init - - npx honkit build + - npm run commons + - npm run prod - sed -i -e 's// {% endblock %} diff --git a/en/styles/bootstrap.min.css b/en/styles/bootstrap.min.css index ed3905e..1472dec 100644 --- a/en/styles/bootstrap.min.css +++ b/en/styles/bootstrap.min.css @@ -1,6 +1,7 @@ -/*! - * Bootstrap v3.3.7 (http://getbootstrap.com) - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} +@charset "UTF-8";/*! + * Bootstrap v5.1.3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-color-rgb:33,37,41;--bs-body-bg-rgb:255,255,255;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-bg:#fff}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:#6c757d}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{width:100%;padding-right:var(--bs-gutter-x,.75rem);padding-left:var(--bs-gutter-x,.75rem);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-bg:transparent;--bs-table-accent-bg:transparent;--bs-table-striped-color:#212529;--bs-table-striped-bg:rgba(0, 0, 0, 0.05);--bs-table-active-color:#212529;--bs-table-active-bg:rgba(0, 0, 0, 0.1);--bs-table-hover-color:#212529;--bs-table-hover-bg:rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:#212529;vertical-align:top;border-color:#dee2e6}.table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:first-child){border-top:2px solid currentColor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg:var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover>*{--bs-table-accent-bg:var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg:#cfe2ff;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:#000;border-color:#bacbe6}.table-secondary{--bs-table-bg:#e2e3e5;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:#000;border-color:#cbccce}.table-success{--bs-table-bg:#d1e7dd;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:#000;border-color:#bcd0c7}.table-info{--bs-table-bg:#cff4fc;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:#000;border-color:#badce3}.table-warning{--bs-table-bg:#fff3cd;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:#000;border-color:#e6dbb9}.table-danger{--bs-table-bg:#f8d7da;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:#000;border-color:#dfc2c4}.table-light{--bs-table-bg:#f8f9fa;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:#000;border-color:#dfe0e1}.table-dark{--bs-table-bg:#212529;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:#fff;border-color:#373b3e}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:#6c757d}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#212529;background-color:#fff;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#dde0e3}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + 2px)}textarea.form-control-sm{min-height:calc(1.5em + .5rem + 2px)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}.form-control-color{width:3rem;height:auto;padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.5em;border-radius:.25rem}.form-control-color::-webkit-color-swatch{height:1.5em;border-radius:.25rem}.form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;-moz-padding-start:calc(0.75rem - 3px);font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#e9ecef}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #212529}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:.2rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:.3rem}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control{padding:1rem .75rem}.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#198754}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(25,135,84,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#198754;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:#198754}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#198754}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#198754}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#198754}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group .form-control.is-valid,.input-group .form-select.is-valid,.was-validated .input-group .form-control:valid,.was-validated .input-group .form-select:valid{z-index:1}.input-group .form-control.is-valid:focus,.input-group .form-select.is-valid:focus,.was-validated .input-group .form-control:valid:focus,.was-validated .input-group .form-select:valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:#dc3545}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#dc3545}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#dc3545}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group .form-control.is-invalid,.input-group .form-select.is-invalid,.was-validated .input-group .form-control:invalid,.was-validated .input-group .form-select:invalid{z-index:2}.input-group .form-control.is-invalid:focus,.input-group .form-select.is-invalid:focus,.was-validated .input-group .form-control:invalid:focus,.was-validated .input-group .form-select:invalid:focus{z-index:3}.btn{display:inline-block;font-weight:400;line-height:1.5;color:#212529;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:#0b5ed7;border-color:#0a58ca}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:#0b5ed7;border-color:#0a58ca;box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-check:active+.btn-primary,.btn-check:checked+.btn-primary,.btn-primary.active,.btn-primary:active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0a58ca;border-color:#0a53be}.btn-check:active+.btn-primary:focus,.btn-check:checked+.btn-primary:focus,.btn-primary.active:focus,.btn-primary:active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5c636a;border-color:#565e64}.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#fff;background-color:#5c636a;border-color:#565e64;box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-check:active+.btn-secondary,.btn-check:checked+.btn-secondary,.btn-secondary.active,.btn-secondary:active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#565e64;border-color:#51585e}.btn-check:active+.btn-secondary:focus,.btn-check:checked+.btn-secondary:focus,.btn-secondary.active:focus,.btn-secondary:active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-success{color:#fff;background-color:#198754;border-color:#198754}.btn-success:hover{color:#fff;background-color:#157347;border-color:#146c43}.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#157347;border-color:#146c43;box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-check:active+.btn-success,.btn-check:checked+.btn-success,.btn-success.active,.btn-success:active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#146c43;border-color:#13653f}.btn-check:active+.btn-success:focus,.btn-check:checked+.btn-success:focus,.btn-success.active:focus,.btn-success:active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#198754;border-color:#198754}.btn-info{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-info:hover{color:#000;background-color:#31d2f2;border-color:#25cff2}.btn-check:focus+.btn-info,.btn-info:focus{color:#000;background-color:#31d2f2;border-color:#25cff2;box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-check:active+.btn-info,.btn-check:checked+.btn-info,.btn-info.active,.btn-info:active,.show>.btn-info.dropdown-toggle{color:#000;background-color:#3dd5f3;border-color:#25cff2}.btn-check:active+.btn-info:focus,.btn-check:checked+.btn-info:focus,.btn-info.active:focus,.btn-info:active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-info.disabled,.btn-info:disabled{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-warning{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#000;background-color:#ffca2c;border-color:#ffc720}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#000;background-color:#ffca2c;border-color:#ffc720;box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-check:active+.btn-warning,.btn-check:checked+.btn-warning,.btn-warning.active,.btn-warning:active,.show>.btn-warning.dropdown-toggle{color:#000;background-color:#ffcd39;border-color:#ffc720}.btn-check:active+.btn-warning:focus,.btn-check:checked+.btn-warning:focus,.btn-warning.active:focus,.btn-warning:active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#bb2d3b;border-color:#b02a37}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#bb2d3b;border-color:#b02a37;box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-check:active+.btn-danger,.btn-check:checked+.btn-danger,.btn-danger.active,.btn-danger:active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#b02a37;border-color:#a52834}.btn-check:active+.btn-danger:focus,.btn-check:checked+.btn-danger:focus,.btn-danger.active:focus,.btn-danger:active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-light{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:focus+.btn-light,.btn-light:focus{color:#000;background-color:#f9fafb;border-color:#f9fafb;box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-check:active+.btn-light,.btn-check:checked+.btn-light,.btn-light.active,.btn-light:active,.show>.btn-light.dropdown-toggle{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:active+.btn-light:focus,.btn-check:checked+.btn-light:focus,.btn-light.active:focus,.btn-light:active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-light.disabled,.btn-light:disabled{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-dark{color:#fff;background-color:#212529;border-color:#212529}.btn-dark:hover{color:#fff;background-color:#1c1f23;border-color:#1a1e21}.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fff;background-color:#1c1f23;border-color:#1a1e21;box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-check:active+.btn-dark,.btn-check:checked+.btn-dark,.btn-dark.active,.btn-dark:active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1a1e21;border-color:#191c1f}.btn-check:active+.btn-dark:focus,.btn-check:checked+.btn-dark:focus,.btn-dark.active:focus,.btn-dark:active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#212529;border-color:#212529}.btn-outline-primary{color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:hover{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-check:active+.btn-outline-primary,.btn-check:checked+.btn-outline-primary,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show,.btn-outline-primary:active{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:active+.btn-outline-primary:focus,.btn-check:checked+.btn-outline-primary:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus,.btn-outline-primary:active:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#0d6efd;background-color:transparent}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-check:active+.btn-outline-secondary,.btn-check:checked+.btn-outline-secondary,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show,.btn-outline-secondary:active{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:active+.btn-outline-secondary:focus,.btn-check:checked+.btn-outline-secondary:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus,.btn-outline-secondary:active:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-success{color:#198754;border-color:#198754}.btn-outline-success:hover{color:#fff;background-color:#198754;border-color:#198754}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-check:active+.btn-outline-success,.btn-check:checked+.btn-outline-success,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show,.btn-outline-success:active{color:#fff;background-color:#198754;border-color:#198754}.btn-check:active+.btn-outline-success:focus,.btn-check:checked+.btn-outline-success:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus,.btn-outline-success:active:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#198754;background-color:transparent}.btn-outline-info{color:#0dcaf0;border-color:#0dcaf0}.btn-outline-info:hover{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-check:active+.btn-outline-info,.btn-check:checked+.btn-outline-info,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show,.btn-outline-info:active{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:active+.btn-outline-info:focus,.btn-check:checked+.btn-outline-info:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus,.btn-outline-info:active:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#0dcaf0;background-color:transparent}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-check:active+.btn-outline-warning,.btn-check:checked+.btn-outline-warning,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show,.btn-outline-warning:active{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:active+.btn-outline-warning:focus,.btn-check:checked+.btn-outline-warning:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus,.btn-outline-warning:active:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-check:active+.btn-outline-danger,.btn-check:checked+.btn-outline-danger,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show,.btn-outline-danger:active{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:active+.btn-outline-danger:focus,.btn-check:checked+.btn-outline-danger:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus,.btn-outline-danger:active:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-check:active+.btn-outline-light,.btn-check:checked+.btn-outline-light,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show,.btn-outline-light:active{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:active+.btn-outline-light:focus,.btn-check:checked+.btn-outline-light:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus,.btn-outline-light:active:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-dark{color:#212529;border-color:#212529}.btn-outline-dark:hover{color:#fff;background-color:#212529;border-color:#212529}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-check:active+.btn-outline-dark,.btn-check:checked+.btn-outline-dark,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show,.btn-outline-dark:active{color:#fff;background-color:#212529;border-color:#212529}.btn-check:active+.btn-outline-dark:focus,.btn-check:checked+.btn-outline-dark:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus,.btn-outline-dark:active:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#212529;background-color:transparent}.btn-link{font-weight:400;color:#0d6efd;text-decoration:underline}.btn-link:hover{color:#0a58ca}.btn-link.disabled,.btn-link:disabled{color:#6c757d}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropend,.dropstart,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:.125rem}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(0,0,0,.15)}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#1e2125;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#212529}.dropdown-menu-dark{color:#dee2e6;background-color:#343a40;border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item{color:#dee2e6}.dropdown-menu-dark .dropdown-item:focus,.dropdown-menu-dark .dropdown-item:hover{color:#fff;background-color:rgba(255,255,255,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#fff;background-color:#0d6efd}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-divider{border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item-text{color:#dee2e6}.dropdown-menu-dark .dropdown-header{color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem;color:#0d6efd;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:#0a58ca}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;background:0 0;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6;isolation:isolate}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{background:0 0;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#0d6efd}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;text-decoration:none;white-space:nowrap}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem;transition:box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 .25rem}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas-header{display:none}.navbar-expand-sm .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-sm .offcanvas-bottom,.navbar-expand-sm .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas-header{display:none}.navbar-expand-md .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-md .offcanvas-bottom,.navbar-expand-md .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas-header{display:none}.navbar-expand-lg .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-lg .offcanvas-bottom,.navbar-expand-lg .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas-header{display:none}.navbar-expand-xl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xl .offcanvas-bottom,.navbar-expand-xl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xxl .offcanvas-bottom,.navbar-expand-xxl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas-header{display:none}.navbar-expand .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand .offcanvas-bottom,.navbar-expand .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.55)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.55);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.55)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.55)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.55);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.55)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:1rem 1rem}.card-title{margin-bottom:.5rem}.card-subtitle{margin-top:-.25rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:1rem}.card-header{padding:.5rem 1rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.5rem 1rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.5rem;margin-bottom:-.5rem;margin-left:-.5rem;border-bottom:0}.card-header-pills{margin-right:-.5rem;margin-left:-.5rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-group>.card{margin-bottom:.75rem}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:1rem 1.25rem;font-size:1rem;color:#212529;text-align:left;background-color:#fff;border:0;border-radius:0;overflow-anchor:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:#0c63e4;background-color:#e7f1ff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.125)}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");transform:rotate(-180deg)}.accordion-button::after{flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transition:transform .2s ease-in-out}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.accordion-header{margin-bottom:0}.accordion-item{background-color:#fff;border:1px solid rgba(0,0,0,.125)}.accordion-item:first-of-type{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.accordion-item:first-of-type .accordion-button{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-body{padding:1rem 1.25rem}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button{border-radius:0}.breadcrumb{display:flex;flex-wrap:wrap;padding:0 0;margin-bottom:1rem;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:#0d6efd;text-decoration:none;background-color:#fff;border:1px solid #dee2e6;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:#0a58ca;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;color:#0a58ca;background-color:#e9ecef;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;background-color:#fff;border-color:#dee2e6}.page-link{padding:.375rem .75rem}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{color:#084298;background-color:#cfe2ff;border-color:#b6d4fe}.alert-primary .alert-link{color:#06357a}.alert-secondary{color:#41464b;background-color:#e2e3e5;border-color:#d3d6d8}.alert-secondary .alert-link{color:#34383c}.alert-success{color:#0f5132;background-color:#d1e7dd;border-color:#badbcc}.alert-success .alert-link{color:#0c4128}.alert-info{color:#055160;background-color:#cff4fc;border-color:#b6effb}.alert-info .alert-link{color:#04414d}.alert-warning{color:#664d03;background-color:#fff3cd;border-color:#ffecb5}.alert-warning .alert-link{color:#523e02}.alert-danger{color:#842029;background-color:#f8d7da;border-color:#f5c2c7}.alert-danger .alert-link{color:#6a1a21}.alert-light{color:#636464;background-color:#fefefe;border-color:#fdfdfe}.alert-light .alert-link{color:#4f5050}.alert-dark{color:#141619;background-color:#d3d3d4;border-color:#bcbebf}.alert-dark .alert-link{color:#101214}@-webkit-keyframes progress-bar-stripes{0%{background-position-x:1rem}}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#0d6efd;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>li::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.5rem 1rem;color:#212529;text-decoration:none;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#084298;background-color:#cfe2ff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#084298;background-color:#bacbe6}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#084298;border-color:#084298}.list-group-item-secondary{color:#41464b;background-color:#e2e3e5}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#41464b;background-color:#cbccce}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#41464b;border-color:#41464b}.list-group-item-success{color:#0f5132;background-color:#d1e7dd}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#0f5132;background-color:#bcd0c7}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#0f5132;border-color:#0f5132}.list-group-item-info{color:#055160;background-color:#cff4fc}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#055160;background-color:#badce3}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#055160;border-color:#055160}.list-group-item-warning{color:#664d03;background-color:#fff3cd}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#664d03;background-color:#e6dbb9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#664d03;border-color:#664d03}.list-group-item-danger{color:#842029;background-color:#f8d7da}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#842029;background-color:#dfc2c4}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#842029;border-color:#842029}.list-group-item-light{color:#636464;background-color:#fefefe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#636464;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#636464;border-color:#636464}.list-group-item-dark{color:#141619;background-color:#d3d3d4}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#141619;background-color:#bebebf}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#141619;border-color:#141619}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#000;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:.5}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25);opacity:1}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;max-width:100%;font-size:.875rem;pointer-events:auto;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);border-radius:.25rem}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:.75rem}.toast-header{display:flex;align-items:center;padding:.5rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-header .btn-close{margin-right:-.375rem;margin-left:.75rem}.toast-body{padding:.75rem;word-wrap:break-word}.modal{position:fixed;top:0;left:0;z-index:1055;display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1050;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .btn-close{padding:.5rem .5rem;margin:-.5rem -.5rem -.5rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;flex-shrink:0;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}.modal-fullscreen .modal-footer{border-radius:0}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}.modal-fullscreen-sm-down .modal-footer{border-radius:0}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}.modal-fullscreen-md-down .modal-footer{border-radius:0}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}.modal-fullscreen-lg-down .modal-footer{border-radius:0}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}.modal-fullscreen-xl-down .modal-footer{border-radius:0}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}.modal-fullscreen-xxl-down .modal-footer{border-radius:0}}.tooltip{position:absolute;z-index:1080;display:block;margin:0;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[data-popper-placement^=right],.bs-tooltip-end{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[data-popper-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[data-popper-placement^=left],.bs-tooltip-start{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1070;display:block;max-width:276px;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f0f0f0}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;background-color:#f0f0f0;border-bottom:1px solid rgba(0,0,0,.2);border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}@-webkit-keyframes spinner-border{to{transform:rotate(360deg)}}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1045;display:flex;flex-direction:column;max-width:100%;visibility:hidden;background-color:#fff;background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem}.offcanvas-header .btn-close{padding:.5rem .5rem;margin-top:-.5rem;margin-right:-.5rem;margin-bottom:-.5rem}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{flex-grow:1;padding:1rem 1rem;overflow-y:auto}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid rgba(0,0,0,.2);transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid rgba(0,0,0,.2);transform:translateX(100%)}.offcanvas-top{top:0;right:0;left:0;height:30vh;max-height:100%;border-bottom:1px solid rgba(0,0,0,.2);transform:translateY(-100%)}.offcanvas-bottom{right:0;left:0;height:30vh;max-height:100%;border-top:1px solid rgba(0,0,0,.2);transform:translateY(100%)}.offcanvas.show{transform:none}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentColor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{-webkit-animation:placeholder-glow 2s ease-in-out infinite;animation:placeholder-glow 2s ease-in-out infinite}@-webkit-keyframes placeholder-glow{50%{opacity:.2}}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;-webkit-animation:placeholder-wave 2s linear infinite;animation:placeholder-wave 2s linear infinite}@-webkit-keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.link-primary{color:#0d6efd}.link-primary:focus,.link-primary:hover{color:#0a58ca}.link-secondary{color:#6c757d}.link-secondary:focus,.link-secondary:hover{color:#565e64}.link-success{color:#198754}.link-success:focus,.link-success:hover{color:#146c43}.link-info{color:#0dcaf0}.link-info:focus,.link-info:hover{color:#3dd5f3}.link-warning{color:#ffc107}.link-warning:focus,.link-warning:hover{color:#ffcd39}.link-danger{color:#dc3545}.link-danger:focus,.link-danger:hover{color:#b02a37}.link-light{color:#f8f9fa}.link-light:focus,.link-light:hover{color:#f9fafb}.link-dark{color:#212529}.link-dark:focus,.link-dark:hover{color:#1a1e21}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:1px;min-height:1em;background-color:currentColor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:1px solid #dee2e6!important}.border-0{border:0!important}.border-top{border-top:1px solid #dee2e6!important}.border-top-0{border-top:0!important}.border-end{border-right:1px solid #dee2e6!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:1px solid #dee2e6!important}.border-start-0{border-left:0!important}.border-primary{border-color:#0d6efd!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#198754!important}.border-info{border-color:#0dcaf0!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#212529!important}.border-white{border-color:#fff!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:#6c757d!important}.text-black-50{--bs-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1;color:rgba(255,255,255,.5)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:0.25}.text-opacity-50{--bs-text-opacity:0.5}.text-opacity-75{--bs-text-opacity:0.75}.text-opacity-100{--bs-text-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-opacity-10{--bs-bg-opacity:0.1}.bg-opacity-25{--bs-bg-opacity:0.25}.bg-opacity-50{--bs-bg-opacity:0.5}.bg-opacity-75{--bs-bg-opacity:0.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:.25rem!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:.2rem!important}.rounded-2{border-radius:.25rem!important}.rounded-3{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-end{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-start{border-bottom-left-radius:.25rem!important;border-top-left-radius:.25rem!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} /*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/en/styles/website.css b/en/styles/website.css index 3145856..c1e0544 100644 --- a/en/styles/website.css +++ b/en/styles/website.css @@ -1,57 +1,208 @@ @import 'bootstrap.min.css'; +/* Header */ +.book-header { + position: fixed; + background: #fff; + border-bottom: 1px solid #e2e8f0; + width: 100%; + display: flex; + align-items: center; +} + +.page-wrapper { + margin-top: 42px; +} + +.font-settings.js-toolbar-action, +.book-header h1 { + display: none; +} + +.book-header .btn { + height: auto; +} + +.book-header .js-toolbar-action:nth-child(2), +.book-header .btn-outline-secondary { + float: left; + padding: 0.375rem 0.75rem; + line-height: 1rem; + margin-right: 10px; + border-radius: 0.25rem; + + color: #4a5568; + border: 1px solid #4a5568; +} + +.book-header .js-toolbar-action:nth-child(2):hover, +.book-header .js-toolbar-action:nth-child(2):focus, +.book-header .btn-outline-secondary:hover, +.book-header .btn-outline-secondary:focus { + color: #fff; + background-color: #4a5568; + border-color: #4a5568; +} + +#book-search-input { + margin-bottom: 0; + background: #e2e8f0; + border-bottom: 1px solid #e2e8f0; + border-top: none; + display:flex; + align-items: center; +} + +#book-search-input::before { + font-family: FontAwesome; + font-size: 1.2em; + content: "\f002"; + padding: 0 7px; +} + +#book-search-input input { background: #fff !important; } +/* --- */ + +.markdown-section p > code, +.markdown-section li > code { + color: #d63384; +} + +.markdown-section img { + border: 5px solid #e2e8f0; + /* padding: 5px;*/ + margin: 1px; +} + +.markdown-section .fa-lg { + font-size: 1.33333333em !important; +} + +.markdown-section .fa { + color: #677890; +} + +pre { + border: 1px solid #cbd5e0 !important; +} + +.page-wrapper a { + color: #1f1f1f; + text-decoration: none; + border-bottom: 2px solid #a0aec0; +} + +.page-wrapper a:hover, +.page-wrapper a:focus { + color: #1a202c; + text-decoration: none; + border-color: #a87ede; +} + +.page-wrapper .btn-default { + border: 1px solid #a0aec0; + margin-bottom: 1rem; +} + .summary a, .book-body .navigation { - text-decoration:none !important; + text-decoration: none !important; } -.book-summary ul.summary li.active > a, -.markdown-section a { - color: #0C5B7A; + +.page-toc a, +.page-wrapper .anchorjs-link { + border: none; +} + +.page-toc { + background-color: #f7fafc; + border: 1px solid #edf2f7; } .markdown-section .btn-block { - margin-bottom: 30px; + margin-bottom: 30px; } .markdown-section .col-md-3 .btn-block { - min-height: 140px; + min-height: 140px; } +/* Summary */ +.book-summary { + color: #4a5568; + background: #edf2f7; -.summary .divider { - visibility: hidden; + display: flex; + flex-direction: column; } -#book-search-input { - margin-bottom:0; + +.book-summary nav { + height: 100%; + display: flex; + flex-direction: column; } + +.book-summary ul.summary li.header { + color: #4a5568; + font-weight: bold; + border-top: 1px solid #e2e8f0; +} + +.summary { + display: flex; + flex-direction: column; + flex-grow: 1; +} + +.summary .divider { + visibility: hidden; +} + .chapter { - background-color:#eee; - border-bottom:1px solid #ddd; + background-color: #edf2f7; + border-bottom: none; } + .chapter ul { - padding-bottom:10px; + padding-bottom: 10px; } + .chapter ul li{ - background-color:#fff; - border:none + background-color: #fff; + border: none } + .chapter.active { - border-left: 4px solid #9876cc; + border-left: 4px solid #dd6418; + background: #fee7c8; } + .chapter.active a { - margin-left:-4px; + margin-left: -4px; } -.summary .chapter > a:before { - font-family: FontAwesome; - font-size: 1.2em; +.book-summary ul.summary li.active > a { + color: #9c3c1c; +} + +.book-summary ul.summary li.active > a::before { + color: #cc4e13; +} + +.summary .chapter > a::before { + font-family: FontAwesome; + font-size: 1.2em; } .summary > .chapter:nth-child(1) a:before { content: "\f015"; } .summary .chapter > a[href$="auto-hebergement/"]:before { content: "\f02d"; } .summary .chapter > a[href$="manueldumo/"]:before { content: "\f02d"; } +.summary .chapter > a[href$="comprendre/"]:before { content: "\f02d"; } +.summary .chapter > a[href$="astuces/"]:before { content: "\f02d"; } +.summary .chapter > a[href$="moderation/"]:before { content: "\f02d"; } +.summary .chapter > a[href$="agenda/"]:before { content: "\f073"; } .summary .chapter > a[href$="wisemapping/"]:before { content: "\f0e8"; } .summary .chapter > a[href$="framadate/"]:before { content: "\f274"; } .summary .chapter > a[href$="etherpad/"]:before { content: "\f036"; } @@ -64,7 +215,7 @@ .summary .chapter > a[href$="lstu/"]:before { content: "\f0c1"; } .summary .chapter > a[href$="gitlab/"]:before { content: "\f1d3"; } .summary .chapter > a[href$="lutim/"]:before { content: "\f03e"; } -.summary .chapter > a[href$="zerobin/"]:before { content: "\f0ea"; } +.summary .chapter > a[href$="privatebin/"]:before { content: "\f0ea"; } .summary .chapter > a[href$="searx/"]:before { content: "\f002"; } .summary .chapter > a[href$="bicbucstriim/"]:before { content: "\f0f4"; } .summary .chapter > a[href$="nextcloud/"]:before { content: "\f0ee"; } @@ -93,80 +244,39 @@ .summary .chapter > a[href$="framasite/"]:before { content: "\f0ac"; } .summary .chapter > a[href$="noemiecms/"]:before { content: "\f1b3"; } -/* Masked service because closed */ -.summary .chapter > a[href$="searx/"], -a[href$="searx/index.html"].btn, -.summary .chapter > a[href$="ttrss/"], -a[href$="ttrss/index.html"].btn, -.summary .chapter > a[href$="lutim/"], -a[href$="lutim/index.html"].btn, -.summary .chapter > a[href$="dolomon/"], -a[href$="dolomon/index.html"].btn, -.summary .chapter > a[href$="shaarli/"], -a[href$="shaarli/index.html"].btn, -.summary .chapter > a[href$="rendez-vous/"], -a[href$="rendez-vous/index.html"].btn, -.summary .chapter > a[href$="privatebin/"], -a[href$="privatebin/index.html"].btn, -.summary .chapter > a[href$="turtl/"], -a[href$="turtl/index.html"].btn, -.summary .chapter > a[href$="diaspora/"], -a[href$="diaspora/index.html"].btn, -.summary .chapter > a[href$="wallabag/"], -a[href$="wallabag/index.html"].btn, -.summary .chapter > a[href$="kanboard/"], -a[href$="kanboard/index.html"].btn, -.summary .chapter > a[href$="strut/"], -a[href$="strut/index.html"].btn, -.summary .chapter > a[href$="scrumblr/"], -a[href$="scrumblr/index.html"].btn, -.summary .chapter > a[href$="lufi/"], -a[href$="lufi/index.html"].btn, -.summary .chapter > a[href$="lstu/"], -a[href$="lstu/index.html"].btn, -.summary .chapter > a[href$="framasite/"], -a[href$="framasite/index.html"].btn, -.summary .chapter > a[href$="grav/"], -a[href$="grav/index.html"].btn, -.summary .chapter > a[href$="dokuwiki/"], -a[href$="dokuwiki/index.html"].btn, -.summary .chapter > a[href$="noemiecms/"], -a[href$="noemiecms/index.html"].btn { - color:var(--f-g7); - fill:var(--f-g6); - background:var(--f-r2); -} - -/* Masked service because limited */ - -.summary .chapter > a[href$="mastodon/"], -a[href$="mastodon/index.html"].btn, -.summary .chapter > a[href$="nextcloud/"], -a[href$="nextcloud/index.html"].btn { - color: #767676; - background: #FFEBB5; +.summary .chapter > a[href$="archives.html"]::before { content: "\f187"; } + +/* Archives */ +.summary > li:nth-last-child(4), +.summary > li:nth-last-child(2), +.summary > li:nth-last-child(1) { + display: none; +} + +.summary .chapter[data-path*="archives.html"] { + margin-top: auto; } .page-toc::before { - content:none; + content: none; } .page-toc { - max-width: 42%; - margin-left: 10px; + max-width: 42%; + margin-left: 10px; } @media (max-width: 768px) { - .page-toc { - max-width: 100%; - width:100%; - margin-left: 10px; - margin-bottom:10px; - } + .page-toc { + max-width: 100%; + width: 100%; + margin-left: 10px; + margin-bottom: 10px; + } } .pull-right.js-toolbar-action { - display:none; + display: none; } .page-inner .popover { @@ -185,3 +295,69 @@ a[href$="nextcloud/index.html"].btn { color:#333; text-decoration:none; } + +.alert a {text-decoration: underline;} +.alert a:hover {text-decoration: none;} + +img[src^="images/"] { + margin: 30px auto; + display: block; +} + +/* Home fix */ +.btn-primary { + color: #fff !important; + background-color: #725794 !important; + border-color: #725794 !important; +} +.btn-success { + color: #fff !important; + background-color: #6c7e31 !important; + border-color: #6c7e31 !important; +} +.btn-info { + color: #fff !important; + background-color: #2c6a82 !important; + border-color: #2c6a82 !important; +} +.btn-warning { + color: #fff !important; + background-color: #cc4e13 !important; + border-color: #cc4e13 !important; +} +.btn-soutenir { + color: #fff !important; + background: #a3551d linear-gradient(30deg,#c47123,#d4820c) !important; + border-color: #c47123 !important; +} + +.btn i.glyphicon-tree-deciduous, +.btn i.glyphicon-tree-deciduous::before { + font-size: inherit; + color: inherit; + display: inline; + text-align: left; +} + +.markdown-section p.text-center > .btn-block { + width: 50%; + margin: auto; + +} + +.btn-block { + white-space: normal; +} + +/* Fix nav */ +html { + font-size: 100%; +} + +.book.font-size-2 .book-body .page-inner section { + font-size: inherit; +} + +#f-footer, #f-footer[style] { + display: none !important; +} diff --git a/fr/README.md b/fr/README.md index e2e45a7..04e617c 100644 --- a/fr/README.md +++ b/fr/README.md @@ -2,33 +2,26 @@ ## Guides -
- -

Libertés numériques
- — Guide de bonnes pratiques à l'usage des DuMo

+
- - - - @@ -40,246 +33,108 @@ /!\ Ne pas faire pointer vers la racine du dossier mais bien sur "index.html" --> -
-
- -

-

Framagenda

-

Nextcloud

+
+ -
- -

-

Framacalc

-

Ethercalc

+
-
- -

-

Framacarte

-

uMap

+
-
- -

-

Framadate

-

 

+
-
- -

-

Framaforms

-

 

+
-
- -

-

Framagit

-

Gitlab

+
-
- -

-

Framalistes

-

Sympa

+
-
- -

-

Framindmap

-

Wisemapping

+
-
- -

-

Framapad

-

Etherpad

+
-
- -

-

Framatalk

-

Jitsi Meet

+
-
- -

-

Framateam

- Mattermost

+
- ## Services limités - - -## Services fermés - -
- - - - - - - - - - - - - -
- -

-

Framasite

-

Dokuwiki

+
+ - - - - - @@ -292,23 +147,11 @@ /!\ Ne pas faire pointer vers la racine du dossier mais bien sur "index.html" --> -
- - -
- -

-

Framapack

+
diff --git a/fr/SUMMARY.md b/fr/SUMMARY.md index 127d292..cd4043a 100644 --- a/fr/SUMMARY.md +++ b/fr/SUMMARY.md @@ -4,7 +4,6 @@ ## Guides - * [Libertés numériques](manueldumo/README.md) * [1 — De quels outils ai-je besoin ?](manueldumo/chapitre-1.md) * [2 — Le web et les contenus](manueldumo/chapitre-2.md) @@ -192,187 +191,183 @@ * [Migration de compte](mastodon/migration-de-compte.md) * [Modération](moderation/moderation_mastodon.md) - - -## Services fermés - -* [Framabin / PrivateBin](privatebin/README.md) - * [Exemple d'utilisation](privatebin/exemple-d-utilisation.md) - -* [Framabag / Wallabag](wallabag/README.md) - * [Déframasoftiser Internet](wallabag/deframasoftiser.md) - * [Se créer un compte](wallabag/user/create_account.md) - * [Configuration](wallabag/user/configuration.md) - * [Migrer depuis…](wallabag/user/import.md) - * [Articles](wallabag/user/articles.md) - * [Erreurs durant la récupération des articles](wallabag/user/errors_during_fetching.md) - * [Retrouver des articles grâce aux filtres](wallabag/user/filters.md) - * [Configurer les applications mobile pour wallabag](wallabag/user/configuring_mobile.md) - * [Application Android](wallabag/user/android.md) - -* [Framabee / searx](searx/README.md) - * [Prise en mains](searx/prise-en-mains.md) - -* [Framaboard / Kanboard](kanboard/README.md) - * [Déframasoftiser Internet](kanboard/deframasoftiser.md) - ### Introduction - - * [Qu'est-ce que Kanban ?](kanboard/what-is-kanban.md) - * [Comparons Kanban aux Todo listes et à Scrum](kanboard/kanban-vs-todo-and-scrum.md) - * [Exemples d'utilisation](kanboard/usage-examples.md) - - ### Utiliser un tableau - - * [Vues Tableau, Agenda et Liste](kanboard/project-views.md) - * [Mode Replié et Déplié](kanboard/board-collapsed-expanded.md) - * [Défilement horizontal et mode compact](kanboard/board-horizontal-scrolling-and-compact-view.md) - * [Afficher ou cacher des colonnes dans le tableau](kanboard/board-show-hide-columns.md) - - ### Travailler avec les projets - - * [Types de projets](kanboard/project-types.md) - * [Créer des projets](kanboard/creating-projects.md) - * [Modifier des projets](kanboard/editing-projects.md) - * [Supprimer des projets](kanboard/removing-projects.md) - * [Partager des tableaux et des tâches](kanboard/sharing-projects.md) - * [Actions automatiques](kanboard/automatic-actions.md) - * [Permissions des projets](kanboard/project-permissions.md) - * [Swimlanes](kanboard/swimlanes.md) - * [Calendriers](kanboard/calendar.md) - * [Analytique](kanboard/analytics.md) - * [Diagramme de Gantt pour les tâches](kanboard/gantt-chart-tasks.md) - * [Diagramme de Gantt pour tous les projets](kanboard/gantt-chart-projects.md) - * [Rôles personnalisés pour les projets](kanboard/custom-project-roles.md) - - ### Travailler avec les tâches - - * [Créer des tâches](kanboard/creating-tasks.md) - * [Fermer des tâches](kanboard/closing-tasks.md) - * [Dupliquer et déplacer des tâches](kanboard/duplicate-move-tasks.md) - * [Ajouter des captures d'écran](kanboard/screenshots.md) - * [Liens internes entre les tâches](kanboard/task-links.md) - * [Transitions](kanboard/transitions.md) - * [Suivi du temps](kanboard/time-tracking.md) - * [Tâches récurrentes](kanboard/recurring-tasks.md) - * [Créer des tâches par email](kanboard/create-tasks-by-email.md) - * [Sous-tâches](kanboard/subtasks.md) - * [Analytique des tâches](kanboard/analytics-tasks.md) - * [Mentionner les utilisateurs](kanboard/user-mentions.md) - - ### Travailler avec les utilisateurs - - * [Rôles](kanboard/roles.md) - * [Gestion des utilisateurs](kanboard/user-management.md) - * [Notifications](kanboard/notifications.md) - * [Authentification à deux facteurs](kanboard/2fa.md) - - ### Paramètres - - * [Raccourcis clavier](kanboard/keyboard-shortcuts.md) - * [Paramètres de l'application](kanboard/application-configuration.md) - * [Paramètres du projet](kanboard/project-configuration.md) - * [Paramètres du tableau](kanboard/board-configuration.md) - * [Paramètres du calendrier](kanboard/calendar-configuration.md) - * [Paramètres du lien](kanboard/link-labels.md) - * [Taux de change](kanboard/currency-rate.md) - -* [Framaclic / Dolomon](dolomon/README.md) - * [Exemple d'utilisation](dolomon/exemple-d-utilisation.md) - * [Déframasoftiser Internet](dolomon/deframasoftiser.md) - -* [Framadrop / Lufi](lufi/README.md) - * [Déframasoftiser Internet](lufi/deframasoftiser.md) - * [Prise en main](lufi/prise-en-main.md) - -* [Framaestro](framaestro/README.md) - * [Exemple d'utilisation](framaestro/exemple-d-utilisation.md) - -* [Framalink / Lstu](lstu/README.md) - * [Déframasoftiser Internet](lstu/deframasoftiser.md) - * [Fonctionnalités](lstu/fonctionnalites.md) - -* [Framemo / Scrumblr](scrumblr/README.md) - * [Déframasoftiser Internet](scrumblr/deframasoftiser.md) - * [Exemple d'utilisation](scrumblr/exemple-d-utilisation.md) - -* [Framanews / Tiny Tiny RSS](ttrss/README.md) - * [Déframasoftiser Internet](ttrss/deframasoftiser.md) - * [FAQ](ttrss/FAQ.md) - * [Prise en main](ttrss/prise-en-main.md) - -* [Framanotes / Turtl](turtl/README.md) - * [Exemple d'utilisation](turtl/exemple-d-utilisation.md) - * [Prise en mains](turtl/prise-en-mains.md) - * [Déframasoftiser Internet](turtl/deframasoftiser.md) - -* [Framapic / Lutim](lutim/README.md) - * [Déframasoftiser Internet](lutim/deframasoftiser.md) - * [Faire une galerie photo](lutim/galerie.md) - * [Prise en main](lutim/prise-en-main.md) - -* [Framasite / Administration](framasite/README.md) - * [Prise en main](framasite/prise-en-main.md) - * [Rattacher son nom de domaine à un site ou un wiki](framasite/rattachement-nom-de-domaine.md) - -* [Framasite / Dokuwiki](dokuwiki/README.md) - * [Astuces](dokuwiki/astuces.md) - * [Déframasoftiser Internet](dokuwiki/deframasoftiser.md) - -* [Framasite / Grav](grav/README.md) - * [Exemple d'utilisation](grav/exemple-d-utilisation.md) - * [Déframasoftiser Internet](grav/deframasoftiser.md) - * [Prise en main](grav/prise-en-main.md) - * [Composants de base](grav/composants-de-base.md) - * [Composants Bootstrap](grav/composants-bootstrap.md) - * [Modules](grav/modules.md) - * [Markdown](grav/markdown.md) - * [Création d'une page](grav/creation-de-page.md) - -* [Framasite / NoemieCms](noemiecms/README.md) - * [Modules](noemiecms/modules.md) - * [Prise en main](noemiecms/prise-en-main.md) - -* [Framaslides / Strut](strut/README.md) - * [Déframasoftiser Internet](strut/deframasoftiser.md) - * [Exemple d'utilisation](strut/exemple-d-utilisation.md) - * [Créer sa première présentation](strut/create_first_presentation.md) - * [Images](strut/pictures.md) - * [Vidéos](strut/videos.md) - * [Arrière plan](strut/background.md) - * [Raccourcis clavier](strut/shortcuts.md) - * [Groupes](strut/groups.md) - -* [Framasphère / Diaspora*](diaspora/README.md) - ### Wiki - * [Déframasoftiser Internet](diaspora/deframasoftiser.md) - * [1 - Connexion](diaspora/1-connexion.md) - * [2 - Interface](diaspora/2-interface.md) - * [2b - Interface mobile](diaspora/2b-interface-mobile.md) - * [3 - Aspects](diaspora/3-aspects.md) - * [4 - Échange](diaspora/4-echange.md) - * [5 - Partage](diaspora/5-partage.md) - * [6 - Notification et conversation](diaspora/6-notification-conversation.md) - * [7 - Pour terminer](diaspora/7-fin.md) - * [Kit de base](diaspora/kit-de-base.md) - * [Modération](moderation/moderation_diaspora.md) - -* [MyFrama / Shaarli](shaarli/README.md) - * [Déframasoftiser Internet](shaarli/deframasoftiser.md) - * [Exemple d'utilisation](shaarli/exemple-d-utilisation.md) - * [Prise en main](shaarli/prise-en-main.md) - -* [Rendez-vous / Nextcloud](rendez-vous/README.md) - ## Culture et logiciels libres -* [Framakey](framakey/README.md) - * [Installation](framakey/installer.md) - * [Prise en main](framakey/utiliser.md) - * [Ajouter des applications](framakey/ajouter-apps.md) - * [Framalibre](framalibre/README.md) * [Premiers pas sur Framalibre](framalibre/premiers-pas.md) * [De bonnes raisons pour se créer un compte](framalibre/se-creer-un-compte.md) * [Comment créer ou modifier une notice ?](framalibre/creer-modifier-une-notice.md) -* [Framapack](framapack/README.md) +## Projets archivés +* [Projets archivés](archives.md) + * [Framakey](framakey/README.md) + * [Installation](framakey/installer.md) + * [Prise en main](framakey/utiliser.md) + * [Ajouter des applications](framakey/ajouter-apps.md) + * [Framapack](framapack/README.md) + + * [Framabin / PrivateBin](privatebin/README.md) + * [Exemple d'utilisation](privatebin/exemple-d-utilisation.md) + + * [Framabag / Wallabag](wallabag/README.md) + * [Déframasoftiser Internet](wallabag/deframasoftiser.md) + * [Se créer un compte](wallabag/user/create_account.md) + * [Configuration](wallabag/user/configuration.md) + * [Migrer depuis…](wallabag/user/import.md) + * [Articles](wallabag/user/articles.md) + * [Erreurs durant la récupération des articles](wallabag/user/errors_during_fetching.md) + * [Retrouver des articles grâce aux filtres](wallabag/user/filters.md) + * [Configurer les applications mobile pour wallabag](wallabag/user/configuring_mobile.md) + * [Application Android](wallabag/user/android.md) + + * [Framabee / searx](searx/README.md) + * [Prise en mains](searx/prise-en-mains.md) + + * [Framaboard / Kanboard](kanboard/README.md) + * [Déframasoftiser Internet](kanboard/deframasoftiser.md) + ### Introduction + + * [Qu'est-ce que Kanban ?](kanboard/what-is-kanban.md) + * [Comparons Kanban aux Todo listes et à Scrum](kanboard/kanban-vs-todo-and-scrum.md) + * [Exemples d'utilisation](kanboard/usage-examples.md) + + ### Utiliser un tableau + + * [Vues Tableau, Agenda et Liste](kanboard/project-views.md) + * [Mode Replié et Déplié](kanboard/board-collapsed-expanded.md) + * [Défilement horizontal et mode compact](kanboard/board-horizontal-scrolling-and-compact-view.md) + * [Afficher ou cacher des colonnes dans le tableau](kanboard/board-show-hide-columns.md) + + ### Travailler avec les projets + + * [Types de projets](kanboard/project-types.md) + * [Créer des projets](kanboard/creating-projects.md) + * [Modifier des projets](kanboard/editing-projects.md) + * [Supprimer des projets](kanboard/removing-projects.md) + * [Partager des tableaux et des tâches](kanboard/sharing-projects.md) + * [Actions automatiques](kanboard/automatic-actions.md) + * [Permissions des projets](kanboard/project-permissions.md) + * [Swimlanes](kanboard/swimlanes.md) + * [Calendriers](kanboard/calendar.md) + * [Analytique](kanboard/analytics.md) + * [Diagramme de Gantt pour les tâches](kanboard/gantt-chart-tasks.md) + * [Diagramme de Gantt pour tous les projets](kanboard/gantt-chart-projects.md) + * [Rôles personnalisés pour les projets](kanboard/custom-project-roles.md) + + ### Travailler avec les tâches + + * [Créer des tâches](kanboard/creating-tasks.md) + * [Fermer des tâches](kanboard/closing-tasks.md) + * [Dupliquer et déplacer des tâches](kanboard/duplicate-move-tasks.md) + * [Ajouter des captures d'écran](kanboard/screenshots.md) + * [Liens internes entre les tâches](kanboard/task-links.md) + * [Transitions](kanboard/transitions.md) + * [Suivi du temps](kanboard/time-tracking.md) + * [Tâches récurrentes](kanboard/recurring-tasks.md) + * [Créer des tâches par email](kanboard/create-tasks-by-email.md) + * [Sous-tâches](kanboard/subtasks.md) + * [Analytique des tâches](kanboard/analytics-tasks.md) + * [Mentionner les utilisateurs](kanboard/user-mentions.md) + + ### Travailler avec les utilisateurs + + * [Rôles](kanboard/roles.md) + * [Gestion des utilisateurs](kanboard/user-management.md) + * [Notifications](kanboard/notifications.md) + * [Authentification à deux facteurs](kanboard/2fa.md) + + ### Paramètres + + * [Raccourcis clavier](kanboard/keyboard-shortcuts.md) + * [Paramètres de l'application](kanboard/application-configuration.md) + * [Paramètres du projet](kanboard/project-configuration.md) + * [Paramètres du tableau](kanboard/board-configuration.md) + * [Paramètres du calendrier](kanboard/calendar-configuration.md) + * [Paramètres du lien](kanboard/link-labels.md) + * [Taux de change](kanboard/currency-rate.md) + + * [Framaclic / Dolomon](dolomon/README.md) + * [Exemple d'utilisation](dolomon/exemple-d-utilisation.md) + * [Déframasoftiser Internet](dolomon/deframasoftiser.md) + + * [Framadrop / Lufi](lufi/README.md) + * [Déframasoftiser Internet](lufi/deframasoftiser.md) + * [Prise en main](lufi/prise-en-main.md) + + * [Framaestro](framaestro/README.md) + * [Exemple d'utilisation](framaestro/exemple-d-utilisation.md) + + * [Framalink / Lstu](lstu/README.md) + * [Déframasoftiser Internet](lstu/deframasoftiser.md) + * [Fonctionnalités](lstu/fonctionnalites.md) + + * [Framemo / Scrumblr](scrumblr/README.md) + * [Déframasoftiser Internet](scrumblr/deframasoftiser.md) + * [Exemple d'utilisation](scrumblr/exemple-d-utilisation.md) + + * [Framanews / Tiny Tiny RSS](ttrss/README.md) + * [Déframasoftiser Internet](ttrss/deframasoftiser.md) + * [FAQ](ttrss/FAQ.md) + * [Prise en main](ttrss/prise-en-main.md) + + * [Framanotes / Turtl](turtl/README.md) + * [Exemple d'utilisation](turtl/exemple-d-utilisation.md) + * [Prise en mains](turtl/prise-en-mains.md) + * [Déframasoftiser Internet](turtl/deframasoftiser.md) + + * [Framapic / Lutim](lutim/README.md) + * [Déframasoftiser Internet](lutim/deframasoftiser.md) + * [Faire une galerie photo](lutim/galerie.md) + * [Prise en main](lutim/prise-en-main.md) + + * [Framasite / Administration](framasite/README.md) + * [Prise en main](framasite/prise-en-main.md) + * [Rattacher son nom de domaine à un site ou un wiki](framasite/rattachement-nom-de-domaine.md) + + * [Framasite / Dokuwiki](dokuwiki/README.md) + * [Astuces](dokuwiki/astuces.md) + * [Déframasoftiser Internet](dokuwiki/deframasoftiser.md) + + * [Framasite / Grav](grav/README.md) + * [Exemple d'utilisation](grav/exemple-d-utilisation.md) + * [Déframasoftiser Internet](grav/deframasoftiser.md) + * [Prise en main](grav/prise-en-main.md) + * [Composants de base](grav/composants-de-base.md) + * [Composants Bootstrap](grav/composants-bootstrap.md) + * [Modules](grav/modules.md) + * [Markdown](grav/markdown.md) + * [Création d'une page](grav/creation-de-page.md) + + * [Framasite / NoemieCms](noemiecms/README.md) + * [Modules](noemiecms/modules.md) + * [Prise en main](noemiecms/prise-en-main.md) + + * [Framaslides / Strut](strut/README.md) + * [Déframasoftiser Internet](strut/deframasoftiser.md) + * [Exemple d'utilisation](strut/exemple-d-utilisation.md) + * [Créer sa première présentation](strut/create_first_presentation.md) + * [Images](strut/pictures.md) + * [Vidéos](strut/videos.md) + * [Arrière plan](strut/background.md) + * [Raccourcis clavier](strut/shortcuts.md) + * [Groupes](strut/groups.md) + + * [Framasphère / Diaspora*](diaspora/README.md) + * [Déframasoftiser Internet](diaspora/deframasoftiser.md) + * [1 - Connexion](diaspora/1-connexion.md) + * [2 - Interface](diaspora/2-interface.md) + * [2b - Interface mobile](diaspora/2b-interface-mobile.md) + * [3 - Aspects](diaspora/3-aspects.md) + * [4 - Échange](diaspora/4-echange.md) + * [5 - Partage](diaspora/5-partage.md) + * [6 - Notification et conversation](diaspora/6-notification-conversation.md) + * [7 - Pour terminer](diaspora/7-fin.md) + * [Kit de base](diaspora/kit-de-base.md) + * [Modération](moderation/moderation_diaspora.md) + + * [MyFrama / Shaarli](shaarli/README.md) + * [Déframasoftiser Internet](shaarli/deframasoftiser.md) + * [Exemple d'utilisation](shaarli/exemple-d-utilisation.md) + * [Prise en main](shaarli/prise-en-main.md) + + * [Rendez-vous / Nextcloud](rendez-vous/README.md) diff --git a/fr/_layouts/website/page.html b/fr/_layouts/website/page.html index 3dfee7f..6ff8a27 100644 --- a/fr/_layouts/website/page.html +++ b/fr/_layouts/website/page.html @@ -11,5 +11,31 @@ const nav = document.createElement('script'); nav.src="https://framasoft.org/nav/nav.js"; document.getElementsByTagName('head')[0].appendChild(nav); + + if (/frama\.io/.test(window.location.host)) { + const gpages = window.location.href; + const user = gpages.split('/')[2].replace('.frama.io', ''); + const project = gpages.split('/')[3]; + const newpage = gpages + .replace(window.location.host, 'framagit.org/framasoft') + .replace(`/${project}/`, `/${project}/-/wikis/`) + .replace(/\/[^\/]*\.html$/, '/') + .replace(/\/?$/, '/Page title'); + const buttons = ` + + + + Preview + + + + Prod + + `; + document.querySelector('.book-header').insertAdjacentHTML('beforeend', buttons) + } {% endblock %} diff --git a/fr/manueldumo/TEX/dumo.tex b/fr/manueldumo/TEX/dumo.tex deleted file mode 100644 index ca47646..0000000 --- a/fr/manueldumo/TEX/dumo.tex +++ /dev/null @@ -1,5413 +0,0 @@ -% Incantation vaudoue -\makeatletter\def\input@path{{booktex/}}\makeatother - -% Chargement de la class FramateX -\documentclass{framatexclass} - - -%%%%%%%%%%%%%%%%%%%%%%% -% Merci pandoc :) -%%%%%%%%%%%%%%%% -% Corriger le bazar avec les \tighlist que génere pandoc - -\providecommand{\tightlist}{% - \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} - -% problème des toprule -\usepackage{booktabs} - - -%Les petits chats -\newcommand\chatlunette{\includegraphics[width=\logowidth]{images/encarts/chatlunette}} -\newcommand\chatmystere{\includegraphics[width=\logowidth]{images/encarts/chatmystere}} -\newcommand\chattention{\includegraphics[width=\logowidth]{images/encarts/chattention}} -\newcommand\cloche{\includegraphics[width=\logowidth]{images/encarts/cloch}} -\newcommand\info{\includegraphics[width=\logowidth]{images/encarts/info}} - -%Redimensionner toutes les iamges - -\makeatletter -% Make all figure use 'h' position by default: -\def\fps@figure{H} -\makeatother - -\usepackage{letltxmacro} - -\LetLtxMacro{\OldIncludegraphics}{\includegraphics} - -\renewcommand{\includegraphics}[2][]{\OldIncludegraphics[#1, width=\textwidth]{#2}} - -%%%%%% hyphen -\brokenpenalty10000\relax - - - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{document} -\frontmatter - -\begin{titlepage} -\vspace*{\stretch{0.2}} -\noindent\rule{\linewidth}{1pt} -\begin{center}\large{Framatophe}\end{center} -\noindent\rule{\linewidth}{1pt} -\vspace*{\stretch{2}} -\begin{center}\Large{Libertés numériques}\end{center} -\vspace*{\stretch{0.2}} -\begin{center}\normalsize{Guide de bonnes pratiques à l'usage des DuMo}\end{center} -\vspace*{\stretch{2}} - - - -\begin{center} -\begin{minipage}[h][4cm][t]{5cm} - -\includegraphics[scale=0.2]{images/logofbook.png} - -\end{minipage} -\end{center} - - - -\vspace*{\stretch{4}} -\begin{center} -\noindent\rule{\linewidth/2}{1pt} \\ -\end{center} -\begin{center}Mise à jour : novembre 2017 \end{center} -\begin{center}Publié sous \\ -Licence Art Libre (LAL 1.3)\end{center} -\newpage - - - - -\begin{center}\rule{100mm}{1pt}\end{center}\bigskip{} - -\bigskip - -\begin{small} - -Framasoft est un réseau d'éducation populaire, issu du monde éducatif, consacré principalement au logiciel libre. Il s'organise en trois axes sur un mode collaboratif: promotion, diffusion et développement de logiciels libres, enrichissement de la culture libre et offre de services libres en ligne. - -Pour plus d’informations sur Framasoft, consultez \\ \url{http://www.framasoft.org}. - -Se démarquant de l’édition classique, les Framabooks sont dits «~livres libres~» parce qu’ils sont placés sous une licence qui permet au lecteur de disposer des mêmes libertés qu’un utilisateur de logiciels libres. Les Framabooks s’inscrivent dans cette culture des biens communs qui favorise la création, le partage, la diffusion et l’appropriation collective de la connaissance. - -Pour plus d’informations sur le projet Framabook, consultez \\ \url{http://framabook.org}. -\end{small} - -~ -\vspace{0.2cm} - -\begin{center}\rule{100mm}{0.5pt}\end{center} - -~ -\vspace{0.2cm} - - -\begin{small} -\noindent Copyright 2017~: Christophe Masutti, Framasoft (coll. Framabook)\\ -\textit{Libertés numériques} est placé sous~: Licence Art Libre 1.3 - -\noindent ISBN~: 979-10-92674-15-6 \\ -Prix~: 8 euros \\ -Dépôt légal~: 2017, lulu.com \\ -Mise en page avec Pandoc et \LaTeX \\ -Couverture : dessins tirés de l'œuvre de Simon «~Gee~» Giraudot, sous Creative Commons By-Sa. -\end{small} -\vspace{0.2cm} - -\begin{center} -\begin{small} -Vous pouvez encourager l'auteur par un don sur \\ \href{https://fr.liberapay.com/Framatophe/}{fr.liberapay.com/Framatophe} -\end{small} - - -\begin{minipage}[h][2cm][t]{1.5cm} - -\href{https://fr.liberapay.com/Framatophe/}{\includegraphics[scale=0.02]{images/lpdonner.png}} - -\end{minipage} -\end{center} - - -\end{titlepage} - - - - - -% ------------------------------------------------------------------------- -% -\cleardoublepage -\phantomsection - -\chapter*{Remerciements} -\addcontentsline{toc}{chapter}{Remerciements} -% -% ------------------------------------------------------------------------- - -Je tiens ici à remercier toutes celles et ceux sans qui ce petit guide n'aurait pas vu le jour. Ils m'ont aussi donné l'opportunité d'acquérir les quelques connaissances qui me permettent de passer pour le spécialiste que je ne suis pas. - -\begin{itemize} -\item Ma chère épouse, relectrice avisée, patiente et compréhensive… -\item Mon cher Goofy, pour sa relecture attentive… -\item Mes chers amis de Framasoft… -\item Toute la communauté libriste francophone et quelques correspondants avisés, tels Thelvaën Mandel, fmr, Tuxman… -\item Libre Fan pour sa relecture de la version de novembre 2017. -\end{itemize} - -% ------------------------------------------------------------------------- -% -\cleardoublepage -\phantomsection -\chapter*{Introduction} -\addcontentsline{toc}{chapter}{Introduction} - - -Trop compliqué~! pas l'temps\ldots{} ultra-sollicités entre nos -communications, nos applications et nos appareils nous n'avons -paradoxalement guère le temps de nous interroger sur la pertinence de -nos besoins logiciels, leurs configurations, la sécurité de nos données -et, au-delà, sur nos pratiques numériques. - -Mais qui prend ce temps aujourd'hui~? Nous devons tous plus ou moins -faire confiance aux éditeurs de logiciels. Tout se passe comme si la -réflexion sur les usages était la prérogative des passionnés -d'informatiques, ces hackers venus d'un monde alternatif, ces voisins -bienveillants chez qui tout le monde vient chercher la solution à ses -petits ennuis d'ordinateur. - -Dans ce monde, jusqu'à une époque récente, les discussions allaient bon -train, reprenant bien souvent avec moquerie les mésaventures logicielles -de Madame Michu. Or, lassée des réflexions machistes dont elle faisait -l'objet, Françoise Michu a pris sa retraite bien méritée. C'est -désormais la famille Dupuis-Morizeau (qu'on abrégera en DuMo) qui se -porte volontaire pour supporter ces geeks qui prétendent penser à la -place des autres. Bien plus informés que Madame Michu, habitués des -environnements informatiques en tout genre, les DuMo assumeront ce -nouveau rôle dans un domaine où les caricatures sont nombreuses, entre -la «~génération Y~», la secrétaire perdue, et les grands-pères -ultra-connectés. - -Qui sont les DuMo~? une famille avec un pouvoir d'achat moyen (mais -solide), récemment abonnée à la fibre dans leur petit pavillon d'un -village normand\footnote{La famille DuMo est un levier scénaristique. - Elle \emph{n'existe pas}, ni en réalité (ou alors toute ressemblance - serait vraiment fortuite\ldots{}), ni même en théorie, car on se doute - bien que dans ces conditions qui respirent la guimauve et l'ennui, les - choses pourraient vite mal tourner, entre l'alcool, la drogue et le - sexe, au grand bénéfice de la presse à sensation.}. Les comptes de -messagerie des membres de la famille sont chez Google, gérés de main de -maître par le grand fils, lycéen, dont le profil Facebook possède plus -de 100 followers, une fierté. La petite, elle, vient de passer au -collège le Brevet Informatique et Internet aux normes européennes -\fnurl{https://ec.europa.eu/jrc/en/digcomp/digital-competence-framework}{Digcomp}, -et sait parfaitement maîtriser toute la suite bureautique de Microsoft. -Madame, elle, a suivi consciencieusement les formations qui lui étaient -offertes sur Powerpoint et envoie régulièrement à ses contacts de -magnifiques diaporamas avec des couchers de soleil mauves. Quant à -Monsieur, il maintient un blog, gère les comptes bancaires en ligne, -mais se plaint souvent de la lenteur de l'ordinateur familial et songe -sérieusement à en acheter un nouveau. - -Caricature~? Oui\ldots{} mais pas parce que les DuMo sont des -consommateurs de services. Le problème, les DuMo le connaissent et en -sont parfaitement conscients~: leur méconnaissance d'Internet, l'opacité -à leurs yeux des mécanismes à l'œuvre sur les serveurs que fréquentent -leurs machines (ordinateur, smartphones et tablette) lorsqu'ils -utilisent des services web, leurs difficultés à remédier aux «~pannes~» -qu'ils rencontrent régulièrement, les limites de leurs savoirs-faire -lorsqu'il faut utiliser des logiciels pour opérer quelques opérations -plus complexes que d'habitude, les abandons frustrants devant -l'apparente complexité de la configuration de leur système -d'exploitation ou des logiciels de messagerie\ldots{} tout cela leur -fait sérieusement douter de leur autonomie numérique. - -Jamais Internet n'a été autant source d'inquiétudes et de tensions. On -ne compte plus les ouvrages sur le loup (ou l'ogre) Google, sur les -«~dangers d'Internet~», sur les risques liés à la confidentialité des -données personnelles, sur la surveillance numérique des individus, sur -la surveillance globale des populations\ldots{} Tout cela est à la fois -anxiogène et, en même temps, très peu d'ouvrages proposent des solutions -concrètes\footnote{Il y en a au moins un, écrit par Tristan Nitot, - \emph{Surveillance:// Les libertés au défi du numérique~: comprendre - et agir}, C\&F Éditions, Caen, 2016.}, accessibles à tous et -facilement, pour affronter ce monde plein d'embûches. - -Mais comment comprendre ces enjeux si, d'un autre côté, les outils et -les composants de l'environnement numérique restent des boîtes noires~? -L'utilisation de logiciels libres, ceux que l'on peut partager et que la -communauté peut expertiser et améliorer, est un premier pas vers -l'autonomie numérique, une approche raisonnée et sereine de -l'informatique et des réseaux. Or les logiciels ne font pas tout. Les -pratiques des utilisateurs, en connaissance de cause, sont les éléments -centraux d'un autre monde numérique, moins anxiogène et plus durable, -éthique et solidaire. - -Cet ouvrage s'adresse donc aux DuMo. Il est à la fois un manuel et un -livre de conseils pratiques. L'objectif est de permettre au lecteur de -différencier les bonnes pratiques de celles qui ne sont pas adaptées à -ses besoins (et faussent ses apprentissages en matière de logiciels) ou -mettent en danger son intimité numérique (par exemple dans le domaine de -la sécurité ou de l'usage des services web). Certaines sections pourront -parfois paraître basiques, elles recèlent toujours une parcelle méconnue -du sujet traité. Chaque chapitre considère un pilier des activités -numériques, il en dessine les contours, soulève les enjeux et propose -des solutions de logiciels libres dont la légitimité s'impose -d'elle-même. Il est temps en effet, de formaliser quelques pratiques -d'auto-défense numérique tout en permettant aux utilisateurs de -s'approprier ces usages et ces outils, même s'ils ne sont pas libristes -ou d'irréductibles activistes des libertés numériques. - -Le deviendront-ils~? Ce n'est pas important. L'essentiel est qu'en -essaimant les bonnes pratiques et les solutions logicielles -alternatives, c'est vers un modèle d'environnement numérique serein et -plus démocratique que nous nous dirigeons. C'est pourquoi ce livre a -aussi une ambition d'éducation populaire~: il est placé sous licence -libre, ce qui permet, dans le respect du droit d'auteur, de se -l'approprier, de le modifier et de redistribuer des versions modifiées, -enrichies de l'expérience et/ou à destination d'autres lecteurs. Emparez -vous-en~! - - - -\mainmatter - - - - - -\chapter{De quels outils ai-je besoin~?}\label{chapitre1} - -Comme dans bien des domaines, les techniques supposent des -apprentissages. Ainsi, lorsque vous avez acheté votre ordinateur, et -comme il y a de fortes chances qu'il ait été équipé d'emblée d'un système -d'exploitation, vous avez dû apprendre à vous en servir pour répondre à -vos besoins du moment~: relier l'ordinateur à votre box Internet, ouvrir -le navigateur, faire les premières mises à jour\ldots{} - -Le problème rencontré par beaucoup d'utilisateurs en matière de -logiciel est de savoir identifier de quoi ils ont besoin. -Dans beaucoup de cas, freinés par le prix de certains logiciels ou par -simple méconnaissance de la diversité, les utilisateurs se rabattent -naturellement vers des utilisations non adaptées~: essayer d'ouvrir des -photos dans un logiciel de traitement de texte, être dans -l'impossibilité de lire des formats vidéos et être obligé de renoncer, -devoir payer un logiciel dont on utilise la version d'essai -pré-installée sur une nouvelle machine, etc. Tant de situations très -courantes amènent les utilisateurs à se décourager ou ressentir de -grandes frustrations devant l'apparente complexité de l'informatique -domestique. - -Dans ce chapitre nous allons voir que les logiciels libres ne sont pas -seulement des alternatives aux «~grands~» logiciels connus que «~tout le -monde utilise~»~: ils représentent autant de solutions diverses et -sereines pour se servir d'un ordinateur de manière efficace. Nous -pousserons alors un peu plus loin les cas d'usages pour parler des -systèmes d'exploitation, des formats et des protocoles de -communications. - -\section{Les logiciels libres~: s'y retrouver}\label{les-logiciels-libres-sy-retrouver} - -D'un point de vue néophyte, les logiciels libres sont souvent assimilés -à des logiciels gratuits, disponibles sur Internet et téléchargeables. -Même si le terme «~gratuit~» n'est pas adapté, ce n'est pas une si -mauvaise opinion~: les logiciels libres sont très nombreux et sont -autant de solutions pour accomplir des tâches même similaires, sans -avoir obligatoirement à débourser de l'argent. - -Ainsi, le premier avantage de l'offre en logiciel libre, c'est la -diversité. Cette dernière s'oppose à l'idée d'un quelconque monopole sur -un secteur d'application donné. Pour donner un exemple simple~: en -2008-2009, pour satisfaire aux exigences de la Commission Européenne sur -la libre concurrence, Microsoft a mis en place un écran de choix de -navigateurs Internet pour ne pas imposer l'utilisation d'Internet -Explorer. Les utilisateurs peuvent alors choisir le navigateur Mozilla -Firefox, qui est un logiciel libre, et l'utiliser par défaut. - -Comment s'y retrouver dans cette offre~? Ce n'est pas évident. D'une -part vous devez trouver le logiciel qu'il vous faut et d'autre part cela -suppose de devoir identifier votre besoin de manière à affiner la -recherche et trouver le bon logiciel. - -\newpage - -Pour vous y aider, il existe au moins trois ressources~: - -\begin{enumerate} -\def\labelenumi{\arabic{enumi}.} -\tightlist -\item - \fnurl{https://framalibre.org}{Framalibre} est le projet historique - d'annuaire de logiciel libre par Framasoft étendu à toutes les - ressources libres (car il n'y a pas que les logiciels qui peuvent être - libres). Dans cet annuaire, entretenu et augmenté par la communauté, - vous pouvez entrer des mots-clés et afficher des alternatives - pertinentes et des suggestions~; -\item - \fnurl{http://www.clibre.eu/}{Clibre} est un autre annuaire de - logiciels libres avec un panel choisi~; -\item - Une page Wikipédia - «~\fnurl{https://fr.wikipedia.org/wiki/Liste_de_logiciels_libres}{liste de logiciels libres}~» vous permet aussi de trouver des logiciels, - classés par catégories d'activités. -\end{enumerate} - -Un point commun important entre ces annuaires est qu'ils vous renvoient -systématiquement vers les sites officiels des logiciels en question. -C'est crucial~: si vous devez télécharger un logiciel pour l'installer -sur votre machine, faites-le toujours depuis le site officiel (ou depuis -les dépôts officiels de votre distribution GNU/Linux si vous êtes dans -ce cas). D'une part vous êtes sûr d'obtenir la dernière version, et -d'autre part vous diminuez le risque d'installer une version modifiée -(et non validée) qui pourrait causer des dommages sur votre machine ou, -pire, la pirater. - -Une autre précaution à prendre est de vous assurer de la licence du -logiciel que vous comptez utiliser. Comme nous allons le voir, la -gratuité n'est pas l'apanage du logiciel libre et tous les logiciels -gratuits ne sont pas dotés des meilleures intentions. Fiez-vous donc de -préférence aux annuaires mentionnés ci-dessus. - -\section{Les logiciels libres~: qu'est-ce~?}\label{les-logiciels-libres-quest-ce} - -Une fois que vous avez installé un ou plusieurs logiciels libres et que -vous commencez à les éprouver, il est temps de prendre un petit peu de -recul sur ce qu'implique le caractère \emph{libre} du logiciel libre. - -Le mouvement du logiciel libre est né au début des années 1980, en -réaction à une transformation de l'économie du logiciel. Auparavant, les -programmes étaient fournis avec les machines de manière gratuite et -ouverte afin de faciliter et optimiser l'emploi de ces machines. La -communauté des programmeurs pouvait alors s'échanger ces programmes, les -modifier et les adapter aux besoins\ldots{} jusqu'au moment où certaines -firmes en décidèrent autrement pour s'approprier l'innovation des -logiciels et maîtriser les usages. Sous l'impulsion de Richard M. -Stallman, un programmeur qui a assisté à cette transformation, le -mouvement du logiciel libre est né avec l'idée qu'un programme doit -demeurer accessible, ouvert, modifiable et diffusable. Richard M. -Stallman fonda alors le -\fnurl{https://www.gnu.org/gnu/thegnuproject.fr.html}{projet GNU} et, -avec des amis, la \fnurl{https://www.fsf.org/?set_language=fr}{Free -Software Foundation}, aujourd'hui de renommée mondiale, qui a pour but -de promouvoir et défendre le logiciel libre. Le projet GNU permit de -mettre au point la Licence Publique Générale (GNU GPL), d'un point de -vue juridique, qui définit le logiciel libre et les conditions d'usage du -logiciel placé sous cette licence. - - - -\begin{bclogo}[couleur=gray!20,couleurBord=black,couleurBarre=gray!20,arrondi=0.3,logo=\cloche,]{\hspace{0.3cm}Les quatre libertés du logiciel libre} - -\begin{enumerate} -\def\labelenumi{\arabic{enumi}.} -\tightlist -\item - la liberté d'exécuter le programme, pour tous les usages, -\item - la liberté d'étudier le fonctionnement du programme et de l'adapter à - ses besoins, -\item - la liberté de redistribuer des copies du programme, -\item - la liberté d'améliorer le programme et de distribuer ces améliorations - au public, pour en faire profiter toute la communauté. -\end{enumerate} - -(Voir la page Wikipédia consacrée au «~\fnurl{https://fr.wikipedia.org/wiki/Logiciel_libre}{Logiciel - Libre}~».) - -\end{bclogo} - - - - -Les libertés du logiciel libre impliquent~: - -\begin{itemize} -\tightlist -\item - que le logiciel est disponible de manière égalitaire et sans - restriction, -\item - que le logiciel est auditable par la communauté (il ne peut contenir - de code malveillant ou si c'est le cas, très rapidement décelé), -\item - que le fonctionnement du logiciel est ouvert et permet d'innover sur - cette base, -\item - que l'on peut donner des copies du logiciel, ou les vendre (ne - serait-ce que pour couvrir les frais de main-d'œuvre), -\item - que l'on peut redistribuer le logiciel, y compris sous une version - modifiée, -\item - que les modifications peuvent être elles aussi distribuées à toute la - communauté. -\end{itemize} - -Du point de vue individuel, que l'on contribue ou non au logiciel libre, -le fait d'en utiliser implique~: - -\begin{itemize} -\tightlist -\item - une limitation des risques de sécurité, -\item - une qualité dans les attentes concrètes du logiciel~: il fera ce - pourquoi il a été conçu, -\item - un suivi dans les améliorations du logiciel, à l'écoute de ses - utilisateurs (même sans être programmeur vous pouvez faire part de vos - remarques et difficultés et contribuer ainsi au développement), -\item - la possibilité de donner à vos proches une copie du logiciel ou les - encourager à l'installer, sans contrainte. -\end{itemize} - -Vous comprenez maintenant pourquoi les logiciels libres sont la plupart -du temps gratuits et, s'ils sont payants, c'est parce qu'on y ajoute du -service ou de l'expertise, ce qui fait d'ailleurs vivre beaucoup -d'entreprises. Rien ne vous empêche, par ailleurs, d'encourager les -développeurs en faisant des dons (bien souvent il existe près de chez -vous des organisations à but non lucratif qui œuvrent pour le logiciel -libre). - -\section{Mes logiciels au quotidien}\label{mes-logiciels-au-quotidien} - -Dans un cadre domestique, les activités sur un ordinateur ne sont pas si -nombreuses. Nous pouvons dresser un tableau des besoins les plus -courants en identifiant de manière non exhaustive des logiciels libres -adaptés aux différents exercices. Dans le tableau \ref{tab:corresp}, nous -listons des logiciels compatibles Windows. - - - - - -\begin{table} -\begin{tcolorbox}[modeltableau,tabularx={X|X|X|}] -\textbf{Activité} & \textbf{Logiciels non-libres} & \textbf{Logiciels libres} \\\hline\hline -Traitement de texte & Microsoft Word & \href{http://www.libreoffice.org/}{LibreOffice Writer}, \href{https://www.abisource.com/}{Abiword}\\\hline -Tableur & Microsoft Excel & \href{http://www.libreoffice.org/}{LibreOffice Calc}\\\hline -Diaporama & Microsoft Powerpoint & \href{http://www.libreoffice.org/}{LibreOffice Impress}, \href{http://sozi.baierouge.fr/}{Sozi}\\\hline -Gestion de courriel & Microsoft Outlook & \href{https://www.mozilla.org/fr/thunderbird/}{Mozilla Thunderbird}, \href{http://www.claws-mail.org/}{Claws Mail}\\\hline -Dessin, retouche photos & Adobe Photoshop & \href{https://www.gimp.org/}{Gimp}\\\hline -Graphisme, PAO & Adobe Indesign & \href{https://inkscape.org/fr/}{Inkscape}, \href{https://www.scribus.net/}{Scribus}\\\hline -Lecture de documents PDF & Adobe Acrobat & \href{https://wiki.gnome.org/Apps/Evince}{Evince}, \href{https://www.sumatrapdfreader.org/free-pdf-reader-fr.html}{Sumatra PDF}\\\hline -Navigation Internet & Microsoft Internet Explorer & \href{https://www.mozilla.org/fr/firefox/new/}{Mozilla Firefox}\\\hline -Messagerie instantanée, voix, vidéo-chat & (Microsoft) Skype & \href{https://pidgin.im/}{Pidgin}, \href{http://jitsi.org/}{Jitsi}\\\hline -Vidéo & Microsoft Windows Media Player & \href{https://www.videolan.org/vlc/}{VLC}, \href{http://smplayer.sourceforge.net/en/info}{SMPlayer}\\\hline -Audio & Microsoft Windows Media Player & \href{https://amarok.kde.org/}{Amarok}, \href{https://www.videolan.org/vlc/}{VLC}, \href{http://www.audacityteam.org/}{Audacity}\\\hline -\end{tcolorbox} -\caption{Quelques correspondances entre logiciels propriétaires et logiciels libres} -\label{tab:corresp} -\end{table} - - -Vous remarquerez, dans ce tableau, que seules deux firmes apparaissent dans les -logiciels non-libres\ldots{} Par exemple, pour «~mieux~» intégrer ses -logiciels avec le système d'exploitation, Microsoft a choisi de -développer de multiples secteurs d'application. Nous n'en avons ici -qu'un petit aperçu. Du côté des logiciels libres, de multiples acteurs -produisent des alternatives, ce qui fait que le choix ne se fait pas -seulement entre logiciels libres et logiciels non-libres, mais aussi en -fonction des approches différentes d'un même besoin. Multiplier ces -approches vous permettra de vous servir de ces logiciels libres de -manière efficace, en choisissant d'utiliser à chaque fois le plus approprié. - - - - -\section{Focus sur la suite LibreOffice}\label{focus-sur-la-suite-libreoffice} - -Une suite bureautique est un ensemble intégré de logiciels permettant -d'accomplir un ensemble de tâches liées à la production de documents -bureautiques. La suite \fnurl{https://fr.libreoffice.org/}{LibreOffice} -est la suite bureautique célèbre qui regroupe les applications -suivantes~: - -\begin{itemize} -\tightlist -\item - LibreOffice Writer~: un logiciel de traitement de texte, -\item - LibreOffice Calc~: un tableur, -\item - LibreOffice Impress~: un créateur de diaporamas, -\item - LibreOffice Draw~: pour la création de graphismes, schémas, - diagrammes\ldots{} -\item - LibreOffice Maths~: un éditeur de formules mathématiques. -\end{itemize} - -\begin{bclogo}[couleur=gray!20,couleurBord=black,couleurBarre=gray!20,arrondi=0.3,logo=\info,]{\hspace{0.3cm}Bon à savoir} - -Une des originalités de LibreOffice est de proposer un dépôt officiel -d'\fnurl{https://extensions.libreoffice.org/}{extensions} et de -\fnurl{https://extensions.libreoffice.org/templates/}{modèles} en tous -genres. Vous y trouverez certainement ce que vous cherchez, entre -fonctionnalités supplémentaires, packs d'icônes, modèles prêts à -l'emploi\ldots{} -\end{bclogo} - -L'interface de LibreOffice est assez classique et ressemble à celle de -Microsoft Office. Pour une première utilisation, prenez le temps de -faire quelques essais puis reportez-vous à la documentation sur le -\fnurl{https://wiki.documentfoundation.org/Documentation/fr}{Wiki de la -Document Foundation} (éditeur de Libreoffice). Vous y trouverez des -manuels, des tutoriels, des vidéos, autant de contenus que la communauté -et la Document Foundation mettent à disposition des utilisateurs finaux. - -\begin{figure}[htbp] -\centering -\includegraphics{images/screenLibreofficeWriter.png} -\caption{LibreOffice Writer sous GNU/Linux Mint} -\end{figure} - -Un fichier produit avec LibreOffice portera une extension par défaut -selon le logiciel avec lequel vous l'avez créé~: \texttt{.odt} pour -Writer, \texttt{.ods} pour Calc, \texttt{.odp} pour Impress, -\texttt{.odg} pour Draw. Néanmoins, LibreOffice peut lire et enregistrer -des fichiers dans de multiples formats, notamment les formats de la -suite Microsoft \texttt{docx}, \texttt{.xlsx}, \texttt{.doc}, -\texttt{.xls}, ou même \texttt{.rtf}, \texttt{.pdf}, etc. Ainsi le passage ou la -transmission de documents d'une suite à l'autre se fait généralement -sans problème pour un usage courant\footnote{Si, par exemple, vos - tableaux contiennent des macros spécifiques, la prudence est de mise.}. - -Enfin, notez que des dictionnaires sont téléchargeables depuis le site -officiel pour vous permettre d'utiliser le correcteur orthographique. Le -projet \fnurl{http://www.dicollecte.org/grammalecte/}{Grammalecte} est -plus abouti et intègre aussi de la correction grammaticale. Il permet -aussi la correction typographique. - -\begin{figure}[htbp] -\centering -\includegraphics{images/grammalecte-options.png} -\caption{Les options dans Gramalecte} -\end{figure} - - - -\newpage - - - - -\section{Je peux aussi essayer des logiciels libres}\label{je-peux-aussi-essayer-des-logiciels-libres} - -Si l'installation de logiciels libres (ou l'installation d'une distribution GNU/Linux —~cf. la fin de ce chapitre) vous intimide, il existe une solution facile : essayer des logiciels libres avec la -\fnurl{https://framakey.org/Pack/Framakey-Mint}{Framakey}. Framakey est -un projet de Framasoft consistant à rassembler sur une clé USB un -ensemble de logiciels libres, intégrés en un système permettant de créer -un bureau portable. En clair~: vous disposez de vos logiciels sur une -clé USB, vous pouvez la brancher sur n'importe quel ordinateur et -utiliser ce bureau nomade, tout en enregistrant dessus (les données sont -sauvegardées sur la clé). Très pratique, non~? - -\begin{figure}[htbp] -\centering -\includegraphics{images/FK112.png} -\caption{Interface de la Framakey sous Windows} -\end{figure} - -Il existe plusieurs versions de la Framakey dont trois sont des -distributions GNU/Linux \emph{live}~: Linux Mint, Salix et Ubuntu. Vous -pouvez utiliser ce bureau nomade directement en branchant votre clé -alors que votre actuel système d'exploitation est en route~: vous -obtenez alors une interface dans un bureau «~virtuel~» et vous pouvez -utiliser les logiciels libres proposés. Ou bien vous \emph{bootez} sur -la clé, vous pouvez utiliser la distribution GNU/Linux et même -l'installer de manière permanente sur votre machine. - -Vous pouvez aussi \fnurl{https://enventelibre.org/47-cles-usb}{acheter -cette Framakey}, proposée par l'association Framasoft à la vente, et ne -pas avoir à effectuer les manipulations de création de la clé. Une autre -solution est de vous rendre à un événement libriste (répertorié sur -l'\fnurl{https://www.agendadulibre.org/}{Agenda du Libre})~: sur les -stands, il est souvent possible de demander des clés similaires proposées comme -\emph{goodies} par les associations présentes (l'achat vous permet aussi -de soutenir ces associations). - - - - - - -\section{Les formats et l'interopérabilité}\label{les-formats-et-linteropuxe9rabilituxe9} - -Lorsque vous échangez des documents, des photos ou n'importe quel -fichier, quel que soit le logiciel qui vous a servi à les produire, vous -devez vous assurer d'une chose au moins~: que votre correspondant soit -en mesure de les utiliser. C'est un des principes élémentaires de -partage et de circulation de l'information~: l'interopérabilité des -formats. - -Un format de fichier est une convention qui représente la manière dont -sont arrangées et stockées les données regroupées dans ce fichier (et -une donnée est un ensemble de \emph{bits}, c'est-à-dire des 0 et des 1). -Ces conventions permettent d'échanger les fichiers. Pour les lire, les -programmes sont donc censés adopter ces conventions. - -L'interopérabilité est la propriété d'un format de pouvoir être lu par -plusieurs programmes différents~; c'est aussi un principe qui considère -qu'un format de fichier ne doit pas être réservé à un programme en -particulier. En effet, si l'éditeur d'un logiciel conçoit un programme -capable de lire et d'enregistrer des fichiers uniquement lisibles par ce -programme, les utilisateurs sont condamnés à l'utiliser exclusivement. -Si l'éditeur ferme ses portes ou change les formats sans assurer la -maintenance des formats qu'il utilise à plusieurs années d'intervalles, -vos fichiers deviennent inutilisables. C'est un peu comme si vous -achetiez une voiture à essence avec l'obligation de vous rendre dans des -stations-services d'une marque en particulier pour acheter la seule -essence compatible. - -Un bon format interopérable est censé être aussi ouvert et, mieux, -libre~: c'est-à-dire que ses spécifications techniques sont documentées -et connues de tout le monde de manière à ce que les programmeurs -puissent concevoir des logiciels capables de produire et lire des -fichiers dans un format devenu de fait un \emph{standard}. Par exemple, -le format Open Document (ODF, Open Document Format) connu pour être -produit par les logiciels de la suite LibreOffice (mais pas uniquement), -est devenu en 2006 une norme ISO. Ce qui est loin d'être le cas pour -d'autres formats pourtant bien connus comme le \texttt{.doc} dont -Microsoft a par ailleurs cessé le développement au profit de OpenXML. - -\begin{bclogo}[couleur=gray!20,couleurBord=black,couleurBarre=gray!20,arrondi=0.3,logo=\cloche,]{\hspace{0.3cm}Ouvert ne signifie pas libre} - -Certains formats ouverts ne sont pas pour autant libres. Un format -ouvert peut très bien devenir fermé. Un format libre est soumis -à une licence libre (voir le chapitre~\ref{chapitre2}), ce qui -permet de verser les spécifications dans les biens communs (si son -développement s'arrête, il pourra être repris par d'autres). -\end{bclogo} - -Enfin, le format Open Document étant une norme ISO, il est naturellement -encouragé dans tous les pays de l'Union Européenne, cette dernière ayant -\fnurl{http://ec.europa.eu/idabc/en/document/3439/5887.html}{publié -plusieurs recommandations} pour son adoption dans les administrations -publiques. En France, le -\fnurl{http://www.modernisation.gouv.fr/ladministration-change-avec-le-numerique/par-son-systeme-dinformation/le-referentiel-general-interoperabilite-fait-peau-neuve}{Référentiel -Général d'Interopérabilité} décrit les normes et les pratiques de -l'administration publique. La version 2.0 du Référentiel a été -\fnurl{https://www.legifrance.gouv.fr/eli/arrete/2016/4/20/PRMJ1526716A/jo/texte}{adoptée -officiellement en 2016}, et fait du format ODF la seule norme -recommandée dans les administrations publiques. Hélas, beaucoup d'entre -elles sont encore -\fnurl{http://www.zdnet.fr/actualites/l-etat-francais-a-paye-539-millions-d-euros-a-microsoft-pour-ses-logiciels-en-2011-39790384.htm}{prisonnières} -des formats de la suite de Microsoft\ldots{} - -\subsection{Bureautique}\label{bureautique} - -Dans le domaine de la bureautique, l'échange de fichiers donne lieu bien -souvent à des contrariétés~: recevoir un fichier et ne pas pouvoir -l'ouvrir (ou bien en affichant des suites de caractères abscons), -découvrir que votre diaporama est illisible sur l'ordinateur dédié à la -vidéo-projection, s'apercevoir que la mise en page du document n'est -plus valable d'une version d'un logiciel à l'autre, etc. Bien qu'à notre -connaissance aucune étude n'ait vraiment été réalisée à ce sujet, toutes -ces difficultés liées à l'utilisation des formats de fichiers fait -perdre énormément de temps à tout le monde. - -\subsubsection{Enregistrer dans le bon format}\label{enregistrer-dans-le-bon-format} - -Lorsque vous rédigez un document, avec un traitement de texte ou un -tableur, vous avez tout intérêt à choisir un logiciel qui vous laissera -le choix des formats d'enregistrement. C'est le cas de LibreOffice qui, -au moment d'enregistrer un document, en utilisant la fonction -\texttt{Fichier\ \textgreater{}\ Enregistrer\ sous\ldots{}}, vous -propose un grand choix de formats, normalisés ou non. - -\begin{figure}[htbp] -\centering -\includegraphics{images/libreofficeformat.png} -\caption{Choisir le format de fichier au moment de l'enregistrement} -\end{figure} - -Il vous appartient d'enregistrer un document en fonction de ce que vous -voulez en faire. Vous pouvez choisir le format Open Document si vous -voulez que votre fichier soit pérenne ou si vos correspondants utilisent -des logiciels capables de le lire. Si en revanche vous connaissez les -logiciels de votre correspondant, choisissez un format qu'il sera -capable d'utiliser (ou encouragez-le à utiliser la suite libre et -gratuite LibreOffice). - -\subsubsection{Utiliser le format PDF}\label{utiliser-le-format-pdf} - -Un autre moyen d'assurer l'interopérabilité est d'utiliser un format -indépendant du logiciel avec lequel vous créez ou lisez un fichier. Il -en va ainsi du format PDF, créé par la firme Adobe mais devenu une -norme ISO. Tous les lecteurs PDF ne respectent pas cette norme, mais -dans le cas de documents «~simples~», l'envoi au format PDF vous assure -une certaine similitude entre ce que vous désirez que votre -correspondant puisse voir et ce qu'il verra effectivement. De la même -manière, vous pouvez manipuler un fichier PDF sur plusieurs machines et -systèmes différents, notamment pour vos diaporamas~: avec LibreOffice -Impress, vous pouvez sauvegarder votre présentation en PDF et la lire le -moment venu avec un lecteur PDF en mode plein écran. - -\begin{figure}[htbp] -\centering -\includegraphics{images/libreofficeoptionsPDF.png} -\caption{Les options PDF pour l'export dans LibreOffice} -\end{figure} - -Avec LibreOffice, l'utilisation du format PDF est intégrée et -particulièrement efficace. On peut noter~: - -\begin{itemize} -\tightlist -\item - la possibilité de compresser les images, de manière à ce que votre - document ne soit pas trop lourd pour un affichage écran (surtout si - vous n'avez pas travaillé les images avant de les inclure dans votre - document), -\item - la possibilité d'utiliser la norme ISO, -\item - la possibilité d'intégrer le document source au format ODF dans le - PDF, de manière à pouvoir éditer le document par la suite. -\end{itemize} - -Pour créer un PDF avec LibreOffice, rendez-vous dans le menu -\texttt{Fichier\ \textgreater{}\ Exporter\ au\ format\ PDF}, puis -sélectionnez les options désirées avant d'enregistrer. - - - -\subsubsection{Utiliser du texte}\label{utiliser-du-texte} - -Enfin, un troisième moyen pour assurer la pérennité de vos documents, -c'est de les produire dans un format texte et de laisser faire le -logiciel pour ce qui concerne la mise en page et la production finale. -En effet, de plus en plus de logiciels proposent cette possibilité, en -particulier les logiciels de prise de notes ou des éditeurs web comme -ceux que vous pouvez rencontrer dans des applications comme le réseau -social Diaspora* (dont nous parlons dans le chapitre~\ref{chapitre4}). - -Qu'est-ce que cela veut dire~? Vous utilisez l'un des formats les plus -basiques qui soient pour écrire votre texte avec un \emph{éditeur de -texte}, comme le font les programmeurs. Moyennant l'apprentissage d'un -langage très simple comme le Markdown, vous laissez le logiciel -interpréter ce langage pour produire un document mis en page. -Avantages~: vous ne vous occupez plus de la mise en page, vous vous -concentrez sur ce que vous écrivez, vous savez que vous pourrez toujours -récupérer votre production car elle est au format texte, le format de -sortie est généralement interopérable\footnote{Sur le même principe, - pour des utilisateurs plus avancés, il existe des distributions de - LaTeX (voir \fnurl{http://www.latex-project.org/}{latex-project.org/}), - à la fois langage et système de composition de document très puissant, - utilisé notamment pour composer des documents scientifiques des - essais\ldots{}}. - -L'exemple du Markdown est éloquent. C'est une solution de traitement de -texte qui nécessite un temps d'apprentissage d'environ 5 minutes. Voici -quelques exemples. - -Pour écrire un paragraphe, vous écrivez «~au kilomètre~» et vous passez -une ligne entre chaque paragraphe en appuyant sur la touche -\texttt{Entrée}; pour écrire un mot en italique, vous l'entourez d'une -astérisque de chaque côté, pour l'écrire en gras, c'est deux -astérisques. Pour créer un lien on utilise des crochets et des -parenthèses. Un titre de niveau 1 s'introduit avec un croisillon, un -titre de niveau 2 s'introduit avec deux croisillons, un titre de niveau -3 s'introduit avec trois croisillons, etc. Voici un court texte en -Markdown~: - -\begin{verbatim} -# La fête de Juliette - - -À l'occasion de la grande soirée donnée en -son honneur au [château de Combrie] -(http://chateaucombrie.com), Juliette remarqua - la *veste damassée* que portait Nicolas, le -jardinier qui fit tant d'efforts pour paraître - élégant ce soir-là. - -C'est bien lui qui avait successivement ramassé - et soigné : - -* un petit écureuil roux, -* une mésange charbonnière, -* Gaston, le hérisson. -\end{verbatim} - -Pour écrire en Markdown, le mieux est d'utiliser un logiciel disposant -d'un système de coloration syntaxique (vous visualiserez alors mieux les -marques de formatage), et éventuellement un panneau latéral permettant -de visualiser en direct un aperçu de mise en page. Il existe beaucoup -d'éditeurs Markdown. En voici trois assez différents, et libres~: - -\begin{itemize} -\tightlist -\item - \fnurl{http://wereturtle.github.io/ghostwriter/}{Ghostwriter}, un - éditeur de texte couplé à un panneau de visualisation directe~; il - permet aussi d'exporter aux formats ODT, PDF et HTML, -\item - \fnurl{https://github.com/retext-project/retext}{Retext}, un éditeur - similaire à Ghostwriter, -\item - \fnurl{https://stackedit.io/}{Stackedit.io}~: une interface web qui - transforme votre navigateur en éditeur Markdown, -\item - \fnurl{https://typora.io}{Typora}~: un éditeur qui intègre le résultat - des commandes Markdown à la volée. -\end{itemize} - -\begin{figure}[htbp] -\centering -\includegraphics{images/screen-retext.png} -\caption{Éditeur Markdown et panneau de visualisation de la mise en page -en HTML} -\end{figure} - -\subsection{Manipulation d'images}\label{manipulation-dimages} - -Les différences de formats de fichier d'image ne sont pas faciles à -comprendre. Si vous ne les connaissez pas, il vous sera difficile de les -manipuler, ce qui est paradoxal à l'époque où tout le monde peut prendre -des photos de grande qualité grâce à toutes sortes d'appareils -numériques. Par exemple, si vous destinez une photographie à n'être vue -que sur un écran d'ordinateur, il ne vous est pas nécessaire de -l'envoyer en haute définition à votre correspondant. Si au contraire -vous voulez faire développer une photographie, ou si vous devez imprimer -une image sur un poster, il va falloir faire attention à sa définition, -son contraste, son degré de compression, etc. - -Beaucoup de surprises seraient évitées si ces formats de fichiers -étaient utilisés à bon escient. Nous procédons à un comparatif dans le tableau \ref{tab:comparformatimages}. - - -Comme on le voit, ces formats de fichiers d'image sont adaptés à -différents usages. Là aussi, plusieurs logiciels libres sont à votre -disposition~: - -\begin{itemize} -\tightlist -\item - \fnurl{https://www.gimp.org/}{GIMP} (GNU Image Manipulation Program)~: - un logiciel d'édition et de retouche d'image. Il permet de manipuler - un très grand nombre de formats d'images. Le format de sauvegarde est - XCF (afin de sauvegarder un travail en cours), mais il est possible - d'exporter dans n'importe quel format. C'est l'outil idéal, par - exemple, pour convertir d'un format à l'autre. -\item - \fnurl{http://rawtherapee.com}{Rawtherapee}~: il permet de travailler - avec des images RAW, c'est à dire directement sorties de votre - appareil photo, avec toutes les options pour changer les paramètres. -\item - \fnurl{http://qtpfsgui.sourceforge.net/}{Luminance HDR}~: il permet de - traiter des images en vue de pratiquer de l'imagerie à large gamme - (\emph{High dynamic range}). -\item - \fnurl{https://inkscape.org/en/}{Inkscape}~: un logiciel spécialisé - dans l'édition de format SVG, idéal pour créer des graphismes adaptés - à toutes sortes d'usages~: web, impression, iconographie\ldots{} -\end{itemize} - - -\begin{table} -\begin{tcolorbox}[modeltableau,tabularx={X|X|p{0.4\textwidth}|X}] - -\textbf{Nom} & \textbf{Ext.} & \textbf{Définition} & \textbf{Dispo.} \\\hline\hline -Joint Photographic Experts Group & jpg, jpeg, JPG, JPEG & Méthode de compression d'une image fixe (matricielle) et restitution. Plusieurs niveaux de compression disponibles altérant ou non la qualité. & Format ouvert (créé par le groupe du même nom) \\\hline -Portable Network Graphics & PNG & Spécification (et norme) pour Internet, surtout pour des shémas, graphiques, icônes\ldots{} Permet aussi l'enregistrement de photographies sans perte de données. & Format ouvert (créé par W3C) \\\hline -Graphics Interchange Format & GIF & Format sans perte moins puissant que PNG. Destiné au web. & Format ouvert (créé par CompuServe) \\\hline -Tag(ged) Image File Format & TIFF & Un conteneur d'images (à la manière de ZIP), qui peuvent être de différents formats. & Format ouvert (créé par Adobe) \\\hline -Désignation Raw (brut, en anglais) & raw & Désigne un type d'images au format «~natif~» issues des appareils numériques avant leur compression éventuelle en JPG. Permet de travailler directement sur l'image telle quelle, et même reprendre une photo en modifiant les paramètres de prise de vue. & N/A \\\hline -Scalable Vector Graphics & SVG & Format de \emph{données} pour graphismes vectoriels. Il s'agit de code XML qui \emph{décrit} le graphisme. L'échelle ne change pas la qualité du rendu affiché. & Format ouvert (créé par W3C) \\\hline -\end{tcolorbox} -\caption{Comparatif de quelques formats d'image} -\label{tab:comparformatimages} -\end{table} - -\begin{bclogo}[couleur=gray!20,couleurBord=black,couleurBarre=gray!20,arrondi=0.3,logo=\cloche,]{\hspace{0.3cm}Remarque} -N'hésitez pas à bien identifier ce dont vous avez besoin. Par exemple, -il est possible de traiter des images RAW et même reproduire des effets -HDR avec Gimp. Cependant, ce n'est pas son activité de prédilection. De -la même manière vous pouvez produire du SVG avec Gimp, mais vous pouvez -aussi importer une image dans Inkscape et la vectoriser. -\end{bclogo} - -\begin{figure}[htbp] -\centering -\includegraphics{images/screen-darktable.png} -\caption{Traitement d'image RAW avec Darktable sous GNU/Linux} -\end{figure} - -\subsection{Audio et vidéo}\label{audio-et-viduxe9o} - -Tout comme les formats de fichiers d'images, les «~formats~» audio et -vidéo correspondent à des usages différents. Même si cette appellation -est générique, vous avez certainement entendu parler de \emph{codecs} à -l'occasion d'une lecture d'un fichier audio ou vidéo. Un codec est un -dispositif (logiciel) servant à compresser ou décompresser un signal -numérique, avec plus ou moins d'efficacité, avec plus ou moins -d'options. Par exemple un codec vidéo peut avoir des outils -algorithmiques capables de compenser les effets de traînée, ou corriger -des mouvements au quart de pixel. - -Un logiciel de lecture vidéo ou audio (ou d'image) a besoin des codecs -correspondant aux types de fichiers qu'on veut lui faire lire, y compris -si les fichiers se trouvent en ligne et accessibles via le navigateur -(ce dernier fait appel au programme utile en temps voulu). En l'absence -de codecs adéquats, le fichier ne pourra pas être lu. - -Certains codecs sont libres, d'autres sont seulement ouverts. Il faut -aussi distinguer les codecs qui donnent lieu à des extensions de -fichiers (comme \texttt{.mpg} ou \texttt{.mp3}) et les \emph{conteneurs} -qui sont des fichiers (reconnaissables à leurs extensions propres, comme -\texttt{.avi} ou \texttt{.mkv}) mais qui en fait contiennent des -fichiers multimédias qui sont encodés selon des codecs différents. Par -exemple, un fichier \texttt{.mkv} peut contenir un film dont le son est -encodé en OGG et la vidéo en MPEG. - -Dans le tableau \ref{tab:formatmultimedia} sont présentés quelques codecs et conteneurs. - - - - - - -\begin{table} -\begin{tcolorbox}[modeltableau,tabularx={p{0.2\textwidth}|X|p{0.3\textwidth}|X}] -\textbf{Nom} & \textbf{Nature} & \textbf{Définition} & \textbf{Disponibilité} \\\hline -Xvid & Codec & Norme MPEG (compression) & Libre \\\hline -DivX & Codec & Norme MPEG (compression) & Ouvert et non-libre \\\hline -MPEG 1, 2, 4, 7, 21 (Moving Picture Experts Group) & Norme & Normes audio et vidéo concernant le stockage, l'encodage, la diffusion\ldots{} & Ouvert et non-libre \\\hline -MP3 ( MPEG-1/2 Audio Layer III) & Format & Couche de la norme MPEG-1 pour la compression audio & Ouvert et non-libre \\\hline -AVI (Audio Video Interleave & Conteneur & Différents codecs peuvent être encapsulés dans un fichier AVI & Ouvert et non-libre \\\hline -FLAC (Free Lossless Audio Codec) & Codec & Permet la compression audio sans perte. & Libre \\\hline -Vorbis (extension \texttt{.ogg}) & Codecs et formats & Issu de la fondation Xiph.org qui fournit les codecs et formats OGA (audio) et OGV (vidéo). & Libre \\\hline -MKV (Matroska) & Conteneur & Différents codecs peuvent être encapsulés dans un fichier MKV & Libre \\\hline -\end{tcolorbox} -\caption{Quelques codecs et conteneurs multimédia} -\label{tab:formatmultimedia} -\end{table} - -Évidemment, il n'est pas facile de s'y retrouver\ldots{} L'essentiel est -de retenir qu'un logiciel qui permet de lire des fichiers multimédia -doit aussi intégrer les bons codecs. C'est la raison pour laquelle, sur -le mode d'emploi de votre chaîne Hi-Fi ou de votre smartphone, vous avez -une liste des «~formats~» que peut lire votre dispositif (le logiciel -installé dedans). Dans le cas des smartphones comme dans le cas des -ordinateurs, heureusement, on peut choisir ses logiciels. - -\begin{figure}[htbp] -\centering -\includegraphics{images/screen-vlc.png} -\caption{Le logiciel VLC} -\end{figure} - -Notez que ce n'est pas parce qu'un logiciel est libre qu'il ne lit que -des formats libres. À vous de voir si vous désirez installer des codecs -non-libres\ldots{} tout en utilisant, par exemple, les logiciels libres -suivants~: - -\begin{itemize} -\tightlist -\item - \fnurl{http://www.videolan.org/vlc/}{VLC media player (VLC)}~: son - grand intérêt est qu'il dispose d'emblée d'un très large panel de - codecs audio et vidéo, ainsi que sa polyvalence. Son utilisation sur - ordinateur, smartphone ou tablette peut aisément remplacer tous les - autres logiciels de lecture. Il est de même capable de lire des flux - vidéo (comme la télévision en ligne) ou des podcasts, voire devenir un - serveur multimédia. Il peut aussi enregistrer\ldots{} L'installer et - l'utiliser par défaut sur votre machine, y compris comme greffon pour - votre navigateur Internet, n'est pas un mauvais choix. -\item - \fnurl{http://mplayerhq.hu}{Mplayer} ou - \fnurl{http://smplayer.sourceforge.net/}{Smplayer}~: le second est - inspiré du premier. Ils prennent en charge un grand nombre de codecs - audio et vidéo, à l'image de VLC. -\item - \fnurl{https://amarok.kde.org/}{Amarok} est un lecteur audio disposant - d'une interface facile à prendre en main. Il dispose de greffons très - intéressants comme celui qui permet de récupérer sur Wikipédia - diverses informations sur l'artiste que l'on écoute. -\end{itemize} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\section{Les protocoles sur Internet}\label{les-protocoles-sur-internet} - -Pour terminer ce chapitre sur les logiciels et les formats, il est indispensable de parler des dispositifs techniques sans lesquels la communication informatique ne pourrait pas s’effectuer. Les protocoles dont nous allons -parler sont les protocoles réseau, ils sont regroupés sous le nom de -suite TCP/IP et ce sont sans doute ceux dont vous entendrez le plus -parler si vous cherchez à établir une connexion Internet. Tout comme les -formats, il est important de comprendre que ces protocoles de communication -sont des standards~: déjà présents dès l'origine d'Internet, c'est grâce -à eux que le réseau s'est construit. - -\begin{bclogo}[couleur=gray!20,couleurBord=black,couleurBarre=gray!20,arrondi=0.3,logo=\info,]{\hspace{0.3cm}Bon à savoir} -Un protocole de communication est une série d'étapes à suivre pour~: - -\begin{enumerate} -\def\labelenumi{\arabic{enumi}.} -\tightlist -\item - établir une connexion avec une autre machine, -\item - définir la manière dont les informations seront échangées. -\end{enumerate} -\end{bclogo} - -TCP/IP est une suite de protocoles internet qui porte le nom des deux -principaux protocoles TCP et IP. Pour normaliser tous ces protocoles, un -modèle de connexion entre ordinateurs a été développé par l'ISO sur la -base de TCP/IP et nommé le \emph{modèle OSI} (Open Systems -Interconnection). - -Pour résumer rapidement TCP/IP, on peut dire que cette suite de -protocoles est organisée en plusieurs niveaux (couches) qu'on peut -représenter sous la forme du tableau suivant~: - -\begin{table}[H] -\begin{tcolorbox}[modeltableau,tabularx={p{0.05\textwidth}|X|X|p{0.4\textwidth}}] -~ & \textbf{Couche} & \textbf{Exemple} & \textbf{Rôle} \\\hline -5 & \emph{Les applications} & HTTP, FTP & Des logiciels permettent d'assurer l'interface homme-machine, comme un navigateur Internet qui envoie et reçoit des requêtes HTTP \\\hline -4 & \emph{Le transports des données} & TCP & Assurer le transport des données (flux). Par exemple~: ouverture de la connexion, transfert, fin de la connexion. \\\hline -3 & Le réseau* & IP & La structure du réseau. Pour IP, c'est l'adressage~: chaque machine a une seule adresse \\\hline -2 & \emph{Les liaisons} & Ethernet & La méthode de connexion pour transporter les données. Par exemple la commutation de paquets \\\hline -1 & \emph{Couche physique} & ADSL, radio, satellite\ldots{} & Applications physiques des techniques de communication \\\hline -\end{tcolorbox} -\caption{Couches de la suite TCP/IP} -\label{tab:couchesTCPIP} -\end{table} - -On peut aussi comprendre cette suite de la manière suivante~: - -\begin{itemize} -\tightlist -\item - \emph{l'accès au réseau} (couches 1 et 2), -\item - \emph{Internet}~: une gigantesque ville dont IP (Internet Protocol) permet de - gérer les adresses de chaque machine en assurant une fonction de - \emph{routage} (on parle alors des \emph{adresses IP} qui identifient - les machines sur le réseau), -\item - \emph{le transport des données}~: TCP (Transmission Control Protocol) - transporte les données, les découpe en paquets, contrôle leur - réception, rend fiable les transferts d'informations, -\item - \emph{les applications} permettent de traiter les données reçues et initient - les envois éventuels. -\end{itemize} - -Ainsi, lorsque vous naviguez sur Internet, toutes ces opérations doivent -avoir lieu. Par exemple~: - -\begin{itemize} -\tightlist -\item - votre système d'exploitation peut indiquer qu'il existe une connexion - active, mais elle peut seulement concerner les premières couches c'est - à dire, par exemple, la connexion entre votre machine et la box - Internet de votre fournisseur d'accès. Cela ne signifie donc pas pour - autant que vous êtes connecté au réseau Internet (seulement votre - «~réseau domestique~»~: vous avez bien une IP du type 192.168.1.XX - mais votre box, elle, n'a pas d'IP qui lui permet d'être identifiée et - de vous renvoyer des données)~; -\item - vous pouvez avoir une connexion au réseau Internet mais si la couche - applicative fonctionne mal (si votre navigateur est mal configuré) - vous ne recevrez rien~: pourtant vous êtes bel et bien connecté~; -\item - d'autres problèmes peuvent survenir dans les couches intermédiaires, - par exemple un routeur qui fonctionne mal et renvoie des paquets de - manière erratique, etc. -\end{itemize} - -D'autres protocoles de communication existent, nous en verrons davantage -dans les chapitres suivants. L'essentiel, ici, est d'avoir une première -approche du fonctionnement général d'Internet. C'est sur ce sujet que -porte le reste de l'ouvrage. Dans la mesure où les autres couches sont -des standards et sont censées assurer les niveaux et qualités de -connexion des machines, la couche applicative (les logiciels que vous -utilisez) vous concerne en tant qu'individu. C'est essentiellement à -travers elle que vous pouvez agir sur le réseau, veiller sur la sécurité -de vos données, choisir ce que vous recevez et ce que vous envoyez, -prendre garde à ce que devient votre intimité numérique. Vos pratiques -sont donc essentielles car elles déterminent votre mode d'existence sur -un réseau dont nous venons de voir qu'il n'a rien de virtuel\ldots{} - - - - - - - -\section{Un système d'exploitation}\label{un-systuxe8me-dexploitation} - -Pour faire fonctionner les programmes (et les dispositifs matériels) les -uns avec les autres, vous avez besoin d'un système d'exploitation (OS -pour \emph{Operating System} en anglais) qui regroupe les programmes -nécessaires pour accomplir ces tâches. À l'achat de votre ordinateur, -vous avez sans doute accepté que soit fourni l'OS. Bien sûr, cette vente -liée vous permet d'avoir un ordinateur prêt à l'emploi une fois rentré -chez vous. Sachez néanmoins que rien ne vous oblige à acheter une -machine et un système d'exploitation imposé. - -Que vous souhaitiez installer Microsoft Windows, Mac OS (pour une mise à -jour) ou GNU/Linux, le niveau de complexité est aujourd'hui similaire. -On a longtemps accusé GNU/Linux d'être difficile d'accès, mais ces 10 -dernières années ont vu fleurir des distributions de GNU/Linux -spécialement adaptées au grand public. Dès lors, rien ne s'oppose -vraiment à ce que vous choisissiez d'utiliser GNU/Linux, d'autant plus -que si vous utilisez déjà des logiciels libres, le -changement ne sera pas très difficile. - -\begin{bclogo}[couleur=gray!20,couleurBord=black,couleurBarre=gray!20,arrondi=0.3,logo=\cloche,]{\hspace{0.3cm}Qu'est-ce qu'une distribution ?} - -GNU/Linux a ceci de particulier qu'on en parle en termes de -\emph{distributions}. Dans le secteur logiciel, une distribution est un -ensemble cohérent de logiciels prêts à installer. Une distribution GNU -Linux est la plupart du temps composée des éléments suivants~: - -\begin{itemize} -\tightlist -\item - un noyau de système d'exploitation nommé Linux, -\item - des programmes libres issus du projet GNU, -\item - des programmes libres différents selon les distributions et qui leur - donnent leurs saveurs particulières. -\end{itemize} - -\end{bclogo} - -Il existe une multitude de distributions GNU/Linux différentes\footnote{Voir - la page Wikipédia - «~\fnurl{https://fr.wikipedia.org/wiki/Distribution_Linux\#Principales_distributions}{Distribution - Linux}~» qui recense les principales distributions GNU/Linux.}, avec -des noms plus ou moins exotiques~: Debian (sur laquelle sont basées -beaucoup de distributions), Ubuntu, Fedora, Redhat, Suse, Linux Mint, -Mageia\ldots{} Elles ont aussi des bureaux (interfaces) différents, -certains rappellant parfois ce que vous connaissez déjà, d'autres qui -nécessitent un peu d'apprentissage\ldots{} tout comme vous avez dû -apprendre à vous servir de Windows 98, Windows 2000, Windows 7, Windows -10\ldots{} Renseignez-vous sur ces distributions avant d'arrêter votre -choix ou essayez-en plusieurs. - -\section{Je veux essayer GNU/Linux}\label{je-veux-essayer-gnulinux} - -Dans cette section, nous allons tâcher de décrire rapidement les -principales étapes pour installer un système GNU/Linux sur un ordinateur -(ici pour la distribution \fnurl{http://www.linuxmint.com/}{Linux Mint}). -Si vous ne souhaitez pas le faire, sautez cette section, vous pourrez -toujours y revenir. - -\subsection{Vocabulaire}\label{vocabulaire} - -\begin{itemize} -\tightlist -\item - \emph{image ou fichier iso}~: il s'agit d'un fichier archive qui est - une copie conforme d'un disque. Le fichier iso se manipule - habituellement tel quel. Les distributions GNU/Linux sont presque - toujours disponibles en tant que fichier iso. Cela permet de les - graver sur un CD-rom ou de créer une clé USB afin d'essayer et - d'installer la distribution choisie. -\item - \emph{Clé USB bootable}~: le boot est la procédure d'amorçage d'un - ordinateur. Un programme de boot est le programme initial que la - machine va exécuter lorsqu'on la démarre. Une clé USB ou un CD-Rom - bootable sont généralement des images disque fonctionnant de manière - autonome. La machine démarre dessus et on peut ainsi tester le système - d'exploitation présent sur le support. C'est encore le meilleur moyen - de tester une distribution GNU/Linux (sans toucher au système existant - de la machine présent sur son disque dur). D'un point de vue pratique, - il est plus rapide de tester et d'installer à partir d'une clé USB car - la vitesse de lecture sur ce support est généralement plus rapide que - celle d'un lecteur de CD-rom (cela dépend aussi de la quantité de - mémoire vive de la machine). -\item - \emph{Un bureau}~: il s'agit d'un agencement de fenêtres et de menus. - Les habitués de Windows connaissent différents bureaux, depuis windows - 98, en passant par Vista, windows Seven, 8 10, etc. Avec une - distribution GNU/Linux, un bureau par défaut est installé mais on peut - en changer simplement en installant celui de son choix. Certains - bureaux sont graphiquement chargés, d'autres moins, plus ou moins - gourmands en ressources, certains sont très ergonomiques, d'autres - ressemblent à des terminaux dignes des années 1950, etc. -\end{itemize} - -\subsection{Objectif}\label{objectif} - -Nous souhaitons installer la distribution Linux Mint sur la machine -après l'avoir testée grâce à une clé USB. - -Pourquoi Linux Mint~? C'est une question de préférence. Comparer -différentes distributions se fait avant tout en fonction des besoins -recherchés. Ici nous avons besoin d'une distribution généraliste et -polyvalente. Linux Mint propose un bureau nommé Cinnamon, assez -simple à appréhender pour commencer, et facilement -configurable (il est toutefois possible d'en changer, y compris en prenant une version différente de Linux Mint (bureaux MATE, XFCE\ldots) - -\subsection{Matériel}\label{matuxe9riel} - -Nous avons besoin~: - -\begin{itemize} -\tightlist -\item - d'une clé USB vierge de 4Go, ce qui suffira amplement, -\item - d'un ordinateur doté ou non d'un système d'exploitation. -\end{itemize} - -\subsection{Condition}\label{condition} - -Si vous possédez Windows il se peut que vous souhaitiez installer GNU/Linux «~à côté de Windows~». Nous ne traiterons pas de cette situation dans ce chapitre. Cela dit, pour expliquer rapidement : lors d'une installation normale, si la préexistence de Windows est détectée, le choix vous sera proposé par l'assistant, et le reste de l'installation se fera la plupart du temps de manière très aisée. Cependant, il est conseillé d'avoir une version de Windows la plus propre possible, défragmenter le disque au maximum (voire ré-installer Windows complètement), avant de procéder à l'installation de GNU/Linux. - -Cette cohabitation des deux systèmes sur une même machine se nomme «~dual boot~». C'est au démarrage de la machine qu'on devra choisir quel système lancer. Reportez-vous à de nombreux tutoriels sur Internet, afin d'en savoir davantage. - -\subsection{Les étapes}\label{les-uxe9tapes} - -\subsubsection{Télécharger la -distribution}\label{tuxe9luxe9charger-la-distribution} - -Téléchargez l'image ISO de Linux Mint en 32 ou 64 bits, selon la -machine. Si vous ne savez pas si votre processeur est en 32 ou 64 bits, -renseignez-vous ou prenez la version 32 bits. - -Sur la \fnurl{http://www.linuxmint.com/download.php}{page de -téléchargement} des versions de Linux Mint, vous avez le choix entre -télécharger des versions 32 ou 64 bits équipées de bureaux différents~: -Cinnamon, MATE, KDE, Xfce. Cliquez sur votre choix. Une liste de miroirs -sera alors proposée, choisissez le miroir le plus proche de chez vous et -commencez le téléchargement. - -\subsubsection{Vérifier}\label{vuxe9rifier} - -Une fois l'iso téléchargée, il faut vérifier l'intégrité de l'image pour -ne pas avoir de surprise lors de son utilisation. Cette opération est -très rapide, optionnelle, mais d'une prudence élémentaire. Sur la page -des miroirs vous avez un lien \texttt{Verify\ your\ ISO}~: il vous -mènera vers les sommes de contrôle à vérifier. Il s'agit en gros d'une -série de caractères qui attestent l'intégrité de l'image que vous venez -de télécharger. Le but du jeu est de tirer la somme de contrôle du -fichier ISO désormais présent sur votre machine et la comparer avec -celle fournie sur le site (en fichier texte). Pour Linux Mint -l'algorithme utilisé est SHA256. - -Pour effectuer cette vérification, si vous êtes sous Windows, vous -pouvez utiliser~: - -\begin{itemize} -\tightlist -\item - \fnurl{https://sourceforge.net/projects/quickhash/}{Quick Hash GUI}, un - logiciel libre, -\item - \fnurl{http://www.ecodified.com/ehashfast}{Hash Express}, un logiciel - non-libre présent dans le Windows Store. -\end{itemize} - -Téléchargez ensuite les sommes de contrôle présentées sur le site Linux -Mint, puis effectuez la comparaison (les logiciels de vérification sont -très simples d'utilisation). - -\subsubsection{Installer l'image sur une clé USB}\label{installer-limage-sur-une-cluxe9-usb} - -Il vous faut un logiciel qui permet d'installer l'ISO sur la clé en la -rendant bootable. Vous pouvez utiliser le logiciel -\fnurl{http://unetbootin.sourceforge.net}{Unetbootin}. En fait, ce -logiciel permet même de télécharger la distribution de son choix, mais -au moins vous aurez fait l'effort d'aller sur le site officiel de la -distribution\ldots{} - -\begin{itemize} -\tightlist -\item - choisissez la version de - \fnurl{http://unetbootin.sourceforge.net}{Unetbootin} adaptée à votre - actuel système d'exploitation et installez le logiciel, -\item - branchez la clé USB, -\item - lancez le logiciel Unetbootin, -\item - sélectionnez l'iso précédemment téléchargée, -\item - assurez-vous que le bon lecteur usb est sélectionné, -\item - lancez la procédure. -\end{itemize} - -\begin{bclogo}[couleur=gray!20,couleurBord=black,couleurBarre=gray!20,arrondi=0.3,logo=\info,]{\hspace{0.3cm}Remarque} - -D'autres logiciels pour Windows permettent de créer de telles clés USB. -On parle alors de distributions \emph{live}~: - -\begin{itemize} -\tightlist -\item - \fnurl{http://www.linuxliveusb.com/fr/home}{Linux Live USB Creator} - (LiLi), -\item - \fnurl{http://liveusb.info/dotclear/index.php?pages/Pr\%C3\%A9sentation}{Multisystem}, -\item - ou vous pouvez acheter directement une clé prête à l'emploi, par - exemple sur le site \fnurl{https://enventelibre.org/47-cles-usb}{En - Vente Libre}. -\end{itemize} -\end{bclogo} - -\subsubsection{Amorcer}\label{amorcer} - -Vous voici avec une clé chargée de potion magique~: vous pouvez -l'utiliser sans toucher au disque dur de l'ordinateur. - -Branchez-la sur le PC sur lequel vous voulez installer GNU/Linux. -Assurez-vous que ce PC est bien connecté à Internet (en filaire si -possible parce que, même si la puce wifi a de grandes chances d'être -correctement détectée lors de l'installation, le wifi est quand même -moins rapide). Démarrez le PC. - -Et là\ldots{} - -Il y a des chances qu'il démarre sur Windows (s'il en est équipé). Eh -oui~: chez certains fabricants, il y a une tendance à croire que toute -la machine appartient à Windows, donc on ne cherche pas à permettre à -l'utilisateur de choisir l'emplacement depuis lequel il veut que la -machine démarre. - -En fait, au démarrage de la machine, on voit souvent apparaître -(rapidement) la possibilité d'appuyer sur une touche (type \texttt{F2} -ou \texttt{F12}, ou \texttt{\textless{}esc\textgreater{}} / -\texttt{Échap}, etc.) pour accéder au bios. Parfois même certains -fabricants proposent une touche permettant d'accéder directement à un -menu de \texttt{boot} permettant de choisir le support bootable. - -Il faut donc être rapide et presser sur la bonne touche lorsque c'est -proposé au démarrage. Si on accède au bios, tout dépend de sa -configuration, mais généralement il y a un endroit où l'on peut choisir -la séquence d'amorçage. En d'autres termes, il s'agit de dire à la -machine~: «~lorsque tu démarres, tu vas d'abord chercher sur tel support -s'il y a un système, et en l'absence de ce dernier, tu cherches sur un -autre support~». On peut ainsi agencer (souvent avec les flèches du -clavier) la séquence d'ordre de démarrage entre le disque dur, l'USB, le -lecteur CD-Rom, etc. Dans notre cas, nous mettrons le disque USB en tête -de liste, puis \texttt{save\ and\ exit}. Pas de panique~: à l'avenir, si -on a une clé USB branchée lors du démarrage de la machine, dans la -mesure où elle ne contient aucun programme d'amorçage, elle sera -ignorée. Par contre celle que nous venons de créer avec Unetbootin, -elle, contient un programme d'amorçage. - -En redémarrant la machine, magie~! c'est le menu de Unetbootin qui -apparaît. Il propose alors de tester Linux Mint ou de l'installer, etc. - -\subsubsection{Essayer GNU/Linux}\label{essayer-gnu-linux} - -Le mieux est encore de tester. Outre le fait que vous pouvez ainsi -essayer la distribution (elle sera alors dans la langue par défaut, -c'est à dire souvent en anglais), vous pouvez aussi voir si elle -fonctionne bien avec la machine. - -Pour l'installation, soit vous la lancez depuis l'interface de -Unetbootin, soit (si vous êtes en train de tester) en cliquant sur -l'icône d'installation présente sur le bureau. - -\subsubsection{Installation}\label{installation} - -La première chose qui sera demandée est de sélectionner la langue. Ensuite, il suffit de suivre les fenêtres qui s'afficheront. Tout est -fait de manière très intuitive. Attention~: lorsque le choix se présentera, n'oubliez pas de retenir attentivement votre login et votre mot de passe, car ils vous serviront pour administrer la machine. - -Nous n'irons pas plus loin dans la procédure d'installation. Ici, le cas -le plus simple est une machine sur laquelle vous allez \emph{remplacer} -votre actuel système d'exploitation par le nouveau. Évidemment, selon -votre configuration, des choix plus spécifiques peuvent se présenter~: - -\begin{itemize} -\tightlist -\item - si vous avez deux disques durs, -\item - si vous voulez installer GNU/Linux «~à côté~» d'un autre système comme - Windows, -\item - si vous voulez partitionner votre disque de manière spécifique\ldots{} -\end{itemize} - -Dans tous les cas, ne vous lancez pas dans une configuration si vous ne -savez pas ce que vous faites. Le mieux est de vous faire aider. Pour -cela, vous avez certainement près de chez vous un ou plusieurs Groupes -d'Utilisateurs de Linux (GUL). Vous pouvez en trouver la liste sur le -site de l'\fnurl{http://www.agendadulibre.org/orgas}{Agenda du Libre}. - - - - - - - - - - - -\chapter{Le web et les contenus}\label{chapitre2} - -Naviguer sur la Toile, le web (ou le ouèb), l'Internet ---~peu importe -ici (pour l'instant) la manière dont on appelle ce \emph{Réseau}~--- -n'est pas quelque chose d'intuitif. Il n'est pas évident de comprendre -comment sont agencés les contenus et par quels procédés je peux non -seulement y accéder, mais aussi pouvoir le faire plusieurs fois, les -retrouver au même endroit, ou comprendre pourquoi ils n'y sont plus. En -somme, il faut expliquer ce que signifie «~naviguer~» avec un -navigateur, ce logiciel indispensable pour passer de l'affichage d'un -contenu web à l'autre. Mais tout cela est soumis à certaines règles, à la fois techniques et juridiques. - -\section{L'URL~: savoir où je me trouve sur Internet}\label{lurl-savoir-ouxf9-je-me-trouve-sur-internet} - -L'URL (Uniform Resource Locator ---~littéralement «~localisateur -uniforme de ressource~») indique l'adresse d'un contenu sur Internet. -Imaginez-la comme une véritable adresse postale dans le grand village -d'internet. - -Le logiciel qui permet de se rendre à cette adresse est le -\emph{navigateur}. Il affiche à l'écran le contenu de la page que vous -souhaitez voir, tout comme l'adresse de votre maison permet au facteur de -savoir exactement à quelle porte sonner. - -Sur la plupart des navigateurs, elle apparaît en haut dans un cadre que -vous pouvez éditer, c'est-à-dire que vous pouvez directement taper dans -l'espace prévu cette adresse si vous la connaissez. On appelle cet endroit la \emph{barre d'adresse} et elle ne doit pas -être confondue avec la barre de recherche d'un moteur de recherche qui -apparaît souvent en première page lorsque vous lancez votre navigateur. - -\begin{figure}[htbp] -\centering -\includegraphics{images/bvarresadresserecherche.png} -\caption{Différence entre barre d'adresse et barre de recherche} -\end{figure} - -Pour passer d'un contenu à un autre, d'une page à une autre, on clique -sur des \emph{liens}. Un lien est figuré par un texte souligné ou de -couleur différente ou encore une image. Dans tous les cas, lorsque le -pointeur de la souris est positionné dessus, l'URL de destination -s'affiche en bas à gauche du navigateur. - -\begin{figure}[htbp] -\centering -\includegraphics{images/surflien.png} -\caption{URL de destination} -\end{figure} - -On a tendance à oublier l'affichage de l'URL de destination, car elle se -cache souvent derrière le nom littéral des liens des moteurs de -recherche et autres sites. Pourtant elle est fondamentale. Lire sa -codification n'est pas compliqué et nécessaire pour vérifier la nature -de la ressource à laquelle on va accéder en cliquant sur le lien. - -\subsection{Pourquoi les adresses commencent par -HTTP~?}\label{pourquoi-les-adresses-commencent-par-http} - -HTTP signifie HyperText Transfert Protocol («~protocole de transfert -hypertexte~»). Comme son nom l'indique, il s'agit d'un protocole -technique (des spécifications) qui permet à un programme client (le -navigateur, par exemple) et à un serveur (la machine qui héberge le -site) de communiquer ensemble. Par ce protocole, lorsque je me rends sur -une page de l'encyclopédie Wikipédia, mon navigateur effectue une -\emph{requête} auprès du serveur de Wikipédia, il \emph{copie} la page -que lui renvoie le serveur (contenus textuels, images, etc.), et il -\emph{affiche} la page que je peux lire. - -Pour raconter son histoire, le protocole HTTP est la formalisation dans -un \emph{standard} du principe de -l'\fnurl{https://fr.wikipedia.org/wiki/Hypertexte}{hypertexte}, inventé -respectivement en 1945 et 1965 par Vannevar Bush et Ted Nelson. On se -trouve là aux origines non pas d'Internet mais du système d'échange -d'information en réseau. L'internet que nous connaissons aujourd'hui a -du transposer techniquement le concept de l'hypertexte pour -l'automatiser à travers le protocole HTTP. Et, bien entendu, il existe -plusieurs protocoles d'échange sur Internet. Une variante de HTTP est -HTTPS, nous en parlerons plus bas et dans le chapitre~\ref{chapitre5}. - -Si on fait le détail, une requête HTTP envoyée par le client consiste à -donner au serveur un ensemble d'éléments~: la page demandée, les formats -d'image acceptés, la langue acceptée, l'identification du navigateur et -de sa version, etc. Le serveur, quant à lui (et s'il est bien -configuré) renvoie alors des informations qui le concernent, puis ajoute -le contenu demandé et si possible de manière à ce que le client puisse -le lire correctement en fonction des spécifications qu'il lui a adressé -précédemment. - -Bref, le serveur vous apporte votre milkshake selon que vous l'avez -commandé conformément à la carte des saveurs disponibles et de vos -propres goûts. Dans l'illustration \ref{dialogueserveur}, on voit ce que le -navigateur envoie au serveur et ce que ce dernier lui répond avant de -donner la page à afficher. - -\begin{bclogo}[noborder=true,logo=\bcplume]{~} -\begin{small} -Ce dialogue est invisible aux yeux de -l'utilisateur, mais il donnerait quelque chose comme cela~: - -\emph{Navigateur}~: --- Bonjour, je voudrais recevoir la page -Framasoft.org, je suis le navigateur Mozilla Firefox, je tourne sous -Linux, je comprends les encodages et les langages que voici. - -\emph{Serveur}~: --- Enchanté, je peux vous servir. Voici quelques -informations sur la manière dont nous préparons votre commande et le -fonctionnement de nos cuisines. Ici on fonctionne de manière sécurisée, -et d'ailleurs voici un cookie pour accompagner votre commande. Vous -trouverez ci-dessous le contenu de la page demandée. -\end{small} -\end{bclogo} - -\begin{figure}[htbp!] -\centering -\includegraphics{images/get_http.png} -\caption{Exemple de connexion à la page d'accueil de Framasoft. Requête -du navigateur et réponse du serveur} -\label{dialogueserveur} -\end{figure} - - - -\subsection{Déchiffrons une URL}\label{duxe9chiffrons-une-url} - -Prenons une URL type~: - -\texttt{https://fr.wikipedia.org/wiki/Framasoft} - -Que nous apprend cette URL~? Plein de choses\ldots{}\footnote{Merci en - particulier à Gee et Pyves pour la contribution à cette section.} - -\subsubsection{Le plus important~: le nom de -domaine}\label{le-plus-important-le-nom-de-domaine} - -\texttt{https://fr.} \textbf{wikipedia.org} \texttt{/wiki/Framasoft} - -Il s'agit de l'extension (.org, .net, .com, .fr\ldots{}) précédée d'un -identifiant. - -L'extension (aussi parfois appelée \emph{domaine de premier niveau}) est -l'équivalent du code postal qui localise le quartier où se trouve le -site. Le nom de domaine correspond alors à la rue. - -Il est bon de savoir que les domaines (et sous-domaines que nous allons -aborder ensuite), sont toujours écrits du plus précis au moins précis~: -ainsi, \texttt{fr.wikipedia.org} nous dit que vous visitez le domaine -\texttt{fr} qui fait partie de \texttt{wikipedia}, lui-même étant -affilié à l'extension \texttt{org}. - -\begin{bclogo}[couleur=gray!20,couleurBord=black,couleurBarre=gray!20,arrondi=0.3,logo=\info,]{\hspace{0.3cm}Bon à savoir} -Si vous êtes sur une page nommée \texttt{wikipedia.bill.com}, vous -n'êtes \emph{pas} sur Wikipedia. Vous êtes sur une page appartenant à -\texttt{bill.com} qui n'a \emph{a priori} rien de commun avec le réseau -Wikipedia et qui peut contenir n'importe quoi. Donc \emph{vérifiez -toujours que le nom de domaine correspond bien au site que vous -souhaitez visiter}. -\end{bclogo} - -Les hameçonnages en ligne (\emph{phishing}) fonctionnent souvent de -cette manière~: vous recevez un courriel avec un intitulé de banque vous -demandant d'aller dans votre espace en ligne, avec un lien. Vous cliquez -sur le lien et vous arrivez sur un site qui ressemble à s'y méprendre au -site de votre banque. Une simple vérification de l'URL permet de déjouer -le piège~: votre banque devrait avoir un nom de domaine de type -\texttt{nom-de-la-banque.com}. Si vous voyez quelque chose comme -\texttt{nom-de-la-banque.quelquechose.com}, abstenez-vous de cliquer~! - -Les URL peuvent être longues et incompréhensibles. Heureusement, de -nombreux navigateurs comme Firefox mettent le nom de domaine en -évidence. Ainsi, la lecture est facilitée et vous pouvez en un coup -d'œil savoir où vous êtes. - -Concernant l'extension (\texttt{.org}), elle peut renseigner sur la -nature du site. Voici les plus courantes et leurs usages recommandés~: - -\begin{itemize} -\tightlist -\item - \texttt{.com}~: la plus connue, maladroitement considérée comme celle - par défaut. Elle signifie pourtant «~commercial~» et ne devrait être - utilisée que par les sites d'entreprises à but lucratif. -\item - \texttt{.org}~: utilisée par les organisations non lucratives - (associations, sites communautaires, etc.). -\item - \texttt{.net}~: sans signification particulière autre que «~site - web~». Devrait être utilisée par défaut (page perso, etc.). -\item - \texttt{.fr}, \texttt{.de}, \texttt{.co.uk}, etc.~: extensions - spécifiques aux pays. Elles sont gérées par les pays directement et - dépendent donc de leurs législations (contrairement aux autres qui - sont exclusivement américaines). -\end{itemize} - -Notez qu'il ne s'agit que d'usages recommandés. Ainsi, chacun peut -acheter un domaine en \texttt{.com} même s'il n'est pas une entreprise -et n'a pas de but lucratif. L'extension peut donc vous informer, mais -elle n'a aucune valeur dans l'absolu. Le site \texttt{http://identi.ca/} -n'a par exemple aucun rapport avec le Canada (dont le \texttt{.ca} est -pourtant l'extension)~: l'extension a simplement été choisie pour -permettre la composition du mot Identica. - -\subsubsection{Le sous-domaine}\label{le-sous-domaine} - -\texttt{https://} \textbf{fr.} \texttt{wikipedia.org/wiki/Framasoft} - -Il s'agit du mot juste avant le nom de domaine. - -Si vous savez déjà où vous êtes par le nom de domaine, cette information -est moins importante. Néanmoins, elle est aussi une bonne source de -renseignements. Ici, vous savez que vous êtes sur la partie francophone -de Wikipédia (la partie anglophone serait \texttt{en.wikipedia.org}). - -Si l'on reprend l'exemple de l'adresse postale~: vous avez trouvé la rue -\emph{Wikipedia}, le numéro de la maison dans la rue est \emph{fr}. - -De nombreux sites permettent une bonne lisibilité grâce à cela. Les -services de Google (même si nous ne les recommandons pas) suivent cette -logique~: - -\begin{itemize} -\tightlist -\item - Google~: \texttt{https://google.com/}, -\item - Google Maps~: \texttt{https://maps.google.com/}, -\item - Gmail~: \texttt{https://mail.google.com/}, -\item - etc. -\end{itemize} - -\subsubsection{La communication est-elle sécurisée~?}\label{la-communication-est-elle-suxe9curisuxe9e} - -\textbf{https} \texttt{://fr.wikipedia.org/wiki/Framasoft} - -Le fameux HTTP (cf.~ci-dessus) que l'on retrouve en début de chaque -adresse désigne les règles utilisées par les ordinateurs pour s'échanger -des données sur la toile (pages web, images, vidéos\ldots{}). - -Mais de plus en plus de sites utilisent désormais HTTPS, le S signifiant -«~sécurisé~». En effet, les pages en HTTPS sont chiffrées avant d'être -transmises~: votre navigateur et le site se sont mis d'accord sur une -manière de chiffrer leurs communications qu'ils sont seuls à connaître. -Une personne qui voudrait espionner la conversation n'y comprendrait -rien sans la règle de cryptage. - -Grâce à ce sigle, vous pouvez donc savoir très rapidement si les données -transitent \emph{en clair} sur le réseau (HTTP) ou non (HTTPS). - -\emph{Attention}~: si cela est effectivement un gage de sécurité pour -vos communications, cela ne prouve pas pour autant que le site est sûr -en tous points. Par exemple, vous ne pouvez pas savoir ce que le site va -faire de vos données personnelles~: Facebook est accessible en HTTPS mais -n'est pas pour autant respectueux de votre vie privée. - -Enfin, il pourra vous arriver d'avoir un message d'avertissement lorsque -vous vous connectez à une adresse en HTTPS. Nous vous entendons déjà~: - -\begin{quote} -Pourquoi~? si les communications sont sécurisées, n'est-ce pas mieux~? -\end{quote} - -Oui bien sûr! Mais HTTPS permet deux choses~: tout d'abord de sécuriser -ce qui transite dans les tuyaux d'internet, mais aussi garantir que le -site que vous visitez est bien authentique. Pour cela, chaque site a -enregistré un certificat auprès d'un organisme vérifiant son identité. - -Par exemple, lorsque votre navigateur se connecte à Wikipédia en HTTPS, -il récupère le certificat du site et demande à l'organisme associé au -certificat si celui-ci est authentique. Si ce n'est pas le cas, une page -d'avertissement est affichée~: les données seront bien chiffrées, mais il -est possible que quelqu'un vous fasse croire qu'il est Wikipédia. - -Par conséquent, il se peut que vous arriviez sur un site en HTTPS avec -un avertissement sur le certificat~: si vous n'êtes pas sûr, n'y allez -pas~! - -Nous reprenons ces éléments de sécurité dans le chapitre~\ref{chapitre5}. -Reportez-vous y pour plus de détails. En attendant, nous poursuivons -notre analyse d'URL. - -\subsubsection{Où suis-je dans le site~?}\label{ouxf9-suis-je-dans-le-site} - -\texttt{fr.wikipedia.org} \textbf{/wiki/Framasoft} - -Il s'agit du chemin d'accès. Il correspondrait aux indications que vous -donneriez au livreur~: «~Première porte à droite, après -l'escalier\ldots{}~». - -Cette dernière information peut également vous servir si le site a une -architecture visible. Ici, nous savons que nous parcourons le -\emph{wiki} (un gestionnaire de contenus) et que nous sommes sur -l'article \emph{Framasoft}. - -Cette partie de l'URL est la dernière et n'est pas vraiment normée~: -certains sites affichent des choses claires comme ici (le nom de -l'article est inscrit littéralement dans l'URL), d'autres afficheront -des identifiants abscons pour chaque page. - -Un petit détail qui peut néanmoins vous sortir de problèmes idiots~: si -vous avez cliqué sur un lien (dans un forum par exemple) et que la page -est inaccessible (erreur 404), vérifiez la fin de l'URL. Il n'est pas -rare qu'un lien soit erroné parce qu'il contient un caractère de trop~: -l'auteur peut avoir malencontreusement inclus la virgule de sa phrase -dans l'adresse, provoquant une erreur. Ainsi, si l'adresse finit par -\texttt{index.html)}, vous pouvez vous attendre à avoir une erreur~: -retirez simplement la parenthèse à la main et rechargez la page. - -\section{Notions de HTML ou pourquoi le surf n'est pas si simple}\label{notions-de-html-ou-pourquoi-le-surf-nest-pas-si-simple} - -Si vous vous souvenez de la question des requêtes HTTP, que nous avons -vue ci-dessus, vous n'avez pas oublié que le serveur envoie le résultat -de la commande au navigateur de manière à ce que celui-ci puisse -l'afficher. Il peut aussi, à défaut, proposer à l'utilisateur un autre -programme pour traiter le contenu demandé. Ainsi, par exemple si vous -cliquez sur le lien vers un document PDF, c'est le lecteur PDF qui sera -sollicité par le navigateur ou bien il vous sera proposé de télécharger -le fichier ou encore de l'ouvrir avec un programme de votre choix. - -Pour mieux comprendre comment fonctionnent les pages internet sur -lesquelles vous surfez, il faut comprendre comment l'hypertexte est -utilisé. Fondamentalement, c'est très simple. L'illustration ci-dessous -montre à gauche la rédaction HTML d'une page et à droite le résultat -affiché sur un navigateur. - -\begin{figure}[htbp] -\centering -\includegraphics{images/html-mineur.png} -\caption{Rédaction en HTML} -\end{figure} - -Sans entrer dans le détail, nous allons commenter les différents blocs. - -\begin{itemize} -\tightlist -\item - \texttt{\textless{}!DOCTYPE\ html\textgreater{}}~: c'est la ligne qui - permet de déclarer la grammaire ou la norme du document. Ici nous - traitons d'un document rédigé en HTML, mais il y a d'autres - possibilités. -\item - \texttt{\textless{}html\ lang="fr"\textgreater{}}~: nous ouvrons le - contenu qui sera encapsulé entre les balises - \texttt{\textless{}html\textgreater{}} et - \texttt{\textless{}/html\textgreater{}} tout en indiquant que la - langue du document est le français. -\item - Entre les balises \texttt{\textless{}head\textgreater{}} et - \texttt{\textless{}/head\textgreater{}} nous trouvons, dans l'ordre - d'apparition~: la déclaration d'encodage (UTF8), le titre de la page, - et, entre les balises \texttt{\textless{}style\textgreater{}} et - \texttt{\textless{}/style\textgreater{}}, les styles à appliquer aux - différents éléments de mise en page. Par exemple les titres - \texttt{H1} seront dans la couleur \texttt{DeepPink} (rose foncé / - magenta). Notons que les styles à appliquer peuvent être tous - regroupés dans un fichier de style à part (il s'agit alors d'un - fichier portant l'extension \texttt{.css}, pour Cascading Style - Sheet). -\item - Entre les balises \texttt{\textless{}body\textgreater{}} et - \texttt{\textless{}/body\textgreater{}}, nous trouvons le corps du - document, c'est-à-dire le contenu informatif qui sera affiché selon - les spécifications de mise en page précisées dans les styles. -\item - \texttt{\textless{}h1\textgreater{}Chapitre\ III\textless{}/h1\textgreater{}}~: - il s'agit d'un niveau de titre. -\item - Les balises \texttt{\textless{}a\textgreater{}} et - \texttt{\textless{}/a\textgreater{}} servent à créer des liens. Ici le - lien est le mot «~terri~» et la cible est une page Wikipédia. -\item - Les balises \texttt{\textless{}p\textgreater{}}, - \texttt{\textless{}/p\textgreater{}} et - \texttt{\textless{}em\textgreater{}}, - \texttt{\textless{}/em\textgreater{}} sont relatives à la mise en page - et la typographie, elles indiquent respectivement le début et la fin - d'un paragraphe, et le début et la fin d'une emphase (italique). -\item - Enfin, la balise \texttt{\textless{}img\textgreater{}} sert à traiter - des images. Ici nous insérons (avec \texttt{src=}) une image en - indiquant le nom du fichier. -\end{itemize} - -Bien sûr, cet exemple de page web est simplissime. Mais nous voyons déjà -que pour lire une telle page dans votre navigateur, il faut~: - -\begin{itemize} -\tightlist -\item - que le navigateur et le serveur soient entrés en communication selon - un protocole d'accord qui permet au navigateur de récupérer une page - du serveur et l'afficher de manière à ce que vous puissiez la lire~; -\item - que la page soit correctement écrite en HTML (c'est-à-dire que son - créateur n'ai pas fait d'erreur en la composant)~; -\item - que les fichiers auxquels la page fait appel (ici un fichier image et - éventuellement un fichier de styles) soient disponibles. -\end{itemize} - -Dans des cas plus complexes, sur la majorité des sites web que vous -fréquentez~: - -\begin{itemize} -\tightlist -\item - les pages font souvent appel à des bases de données (ne serait-ce que - pour entrer un identifiant et un mot de passe pour accéder à des - contenus spécifiques)~; -\item - des technologies autres que le langage HTML sont souvent sollicitées - (Javascript, Ajax, PHP\ldots{} autant de noms barbares qui ne font que - traiter des contenus et des données échangées). -\end{itemize} - -Pour résumer, surfer sur Internet, c'est faire appel à toutes ces -techniques, langages, contenus et données, souvent à vitesse grand V, -pour lire, écouter, visualiser des contenus gentiment fournis par les -serveurs et \emph{copiés} sur votre machine (dans les dossiers de -\emph{cache} de votre navigateur). Si vous avez des difficultés à lire -un site web et que vous êtes sûr-e de la bonne configuration de votre -machine et de votre connexion, c'est parce que ces éléments ne -fonctionnent pas toujours en même temps de la meilleure manière, en -particulier si le serveur de la base de données tombe en panne ou se -trouve ralenti. - -\section{Je dois accepter des conditions d'utilisation}\label{je-dois-accepter-des-conditions-dutilisation} - -Les conditions d'utilisation des contenus sur Internet concernent à la -fois la manière dont les contenus sont accessibles et les conditions -d'usage des services qui distribuent ces contenus. Selon quels critères -les contenus web sont-ils compatibles avec les technologies que vous -utilisez et pourquoi certains sites et services imposent-ils des conditions -d'utilisation~? Certains droits d'usage sont cependant beaucoup plus -attentifs aux libertés des utilisateurs. - -\subsection{Accès égalitaire~: le rôle du W3C}\label{accuxe8s-uxe9galitaire-le-ruxf4le-du-w3c} - -L'un des facteurs qui a contribué à la fois à la croissance de -l'économie d'Internet et à l'extension de ses valeurs sociales de -partage, c'est la possibilité d'utiliser des protocoles ouverts pour -pouvoir communiquer sur le réseau. Sans l'ouverture de ces protocoles, -les navigateurs ne pourraient pas tous communiquer de la même manière -avec les serveurs, nous ne pourrions pas envoyer de courriels entre -abonnés de différents services, il y aurait même peut-être plusieurs -réseaux Internet différents sans correspondance entre eux\ldots{} - -Pourtant, utiliser de manière égalitaire des spécifications techniques -n'est pas suffisant. Il faut encore que les éditeurs de contenus -puissent présenter ceux-ci de façon cohérente, de manière à ce qu'un -article mis en ligne en France, soit lisible de la même manière partout -dans le monde quelle que soit l'origine de la connexion ou le navigateur -employé. - -C'est à cela que s'emploie le \fnurl{https://www.w3.org/}{World Wide Web -Consortium} (W3C) depuis 1994. Le W3C est un organisme à but non -lucratif, possédant des antennes un peu partout dans le monde. Il -s'emploie à émettre des recommandations visant à garantir la -compatibilité des technologies web, comme le HTML que nous venons de voir -dans la section précédente. Il peut s'agir de langages web, de format -d'images, de méthodes d'exploitation de bases de données, -d'accessibilité, etc. Notez qu'il ne s'agit pas de certification, comme -le ferait une instance de normalisation. Le W3C émet des recommandations -suivant une méthodologie précise et exigeante~: si les éditeurs, -fabricants ou développeurs choisissent de ne pas respecter ces -recommandations, c'est alors à eux de s'en expliquer, avec tous les -risques de rejet que cela comporte. - -En la matière, le monde des développeurs web se souvient des frasques de -Microsoft Internet Explorer 6, qui avait beaucoup de mal à assurer une -compatibilité acceptable avec les contenus. Les développeurs ont même dû -créer des solutions complexes de paramétrage pour ne pas pénaliser les -utilisateurs d'IE6 qui, autrement, auraient eu de grandes difficultés -pour accéder aux contenus. - -Aujourd'hui, la mention «~ce site est optimisé pour la version Y du -navigateur X~» a pratiquement disparu, justement grâce aux travaux du -W3C. Dès lors, si vous avez des difficultés avec un navigateur récent et -dont vous avez assuré la mise à jour, il y a fort à parier que les -problèmes d'affichage proviennent des développeurs et non de votre fait. - -Néanmoins, des technologies sont souvent utilisées bien qu'elles ne -fassent pas partie des recommandations du W3C. C'est le cas de -\fnurl{https://fr.wikipedia.org/wiki/Adobe_Flash}{Adobe Flash}, un -logiciel tout droit issu des années 1990, qui permet de créer et -afficher des applications fonctionnant sur le navigateur disposant d'une -extension Flash. Certains sites proposent ainsi des animations, souvent -lourdes à charger et dont la fiabilité en termes de sécurité peut -laisser à désirer. Il s'agit par exemple de petits jeux en Flash, ou -encore d'une animation sur la page d'accueil d'un site (souvent bien -inutile). Certains grands éditeurs comme Apple, Google et Microsoft -prennent de plus en plus leurs distances vis-à-vis de cette technologie, -qui est désormais supplantée par le HTML5 (c'est-à-dire la nouvelle -version de HTML qui intègre déjà des couches permettant de développer -des applications et afficher, par exemple, des contenus multimédia -cohérents et répondant aux spécifications du W3C). - -\subsection{Gérer ses plugins pour choisir ses -contenus}\label{guxe9rer-ses-plugins-pour-choisir-ses-contenus} - -Heureusement, les navigateurs disposent de moyens pour décider si l'on -veut ou non utiliser de telles technologies. La plupart du temps, les -commandes sont directement accessibles dans la fenêtre dès lors que la -navigateur fait appel à une extension pour afficher des contenus. Dans -le cas de Flash, il faut une extension Flash-Player que l'on peut -activer ou désactiver au besoin. - -Dans l'illustration suivante, on apprend que les plugins (extensions) en -cours d'utilisation sont symbolisés par un petit bloc de Lego dans la -barre d'adresse. On peut alors désactiver l'extension si elle est active -ou choisir de l'activer si elle ne l'est pas par défaut. - -\begin{figure}[htbp] -\centering -\includegraphics{images/plugin-flash.png} -\caption{Activer ou désactiver le plugin Flash} -\end{figure} - -De manière générale, un bon navigateur est un navigateur qui vous permet -de choisir les contenus, en particulier lorsque certains vous sont -imposés et ne sont pas forcément pertinents pour votre navigation. De -bons outils pour cela se nomment \emph{plugins} ou \emph{extensions} ou -encore \emph{modules complémentaires} et vous permettent d'étendre les -fonctionnalités de votre navigateur. - -La fondation Mozilla propose ainsi pour Firefox une pléthore de modules -développés par la communauté, et que l'on peut -\fnurl{https://support.mozilla.org/fr/kb/desactiver-supprimer-modules}{installer -facilement}. Dans le chapitre~\ref{chapitre5}, par exemple, le module -\fnurl{https://addons.mozilla.org/fr/firefox/addon/privacy-badger17/}{Privacy -Badger} vous est présenté pour éviter le traçage des sites web et protéger -votre confidentialité. - -Voici quelques exemples de modules sympathiques~: - -\begin{itemize} -\tightlist -\item - pour éviter les publicités intempestives, vous pouvez installer - \fnurl{https://addons.mozilla.org/fr/firefox/addon/ublock-origin/}{uBlock - Origin}~; -\item - pour corriger ce que vous écrivez dans le navigateur (par exemple - lorsque vous écrivez un courriel depuis un \emph{webmail}), vous - pouvez utiliser - \fnurl{https://addons.mozilla.org/fr/firefox/addon/grammalecte-fr/}{Grammalecte}~; -\item - vous pouvez aussi utiliser un service en ligne et établir un pont avec - le contenu apparaissant dans le navigateur~; c'est l'exemple de - \fnurl{https://framabag.org/}{Framabag}, un service basé sur - \fnurl{https://wallabag.org/fr}{Wallabag} et qui vous permet de stocker - en ligne des pages web (comme un article) puis de les consulter plus - tard à tête reposée, sur votre mobile, par exemple. -\end{itemize} - -Pour installer un module pour -\fnurl{https://addons.mozilla.org/fr/firefox/}{Firefox}, il suffit de -vous rendre sur le -\fnurl{https://addons.mozilla.org/fr/firefox/}{site-dépôt des modules}, -choisir un module et cliquer sur «~Ajouter à Firefox~». Un script (petit -programme) permettra alors à Firefox de télécharger et installer le -module. - -\begin{figure}[htbp] -\centering -\includegraphics{images/firefox-module1.png} -\caption{Choisir et installer un module} -\end{figure} - -Un autre moyen consiste à se rendre dans le gestionnaire de modules de -Firefox et choisir dans le «~catalogue~». Pour gérer les modules, les -activer, les désactiver, les supprimer, allez dans le gestionnaire de -modules puis dans «~Extensions~». - -\begin{figure}[htbp] -\centering -\includegraphics{images/firefox-module2.png} -\caption{Gérer les modules} -\end{figure} - -En somme, vous avez compris que les bons usages des technologies web et -des navigateurs sont ceux qui vous laissent la liberté de lire des -contenus comme vous le voulez. L'ajout de contenus non pertinents, comme -des publicités intrusives, peut gâcher votre lecture et vous amène à -équiper votre navigateur avec des modules adaptés. Cependant, certains -modules, parce que leur fonctionnement implique un traitement des -informations, peuvent dégrader la rapidité de votre navigateur. D'autres -modules sont en revanche très utiles, permettent davantage de confort et -sont même parfois addictifs. - -\subsection{Les Conditions Générales d'Utilisation -(CGU)}\label{les-conditions-guxe9nuxe9rales-dutilisation-cgu} - -Les CGU se trouvent généralement par un lien en bas de page du site que -vous consultez ou du service que vous utilisez. Pourquoi existe-t-il des -CGU~? - -Il s'agit d'abord d'un \emph{contrat} entre l'éditeur et l'utilisateur -qui vise à mettre au clair les conditions dans lesquelles l'éditeur met -un contenu ou un service à disposition et celles dans lesquelles un -utilisateur est en mesure d'en user. Les CGU déterminent alors les -\emph{responsabilités} de l'un et de l'autre et peuvent aussi mentionner -des sanctions éventuelles. - -Par exemple, un forum peut rappeler dans ses CGU que les propos racistes -et injurieux sont punis par la loi, il peut stipuler que l'éditeur ne -saurait être tenu responsable des propos écrits par les membres mais que -ces derniers peuvent se trouver bannis du forum au cas où ils écriraient -de tels propos. - -Le fait d'utiliser un site ou un service équivaut à accepter les CGU, -mais bien peu d'internautes prennent le temps ne serait-ce que survoler -ces textes. - -Prenons l'exemple des CGU de Google. On ne peut pas reprocher à cette -firme d'être opaque sur ses CGU puisqu'elle les rappelle régulièrement -via un message d'alerte lorsque vous effectuez une recherche sur son -site le plus utilisé, son moteur de recherche. Dans les -\fnurl{http://www.google.com/intl/fr/policies/terms/}{CGU de Google}, on -trouve\footnote{CGU consultées le 01/02/2017.}~: - -\begin{quote} -Certains de nos Services vous permettent d'importer, de soumettre, de -stocker, d'envoyer ou de recevoir des contenus. Vous conservez tous vos -droits de propriété intellectuelle sur ces contenus. En somme, ce qui -est à vous reste à vous. - -Lorsque vous importez, soumettez, stockez, envoyez ou recevez des -contenus à ou à travers de nos Services, vous accordez à Google (et à -toute personne travaillant avec Google) une licence, dans le monde -entier, d'utilisation, d'hébergement, de stockage, de reproduction, de -modification, de création d'œuvres dérivées (des traductions, des -adaptations ou d'autres modifications destinées à améliorer le -fonctionnement de vos contenus par le biais de nos Services), de -communication, de publication, de représentation publique, d'affichage -public ou de distribution publique desdits contenus. Les droits que vous -accordez dans le cadre de cette licence sont limités à l'exploitation, -la promotion ou à l'amélioration de nos Services, ou au développement de -nouveaux Services. Cette autorisation demeure pour toute la durée légale -de protection de votre contenu, même si vous cessez d'utiliser nos -Services {[}\ldots{}{]}. -\end{quote} - -Il est vrai que la tournure est parfois alambiquée. Ici, on peut -imaginer une certaine contradiction entre les deux paragraphes, l'un -stipulant que nous conservons tous nos droits sur nos données, et -l'autre impliquant que Google peut en faire à peu près ce qu'il veut. -En réalité, vous conservez effectivement tous vos droits sur les -données, mais le fait d'utiliser les services de Google implique que -vous donnez une licence d'usage à Google et que cette licence n'est pas -censée prendre fin, même si vous n'utilisez plus les services en -question. - -Notez aussi que, selon le pays du site ou du service que vous utilisez, -les CGU peuvent non seulement être rédigées dans une langue que vous ne -comprenez pas, mais aussi emporter des conditions parfaitement légales -dans le pays en question et non dans le vôtre. Dans ce cas, tout -contentieux risque d'être bien difficile à résoudre (ceci sans compter -le lieu où vos données sont stockées, en particulier si les serveurs ne -sont pas sur le sol français). - -Les clauses des CGU de Google constituent un cas d'école. Heureusement, -tous les sites et services sur Internet n'usent pas de telles libertés -qui, si elles sont relativement légales, impliquent cependant des -pratiques qui ne sont pas vraiment loyales. En contraste, une -association comme Framasoft, qui propose elle aussi des services en -ligne et des contenus, -\fnurl{http://www.google.com/intl/fr/policies/terms/}{affiche des CGU -claires et pédagogiques} qui stipulent notamment qu'aucune exploitation -ne sera faite des données. Les CGU de Framasoft visent essentiellement à -rassurer les utilisateurs, agir en transparence et prévenir des risques -d'abus. - -\subsection{Cadre légal}\label{cadre-luxe9gal} - -Sur Internet, les cas d'abus ne manquent pas. Lors de l'ouverture du -service \fnurl{https://framasphere.org/}{Framasphère}, un nœud du réseau -social \fnurl{https://fr.wikipedia.org/wiki/Diaspora}{Diaspora*}, -l'association Framasoft a du faire face à plusieurs cas de manquement au -règlement et à la loi, comme par exemple l'usage non autorisé de -photographie d'un tiers, des usurpations d'identité, etc. Heureusement, -les coordonnées des responsables du site et leur réactivité ont permis à -chaque fois une résolution adéquate des situations. Ce n'est -malheureusement pas le cas partout, en particulier s'il s'agit de -services aux conditions d'utilisation douteuses. - -Tous les sites et services qui enregistrent des données personnelles, ne -serait-ce que vos noms et prénoms, doivent faire l'objet d'une déclaration -à une autorité qui va étudier à la fois ce que les services font avec ces -données, comment ils le font, s'ils les transfèrent ou non dans un autre -pays, et les informations qu'ils en infèrent. Pour la France, c'est la CNIL -(Commission nationale de l'informatique et des libertés) qui est en -charge de traiter et surveiller les déclarations de ce type. Pour les -autres pays, vous pouvez vous reporter à -\fnurl{https://www.cnil.fr/fr/la-protection-des-donnees-dans-le-monde}{la -carte} éditée par la CNIL sur son site~: en cliquant sur un pays vous -pourrez savoir s'il existe une autorité équivalente, quelles sont les -dispositions législatives concernées, et les coordonnées des points de -contacts officiels. - -Pour la CNIL, ce qu'on appelle «~données personnelles~» est défini -relativement à l'article 2 de la -\fnurl{https://www.legifrance.gouv.fr/affichTexte.do?cidTexte=JORFTEXT000000886460}{Loi -Informatique et Libertés}~: - -\begin{quote} -Constitue une donnée à caractère personnel toute information relative à -une personne physique identifiée ou qui peut être identifiée, -directement ou indirectement. -\end{quote} - -L'éditeur d'un site ou d'un service, dans la mesure où il utilise des -données personnelles de ses utilisateurs, en constitue donc un fichier -destiné à être exploité. C'est ce fichier et ses spécifications qui -doivent être déclarés. En France, les manquements en termes de -conformité CNIL de ces fichiers est punissable de 300~000 euros et de -5~ans d'emprisonnement. - -Vous aurez compris qu'avant d'entrer vos données d'identité, votre -adresse ou tout autre information personnelle sur un site ou un -service, il est de votre intérêt de vérifier auparavant quelques -éléments~: - -\begin{itemize} -\tightlist -\item - si l'éditeur a enregistré son site ou son service auprès de la CNIL ou - un équivalent dans le pays concerné. Généralement, la mention de - l'enregistrement et même le numéro sont accessibles dans la partie «~À - propos~» ou «~Mentions légales~», souvent un lien en pied de page~; -\item - en cas de doute, vérifiez auprès d'un annuaire pour retrouver - l'identité de l'éditeur~: une - \fnurl{http://www.afnic.fr/fr/produits-et-services/services/whois/}{recherche - WHOIS} (qui est\ldots{}?) auprès de l'AFNIC\footnote{L'AFNIC est - l'Association Française pour le Nommage Internet en Coopération. - Elle se définit ainsi sur son site - \href{http://www.afnic.fr}{afnic.fr}~: «~L'Afnic est le centre de - gestion (registre) et de ressources des noms de domaine Internet - géographiques pour la France (le \texttt{.fr}), l'Ile de la Réunion - (le \texttt{.re}), Saint-Pierre et Miquelon (le \texttt{.pm}), - Mayotte (le \texttt{.yt}), Wallis et Futuna (le \texttt{.wf}) et les - Terres australes et antarctiques Françaises (le \texttt{.tf}).~»}, - par exemple, vous permet, à partir d'un nom de domaine, de trouver - l'identité de celui qui a déclaré ce domaine. Cela ne signifie pas - pour autant que c'est cette personne qui édite effectivement le site, - mais c'est une indication pertinente~; -\item - renseignez-vous sur les moyens à votre disposition pour effectuer des - démarches afin de récupérer vos droits (droit à l'image, droit - d'auteur, autres informations personnelles, etc.)~: le site de - l'éditeur doit mentionner une adresse à laquelle vous pouvez écrire - (en conservant une copie de votre message) et sur son site, la CNIL - vous donne quelques astuces pour mener à bien ce type de démarche. -\end{itemize} - -\section{Les droits d'usage}\label{les-droits-dusage} - -Toute l'histoire d'Internet repose sur les notions de partage~: partage -du code, partage des connaissances, partage des techniques, et toutes -ces conditions qui firent qu'Internet a été construit comme un réseau -libre et ouvert. Dès lors, que pouvez-vous faire avec les contenus que -vous lisez, copiez ou téléchargez sur Internet~? Cette question est -vaste et appellerait un développement bien trop long pour cet ouvrage, -surtout parce qu'elle traite du droit d'auteur. Nous allons donc devoir -prendre quelques raccourcis~: reportez-vous aux références citées si -vous désirez en savoir davantage. - -\subsection{Partager~?}\label{partager} - -Lorsque nous disons qu'Internet a été construit sur des valeurs de -partage, que voulons-nous dire exactement~? Non pas que la structure -technologique des premiers ordinateurs en réseau ait été développée de -manière anarchique, d'autant plus que les premiers projets de -développement aux États-Unis ont été en partie portés par des fonds -militaires à la fin des années 1960. Ce que cela signifie, c'est que la -communauté des développeurs des protocoles et des programmes qui ont permis de faire fonctionner un -réseau et des serveurs, l'a fait dans un esprit d'ouverture. - -L'exemple typique est les RFC (Requests For Comments), littéralement, -les «~demandes de commentaires~». Elles concernent différents aspects -techniques d'Internet ou matériels. Ces RFC sont regroupées en une série -qui démarre en 1969. Le principe~: à l'initiative d'un volontaire (tout -le monde peut proposer une RFC), un brouillon est proposé à toute la -communauté puis, si ce brouillon retient l'attention et après discussion -générale et publique, une rédaction finale est tenue à disposition de -tous. Les RFC sont toutes rédigées de la même manière et expriment des -exigences (obligations, restrictions, recommandations\ldots{}). C'est -notamment grâce à ce partage des connaissances et des techniques -qu'Internet a modélisé tous les outils qui permirent aux utilisateurs de -collaborer et construire une communauté mondiale, avec une économie, des -entreprises, etc. - -Pourtant, dans ce monde de partage, comment comprendre cet apparent -paradoxe que tous les partages ne sont pas permis et même sanctionnés -par différentes lois~? Plus troublant encore, si l'on considère ce vaste -projet de partage qu'est Wikipédia, on apprend assez vite que -l'utilisation des contenus de Wikipédia est soumise à certaines -contraintes. - -\subsection{Droit d'auteur}\label{droit-dauteur} - -Le \fnurl{https://fr.wikipedia.org/wiki/Droit_d\%27auteur}{droit -d'auteur} est un droit qui s'applique aussi bien sur Internet -qu'ailleurs. Simplement, le développement d'Internet a quelque peu -bousculé les pratiques. - -Le droit d'auteur est acquis de manière automatique dès lors que vous -créez une œuvre. Il y a deux acceptions à ce droit d'auteur~: - -\begin{itemize} -\tightlist -\item - un droit moral, qui permet d'attribuer à l'auteur la paternité de son - œuvre et protège l'intégrité de cette œuvre, -\item - un droit patrimonial, par lequel un auteur peut diffuser son œuvre ou - céder l'exclusivité de la production et de la distribution à un tiers - (un éditeur, par exemple). -\end{itemize} - -La diffusion et la multiplication des contenus sur Internet rend plutôt -difficile la régulation du droit d'auteur. Si vous vous souvenez des CGU -de Google dont nous avons parlé ci-dessus, la jurisprudence peut prêter -à sourire si elle ne reflétait de graves difficultés à faire respecter -le droit d'auteur sur Internet. Ainsi, le Tribunal de Grande Instance de -Paris a jugé -\fnurl{https://www.legalis.net/jurisprudences/tribunal-de-grande-instance-de-paris-3eme-chambre-2eme-section-jugement-du-09-octobre-2009/}{une -affaire le 9 octobre 2009}. Cette affaire opposait un photographe, une -société éditrice de photographie, un site Internet et la société Google -Image. Pour résumer~: une photographie disponible sur le site a été -reprise par Google Image mais le nom de l'auteur n'ayant pas été -mentionné, le TGI, sur demande du photographe à déréférencer son œuvre, -a condamné Google Image. À travers cette affaire, on voit clairement les -difficultés que les auteurs peuvent avoir pour protéger leur droit moral -à la paternité (la photographie ayant été retouchée sans mentionner le -nom de l'auteur), et même le droit patrimonial (la société éditrice en -charge de la distribution de l'œuvre doit elle aussi être de la partie -plaignante). - -Évidemment on comprend aussi que, étant donné la mondialisation du -réseau, les acceptions du droit d'auteur ne sont pas les mêmes dans tous -les pays, exception faite des pays signataires de la -\fnurl{http://www.wipo.int/treaties/fr/ip/berne/}{Convention de Berne} -qui s'accordent sur une majorité de principes. C'est pourquoi des déséquilibres -et des tensions ont cours sur Internet à propos du respect des droits -d'auteur, et ne sont pas forcément le fait des piratages et autres -pratiques, condamnables, mais dont le caractère illicite est néanmoins -très clair\ldots{} Jusqu'à ce que vous compreniez que dans la mesure où -toute consultation de contenu sur Internet est une copie, ce n'est plus -seulement l'appropriation illicite d'une œuvre qui est en jeu mais la -méthode de sa distribution et les droits de diffusion et reproduction -(c'est pourquoi les sites pirates sont généralement condamnés pour -contrefaçon et non pour distribution illégale de copies). - -Concrètement, face à cette complexité, l'utilisateur doit respecter -certains principes relativement simples. En voici quelques-uns que vous -avez tout intérêt à retenir~: - -\begin{itemize} -\tightlist -\item - vous pouvez utiliser une œuvre (un contenu créé par quelqu'un d'autre - que vous, qu'il s'agisse de programme, image, texte, etc.), pour la - diffuser d'une manière ou d'une autre, uniquement à partir du moment - où vous êtes en mesure de savoir que vous avez effectivement le droit - d'en disposer, dans quelles conditions et si et seulement si vous en - attribuez la paternité à l'auteur (vous citez l'auteur)~; -\item - vous pouvez citer une partie courte d'un texte (le - \fnurl{https://fr.wikipedia.org/wiki/Droit_de_courte_citation}{droit de - citation} est une exception au droit d'auteur) à la condition d'en - attribuer la paternité et d'indiquer la source de l'œuvre, -\item - vous pouvez indiquer la provenance d'une œuvre sur Internet ou faire - un lien vers cette œuvre mais vous n'avez pas la possibilité de vous - en autoriser vous-même le droit de diffusion. -\end{itemize} - -Si le respect du droit d'auteur doit s'appliquer sur Internet comme -ailleurs, il reste que la concentration des contenus sur Internet par de -grands monopoles ont réussi en peu d'années à créer des inégalités et -des injustices. On peut se reporter à l'ouvrage de Joost Smiers et -Marieke van Schijndel, -\emph{\fnurl{https://framabook.org/un-monde-sans-copyright-et-sans-monopole-2/}{Un -monde sans copyright et sans monopole}}, qui, après un état des lieux -des distorsions du droit d'auteur par les monopoles économiques (pays ou -grandes firmes) propose de se passer complètement du copyright (et donc -du droit d'auteur) pour créer un nouveau modèle économique. Pour -illustrer cela, on peut citer la concentration des publications -scientifiques par de grands éditeurs comme Elsevier, des éditeurs -«~papier~» au départ et qui, après avoir racheté de multiples autres -éditeurs, ont créé des monopoles sur l'édition et la distribution -(numérique et papier) des publications scientifiques. Aujourd'hui des -millions d'euros de fonds publics partent entre leurs mains, ce qui crée -une grande inégalité à l'échelle mondiale sur l'accès aux connaissances -scientifiques\footnote{C'est ce qui a poussé des étudiants et des - chercheurs à créer Sci-Hub, un portail qui permet d'accéder aux - articles scientifiques gratuitement à la manière des sites de piratage - de films.}. - -\begin{bclogo}[couleur=gray!20,couleurBord=black,couleurBarre=gray!20,arrondi=0.3,logo=\cloche]{\hspace{0.3cm}De nouveaux équilibres du droit d'auteur} - -Pour favoriser de nouveaux équilibres dans la société numérique, plus -pertinents et non moins contraignants, les licences libres (ou ouvertes) -permettent d'octroyer \emph{a priori} certains droits aux utilisateurs -au lieu de restreindre les usages par défaut. Ainsi, de plus en plus de -contenus disponibles sur Internet sont diffusés sous ces licences. Il -est important d'en comprendre le sens et les possibilités qui sont -ouvertes. -\end{bclogo} - -\subsection{Licences libres}\label{licences-libres} - -Les licences libres ne concernent pas seulement les logiciels (voir le -chapitre~\ref{chapitre1}, où nous définissons une licence libre). Elles dépassent -largement le cadre de l'usage des programmes car leur objectif n'est pas -seulement de partager un bien mais aussi de partager ce qu'on peut faire -de ce bien. Ainsi un morceau musical sous licence libre peut être remixé -et re-partagé, un texte peut être traduit (c'est-à-dire modifié) et -cette traduction peut être diffusée, etc. - -En fait, les licences libres ne s'opposent pas au droit d'auteur ----~elles tendraient même à le renforcer~--- mais s'opposent à la notion -d'exclusivité et de concentration des droits, pour donner à l'auteur la -possibilité de déterminer \emph{a priori} les conditions d'usage de son -œuvre. Ainsi, il est non seulement possible de placer une œuvre -non-logicielle sous licence libre, mais cela équivaut à une démarche -spécifique de l'auteur qui souhaite verser sa production dans les biens -communs. Ce faisant, il ne renie pas le droit moral d'auteur car ce -dernier est inaliénable~: quoi qu'il arrive, l'auteur est toujours -reconnu comme auteur, même lui ne peut pas dénier cette qualité (dans -l'état actuel du droit). - -L'encyclopédie Wikipédia est une illustration convaincante de ce que les -licences libres permettent non seulement de partager des contenus mais -aussi de participer à leur création, qu'il s'agisse de connaissances, -d'illustrations, de photographies ou de vidéos. Les contenus de -Wikipédia sont placés sous licence \emph{Creative Commons attribution, -partage dans les mêmes conditions} : cela signifie que vous pouvez -utiliser et partager ces contenus dans la mesure où vous en citez la -source et que la licence de ce que vous partagez en provenance de -Wikipédia soit cette même licence. En d'autres termes, conformément au -droit d'auteur, vous ne pouvez pas vous attribuer la paternité de ce -contenu, vous devez citer Wikipédia au titre de cette paternité. Par -contre, en plus, vous pouvez modifier ce contenu à condition de -renseigner ce que vous avez modifié, et vous pouvez diffuser comme vous -l'entendez à condition d'utiliser la même licence. - -Désormais, vous savez quoi répondre à votre enfant qui prétend qu'il -peut utiliser des contenus Wikipédia pour son devoir d'Histoire~: il -peut citer, mentionner la source, mais en aucun cas prétendre en -être l'auteur. Quant au professeur qui ne supporte pas Wikipédia, vous lui pouvez -rappeler que le problème n'est pas dans le fait d'utiliser ou non des -contenus de Wikipédia, mais dans le fait de s'attribuer ces contenus -sans en citer la source. Vous pouvez aussi ajouter que si les contenus -de Wikipédia ne le satisfont pas, il peut lui aussi y contribuer en -corrigeant ou créant des notices\ldots{} - -Pour utiliser des contenus sous licence libre, vous devez distinguer les -licences entre elles. Pour débuter, il est inutile d'entrer dans le -détail, mais sachez simplement que toutes les licences libres imposent -des conditions qui ne sont pas tout à fait les mêmes. En général on -distingue~: - -\begin{itemize} -\tightlist -\item - les licences libres~: vous pouvez utiliser, partager, modifier et - diffuser la modification, exactement comme s'il s'agissait d'un - logiciel libre (cf.~les 4 libertés dans le chapitre~\ref{chapitre1})~; -\item - les licences libres \emph{copyleft}~: \emph{copyleft} est un jeu de mot - signifiant \emph{gauche d'auteur} par opposition au \emph{copyright}~; cela - signifie que l'œuvre, modifiée ou non, doit être redistribuée - exclusivement sous la même licence que celle de départ~; -\item - les licences de libre diffusion~: certaines clauses ne sont pas - compatibles avec les 4 libertés, mais l'usage de l'œuvre est tout de - même facilité. -\end{itemize} - -Voici quelques exemples de licences pouvant s'appliquer à des contenus -culturels, scientifiques ou artistiques~: - -\begin{table}[H] -\begin{tcolorbox}[modeltableau,tabularx={X|X|X}] -\textbf{Nom de la licence} & \textbf{Abréviation} & \textbf{Caractéristique} \\\hline -Licence Art Libre & \href{http://artlibre.org/}{LAL} & Licence libre copyleft \\\hline -Licence de documentation libre & \href{http://www.gnu.org/licenses/fdl-1.3.html}{GNU FDL} & Licence libre copyleft \\\hline -Creative Commons - Attribution & \href{https://creativecommons.org/licenses/by/3.0/fr/}{CC-BY} & Licence libre non copyleft \\\hline -Creative Commons - Attribution - Partage des conditions initiales à l'identique & \href{https://creativecommons.org/licenses/by-sa/3.0/fr/}{CC-BY-SA} & Licence libre copyleft \\\hline -Creative Commons - Attribution - Pas de modification & \href{https://creativecommons.org/licenses/by-nd/3.0/fr/}{CC-BY-ND} & Licence de libre diffusion \\\hline -Creative Commons - Attribution - Pas d'utilisation commerciale & \href{https://creativecommons.org/licenses/by-nc/3.0/fr/}{CC-BY-NC} & Licence de libre diffusion \\\hline -Creative Commons - Attribution - Pas d'utilisation commerciale - Partage des conditions initiales à l'identique & \href{https://creativecommons.org/licenses/by-nc-sa/3.0/fr/}{CC-BY-NC-SA} & Licence de libre diffusion \\\hline -Creative Commons - Attribution - Pas d'utilisation commerciale - Pas de modification & \href{https://creativecommons.org/licenses/by-nc-nd/3.0/fr/}{CC-BY-NC-ND} & Licence de libre diffusion \\\hline -\end{tcolorbox} -\caption{Exemples de licences libres} -\label{tab:exemplesLL} -\end{table} - -En guise d'application, voici une bande dessinée sous licence libre -CC-By-SA, que nous avons modifié (nous avons traduit les dialogues). Il -est important de bien référencer, ce que nous faisons ci-dessous. - -\newpage - -\begin{figure}[htbp] -\centering -\includegraphics{images/mimieunicetrad.png} -\caption{Mimi et Eunice -- permission} -\end{figure} - -\begin{itemize} -\tightlist -\item - Œuvre originale~: \emph{Mimi and Eunice}, par Nina Paley, sur - \fnurl{http://mimiandeunice.com}{mimiandeunice.com}. -\item - Source~: publication en 2011, à l'adresse~: - \url{http://mimiandeunice.com/2011/08/30/permission-2/}. -\item - Traduction et modification par Framatophe. -\item - Licence~: - \fnurl{https://creativecommons.org/licenses/by-sa/3.0/fr/}{CC-BY-SA}. -\end{itemize} - -\chapter{Mes messages sur Internet}\label{chapitre3} - -La communication est l'essence même d'Internet. Le réseau a été -construit sur la base de protocoles de communication ouverts et -accessibles à tous. Pour envoyer des messages, les utilisateurs peuvent -utiliser plusieurs solutions logicielles. Dans ce chapitre, nous allons -nous pencher sur les principaux usages~: le courrier électronique et ses -pratiques, les webmails, les clients de courriel, la messagerie -instantanée et les principaux protocoles concernés. Nous aurons aussi l'occasion de toucher - quelques questions de sécurité. - -\section{Le courrier électronique}\label{le-courrier-uxe9lectronique} - -«~Vous avez reçu un courriel~»\footnote{Cette section est reprise en - partie selon une section que l'auteur a rédigé dans le cadre d'un - projet de Framabook intitulé \emph{Guide de survie numérique}.}. Pour -beaucoup, ce message est devenu très banal. Que ce soit dans un cadre -professionnel ou personnel, l'envoi et la réception de courriers -électroniques sont devenus des activités à part entière, comme planifier -une réunion ou aller chercher son pain. Pour certaines personnes, les -«~méls~» peuvent être rares voire inexistants, mais les institutions de -l'État ou les acteurs économiques en général incitent de plus en plus à -se passer de correspondance papier. - -De manière commune, le courrier électronique se compare assez facilement -à la lettre que l'on envoie via le service postal au coin de la rue. -Cependant, le seul fait de communiquer par voie numérique implique des -changements bien plus profonds. En effet, la comparaison avec la lettre -sous enveloppe s'arrête là. Un courrier électronique est copié plusieurs -fois sur les serveurs où il transite et tous les administrateurs de ces -serveurs peuvent lire le courrier, un peu comme s'il s'agissait plutôt -d'une carte postale. Si on veut une enveloppe, il faut \emph{chiffrer} -le contenu du courriel (voir la section consacrée au chiffrement). -Faisons un petit tour des solutions de courrier électronique. - -\section{Les services de messagerie en ligne}\label{les-services-de-messagerie-en-ligne} - -Un service de messagerie en ligne est un service accessible via un -navigateur Web. Une connexion est demandée, avec un nom d'utilisateur et un mot de -passe. - -Dans leur grande majorité, les services de courriel disposent d'une -version en ligne, souvent appelée \emph{webmail}, mais il est possible -d'accéder à ses messages via un logiciel client de courriel (voir plus -bas). On accède généralement à ces webmails sur le portail du -fournisseur. - -L'avantage d'un \emph{webmail} est de pouvoir accéder à sa messagerie -depuis n'importe quel ordinateur connecté. Parmi les nombreux services -de messagerie en ligne, on peut distinguer les plus connus, qui mêlent à -la fois un service d'émission et de réception de courriel, de la -messagerie instantanée (\emph{chat}), du stockage de fichiers en ligne, -et des outils de réseaux sociaux. L'ensemble de ces services, -accessibles depuis un compte unique, forme un \emph{cloud (nuage)} où il -est possible de travailler sans avoir à stocker quoi que ce soit -localement sur un ordinateur. Ajoutés à ce dispositif, on peut -mentionner des systèmes d'édition de documents (bureautique) ou des -systèmes de partage de fichiers images (photographies). - -Tous ces services, accessibles via un seul compte, sont très révélateurs -des usages personnels~: partager facilement ses photos dans un cercle -familial, ne plus avoir à trier ses courriels grâce à un espace de -stockage quasi inépuisable pour la majorité des utilisateurs, pouvoir -éditer à plusieurs des documents qui resteront stockés en ligne et -accessibles à tout moment, etc. - -Sur Internet, de grandes entreprises proposent de tels outils -gratuitement, les mettant ainsi à disposition de millions d'utilisateurs -à travers le monde. Les plus connues disposent souvent d'une version -gratuite (imposant de la publicité en échange du service et des -informations profilées des utilisateurs) et d'une version payante. - -\subsection{Mise en garde}\label{mise-en-garde} - -Aussi séduisants qu'ils puissent être, les services de messagerie en -ligne gratuits ou payants, sont souvent sous le feu des projecteurs. -Ils supposent tous un certain degré de confiance de la part des -utilisateurs qui acceptent des clauses de confidentialité parfois -abusives, ou, plus simplement, ne remplissent pas leur devoir en matière -de garantie de sécurité des données. - -\begin{bclogo}[couleur=gray!20,couleurBord=black,couleurBarre=gray!20,arrondi=0.3,logo=\cloche,]{\hspace{0.3cm}Si c'est gratuit, c'est vous le produit~!} - -En particulier lorsque le service est gratuit, un utilisateur doit -toujours être conscient qu'en déléguant à un tiers la gestion de son -courrier personnel ou de n'importe quelles autres données, il s'engage à -prendre le risque de les perdre ou de laisser à ce tiers la possibilité -de les analyser pour en tirer des informations plus ou moins -personnelles en vue d'une utilisation commerciale, ou pour le compte -d'autrui (comme une agence de renseignements). -\end{bclogo} - -Par ailleurs, suivant les pays où sont stockées ces données -(l'emplacement des serveurs), ces dernières ne sont plus forcément sous -la même juridiction que l'émetteur~; là aussi des dispositions doivent -être prises par les utilisateurs afin de se prémunir d'un éventuel -défaut juridique ou d'un droit de regard exercé par un gouvernement mal -intentionné. - -\subsection{Effacer mes traces}\label{effacer-mes-traces} - -Les premières précautions à prendre lorsqu'on utilise un \emph{webmail} -est d'effacer ses traces une fois le travail terminé, tout -particulièrement si la consultation a lieu depuis un cybercafé ou un -ordinateur qui n'est pas à soi. En effet, puisqu'il est consulté depuis -un navigateur, ce dernier conserve certaines données. - -Il faut donc penser à~: - -\begin{itemize} -\tightlist -\item - effacer l'historique de navigation et les cookies, -\item - ne pas accepter de stocker en mémoire les mots de passe et les champs - de formulaires, -\item - penser à se déconnecter du service (clôturer la session de travail). -\end{itemize} - -Pour cela un navigateur comme -\fnurl{https://www.mozilla.org/fr/firefox/new/}{Firefox} propose des -outils efficaces~: - -\begin{itemize} -\tightlist -\item - utiliser le mode de navigation privée (menu - \texttt{Fichier\ \textgreater{}\ Nouvelle\ fenêtre\ de\ navigation\ privée}), -\item - supprimer tout l'historique en une seule fois (Menu - \texttt{Historique\ \textgreater{}\ Supprimer\ l\textquotesingle{}historique\ récent}, - sélectionner la totalité de l'intervalle à effacer et cocher toutes - les cases cookies, cache, préférences de site, etc.), -\item - installer des extensions pour limiter et monitorer la surveillance par - cookies, tel \fnurl{https://www.eff.org/fr/privacybadger}{Privacy - Badger}. -\end{itemize} - -Enfin, tous les systèmes d'exploitation (GNU/Linux, MacOs, Windows, -Android, etc.) permettent de se connecter avec un nom d'utilisateur et -un mot de passe. Que vous utilisiez un ordinateur portable, une tablette -ou un ordinateur fixe, il est primordial de ne pas laisser n'importe qui -accéder à votre session et, donc, à tous vos documents, y compris le -navigateur et son historique. Il ne faut donc pas hésiter à utiliser ce -système supplémentaire de protection qu'est l'ouverture de session avec -mot de passe. - -\subsection{Maîtriser mes connexions}\label{mauxeetriser-mes-connexions} - -La plupart des services en ligne, qu'il s'agisse de messagerie, de -réseaux sociaux ou de stockage \emph{cloud}, permettent de récupérer les -mots de passe oubliés par une procédure basée sur l'envoi automatique -d'un courriel. Bien que la procédure soit plus ou moins complexe selon -le service concerné, il est important de ne pas négliger les étapes de -sécurisation proposées lors de l'ouverture du compte~: - -\begin{itemize} -\tightlist -\item - les phrases/questions secrètes, -\item - l'adresse courriel de secours (si possible), -\item - le niveau de complexité du mot/phrase de passe. -\end{itemize} - -Concernant le mot de passe, deux erreurs courantes sont à éviter~: - -\begin{itemize} -\tightlist -\item - utiliser le même mot de passe pour plusieurs voire tous les services - en ligne utilisés, -\item - utiliser un mot de passe trop simple. -\end{itemize} - -\begin{bclogo}[couleur=gray!20,couleurBord=black,couleurBarre=gray!20,arrondi=0.3,logo=\cloche]{\hspace{0.3cm}Se connecter en deux étapes} - -Certains services proposent une méthode dite de «~validation en deux -étapes~» pour se connecter à sa boite aux lettres. Elle consiste par -exemple, à chaque connexion, d'entrer d'une part le login et le mot de -passe et, d'autre part, un code envoyé sur le téléphone portable servant -à valider cette connexion. Cela nécessite de donner son numéro de -téléphone portable à un tiers et d'avoir son téléphone à disposition -lors de la connexion, mais elle complique efficacement toute tentative -frauduleuse. -\end{bclogo} - -Reportez-vous au chapitre~\ref{chapitre5} pour de plus amples détails sur les mots de passe. - -\section{Les logiciels de messagerie (clients de courriel)}\label{les-logiciels-de-messagerie-clients-de-courriel} - -Un logiciel de messagerie est appelé un \emph{client} de courrier -électronique. Les \emph{webmails} dont il vient d'être question à la -section précédente en font partie. Ils sont reconnus comme étant des -\emph{clients légers}, parce qu'ils fonctionnent sur des serveurs en -tant qu'applications accessibles à distance. Ils se distinguent des -\emph{clients lourds}, c'est à dire des logiciels qui s'installent -localement sur un ordinateur et qui se chargent de récupérer les -messages depuis un serveur de courriels. - -Un client lourd : pourquoi utiliser un tel outil~? - -\begin{itemize} -\tightlist -\item - premièrement parce que vous n'êtes pas obligé-e d'être connecté-e en - permanence. Si vous êtes en déplacement, sans connexion, vous pouvez - toujours rédiger vos courriels, les sauvegarder et les envoyer une - fois connecté-e~; -\item - en second lieu, vous pouvez configurer votre client de courriel comme - \emph{vous} le voulez. Par exemple vous pouvez utiliser un système de - chiffrement à vous, tel GnuPG (cf.~plus bas)~; -\item - enfin, vous pouvez gérer plusieurs comptes à la fois, en gardant la - même interface. Vous pouvez même copier des messages d'un compte à - l'autre, configurer vos dossiers, etc. -\end{itemize} - -Le logiciel \fnurl{https://www.mozilla.org/fr/thunderbird/}{Mozilla -Thunderbird} est sans doute l'un des plus connus. Il est distribué sous -licence libre et sous ce nom depuis 2003, traduit dans plus de cinquante -langues, et compatible avec les systèmes d'exploitation courants tels -GNU/Linux, MacOS et Windows. Pour l'utiliser, vous devez déjà avoir une -adresse courriel (vous pouvez la créer lors de la première ouverture du logiciel). - -Au premier lancement du logiciel, ou lorsque vous souhaitez configurer -un compte de messagerie, Thunderbird cherche à détecter automatiquement -les protocoles de communication disponibles sur le serveur correspondant -à votre adresse courriel. Ainsi, si vous avez entré une adresse du type -\texttt{Jean.dupont@tictacmail.com}, Thunderbird tentera de se connecter -au serveur de messagerie \texttt{tictacmail.com} et détectera les -paramètres de connexion pour envoyer et recevoir du courrier, ainsi que -les méthodes disponibles pour le faire (les protocoles). - -Quelques explications s'imposent. - -\subsection{Configurer un client de courriel -local}\label{configurer-un-client-de-courriel-local} - -Pour envoyer et recevoir du courrier, il faut indiquer au logiciel de -messagerie les informations qui lui permettront d'opérer~: - -\begin{itemize} -\tightlist -\item - se connecter au serveur avec un nom de compte et un mot de passe, -\item - savoir avec quel protocole se connecter pour l'envoi et la réception, - et gérer les messages en fonction de cette information. -\end{itemize} - -De manière générale, pour configurer son logiciel de messagerie, vous -pouvez vous satisfaire de la configuration qui vous est proposée par -défaut. La plupart du temps le service de messagerie auquel vous êtes -abonné-e diffuse dans ses pages d'aide toutes les informations nécessaires -à la configuration d'un client de messagerie ---~adresse du serveur, -protocoles disponibles, ports à configurer, ainsi~: - -\begin{itemize} -\tightlist -\item - SMTP (\emph{simple mail transfert protocol}): utilisé pour le - transfert du courrier électronique vers le serveur de messagerie. Le - logiciel utilise le nom du compte et le mot de passe, soumet une - requête au serveur et ce dernier reçoit le message. -\item - POP (\emph{post office protocol}): il est utilisé pour récupérer les - messages depuis le serveur. Les messages sont alors - \emph{téléchargés}. Il est possible de configurer le logiciel de - messagerie avec le protocole POP pour qu'il laisse ou non une copie - des messages sur le serveur pendant une période déterminée. -\item - IMAP (\emph{internet message access protocol})~: il est utilisé pour - synchroniser les messages sur le serveur et sur le logiciel de - messagerie. Autrement dit, il «~laisse~» les messages sur le serveur - tant qu'on ne les supprime pas explicitement, il permet de travailler - directement sur le serveur, de manipuler les messages et les dossiers. -\item - SSL (\emph{secure sockets layer}) et TLS (\emph{transport layer security})~: il - s'agit de protocoles permettant de sécuriser les échanges sur - internet. Ils ne concernent pas uniquement la messagerie, mais ils - permettent de définir le niveau de sécurité avec lequel le logiciel - peut se connecter au serveur pour l'envoi et la réception du courrier - (et limiter ainsi toute possibilité d'interception). -\item - Les ports. Au moment de configurer votre client de messagerie, vous - remarquerez certainement qu'à chaque protocole et son niveau de - sécurité correspondent des ports logiques particuliers. Un port est à - considérer comme une porte (c'est d'ailleurs son sens premier) - empruntée par un programme informatique pour écouter ou émettre des - informations. Pour l'envoi, par défaut le protocole SMTP émet sur le - port 25. Mais si l'on souhaite sécuriser cet envoi avec SSL, il faut - alors utiliser les ports 587 (ou parfois 465 selon le serveur de - messagerie). Le protocole POP utilise le port 110 et de manière - sécurisée le port 993. Le protocole IMAP utilise le port 143 et de - manière sécurisée le port 993. -\end{itemize} - -\subsection{Exemple de configuration}\label{exemple-de-configuration} - -Je dispose d'une adresse courriel \texttt{jean.dupont@youkoulele.fr} et je -souhaite pouvoir utiliser ma messagerie en IMAP avec une connexion -sécurisée. - -Je me rends sur les pages de documentation de \texttt{youkoulele.fr} et -j'apprends que pour configurer en IMAP, il me faut entrer ces -informations pour une connexion SSL~: - -\begin{itemize} -\tightlist -\item - IMAP port 993 serveur \texttt{mail.youkoulele.fr} -\item - SMTP port 587 serveur \texttt{mail.youkoulele.fr} -\end{itemize} - -Lors de la configuration d'un nouveau compte avec l'assistant de -Thunderbird~: - -\begin{figure}[htbp] -\centering -\includegraphics{images/config_thunderbirdnouveaucompte.png} -\caption{Nouveau compte sur Thunderbird} -\end{figure} - -Dans la page de gestion des comptes (\texttt{Édition \textgreater{} Paramètres -des comptes})~: - -\begin{figure}[htbp] -\centering -\includegraphics{images/configthunderbird2.png} -\caption{Thunderbird~: paramètres (1)} -\end{figure} - -\begin{figure}[htbp] -\centering -\includegraphics{images/configthunderbird3.png} -\caption{Thunderbird~: paramètres (2)} -\end{figure} - -\section{Les usages}\label{les-usages} - -Tout particulièrement lorsqu'il s'agit de communiquer via une messagerie -électronique, il est primordial de respecter quelques règles d'usage. La -Nétiquette constitue l'ensemble de ces règles informelles instituées en -1995, alors même qu'à l'arrivée d'Internet dans les foyers correspondait -une multiplication exponentielle des communications par messagerie -électronique, à titre individuel ou professionnel. Toutes les -informations concernant la Nétiquette sont trouvables sur la page -Wikipédia qui lui est consacrée (voir -\fnurl{http://fr.wikipedia.org/wiki/N\%C3\%A9tiquette}{Nétiquette -(Wikipédia)}). Nous résumerons ici quelques points importants concernant -le courrier électronique. - -\subsection{Peaufiner la configuration de mon client de -messagerie}\label{peaufiner-la-configuration-de-mon-client-de-messagerie} - -Une fois entrées les informations permettant de recevoir et envoyer du -courrier, quelques petites manipulations restent encore à faire. - -Dans la section consacrée aux options de rédaction des messages (dans -Thunderbird, elle est nommée «~rédaction et adressage~», dans un -\emph{webmail} ces réglages sont accessibles via les options de votre -compte), il est important de bien choisir la manière dont les messages -seront rédigés. - -\begin{itemize} -\tightlist -\item - Utiliser le HTML pour envoyer un message vous permettra d'effectuer - une mise en page sur votre contenu comme par exemple ajouter des - couleurs, faire des effets de taille de caractères, etc. Néanmoins, si - vous envoyez tous vos messages en HTML, c'est à dire comme une page - web, soyez sûrs que votre correspondant pourra les lire dans la mise - en page que vous avez souhaitée. Selon son logiciel et la manière dont - il l'a configuré, cela ne sera peut-être pas le cas. De même, il n'est - pas nécessaire d'envoyer un message en HTML accompagné de multiples - images non pertinentes, comme une image de signature ou une image de - fond de style «~papier à lettre~». Il est donc souvent préférable de - rédiger ses messages en mode texte brut (\emph{plain text}). -\item - Lorsque qu'on répond à un message, il est de bon ton de commencer à - l'écrire \emph{en dessous} du message original. Cela est - particulièrement utile lorsque le fil de discussion comporte plusieurs - réponses~: on peut alors suivre aisément le déroulé de la conversation - de haut en bas. Ne pas hésiter, aussi, à supprimer les contenus non - pertinents dans les messages précédent le vôtre, en particulier si - vous répondez à un point précis de la discussion. -\end{itemize} - -\begin{figure}[htbp] -\centering -\includegraphics{images/configthunderbird4.png} -\caption{Thunderbird~: configuration de la messagerie (1)} -\end{figure} - -\begin{bclogo}[couleur=gray!20,couleurBord=black,couleurBarre=gray!20,arrondi=0.3,logo=\cloche]{\hspace{0.3cm}Une identité lisible} - -Il est préférable d'annoncer vos noms et prénoms dans les options qui -concernent votre identité. Ainsi votre correspondant pourra lire votre -adresse ainsi~: -\texttt{Jean\ Dupont\ \textless{}jean.dupont@youkoulele.fr\textgreater{}} -au lieu de ne voir que votre adresse électronique. Ceci est -particulièrement utile si votre adresse électronique ne reflète pas -votre identité, comme \texttt{kikoo88@youkoulele.fr}, ce qui n'est pas -conseillé sur un compte destiné à envoyer des correspondances -officielles. -\end{bclogo} - -\begin{figure}[htbp] -\centering -\includegraphics{images/configthunderbird5.png} -\caption{Thunderbird~: configuration de la messagerie (2)} -\end{figure} - -\subsection{Écrire mes messages}\label{uxe9crire-mes-messages} - -La Nétiquette citée plus haut vous permettra de retenir les pratiques -courantes et les règles de respect en matière d'écriture de -correspondance électronique. Néanmoins les quelques principes suivants -sont toujours utiles à retenir. - -Pour envoyer un courrier électronique, les champs suivants sont toujours -demandés ou proposés~: - -\begin{itemize} -\tightlist -\item - l'adresse ou les adresses du(es) destinataire(s) (champ \texttt{À:}), -\item - l'adresse ou les adresses du(es) destinataire(s) en copie (champ - \texttt{Cc:}, copie carbone), -\item - l'adresse ou les adresses du(es) destinataire(s) en copie invisible - (champ \texttt{Bcc:} ou \texttt{Cci}, Blind Carbon Copy, ou Copie - Carbone Invisible), -\item - l'objet du message, -\item - le contenu du message. -\end{itemize} - -Il faut savoir utiliser à bon escient les champs relatifs à la -destination, en particulier la copie. La plupart du temps il est inutile -d'envoyer le même message à une dizaine de personnes en supposant que, -parce qu'elles reçoivent le message, elles le retiendront ou souhaitent -obligatoirement le recevoir. Des pratiques non judicieuses sont souvent -rencontrées dans les milieux professionnels où les messages collectifs -génèrent du stress sous prétexte de dédouaner l'émetteur. Parfois, rien -ne vaut un bon vieux coup de téléphone ou tout simplement parler autour -d'un café, en passant. - -La copie invisible est elle aussi à utiliser avec discernement. Parfois -les non-dits peuvent être source de conflit, ou au contraire le choix -des destinataires visibles et invisibles peut s'avérer diplomatique. -Surtout, n'envoyez jamais un courriel à une liste de destinataires -n'ayant aucun rapport entre eux sans utiliser la copie invisible~: -certains d'entre eux vous ont donné leur adresse courriel sans pour -autant vous autoriser à la divulguer à des destinataires qui leurs sont -inconnus~! - -L'objet du message, quant à lui, doit toujours refléter efficacement son -contenu. Il permet au destinataire de classer ses messages et choisir le -bon moment pour les lire. C'est l'objet qui détermine le fil de -discussion. Si celle-ci dévie trop de son axe original, il devient -judicieux de créer un nouveau courriel et définir un objet approprié -pour créer un nouveau fil. Par facilité, ne faites pas une réponse à un -courriel pour parler d'autre chose. - -\subsection{Les pièces jointes}\label{les-piuxe8ces-jointes} - -Les pièces jointes sont les fichiers que l'on envoie à son destinataire -en même temps que le message. Là aussi, quelques précautions d'usage -s'imposent~: - -\begin{itemize} -\tightlist -\item - s'assurer que le destinataire est bien en mesure de lire le fichier. - Cela signifie qu'il faut garantir l'interopérabilité (voir chapitre~\ref{chapitre1})~: ne pas supposer que le destinataire dispose du même logiciel que - vous et dans sa même version. Par exemple, un document circulera mieux - en version PDF que dans sa version originale issue d'un logiciel qui - n'admet pas les standards ouverts. -\item - se demander si le fichier joint est vraiment utile~: son contenu ne - pourrait-il pas figurer directement dans le corps du message~? Ceci - afin de ne pas obliger le destinataire à télécharger le fichier, - l'ouvrir avec un logiciel, et faire plusieurs opérations superflues. -\item - si le fichier est uniquement destiné à un affichage sur écran, comme - une photo par exemple, il est inutile de l'envoyer dans son format - d'origine et en haute résolution. Compresser une image ne prend que - quelques instants et facilite son chargement. -\item - avant d'envoyer un fichier à plusieurs destinataires, il faut se - demander si tous les destinataires ont besoin de ce fichier, en - particulier si l'espace disponible dans leur boîte à lettres est - restreint. -\item - enfin, on pourra tout simplement se demander si l'envoi d'un fichier - en pièce jointe ne serait pas mieux remplacé par un simple lien - pointant vers ce même fichier stocké sur un serveur \emph{cloud}. En - effet, particulièrement lorsqu'il est volumineux, il est possible de - stocker un fichier dans un espace de stockage en ligne et de le rendre - accessible via une simple URL que l'on communique alors dans le - message. Dans ce cas, les destinataires peuvent alors avoir le choix - de télécharger ou non le fichier sans qu'il n'encombre leurs boîtes. - L'association Framasoft propose par exemple deux services permettant - d'échanger des fichiers en toute confidentialité~: - \fnurl{https://framapic.org/}{Framapic} vous permet d'échanger une ou - plusieurs images sous forme d'album, - \fnurl{https://framadrop.org/}{Framadrop} vous permet d'envoyer un - fichier volumineux. Dans les deux cas, ce sont de simples liens que - vous échangez par courriel. -\end{itemize} - -\section{Que dois-je savoir en plus~?}\label{que-dois-je-savoir-en-plus} - -\subsection{Chiffrement des messages}\label{chiffrement-des-messages} - -Il peut être parfois préférable d'envoyer des messages que seul le -destinataire est capable de lire. Pour cela, la plupart des logiciels -clients de courrier électronique disposent de fonctionnalités de -chiffrement. La meilleure solution est basée sur GnuGPG (Gnu Privacy -Guard), une implémentation libre de OpenPGP (Pretty good Privacy) et -fonctionne via un système de clés privées et clés publiques (voir -chapitre~\ref{chapitre5}). - -Pour utiliser ce système, certains logiciels clients disposent par -défaut de tous les outils nécessaires pour configurer et gérer vos -signatures numériques. Une extension connue pour Thunderbird se nomme -\emph{Enigmail}, et permet de chiffrer et déchiffrer les messages de -manière automatique. - -\subsection{Bien choisir mon service de -messagerie}\label{bien-choisir-mon-service-de-messagerie} - -Tout utilisateur disposant d'un abonnement auprès d'un fournisseur -d'accès Internet dispose, pour ainsi dire «~par défaut~», d'un compte de -messagerie dont le mot de passe est acquis en même temps que le contrat -qui le lie à son fournisseur d'accès. Ce compte de messagerie est utile -pour le fournisseur d'accès afin de communiquer avec son abonné. -Cependant, rien n'oblige ce dernier à utiliser ce compte. - -Plusieurs raisons peuvent justifier un autre choix~: la qualité du -service, certains protocoles (cf.~ci-dessous) non accessibles pour -l'abonnement contracté, manque de fonctionnalités, l'utilisateur dispose -déjà d'une messagerie et ne tient pas à en changer en fonction de ses -abonnements successifs, etc. - -\emph{Plusieurs idées reçues doivent pourtant être combattues~:} - -\begin{itemize} -\tightlist -\item - croire qu'un service de messagerie doit être gratuit, -\item - croire que la gratuité n'engage à rien, -\item - penser que plus le service est connu, meilleur il est, -\item - ignorer que le choix d'un hébergement (pour sa messagerie ou autre - chose) peut aussi être un choix de conviction. -\end{itemize} - -\emph{Au moins deux principes doivent guider le choix d'un service~:} - -\begin{itemize} -\tightlist -\item - l'affichage clair de ses positions vis-à-vis de la sécurité et de la - confidentialité des données que vous confiez, -\item - les fonctionnalités qu'ils propose et ce que l'on est éventuellement - prêt à payer (ou sacrifier) pour cela. -\end{itemize} - -Dans la mesure du possible, il est préférable d'évaluer la -\emph{fiabilité technique et éthique} du service, l'identité de -l'entreprise ou de l'association qui le propose, et enfin, seulement, le -coût éventuel. - -Les exemples qui suivent concernent les Conditions Générales -d'Utilisation (CGU) de trois acteurs spécialisés dans l'hébergement de -services, dont le courrier électronique. - -Extrait des CGU de l'association La Mère Zaclys (en date du -17/01/2017)~: - -\begin{quote} -La Mère Zaclys est une association loi 1901 à but non lucratif qui -propose des services en ligne tel qu'un album photos, un cloud, une -boite email, un service de partage de fichiers et un lecteur de flux -RSS. {[}\ldots{}{]} Le site est hébergé sur des serveurs français (chez -OVH à Roubaix), développé et maintenu sur le territoire français -(Franche-comté) et utilise exclusivement des logiciels libres (linux). -Le respect de votre liberté et de vos droits est pour nous une priorité -absolue. Contrairement à d'autres sites bien connus, nous garantissons -vos libertés et vos droits de propriété intellectuelle~: La mère Zaclys -ne s'accorde aucun droit d'utilisation, de reproduction, de -modification, de création d'œuvres dérivées, de communication, de -publication, de représentation, d'affichage, de distribution\ldots{} de -vos contenus. Votre contenu reste votre contenu et en aucun cas le -nôtre. -\end{quote} - -Extrait des CGU de l'entreprise MailObject (Netcourrier) (en date du -17/01/2017)~: - -\begin{quote} -L'entreprise MailObject, est une entreprise française ayant développé -une technologie du même nom. Elle fournit un service baptisé Netcourrier -(Net-C), en version gratuite (limitée) ou payante (avec plus de -fonctionnalités), pour les particuliers, les familles ou les -entreprises. Bien que proposant un service de stockage cloud, son -activité se concentre sur le domaine de la messagerie. Elle revendique, -via une -\fnurl{http://www.netcourrier.com/netc/fr/vie-privee-et-charte-net-c.php}{charte} -relative à la vie privée, son engagement pour une politique non -intrusive et la défense des principes d'autonomie et de confidentialité. -\end{quote} - -Extraits des CGU de l'entreprise Google (en date du 17/01/2017)~: - -\begin{quote} -Lorsque vous utilisez nos services ou que vous affichez des contenus -fournis par Google, nous collectons et stockons des informations dans -les fichiers journaux de nos serveurs. Cela comprend~: - -\begin{itemize} -\tightlist -\item - la façon dont vous avez utilisé le service concerné, telles que vos - requêtes de recherche. -\item - des données relatives aux communications téléphoniques, comme votre - numéro de téléphone, celui de l'appelant, les numéros de transfert, - l'heure et la date des appels, leur durée, les données de routage des - SMS et les types d'appels. -\item - votre adresse IP. -\item - des données relatives aux événements liés à l'appareil que vous - utilisez, tels que plantages, activité du système, paramètres du - matériel, type et langue de votre navigateur, date et heure de la - requête et URL de provenance. -\item - des cookies permettant d'identifier votre navigateur ou votre Compte - Google de façon unique. -\end{itemize} - -{[}\ldots{}{]} Lorsque vous utilisez des services Google, nous sommes -susceptibles de collecter et traiter des données relatives à votre -position exacte. {[}\ldots{}{]} Lorsque vous contactez Google, nous -conservons un enregistrement de votre communication afin de mieux -résoudre les problèmes que vous rencontrez. {[}\ldots{}{]} Nos systèmes -automatisés analysent vos contenus (y compris les e-mails) afin de vous -proposer des fonctionnalités personnalisées sur les produits, telles que -des résultats de recherche personnalisés, des publicités sur mesure, et -la détection de spams et de logiciels malveillants. -\end{quote} - -Les exemples qui précèdent illustrent des conceptions différentes d'une (ou plusieurs) proposition(s) de service(s). On comprend aisément que dans la mesure où ces données privées -sont exploitées, et génèrent du bénéfice, le fournisseur peut offrir -gratuitement et à l'échelle la plus large possible l'usage de ses -services. Au contraire, dans le cas où ces données privées sont -sanctuarisées par le fournisseur, faire payer le service est pour lui -l'une des seules ressources pour pérenniser son activité. C'est en -particulier le cas pour des associations qui, parce qu'elles bénéficient -de l'engagement humain des bénévoles, proposent ce genre de services -pour des coûts relativement bas visant à couvrir les frais -d'infrastructure (reportez-vous au chapitre~\ref{chapitre4} où il est question du -collectif CHATONS). - -Les structures suivantes (tableau \ref{tab:fournisseurmess}) sont des alternatives fiables et crédibles face -aux «~géants~» les plus connus du web. Elles proposent des CGU -respectueuses des données des utilisateurs. Certaines sont des -entreprises, d'autres des structures sans but lucratif. Toutes font -reposer leurs services sur des solutions de logiciels libres. Consultez -leurs CGU et prenez l'habitude de procéder ainsi pour choisir votre -fournisseur de service, en connaissance de cause. Bien sûr, un -fournisseur pourra toujours changer ces CGU, voire ne pas les respecter. -Par ailleurs, n'oubliez jamais qu'à moins d'héberger vous même votre -messagerie, vous devez faire confiance à un tiers. En la matière, la -transparence est donc nécessaire. - -\begin{table}[H] -\begin{tcolorbox}[modeltableau,tabularx={X|G|G|G}] -\textbf{Nom} & \textbf{Webmail} & \textbf{imap, pop, smtp, ssl} & \textbf{Chiffrement} \\\hline -\href{https://mail.zaclys.com/}{mail.zaclys.com} & X & X & X \\\hline -\href{https://riseup.net/fr}{riseup.net} & X & X & X \\\hline -\href{https://ouvaton.coop}{ouvaton.coop} & X & X & X \\\hline -\href{https://www.lautre.net/}{lautre.net} & X & X & X \\\hline -\href{http://www.infini.fr}{infini.fr} & X & X & X \\\hline -\href{https://www.mailoo.org}{mailoo.org} & X & X & X \\\hline -\href{http://www.netcourrier.com}{netcourrier.com} & X & X & X X \\\hline -\href{https://mailfence.com}{mailfence.com} & X & X & X X X \\\hline -\href{https://protonmail.com}{protonmail.com} & X & N & X X X \\\hline -\end{tcolorbox} -\caption{Quelques fournisseurs de messagerie. Certains proprosent aussi les protocoles Exchange/ActiveSync (Microsoft)} -\label{tab:fournisseurmess} -\end{table} - - - - -\subsection{Héberger mon propre serveur courriel}\label{huxe9berger-mon-propre-serveur-courriel} - - -Nous ne saurions terminer cette section sans mentionner l'auto-hébergement de son propre serveur de messagerie. Cette possibilité est réservée à des utilisateurs avancés et tout particulièrement attentifs aux questions de sécurité (car il faut alors assumer seul la protection de ses données). Mais peut-être autour de vous des personnes peuvent prendre en charge un tel serveur, pour le compte de la famille, d'un groupe, d'une association. - -En effet, pour -envoyer et recevoir des courriers électroniques, il n'y a aucune -obligation de stocker ses messages auprès d'un service tiers~: cela est -possible chez soi, sur un ordinateur configuré pour cela, ou sur un -serveur distant loué à cette occasion (ce qui revient à utiliser un -service tiers mais en gardant la main sur les solutions logicielles -utilisées). - -De nombreux tutoriels sont -présents sur la toile, et montrent comment configurer \emph{postfix} ou -\emph{sendmail}, des logiciels libres permettant de gérer un service de -messagerie. Par ailleurs, les facilités se sont récemment multipliées. -On peut mentionner par exemple le marché des \emph{nano-computers}, des -mini ordinateurs consommant très peu d'énergie et vendus à très bas -prix, permettant justement de mettre en place un serveur chez soi sans -mobiliser une grosse machine pour cela. Enfin des systèmes de gestion de -serveur permettent de faciliter la configuration des logiciels utilisés -pour obtenir des solutions fiables et basées sur des logiciels libres. -On peut citer \fnurl{https://yunohost.org/\#/}{Yunohost} et -\fnurl{https://cozy.io/fr/}{Cozy Cloud}, qui permettent bien plus qu'un -serveur de courriel. - -\subsection{Mes courriels avec un smartphone}\label{mes-courriels-avec-un-smartphone} - -Par défaut, les smartphones embarquent des applications de gestion de -courrier électronique. Pour les systèmes Android, il y a la plupart du -temps installés d'emblée le client de courriel choisi par le fabricant -et l'application Gmail. Les deux permettent de se connecter à un serveur -de son choix, y compris avec différents protocoles (pop, imap, -exchange, etc.), et de rapatrier son courriel. Or, les -interfaces proposées peuvent ne pas vous convenir, mais surtout vous ne -maîtrisez pas la manière dont ces courrielleurs se connectent à votre -boite à courriel. - -Des enquêtes approfondies montrent régulièrement les failles de ces -clients de courriel sur appareils mobiles. Parfois, plus que de simples -failles de sécurité, ce sont de véritables intrusions dont il s'agit, -comme le montre Charly dans -\fnurl{http://linuxfr.org/users/charlycha/journaux/mefiez-vous-des-applications-de-courriel-sur-mobile}{une -étude technique} mais néanmoins vulgarisée. L'étude de Charly concerne -deux applications connues qui ne se contentent pas de rapatrier le -courriel. En réalité, elles s'approprient et envoient vos login et mot -de passe sur les serveurs du fournisseur de l'application et -correspondent alors directement avec les serveurs de vos courriels, -qu'il s'agisse de votre boîte mail personnelle ou celle de votre -entreprise. En d'autres termes~: n'utilisez pas et n'installez pas -n'importe quel client de courriel sur votre mobile~! - -L'application libre \fnurl{https://k9mail.github.io/}{K9-Mail} fait -toutefois office de référence en la matière et bénéficie d'un -développement très actif. On peut dire que K9-Mail s'utilise et se -configure comme un client sur ordinateur. Si vous avez lu ci-dessus -l'exemple de configuration de Thunderbird, vous pouvez reproduire la -méthode avec K9-Mail, en plus de plein d'autres options. Par ailleurs, -K9-Mail intègre une autre application, -\fnurl{https://www.openkeychain.org/}{OpenKeyCHain}, qui permet -d'utiliser PGP pour chiffrer ses communications (cf.~le chapitre~\ref{chapitre5}). - -\section{La messagerie instantanée}\label{la-messagerie-instantanuxe9e} - -On appelle messagerie instantanée une forme de dialogue en ligne, -autrement nommé \emph{chat} (anglicisme francisé en \emph{tchat}). Il se -pratique par l'intermédiaire de terminaux (ordinateur fixe, smartphone, -tablette) connectés au même réseau. La messagerie instantanée se -pratique à l'aide d'un logiciel client connecté à un serveur. Le -logiciel peut être un client installé localement sur votre machine ou -bien sous forme d'un service web, comme par exemple Gtalk intégré dans -les services de Google. - -Comme c'est le cas pour le courriel, les services de messagerie -instantanée utilisent des protocoles particuliers. Certains sont des -protocoles fermés, c'est le cas de Microsoft Messenger ou -Yahoo!Messenger. Leur principal défaut est de maintenir les utilisateurs -sur les réseaux qui utilisent ces protocoles avec l'impossibilité de -pouvoir discuter avec des utilisateurs utilisant d'autres protocoles. On -dit alors qu'ils sont \emph{non-interopérables}. - -Un autre défaut est relatif à la sécurité~: en tant que systèmes fermés, -seule la confiance que vous avez envers le fournisseur du service vous -permet de mesurer le degré de confiance que vous pouvez accorder pour -transmettre des informations (texte, vidéo, audio) à travers ces -réseaux. Dans la mesure où la confiance numérique nécessite une -expertise, il vaut mieux se tourner vers des standards ouverts, qui, -eux, bénéficient de l'expertise de leurs utilisateurs. - -Ces systèmes fermés ont eu leurs heures de gloire à l'époque où les -alternatives utilisant des standards ouverts ne pouvaient pas encore -assurer toutes les fonctionnalités offertes par ces systèmes -propriétaires, comme par exemple le vidéo-chat. Aujourd'hui, certains standards -comme XMPP permettent de faire des discussions privées et de salon, supportent -la vidéo et l'audio, et utilisent des protocoles de sécurité sérieux. Pour -ce qui suit, nous allons nous pencher sur l'un des plus connus~: XMPP. - -\subsection{Utiliser XMPP}\label{utiliser-xmpp} - -Le protocole \fnurl{https://xmpp.org}{XMPP} (Extensible Messaging and -Presence Protocol) est en fait un ensemble de protocoles dédié à -l'échange en ligne (instantané ou non). Le standard ouvert XMPP a été -déployé par l'Internet Engineering Task Force (IETF) sur la base de la -reconnaissance du protocole Jabber, créé par Jérémie Miller. L'intérêt -de Jabber / XMPP était double~: - -\begin{enumerate} -\def\labelenumi{\arabic{enumi}.} -\tightlist -\item - proposer une plate-forme de serveurs de messagerie instantanée capable - de communiquer de manière transparente avec tous les autres systèmes - de messagerie (d'où l'intérêt de placer ce système sous licence libre - pour que les autres acteurs puissent s'en emparer), -\item - créer un système \emph{décentralisé}, c'est-à-dire permettre aux - utilisateurs de créer un compte sur n'importe quel serveur XMPP et - pouvoir communiquer avec tous les comptes situés sur n'importe quel - serveur (à la différence des comptes comme Skype qui nécessitent d'avoir - un compte sur un serveur en particulier). -\end{enumerate} - -L'avantage est que si un serveur tombe ou se trouve censuré (ce qui peut -arriver dans une dictature par exemple), cela n'empêche par pour autant -les échanges avec XMPP. Alors que si Microsoft décide d'arrêter ses -serveurs Skype, plus aucun compte ne pourra communiquer. - -\begin{bclogo}[couleur=gray!20,couleurBord=black,couleurBarre=gray!20,arrondi=0.3,logo=\cloche]{\hspace{0.3cm}To be or not to be} - -De nombreux acteurs industriels ou de services utilisent désormais XMPP -et le proposent aux utilisateurs. Il est possible, par exemple avec un -compte Gtalk de communiquer via XMPP. Facebook, en revanche, après avoir -ouvert temporairement l'accès à XMPP, a décidé de le fermer en 2015, -obligeant ainsi ses utilisateurs à utiliser exclusivement l'application -de Facebook. -\end{bclogo} - -Pour utiliser XMPP l'idéal est de trouver un logiciel client qui permet -de créer un compte et de l'utiliser d'emblée. Pour cela vous pouvez -choisir \fnurl{https://www.pidgin.im/}{Pidgin}, qui a aussi l'avantage de -proposer beaucoup d'autres protocoles (y compris non libres) et de -regrouper ainsi tous vos comptes de messagerie instantanée. - -Après avoir installé Pidgin, créez un nouveau compte et choisissez le -protocole à utiliser. Dans l'illustration suivante, le choix porte sur -XMPP. - -\begin{figure}[htbp] -\centering -\includegraphics{images/pidgin1.png} -\caption{Configuration de Pidgin pour utiliser XMPP} -\end{figure} - -Choisissez ensuite un nom d'utilisateur et un \emph{domaine}, -c'est-à-dire le serveur Jabber/XMPP sur lequel vous avez un compte. Si -tel n'est pas le cas, vous pouvez cocher en bas la case -\texttt{Créer\ ce\ nouveau\ compte\ sur\ le\ serveur}. - -Si vous ne connaissez pas de serveur, vous pouvez choisir l'un de ceux -proposés sur la \fnurl{https://xmpp.net/directory.php}{liste des serveurs -publics}. Par exemple~: le \fnurl{https://jabber.apinc.org/}{serveur de -l'Apinc} ou celui de \fnurl{https://jabber.lqdn.fr/}{La Quadrature du -Net}. - -Ensuite, si seulement vous en avez besoin, et selon les spécifications -expliquées sur la page du serveur que vous choisissez (par défaut ne -faites rien), allez dans l'onglet \texttt{Avancé} et choisissez la -méthode de chiffrement, le port et le proxy si besoin. - -\begin{figure}[htbp] -\centering -\includegraphics{images/pidgin2.png} -\caption{Configuration avancée de Pidgin} -\end{figure} - -\subsection{Maîtriser ma messagerie instantanée}\label{mauxeetriser-ma-messagerie-instantanuxe9e} - -De nombreuses extensions sont disponibles pour Pidgin. Elles sont -listées sur \fnurl{https://developer.pidgin.im/wiki/ThirdPartyPlugins}{la -page wiki du site officiel}. Pour une communication utilisant le -chiffrement puissant de type OTR (Off-the Record Messaging), il faut -installer le plugin \emph{Pidgin-otr} (sur votre poste comme celui du -correspondant). Pour comprendre comment procéder, vous pouvez suivre -\fnurl{https://securityinabox.org/fr/guide/pidgin/windows/}{ce tutoriel}. - -La messagerie instantanée n'est pas réservée aux postes fixes. Sur -tablette ou smartphone, il est aussi intéressant de pouvoir disposer -d'outils qui permettent de communiquer rapidement et en toute sécurité. - -L'application \fnurl{https://www.xabber.com/}{Xabber}, par exemple, est -un logiciel libre utilisant le protocole XMPP et permet de chiffrer -facilement ses conversations avec OTR. Xabber permet aussi de se -connecter à un compte Gtalk. La configuration du compte diffère très -légèrement de Pidgin. - -Dans le champ \texttt{Identifiant} entrez -\texttt{votrelogin} \texttt{@nomduserveur.xx}. Votre serveur est le serveur sur -lequel vous avez déjà un compte ou bien, si vous n'y avez pas encore de -compte, vous pouvez le créer d'emblée en cochant la case -\texttt{Créer\ un\ nouveau\ compte}. Si vous activez OTR pour ce compte, -vous serez invité à installer un second logiciel nommé -\fnurl{https://guardianproject.info/apps/orbot/}{Orbot}, si cela n'est -pas déjà fait. Il s'agit de l'application TOR pour smartphone. - -On peut noter que, en matière de messagerie instantanée sur plate-forme -mobile, l'une des applications les plus sécurisées n'utilise pas XMPP. -Elle a pour nom \fnurl{https://whispersystems.org}{Signal}, un logiciel -libre développé par Open Whisper Systems. Signal utilise un protocole -cryptographique justement nommé Signal, qui assure un chiffrement de -bout en bout~: seuls les utilisateurs de Signal peuvent lire leurs -messages chiffrés. Pour l'utiliser, il faut donc que les correspondants -disposent de la même application. Signal assure aussi de la VoIP (le -téléphone via Internet), toujours de manière chiffrée avec le protocole -\fnurl{https://fr.wikipedia.org/wiki/ZRTP}{ZRTP}. Un client Signal pour -ordinateur est aussi disponible, il se nomme -\fnurl{https://whispersystems.org/blog/signal-desktop/}{Signal Desktop} -et fonctionne en tant qu'extension à Google Chrome. - -Si vous voulez utiliser de la VoIP en utilisant XMPP (et donc votre -compte) vous pouvez utiliser l'application -\fnurl{https://jitsi.org/}{Jitsi}, un client développé par l'Université -de Strasbourg. Vous pouvez ainsi faire de la téléphonie IP depuis votre -mobile ou votre ordinateur. Comme Pidgin pour le tchat, Jitsi est aussi -ouvert à d'autres protocoles libres ou non. - -\chapter{Réseaux sociaux et hébergement}\label{chapitre4} - -Un hébergement web est d'abord une prestation de service. Il s'agit de -mettre à disposition des serveurs afin que les utilisateurs puissent y -stocker des données accessibles en tout temps (tant que le serveur -fonctionne). La première forme d'hébergement couramment rencontrée est -l'hébergement de site web~: un serveur doté d'une configuration -spécifique (serveur HTTP, système de gestion de base de données, etc.) -permet à l'utilisateur d'ouvrir un compte, et stocker des fichiers -permettant de créer un site publiquement accessible. Par exemple, le -premier site web était hébergé sur un serveur du CERN (où furent -inventées les fonctions hypertexte du World Wide Web) à la fin des -années 1990\footnote{On peut se reporter au site internet du CERN - (Conseil européen pour la recherche nucléaire,) qui contient une - rubrique dédiée «~\fnurl{https://home.cern/fr/topics/birth-web}{La - naissance du web}~».}. - -Mais aujourd'hui, la transformation des technologies web et -l'accroissement de l'offre ont fait de l'hébergement un vaste marché -économique. Des entreprises font héberger leurs données sensibles, car -il est parfois plus intéressant de ne pas s'occuper soi-même de la -sécurité de ses données et laisser le soin à d'autres professionnels de -le faire. Des hébergeurs de sites web professionnels font payer des -individus ou des entreprises pour monter leurs blogs ou leur vitrines de -vente en ligne. Certains hébergements sont spécialisés dans le stockage -de données à distances, d'autres sont spécialisés en plate-forme de -blog, d'autres encore dans la gestion de base de données distantes, etc. -Certaines formes d'hébergement sont gratuites ou offrent des -fonctionnalités et en font payer d'autres (ce qu'on appelle les offres -premium). Enfin, des hébergeurs libres et associatifs existent et, -moyennant une adhésion, proposent des services web plus ouverts. - -Si vous voulez avoir votre profil sur un réseau social, héberger vos -données, ouvrir votre blog personnel, partager vos photos et autres -documents, synchroniser vos contacts ou vos notes personnelles tout en -les partageant ou non\ldots{} il est assez difficile de s'y retrouver -dans toute l'offre disponible. En fait, il est surtout difficile de ne -pas céder aux sirènes des solutions gratuites proposées par des grandes -firmes dont on peut questionner les véritables intentions. Nous allons -tenter dans ce chapitre d'y voir plus clair. - -\section{Connaître mes réseaux sociaux}\label{connauxeetre-mes-ruxe9seaux-sociaux} - -Les services de réseaux sociaux, tout comme les services de messagerie -(cf.~le chapitre~\ref{chapitre3}), sont des services d'hébergement. Dans le -cas d'un hébergement de messagerie, vos courriels sont envoyés et copiés -sur un serveur, relayés sur un autre serveur de réception et sur le -terminal de votre correspondant lorsqu'il se connecte. Sur un service de -réseau social classique (car nous verrons qu'il existe des alternatives) -vous envoyez et copiez des contenus sur un serveur et ces contenus -seront accessibles pour qui se connecte au même serveur. - -Il existe plusieurs sortes de services de réseaux sociaux~: Facebook, -Google+ et LinkedIn sont des réseaux relationnels, Instagram un réseau -pour photos et images, Youtube et Periscope sont spécialisés dans la -vidéo\ldots{} Tous ces services ont en commun le fait de centraliser les -données et les connexions de manière à rendre captifs les internautes et -générer une économie de l'attention en insérant des publicités, en -analysant les comportements et en investissant par ailleurs sur des -produits en lien avec ces comportements (comme par exemple des -applications pour mobile ou des voitures sans chauffeur). - -\begin{bclogo}[couleur=gray!20,couleurBord=black,couleurBarre=gray!20,arrondi=0.3,logo=\cloche]{\hspace{0.3cm}Préférez des réseaux décentralisés} - -Le problème de la centralisation des réseaux sociaux, c'est la -possibilité que leur accès soit compromis. Ce fut le cas par exemple en -Égypte lors des manifestations populaires en hiver 2011 contre le -gouvernement de Hosni Moubarak~: les accès aux réseaux sociaux furent -coupés par les autorités de manière à empêcher les relais d'appels à -manifestations. Alors que les réseaux sociaux peuvent être d'excellents -outils démocratiques, la centralisation des accès en est le talon -d'Achille. -\end{bclogo} - -Un autre souci lié à l'usage de certains réseaux sociaux est la -surveillance systématique des échanges. Si cette surveillance ne -s'apparentait qu'à une analyse des contenus dans un but purement -commercial, on pourrait à la rigueur considérer que les utilisateurs -agissent en connaissance de cause et que, si leurs intimités numériques -viennent à devenir publiques ou prises en otage par piratage, c'est leur -responsabilité qui serait tout autant en jeu que celle du fournisseur de -service. Hélas, ce n'est pas le cas. Comme le rapportent régulièrement les -enquêtes journalistiques, des programmes de surveillance scannent -\emph{tous} les échanges, y compris privés, en vue d'identifier ceux qui -présentent éventuellement des risques sécuritaires~: c'est le cas -notamment de Facebook, pour qui fut identifié en 2012 un programme -interne de surveillance (c'est-à-dire qui relève de la propre initiative -de Facebook). Officiellement ce programme servait à identifier les -risques terroristes, les réseaux pédophiles, etc., de manière à redorer -le blason de Facebook auprès des autorités. Mais quelle société -démocratique est prête à voir tout son courrier ouvert et lu au nom de -la surveillance sécuritaire, pour sauvegarder les intérêts d'une firme -privée ou même pour la raison d'État~? - -Si vous désirez utiliser un service de réseau social, posez-vous donc la -question de savoir ce que vous êtes prêt à sacrifier pour cela. Si la -démocratie, la liberté d'expression et votre intimité sont importants à -vos yeux, il est vivement encouragé d'étudier quelques alternatives aux -réseaux centralisés. En voici quelques unes. - -\subsection{Diaspora*}\label{diaspora} - -Que faut-il pour qu'un réseau ne soit jamais coupé~? Il faut que chacun -de ses nœuds soit relié à tous les autres et que chaque nœud fasse -passer l'information indifféremment vers l'un ou l'autre de ses -semblables (ses pairs). Imaginons qu'un logiciel de réseau social soit -installé sur chacun de ces nœuds~: vous obtenez Diaspora*, c'est-à-dire -un réseau social constitué de multiples instances interconnectées. - -Vous vous inscrivez sur une instance de votre choix et tous les membres -des autres instances peuvent lire votre billet (si vous l'avez rendu -public). Chaque instance peut avoir des conditions d'utilisation -différentes, mais quoi qu'il en soit, vous pouvez communiquer entre tous -les membres du réseau. - -Ainsi Diaspora* est une alternative sérieuse et complète par rapport à un -service comme Facebook. Par ailleurs des passerelles permettent de -poster un billet sur Diaspora* et de le relayer automatiquement sur -Facebook ou Twitter. Concernant les profils, ceux-ci sont chiffrés~: -faire d'un autre abonné un «~ami~» consiste à lui fournir une clé de -chiffrement PGP (cf.~le chapitre~\ref{chapitre5}) lui permettant de déchiffrer -votre profil privé ou vos messages privés. En d'autres termes, Diaspora* -est un réseau social libre, décentralisé et sécurisé. Pour choisir un -nœud (\emph{pod}) Diaspora où vous pouvez vous inscrire et commencer à -partager des contenus, rendez-vous sur la -\fnurl{https://podupti.me/}{liste Poduptime}. Par exemple, le \emph{pod} -maintenu par l'association Framasoft se nomme Framasphère, accessible -sur \fnurl{https://framasphere.org/}{framasphere.org} et regroupe -beaucoup d'utilisateurs. - -\begin{figure}[htbp] -\centering -\includegraphics{images/framasphere_screen.png} -\caption{Framasphère est un nœud Diaspora*} -\end{figure} - -\subsection{Movim}\label{movim} - -Movim est un réseau social décentralisé basé sur les mêmes principes que -Diaspora* mais utilisant une technologie différente~: le protocole XMPP -(nous en parlons dans le chapitre~\ref{chapitre3}). La force de Movim est d'avoir -réussi à donner une dimension web à un protocole de messagerie. Ainsi, -si vous disposez d'un compte Jabber/XMPP (très facile d'en créer un~!), -vous pouvez aussi vous connecter à Movim en utilisant les mêmes -identifiants. Une autre solution consiste à choisir un nœud sur le site -\fnurl{https://movim.eu/}{movim.eu}. - -\begin{figure}[htbp] -\centering -\includegraphics{images/movim-screen.png} -\caption{Un mur sur Movim} -\end{figure} - -\subsection{Seenthis}\label{seenthis} - -Seenthis (accessible sur \fnurl{https://seenthis.net}{seenthis.net}) est -un service de microblogging, c'est à dire qu'il permet des publications -courtes ou très courtes, mais néanmoins plus longues que ce que permet -Twitter. Seenthis se revendique être une plate-forme de -\emph{short-blogging}, spécialisée dans la publication de textes très -courts, de liens, d'images avec une légende, etc. Chaque billet peut -aussi être commenté par les lecteurs. Par ailleurs, Seenthis ne vise pas -à remplacer Twitter~: des ponts existent entre les deux services et l'on -peut émettre vers Twitter tout en postant un billet sur Seenthis. Là où -Seenthis constitue une alternative, c'est pour deux raisons~: - -\begin{enumerate} -\def\labelenumi{\arabic{enumi}.} -\tightlist -\item - Le \fnurl{https://github.com/seenthis/seenthis}{code source est - disponible}, ce qui implique que le logiciel peut être installé - ailleurs et être fréquenté par une autre communauté. Ainsi, par - exemple Les Amis du Monde Diplomatique ont une plate-forme Seenthis, - nommée \fnurl{http://zinc.mondediplo.net/}{Zinc}, qui leur est dédiée - (mais tout le monde peut s'y inscrire). Néanmoins, Seenthis n'est pas - un réseau décentralisé comme Diaspora* car il n'y a pas de - correspondance entre différentes instances de Seenthis. Ainsi, une - instance de Seenthis reste un réseau centralisé pour la communauté qui - la fréquente. -\item - Les - \fnurl{https://seenthis.net/fran\%C3\%A7ais/mentions/article/propri\%C3\%A9t\%C3\%A9-intellectuelle}{conditions - d'utilisation de Seenthis} (sur - \fnurl{https://seenthis.net}{seenthis.net}) engagent le service à ne - revendiquer aucun droit sur les billets publiés qui restent propriété - de leurs auteurs, libres de les éditer ou les récupérer par la suite - ou encore d'y apposer une licence libre. -\end{enumerate} - -\begin{figure}[htbp] -\centering -\includegraphics{images/seenthis-screen.png} -\caption{Auteurs et thèmes suivis sur Seenthis} -\end{figure} - -\subsection{Mastodon}\label{mastodon} - -Enfin, il faut signaler \fnurl{https://joinmastodon.org/}{Mastodon}, qui est à la fois un réseau social et une plate-forme de micro-blogage. Décentralisé à l'image de Diaspora*, il permet d'écrire des mini-billets (de 500 caractères maximum). Le réseau Mastodon est constitué de multiples instances, dont les inscriptions sont ouvertes, d'autres qui ne le sont pas. Chaque instance propose ses propres conditions d'utilisation, dont il est conseillé de prendre connaissance avant de s'inscrire. Une fois connecté, l'utilisateur peut choisir différents canaux~: ses propres abonnements, le canal de l'instance locale, le canal général (transversal). Des applications mobiles pour Mastodon existent, tels Tusky pour Android et Amaroq pour iOS. - -En 2017, soit à peine un an après sa création, Mastodon regroupe des milliers d'utilisateurs, dont beaucoup ont déserté Twitter, préférant migrer vers cette solution libre. L'originalité de Mastodon est de permettre la naissance d'instances dont on choisi le degré d'ouverture au reste du réseau. Par exemple, une entreprise peut très bien installer Mastodon uniquement pour un usage interne, ou bien ouvrir son instance mais n'autoriser les inscriptions que pour ses membres. - -On peut noter que la DINSIC (la Direction interministérielle du numérique et du système d'information et de communication) a ouvert \fnurl{https://mastodon.etalab.gouv.fr}{sa propre instance Mastodon}, destinée aux agents publics de l'État Français, un cas d'usage assez rare pour être souligné. Framasoft a ouvert l'une des plus importantes instances francophones, nommée \fnurl{https://framapiaf.org}{Framapiaf}, de même pour le magazine \fnurl{https://social.numerama.com}{Numérama}, \fnurl{https://mamot.fr/}{La Quadrature du net}, et bien d'autres. - - -\begin{figure}[htbp] -\centering -\includegraphics{images/mastodon.png} -\caption{Instance Framapiaf pour Mastodon} -\end{figure} - - - - - - -\section{Le cloud}\label{le-cloud} - -Le \emph{cloud computing} ou l'informatique en nuage consiste à utiliser -les capacités de serveurs distants en passant par le réseau. Le principe -est déjà très ancien~! C'était le but des premiers ordinateurs que de -servir de ressources centrales. Les gros ordinateurs \emph{mainframe} -qui furent construits dès les années 1950 accomplirent essentiellement -ce rôle, de plus en plus avec le réseau Internet naissant à la fin des -années 1960, mais en perte de vitesse avec l'apparition de -l'informatique personnelle dans les années 1980. Ces ordinateurs étaient -dotés d'une particularité~: ils avaient un système d'exploitation à -\emph{temps partagé}, c'est-à-dire que plusieurs utilisateurs -(notamment, à cette époque, des instituts de recherche, des banques, des -ingénieurs aéronautiques\ldots{}) pouvaient se connecter simultanément -et effectuer des opérations en profitant du temps de calcul disponible. -C'est l'une des caractéristiques qui a fait le succès du système Multics -(Multiplexed Information and Computing Service), qui deviendra Unix plus -tard. - -Aujourd'hui, il existe un \emph{cloud computing} destiné au grand -public\footnote{Une autre application - moins connue, consiste à faire du temps partagé «~à l'envers~», - c'est-à-dire profiter des capacités de calcul des ordinateurs - personnels pour centraliser ensuite les résultats. C'est l'exemple de - \fnurl{http://boinc.berkeley.edu/}{BOINC} (Berkeley Open Infrastructure - for Network Computing), une plate-forme de calcul distribué~: les - utilisateurs installent sur leur ordinateur un petit programme qui - tourne en tâche de fond lorsque l'ordinateur est peu ou pas utilisé. - Cela crée un potentiel de puissance de calcul énorme qui peut alors - être mis à disposition de la recherche dans différents domaines - (médecine, astrophysique, mathématiques\ldots{}).}. Il consiste essentiellement à~: - -\begin{itemize} -\tightlist -\item - héberger des fichiers (documents, photos, vidéos\ldots{}), -\item - utiliser des logiciels en ligne (traitement de texte, espaces - collaboratifs\ldots{}), -\item - synchroniser des bases de données (des contacts, agendas\ldots{}). -\end{itemize} - -\begin{figure}[htbp] -\centering -\includegraphics{images/IBM_System360_Mainframe.jpg} -\caption{IBM System/360 au Computer History Museum. Wikipedia Commons. -Erik Pitti. CC-By} -\end{figure} - -\section{Enjeux de sécurité}\label{enjeux-de-suxe9curituxe9} - -Si vous choisissez de stocker des données à distance, que ce soit pour -effectuer des sauvegardes ou pour partager des fichiers, cela implique -d'évaluer le niveau de confiance que vous êtes prêt à accorder à un -tiers. Dans le chapitre~\ref{chapitre5} nous expliquons qu'il est parfois souhaitable de chiffrer ses fichiers, notamment avec PGP. Lorsque vous stockez des -fichiers sur l'ordinateur d'un tiers, vous avez tout intérêt à les -chiffrer, au moins pour que personne d'autre que vous ne puisse les -lire. - -L'exemple du service Dropbox illustre bien le problème du stockage de -données personnelles à grande échelle. En vrac~: - -\begin{itemize} -\tightlist -\item - en janvier 2017, des utilisateurs s'aperçoivent que des fichiers - supprimés depuis longtemps réapparaissent, ce qui sous-entend que même - si l'utilisateur décide de supprimer des données, Dropbox les - conserve\footnote{Voir Gabriele Porrometo, - «~\fnurl{http://www.numerama.com/tech/227760-dropbox-justifie-la-soudaine-reapparition-de-fichiers-supprimes-sans-vraiment-convaincre.html}{Dropbox - justifie la soudaine réapparition de fichiers supprimés sans - vraiment convaincre}~», \emph{Numerama}, 27/01/2017.}~; -\item - en été 2016, Dropbox demande à ses abonnés de changer de mot de - passe~: des pirates ont réussi à exploiter une faille connue depuis - 2012 et 68~millions de comptes (deux tiers des utilisateurs) ont ainsi - vu leurs identifiants piratés\footnote{Voir Guillaume Serries, - «~\fnurl{http://www.zdnet.fr/actualites/dropbox-68-millions-d-identifiants-dans-la-nature-mais-tout-va-bien-39841266.htm}{Dropbox~: - 68 millions d'identifiants dans la nature, mais tout va bien}~», - \emph{ZDNet}, 31/08/2016.}~; -\item - au printemps 2016, Dropbox sort une nouvelle version dont - l'application locale s'immisce dans le système d'exploitation des - utilisateurs au risque de créer de graves failles de - sécurité\footnote{Voir Christophe Lagane, - «~\fnurl{http://www.silicon.fr/le-nouveau-dropbox-une-menace-pour-la-securite-148684.html}{Le - nouveau Dropbox, une menace pour la sécurité~?}~», - \emph{Silicon.fr}, 30/05/2016.}. -\end{itemize} - -Il faut considérer que les difficultés rencontrées par le service -Dropbox ne sont pas extraordinaires. Leurs conséquences, en revanche, -sont particulièrement problématiques~: en créant un immense silo de -données pour des millions d'utilisateurs, un tel service s'expose -naturellement à un taux élevé de risque d'erreur et à moult convoitises. -Dans ces conditions, centraliser toujours plus de données -et créer un monopole n'est pas un facteur de confiance. - -D'un autre côté, choisir un hébergeur associatif ou auto-héberger ses -données implique aussi des risques (que l'association soit dissoute, que -les mesures de sécurité ne soient pas d'un niveau suffisant, etc.) , -mais ils seront d'autant moindres que la structure à laquelle on accorde -sa confiance reste assez proche de ses utilisateurs pour leur garantir -l'effort et le conseil. Quant à l'auto-hébergement, il est sage de -prendre la mesure de ses propres compétences. - -\section{Quels services choisir~?}\label{quels-services-choisir} - -Avant de choisir un service dans les nuages, il faut réfléchir à l'usage -que l'on souhaite en faire. S'il s'agit par exemple de prendre quelques -notes, un service d'édition de documents en ligne ne sera pas pertinent. -S'il s'agit de partager les dernières photos de famille avec les membres -éloignés, on peut préférer un dépôt chiffré d'album photo à télécharger -plutôt que leur affichage dans un réseau social pour lequel vos -correspondants n'ont pas forcément de compte. - -Dans le cadre de sa campagne \emph{Dégooglisons Internet}, l'association -Framasoft propose une foule de services en ligne. Le but est de -démontrer que les logiciels libres sur lesquels sont basés ces services -constituent autant d'alternatives sérieuses aux monopoles des services -web. Les destinataires sont de deux ordres. D'abord le grand public, qui est ainsi initié à d'autres outils et invité à d'autres usages plus respectueux des données personnelles. Ensuite, les individus (les experts), les associations, les entreprises, qui sont invités à essaimer ces services pour le plus grand nombre. - -Tel est l'objectif du mouvement impulsé par Framasoft nommé -\fnurl{https://chatons.org/}{CHATONS}, le Collectif des Hébergeurs -Associatifs, Transparents, Ouverts, Neutres et Solidaires. Chaque -«~Chaton~» est une association (ou éventuellement un groupement) qui -propose des services ouverts et basés sur des logiciels libres, tout en -respectant un modèle de charte et un manifeste visant à garantir une -éthique respectueuse des intimités numériques. - -Ainsi, avant de trouver un «~Chaton~» autour de chez vous, tester les -outils proposés par Framasoft vous permettra de trouver un hébergement -en ayant une idée plus précise de vos besoins. Rendez-vous donc sur le -site de la campagne -\fnurl{https://degooglisons-internet.org/}{Degooglisons-internet.org}. - -Bien sûr, il reste la question du coût. Alors que les grands monopoles -proposent des solutions gratuites (avec un ajout de fonctionnalités -payantes), il peut sembler difficile de payer pour une offre \emph{a -priori} similaire. Cependant, les organisations offrant des alternatives -libres et éthiques, le font généralement sur des modèles économiques -différents~: - -\begin{itemize} -\tightlist -\item - organisme à but non lucratif, basé sur le bénévolat, le don et de - faibles cotisations visant essentiellement à couvrir les frais - d'infrastructures, -\item - petites sociétés utilisant des solutions de logiciels libres et - contribuant au code source des logiciels~: elles offrent généralement - des tarifs tout à fait abordables pour les particuliers avec des - garanties plus que suffisantes. -\end{itemize} - -Par conséquent, en guise de choix, s'il faut éviter les offres gratuites -offertes par les géants du web, il faut néanmoins avancer un peu -d'argent (quelques euros par an, généralement), tel est le prix de la -gratuité du libre~: le soutien aux communautés qui les font vivre. - -\subsection{Stocker et synchroniser mes fichiers, mes contacts, mon -agenda}\label{stocker-et-synchroniser-mes-fichiers-mes-contacts-mon-agenda} - -Plusieurs logiciels libres permettent de créer un service \emph{cloud} -permettant de stocker des données à distance et capable d'effectuer des -tâches de synchronisation entre plusieurs machines (votre ordinateur, -votre tablette, votre smartphone, etc.). - -L'un des plus connus se nomme \fnurl{https://nextcloud.com/}{Nextcloud}. -Après l'ouverture d'un compte, vous pouvez télécharger un client sur -votre machine, qui se chargera de synchroniser un dossier local avec un -serveur distant~: ce que vous mettez dans ce dossier sera stocké à -distance, si vous modifiez le contenu à distance ou sur une autre -machine disposant du même accès, votre dossier sera d'autant modifié. -Nextcloud dispose d'une interface web, d'un client local, et d'une -application smartphone. - -Le service \fnurl{https://framadrive.org/}{Framadrive}, de Framasoft, -propose une instance gratuite pour des comptes limités à 2 Go de -données~: vous pouvez ainsi tester Nextcloud. Une autre instance, -\fnurl{https://framagenda.org}{Framagenda}, propose un service Nextcloud -spécialement dédié à la gestion de ses contacts et agendas. - -Si vous désirez utiliser un service plus conséquent, vous pouvez ouvrir -un compte auprès d'un acteur comme par exemple l'association -\fnurl{https://www.zaclys.com/}{La Mère Zaclys} ou l'entreprise -\fnurl{https://indiehosters.net/page/home}{Indiehosters}. Ce ne sont que -deux exemples~: vous pouvez trouver sur -\fnurl{https://chatons.org/}{Chatons.org} une liste d'acteurs prêts à -vous accueillir~! - -\begin{figure}[htbp] -\centering -\includegraphics{images/nextcloud_interfaceweb.png} -\caption{Interface web de Nextcloud} -\end{figure} - -\subsection{Pour correspondre et -collaborer}\label{pour-correspondre-et-collaborer} - -Les services infonuagiques connaissent une grande popularité dans le -domaine de la collaboration en ligne. Pour votre association, par -exemple, il est intéressant de pouvoir disposer d'un service de sondage -pour s'accorder sur la date de la prochaine assemblée générale, ou -encore d'un tableau blanc où il est possible d'écrire à plusieurs un -compte-rendu de manière à gagner du temps et ne pas se confondre dans de -multiples échanges de courriel. Vous pouvez aussi avoir besoin d'envoyer -à vos correspondants des fichiers encombrants comme vos dernières photos -de vacances. De multiples applications dans les nuages sont ainsi -disponibles et visent à faciliter le travail en commun et les échanges -de données. - -Là encore Framasoft, dans le cadre de la campagne -\fnurl{https://degooglisons-internet.org/}{Degooglisons-internet.org}, -vous propose une trentaine de services différents, basés sur des -solutions de logiciels libres, et même avec un système de chiffrement. -Parmi ces services, vous trouverez certainement le logiciel qui répondra -à votre besoin et vous pourrez en faire profiter vos correspondants. -Citons-en quelques-uns en guise d'illustrations~: - -\begin{itemize} -\tightlist -\item - \fnurl{https://framadate.org/}{Framadate}~: pour ouvrir des sondages - afin de convenir à plusieurs d'une date de rendez-vous, ou créer un - petit sondage classique~; -\item - \fnurl{https://framapic.org/}{Framapic}~: pour envoyer de manière - sécurisée des images ou un album d'images à vos correspondants~; -\item - \fnurl{https://framapad.org/}{Framapad}~: un traitement de texte où - l'on peut collaborer en temps réel à plusieurs pour écrire un document - avec, en prime, un module de discussion instantanée~; -\item - \fnurl{https://framatalk.org/}{Framatalk}~: un système sécurisé de - conversation vidéo~; -\item - \fnurl{https://framalistes.org/}{Framalistes}~: pour créer et gérer une - liste de discussion par courriel~; -\item - \fnurl{https://framaforms.org/}{Framaforms}~: pour réaliser des - enquêtes en ligne~; -\item - \fnurl{https://framadrop.org/}{Framadrop}~: pour envoyer de lourds - fichiers à vos correspondants~; -\item - etc. -\end{itemize} - -\begin{bclogo}[couleur=gray!20,couleurBord=black,couleurBarre=gray!20,arrondi=0.3,logo=\cloche]{\hspace{0.3cm}Cherchez votre chaton} -Le mouvement initié par le collectif -\fnurl{https://chatons.org/}{Chatons.org} a pour objectif d'essaimer ce -type de service, sur la base d'une charte de confiance. Vous pouvez -ainsi trouver un «~Chaton~» qui vous fournira ce dont vous avez besoin. -\end{bclogo} - -\begin{figure}[htbp] -\centering -\includegraphics{images/framadate.png} -\caption{Framadate, un service Framasoft} -\end{figure} - -\section{L'auto-hébergement}\label{lauto-huxe9bergement} - -Nous ne saurions terminer cette partie sans mentionner la question de -l'auto-hébergement de services. En effet, si vous disposez d'un serveur, -qu'il soit chez vous ou loué chez un fournisseur, vous pouvez héberger -vos propres solutions basées sur des logiciels libres. Pour vous y -aider, chaque service Framasoft dispose d'une rubrique «~cultivez votre -jardin~» qui décrit la manière d'installer les logiciels concernés. Cela -suppose néanmoins un certain niveau d'expertise qu'il vous faut -acquérir, bien que cela soit accessible assez facilement. Un autre -prérequis est de pouvoir disposer d'un temps suffisant pour maintenir un -serveur à jour et assez d'assurance pour en garantir la sécurité. - -Des systèmes peuvent néanmoins vous aider à accomplir ces tâches -apparemment fastidieuses. En voici deux~: - -\begin{itemize} -\tightlist -\item - \fnurl{https://yunohost.org/}{Yunohost}~: il permet de déployer - plusieurs logiciels à la demande, héberger ainsi ses propres - services et éventuellement inviter d'autres utilisateurs à en - profiter~; -\item - \fnurl{https://cozy.io/fr/}{Cozycloud}~: il s'agit d'une solution - intégrée de plusieurs logiciels déployés ensemble pour offrir un éventail - de services personnels. -\end{itemize} - -Quel que soit votre choix, entre héberger vos propres services ou -utiliser ceux d'un tiers, ces solutions démontrent la grande -malléabilité des logiciels libres qui permettent de décentraliser les -offres et remodeler les chaînes de confiance entre les utilisateurs et les -hébergeurs. - -\chapter{Suis-je en sécurité sur Internet~?}\label{chapitre5} - -En matière de lutte contre les malveillances informatiques, les -pratiques des utilisateurs se sont plutôt améliorées ces dernières -années. Cela fait suite en particulier aux révélations successives sur -la surveillance des firmes et l'affaire du programme de surveillance de -la NSA -(\fnurl{https://fr.wikipedia.org/wiki/PRISM_(programme_de_surveillance)}{PRISM}) -révélé par Edward Snowden. La confiance des utilisateurs envers les -plates-formes de service et les logiciels en général a largement baissé, -ce qui a causé en retour un effet sur le marché~: la recherche -individuelle de solutions sécurisées et une modification des stratégies -sécuritaires par les entreprises et collectivités. Cela s'est même -concrétisé par l'ouverture d'une économie de la confiance avec, comme -paradoxe, le fait que les mêmes firmes impliquées dans l'affaire PRISM -cherchent à proposer (démontrer) des solutions visant à garantir d'une -manière ou d'une autre la confidentialité des utilisateurs. Mais ces -derniers ne sont pas dupes. - -Évidemment, ces stratégies n'auraient aucune raison d'être poursuivies -si, d'un autre côté, les attaques malveillantes ne se multipliaient pas, -menées tant par de puissantes organisations du crime comme par des -gagne-petits au pouvoir de nuisance multiplié par les possibilités -informatiques. En effet, nombre d'entreprises et collectivités de toutes -tailles font régulièrement l'objet de tentatives de -\fnurl{https://fr.wikipedia.org/wiki/Hame\%C3\%A7onnage}{fishing}, -attaques par -\fnurl{https://fr.wikipedia.org/wiki/Attaque_par_d\%C3\%A9ni_de_service}{déni de service} et de -\fnurl{https://fr.wikipedia.org/wiki/Ransomware}{ransomware}. Les -individus en sont aussi les victimes, très régulièrement, qu'il s'agisse -d'arnaques ou de virus. Les pièces jointes dans les courriels sont trop -vite ouvertes\ldots{} - - -\begin{bclogo}[couleur=gray!20,couleurBord=black,couleurBarre=gray!20,arrondi=0.3,logo=\info]{\hspace{0.3cm}Prism-break} -En matière de protection individuelle, le site internet multilingue -\fnurl{https://prism-break.org/fr/}{Prism Break} est un bel exemple de -mise à disposition de solutions logicielles alternatives pour les -utilisateurs qui comprennent de cette manière combien le logiciel libre -est important dans ce domaine, à la fois pour se protéger des -malveillances mais aussi assurer la confidentialité, la vie privée, face -à n'importe quelles intrusions. -\end{bclogo} - -Qu'entend-on par sécurité~? En fait, il s'agit de trois choses~: - -\begin{enumerate} -\def\labelenumi{\arabic{enumi}.} -\tightlist -\item - \emph{la disponibilité des données}~: pouvoir accéder à ses données - lorsqu'on le souhaite et ne pas toujours dépendre d'un tiers, fût-il - de confiance~; -\item - \emph{l'intégrité des données}~: il faut que les données ne soient pas - modifiées sans autorisation~; -\item - \emph{la confidentialité}~: les données qui m'appartiennent ainsi que - les informations que l'on pourrait inférer de mes usages ne doivent - pas être accessibles sans autorisation. -\end{enumerate} - -Ces trois domaines concernent respectivement~: - -\begin{enumerate} -\def\labelenumi{\arabic{enumi}.} -\tightlist -\item - \emph{l'usage de services sur Internet}, en particulier les services liés à - la messagerie, au \emph{cloud} et aux réseaux sociaux. À la différence - de services centralisés (comme Facebook), la décentralisation de ce - type de services (comme le réseau Diaspora*) permet de réduire les - risques de rupture (ou de censure). Il faut donc bien choisir les - services que l'on utilise en connaissance de cause. Pour ce qui - concerne l'usage informatique en local, la bonne santé de votre - machine, les mises à jour des logiciels, et tout un ensemble de - pratiques rigoureuses vous permettront d'assurer la disponibilité de - vos données~; -\item - \emph{la neutralité des réseaux}~: le transfert de données ne doit pas - modifier les données. Que diriez-vous si votre facteur ouvrait votre - courrier, faisait une copie de la lettre pour réduire sa taille (au - risque de perdre de la lisibilité ou même en coupant des parties), - prenait une enveloppe plus petite et vous donnait le résultat~? C'est - pourtant ce que certains fournisseurs d'accès souhaiteraient faire au - nom de l'économie de bande passante. Bien sûr, l'intégrité de vos - données est plus directement menacée par les actes de malveillance - (piratage). Pour s'en prémunir, il faut là encore employer des - logiciels sûrs, lutter contre les vulnérabilités aux virus, ne pas - utiliser des services qui modifient les contenus ou se les - approprient~; -\item - \emph{les risques liés à la surveillance}, qu'il s'agisse de votre voisin, de - firmes ou d'États. Ce genre de pratique ne met pas seulement en jeu - les intimités numériques, car si nous nous sentons surveillés, nous - censurons automatiquement nos propos. Dès lors, on comprend pourquoi - la liberté d'expression est l'une des premières libertés menacées par - la surveillance sur Internet. -\end{enumerate} - -Toutes ces questions peuvent être regroupées en une seule~: \emph{quelle -confiance puis-je accorder aux dispositifs numériques, aux logiciels et -aux services que j'utilise~?} Cette confiance ne peut pas être aveugle. -Par exemple, même si vous avez \emph{a priori} confiance envers votre -fournisseur d'accès, il est probable que vous seriez plus serein si les -courriels que vous envoyez à votre banquier étaient chiffrés de manière -à ce que seul votre banquier puisse les lire. - -La confiance nécessite donc à la fois une expertise et des pratiques. Or -tout le monde n'a pas l'expertise suffisante pour évaluer la confiance -envers les logiciels et les services. C'est pour cela que l'utilisation -d'outils libres, dont le code source est ouvert, permet de faire reposer -cette expertise sur un collectif nombreux de pairs plutôt que sur une -personne, entreprise ou institution. Il en va de même pour les services -en ligne, qui peuvent reposer sur des solutions de logiciels libres. -Quant aux pratiques, ce sont d'elles que nous allons parler dans ce -chapitre~: la sécurisation des dispositifs, le chiffrement, la -protection des accès. - -\begin{bclogo}[couleur=gray!20,couleurBord=black,couleurBarre=gray!20,arrondi=0.3,logo=\cloche]{\hspace{0.3cm}Rejoignez la SecNumacadémie} - -En France, l'Agence Nationale de la Sécurité des Systèmes d'Information (ANSSI) a lancé un MOOC (\textit{massive open online course}) ouvert à tous dans le but de sensibiliser à la sécurité informatique. Très pédagogique et progressif, ce MOOC est largement conseillé pour prendre la mesure des enjeux de la sécurité et des bonnes pratiques, au quotidien comme dans la vie professionnelle. Une adresse : \texttt{secnumacademie.gouv.fr}. -\end{bclogo} - - - -\section{Protéger mes dispositifs}\label{protuxe9ger-mes-dispositifs} - -Qu'il s'agisse de votre ordinateur ou de votre smartphone, vous ne -souhaitez pas que n'importe qui puisse accéder à vos données. Si les -systèmes d'exploitation insistent bien souvent sur la création d'un mot -de passe garantissant l'ouverture des sessions, trop nombreux sont les -utilisateurs qui passent outre cette recommandation. Ce n'est cependant -qu'une faille parmi d'autres contre les malveillances dont vous pouvez -faire l'objet. - -\subsection{Sessions et profils d'utilisateurs}\label{sessions-et-profils-dutilisateurs} - -Oui, il est pénible de devoir entrer un mot de passe à chaque fois que -l'on souhaite accéder à sa machine après un temps d'inactivité. Mais il -faut avouer que le prix est peu cher payé pour un premier niveau -élémentaire de protection. Qui a perdu son téléphone portable sans -sécurisation de la session\ldots{} n'a plus qu'à trouver très vite un -autre moyen de se rendre sur les différents services utilisés pour en -changer les accès, tout en espérant que le voleur n'ira pas trop -fouiller dans les photos et autres documents stockés dans la mémoire. - -Toutefois, si vous avez perdu votre ordinateur, tablette, ou smartphone, -avec ou sans mot de passe, vous avez de toute façon un grand intérêt à -changer vos autres accès~: quel que soit le système d'exploitation, les -mots de passe de session, voire les mots de passe d'administration, sont -en général assez rapides à contourner ou à cracker. - - -\begin{bclogo}[couleur=gray!20,couleurBord=black,couleurBarre=gray!20,arrondi=0.3,logo=\cloche]{\hspace{0.3cm}Profils et sessions} - -Prenez le temps de réfléchir à l'usage que vous comptez faire de votre -machine. Si d'autres utilisateurs en auront l'accès, utilisez des -profils, c'est-à-dire des comptes personnels qui permettront d'une part -à tous les utilisateurs d'organiser leurs sessions comme ils -l'entendent, et d'autre part leur éviteront d'accéder aux données des -uns et des autres. -\end{bclogo} - -Même si vous êtes seul-e à utiliser votre machine, créez au moins deux -comptes~: un compte disposant des droits d'administration et un autre -dédié à l'utilisation (un -\fnurl{https://fr.wikipedia.org/wiki/Profil_utilisateur}{profil -utilisateur}). Il sera ainsi plus difficile pour un programme -malveillant d'installer des fichiers visant à modifier le système. Cette -recommandation vaut en particulier pour les possesseurs de Windows. En -effet, sous GNU/Linux cette précaution élémentaire est déjà comprise -dans le quotidien~: un profil d'administration est toujours nécessaire -pour installer un logiciel ou modifier un «~fichier système~». Notez -aussi que le navigateur Firefox dispose d'une fonction dédiée à la -gestion de profils. - -\subsection{Virus et antivirus}\label{virus-et-antivirus} - -Un logiciel antivirus est conçu pour identifier et neutraliser des -programmes dont le comportement est suspect. En réalité, les virus -informatiques ne sont qu'une catégorie de -\emph{\fnurl{https://fr.wikipedia.org/wiki/Logiciel_malveillant}{logiciels -malveillants}}. Cette catégorie regroupe~: - -\begin{itemize} -\tightlist -\item - \emph{les virus}~: ils se répliquent et se propagent à l'aide de - fichiers «~hôtes~» (par exemple, un document texte que l'on ouvre par - habitude). Ils peuvent infecter l'amorçage de la machine, les - fichiers, le fonctionnement des programmes déjà existants\ldots{} Un - comportement classique d'un virus bien fait consiste à s'installer et - effectuer des tâches de manière dissimulée (son fonctionnement passe - inaperçu aux yeux de l'utilisateur). Un virus peut ainsi chiffrer un - disque dur, envoyer son contenu quelque part et demander une rançon. -\item - \emph{les vers}~: ils se propagent d'eux-mêmes de machine en machine, - notamment à travers le réseau (courrier électronique, partage de - fichier, etc.) -\item - \emph{les chevaux de Troie}~: ils utilisent des portes dérobées (ou en - ouvrent selon les besoins). Par exemple le développeur d'un logiciel - peut laisser une entrée discrète (\emph{backdoor}) au programme pour - surveiller l'usage du logiciel ou même en prendre le contrôle. Nombre - d'entreprises pratiquent ce genre de chose, à commencer par les plus - connues comme Microsoft\footnote{Par exemple, pour optimiser sa stratégie de - propagation de Windows 10, Microsoft a en effet utilisé des portes - dérobées sous Windows 7 et 8 en modifiant un avertissement indiquant - que la mise à jour vers Windows 10 devait être faite, même si - l'utilisateur l'avait préalablement refusée. Pour cela une porte - dérobée a été utilisée à l'insu des utilisateurs. Voir Gregg Keizer, - «~\href{http://www.computerworld.com/article/3012278/microsoft-windows/microsoft-sets-stage-for-massive-windows-10-upgrade-strategy.html}{Microsoft - sets stage for massive Windows 10 upgrade strategy}~», - \emph{ComputerWorld}, 07/12/2015.}. -\end{itemize} - -\subsubsection{Fonctionnement}\label{fonctionnement} - -Les logiciels antivirus agissent donc à de multiples niveaux sur la machine. Ils disposent habituellement de deux «~grandes fonctionnalités~»~: les tâches de \emph{firewall}\footnote{Littéralement un \emph{pare-feu}~: il consiste à mettre en place une politique de sécurité réseau. Il est toutefois préférable d'utiliser un \emph{firewall} plus complet que les seules fonctions offertes par les logiciels anti-virus, même si elles couvrent les besoins immédiats.} qui consistent à surveiller les activités réseaux de la machine et les tâches d'anti-virus proprement dites, c'est à dire la surveillance des exécutions des programmes et des emplois de fichiers. Mais il leur faut généralement -une base de donnée dans laquelle ils puisent des éléments de comparaison -pour identifier les virus. C'est la raison pour laquelle un logiciel -antivirus doit impérativement être mis à jour, c'est-à-dire lui -permettre de télécharger, depuis le site du fournisseur, les -\emph{dictionnaires} qui permettent d'avoir toutes les informations -utiles. - - -Une seconde stratégie utilisée par les logiciels antivirus, consiste non -plus à identifier des logiciels malveillants mais à assister -l'administrateur de la machine pour éviter les infections. Pour cela, il -peut bloquer par défaut toute exécution de programme à l'exception de -ceux pour lesquels l'administrateur a donné son accord. - -Une troisième stratégie consiste en une méthode d'apprentissage. Les -virus, à moins d'être extrêmement bien dissimulés, ont par définition un -comportement suspect. Par exemple ils peuvent solliciter un programme en -cours d'exécution ou tenter de supprimer / modifier des fichiers de -manière inhabituelle. Le logiciel antivirus émet alors une alerte à -l'intention de l'utilisateur. - -Vous noterez que les deux dernières stratégies supposent une expertise -de la part de l'utilisateur. Bien souvent, c'est la principale faille du -système~: submergé par les alertes, ou ne sachant exactement quelle -attitude employer (souvent parce que le manuel de l'antivirus n'est pas -lu ou trop complexe), l'utilisateur clique un peu au hasard. - -\subsubsection{Que choisir~?}\label{que-choisir} - -Dans l'ensemble, un logiciel antivirus performant est nécessaire~: c'est -toujours à l'utilisateur qu'il revient de choisir. Voici quelques -éléments de comparaison~: - -\begin{itemize} -\tightlist -\item - l'efficacité~: le logiciel dispose-t-il d'une base de données reconnue - comme étant importante et fiable~? Qui est son créateur et est-il - reconnu~? Il faut se renseigner~; -\item - l'impact de l'antivirus sur les performances de la machine~: souvent - gourmands en ressources mémoire, car ils fonctionnent en permanence, - les antivirus ne sont pas tous logés à la même enseigne~; -\item - la complexité du fonctionnement et le paramétrage~: les néophytes ne - devraient pas utiliser des antivirus trop complexes, au risque de - bénéficier d'une efficacité dégradée~; -\item - l'interface~: est-il facile d'utiliser le programme~? les alertes - sont-elles claires et assez compréhensibles pour ne pas perdre trop de - temps~? -\end{itemize} - -Le choix d'un logiciel antivirus dépend donc de plusieurs paramètres. -Mais nous en avons volontairement omis~: le fait que le logiciel soit -libre ou non. S'il n'est pas libre, vous devez faire confiance au -fournisseur, sans toutefois oublier que, si le logiciel est payant et -non-libre, son prix n'est pas forcément un gage d'efficacité, et si le -logiciel est gratuit et non-libre, il faut se demander comment il est -maintenu et par quels moyens. - -Comme nous le répétons souvent~: l'un des avantages des logiciels -libres, c'est que le développement est communautaire. Un logiciel libre -qui dispose d'une grande communauté, est un logiciel réputé efficace. -C'est le cas de \fnurl{http://www.clamav.net/}{Clamav}, un logiciel qui -dispose, grâce aux remontées de la communauté des utilisateurs, d'une -des plus grandes bases de données de signatures virales, c'est-à-dire -autant de moyens d'identifier un virus. - -Clamav est d'abord un logiciel créé pour les systèmes de type Unix -(GNU/Linux ou MacOS). En effet, les serveurs de courriels sont -majoritairement installés sur de tels systèmes, il est dès lors -important de protéger les utilisateurs, en particulier ceux sous -Windows. Or, comme la base de données de Clamav est libre, d'autres -anti-virus libres, destinés en particulier à Windows, peuvent en -profiter~: - -\begin{itemize} -\tightlist -\item - \fnurl{http://moonsecure.net/df/}{MoonSecure Antivirus}~: il offre une - protection en temps réel avec une interface simple (bien qu'un peu - vieillotte), tout en profitant de la base de Clamav. On peut bien sûr - scanner des fichiers et des disques à la demande~; -\item - \fnurl{http://www.clamwin.com/}{Clamwin} assure l'analyse des fichiers - et disques en profitant lui aussi de la base de Clamav par contre il - n'offre pas de protection en temps réel. Cette dernière tâche est - assurée par son binôme, - \fnurl{http://clamsentinel.sourceforge.net/}{Clam Sentinel}. -\end{itemize} - - -\begin{bclogo}[couleur=gray!20,couleurBord=black,couleurBarre=gray!20,arrondi=0.3,logo=\cloche]{\hspace{0.3cm}Les anti-virus ne peuvent pas tout} -L'usage seul de ces logiciels (libres ou non) n'est en aucun cas une -garantie contre les logiciels malveillants. Dans tous les cas, le -meilleur moyen de s'en prémunir consiste à adopter des pratiques~: ne -pas télécharger ni installer de logiciels depuis d'autres sites que les -sites officiels, se méfier des applications gratuites et non-libres (et -même si elles sont libres, renseignez-vous sur la communauté), ne vous -rendez pas sur des sites douteux, n'ouvrez pas les pièces jointes à vos -messages sans d'abord en identifier la nature et la provenance, etc. -\end{bclogo} - -\subsection{Logiciels malveillants et systèmes d'exploitation}\label{logiciels-malveillants-et-systuxe8mes-dexploitations} - -Pour le résumer en quelques mots, un virus informatique exploite des -failles de sécurité. Dans ce domaine, aucun système d'exploitation n'est -invulnérable. Cependant, tous les systèmes d'exploitation ne sont pas -logés à la même enseigne. - -Protéger un ordinateur sous Windows suppose une attention de tous les -instants et requiert, en plus de bonnes pratiques d'usage, une méfiance -quasi-systématique, y compris vis-à-vis du système lui-même qui dépend -des stratégies de la firme Microsoft. On peut en dire autant de la part -de MacOS et d'autres systèmes. Sur une page intitulée -«~\fnurl{https://www.gnu.org/proprietary/proprietary.html}{Le logiciel -privateur est souvent malveillant}~», le site de la Free Software -Foundation recense des exemples de malveillance de la part des logiciels -privateurs~; on peut y faire une recherche selon le type de malveillance -et le nom des firmes. - -Ces griefs adressés aux systèmes d'exploitation propriétaires ne -signifient pas pour autant que les systèmes libres comme GNU/Linux sont -exempts de toute vulnérabilité. La différence, c'est que profitant -d'une transparence dans le développement communautaire, lorsqu'une -faille est découverte, il faut très peu de temps pour la corriger et -propager la correction. Par exemple la vulnérabilité Heartbleed, -qui concernait les clés de chiffrement sous Linux (risque de les voir -récupérées par des personnes mal intentionnées), a été découverte en -mars 2014, rendue publique le 7 avril et les correctifs étaient déjà -disponibles. - -On peut s'amuser à comparer Windows et GNU/Linux pour comprendre -pourquoi le second est mieux protégé par défaut contre les -malveillances. Sur le tableau \ref{tab:comparWL} on voit que les risques sont finalement assez similaires, qu'on utilise Windows ou GNU/Linux~: tout est une question de pratique, de savoir activer des fonctionnalités ou ne pas le faire, etc. Pour autant, à moins d'être obligé-e d'utiliser Windows, il vaut mieux employer une distribution GNU/Linux non pas pour être sûr d'être protégé-e contre les malveillances, mais pour avoir à disposition un système plus difficilement attaquable. - -Une autre opportunité, non pour se prémunir des logiciels malveillants -mais pour protéger ses données, consiste à les \emph{chiffrer}. -Aujourd'hui les systèmes d'exploitation proposent la possibilité de -chiffrement dès l'installation~: Windows avec Bitlocker, MacOS avec -Filevault, les distributions GNU/Linux avec l'outil de partitionnement -LVM qui propose une option de chiffrement, etc. Les outils ne manquent -pas. Et à condition de bien comprendre ce que l'on fait et de ne pas -perdre ses clés, chiffrer ses données est encore le meilleur moyen de se -protéger à la fois contre les malveillances et contre les surveillances. -Encore faut-il ne pas se contenter de chiffrer les données sur son -disque, mais de considérer tout transfert d'information comme une faille -potentielle. - -\begin{table}[H] -\begin{tcolorbox}[modeltableau,tabularx={Y|K}] -\textbf{Windows} & \textbf{GNU/Linux} \\\hline -Il faut créer volontairement au moins un compte utilisateur pour éviter que toutes les sessions ne se fassent avec des droits d'administration. & Les droits d'administrateur et les droits d'utilisateur sont d'emblée différenciés~: un utilisateur n'a pas les droits de modification des fichiers système. \\\hline -Les installations domestiques de Windows sont similaires, elles différencient seulement en fonction de la version de Windows (votre Windows 7 ressemblera au Windows 7 de votre voisin). & Il existe une multitude de distributions GNU/Linux différentes, avec des arrangements très différents (deux installations de la même distribution peuvent être configurées à tel point qu'elles ne se ressemblent plus). \\\hline -Les fichiers exécutables peuvent être installés facilement (leur blocage n'est pas activé par défaut). & Il faut déclarer les droits d'exécution d'un fichier avant de l'utiliser comme exécutable. \\\hline -Les failles mettent parfois plusieurs mois à être corrigées. & Grande réactivité de la communauté, failles corrigées rapidement. \\\hline -Le système est une boîte noire et n'est auditable que par les ayants-droits. & Le code source est ouvert, un maximum d'acteurs, y compris de haut niveau, peuvent identifier les failles. \\\hline -Il existe un \emph{store} (magasin) d'application mais l'installation de programmes est souvent anarchique~: trop de téléchargements et d'installations se font en récupérant des fichiers exécutables sur des sites peu sûrs. & La plupart des utilisateurs utilisent les dépôts officiels de leur distribution GNU/Linux pour installer des programmes, mais les utilisateurs utilisent parfois des dépôts non-officiels sans en évaluer le risque. -\end{tcolorbox} -\caption{Comparatif (non exhaustif et un peu partial) entre les deux OS} -\label{tab:comparWL} -\end{table} - - - -\section{Chiffrer mes données}\label{chiffrer-mes-communications} - -Le chiffrement des communications est d'abord un outil. Lorsque vous -communiquez avec votre banque ou que vous effectuez un paiement en -ligne, vous devez vous assurer que vos communications sont bel et bien -chiffrées de manière à ne pas courir le risque de les voir interceptées -et copiées. N'oubliez pas~: ce que vous faites en ligne, les messages -que vous envoyez comme les sites que vous visitez, tout cela est une -affaire de copie de contenus sur des serveurs et sur votre ordinateur -(voir la section Navigation). Par exemple, même si \emph{a priori} vous -pouvez faire confiance aux employés de votre fournisseur d'accès, vous -ne pouvez pas leur faire suffisamment confiance pour leur confier dans -un courriel écrit en clair votre numéro de carte bancaire ou des -informations relatives à votre état de santé. - -Ajoutons à cela que, depuis l'affaire Snowden, nous savons que des -firmes et des États mettent en œuvre des pratiques de surveillance des -communications des citoyens~: que ces pratiques évoluent, qu'un -gouvernement soit ou non assez totalitaire pour retenir contre vous des -informations \emph{a priori} anodines, que vous le souhaitiez ou non, il -est important que les citoyens puissent avoir à leur disposition un -moyen d'échanger des informations de manière secrète\ldots{} cela -s'appelle de l'intimité numérique, exactement comme lorsque vous fermez -la porte de votre salle de bain. Pour avoir accès à un moyen de garder au secret certaines de vos données et de vos correspondances dans le monde numérique, et donc exercer pleinement votre droit à la vie privée, vous devez savoir comment chiffrer des informations. C'est l'objet des prochaines sections. - -\subsection{Pretty Good Privacy}\label{pretty-good-privacy} - -Avant de commencer les explications, allons droit au but. De cette manière, si les prochains paragraphes vous semblent laborieux, l'essentiel vous sera familier. - -Imaginez une boîte, avec une serrure, qui enferme vos informations. Chacun de vos correspondants peut placer quelque chose dans cette boîte grâce à une formule et vous seul avez la clé qui permet de l'ouvrir. Tel est, de manière simplifiée et imagée, la méthode de chiffrement que nous allons expliquer, sauf que nous n'allons parler que de clés. Accrochez-vous ça commence. - - -L'un des premiers outils de chiffrement accessible à tous se nomme -Pretty Good Privacy (PGP). Ce programme fut créé par Philip Zimmermann. -Son histoire débute dans les années 1980 et le combat qui fut mené -consista essentiellement à rendre PGP légal. On comprend aisément qu'un -gouvernement considère de manière plutôt négative le fait que des -citoyens puissent avoir accès à un système qui, par des lois -mathématiques, rend impossible la lecture des messages qu'ils -s'envoient. - -PGP appartient à la \fnurl{http://www.pgp.com}{PGP Corporation} or, en -1998, cette société a rompu avec le principe de livrer le code source -pour assurer une révision par les pairs. En 2002, le code source est de -nouveau disponible, mais entre temps, PGP a donné lieu à un standard -proposé par l'IETF (Internet Engineering Task Force) nommé Open-PGP et -décrit dans la \fnurl{https://www.ietf.org/rfc/rfc2440.txt}{RFC 2440}. -Suivant ce standard, le système GnuPG (Gnu Privacy Guard) fut créé, entièrement libre et par ailleurs agréé par Philip Zimmermann. - -PGP est un système de chiffrement à clé publique\footnote{Pas vraiment, il est en fait hybride~: comme on le verra plus loin, PGP - utilise un couple clé privée / clé publique mais ajoute à cela - l'empaquetage des messages avec leur clé de déchiffrement et ce sont - ces clés que les clés publiques et privées permettent de récupérer - pour déchiffrer les messages.}. Pour comprendre de quoi il s'agit, il -faut comparer ce système à un système de chiffrement symétrique. Tout le -monde connaît le chiffrement symétrique~: il s'agit d'utiliser la même -clé pour chiffrer et déchiffrer un message. Fred envoie un message à -Katy et le chiffre avec une table de correspondance entre les lettres de -l'alphabet et des symboles. Katy et Fred doivent avoir la même clé (la -table de correspondance) pour pouvoir chiffrer et déchiffrer leurs -messages. Tout le problème est de faire circuler cette table / clé de -manière secrète entre Katy et Fred. - - - - -Le chiffrement à clé publique (ou asymétrique) présente un avantage -majeur sur le chiffrement symétrique~: \emph{seules circulent les clés -publiques et le déchiffrement appartient au destinataire seulement}. En -effet, au départ, les correspondants se créent chacun un couple de clé -publique et clé privée. Si les clés publiques peuvent être connues et -utilisées par n'importe qui, les messages chiffrés avec une clé publique -ne peuvent être déchiffrés qu'avec la clé privée qui lui correspond. Le -problème de la circulation des clés de chiffrement est résolu. - - -Le cas de PGP est particulier dans ce domaine, puisqu'il ne se contente -pas de chiffrer avec une clé publique. Une autre clé entre en jeu~: la -clé de session. Lorsque je chiffre un texte avec PGP, je le chiffre avec -une clé de session générée sur le moment et de manière aléatoire. -Ensuite, cette clé de session et le message chiffré sont compressés -ensemble et chiffrés avec la clé publique du destinataire. Le -destinataire, quant à lui, récupère la clé de session grâce à sa clé -privée et peut alors déchiffrer mon message. - -Pourquoi, en quelque sorte, ce chiffrement en deux temps~? En fait, ce -que le destinataire déchiffre en premier, c'est l'en-tête du message, de -manière à l'authentifier. Ensuite seulement il déchiffre le message -grâce à la clé de session récupérée. Cela rend PGP très sûr~: chaque -message possède sa propre clé et chaque clé de message doit correspondre -à la clé privée du destinataire. Si je veux casser PGP, il faut que je -casse à chaque fois le couple clé privée / clé de session. - -Par ailleurs, une autre fonction de PGP est l'authentification de -l'expéditeur (la signature). Pour chaque message envoyé, PGP applique -une fonction de hachage avec la clé privée de l'expéditeur~: c'est le -calcul d'une empreinte unique (un sceau) qui est jointe au texte et qui -fait que, lorsque je reçois le message, je peux comparer cette empreinte -avec celle que je calcule, cette fois, avec la clé publique de -l'expéditeur. Je suis alors certain qu'il vient de mon correspondant. - -Ajoutons à cela l'avantage de la compression. Un texte, aussi chiffré -soit-il, peut toujours présenter des régularités. On peut par exemple en -tirer des statistiques sur l'emploi de tels caractères et en inférer du -sens. Souvenez-vous des magazines de votre enfance où vous deviez -déchiffrer un message en trouvant les lettres des mots selon leurs -fréquences et leurs probabilités. La compression d'un message permet de -briser cette «~logique~» et ajoute un surplus de sécurité. - -\begin{figure}[htbp] -\centering -\includegraphics{images/pgpfonctionnement.png} -\caption{Fonctionnement de PGP} -\end{figure} - -Dans les faits, si l'explication de PGP n'est pas évidente, son -utilisation est assez simple. On peut se contenter de cette -affirmation~: chaque correspondant possède une clé privée et une clé -publique~; les clés publiques sont diffusées et tous les messages -chiffrés à l'aide de la clé publique d'un correspondant ne pourront être -déchiffrés qu'avec la clé privée de ce correspondant. Dans -l'illustration, Fred envoie un message chiffré à l'aide de la clé -publique (K) de Katy. Cette dernière peut alors déchiffrer le message -avec sa clé privée (K'). Pour lui répondre, Katy utilisera la clé -publique de Fred et ce dernier pourra déchiffrer à l'aide de sa clé -privée à lui. Ce que fait PGP en sous-main (hachage, empreinte et clé de -session) peut parfaitement être invisible pour l'utilisateur. - -\begin{figure}[htbp] -\centering -\includegraphics{images/FredEtKaty_pgp.png} -\end{figure} - - - -\subsection{À quoi bon ?}\label{aquoibon} - - - -Chiffrer un contenu, cela revient à utiliser une clé de chiffrement pour faire deux choses : rendre impossible la compréhension d'une information et l'authentifier. En effet, une clé de chiffrement peut être utilisée à la fois pour chiffrer tout un message et pour le signer. Une telle clé est donc à la fois un outil servant le secret des communications mais aussi une solution permettant d'instaurer un système de confiance entre l'émetteur et le récepteur. - -Générer soi-même ses clés et envoyer les clés publiques à des correspondants suppose de maîtriser les flux d'informations. Recevoir un message chiffré ne signifie pas pour autant que l'on puisse faire confiance à l'émetteur. Si je reçois un message chiffré de la part d'un correspondant inconnu qui utilise ma clé publique pour le faire, je n'ai pas d'autre moyen que de faire connaissance avec ce nouveau correspondant pour m'assurer de son identité et faire confiance à l'avenir aux futurs messages qu'il m'enverra. De même, le contenu d'un message chiffré n'est pas forcément doté de bonnes intentions. Il faut donc bien séparer plusieurs notions : le chiffrement, la sécurité et l'authentification. - -Une solution consiste à faire reposer la confiance sur une \fnurl{https://fr.wikipedia.org/wiki/Autorité\_de\_certification}{autorité de certification}. Il s'agit la plupart du temps de sociétés dûment contrôlées qui endossent le niveau de confiance en proposant des certificats. Par exemple, l'ANSSI tient à jour \fnurl{https://www.ssi.gouv.fr/administration/reglementation/confiance-numerique/le-reglement-eidas/liste-nationale-de-confiance}{sur son site} la liste des prestataires de confiance contrôlés par l'État Français. De tels prestataires proposent leurs services afin de permettre d'établir des connexions de confiance sur Internet (nous le verrons plus loin dans ce chapitre à propos de HTTPS) c'est-à-dire qu'ils \emph{certifient} des clés de chiffrement. S'il est certifié par une autorité, l'interlocuteur qui m'envoie un contenu chiffré grâce à ma clé publique est \emph{a priori} digne de confiance. Non seulement ce qu'il m'envoie est confidentiel mais, en plus, la forme engage la responsabilité d'un tiers de confiance. - - - -Bien sûr, tous les utilisateurs n'ont pas à acheter de tels services pour leurs besoins quotidiens. Il est possible d'instaurer une chaîne de confiance à partir du moment où les clés sont partagées de manière à ce que chaque correspondant sache à quoi s'en tenir. Un message circulant en clair sur le réseau sera toujours susceptible d'être lu par un tiers. S'il est chiffré, il peut toujours y avoir une usurpation dans la manipulation des clés. Qu'il y ai ou non l'intervention d'une certification, tous les contenus qui circulent sur un réseau sont par nature sujets au risque de piratage. - -Loin d'annuler complètement ces risques, un chiffrement a l'avantage de renforcer significativement le niveau de confidentialité d'un message. Même si je signe moi-même ma clé de chiffrement, sans certification attestée par une autorité, et que je confie ma clé publique à mes correspondants, les messages chiffrés que je recevrai ou que j'enverrai auront au moins l'avantage de pas être compréhensibles par quelqu'un d'autre. En théorie, si tout le monde appliquait le chiffrement des contenus échangés sur Internet, le niveau de sécurité global serait largement multiplié, même si tout le monde n'utilise pas les services d'autorités de certification. Évidemment, chiffrer ses propres fichiers et dossiers, voire son disque dur tout entier, est une précaution qui permettrait de lutter efficacement contre tous les virus de type \emph{ransomware} (qui chiffrent les données pour lesquelles les pirates réclament de l'argent en échange de la clé). Ceci sans compter la possibilité de conserver en sécurité des données sensibles ou tout simplement personnelles (les copies de vos papiers d'identité, vos feuilles d'impôt, vos ordonnances médicales, etc.) - -En d'autres termes, le chiffrement à l'aide de logiciels libres (en particulier GnuPG --~GNU Privacy Guard, l'implémentation du standard OpenPGP) permet de mettre à disposition de tous un moyen d'exercer efficacement le secret des correspondances. Il importe de prendre conscience que cette possibilité est fragile et parfois menacée, alors qu'elle relève clairement de l'exercice du droit à la vie privée si cher aux pays démocratiques. - -Pour utiliser des solutions de chiffrement, on peut faire confiance à un service de messagerie incluant d'emblée un système de chiffrement, on peut aussi gérer soi-même ses clés de chiffrement et utiliser des logiciels spécifiques. Tout repose sur deux approches complémentaires des outils : évaluer le degré de confiance et intégrer le chiffrement dans des pratiques quotidiennes. - - - -\begin{figure}[htbp] - \centering - \includegraphics{images/cleparcoeur.png} - \caption{Utiliser ses clés avec discernement} -\end{figure} - -\subsection{Faire confiance}\label{faire-confiance} - -Nous avons vu dans le chapitre \ref{chapitre3} que pour envoyer des courriels, beaucoup de services proposent des messageries en ligne, comme des \emph{webmail}. Certains prestataires offrent de surcroît la possibilité de chiffrer les messages à l'aide d'un système de chiffrement asymétrique comme PGP. - -Or, nous avons vu aussi que pour chiffrer de cette manière, il faut générer deux clés, l'une privée (à mettre en lieu sûr) et l'autre publique (à distribuer). Dès lors, si de tels services proposent le chiffrement des contenus en un clic pour leurs utilisateurs, ils présentent l'avantage de largement simplifier l'usage du chiffrement, mais en retour il leur faut gagner la confiance des utilisateurs qui leur confient la gestion à la fois de la clé privée et de la clé publique. De ce point de vue, tous les services ne sont pas égaux, et certains sont bien moins sérieux que d'autres. Il est important d'en évaluer la portée. - -Nous pouvons citer \fnurl{https://protonmail.com}{Protonmail}, un service de \emph{webmail} gratuit (pour les fonctionnalités de base) construit sur des logiciels libres. Il propose un chiffrement dit «~de bout en bout~», c'est-à-dire que seuls les correspondants peuvent chiffrer et déchiffrer leurs messages, et l'hébergeur n'a aucun moyen de les lire. Conscientes du problème lié à la gestion des clés dont Protonmail endosse la responsabilité et la confidentialité, les équipes de Protonmail ont mis au point un système qui permet de chiffrer les clés privées sur les serveurs de manière à ce que seul l'utilisateur-propriétaire de la clé puisse l'utiliser. L'ensemble du dispositif de Protonmail fait l'objet d'audits réguliers, dans une transparence relative que peu de services du genre sont en mesure de fournir. Dès lors, si le choix revient toujours à savoir où placer le curseur de confiance, et si tous les utilisateurs sont loin d'être capables d'auditer un tel service, les efforts de transparence et la lecture des avis éclairés peuvent constituer de bons indices. - -Un tiers peut donc gérer complètement les clés nécessaires à un chiffrement efficace. Le prix à payer en retour de cette facilité d'usage, c'est la confiance. Mais d'autres systèmes de communication permettent de concentrer chez l'utilisateur les outils du chiffrement tout en permettant d'automatiser l'usage à un point tel qu'il passe presque inaperçu. - -C'est le cas de l'application \fnurl{https://signal.org/}{Signal}, une application mobile (il existe une version autonome pour ordinateur) qui permet les communications écrites, audio et vidéo. Signal utilise un protocole particulier et libre, justement nommé \emph{Signal Protocol}, qui permet un chiffrement de bout en bout. Ce protocole est utilisé par d'autres applications connues, et son histoire atteste largement de son efficacité. Du point de vue de l'utilisation, le chiffrement s'effectue de manière totalement automatisée entre les correspondants. Du point de vue de l'utilisateur, au lieu d'avoir à évaluer la confiance au regard du niveau de transparence d'un hébergeur, il doit placer sa confiance dans la structure du logiciel et la communauté des développeurs de ce logiciel libre. - -Avec ces deux exemples, on peut conclure que la confiance en un logiciel de communication chiffrée ne s'attribue pas à la légère. Pour certains utilisateurs dans des contextes politiques ou sociaux dangereux, il peut même s'agir d'une question de vie ou de mort. Même si l'utilisateur n'est ni développeur ni spécialiste de la sécurité informatique, au moins trois questions complémentaires se posent : - -\begin{enumerate} -\item le dispositif repose-t-il sur un ou plusieurs logiciels ou protocoles libres ? dans ce cas, les évaluations et les qualifications sont publiquement disponibles ; -\item le développement ou le service hébergé sont-ils transparents vis-à-vis des utilisateurs ? dans ce cas, il s'agit de savoir si l'on peut adhérer aux principes et aux intentions des prestataires ou de la communauté de développement ; -\item existe-t-il suffisamment de documentation, assez vulgarisée et claire sur les fonctionnalités des dispositifs et leurs évaluations ? dans ce cas, c'est un gage d'honnêteté. -\end{enumerate} - - - -\begin{bclogo}[couleur=gray!20,couleurBord=black,couleurBarre=gray!20,arrondi=0.3,logo=\cloche]{\hspace{0.3cm}La surveillance est une industrie} - -Un récent \fnurl{https://framablog.org/2017/10/25/comment-les-entreprises-surveillent-notre-quotidien}{rapport de Cracked Lab}, intitulé \emph{Corporate surveillance in Everyday Life} (2017) a examiné les pratiques de l'industrie de l'exploitation des \emph{big datas}. Il en ressort que si le pistage et le profilage des individus est une activité extrêmement lucrative, elle profite aussi de développements technologiques spectaculaires et devient un instrument de contrôle social. Chiffrer ses données, c'est tâcher de laisser le moins de traces possible de son quotidien mais c'est aussi protéger la vie privée de tous. -\end{bclogo} - -Quels que soient ses choix en matière de communication, il est nécessaire de savoir chiffrer par soi-même des informations, à commencer par des contenus qui n'ont pas forcément vocation à être échangés. En effet, un service aussi efficace soit-il peut toujours fermer ses portes de manière plus ou moins contrainte (ce fut le cas du service de courriel \fnurl{https://fr.wikipedia.org/wiki/Lavabit}{Lavabit} en 2013), et un logiciel «~clés en mains~» peut toujours manquer de développement et devenir obsolète, ce qui est vrai aussi pour les protocoles. Là encore, c'est vers des dispositifs comme GnuPG (OpenPGP) que nous devons nous tourner. Nous allons voir que dans l'usage quotidien du chiffrement asymétrique, il n'y a rien de bien complexe, et que grâce à quelques assistants bien faits, chiffrer est réellement à la portée de tous. - -\subsection{Le chiffrement par l'exemple}\label{le-chiffrement-par-l-exemple} - -Concrètement, lorsque je chiffre un contenu, qu'est-ce que je demande à la machine ? Après avoir installé GnuPG qui me permet d'utiliser un standard de chiffrement PGP, je lui demande : - -\begin{enumerate} -\item de faire un calcul sur les informations à chiffrer et utiliser une clé publique pour cela (la mienne ou celle d'un destinataire), -\item de produire un résultat (des données) illisible sans la clé, -\item de signer ce résultat, toujours à l'aide de ma clé, c'est-à-dire créer une empreinte à chiffrer pour produire une signature dont l'authentification sera possible avec ma clé ou celle d'un destinataire (cette signature permet aussi de vérifier l'intégrité du contenu chiffré et savoir s'il a été modifié). -\end{enumerate} - -Pour accomplir ces opérations, votre machine a besoin d'un programme qui lui permet d'effectuer les calculs et d'utiliser un protocole de chiffrement. Pour utiliser OpenPGP, la première étape consiste à se procurer le logiciel GnuPG\footnote{Vous pouvez aussi lire avec intérêt cet article de David Legrand, «~\href{https://www.nextinpact.com/news/98509-openpgp-et-gnupg-25-ans-chiffrement-pour-tous-ce-quil-faut-savoir-avant-sy-mettre.htm}{OpenPGP et GnuPG~: 25 ans de chiffrement pour tous, ce qu'il faut savoir avant de s'y mettre}~», \emph{NextInpact}, 27/12/2016.}. Il est disponible pour la plupart des systèmes d'exploitation, y compris pour des appareils mobiles, depuis le site officiel \fnurl{https://www.gnupg.org/}{gnupg.org}. Téléchargez et installez. - - -Dans un second temps, vous pouvez vous pencher sur le -\fnurl{https://www.gnupg.org/gph/fr/manual.html}{manuel de GnuPG}. Mais -sans toutefois vous formaliser~: rassurez-vous, un usage classique n'est -pas aussi complexe qu'au premier abord. - - -\subsubsection{Ne pas perdre ses clés et savoir s'en servir}\label{nepasperdresescles} - -De la génération de clés au chiffrement de contenus, tout cela est faisable à la ligne de commande sous n'importe quel système d'exploitation. Cependant, à moins d'être très à l'aise avec le Terminal, où pour un apprentissage pédagogique, utiliser la ligne de commande n'est pas toujours ce qu'il y a de plus attirant. C'est pourquoi des interfaces graphiques ont été créés, qui permettent d'utiliser GnuPG, de gérer des clés (les vôtres et celles des destinataires) et d'effectuer des opérations de chiffrement de manière assez intuitive. - -On peut prendre l'exemple de GPA (\fnurl{https://www.gnupg.org/}{GNU Privacy Assistant}). Complémentaire à GnuPG, GPA est un assistant de gestion de clés de chiffrement simple à l'utilisation et qui permet d'amorcer un apprentissage rapide. - -Sous le système d'exploitation GNU/Linux il suffit d'installer GnuPG puis GPA depuis les dépôts de la distribution. Il y a d'autres interfaces graphiques proposées à l'usage, il suffit de faire son choix. - - -Sous Windows, on peut trouver un assortiment très intéressant : \fnurl{https://www.gpg4win.org/}{GPG4Win}. Il est maintenu par une administration allemande, l'Office fédéral de la sécurité des technologies de l’information (\emph{Bundesamt für Sicherheit in der Informationstechnik}). Il s'agit d'une suite logicielle (un choix est proposé lors de l'installation) contenant notamment : - -\begin{itemize} -\item GnuPG : à installer si ce n'est pas déjà fait, -\item GPA (GNU Privacy Assistant) : le gestionnaire de clés\ldots{} -\item Kleopatra : un autre assistant gestionnaire de clés qui permet notamment d'interagir avec le plugin GpgOL, -\item GpgOL : un plugin qui s'installe dans Outlook et permet de signer, chiffrer et déchiffrer des courriels (à la manière d'Enigmail pour Thunderbird, dont nous parlerons plus tard). -\end{itemize} - -Le conseil est d'abord d'installer GPA et faire ses premières armes avec. Ensuite, les usages de Kleopatra et éventuellement le plugin pour Outlook vous seront facilement accessibles. - -Dès l'ouverture de GPA, si vous n'avez pas encore de couple de clé privée / publique, le logiciel vous en proposera la création. Choisissez aussi de sauvegarder le jeu de manière à ce qu'à la fin du processus vous puissiez le stocker pour aussitôt le déplacer sur un support externe et le mettre en sûreté. Il est possible de lancer la procédure ultérieurement depuis le menu \texttt{Clé > Nouvelle clé}. - - - -\begin{figure}[htbp] - \centering - \includegraphics{images/gnuprivacyassistant1.png} - \caption{Génération de clé avec GPA} -\end{figure} - - -Remplissez avec application les champs qui vous sont proposés, fenêtre après fenêtre : - -\begin{itemize} - \item choisissez une adresse courriel dont vous êtes sûr de la validité (si vous voulez que cette clé puisse servir pour que l'on vous envoie des messages), - \item choisissez votre nom ou un pseudonyme, - \item choisissez une durée de validité de la clé (si vous êtes absolument sûr de vouloir l'utiliser indéfiniment), - \item choisissez un mot de passe fort et surtout ne l'oubliez pas ! -\end{itemize} - -Toutes ces informations seront incluses dans le jeu de clés qui, une fois créé sera lui-même chiffré et stocké. Il est très important d'exporter ce nouveau jeu de manière à le stocker dans un endroit sûr. Plus tard, lorsque vous serez plus à l'aise, vous pourrez générer des certificats de révocation et mettre des dates limites de validité sur vos clés. - -Que faire ensuite avec GPA ? facile ! GPA propose un «~presse papier~», un petit éditeur de texte, qui vous permet d'écrire (ou coller) du contenu à chiffrer. De même, vous pouvez aussi ouvrir le gestionnaire de fichier pour choisir un fichier à chiffrer. GPA vous assiste alors : il suffit de choisir la clé publique avec laquelle vous désirez chiffrer le contenu et entrer le mot de passe de votre clé privée. Dans le cas d'un tampon de texte, GPA vous livre directement un contenu chiffré à copier et coller (par exemple dans un courriel) et dans le cas d'un fichier, GPA produit une copie chiffrée du fichier (qui se termine par l'extension \texttt{.gpg}). - -Vous avez compris le principe ? et bien tous les assistants au chiffrement fonctionnent peu ou prou de la même manière. Comme GPA, il peuvent rechercher des clés sur un serveur de clés (avec les identifiants de clés), importer et exporter des clés, proposer une interface de chiffrement, etc. - - - -\begin{bclogo}[couleur=gray!20,couleurBord=black,couleurBarre=gray!20,arrondi=0.3,logo=\cloche]{\hspace{0.3cm}Un serveur de clés} - -Si vous devez leur envoyer des contenus chiffrés, vous devez récupérer les clés publiques de vos correspondants. Soit vous leur demandez de vous les fournir en mains propres (sur une clé USB, par exemple) soit vous utilisez les services d'un serveur de clés où vous aussi vous entrerez vos clés publiques. - -Voici un exemple de serveur de clés connu, hébergé par le MIT : \fnurl{http://pgp.mit.edu}{MIT PGP Public Key Server}. - -Pour envoyer une clé vers un serveur, il vous faut d'abord exporter votre clé. La plupart des serveurs de clés publiques possèdent une interface pour enregistrer les clés publiques des utilisateurs. Vous pouvez toujours ajouter d'autres clés, mais en général, assurez-vous que votre clé est bien celle que vous utiliserez pendant longtemps ou bien pensez à la révoquer. -\end{bclogo} - - - - - - -\subsubsection{Chiffrer mes courriels}\label{chiffre-mes-courriels} - -Certains assistants s'intègrent parfaitement dans des clients de courriel. C'est le cas de l'extension \fnurl{https://addons.mozilla.org/fr/thunderbird/addon/enigmail/}{Enigmail} pour Thunderbird, que l'on installe depuis le catalogue d'extensions. Le \fnurl{https://ssd.eff.org/fr/module/pgp-sous-windows-le-ba-ba}{tutoriel (en français)} présent sur le site \emph{Surveillance Self Defense} de l'Electronic Frontier Fundation s'adresse aux utilisateurs de MSWindows, et traite d'une installation fraîche de GnuPG, Thunderbird et Enigmail. Pour les utilisateurs de GNU/Linux ou MacOS, les démarches sont similaires. - -Pour résumer, Enigmail vous permet de configurer Thunderbird de manière à utiliser à la demande le chiffrement de vos courriels. Il permet, tout comme GPA, de créer des clés, stocker, importer, etc. - -Avec votre téléphone portable sous Android, l'application \fnurl{https://www.openkeychain.org/}{OpenKeyCHain} vous permettra d'utiliser PGP tout aussi facilement que les logiciels cités ci-dessus. Le client de courriel K9-Mail (cf. chapitre \ref{chapitre3}) l'utilise par défaut, à l'image du couple Enigmail-Thunderbird. Mais OpenKeyCHain peut être utilisé indépendamment, y compris pour chiffrer des fichiers. - -Enfin, puisque nous en avons parlé précédemment, le couple Kleopatra (un assistant à la manière de GPA) et GPGOL (une extension pour le client de courriel Outlook) sont inclus dans la suite Gpg4WIN. Les utilisateurs d'Outlook peuvent donc utiliser GnuPG sans problème avec ces deux outils. - - -\begin{figure}[htbp] - \centering - \includegraphics{images/securite_gege.png} - \caption{Le chiffrement seul ne suffit pas toujours} -\end{figure} - - - - - - - -\section{Les mots de passe}\label{les-mots-de-passe} - -Pourquoi utiliser des mots de passe~? Alors que nous pouvons chiffrer -nos données et nos messages avec des clés, les mots de passe servent à -protéger l'accès aux dispositifs, c'est-à-dire ouvrir des sessions. -Ainsi, vous avez un mot de passe pour accéder à votre messagerie, un mot -de passe pour empêcher d'autres personnes d'utiliser votre ordinateur (à -moins d'utiliser une session «~invité~»), un mot de passe pour chaque -service web que vous utilisez, etc. - - -\begin{bclogo}[couleur=gray!20,couleurBord=black,couleurBarre=gray!20,arrondi=0.3,logo=\info]{\hspace{0.3cm}La complexité d'un mot de passe} - -Un «~bon mot de passe~» n'est pas une notion évidente. D'une part il -doit être mémorisable, et d'autre part il faut y attacher un intérêt -relatif à l'importance des données que l'on souhaite protéger. Ainsi -certaines personnes jugent secondaire la complexité du mot de passe pour -deux raisons~: parce qu'elles craignent de l'oublier et parce qu'elles -pensent que leurs données numériques n'ont aucune valeur (ce qui est -fondamentalement faux). - -\end{bclogo} - -Il y a plusieurs manières de pirater un mot de passe. La première -consiste à tester des combinaisons une par une. On appelle cette méthode -l'attaque par \emph{force brute}. Elle nécessite un logiciel permettant -d'automatiser très rapidement le traitement et les multiples essais. Si -votre mot de passe est un mot présent dans un dictionnaire courant, de -n'importe quelle langue, l'attaque durera quelques secondes. Plus -longtemps si vous avez mis des chiffres. Par contre, plus votre mot de -passe sera long et complexe, plus il faudra de temps pour le découvrir -et, au-delà d'une certaine limite, la procédure ne peut aboutir compte -tenu des possibilités techniques actuelles (sauf pour les récentes -avancées des ordinateurs quantiques). Par exemple, - -\begin{lstlisting} -UnmanchotvolantdansledesertduNevadalesoirdeNoel -\end{lstlisting} - -sera plus difficile à craquer que \texttt{manchot25}. Mais pas -impossible. - -Une autre méthode pour découvrir un mot de passe est dite par -«~ingénierie sociale~». Elle consiste à établir le profil d'un -utilisateur en fonction des informations qu'il a divulguées sur le web, -notamment sur des réseaux sociaux. Ainsi, son nom, sa date de naissance, -le nom de son chien, son adresse, etc. constitueront un ensemble de -caractères pouvant être utilisés en priorité pour une attaque en force -brute ou, plus simplement, pour élaborer des essais logiquement déduits -par le pirate. - -Par exemple~: Monsieur Dupont a assisté à la naissance de son fils Kévin -le 12/06/2003. Un mot passe probable pourrait être \texttt{kevin2003}. - -\subsection{Créer et utiliser les mots de passe}\label{cruxe9er-un-mot-de-passe} - -Il est conseillé de ne pas se contenter d'un simple mot composé -uniquement de caractères alphabétiques \texttt{{[}a-z{]}}. Il vaut mieux -utiliser une combinaison comprenant des caractères alphanumériques -\texttt{{[}a-z,\ 0-9{]}}, des majuscules \texttt{{[}A-Z{]}} et des -caractères spéciaux \texttt{{[}!,:@,\ etc.{]}}, le tout sur une longueur -minimum de 10 caractères. L'idéal est de retenir une phrase de passe, qui excédera 10 caractères (des quatre types), et sera par conséquent plus facile à retenir. - -Pour construire une phrase de passe, il faut aussi mémoriser la méthode de sa construction, sous peine de définitivement l'oublier. Plusieurs méthodes pourront vous aider~: - -\begin{itemize} -\item prenez une phrase et remplacez certaines lettres par d'autres caractères (et utilisez les 4 types de caractères mentionnés ci-dessus), -\item utilisez la phonétique, par exemple~: \texttt{GHT4dvdchez@t1t1!} (j'ai acheté 4 dvd chez @Tintin !), -\item utilisez un générateur de mot de passe (le logiciel Keepass le permet, cf. plus bas). -\end{itemize} - -Prenez quelques minutes pour vous inventer une méthode que vous n'oublierez pas. Un bien petit sacrifice pour la sécurité de vos données… - -Dans tous les cas, respectez impérativement ces règles~: - -\begin{itemize} -\item utilisez un mot de passe différent pour chaque service auquel vous êtes inscrit-e, -\item nettoyez le cache du navigateur après chaque utilisation et, par défaut, ne mémorisez pas le mot de passe dans votre navigateur, -\item n'écrivez jamais votre mot de passe, même si on vous le demande : l'administrateur d'un site n'a jamais besoin de votre mot de passe pour effectuer des opérations sur le site, -\item changez régulièrement de mot de passe. -\end{itemize} - - -\subsection{Comment stocker mes mots de passe}\label{comment-stocker-mes-mots-de-passe} - -En matière de pratiques comme de sécurité informatique, un adage connu -affirme que le problème se situe souvent entre la chaise et le clavier. -En effet, on ne compte plus les personnes qui stockent leurs mots de -passe à l'aide de papiers collés sur l'écran ou sous le clavier. Il ne -faut pas oublier beaucoup d'intrusions informatiques se font grâce à un -accès physique aux machines, en particulier lorsque des ordinateurs se -trouvent dans des endroits publics, ou même dans un bureau, et bien sûr -en cas de vol.~Il faut donc rester vigilant. - -Heureusement d'autres moyens sont à votre disposition~: les logiciels -gestionnaires de mots de passe. Attention~: beaucoup de solutions -logicielles existent sur le marché, il faut savoir évaluer leur degré de -confiance. Il existe trois types de solutions~: - -\begin{enumerate} -\def\labelenumi{\arabic{enumi}.} -\tightlist -\item - des logiciels / applications propriétaires. À moins que votre - entreprise en ait fait l'audit et vous oblige à en utiliser une, ne - faites pas confiance à ces logiciels tant que vous n'en n'avez pas - l'expertise~; -\item - des services en ligne. Là aussi, vous devez non seulement faire - confiance aux technologies employées, mais elles sont de plus, et par - définition, vulnérables à de nombreuses attaques (quel pirate ne rêve - pas de s'attaquer à un site qui prétend regrouper les données d'accès - de milliers d'utilisateurs~?)~; -\item - des solutions logicielles libres, qui non seulement font l'objet - d'audits permanents de la part des utilisateurs (du moins ceux qui en - ont l'expertise), mais qui, de surcroît jouent la transparence en - publiant leur code source. -\end{enumerate} - -Pour cette troisième catégorie, il est aussi plus facile de se -renseigner sur les audits. Ainsi, l'un des logiciels les plus -plébiscités dans ce domaine se nomme -\fnurl{http://keepass.info/}{Keepass} (Keepass Password Safe). C'est un -logiciel libre qui a de plus été -\fnurl{https://www.ssi.gouv.fr/entreprise/certification_cspn/keepass-version-2-10-portable/}{passé -au crible} par l'Agence Nationale de la Sécurité des Systèmes -d'Information (ANSSI) et bénéficie d'une Certification de Sécurité de -Premier Niveau (CSPN). La CNIL -\fnurl{https://www.cnil.fr/fr/construire-un-mot-de-passe-sur-et-gerer-la-liste-de-ses-codes-dacces}{mentionne -Keepass} sur une page consacrée aux mots de passe dont vous pouvez -bénéficier de la lecture. - -Keepass a d'abord été développé pour Windows. Dans sa version GNU/Linux, -il se nomme \fnurl{https://www.keepassx.org/}{KeepassX}, un portage de -Keepass. L'utilisation est très simple. Il s'agit d'une base de données -dotée d'une interface pour remplir différents champs (titre, nom -d'utilisateur, mot de passe, etc.). Il est possible de spécifier une -date d'expiration pour chaque entrée. - -\begin{figure}[htbp] -\centering -\includegraphics{images/keepassx2.png} -\caption{Entrée de données dans Keepass} -\end{figure} - -La base de données est sauvegardée dans un fichier d'extension -\texttt{.kdbx} et dotée d'une phrase de passe. Cette dernière est alors -suffisante pour ouvrir la base et récupérer ses mots de passe. Cela -permet à l'utilisateur de n'avoir à retenir qu'un seul mot de passe pour -tous les autres. Bien sûr ce mot de passe devra être bien complexe et le -fichier de la base stocké dans un endroit difficile d'accès. - -\begin{figure}[htbp] -\centering -\includegraphics{images/keepassx1.png} -\caption{Interface de Keepass} -\end{figure} - -Beaucoup d'extensions (plugins) sont disponibles. Elles permettent par -exemple d'interfacer Keepass avec son navigateur, de synchroniser -Keepass avec d'autres appareils comme un smartphone, ou encore de -synchroniser la base de données avec un stockage en ligne (déconseillé -sauf pour un usage peu sensible). - -Du côté des appareils mobiles, l'application -\fnurl{http://www.keepassdroid.com/}{Keepassdroid} (mentionnée sur le -\fnurl{https://prism-break.org/fr/projects/keepassdroid/}{site -PrismBreak}) est un port de Keepass sur plate-forme Android et permet -donc d'utiliser des fichiers \texttt{.kdbx}. Avec un peu de pratique, il -est alors possible d'ouvrir la même base de donnée sur votre mobile et -sur ordinateur, ce qui vous permet de la transporter avec vous. -Toutefois, votre prudence est de mise~: les appareils mobiles sont des -dispositifs très sensibles au niveau de la sécurité et du chiffrement. - -\section{Surfer en sécurité}\label{surfer-en-suxe9curituxe9} - -Comme nous l'avons vu avec PGP, il est important de bien comprendre que -sur le réseau, lorsque deux machines communiquent entre elles, il faut -leur demander explicitement de le faire de manière chiffrée. En fait, -lorsque vous surfez sur le web, vous utilisez des protocoles qui -permettent par exemple à votre navigateur d'envoyer et recevoir des -informations et les afficher. C'est le cas d'usage du HTTP (HyperText -Transfert Protocol). Or, selon les besoins, surtout lorsque vous -consultez un site dont les données sont sensibles (votre compte en -banque, vos données de santé, votre messagerie en ligne, etc.) il est -important d'ajouter un protocole de sécurité en plus~: SSL (Secure -Socket Layer). - -\subsection{Le HTTPS~: pourquoi~?}\label{le-https-pourquoi} - -SSL est une couche (layer) supplémentaire aux protocoles habituels qui -permet d'amorcer une session sécurisée de transmission entre deux -machines. Lorsque vous surfez et que vous voyez apparaître l'occurrence -\texttt{https} au lieu de l'habituel \texttt{http} dans la barre -d'adresse, c'est que la connexion s'établit, en plus, sur une base SSL. -Très rapide et pratiquement invisible aux yeux de l'internaute, une -connexion SSL se déroule en deux temps (deux protocoles)~: - -\begin{itemize} -\tightlist -\item - une phase de négociation (SSL Handshake protocol)~: les deux machines - négocient des clés de chiffrement et s'accordent sur les protocoles - d'échange, -\item - la phase d'échange (SSL Record protocol) ~: les deux machines - communiquent et contrôlent les échanges. -\end{itemize} - -Comme dans le cas de l'utilisation de PGP, le chiffrement est -asymétrique (échange de clés) et utilise un système de signature visant -à contrôler l'intégrité des informations de l'émetteur au récepteur -(s'assurer que personne n'a intercepté l'information pour la renvoyer -modifiée). - -Un concept très important dans le cas de connexion SSL, c'est le -certificat. Lors de la phase de négociation, les deux machines échangent -des certificats, c'est-à-dire des pièces d'identité. Lorsque vous vous -connectez à votre banque, que vous ayez un certificat ou non importe -peu~: l'essentiel est que votre banque, elle, en ait un qui puisse -l'authentifier de manière à être sûr-e que c'est bien sur le site de votre -banque que vous vous trouvez et avec qui vous allez échanger des -informations. - -Là encore, ce n'est pas l'utilisateur qui, manuellement, doit s'assurer -de l'authenticité du certificat émis par le correspondant. En fait, -chaque navigateur dispose d'une liste d'autorités (des PKI, Public Key -Infrastructure) auxquelles il s'adresse et qui vont endosser cette -authentification. Ces autorités sont des organismes agréés (sociétés de -droit privé ou institutions publiques) qui disposent d'un ensemble de -dispositifs informatiques et humains de certification. - -\begin{figure}[htbp] -\centering -\includegraphics{images/firefox_certif.png} -\caption{Exemple de certification authentifiée sur le site Wikipédia} -\end{figure} - -Si le navigateur ne parvient pas à faire le lien entre une autorité et -le certificat reçu, il prévient l'utilisateur, notamment avec un jeu -d'icônes. Dans le cas du navigateur -\fnurl{https://www.mozilla.org/fr/firefox/desktop/}{Firefox} les icônes -en forme de cadenas correspondent à -\fnurl{https://support.mozilla.org/fr/kb/comment-savoir-si-ma-connexion-est-securisee}{plusieurs -cas de figure}~: - -\begin{itemize} -\tightlist -\item - une simple information qui prévient que le site n'est pas certifié - (mais comme n'y a pas lieu d'y entrer des informations, l'absence de - formulaire, etc. il n'y a pas d'alerte)~; -\item - une alerte signifiant que le site n'est pas authentifié, que la - communication n'est pas chiffrée, et que tout ce qui pourra y être - communiqué par l'utilisateur risque d'être intercepté~; -\item - un avertissement indiquant que le site, bien qu'authentifié, contient - des éléments qui ne sont pas sécurisés et que la communication n'est - que partiellement chiffrée~; -\item - une indication qui atteste que la communication est entièrement - chiffrée et le site certifié. -\end{itemize} - -En d'autres termes, lorsque vous vous rendez sur un site où vous êtes -censé entrer des informations, confidentielles ou non, ayez toujours un -œil en haut à gauche de la fenêtre de votre navigateur~! - -\subsection{L'affaire des cookies}\label{laffaire-des-cookies} - -Dans le jargon informatique, un -\fnurl{http://www.catb.org/~esr/jargon/html/C/cookie.html}{cookie} est un -moyen de formaliser une transaction entre deux programmes, le plus -souvent par un fichier qui fait office de jeton. Il s'agit d'un -\emph{témoin de connexion} qui atteste la connexion d'une machine à une -autre. Les cookies existent depuis très longtemps dans l'histoire de -l'informatique moderne mais l'omniprésence des réseaux a multiplié leur -usage. - -Concrètement, un cookie est un fichier texte stocké sur la machine de -l'internaute (généralement dans un emplacement désigné et utilisé par le -navigateur) et qui retourne des informations lorsque le serveur les lui -demande. Par exemple, lorsque vous faites des achats sur une boutique en -ligne, un cookie contenant des identifiants ou un code généré en -fonction des identifiants de connexion, vous permet de gérer votre -panier d'achat en renvoyant ce cookie qui vous identifie sur le serveur -à chaque fois que vous y ajoutez quelque chose ou lorsque vous voulez -payer. - -Les cookies sont donc des dispositifs fort utiles. Ils sont là au départ -pour permettre d'ouvrir et fermer une session d'utilisation d'un site -web ou de tout autre service. Cependant, ils peuvent emmagasiner bien -d'autres informations, notamment à des fins de marketing mais qui -peuvent mettre en danger vos informations personnelles et votre -confidentialité. - -\subsubsection{Cookies et sécurité}\label{cookies-et-suxe9curituxe9} - -Un cookie n'identifie pas l'utilisateur derrière le clavier, mais le -navigateur sur votre machine se connectant à un serveur distant. Fermer -une session sur un site distant ne signifie donc pas forcément que le -cookie qui vous permettait de vous identifier est nettoyé de ces -informations. Si une personne utilise votre machine et votre navigateur -après vous, il y a des chances qu'elle puisse accéder à des informations -non souhaitées. - -Voici un scénario probable~: en prévision de la Saint Valentin, vous -effectuez des achats en ligne pour faire une surprise à votre -conjoint-e. Un cookie va alors stocker la valeur totale de vos achats. -Une fois les achats effectués, votre conjoint-e utilise à son tour le -navigateur pour se rendre avec la même intention sur le même -site\ldots{} et voit s'afficher le montant de votre dernière -transaction. - -Ce dernier scénario issue de la vie domestique peut prêter à sourire, -mais les conséquences ne sont pas toujours négligeables~: certains -cookies, ajoutés à votre historique de navigation, vous permettent même -de retourner des informations d'identité pour ne pas avoir à saisir -votre numéro de carte bleue lors des achats ultérieurs. Or, les autres -utilisateurs de la machine (autorisés ou pas) ne sont pas toujours des -personnes bien intentionnées\ldots{} - -Un autre exemple de vulnérabilité concerne l'interception de cookies. Un -tiers peut en effet s'interposer entre votre navigateur et le serveur, -ou bien ce dernier peut lui-même avoir été piraté. Dès lors, il est -possible que votre session soit détournée et que toutes les informations -que vous retournez avec les cookies soient récupérées. Ce détournement -de session est une pratique qui peut être contrée par la protection SSL -et le chiffrement de session, ce que nous avons vu précédemment à propos -de HTTPS. Cependant, même si la connexion entre le serveur et le client -est chiffrée, la durée d'existence d'un cookie dans votre navigateur -peut parfois être de plusieurs jours et excéder la durée de la -connexion, ce qui cause une réelle faille de sécurité pour vos données -privées en fonction des sites sur lesquels vous vous rendez. - -\subsubsection{Les cookies et ma vie privée}\label{les-cookies-et-ma-vie-privuxe9e} - -La directive européenne du 25 novembre 2009 (modifiant la directive 2002/22/CE --~directive «~service universel~») indique~: - -\begin{quote} -Les États membres garantissent que le stockage d'informations, ou l'obtention de l'accès à des informations déjà stockées, dans l'équipement terminal d'un abonné ou d'un -utilisateur n'est permis qu'à condition que l'abonné ou l'utilisateur -ait donné son accord, après avoir reçu, dans le respect de la directive -95/46/CE, une information claire et complète, entre autres sur les -finalités du traitement. -\end{quote} - -On comprend que dans ces conditions l'usage des cookies devrait être -réservé à l'amélioration des services et de l'expérience utilisateur. -Cependant, dans la mesure où les cookies servent surtout à mesurer des -parts d'audience et les comportements des utilisateurs, beaucoup de sites -font en réalité appel à des sociétés spécialisées. Dans d'autres cas, -des grands acteurs de services, tels Facebook, offrent grâce à leur -notoriété de quoi augmenter l'envergure de leurs services en proposant à -d'autres sites de les relayer. C'est le cas, par exemple, lorsque le -site d'un quotidien permet de «~liker~» un article avec un bouton -Facebook~: cela permet d'augmenter l'audience du journal en relayant -l'article sur Facebook et cela permet à Facebook de mesurer le -comportement de ses utilisateurs pour leur offrir une «~meilleure -expérience~» en leur proposant des contenus similaires. - -Ces procédés qui consistent à user et abuser de cookies issus de tierces -parties ouvrent de plus vastes questions sur la vie privée. Si je me -rends sur un site, je ne m'attends pas forcément à ce qu'un tiers fasse -le lien entre cette visite et un autre site. Un même émetteur est ainsi -capable de recouper les informations issues de plusieurs sites sur -lesquels se rend l'utilisateur. Ces analyses comportementales permettent -d'inférer des profils à l'insu des utilisateurs. Cela fait des cookies -non plus des instruments au service de l'expérience technique de -l'utilisateur, mais de véritables mouchards. C'est pourquoi certains -pays ont tenté d'adopter une législation stricte en la matière. - -\subsubsection{Surveiller les cookies que je reçois}\label{surveiller-les-cookies-que-je-reuxe7ois} - -Comme nous l'avons vu, si tous les cookies ne sont pas amicaux, le -principe ne doit néanmoins pas être rejeté en bloc. Une bonne pratique, -qui ne nécessite pas de compétences particulières, consiste à nettoyer -son navigateur une fois que la session est terminée. Pour ce faire, une -fonctionnalité de votre navigateur vous permet de supprimer -l'historique, cookies compris, de manière ponctuelle ou de manière -systématique. N'hésitez pas à employer cet outil. - -Une autre manière de surveiller les cookies, consiste à paramétrer son -navigateur. Par défaut, un navigateur comme Firefox accepte les cookies, -y compris les cookies de tierce partie. Il est donc possible de les -bloquer systématiquement en se rendant dans Firefox~: -\texttt{Préférences\ \textgreater{}\ Vie\ privée}. - -\begin{figure}[htbp] -\centering -\includegraphics{images/firefox_vieprivee.png} -\caption{Surveiller les cookies avec Firefox} -\end{figure} - -Une autre méthode consiste à surfer en utilisant des fenêtres de -navigation privée (en cliquant sur le petit masque ou en faisant -\texttt{CTRL+Maj+P}). Le mode de navigation privée -\fnurl{https://support.mozilla.org/fr/kb/protection-contre-le-pistage-en-navigation-privee}{protège -contre le pistage} et n'enregistre pas d'historique. - -En 2014, l'Electronic Frontier Foundation (EFF) s'est penché -sérieusement sur le problème des cookies. L'EFF est une organisation non -gouvernementale et à but non lucratif, qui vise à défendre la liberté -d'expression sur Internet. Son rôle se compose à la fois de veille, -d'alerte et de pédagogie. Dans la mesure où l'usage déloyal des cookies -menace nos intimités numériques, l'EFF a développé une extension pour -Firefox et Chrome nommée -\fnurl{https://www.eff.org/fr/privacybadger}{Privacy Badger}. Cette -extension, installable en un clic sur votre navigateur, permet de -monitorer et bloquer les cookies. Son but général est à terme d'obliger -les émetteurs à respecter la fonction \emph{do not track} (DNT --- une -\fnurl{https://support.mozilla.org/fr/kb/comment-activer-option-ne-pas-pister}{fonction -du navigateur} qui indique que l'utilisateur ne souhaite pas être -pisté). - -La \fnurl{https://fr.wikipedia.org/wiki/Privacy_Badger}{page Wikipédia -consacrée à Privacy Badger} explique en quelques mots simples le -fonctionnement de Privacy Badger~: - -\begin{quote} -Privacy Badger ne fonctionne pas à partir d'une liste toute faite de -sites à bloquer (liste noire) mais utilise un algorithme pour détecter -dynamiquement des comportements de pistage par des sites tiers. Cette -approche heuristique présente deux avantages~: actualité (par la -technique de l'apprentissage automatique la contre-mesure est toujours à -jour), impartialité (pas de pressions tierces concernant le contenu -d'une liste centralisée pré-établie). - -Lors de la visite d'un site, le navigateur web charge automatiquement -des contenus de différents sites tiers~: Privacy Badger recense ces -sites. Puis, si au cours des pérégrinations en ligne ultérieures, les -mêmes sites semblent pister la navigation sans autorisation, alors -Privacy Badger entre en action en demandant au navigateur de les -bloquer. Et comme le navigateur ne charge plus rien en provenance de ces -sites, ils ne peuvent plus pister l'internaute. -\end{quote} - -\begin{figure}[htbp] -\centering -\includegraphics{images/screen_privacybadger.png} -\caption{Usage de Privacy Badger sur un site connu} -\end{figure} - -\section{Et mon anonymat~?}\label{et-mon-anonymat} - -De manière synthétique, Eben Moglen\footnote{\href{https://fr.wikipedia.org/wiki/Eben_Moglen}{Eben - Moglen} est professeur de droit et d'histoire du droit à l'université - Columbia, président du Software Freedom Law Center, et avocat conseil - à la Free Software Foundation.} exprime en une phrase tout le problème -de nos intimités numériques sur Internet~: «~nous n'avons pas inventé -l'anonymat lorsque nous avons inventé Internet~»\footnote{Voir cette - conférence (traduction sous-titrée) de Eben Moglen, - «~\href{https://framatube.org/media/e-moglen-defendre-notre-liberte-de-penser-exige-de}{Why - Freedom of Thought Requires Free Media and Why Free Media Require Free - Technology}~», \emph{Re:Publica}, Berlin, 02/05/2012.}. En effet, aux -fondements d'Internet, c'est le partage de l'information qui prime. La -surveillance des utilisateurs n'est qu'une conséquence d'un usage -déloyal des protocoles utilisés pour partager l'information. - -Dès lors, l'anonymat prend une autre dimension. Il n'est plus seulement -l'ignorance ou la dissimulation de l'identité. Car ce qui définit -justement notre identité sur Internet, ce n'est pas notre présence -administrative c'est l'ensemble des comportements et des traces -numériques qui sont analysées, recoupées, inférées, de manière à -profiler notre identité et celle de nos correspondants. Ces usages sont -devenus tellement automatiques que beaucoup d'internautes sont prêts à -sacrifier une partie de leurs droits à l'image pour pouvoir utiliser un -service gratuit (voyez les conditions d'utilisation de Facebook qui -s'approprie vos données biométriques et pratique des analyses de -reconnaissance faciale\footnote{Pour plus d'information, voir les - articles suivants. Tom Simonite, - «~\href{https://www.technologyreview.com/s/525586/facebook-creates-software-that-matches-faces-almost-as-well-as-you-do/}{Facebook - Creates Software That Matches Faces Almost as Well as You Do}~», - \emph{MIT Technology Review}, 17/03/2014. Dino Grandoni, - «~\href{http://www.huffingtonpost.fr/2014/03/20/deepface-reconnaissance-faciale-facebook_n_5000872.html}{DeepFace, - le nouveau système de reconnaissance faciale de Facebook qui fait - froid dans le dos}~», \emph{Le Huffington Post}, 20/03/2014. Dépêche - AFP/Le Figaro, - «~\href{http://www.lefigaro.fr/secteur/high-tech/2016/05/06/32001-20160506ARTFIG00087-facebook-devant-la-justice-pour-sa-technologie-de-reconnaissance-faciale.php}{Facebook - devant la justice pour sa technologie de reconnaissance faciale}~», - \emph{Le Figaro}, 06/05/2016.}). Mais l'enjeu est encore plus large~: -la raison pour laquelle nous devons protéger nos accès aussi bien que -notre identité numérique, c'est d'abord et avant tout pour protéger ceux -avec qui on échange. Car tout l'intérêt de l'analyse des données, ce -n'est pas le contenu de votre dernier message à votre ami à l'autre bout -du pays, c'est la fréquence de ces échanges, les lieux et les durées, et -ce sont ces données qui intéressent avant tout les firmes pour des -raisons de marketing et les programmes de surveillance de certains États -(qui impliquent ces mêmes firmes\footnote{Si vous pensez ne rien avoir à - cacher, vous pouvez regarder cette vidéo par Julien Vaubourg (Lorraine - Data Network), - «~\fnurl{https://framatube.org/media/je-nai-rien-a-cacher}{Je n'ai rien - à cacher}~», séminaire MathC2+, à Inria Grand Est, 14/04/2015.}). - - -\begin{bclogo}[couleur=gray!20,couleurBord=black,couleurBarre=gray!20,arrondi=0.3,logo=\cloche]{\hspace{0.3cm}Anonymat ou confidentialité ?} -Attention toutefois à ne pas confondre l'anonymat et l'impossibilité -d'être identifié. Quoi que vous fassiez sur Internet, il est impossible -de masquer totalement un ou plusieurs éléments qui permettent de -remonter à la source. Pour différencier les données, il faut bien -fatalement que votre machine soit identifiée sur le réseau. À vous de -faire en sorte que l'identité technique de votre machine soit distincte -de votre identité administrative. On préfère donc parler de -\emph{confidentialité} sur Internet. -\end{bclogo} - -\section{Utiliser TOR}\label{utiliser-tor} - -TOR est l'acronyme de The Onion Router. Il s'agit d'abord d'un réseau -qui fonctionne par nœuds qui «~répercutent~» les connexions des -utilisateurs. Ainsi, tout comme les couches des pelures d'oignon, si on -identifie un nœud par lequel l'utilisateur est passé, c'est à un autre -nœud qu'il renvoie, etc. Le réseau TOR est donc décentralisé. Pour -fonctionner, la liste des nœuds étant publique, il connecte les -utilisateurs sur ces nœuds et construit des routes (un routage) qui leur -permettent de surfer sur Internet mais en passant par différents nœuds à -chaque fois. Le site visité ou tout autre acteur ne peut donc pas -identifier la provenance exacte de l'utilisateur, à moins d'utiliser des -outils spécifiques d'analyse en profondeur du réseau et vous rechercher -activement. - -Pour assurer cette confidentialité pour toutes sortes de connexion -Internet, il faut configurer son système d'exploitation avec les données -du réseau TOR. C'est une pratique plutôt fastidieuse. C'est pour cette -raison qu'il existe \fnurl{https://tails.boum.org/}{TAILS} (The Amnesic -Incognito Live System), une distribution GNU/Linux entièrement -paramétrée pour cela. TAILS n'est pas censée obligatoirement s'installer -sur votre disque dur à la place de votre système d'exploitation actuel. -C'est d'abord une distribution «~live~», c'est-à-dire qu'elle s'installe -sur une clé USB ou une carte SD et vous permet de disposer ainsi d'une -session à la demande, non seulement pour surfer, mais aussi pour -disposer d'un panel d'outils dédiés au chiffrement. - -De manière moins complexe, il existe un navigateur développé par le -projet Tor, sur la base de Firefox~: -\fnurl{https://www.torproject.org/projects/torbrowser.html}{Tor Browser -Bundle}. Pour résumer, ce navigateur s'installe et s'utilise de la même -manière qu'un navigateur classique, à la différence qu'il se connecte -d'abord au réseau TOR et que vous pouvez configurer le niveau de -sécurité avec un curseur. Si vous utilisez Windows, vous pouvez vous -reporter à -\fnurl{https://ssd.eff.org/fr/module/guide-dutilisation-de-tor-pour-windows}{cette -page d'explication} pour installer et configurer Tor Browser. La seule -condition pour utiliser Tor Browser correctement, c'est de toujours -disposer de la dernière version à jour. - -Pour conclure sur l'utilisation de TOR, il est important de préciser que -cet outil n'est pas destiné à effectuer des opérations illicites. Il est -d'abord construit de manière à respecter la confidentialité des -utilisateurs. Il n'est donc pas forcément pertinent de l'utiliser à tout -bout de champ, dans un délire paranoïaque permanent, même si dans -certains pays son utilisation (couplée à d'autres dispositifs encore) -est d'abord une question de liberté d'expression et de survie. -L'utilisation de TOR se fait à bon escient, car rien ne remplacera votre -attention et votre bon sens. - -\chapter*{Conclusion}\label{conclusion} -\addcontentsline{toc}{chapter}{Conclusion} - - -Nous sommes tous des DuMo. Qui pense tous les jours à chiffrer ses -communications avec PGP~? Avons-nous tous envie de changer nos vieilles -habitudes~? Qui est prêt à abandonner du jour au lendemain un logiciel -avec lequel il a déjà pris ses marques~? - -Comme tout guide de bonnes pratiques, celui-ci n'a certes pas l'ambition -d'être exhaustif ni d'imposer des usages. Il montre que si des -alternatives aux logiciels propriétaires existent, le seul fait de les -utiliser ne suffit pas à garantir les libertés numériques que tout le -monde est en droit d'exiger. Si vous gardez votre compte Facebook, vous -êtes en droit de le faire, surtout si c'est votre seul moyen de -conserver vos contacts avec les gens que vous aimez. Vous pouvez aussi -continuer à utiliser GMail parce que son ergonomie vous plaît. Mais au -moins, après cette lecture, vous comprenez les enjeux que soulèvent ces -services numériques gratuits face à votre intimité numérique. Vous -comprenez aussi que même en les utilisant, certains réflexes sont -nécessaires comme le fait d'utiliser des protocoles sécurisés avec un -client de courriel ou de vérifier les cookies que votre navigateur -engrange au fil des pages visitées. - -Petit à petit vous reprendrez les clés de lecture que vous offre cet -ouvrage. Elles vous serviront pour analyser vos pratiques, les -mésaventures de vos amis et vos propres difficultés. Chaque chapitre, -chaque section mériterait un développement bien plus complet et -rigoureux, jusqu'à atteindre les 15 tomes nécessaires pour faire de vous -un-e vrai-e guerrier-e numérique. C'est peut-être le grand défaut des -spécialistes que d'exiger du néophyte une attention de tous les -instants. C'est ce qui a sans doute lassé Madame Michu. - -Alors, non. Ne retenez pas par cœur toutes les définitions de cet -ouvrage. Ne répétez pas religieusement tous les soirs les quatre -libertés du logiciel libre. Ne saturez pas vos voisins d'affirmations -péremptoires sur les dangers de la surveillance de masse. - -Refermez ce livre et rangez-le. Mais pas trop loin. Vous savez -maintenant identifier et évaluer vos besoins en termes d'outils, -d'applications et de méthodes. Vous vous souviendrez de quelques noms de -logiciels que vous finirez par installer pour toutes les bonnes raisons -du monde. Vous finirez par vous libérer. Et c'est tout naturellement que -vos amis en feront autant, simplement parce que vos usages protègent -aussi leurs libertés. Si~! vous verrez\ldots{} cela commence déjà. - - - -\appendix -%\part*{Annexes} -%\addcontentsline{toc}{part}{Annexes} - -%------------------------------------------------------------------------------- - - -% ------------------------------------------------------------------------- -% -%%\appendix%% - - -\chapter{Glossaire}\label{glossaire} - -\begin{description} -\item[Application] -Programme (logiciel) destiné à l'utilisateur et servant à réaliser des -tâches dans un domaine particulier (traitement de texte, navigation web, -etc.). Pour ne pas confondre application et logiciel, voyez «~Logiciel~», plus loin dans le Glossaire. -\item[Chiffrement] -Un procédé (de cryptographie) qui rend impossible la compréhension d'un -message sans une clé de déchiffrement. -\item[Client (logiciel)] -Un logiciel client est un logiciel qui permet de communiquer avec un -serveur et de récupérer ou envoyer des données selon des protocoles -définis. Un client de messagerie électronique est un logiciel qui -récupère et envoie des messages électroniques sur un serveur selon les -protocoles IMAP, POP, Exchange, etc. -\item[Cookie] -Un témoin de connexion qui fait office de jeton afin d'authentifier ou -attester la connexion entre deux machines. Un cookie peut aussi -véhiculer d'autres informations. -\item[Cracker] -Un amateur ou un expert spécialisé dans le cassage des protections de -sécurité des logiciels. -\item[Cryptographie] -Art (ou discipline) de protéger des messages en les rendant -inintelligibles, notamment au moyen du chiffrement. -\item[Dépôt (logiciels)] -Un dépôt est un service de stockage et diffusion de logiciels. Pour les -utilisateurs de GNU/Linux, chaque distribution propose des dépôts -validés. On s'y connecte via un gestionnaire de dépôts afin de -télécharger et installer les programmes que l'on souhaite. Si un -logiciel ne se trouve pas dans les dépôts, c'est qu'il n'a pas encore -été validé ou qu'il ne présente pas les caractéristiques suffisantes de -stabilité et de sécurité. Selon votre système d'exploitation, les dépôts -sont parfois appelés \emph{store} ou \emph{magasin}. -\item[Distribution] -Une distribution est un ensemble cohérent de logiciels permettant -d'effectuer un ensemble de tâches spécialisées. Les différentes versions -de systèmes d'exploitation GNU/Linux sont des distributions : elles -répondent à des besoins différents, ne proposent pas toutes les mêmes -logiciels. -\item[Extension (fichier)] -Quelques caractères à la fin d'un nom de fichier, après un point, -servant à identifier rapidement le format du fichier. -\item[Extension (logiciel)] -Une extension ou un \emph{module} d'extension ou encore un \emph{plugin} -est une série de commandes se greffant à un logiciel \emph{hôte} afin -d'étendre ses fonctionnalités. -\item[Format (fichier)] -Un format de fichier est une convention qui représente la manière dont -sont arrangées et stockées les données regroupées dans ce fichier. -\item[Hacker] -Un passionné d'informatique, qui apprécie notamment de bidouiller en vue -d'améliorer des programmes ou du matériel. -\item[Internet] -Un réseau informatique mondial accessible au public. Les échanges s'y -font grâce à des protocoles standards de communication. -\item[Interopérabilité (des formats)] -L'interopérabilité d'un format de fichier est sa capacité à fonctionner -ou être traité par des logiciels différents. -\item[Libre (logiciel)] -Un logiciel libre est un logiciel placé sous une licence qui respecte -les quatre libertés logicielles : 1.~la liberté d'utiliser le logiciel, -2.~la liberté de copier le logiciel, 3.~la liberté d'étudier le -logiciel, 4.~la liberté de modifier le logiciel et de redistribuer les -versions modifiées. -\item[Licence libre] -Un contrat qui formalise l'exercice des quatre libertés logicielles -(lorsqu'il s'agit d'un logiciel libre) ou qui s'inspire de ces quatre -libertés pour contractualiser l'usage d'un contenu ou d'une œuvre. -\item[Logiciel] -Ensemble d'instructions (programme(s)) et jeu de données (fichiers) -qu'un utilisateur ou une machine utilise pour effectuer des tâches. Un -logiciel de traitement de texte est un programme qu'on peut qualifier -d'applicatif (voir « Application »). Un noyau de système d'exploitation -est un programme qui n'a pas une visée applicative. -\item[Navigateur (Web)] -Un navigateur est un logiciel permettant d'afficher le Web, en -particulier en utilisant le protocole HTTP. -\item[Nétiquette] -Ensemble de règles informelles visant à structurer les bonnes pratiques -d'usage de la messagerie entre internautes. -\item[Noyau (système d'exploitation)] -Un noyau est un programme à la base du système d'exploitation. Il permet -de gérer les accès aux dispositifs de calcul et de mémoire, coordonne -les programmes et les éléments matériels. Linux est le noyau d'un -système GNU/Linux. -\item[Piratage] -Action illégale dans le domaine informatique : contrefaire des œuvres, -s'approprier des données, usurper des identités etc. -\item[Port (matériel)] -Une prise permettant de brancher un périphérique sur un ordinateur. -\item[Port (logiciel)] -Un système permettant de gérer les entrées et sorties d'information. -\item[Propriétaire (ou privateur)] -Un programme est dit propriétaire s'il ne permet pas l'exercice des 4 -libertés propres au logiciel libre. La principale caractéristique est la -non diffusion du code source et l'impossibilité d'un audit public du -logiciel. Il constitue donc une porte ouverte pour un usage déloyal des -données des utilisateurs qu'il traite. C'est pour cette raison que le -terme « privateur » (de libertés) est aussi employé. -\item[Protocole de communication] -Une suite d'opérations nécessaires pour mettre en relation deux machines -sur un réseau. Un protocole peut intégrer le procédé de mise en -relation, la convention d'échange, le contrôle de la communication. -\item[RFC] -\emph{Request for comment} : ce sont des documents officiels rédigés sur -la base de commentaires calibrés et servant à décrire les aspects -techniques d'internet après délibération. Certaines RFC sont devenues -des standards. -\item[Système d'exploitation] -Un ensemble de programmes qui permet d'exploiter les ressources d'un -ordinateur (matériel, surtout). -\item[Virus (informatique)] -Un programme qui se propage d'un ordinateur à l'autre. Il peut contenir -du code malveillant qui agit par exemple en supprimant des données ou en -les chiffrant (pour permettre à ses commanditaires de réclamer une -rançon en échange de la clé de déchiffrement). -\item[Web (World Wide Web)] -C'est le système hypertexte fonctionnant sur le réseau Internet, grâce à -un navigateur qui permet de récupérer des contenus. L'image de la toile -(\emph{web}) est employée pour illustrer les liens hypertextes qui lient -les pages entres elles. -\item[Webmail] -Un client de messagerie électronique disposant d'une interface Web -permettant de gérer son courrier en ligne à l'aide d'un navigateur. -\end{description} - -% -% ------------------------------------------------------------------------- - - - - - - -%------------------------------------------------------------------------------- - -\backmatter - - - - -\tableofcontents{Table des matières} - - - - - - -\end{document} diff --git a/fr/manueldumo/TEX/fncychapleo.sty b/fr/manueldumo/TEX/fncychapleo.sty deleted file mode 100755 index 592c8c4..0000000 --- a/fr/manueldumo/TEX/fncychapleo.sty +++ /dev/null @@ -1,433 +0,0 @@ -%%% Copyright Ulf A. Lindgren -%%% Department of Applied Electronics -%%% Chalmers University of Technology -%%% S-412 96 Gothenburg, Sweden -%%% E-mail lindgren@ae.chalmers.se -%%% -%%% Note Premission is granted to modify this file under -%%% the condition that it is saved using another -%%% file and package name. -%%% -%%% Revision 1.1 -%%% -%%% Jan. 8th Modified package name base date option -%%% Jan. 22th Modified FmN and FmTi for error in book.cls -%%% \MakeUppercase{#}->{\MakeUppercase#} -%%% Apr. 6th Modified Lenny option to prevent undesired -%%% skip of line. -%%% -%%% Last modified April 6th 1997 -%%% -%%% Patch (Tomas.Lundberg@epl.ericsson.se) April 28th 2000 -%%% -%%% Modified by Jos Dingjan (dingjan@molphys.leidenuniv.nl) February 18th 2003 -%%% to make ``Lenny'' aware of book.cls's \frontmatter, \mainmatter -%%% & \backmatter, and to add an empty box to \chapter*. -%%% Renamed to ``fncychapjos'' -%%% -%%% Modified by Leo Breebaart (leo@lspace.org) April 2003 -%%% to make ``Lenny'' use slightly different parameters: -%%% - ChNumVar -> 60 points Computer Modern Roman -%%% - ChTitleVar -> \Huge Adobe Helvetica-Narrow -%%% - ChRuleWidth -> 0.5 point -%%% Also, I made the vinal \vskip -10 instead of 40, to make -%%% the spacing just a bit more to my liking. - -\NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesPackage{fncychapleo} - [1997/04/06 v1.11 - LaTeX package (Revised chapters)] - -%%%% DEFINITION OF Chapapp variables -\newcommand{\CNV}{\huge\bfseries} -\newcommand{\ChNameVar}[1]{\renewcommand{\CNV}{#1}} - - -%%%% DEFINITION OF TheChapter variables -\newcommand{\CNoV}{\huge\bfseries} -\newcommand{\ChNumVar}[1]{\renewcommand{\CNoV}{#1}} - -\newif\ifUCN -\UCNfalse -\newif\ifLCN -\LCNfalse -\def\ChNameLowerCase{\LCNtrue\UCNfalse} -\def\ChNameUpperCase{\UCNtrue\LCNfalse} -\def\ChNameAsIs{\UCNfalse\LCNfalse} -\newcommand{\FmN}[1]{% -\ifUCN - {\MakeUppercase#1}\LCNfalse -\else - \ifLCN - {\MakeLowercase#1}\UCNfalse - \else #1 - \fi -\fi} - - -%%%% DEFINITION OF Title variables -\newcommand{\CTV}{\Huge\bfseries} -\newcommand{\ChTitleVar}[1]{\renewcommand{\CTV}{#1}} - -%%%% DEFINITION OF the basic rule width -\newlength{\RW} -\setlength{\RW}{1pt} -\newcommand{\ChRuleWidth}[1]{\setlength{\RW}{#1}} - -\newif\ifUCT -\UCTfalse -\newif\ifLCT -\LCTfalse -\def\ChTitleLowerCase{\LCTtrue\UCTfalse} -\def\ChTitleUpperCase{\UCTtrue\LCTfalse} -\def\ChTitleAsIs{\UCTfalse\LCTfalse} -\newcommand{\FmTi}[1]{% -\ifUCT - {\MakeUppercase#1}\LCTfalse -\else - \ifLCT - {\MakeLowercase#1}\UCTfalse - \else #1 - \fi -\fi} - - - -\newlength{\mylen} -\newlength{\myhi} -\newlength{\px} -\newlength{\py} -\newlength{\pyy} -\newlength{\pxx} - - -\def\mghrulefill#1{\leavevmode\leaders\hrule\@height #1\hfill\kern\z@} - -\newcommand{\DOCH}{% - \CNV\FmN{\@chapapp}\space \CNoV\thechapter - \par\nobreak - \vskip 20\p@ - } -\newcommand{\DOTI}[1]{% - \CTV\FmTi{#1}\par\nobreak - \vskip 40\p@ - } -\newcommand{\DOTIS}[1]{% - \CTV\FmTi{#1}\par\nobreak - \vskip 40\p@ - } - -%%%%%% SONNY DEF - -\DeclareOption{Sonny}{% - \ChNameVar{\Large\usefont{T1}{phv}{m}{n}\selectfont} - \ChNumVar{\Huge\usefont{T1}{phv}{m}{n}\selectfont} - \ChTitleVar{\Large\usefont{T1}{phv}{m}{n}\selectfont} - \ChRuleWidth{0.5pt} - \ChNameUpperCase - \renewcommand{\DOCH}{% - \raggedleft - \CNV\FmN{\@chapapp}\space \CNoV\thechapter - \par\nobreak - \vskip 40\p@} - \renewcommand{\DOTI}[1]{% - \CTV\raggedleft\mghrulefill{\RW}\par\nobreak - \vskip 5\p@ - \CTV\FmTi{#1}\par\nobreak - \mghrulefill{\RW}\par\nobreak - \vskip 40\p@} - \renewcommand{\DOTIS}[1]{% - \CTV\raggedleft\mghrulefill{\RW}\par\nobreak - \vskip 5\p@ - \CTV\FmTi{#1}\par\nobreak - \mghrulefill{\RW}\par\nobreak - \vskip 40\p@} -} - -%%%%%% LENNY DEF - -\DeclareOption{Lenny}{% - - \ChNameVar{\fontsize{14}{16}\usefont{OT1}{phv}{m}{n}\selectfont} - \ChNumVar{\fontsize{60}{62}\usefont{OT1}{cmr}{m}{n}\selectfont} - \ChTitleVar{\Huge\usefont{OT1}{phv}{bc}{n}\selectfont} - \ChRuleWidth{0.5pt} - \renewcommand{\DOCH}{% -% JD - We add conditionals on mainmatter - \settowidth{\px}{\if@mainmatter\CNV\FmN{\@chapapp}\fi} - \addtolength{\px}{2pt} -% JD - We add conditionals on mainmatter - \settoheight{\py}{\if@mainmatter\CNV\FmN{\@chapapp}\fi} - \addtolength{\py}{1pt} - -% JD - We add conditionals on mainmatter - \settowidth{\mylen}{\if@mainmatter\CNV\FmN{\@chapapp}\space\CNoV\thechapter\fi} - \addtolength{\mylen}{1pt} -% JD - We add conditionals on mainmatter - \settowidth{\pxx}{\if@mainmatter\CNoV\thechapter\fi} - \addtolength{\pxx}{-1pt} - - \settoheight{\pyy}{\CNoV\thechapter} - \addtolength{\pyy}{-2pt} - \setlength{\myhi}{\pyy} - \addtolength{\myhi}{-1\py} - \par - \parbox[b]{\textwidth}{% - \rule[\py]{\RW}{\myhi}% - \hskip -\RW% - \rule[\pyy]{\px}{\RW}% - \hskip -\px% - \raggedright% -% JD - We add conditionals on mainmatter - \if@mainmatter\CNV\FmN{\@chapapp}\space\CNoV\thechapter\fi% - \hskip1pt% - \mghrulefill{\RW}% - \rule{\RW}{\pyy}\par\nobreak% - \vskip -\baselineskip% - \vskip -\pyy% - \hskip \mylen% - \mghrulefill{\RW}\par\nobreak% - \vskip \pyy}% - \vskip 20\p@} - - - \renewcommand{\DOTI}[1]{% - \raggedright - \CTV\FmTi{#1}\par\nobreak - \vskip 40\p@} - - \renewcommand{\DOTIS}[1]{% -% JD - We add a box to \chapter* a well - \settoheight{\pyy}{\CNoV\thechapter} - \addtolength{\pyy}{-2pt} - \parbox[b]{\textwidth}{% - \rule[\py]{\RW}{\pyy}% % Vertical line at left - \hskip -\RW% % and back - \rule[\pyy]{\textwidth}{\RW}% % Horizontal line at top - \hskip -\textwidth% % and back - \mghrulefill{\RW}% % Horizontal line at bottom - \rule{\RW}{\pyy}\par\nobreak}% % Vertical line at right - \vskip 20\p@ -% JD - Original code: - \raggedright - \CTV\FmTi{#1}\par\nobreak - \vskip -10\p@} - } - - -%%%%%%% GLENN DEF - - -\DeclareOption{Glenn}{% - \ChNameVar{\bfseries\Large\sf} - \ChNumVar{\Huge} - \ChTitleVar{\bfseries\Large\rm} - \ChRuleWidth{1pt} - \ChNameUpperCase - \ChTitleUpperCase - \newlength{\backskip} - \renewcommand{\DOCH}{% - \settoheight{\myhi}{\CTV\FmTi{Test}} - \setlength{\py}{\baselineskip} - \addtolength{\py}{\RW} - \addtolength{\py}{\myhi} - \setlength{\pyy}{\py} - \addtolength{\pyy}{-1\RW} - - \raggedright - \CNV\FmN{\@chapapp}\space\CNoV\thechapter - \hskip 3pt\mghrulefill{\RW}\rule[-1\pyy]{2\RW}{\py}\par\nobreak} - - \renewcommand{\DOTI}[1]{% - \addtolength{\pyy}{-4pt} - \settoheight{\myhi}{\CTV\FmTi{#1}} - \addtolength{\myhi}{\py} - \addtolength{\myhi}{-1\RW} - \vskip -1\pyy - \rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 2pt - \raggedleft\CTV\FmTi{#1}\par\nobreak - \vskip 80\p@} - - \renewcommand{\DOTIS}[1]{% - \setlength{\py}{10pt} - \setlength{\pyy}{\py} - \setlength{\backskip}{\py} - \addtolength{\backskip}{2pt} - \addtolength{\pyy}{\RW} - \setlength{\myhi}{\baselineskip} - \addtolength{\myhi}{\pyy} - \mghrulefill{\RW}\rule[-1\py]{2\RW}{\pyy}\par\nobreak -% \addtolength{}{} - \vskip -1\backskip - \rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 2pt - \raggedleft\CTV\FmTi{#1}\par\nobreak - \vskip 60\p@} - } - -%%%%%%% CONNY DEF - -\DeclareOption{Conny}{% - \ChNameUpperCase - \ChTitleUpperCase - \ChNameVar{\centering\Huge\rm\bfseries} - \ChNumVar{\Huge} - \ChTitleVar{\centering\Huge\rm} - \ChRuleWidth{2pt} - - \renewcommand{\DOCH}{% - \mghrulefill{3\RW}\par\nobreak - \vskip -0.5\baselineskip - \mghrulefill{\RW}\par\nobreak - \CNV\FmN{\@chapapp}\space \CNoV\thechapter - \par\nobreak - \vskip -0.5\baselineskip - } - \renewcommand{\DOTI}[1]{% - \mghrulefill{\RW}\par\nobreak - \CTV\FmTi{#1}\par\nobreak - \vskip 60\p@ - } - \renewcommand{\DOTIS}[1]{% - \mghrulefill{\RW}\par\nobreak - \CTV\FmTi{#1}\par\nobreak - \vskip 60\p@ - } - } - -%%%%%%% REJNE DEF - -\DeclareOption{Rejne}{% - - \ChNameUpperCase - \ChTitleUpperCase - \ChNameVar{\centering\Large\rm} - \ChNumVar{\Huge} - \ChTitleVar{\centering\Huge\rm} - \ChRuleWidth{1pt} - \renewcommand{\DOCH}{% - \settoheight{\py}{\CNoV\thechapter} - \addtolength{\py}{-1pt} - \CNV\FmN{\@chapapp}\par\nobreak - \vskip 20\p@ - \setlength{\myhi}{2\baselineskip} - \setlength{\px}{\myhi} - \addtolength{\px}{-1\RW} - \rule[-1\px]{\RW}{\myhi}\mghrulefill{\RW}\hskip - 10pt\raisebox{-0.5\py}{\CNoV\thechapter}\hskip 10pt\mghrulefill{\RW}\rule[-1\px]{\RW}{\myhi}\par\nobreak - \vskip -1\p@ - } - \renewcommand{\DOTI}[1]{% - \setlength{\mylen}{\textwidth} - \addtolength{\mylen}{-2\RW} - {\vrule width\RW}\parbox{\mylen}{\CTV\FmTi{#1}}{\vrule width\RW}\par\nobreak - \vskip -1pt\rule{\RW}{2\baselineskip}\mghrulefill{\RW}\rule{\RW}{2\baselineskip} - \vskip 60\p@ - } - \renewcommand{\DOTIS}[1]{% - \setlength{\py}{\fboxrule} - \setlength{\fboxrule}{\RW} - \setlength{\mylen}{\textwidth} - \addtolength{\mylen}{-2\RW} - \fbox{\parbox{\mylen}{\vskip 2\baselineskip\CTV\FmTi{#1}\par\nobreak\vskip \baselineskip}} - \setlength{\fboxrule}{\py} - \vskip 60\p@ - } - } - - -%%%%%%% BJARNE DEF - -\DeclareOption{Bjarne}{% - \ChNameUpperCase - \ChTitleUpperCase - \ChNameVar{\raggedleft\normalsize\rm} - \ChNumVar{\raggedleft \bfseries\Large} - \ChTitleVar{\raggedleft \Large\rm} - \ChRuleWidth{1pt} - - \newcounter{AlphaCnt} - \newcounter{AlphaDecCnt} - \newcommand{\AlphaNo}{% - \ifcase\number\theAlphaCnt - \ifnum\number\thechapter=0 - ZERO\else{}\fi - \or ONE\or TWO\or THREE\or FOUR\or FIVE - \or SIX\or SEVEN\or EIGHT\or NINE\or TEN - \or ELEVEN\or TWELV\or THIRTEEN\or FOURTEEN\or FIFTEEN - \or SIXTEEN\or SEVENTEEN\or EIGHTEEN\or NINETEEN\fi -} - - \newcommand{\AlphaDecNo}{% - \setcounter{AlphaDecCnt}{0} - \@whilenum\number\theAlphaCnt>0\do - {\addtocounter{AlphaCnt}{-10} - \addtocounter{AlphaDecCnt}{1}} - \ifnum\number\theAlphaCnt=0 - \else - \addtocounter{AlphaDecCnt}{-1} - \addtocounter{AlphaCnt}{10} - \fi - - - \ifcase\number\theAlphaDecCnt\or TEN\or TWENTY\or THIRTY\or - FORTY\or FIFTY\or SIXTY\or SEVENTY\or EIGHTY\or NINETY\fi - } - \newcommand{\TheAlphaChapter}{% - \setcounter{AlphaCnt}{\number\thechapter} - \ifnum\number\thechapter<20 - \AlphaNo - \else - \AlphaDecNo\AlphaNo - \fi - } - \renewcommand{\DOCH}{% - \mghrulefill{\RW}\par\nobreak - \CNV\FmN{\@chapapp}\par\nobreak - \CNoV\TheAlphaChapter\par\nobreak - \vskip -1\baselineskip\vskip 5pt\mghrulefill{\RW}\par\nobreak - \vskip 20\p@ - } - \renewcommand{\DOTI}[1]{% - \CTV\FmTi{#1}\par\nobreak - \vskip 40\p@ - } - \renewcommand{\DOTIS}[1]{% - \CTV\FmTi{#1}\par\nobreak - \vskip 40\p@ - } -} - -\DeclareOption*{% - \PackageWarning{fancychapter}{unknown style option} - } - -\ProcessOptions* \relax - -\def\@makechapterhead#1{% - \vspace*{50\p@}% - {\parindent \z@ \raggedright \normalfont - \ifnum \c@secnumdepth >\m@ne - \DOCH - \fi - \interlinepenalty\@M - \DOTI{#1} - }} -\def\@schapter#1{\if@twocolumn - \@topnewpage[\@makeschapterhead{#1}]% - \else - \@makeschapterhead{#1}% - \@afterheading - \fi} -\def\@makeschapterhead#1{% - \vspace*{50\p@}% - {\parindent \z@ \raggedright - \normalfont - \interlinepenalty\@M - \DOTIS{#1} - \vskip 40\p@ - }} - -\endinput - - - diff --git a/fr/manueldumo/TEX/framatex_entete_titres.sty b/fr/manueldumo/TEX/framatex_entete_titres.sty deleted file mode 100644 index 91d2289..0000000 --- a/fr/manueldumo/TEX/framatex_entete_titres.sty +++ /dev/null @@ -1,286 +0,0 @@ -% Style FramateX inspiré très fortement par la framaquette -% de Vincent Lozano & de Didier Roche, retravaillé par -% David Dauvergne (la Poule ou l'Œuf), puis par Christophe -% Masutti (Framasoft), ré-organisé par Olivier Cleynen - -% Cette feuille de style code les chapitres, sections, -% entêtes et pieds de page. - -% Dernière modification le 2014-01-10 - - - - -%----------------------------------------------------------------------- -% Chapitres - -\RequirePackage{fancyhdr} - -\newcounter{chapitre} -\renewcommand{\thechapitre}{\arabic{chapitre}} - -% Présentation des sections -\setcounter{tocdepth}{4} -\newlength{\sectiontitleindent} -\newlength{\subsectiontitleindent} -\newlength{\subsubsectiontitleindent} -\newlength{\subsubsubsectiontitleindent} -\newlength{\subsubsubsubsectiontitleindent} - -\setlength{\sectiontitleindent}{0.52cm} -\setlength{\subsectiontitleindent}{-.37cm} -\setlength{\subsubsectiontitleindent}{-.23cm} -\setlength{\subsubsubsectiontitleindent}{-.17cm} -\setlength{\subsubsubsubsectiontitleindent}{-.1cm} - -% Police de sections -\newcommand{\sectionfont}{% -\usefont{T1}{phv}{m}{n} -} - - - -\renewcommand{\section}{% - \@startsection% - {section}% - {1}% - {\sectiontitleindent}% - {-5.5ex plus -1ex minus -.2ex}% - {4.3ex plus.2ex}% -{\sectionfont\large}} - -\renewcommand{\subsection}{% - \@startsection% - {subsection}% - {2}% - {\subsectiontitleindent}% - {-3ex plus -1ex minus -.2ex}% - {1.8ex plus.2ex}% -{\sectionfont\normalsize}} - -\renewcommand{\subsubsection}{% - \@startsection% - {subsubsection}% - {3}% - {\subsubsectiontitleindent}% - {-2.5ex plus -1ex minus -.2ex}% - {1.2ex plus.2ex}% -{\sectionfont\normalsize}} - -\renewcommand{\subsubsubsection}{% - \@startsection% - {subsubsubsection}% - {4}% - {\subsubsubsectiontitleindent}% - {-2ex plus -1ex minus -.2ex}% - {0.7ex plus.2ex}% -{\sectionfont\small}} - -\renewcommand{\subsubsubsubsection}{% - \@startsection% - {subsubsubsubsection}% - {5}% - {\subsubsubsubsectiontitleindent}% - {-2ex plus -1ex minus -.2ex}% - {0.7ex plus.2ex}% -{\sectionfont\itshape\small}} - - -%----------------------------------------------------------------------- -% Saut de page avec reprise sur page impaire - -\renewcommand{\cleardoublepage}{ - \clearpage % termine la page précédente - % et force l'affichage des toutes les images - \ifodd - \c@page - \else - \hbox{} - \vspace{\stretch{1}} - \thispagestyle{empty}%page vide (sans en-tête ni pied de page) - \newpage - \fi -} - - -% Différentes sortes d'en-tête de chapitre - -%\usepackage[Glenn]{fncychapleo} -%\usepackage[Lenny]{fncychapleo} -%\usepackage[Conny]{fncychapleo} -%\usepackage[Rejne]{fncychapleo} -%\usepackage[Bjarne]{fncychapleo} -\usepackage[Sonny]{fncychapleo} % Sonny FTW - - - -%----------------------------------------------------------------------- -% Parties - -\newcommand{\partfont}{% -\usefont{T1}{ppl}{m}{n} -\fontsize{32}{30}% -\selectfont} - -\DeclareFixedFont{\partnumfont}{T1}{bch}{bc}{n}{80} - -\renewcommand\part% -{% - \let\@font@warningORIG\@font@warning - \renewcommand{\@font@warning}[1]{} - \cleardoublepage - \thispagestyle{empty}% la place de plain par défaut - \@tempswafalse - \null\vfil - \secdef\@part\@spart} - -\def\@part[#1]#2{% - \ifnum \c@secnumdepth >-2\relax - \refstepcounter{part}% - \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}% - \else - \addcontentsline{toc}{part}{#1}% - \fi - \markboth{}{}% - {\centering - \interlinepenalty \@M - \normalfont - \ifnum \c@secnumdepth >-2\relax - \partnumfont \thepart % modif font - \par - \vskip 50\p@% 50 au lieu de 20... - \fi - \partfont #2\par}% modif font - \@endpart% - \let\@font@warning\@font@warningORIG} - - -% En-tête -\newcommand{\entetefont}{% -\footnotesize\usefont{T1}{phv}{m}{n} -} - -\addtolength{\headheight}{4pt} % augmenter légèrement l'entête - % pour les overfull vbox -\pagestyle{fancy} - -\renewcommand{\headrulewidth}{0pt} - -\renewcommand{\sectionmark}[1]{\markright{% - \sectionfont - \small \thesection ~#1}} -\renewcommand{\chaptermark}[1]{\markboth{% - \small \sectionfont #1}{}} - -% les entêtes du document par défaut -%\fancyhead[LE,RO]{\entetefont \thepage} -%\fancyhead[LO]{\rightmark} -%\fancyhead[RE]{\leftmark} - - - -% les premières pages de chapitre -\fancypagestyle{plain}{% - \fancyhf{} - \if@frontmatter% introduction - \fancyfoot[C]{~} - \else - \fancyfoot[C]{~} - \fi - \renewcommand{\headrulewidth}{0pt} - \renewcommand{\footrulewidth}{0pt} -} - -% les trois parties (front, main et back) -\newif\if@frontmatter - -\renewcommand\frontmatter{% - \cleardoublepage - \setcounter{chapitre}{1} - \@frontmattertrue - \@mainmatterfalse - \pagenumbering{roman} - % page dans l'index en petite capitale - \let\indexORI\index - \renewcommand{\index}[1]{\indexORI{##1|textsc}} - \fancyhead[CE]{~} - \fancyhead[CO]{~} - \fancyhead[LE]{~} - \fancyhead[RO]{~} - \fancyhead[LO]{~} - \fancyhead[RE]{~} - \fancyfoot[LE]{\entetefont \thepage} - \fancyfoot[RO]{\entetefont \thepage} - \fancyfoot[C]{~} - %\fancyhead[LO]{\rightmark} - %\fancyhead[RE]{\leftmark} -} - -\renewcommand\mainmatter{% - \cleardoublepage - \@mainmattertrue - \@frontmatterfalse - \pagenumbering{arabic} - \let\index\indexORI - \fancyfoot{~} - \fancyhead[CE]{~} - \fancyhead[CO]{~} - \fancyhead[LE]{\entetefont Veillez sur vos libertés numériques} - \fancyhead[RO]{\entetefont Manuel de bonnes pratiques} - \fancyhead[LO]{~} - \fancyhead[RE]{~} - \fancyfoot[LE]{\entetefont \thepage} - \fancyfoot[RO]{\entetefont \thepage} - \fancyfoot[C]{~} -} - -\renewcommand\backmatter{% - \cleardoublepage - \@mainmatterfalse - \@frontmatterfalse - \fancyfoot{} - \fancyhead[LE]{\entetefont \thepage} - \fancyhead[RO]{\entetefont \thepage} - %\fancyhead[LO]{\entetefont \rightmark} - %\fancyhead[RE]{\entetefont \leftmark} - % \renewcommand{\toclevel@chapter}{-1}% pour avoir le bookmark au même niveau que part -} - - -%----------------------------------------------------------------------- -% Numérotation - -\renewcommand{\thepart}{\Roman{part}} -\renewcommand{\thechapter}{\arabic{chapter}} -\renewcommand{\thesection}{\arabic{chapter}.\arabic{section}} -\renewcommand{\thesubsection}{\arabic{chapter}.\arabic{section}.\arabic{subsection}} -\renewcommand{\thesubsubsection}{\arabic{chapter}.\arabic{section}.\arabic{subsection}.\arabic{subsubsection}} -\renewcommand{\thesubsubsubsection}{\arabic{chapter}.\arabic{section}.\arabic{subsection}.\arabic{subsubsection}.\alph{subsubsubsection}} -\renewcommand{\thesubsubsubsubsection}{} -%\renewcommand\thefigure{\arabic{chapter}.\arabic{figure} - } -% Ceci serait plus correst : \renewcommand\thefigure{\arabic{chapter}.\arabic{figure} -- } -% ou bien : \renewcommand\thefigure{\arabic{chapter}.\arabic{figure}{}} -%idem pour les tables etc. -%\renewcommand{\figurename}{F\textsc{igure} } -%\renewcommand\thesubfigure{(\Roman{subfigure}) } -%\renewcommand\thetable{\arabic{chapter}.\arabic{table} - } -%\renewcommand{\tablename}{T\textsc{ableau} } - - -% Remise à zéro du compteur des chapitres pour une nouvelle partie - -\makeatletter -\@addtoreset{chapter}{part} -\makeatother - - -% Format des numéros -\makeatletter -\renewcommand*\l@section{\@dottedtocline{1}{1.5em}{2em}} -\renewcommand*\l@subsection{\@dottedtocline{2}{3.8em}{2.5em}} -\renewcommand*\l@subsubsection{\@dottedtocline{3}{4.5em}{3.2em}} -\renewcommand*\l@subsubsubsection{\@dottedtocline{4}{5.5em}{2em}} -\renewcommand*\l@subsubsubsubsection{\@dottedtocline{5}{6.5em}{2em}} -\makeatother -\setcounter{secnumdepth}{5} - diff --git a/fr/manueldumo/TEX/framatexclass.cls b/fr/manueldumo/TEX/framatexclass.cls deleted file mode 100644 index e304a5f..0000000 --- a/fr/manueldumo/TEX/framatexclass.cls +++ /dev/null @@ -1,585 +0,0 @@ -% Classe FramateX inspiré très fortement par la framaquette -% de Vincent Lozano & de Didier Roche, retravaillé par -% David Dauvergne (la Poule ou l'Œuf), puis par Christophe -% Masutti (Framasoft), ré-organisé par Olivier Cleynen - -% Dernière modification le 2014-09-05 - - -% ================================================================================================= -% MÉTA (déclarations, pré-requis) -% ================================================================================================= - -\NeedsTeXFormat{LaTeX2e} -\ProvidesClass{framatexclass}[2008/11/06] - -%% Pour accorder de la palce car les calculs sont longs - -%----------------------------------------------------------------------- -% Code conditionnel: version en ligne = pdf avec liens couleur; sinon version "papier" - -\newif\ifversionenligne -\versionenlignetrue - -\newif\ifminisommaire -\minisommairetrue - -\newif\if@versionreport \@versionreportfalse - - -%----------------------------------------------------------------------- -% Déclaration des options de la classe - -\DeclareOption{draft}{\brouillontrue\PassOptionsToClass{draft}{book}} -\DeclareOption{versionpapier}{\versionenlignefalse} -\DeclareOption{versionenligne}{\versionenlignetrue} -\DeclareOption{sansminisommaire}{\minisommairefalse} -\DeclareOption{versionreport}{\@versionreporttrue} - -\if@versionreport -\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}} -\else -\DeclareOption*{\PassOptionsToClass{mer\CurrentOption}{book}} -\fi - -% Exécution des options - -\ProcessOptions -\if@versionreport -\LoadClass[a4paper]{report} -\else -\LoadClass[a4paper,twoside]{book} -\fi - - -%----------------------------------------------------------------------- -% There be UTF8 - encodage d’entrée - -\RequirePackage[utf8]{inputenc} - -%----------------------------------------------------------------------- -% Langage (gestion du français, compatibilité avec french, raccourcis) - -\usepackage[frenchb]{babel} % -%----------------------------------------------------------------------- -% Outils logiques et de formatage utilisés plus bas - -\RequirePackage{calc} -\RequirePackage{ifthen} -\RequirePackage{float} -\RequirePackage{framed} - - -%----------------------------------------------------------------------- -% Compatibilité avec les imprimeurs -% PDF 1.3 (en particulier pour éviter les calques produits avec pdf 1.4) -% À compiler avec pdflatex - -\pdfminorversion=3 - - -% ================================================================================================= -% Dimensions générales -% ================================================================================================= - -\usepackage{geometry} -\geometry{paperwidth=148mm,paperheight=210mm,twoside,inner=25mm,outer=20mm,top=20mm,bottom=20mm} - -% passer en paysage -\usepackage{lscape} -% ================================================================================================= -% Corps du livre (texte, polices, paragraphes) -% ================================================================================================= - - - -%\selectlanguage{francais} -\frenchspacing - -\let\Numero\No -\let\numero\no -\ifx\undefined\up -\let\up\fup -\fi - -\newcommand{\pluspetqu}{<} -\newcommand{\plusgrtqu}{>} -\newcommand{\eperlu}{\&} -\newcommand{\diese}{\#} -\newcommand{\et}{&} - - -%---------------------------------------------------------------------- -% Polices de caractères - -\RequirePackage{textcomp,relsize} -\RequirePackage{mflogo,bbm,pifont} -%\RequirePackage{fouriernc} -%\RequirePackage{times} -%\RequirePackage{helvet} - % famille à utiliser pour du Roman -\renewcommand\familydefault{ppl} -\RequirePackage[T1]{fontenc} % LGRx so we can type smart-ass greek words with \textgreek{ἐνέργεια} -%\RequirePackage{xspace} % Espaces -\RequirePackage{soul} % Pour souligner - -% Pour reconfigurer txttt dans le texte (police machine à écrire) -%\renewcommand{\texttt}[1]{\begin{sffamily}{#1}\end{sffamily}} -%\RequirePackage[htt]{hyphenat} - -%----------------------------------------------------------------------- -% Graphiques (images, imports, figures) - -\RequirePackage{picins} % figure dans un paragraphe -%\RequirePackage{subfigure} % subfigure dans figure -\RequirePackage{wrapfig} -\RequirePackage{graphicx} -%\RequirePackage[labelsep=none]{caption} % Description des figures (légendes) - -% Tableaux -\RequirePackage{array,multirow,colortbl,longtable,multicol} - - -\RequirePackage{tabularx} - - - -%----------------------------------------------------------------------- -% Maths - -\RequirePackage{amsmath,mathrsfs} - - -%----------------------------------------------------------------------- -% Paragraphes - -% réglages dits "continentaux" d’indentation début et de saut interparagraphe - -%\setlength{\parskip}{4pt plus 4pt minus 2pt} -%\parindent 8pt - -% Saut interligne -%\renewcommand{\baselinestretch}{1.2} % mieux vaut uiliser le package setspace -\usepackage{setspace} % Change l'interligne en épargnant les footnotes, captions, etc. -\setstretch{1.1} % Attention, c'est presque de l'interligne double (??) - -% Veuves et orphelines - -\widowpenalty=10000 % empêche au maximum la coupure avant la dernière ligne -\clubpenalty=10000 % empêche au maximum la coupure après la première ligne -\raggedbottom % empêche l'étirement des ressorts verticaux - -% Lettrines - -\usepackage{lettrine} - -%----------------------------------------------------------------------- -% Couleurs -% Ces déclarations doivent être faites avant la définition des encarts -% et la définition de la coloration syntaxique Java - -\RequirePackage{color} -\RequirePackage[table,usenames,dvipsnames]{xcolor} -\definecolor{fondgrisclair}{RGB}{232,232,232} - -%%% TIKZ! -\RequirePackage{tikz} - - -%----------------------------------------------------------------------- -% Hyperref, pour faire des liens (internes ou externes), -% y compris en faisant des références -% Voir aussi déclarations en fin de ce document. - -\usepackage{hyperref} -\hypersetup{colorlinks=true, - citecolor=black, - filecolor=black, - linkcolor=black, - urlcolor=black, - bookmarks=false, -} - -%\usepackage[hyphens]{url} -%\usepackage[hyphenbreaks]{breakurl} -\newcommand\fnurl[2]{% -\href{#1}{#2}\footnote{\url{#1}}% -} -\def\UrlBreaks{\do\/\do-} - -%----------------------------------------------------------------------- -% Encarts - -\usepackage[tikz]{bclogo} -\usepackage[framemethod=tikz]{mdframed} -\usepackage[many]{tcolorbox} - -%%% Tableaux -\newcolumntype{Y}{>{\raggedleft\arraybackslash}X} -\newcolumntype{G}{>{\centering\arraybackslash}X} -\newcolumntype{K}{>{\raggedright\arraybackslash}X} - - -\tcbset{modeltableau/.style={enhanced,fonttitle=\bfseries,fontupper=\footnotesize, -colback=gray!10!white,colframe=gray!50!black,colbacktitle=gray!40!white, -coltitle=black,center title}} - - -%%%%%%%%%%%%%%%%%%%%%%%% - - -\newlength{\marginencart} - - % Environnement encart fond gris - - \newenvironment{encart}{% - \def\FrameCommand{\fcolorbox{fondgrisclair}{fondgrisclair}} %première couleur = cadre, la seconde = fond - \setlength{\fboxrule}{10pt} % épaisseur du cadre - \setlength{\fboxsep}{0pt} %distance du texte par rapport au cadre - \MakeFramed{\setlength{\hsize}{\textwidth-0.8pt-20pt-2\marginencart} \FrameRestore}}% - {\endMakeFramed} - - % Titre de l'encart gris - \newcommand{\titrencartgris}[1] - {\noindent{{\textbf{#1}}}} - - % Encarts avec icones - \newcommand{\titrencart}[1] - {\indent{{\textsc{#1}}}} - - \newenvironment{leftbarencart}{% - \def\FrameCommand{\color{black}\vrule width 0.8pt \hspace{10pt}}% - \setlength{\marginencart}{25pt} - \MakeFramed {\setlength{\hsize}{\dimexpr\textwidth-0.8pt-10pt-2\marginencart} \FrameRestore}}% - {\endMakeFramed} - - % création d'une image pour le premier paragraphe d'un encart - % L'image se choisit au moment de créer l'encart dans le texte - % (voir dans le dossier /images) - \newlength{\padnota} - \newlength{\larnota} - \newlength{\indnota} - \newlength{\largligne} - - \newcommand{\encarticone}[1]{ - \setlength{\padnota}{5pt} - \setlength{\larnota}{10mm} - \setlength{\indnota}{-10pt} - \setlength{\largligne}{\textwidth-\indnota} - \parshape=2 - \indnota\largligne - 0pt\textwidth\noindent% - \raisebox{-\larnota+3mm}[0pt][0pt]{% - \makebox[0pt][r]{% - \includegraphics[width=8mm,height=8mm]{images/encarts/#1}% - \hspace*{\padnota}}}% - } - - % figure dans l'encart - \newlength{\enccaptionbottomskip} - \newlength{\enccaptiontopskip} - \newlength{\encfigtopskip} - \setlength{\enccaptionbottomskip}{12pt} - \setlength{\enccaptiontopskip}{5pt} - \setlength{\encfigtopskip}{15pt} - - \newenvironment{encfig}{% - \refstepcounter{figure}% - \vskip\encfigtopskip% - }% - {% - } - - \newcommand{\enccaptionfig}[1]{% - \\[\enccaptiontopskip]% - \figurename~\thefigure{} \CaptionSeparator #1\\[\enccaptionbottomskip]} - - \newenvironment{enctab}{% - \refstepcounter{table}% - \vskip\encfigtopskip% - }% - {% - } - - % table dans l'encart - \newcommand{\enccaptiontab}[1]{% - \\[\enccaptiontopskip]% - \tablename~\thetable{} \CaptionSeparator #1\\[\enccaptionbottomskip]} - - - -%----------------------------------------------------------------------- -% Pour insérer du code - -\usepackage{verbatim} -\usepackage{listings} - -% Configuration du package listing pour la coloration syntaxique java - -\definecolor{javared}{rgb}{0.6,0,0} % for strings -\definecolor{javagreen}{rgb}{0.25,0.5,0.35} % comments -\definecolor{javapurple}{rgb}{0.5,0,0.35} % keywords -\definecolor{javadocblue}{rgb}{0.25,0.35,0.75} % javadoc - -\lstset{language=python, - basicstyle=\small, - keywordstyle=\bfseries, - %stringstyle=\color{javared}, - %commentstyle=\color{javagreen}, - morecomment=[s][\color{javadocblue}]{/**}{*/}, - %xleftmargin=10pt, - %xrightmargin=10pt, - %numbers=left, - %numberstyle=\tiny\color{black}, %Numeros de ligne - %stepnumber=1, % le pas des numeros de ligne - %numbersep=10pt, - breaklines=true, - tabsize=4, - %frame=single, - showspaces=false, - showstringspaces=false - inputencoding=utf8, % utf8 dans listing - extendedchars=true, % utf8 dans listing - literate={à}{{\`a}}1 {é}{{\'e}}1 {è}{{\`e}}1 {ê}{{\^e}}1 {â}{{\^a}}1 {î}{{\^i}}1 {ê}{{\^e}}1 {É}{{\'E}}1 {À}{{\`A}}1 {«}{{\og}}1 {»}{{\fg{}}}1 {ô}{{\^o}}1 {ù}{{\`u}}1 {û}{{\^u}}1 {ç}{{\c{c}}}1 {Ç}{{\c{C}}}1, %put1 d'utf8 dans listing -} - - -%--------------------------------------------------------------------- -% Pour changer les marges localement (merci Marie Paul ;-) - -\newenvironment{changemargin}[2]{\begin{list}{}{% -\setlength{\leftmargin}{0pt}% -\setlength{\rightmargin}{0pt}% -\setlength{\listparindent}{\parindent}% -\setlength{\itemindent}{\parindent}% -\addtolength{\leftmargin}{#1}% -\addtolength{\rightmargin}{#2}% -}\item }{\end{list}} - -\newenvironment{agrandirmarges}[2]{% - \begin{list}{}{% - \setlength{\topsep}{0pt}% - \setlength{\listparindent}{\parindent}% - \setlength{\itemindent}{\parindent}% - \setlength{\parsep}{0pt plus 1pt}% - \checkoddpage% - \ifcpoddpage - \setlength{\leftmargin}{-#1}\setlength{\rightmargin}{-#2} - \else - \setlength{\leftmargin}{-#2}\setlength{\rightmargin}{-#1} - \fi}\item }% - {\end{list}} - - -%----------------------------------------------------------------------- -% Citations - -\RequirePackage{csquotes} - -\renewenvironment{quotation}{\begin{list}{}{% -\itshape -\setlength{\topsep}{0pt}% -\setlength{\leftmargin}{0pt}% -\setlength{\rightmargin}{0pt}% -\setlength{\listparindent}{\parindent}% -\setlength{\itemindent}{\parindent}% -\setlength{\parsep}{0pt plus 1pt}% -\addtolength{\leftmargin}{1.2cm}% -\addtolength{\rightmargin}{1.2cm}% -}\item }{\end{list}} - -%% environnement quote -\let\oldquote=\quote -\let\endoldquote=\endquote -\colorlet{shadecolor}{gray!30} -\renewenvironment{quote}{\begin{shaded*}\begin{oldquote}\small}{\end{oldquote}\end{shaded*}} - - -%----------------------------------------------------------------------- -% listes - -\RequirePackage{enumerate} -\renewenvironment{itemize}{\setlength{\parskip}{0pt}}{\endlist} - - -% ================================================================================================= -% Éléments autour du corps (index, tables des matières, appendices, méta-trucs etc.) -% ================================================================================================= - - -%----------------------------------------------------------------------- -\renewcommand{\listfigurename}{Liste des illustrations} - -\renewcommand{\listtablename}{Liste des tableaux} - -%----------------------------------------------------------------------- -% Table des matières - -\renewcommand{\tableofcontents}[1]{\footnotesize% - \setcounter{tocdepth}{2} - \setlength{\parskip}{1.0pt plus 2.0pt} - \if@twocolumn - \@restonecoltrue\onecolumn - \else - \@restonecolfalse - \fi - \chapter*{#1 - \@mkboth{#1}{#1}}%suppression de uppercase - \@starttoc{toc}% - \if@restonecol% - \twocolumn% - \fi% - \setlength{\parskip}{4pt plus 4pt minus 2pt} -} - - -%----------------------------------------------------------------------- -% Index - -% la création de l'index se fait sans makeindex -% mais en utilisant le package makeidx - -\RequirePackage{makeidx,index} - - -\makeatletter -\renewenvironment{theindex} - {\columnseprule \z@ - \columnsep 35\p@ - \begin{multicols}{2}% - \parindent\z@ - \parskip\z@ \@plus .3\p@\relax - \let\item\@idxitem - \footnotesize - \raggedright} - {\end{multicols}} -\makeatother - -% titre 4 et 5 -\setcounter{secnumdepth}{5} -\setcounter{tocdepth}{5} - -\makeatletter -\newcounter{subsubsubsection}[subsubsection] -\renewcommand\thesubsubsubsection{\thesubsubsection .\@arabic\c@subsubsubsection} -\newcommand\subsubsubsection{\@startsection{subsubsubsection}{4}{\z@}% - {-2.25ex\@plus -1ex \@minus -.2ex} - {0.1ex \@plus .2ex}% - {\normalfont\normalsize\bfseries}} -\newcommand*\l@subsubsubsection{\@dottedtocline{4}{10.0em}{4.1em}} -\newcommand*{\subsubsubsectionmark}[1]{} - -\newcounter{subsubsubsubsection}[subsubsubsection] -\renewcommand\thesubsubsubsection{\thesubsubsubsection .\@arabic\c@subsubsubsubsection} -\newcommand\subsubsubsubsection{\@startsection{subsubsubsubsection}{5}{\z@}% - {-2.25ex\@plus -1ex \@minus -.2ex} - {0.1ex \@plus .2ex}% - {\normalfont\normalsize\bfseries}} - -\newcommand*\l@subsubsubsubsection{\@dottedtocline{5}{10.0em}{4.1em}} -\newcommand*{\subsubsubsubsectionmark}[1]{} - -\renewcommand\paragraph{\@startsection{paragraph}{6}{\z@}% - {3.25ex \@plus1ex \@minus.2ex}% - {-1em}% - {\normalfont\normalsize\bfseries}} -\renewcommand\subparagraph{\@startsection{subparagraph}{7}{\parindent}% - {3.25ex \@plus1ex \@minus .2ex}% - {-1em}% - {\normalfont\normalsize\bfseries}} -\renewcommand*\l@paragraph{\@dottedtocline{6}{10em}{5em}} -\renewcommand*\l@subparagraph{\@dottedtocline{7}{12em}{6em}} -\def\toclevel@subsubsubsection{4} -\def\toclevel@subsubsubsection{5} -\def\toclevel@paragraph{6} -\def\toclevel@subparagraph{7} -\makeatother - - -%----------------------------------------------------------------------- -% Appendices + pour changer le nom des chapitres en annexes - -\usepackage[toc,page]{appendix} - -\let\appendixORIG\appendix -\renewcommand{\appendix}{% - \appendixORIG% - \renewcommand{\chaptername}{\appendixname}% -} - - -%----------------------------------------------------------------------- -% Footnotes (notes de bas de page) - -% Réinitialiser le compteur de notes de bas de page à chaque page -%\RequirePackage[perpage]{footmisc} - - -%----------------------------------------------------------------------- -% Épigraphe - -\usepackage{epigraph} - -% configuration des épigraphes -% épaisseur trait de séparation -\renewcommand{\epigraphrule}{0pt} - -% taille du texte de l'épigraphe -% \renewcommand{\epigraphsize}{\footnotesize} - -% largeur de l'épigraphe -\setlength{\epigraphwidth}{.8\textwidth} - - -% ================================================================================================= -% Titres, numérotation -% Entêtes, pieds de page -% ================================================================================================= - - -% Ces incantations sont déplacées dans le package .sty suivant : - -\usepackage{framatex_entete_titres} - - - -% ================================================================================================= -% Misc/Divers -% ================================================================================================= - -% Début du document. Doit-on vraiment mettre tous ces éléments là, d’ailleurs ? -\AtBeginDocument{% - \sloppy % Ce sloppy sera actif jusq’uau \end{document} - \renewcommand{\figurename}{F\textsc{igure} } - \renewcommand{\tablename}{T\textsc{ableau} } - - \def\appendixpage{\vspace*{8cm} - \begin{center} - \Huge\textbf{Annexes} - \end{center} - } - \def\appendixname{Annexe} - - \frontmatter -} - -% Fin du document -\AtEndDocument{} - -% Nombre de poules -\newcommand{\pouleVersion}{0.1} - -% hyperref qui pète les ouilles -\def\Hy@WarningNoLine#1{} -\def\Hy@Warning#1{} - - -% Mystérieuse définition de distance -\setlength{\doublerulesep}{\arrayrulewidth} - - -%----------------------------------------------------------------------- -% Fin de ce fichier - -\endinput - diff --git a/fr/manueldumo/TEX/images/FK112.png b/fr/manueldumo/TEX/images/FK112.png deleted file mode 100644 index 38b2200b888e38278f52f7340ed0e61d1a1006da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99698 zcmV)7K*zs{P)PrFwVe(VYyY1<>T)Edke(kq@@TT88YKo5cG`F9< z?OAu+e9dmskT*W?W9|Q~uItbA*5z$4y!{zBTr+LvKl=24@W4l{sE{(O_oJVA_8oUz zyFZz@-1nAOf8{6d<@m{v(!@Kz>=}1lf6Y!xjvqbuW6Sr200M#<<~;sSFTC@%8?Q<~ z@rAeN-^~<=2tt66{@=dnnRi@&b~=IcpY8sWga0N1!Dcu9@X;@M_VqW-W+*@Xtv4M% zl9fTJ&kF_Qhi<#&%Z@+u+H0Hh7egax013hLQ*XKbj@=iYx^~hw{qMcYZ+-16-NQ?S z7k7`23;KNzzBh{!2+?f)3!c754-ZCoAn0HOAAHuW z&${{a)cBEuufgMoO0Yh7Bo;&ezdh&XXFlzUwozEwT|gbF?9Ro4R(2PVD9Lx`Vd!Ov zM}2Rn?P79C1F6`lLr|@@GG`|7pznro-1iXK$tbPQRbKtIxmr)OUW_rK@{$1POv5 zNif(S-}P&g*L>+I@3dRZR#80M!>5dgRKjZgT_^%cPFAnQAb02uV;FaGsK9}yr4kgUQ!D&pmr zJ;Cbg(n$g$A_5Jqs~z7z+)SV3rcd>yVXF_lK-+$qtx!zrxdMN<-`GvI-!=l(#QH)6 z7$hTt5izc=Zj%BaBS-=us2=0Ph-~dFx9p>;nVLSqqGfnpRg+n$s6q)rqyXI3IC(Oa+tvi)$wiY-c!7-4{-k$bD<}EX zy2w96NuT<45r|Z&Jz)FiK{^Q_*4rYu%<-;wRa8YppKv>cfQYGS(nfXS0@7^aqNLb_5Qg|P zTmi^bx;{^2x=VLzwmk|(r@EJ>6El-(7SWu18j+Bb&j<}bW>i{Az1dWv&1r8kZIdiz zhbj`vnTMj)m_;a}{uI}k5kfbgMVOT2(|~#^I?ZUBs}*=|Pnk8XheOP)X;P!bB_)<{ zNp9-R>G-a>0l?M<5WlZEi4yqtcZeB=HkRtiK0d@x{Q zE&$2Z!3ox7(7LFHW*DY zP;G8Vwb6qssy7gTLK$>BINo;s%OFQF`l0F~7!raQ-IHMR-ii+f*DUMR5BFnTDn$r_ z5jwcWsPewPJ;v3OF+M6uP&Z~p)@u@O9*I)_g#gFAu()bATdsOFhA==tRqsC9NvCZV z2zYTXbrlE(gYHf+BEn_cA$fL$JHQ|YR~It6>AHmi%H~1gp5045#LZJ+1W|C$UQ$Ub zE4mN~n9C9t)FMl02zp&W(HSSq-D=fOuW?--HC>7WfzTWDCcsK%E~4377F9uH2@O(X zu1qUGoE(b=a|2H~?<_Pe2n!22rhpn4pry>iq?mI7rJKt<5=wF|ppmlrv6Q@b=1~}? z$2%!01FEJ16e@_~GU-|?B8B%rGZMlZ=g0h1)1WgD}o!gC0Vw(Dr z8XUKI+NXIVvE0X^4XVhtO)Sz!=_Xl07lg1r^r+|DSzZ6B@0t`lX0wtur?RthPFH*X z*G=?Pbp1Q10~+I|wCgY{@4NQt1L4QVKglxHCf9ldgd zsCozihD$VIv^+%QfQBi>0)R(BfD{deMi2;BfdC9qHS?gNWSMv;=nnJV&hC*dyPy)2 zX0L}Mry$&X2o1UX8QXmp87BS!lAKb*=GS3%{mU7=Y+fPYgI}z#cn|@t8c6~aQa~M? z7Rk^M#KtufU=`wnEBj7)>@hF7*i1cVZKFe*u?$JgN}Hvj6OwvjL%H_Fqklz+1POsq zmgV5gY^IkogDervvY#}o$!Aul_II1fL=X%Quc8*LZY^q@?h&D=2LP#ZSfwryBm#^G zcV*wvtDwe+79<1=cnOa}$t4hk#0V%PLg?Zi5#cZbq=18GuP$&cj37jl+T@&0WZq9F zyA5ZTa#AEr+=C(rhJe8c2f{#vN9)qBV%2rsq!gFbq>1HvsN;bK)_7=myowhB6cUIb zE)M{7O{Mh9<@8IC_jf<}Tj%z#{)+wGQ#)bOUwZ73&;EDo?9zjt(M z7T@v7cfI$jTd&*c4h}y0So@L}-_WK>l87K7qjX>ZN1KI!8`wgQ@iG@h4BaCap)(bC zFHTA@K&Ua~$ukpDBc~^WlmP}piP(9C$2?j-ziB^pmm$ivWtL4gCN)8Fp(qu@emYji5DY>`=)k_EHUgyP87VS{@UEUCd`sKv(L(5#u7P23{xRE~C8V0t(E?}5 zipf(bT#cDeun0T&q&BnJGz9}u+&#hzSXfv*dlb(Z#Us|PIK(YH9OUT2 ziHPdznEP1;+X%rRMj=6GUM}XXd-AFSBls5zq8^&Nn?nQ6Dk^KwLx@mN>l|8dyT9nn zl%9h}KK|G9>#ly$9gEwPXxiwq6Y#z;>8-Cl_n{B}RKNfCUV3GgKy)!t|I*w4s-bh$ zX_TGQI5LLA7^9v=b!ydC1~{gQJ;I}IczAVV2U(LmgoiLABctm&VKJ$3Oh!Cu!Wsgo zKtwsJTsmn`8G*s)Zu06iw-Io6AlAt-vI3)0NhHMxP)x`WyE##Uq{R;E4NU9hciaE80Pk}MV8RfQXq z`Evf*yNF8wiXop;iY5+A*IQo0rkEY2@&smXb7UuAuP!o zhqA*|qJu`EWNV~Bcy`cO>lh&nf})9rzVBB>c8&}LrP-M#Td_x{9%0dRp%NNR7XoTD zT`0n$>0QN#*WIG&-B41bj^f%Wj#o3j^ResSc=M@tr!?q2kOV4>61bvY9`hwHc>J?> zz4K@P+Sh*RvI$z|+2zbKrvloPJU~QM=Q5aW#ApT(gCP$OI=mv6s(2uZ;bKX>e6GEa zc3faJJ0&Y2dsD5C`Xqo-1r$*NW2k*HOBul;L((DE?;?a?u;gG($OItbR0@>27suvfAO%be|Cgy2+l(0Q8CmqLl1K>ubWn!C@g{8Ph@xFLw#BeSV5YXMTAV}AUF$)yIKxzzLB15YM zBp3mWAiVDvVbW{ROO6COYCSvX03WsS$njNRbNNkF+jZF=<*0m^Ab93 zKJl?T-fE}!OH+`PuCT~Ctg%C#*ko^2PG9}3hd%fRe{l2PdCAUWv%TXB(@E2Xq8LL3 zXjWhdDiAsu!wn$@oL(bp(j(|KNY2m$&k^^{V}EaA)1rOXtD8!RUg47`&zOjYNGMD; z`IEH4lR=UtNli9w_$2FxFU3PfOh+NY1EiOdOX|ZAMFOSf>>}E{y!5$QV_;+$ZT3gF zkjM;#1TgFM%rmaH#T8}gd&~RVvr?jm)~5%+5(8>Xy+@Q1C5DJwfEYk-DWTO%6c80R zA)*B6C3^{@RP0k9Lm)1Jh+y=`4X5wzFJ(p3hZx;#esuG*Zo6SGFQMJy<9l}$cVNry z2pCbk6cu_YrFg(0wZsJhpjTdlo~tIL2;3rPq~$|jxFYTC8S3(iQ#3r28SY*@ihEy} zqc}+D7-2*)ui2_V(1i?2cu}MYJm*~F;N3Ktx4U zNwHcE)ewb1KvgOeiU`1IgzjUpfaGam!lIG3Gw4L4^-yv1HmkCaUW-fwZtX-xb}`wV zgKpHuMU$J?g15PusZ?cJ(foLO%aMt&9Z^a}^Myn-<`xN0r=s#-PP)mvpru2<} zV?+e$y>U^%{@gu!6{plaX?8^22yqdxA0+aLA*HG$VR8+v;*r+C(HjO!ctvDu8KVv{ zoJU{E7U-8yml6@B^hrzS3g$821(9xle*U3@tAvaaB%gE3@%;XC2S-yN2$3?I$m!JV zN>KZIKQ=j|#hsJ9j^Q*5qIk*1j?w2*sa@6oi9|%sIjboOOJ2utf>5uqO6klZgr0Lj zjOl9^M}S-{^vqYBdHk{EqmM3AmSW1H`?uQJqs5hNlMHoLTbaBp{YG)?p+b(F$YpR?zV=n*-xhnMIx3v(`s zH7y)YdeJgkdJh7OkSGjN!@IT=l2Y+Cj4I&}VPp@^+m+>9U_yY3&~SlA-}QY*Gl%;M zLa3J&G$8IPsXvzx8gf}dqRWVRlId}om(GuKV`Vv~X(XOn(NMJP%(KuF_7{a^*6V69 zn>5SlR)?B2RP$Vsig{U35yG+vlcG@;VW37{)TDP_)}LhoMQHR(Abf^?9;-*b^UABb zW{D6F6Q@?N%qVmcvsrf>yVpH>>ejpNe$y*obLwzMRvsc^Sa^bmbrJ<)H5ML|CN)o6 zT`R#740jKf2$U$*;>)rto)&j=y7c)pB=swG13VTHo~Tc#a1^MBnz$Ji8kLTa!0PLC zk%~)Xcp#jh&?T`5r)4#j0!QvM*C>FLyN+PS!xEb^prmz-Lg?w?IkR!4t&PjlvJ^JROKj%+OJ23#3A zmtH)Fmt4X(TuMctM9IB|AhYy2Zy{qxu;i}mlO+dj)%&`j?C6EPd52;@<%jwcvbZj^zawEJixepB-=f02aI<*ieFOo;DTrQ`P z*#S#*$$S6Z9ocV9Z9X9c%OVBrJECKu7kAHI`Y0$-X<7jRrI0JsCzSM*<2UR9%hq+9X*j;lqrOiR44#S zDimh%rZ^ZH$%{Z*o#Z~a6i&ijxk$|+39zv_$fnb74(PF^R<$@Rn>tB@d6pi=Qd|g& zQoMkPCDQ{IZE=7pQVxVc`W~U)MCwAL?UrW_r@x7Bm>f=un1jsQ)V?vpmT>*U^BbGf zPkY}z@44^qp1m}iPs4?U4dzVjX7v8(!ck6*9<--tH!PdJ%nD6coJfbsoTA{Wzt7L^ zI|~^VU*ESi0Sgi5*-1q2Y+O(Rk+*{5gr!-G?s+3jiKJxJg&Yazu zwuquZMqm~)?G{&9DNK`I(a!cJIUf4tqr0>Ho3A~(?_8to41_@8C<-sR>rgt+U7xL} zMy(vd;Pl*g6C`C9xyyyy^^HK3oV#QtP`v9)85Dw|E^tQfSDm;=Gu@RPw*;_6N)1l8 zyLs`k&(G!Bv$tGv{&Vx5E`btjNLg~6ITB>|~Xv zQYfcZhu6q*r^8AXg{z^8Ds*~c9}$r=RHDh!gK!I7L0!a~o&ri~x==zr^)3wclq&@b z+7c_e=Z?_QG(BjA$VDB6aMCv3W zf`wj6IrjNO=hPDpQzw9~02moPqPXdkCQVe$%o7=@GTSMs(qIW*+pq3@SVVfVW}dxe zPP)>U&2|+fim!61HEjWbRdgurvt~w3Y3KBQX%EjWD3Z##!r6)+emGs*%&wa?QV>QI zmJ+tp?nX1=l2&%4PrUo?UQS)Jclw$u=Le4nmsv-__9#j(eb+Iq!k1lkSK*KaE#hAK zzFS6CcHVWXyiOK{I-|Z-&4TV-*OztCUkGHB-1SQYGNx&t#UoUx32t`q_{X~0Ej#-+ zpVs>yKJ17hDg~Q$m99%gBloMWs{&&3|_jXCLvBn&2D6L^kC$EW!-9%vSc$4?H$L{tNk%Om2#}4%j`sy z0g*7eN6!n*sn(}c1H0$}p#@eHLJK-7Aq5?UP-hpy5XWkuv}E6~G)uv1fq<}JsR%2W zS~3fkZiOPS&}Aq%{0yTkLP;f-Az&t!p#cq9x_}l~g@iz2DIwkjmek;C@8DwB+%hSb zrpx)>LE2QRx60PR&X(HVlsyTx%cXM6Pdd;2@?x>fCp!&M502R&BdN6q2=4>VoV6ws+T z3uSJQ<7wLzwI@+H5tC#oMI;UdD@XzX8o?J7Z(CE)vlj-nGxer_{GoExhe3KjEDH)p zQ*KexoHHy>Uolm#j#hSj6l#S<=F8)Uk9JG!+_;aHy+{%w1TKwDG?y$hL0+A||6;q> zT(vxX!>LL4$@53WP;Al<>4&fol+|M1G^xw0!{eod$SB>4F7j&L#KeThWpOxPaHRE8 zq6f=rIZs8+(U-%1u_od}2w6q$7OiGTUbVo6Kp^v_g7stHU^+lQQyOHJXE!Xe{QdsU4ro-7$}AdW4{Y!Z2np%S*PL z%$n5tGzTFXHHJe(RXC5XQdPYRK}c{Ff@1Eg093qjQJRVfBrJp~&{oBBhJu<`5&|Vx z6bU7l6oiE@LlH_}RRzo|Dyb2x5O@mjLPIEdC81&AOG;Qdx4(L*>|B)SOF6%DyrpcF z&|STpI`ay4G0ofl_Q{{TE8qFR>{6Z{P3cJak^2sw@h#R#g4msRp8NR6FTVeQzphN@ zqYvcO!c&)zAAdY!a`Aasq$!R@ccBNe-MrL`8XTfJQs>-@Nkuy)}Ey5t(w#t zYZ@Pmt4c5ptc`$}reuPy%UyB0^`>rl`QR5Yv#DW~&*vk`x(?U4Tk(m@@%@gJq_aiF zs$as>cH6Ny*2LKIXGiv3qu>-Q9nvzj%;S>x+Z}*(h9>S4SpGGhbeOd~t!7_ba9O z5|dooby+3PKGUV})nUwqi4>?G^wC{-j4Tn1>f|ERWic-t()QHA@~ASNhC~|RkYHp+ zSwSwWj*cZT);p+e3Gw6o1HYzqJ6xUb54)OV4y|FavMIDr(IR_X-7dQr(K1n z)2=Gwq@!~4|D1NUg3)$Dp~j>GqRm(?&++lcC8F%aBh8Ro+@eEPY0lb-l%=~bmuH^- z*>}J4hIv;~a|FSvYo0ZkKQ@~{rmpj)J@52K9(>^4FQ3G!kLWsQ?hcoS#jd^K%IPCB zTl&Q*2Z988lt(A?i^qE9(W>buQ#9Q|Du;Z(ZLN_fft1!XlXlX$H&HWN8Uo4>2uNo{ zlRNk9%hmkStTuxnYI~I$3`4nk&AeOF3T0r6$-q}1>O}y=G+9b!I@D%2jER9Lx1sQ@ z8Il|FGXjESrqG(}kM;f%4oVVBNg;4J>0`43KnJL1Ng5Fb%2?v5?1G?&(#(>iAx9N4 z79%#zcGzmO+Z2olBuyrbh;fJuIPowFK1vRxu$;AVe%BOJYN7nQ5}Rkx$%}cE#0ur?1$ZHtl56wv*IYGO+|1NQlKn zRr=-m=e_n7`2YUJt^Jm#ZcD>h*%L77mbA4 zj$jN#j{f3f-~RVkpMGRCi6Ss*OpLm2cZ)5HAB=V1qYOqX2D%zVlcr>ih*qjf?X*E) zEH~1t;|>8;q3f=2A{-uqWGRIqBs?4vLjzuv02^r=YXFu?k;hn1@l20K+cq^O&gdfw z19Su#r9^g>wryr930O(`wfj0E!re=RM<7fziK>hpdJ#Q=Ni%D8n#2$Y!nd1;*2&6I ztHOQh?q>}J;N*|dRst=mT_dDX9$zACjvM3c3tF*A|1Ll8uXF2J_k znN4?6Bcpj1kSHuJVWLS*EBmDqi>v!6D_?aQsnJ>644ptCq5>5tMId88VI@3lxFBo6 z=T;{N#?~Z`#6b~}p|5!SR!sv%c$r5Vd)3z*-{G@mt9c%X@ZOh&-q>U|nN6C;l2kW0 z2J}ICc=qB-QAoJw+=mM+Nuz3m^V+N^f?m8l=hNpe)yQAgdn^!e_uTRM^$7~Z!2m_& zRQ~)!qvaH-JjqQ9PHZ)ZT^)Yr>z?<|pA$1cOicz7SQ>y*gk)Q!{`h%+|KSJMo`C|0 zlJ(XYiTdL=*3fv&iR-Z7p}`X>TH&Owhb!pN5<)^pnsnW6DpW*tY&KURL}024!@xzW z`$EuZq^hb4ga#&;KuCqEg3w6Ps3jGIG(~H(CKaxrL`4tbDnMmZRlMsF#l1uX15rOu zN5FhpCwjF$vhEig;jwTls3WA-JfR}8rVVi26FMO9`YuszFtG?wM3SWhL5K{!t&kev zRTfHwYe`%9N>~A+%0TTz?SJK_t7z!5AI3AVDp)9DSf7l&!(2n<%Ub{IH;FM^2DY5{ zx?8=fr4C6WvC|gRWVxSF2yA@tn zMhS;O3zYyNW&th3=BYsFx|t6{kr?9Z+J+`BvgH&;wk*b0a0I^?1d8aGeX2c7g~gv6jee2O6#Yg@eebuZ0Jew&|(f@*cP4_0hAJAqPCtrF^sGjA9N@J{mxzMmA>$=S5iQf zA(E-?^2471p7Z>Vd<=Nb3$}xT!8e`xrVlKdWR{a9kReP1VVb<}ZY|pP-|!yUk}VN2 zh^lS0e#<6R@}jYxw5&&Itb4B%X^OCsSa5f*_FzE)^ts2$4^PJ~yqJFsZQLa1ZzVND{z zwhXS@S-&{Alug(H5m6349--TrfuTL*M5iI3F6M&_20-!kkR%b2DD^siPk} zQI**wO@`|P7)V6Jx2kkb&u~%Ga0a|*$+omcZA?|Ly20WkRAH7hfdU4d1nCtUafBCO z^&TPtQ4B#*wL$9&i?b8}yzA}jjr-o0Kvl!NA5^nK%1^u#_@4OWJAvFefXkB}H8i6g=q$B_Y0>UP#H+g7Hg{9h$VTFh)5tJa+Xq`-4T&j zl2WpiMo`INB1{BDn}!gm4j#rsK!z%3%8A!e1JObqa{9xdU8<#NAVAg11X zzs8*kkvqTV9eBs<-a)+X8D*32Bv7it?L2TtpWB?86m=+D8bdSox;L{dDUG}B_uYH$ z+#Pp3HzhM0aqtO+V=zL-Ry(PKN;c;c0%%QbLlJfS!O&brxKbmep0H>PK{wZ}u<)oc z9IZB8Db^(zbJl@yW)M1+>r@SaD2Omg$r8*J1!3cISrkfmD2RF_4tQ*aCIlg>Nfcrf zrGgsVuC~=~mtoYzdSX)TBdot{Mru(+%tbILmz)^PRMF&!C}Wtn5I!)2Hn=qeTEoeq zgG#j8=WPhKH5x}mRYxF-ZFv?E)r!-pJdxl5l_H`8JmiVVQo=DxlP$ct<*#JBE52SB zvboLLy**J5Q^pRS@jpUpH;TJb6-v*QRT{-KNfI4`xEjp{qycK)zV1E4Yj1@F#7*j4 zQdH7DhkA%c9yAWJ&VLY?c6m8$*!Kbe-VQ9GrnxJN3MdCqcbmWNZFrmG`)2t}+OO%EY917n6;k#GN+PvhbS)cy!2YKUPIsB;Iczqo^IJWd~yM1oJ6~m;t z6AC%zKSi}RM`F9^L5--`U#o*3lP9C;BejmZvQPhJjSz6B zD+_?YCE)Ke_=}f-xoFb7%*TUb4jXwx{=PQ?|Mcb?=j)Mg0Ku*syKuY|j|y=amg+z! zfY_Z*_xlx6-M@1my6@)M=iYz&HTOPz)Ba6YK?PFY@-x88|INnm2FJu{wQ=PwU;eW0 z8*cfR-}uIttq)j5fBn-xB%p%qzW!g|IS#ZN`V2)y$Bm#!oO|`Jo*6XmH-7US4NNKm z3&eWd4H@^m>W`a`{=MINxCeco3w ziUJW18JZw#17hvC^{B(FEH#a#p!g8sZo-(VfkQTXEykl**YbM}IWNmmghYhvX4odG zAs|2>b|WHcoxCdQXuxXFD?>{kW4)N6ofG7M562W}t+1>Iimj)qje@1B3ZbG}wb}tK zL};ioROCrYoE!-b+wEI}9iHD%Vu$ET}LzElKC{rQ(|XW7Oqqpb6(YUwv_{W-g9?aTzKB2wFa5x@Pz&m0*O zLz`Fiosbv~(h^crmFn*Q{IjZ}wPH|1jdczv8nnm%=snLI$^t+BGeUf-z7t4|O+;ZP zCUpW<5McBAZ+`xju0pztiw`5f5s+cLMwN4urfnu>a1;im#x7OLb*C`fKF z3Kxwus;Ff;9UAC~NZyn zD(`DF+^8X39h89e%vM684kL)sCPW?LRjOmOT9pRi3az3$IJ4kL&=a9Xb%FzMubXaF zF17}FZqK%<)UP3DOXX-EqN05flcBu4spVq~UB8&Y!4r|}m}le~(vBQf;TNIGFIpbg z+0|h-F2hWf!W^a^?m0MAvFj&TYtl4rJ82uWnzS*hB{vUY2qU1ZY*ML`#E`K_BZB)+ zq;WY&EP;$SRK_}BrmA8#k%2U)qN2HfL&lrlfH%BpcUH5L18uRly`5^=Y zsw$cinzn7*w%vQ$4Zi>FH{5o}{cFk>&gkGlO|}23U%c*je)YQRuDe@*?M*Me=^vCg zUH4;}zxvwiZVZw4yy|0(bYJy(x%;~7Zg{im7jC%z+bJSrcD+rZ3p}7yaV3*L^$Bz4(HjfAK|u$gkdb)9=VV-+1S(cbll*bMt?^ z;f6P(fBDmHzRmlW|MD&GRaK2Qe(lSpni+k?|M7F8_r3bNMK65C?YF--1)CkdciM=)luK;GVd@#hU@TN)il*F+rDlM;zsi5#wT(;mm}&p zpr{~pGfG;dW)(TIQU*^X9J)&@U4r4cc+NTJ+~<;gR96$kNJbmx0o3$U1bj6!W`GNUt zwlkehcV@HMWICM=f8ryCgu^&IWj$h{R$Uc>RE_HH^V);|y5I2lzJ=?3FB}m4w*s$! zJzoD{gV*4ff8;;l?Z1D;*WL22@A=yAKKnkbUjBPujbC{ESwMitzWIH3E?@ED=l<sKC7 zKK892KJ$f_eXarF_dfji*S+{}ycgZq{@z#MpM0T~p?>kMO;+pq|I6$B2j1~+bbsd; z?l}LdUkC78`nmXt-@W~tK6>WyzxfL{BK6$U5l;(b(i5h8n+Y=grA*l*)bCrsUM}tHwAdSJntHw#OjW=_MXM3~!Y%h-l@E z=s0CPLOn%QIU_|Rq82DQ3=vhBX_E0Tdhnz_S(8x&VYO%{8Vn=HDZU_RLBck!TTj%_ zHib#Z3EJX1i6UDpWsd1g+0+QOuiV6cTb1zfk7bZhxyd>@I+S14KY4>BQ9F7>#dQQ@}VtXH|j7;uHTaUHX>OAG__jSA7~6A8dw? z{f{pPmiYY!pMMGP3g8vD#jC&a<=xK3v+w?g0Dyn_wl9Af0NnfB+cEu#pZs^f^$qWD ziJy4ugK2&2|MQ*vvO6#06)!En{qGZQ{@#y#nY>k}|NC1v>A=78eQ*9D-23430Xet| zfc+y}^Upr;H-6=R1OWV(dMo?UzxwGGzxq1ZJ;2TX@b_=M<#ynq&wUMmi(vou&;K-# zj=%3LuX@9;{7-mKbHg1M&z$6{uanwa^|itH*I9y)DN&cPE}5%9e5**nO|^g1?ZHjqVM7oZM+S}|mv zrO1c^NvI?1wP9v>!y$74LSd73Hrts@+LQ!CPY6UT)T~GyW)rZJiAn(Ao=+G1dvm=uLp4rhdG&CxrMd2xTxui9$Q5r z$k&vQ@7{Ulvx{`2JaX}->$i3j03Q4A-hbx@-U@t)4cqj`uX}`V0&v?ezvTUQY?;)n z-gWaUe;)9A?tF5VxqK0%fAIr1{KBcP`8Oimnip}`_uqpzZ#9X$>fZn1=kyz24Iz+T z`IEPOn*y*;B>;aczdpShuNYa~Pc#BqVCAAgVG%p+m?&j1*whQe2%yzscbLzwEtvpk-H8 zC;VG$?{n{)>(#62)tsu#a{?g=WTMO<*a|^g!~sw=3~5J18yZ2OjctD*e2OB1(AWan zq9!3W5~i3iCST#|{$uZR?z!`QQ&oz*%~1Eei7bj;@YfVmzRwK5# zGzuY3!|F;k9+YbK09Bp1q)-+%u_PgROo@z%A|{9t_&}qAxL6z<=KegPPNoxR>5+>sdg;1yyt8t@+ZDaEUzG`>i32G_j_lb``S(mG z0(8f3n!W$}3WaR`w@V%zfNps3n^#W1^ZleJJn-rR_?5x=`t1)a>AU~3Pwe!{{cG3$<)1$E%Rt?a#5G^ z$d)69k0koefX0!B9`Kg9XXUi6OGqV&5E&B@8_A_vYR)(ch*mysV1g~9Vp!C-W>z8( zE5y*$8|YKdgBvVU%o_5wnpW0?)E-Jby1s{JZ8EcFUY4As^x3!&AqFw4&+Se?Qt>t{ zSYWufx4*xyuUN1KBw4ph-%x~!QgEb@(494Y0}j9PPvR@rxh(KowaR;kPY+WX5(b&r zFf$idoRd0cDfq0AFa7c^N>hIBlV3<`Xv^tA=l2@Zgg zlcYk3HICPRaUF1FC3fXRDwSB1S3j@XTJTc?`k~!g;xT}Kax^nxTWyuv+@1lFOqGdY!Bj*9%7(9TzEASha>Hqv`{Nd_~YWcfA3-gfu|E~nz z_AVw$=$2o^r#GzGx*jN(wOj&3N?I!X<*VH9voc~=!S#>1Brfa6UJYFFv5K3z{I5;} zeS7T}w*Y^$zAUBbvX)Bsyf$_&DaUc_97MH7xy)FMvd*Pcof2(Prlr+ll`66UtMAlQ z%|IlGI!Ho}wTfgZDNsj9^U5b;Q0Cz!@4xpt5&OIoP17&IzE7N_=G6~!+J0TaZ$%VL#ux%?C`+p% z?l=`?Si_dsX-GzZl;8NVr6O@TDVN0=trSTJP7>n8g+lU*I@e>0#X^ycB&a05siq4a zi6jvONXFZoDGpBAY&2U=^1n zlDI@-NlM9dsZx$z0uY&^DHN?GW|sz01aP7iCF7HVxDc0A%9C+Y zVPBXD27$qx7RG@vFjUAFcS35zJ%ZFD3?@TqzE!601TT3rJIPZNzW2UYEF0?W@9*#H zE%p`*QDk!ylP{!r{t-FMkLsr3{@ssn+`qkWlCak3U%{sq3fUQoG?t$2_dd2{$S{Yj zH@)iG(Zp4%jh=~_Y@%_3go5d!S=yK=z=lkWvh`O>L2n^WRSk2*#z(E42UnEPmr|V= zHr6;IPe+af$zQ*vuOyOGl5&iML{-JsW%{8uCqBz#s?Dyg+AfmMbW7ccVb>t7COor( z1JV#zeJejqNyq=JRA*RL-xyYW%6nN*vq;-Sm>nht!ErQ`RcosX&Cl z%nGAQVS_-5<`@vR42vOx`m)&@^@pyK_U2H)lFXg(l+ZeG6M_t+& zEm2itj57wT&eyb&ghEbDM3gCtI3gAm-|+R8M00;=}mJ#W`#$yVR5-S(%>`GAher208)6(G`TuOhgIj)v81*Tr7>0!_HM?s zV3M>J&o;PTt5tRgNzh6JHKKr|lM`z8piKGJ4ta1~rF=sJtt()vO|8t_@z9#W%BCC_ zn4FCWMASLQ3Sy82rFm>VMWNVJC>qODliyG3RZ4Hf39IkdO2X>@>#b9tZy%~yRdOq+ z-q`o%rpf$hM7fpMX4QRNBcRr_;NX#wjlh9vXNxO+aS@5H=gJ}aBJl+@9%4r_qM$6p zSOGTHlZ>xZ*Q>9tc=;#}P-mPDeAUJ3LN2{a?IIB;EY=uV`8}4a3PjWX9$6hg-cgxW#%V6Eu-3($R#J<} z0ehtZXAS*=L~;#G(%uvGkPsd~A%zyLCa0t!1WzNZWKxi+DtdC7Z%1ipLL0l@r!i%p zIBq1=FADpVl`3AbP?}hgrzuVA*N7y)S!q2ceAUmKD`Bc)KT>0^W>77%j{QE5(y24f zr_UHB1LJF(jkQssV54BHWoV$`Qod?Vg*@q!f`rKjSG_3~;3Ay3L|ky)c+^f!Z8{=O zOR1?tqZFkXFkI%^txB;G@>z~9==N!#CacHQkiE*mp_8}a)Ts!;h(t^ZI3J}*5flW8 zLN&24PDx`@rxKPLfKy2n5Mz818=MF@1wYY51jahG3a1W0-;0~HQE0;-k=<>FPjXaK76Am7%!nzOI@03SK4sY4*-IeA4yLS}J+r z$I4b{1_`Sp@eCI# zvc+lQ0c{~l0u^z}E-hXFWk8z0jaAi(C50MsnusKTM1HomI)ymWEM4_wq`gGl|uz zfYZ>&JgdsB%G0#%2sQ48seJPg=2VS9hX#cjg1glm@v1b-``mM()vSeXW;*&L8(%f( zD~_^05BWVvt8z30RU&OL?$V}2)mKS1hFY27ff}ou8v*di@8nb*i!sLgT*z3qhOP0f z>OzPrUxXi8yv~=QAkdrB#P>09U?-Z8CaNF_Nf#oL zq`U_RX`&83=?N;Dc!D!TP)*>RCIJK&fCq^niq)`hSM8jtXE>;HB93#3f|)v0*Kji= zbLDiUnzYJVMo7t3nLLzED0Qs1FJb3POr6WxNN_0VNuz4{(vjR9Bwu(P5)DHW79kN| zm=*ea)TB9T?Z36Jn-*-RSduB6m#T7bocoGJ^?+QUhFa2GI4!?-rT&=uE`V7DNj@A? z)#-EoZ_1Uq6B`wF>V#N~H5MR-v5}1|Ti;eK>lLQ+7cbxI{#ulo0#Y*XE>NLr7iL(5#R#S2nHH_&6!JdMphWi{p?j zt(x^%PW$7hUgs=iRU7jQ`cE~r!)i6eLfQ4c;5~To5F5WaHh85$5pL15z z20moOvSCAM*Qrz)^&x-XvclIya2nQ5wOwKFa}e?Nze<`)>$B^eFM>?-)6y1M)%wDE zLTSNq)QaIK-(mt-!8L+jQ+=^^`4IZAFnkqaefKKw*eCLFIIS8l=`~5cE$Vl1%~poe z-5Q}DE{m~c2-vD2`mcnlyC$_BAxdPJY=GcX&1H9la0S%(GE1R+FhbR5Bf{IADm8f_ zqEG{0t`u6t=dg|?6|$Vu_;YheU@|O}D1?bDF@-3h-_x9L&k;NrOk|jABt*LTDO1|l zqZ$7m_;O3r^N^^#je2!#F_$%-DN{y;1lBlF^(_Ea*0f^XIG60+pDdmof3L`QmGOR!% zD#-dIs;W~$WK3jP2r)#|ft^-~*B`fPDIpPc8F70>%(9KF0R^1*bXOp94yw$NH4%}j z*FS?thXUF&S(1psP<1daGx zypRgaXvna@2@*pT`8-MQeHMs1O%hGi&w*jG%xOQ@Y;imgp)rw-B4*NR<_cV*&RJN? zzDsTBT9jFsk{-9dfnXgYXujDBkoA7>XBk3pqa#<8-I>WKS2&z++ezBk-6V6yYR3Pe zjh2Y-T?it>Y^=4BwUPB5+mS;MmTI!Cs<^mPu1HKEOKd2=IR!H~&58(3%6!s<-!{E` z7a>?grDGhfX2ZIB zan2UU;+XCDFWm*c^Bi~U;;b!>#j&sq2kqJd4&#@iCSS&%Tb%L5@uDA1(@rb^b~XNI zoe98DbS{Nj;~bYhlDnSmDHaIj>56Oe>)y0aU^(gf$l_QW$1%s*Hs}AU$>W)&Eph+0 z_9Xs%{axf|bAJtvuJ5-!(bV2&_e?k5;f+f}K+}Q~K6&;2LSfyqcxuOF|2lW1 z{~LgpERGlGxH!3cMhw?P)}265=aM9eE9G(}c0&!3JP`-g zL=qRf*u`;@RHF-hE0Tu`oBJcD(^KO+SFfm)>VHhb`vJ%<^_}mC%4bhhe%SWN;#eFn z&@qY`GMvv7$+e? z!En;b)>Db8f9VO&yEt~0B#z^_to0X3rXy7(&PiM;RVtMjJ?SY0bFg&6h$ez@9$m5f zSyQz23?~{5R|w{wa_@->SUBsG7tTC$K6WayxUP%i1!|gIzO-ThS~0rx`}sbI z9aPFZ7Bc{Kl_W`AoWzM|H#ZfIOakcl#@2KMr*T|~lSC2`WSNIl5E)&ju_GFr-k(fq zIkM&2U;FlOOxU&wD;?+{N0VBvIiiOPGaXZxfM9WS$wUTt z>chDY-H-FHbMGGmuDu2T-22C>7ZlH!*Pn%(Z>{43bE14}3IN8w`(vj);kshDeA#XK zsWef!OEpPcsZy%ME|Es9RQ6Tan|@9_bY~W+j`*3)v13DJKJisw-X}dpQ_tG!!v8!P zVYz5WlBKyLbePvAn(U4?Q?z&A)FLS@j&8=wj@&T)zRmCYaP>p$@%(S(|MGkW02sR= zqc{3hbJu6jzwY%AJ`*L>}n-f36&YY`C_vxf3F>Urdmo~V#N zV#X5eNs5zhxjB-!MN)c^dnP_w0OV5-yl>P?A9~;DT^mMm^H)DwNTrS^y$?^}fzhRX zQ`rXqwI@@0jarrRrkips2QSdZZdkfP?!#WUqeYT?v1^K+tv(3g+H2l*!!&Tgr}(

{KydXxEL39 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%0DH~Ap?N~ID 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 F{|``O(g^?n diff --git a/fr/manueldumo/TEX/images/FredEtKaty_pgp.png b/fr/manueldumo/TEX/images/FredEtKaty_pgp.png deleted file mode 100644 index a3d7881ffdc0d04c619661d28033135b1730e4d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 509622 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