Compare commits

...

523 Commits
debian ... main

Author SHA1 Message Date
Frédéric Péters 07d3c458a2 scss: reduce a little bit flex columns to work around alignment issues (#89903)
gitea/gadjo/pipeline/head This commit looks good Details
2024-04-23 10:47:47 +02:00
Frédéric Péters 35aa41eec9 scss: remove margin for help text paragraph (#84751)
gitea/gadjo/pipeline/head This commit looks good Details
2024-04-16 10:06:16 +02:00
Nicolas Roche 437b015121 widgets: put field help texts in <p> (#84751) 2024-04-16 10:06:16 +02:00
Lauréline Guérin 0cb151e692 snapshotdiff: scss & js files (#89477)
gitea/gadjo/pipeline/head This commit looks good Details
2024-04-16 09:57:32 +02:00
Paul Marillonnet 606fd39cfc css: add pk-hide-requisiteness form class (#88343)
gitea/gadjo/pipeline/head This commit looks good Details
2024-04-16 09:55:27 +02:00
Frédéric Péters 63b36ba0c9 misc: do not style "html edition" godo as textareas (#89470)
gitea/gadjo/pipeline/head This commit looks good Details
2024-04-12 09:25:19 +02:00
Frédéric Péters 251e1f5ef8 templates: add lang attribute (#86622)
gitea/gadjo/pipeline/head This commit looks good Details
2024-02-06 15:27:50 +01:00
Yann Weber a015a1bcf9 template: allow using menu-opener class outside #appbar div (#86001)
gitea/gadjo/pipeline/head This commit looks good Details
2024-01-22 18:18:55 +01:00
Yann Weber 04c0f88623 a11y: add aria-required when input field required (#85451)
gitea/gadjo/pipeline/head This commit looks good Details
2024-01-15 11:50:19 +01:00
Yann Weber df330cdece test: add allowlist_externals for pylint.sh (#85457)
gitea/gadjo/pipeline/head This commit looks good Details
2024-01-15 11:47:38 +01:00
Frédéric Péters 76c19a4918 misc: reduce line-height for list of links (#84962)
gitea/gadjo/pipeline/head This commit looks good Details
2024-01-12 14:28:41 +01:00
Frédéric Péters 2af24283e9 js: allow sites to disable gadjo handling of foldable sections (#85001)
gitea/gadjo/pipeline/head This commit looks good Details
2023-12-21 09:53:25 +01:00
Thomas Jund 64a43d8d30 css: add styles for native details html element (#83376)
gitea/gadjo/pipeline/head This commit looks good Details
2023-12-15 09:58:50 +01:00
Frédéric Péters 7578b0a0cf js: add class to keep track of details opening status (#83376) 2023-12-15 09:58:50 +01:00
Serghei Mihai 9dd8021f68 misc: fix horizontal alignment of radio buttons (#84549)
gitea/gadjo/pipeline/head This commit looks good Details
2023-12-12 10:29:44 +01:00
Frédéric Péters 72f6f0b1b0 js: add data-close-button-text to give a label to the close button (#83616)
gitea/gadjo/pipeline/head This commit looks good Details
2023-11-24 09:11:41 +01:00
Frédéric Péters cae86557c5 js: style [name=delete] as delete buttons (#83611) 2023-11-24 09:11:35 +01:00
Frédéric Péters 5c5b83e4d9 js: force ckeditor textarea width in popups (#83609) 2023-11-24 09:11:29 +01:00
Frédéric Péters 42eaecf796 js: consider [name=cancel] buttons as cancel buttons (#83603)
gitea/gadjo/pipeline/head This commit looks good Details
2023-11-24 09:11:23 +01:00
Frédéric Péters fef5e30202 js: add a X-Popup header to ajax call for popup content (#83599)
gitea/gadjo/pipeline/head Build queued... Details
2023-11-16 15:55:45 +01:00
Emmanuel Cazenave 9d1e21c6f6 setup: compute pep440 compliant dirty version number (#81731)
gitea/gadjo/pipeline/head This commit looks good Details
2023-10-30 17:20:31 +01:00
Frédéric Péters 36d03efd91 translation update
gitea/gadjo/pipeline/head This commit looks good Details
2023-10-06 15:43:46 +02:00
Frédéric Péters d1508a80fb templates: use a <nav> for skip links (#82095)
gitea/gadjo/pipeline/head This commit looks good Details
2023-10-06 11:03:49 +02:00
Frédéric Péters 7434a25b76 ci: keep on using pylint 2 while pylint-django is not ready (#81905)
gitea/gadjo/pipeline/head This commit looks good Details
2023-10-03 06:19:16 +02:00
Valentin Deniaud f6dfb7a3f8 misc: update git-blame-ignore-revs to ignore quote changes (#79788)
gitea/gadjo/pipeline/head This commit looks good Details
2023-08-16 10:12:11 +02:00
Valentin Deniaud 346e0a4d72 misc: apply double-quote-string-fixer (#79788) 2023-08-16 10:12:11 +02:00
Valentin Deniaud 8c135dd5da misc: add pre commit hook to force single quotes (#79788) 2023-08-16 10:12:11 +02:00
Thomas Jund 854a3431e7 css: remove -ms-flex* properties (#79205)
gitea/gadjo/pipeline/head This commit looks good Details
2023-06-29 10:06:52 +02:00
Frédéric Péters 77795ac846 ci: build deb package for bookworm (#78968)
gitea/gadjo/pipeline/head This commit looks good Details
2023-06-23 15:15:57 +02:00
Frédéric Péters 2aad9ac21a a11y: add alert role to form error (#74051)
gitea/gadjo/pipeline/head This commit looks good Details
2023-06-18 11:43:29 +02:00
Frédéric Péters 1fe855154d trivial: remove extraneous spaces (#77764)
gitea/gadjo/pipeline/head This commit looks good Details
2023-06-02 13:42:21 +02:00
Thomas Jund 107730d105 css: introduce pk-button-(delete|submit|cancel) for link-cell (#77764)
gitea/gadjo/pipeline/head This commit looks good Details
2023-06-02 10:30:47 +02:00
Thomas Jund d5c2c674ba css: remove useless a.button padding (#77720)
gitea/gadjo/pipeline/head This commit looks good Details
2023-05-31 15:12:48 +02:00
Frédéric Péters 3d79482770 css: introduce pk-compact-table (#77949)
gitea/gadjo/pipeline/head This commit looks good Details
2023-05-30 16:32:49 +02:00
Frédéric Péters 9f9a174c21 debian: apply new pre-commit-debian (#77727)
gitea/gadjo/pipeline/head This commit looks good Details
2023-05-27 21:40:23 +02:00
Frédéric Péters 35388f3f4b ci: upgrade pre-commit-debian (#77727) 2023-05-27 21:40:09 +02:00
Frédéric Péters e12ea98ed7 js: reinit kebab menu on content update (#77799)
gitea/gadjo/pipeline/head This commit looks good Details
2023-05-26 07:40:04 +02:00
Lauréline Guérin 0ba1626591
js: fix $.ajax() on success (#77914)
gitea/gadjo/pipeline/head This commit looks good Details
replace $.ajax().success() by $.ajax().done()
2023-05-25 14:31:48 +02:00
Thomas Jund ca4a67d56b css: make available cancel, delete & submit button via pk-button-* classes (#75933)
gitea/gadjo/pipeline/head This commit looks good Details
2023-05-17 16:04:58 +02:00
Thomas Jund d4ff8f8dea css: use css vars to manage style of buttons versions (#77630)
gitea/gadjo/pipeline/head This commit looks good Details
2023-05-17 15:19:55 +02:00
Frédéric Péters a2b2605df0 css: create colors chart file (#71879)
gitea/gadjo/pipeline/head This commit looks good Details
2023-05-17 15:12:24 +02:00
Thomas Jund df45a9aca9 css: remove unseless button properties (#77608)
gitea/gadjo/pipeline/head This commit looks good Details
2023-05-17 15:01:00 +02:00
Thomas Jund b35baa7c0e css: make appbar responsive (#74725)
gitea/gadjo/pipeline/head This commit looks good Details
2023-05-17 10:53:47 +02:00
Thomas Jund 3d30c80b97 css: clean old appbar actions links styles (#74725)
useless since #25698
2023-05-17 10:53:47 +02:00
Valentin Deniaud e3ad91a61c widget: allow setting empty value in MultiSelectWidget (#77469)
gitea/gadjo/pipeline/head This commit looks good Details
2023-05-16 16:01:38 +02:00
Frédéric Péters f4a427d14c misc: add classes to display checkboxes/radio horizontally (#77520)
gitea/gadjo/pipeline/head This commit looks good Details
2023-05-12 10:02:59 +02:00
Frédéric Péters 68cac8592d debian: do not run tests as they're already part of CI (#77521)
gitea/gadjo/pipeline/head This commit looks good Details
2023-05-12 09:54:19 +02:00
Frédéric Péters c222e234cf misc: drop support for django < 3.2 (#75681)
gitea/gadjo/pipeline/head There was a failure building this commit Details
2023-05-07 18:00:18 +02:00
Frédéric Péters 75f38ce67a a11y: add aria attributes for help and errors (#75681)
gitea/gadjo/pipeline/head This commit looks good Details
2023-05-07 17:55:39 +02:00
Frédéric Péters 246b6b3c5c ci: introduce tests (#75681) 2023-05-07 17:50:15 +02:00
Thomas Jund 7628f0f7ad css: universalize selector that targets appbar actions items (#77023)
gitea/gadjo/pipeline/head This commit looks good Details
2023-05-02 09:51:08 +02:00
Valentin Deniaud c61e74a797 widgets: fix delete buttons in MultiSelectWidget (#77076)
gitea/gadjo/pipeline/head This commit looks good Details
2023-04-27 15:30:25 +02:00
Thomas Jund cd9a5870ee css: manage flex grid gutters with negative left margin (#75194)
gitea/gadjo/pipeline/head This commit looks good Details
2023-04-20 08:22:46 +02:00
Thomas NOËL 2db1f3bba7 fix pylints errors (#76240)
gitea/gadjo/pipeline/head This commit looks good Details
2023-04-17 13:50:40 +02:00
Frédéric Péters b38c656681 translation update
gitea/gadjo/pipeline/head This commit looks good Details
2023-04-14 10:17:41 +02:00
Frédéric Péters 5febe9a8b8 translation update
gitea/gadjo/pipeline/head This commit looks good Details
2023-04-14 07:56:40 +02:00
Frédéric Péters 7cf72da19c general: add reveal checkbox to password fields (#74652) 2023-04-14 07:56:39 +02:00
Frédéric Péters 76423b24c2 a11y: add skip to content link (#76470)
gitea/gadjo/pipeline/head This commit looks good Details
2023-04-11 10:17:30 +02:00
Frédéric Péters e2a1d668a5 templates: reorder field elements to have label/hint/control/error (#75808)
gitea/gadjo/pipeline/head This commit looks good Details
2023-04-04 18:02:28 +02:00
Frédéric Péters 22caa7a2d4 misc: do not generate unused png icon variants (#72513)
gitea/gadjo/pipeline/head This commit looks good Details
2023-04-04 17:59:16 +02:00
Lauréline Guérin 39dbdabcd3
widgets: add MultiSelectWidget (#75655)
gitea/gadjo/pipeline/head This commit looks good Details
from combo.apps.dataviz
2023-03-31 16:25:14 +02:00
Valentin Deniaud 2b824e5b5a misc: bump djhtml version (#75442)
gitea/gadjo/pipeline/head This commit looks good Details
2023-03-29 14:46:58 +02:00
Valentin Deniaud a955c9702a misc: bump black version (#75442) 2023-03-29 14:46:58 +02:00
Valentin Deniaud 42c8c46981 misc: change pyupgrade target version to 3.9 (#75442) 2023-03-29 14:46:58 +02:00
Corentin Sechet c6ad492272 js: configure javascript linter (#75132)
gitea/gadjo/pipeline/head This commit looks good Details
2023-03-28 11:08:01 +02:00
Corentin Sechet d65d2e0e2f misc: update .gitignore (#75216)
gitea/gadjo/pipeline/head This commit looks good Details
2023-03-07 18:00:09 +01:00
Lauréline Guérin c59715e912
style: add colored tags (#74582)
gitea/gadjo/pipeline/head This commit looks good Details
2023-02-28 10:51:59 +01:00
Valentin Deniaud 45bac77a26 templates: use field.id_for_label in field title id attribute (#74526)
gitea/gadjo/pipeline/head This commit looks good Details
2023-02-28 10:09:50 +01:00
Valentin Deniaud bbcd17465f templates: avoid empty id attribute in widget (#74541)
gitea/gadjo/pipeline/head This commit looks good Details
2023-02-28 10:08:44 +01:00
Frédéric Péters 3d57dc94f0 misc: generate small white action icons (#74821)
gitea/gadjo/pipeline/head This commit looks good Details
2023-02-24 10:16:52 +01:00
Agate 87d671b34e Prepare Jenkinsfile for Gitea migration (#74572)
gitea/gadjo/pipeline/head This commit looks good Details
2023-02-20 15:05:23 +01:00
Frédéric Péters cc91217aab style: add plain-text-pre class, for long text fields (#74405) 2023-02-10 10:32:59 +01:00
Frédéric Péters eb66091ac3 scss: remove leaflet support flag (#74174) 2023-02-03 17:33:16 +01:00
Frédéric Péters ab267b7c35 ci: upgrade isort (#74044) 2023-02-01 09:47:54 +01:00
Frédéric Péters bb310e769f misc: stay on FontAwesome 4.x (#74015) 2023-01-31 15:29:48 +01:00
Frédéric Péters 20e8fc9594 css: sync grid with publik-base-theme (inputs & never-alone) (#73506) 2023-01-17 18:33:53 +01:00
Frédéric Péters 0f335d9f33 ci: only build package for bullseye (#72729) 2022-12-23 07:45:06 +01:00
Frédéric Péters a5697c4cc2 scss: sync some form elements with publik-base-theme (#71886) 2022-11-30 15:42:04 +01:00
Paul Marillonnet f2ad05b65c accessibility: focus on error message at form submission (#71073) 2022-11-09 11:30:32 +01:00
Frédéric Péters bd528298f7 style: add a new "button group" style (#70871)
gitea/gadjo/pipeline/head Build started... Details
2022-10-31 13:27:00 +01:00
Frédéric Péters 13cfa53ffb ci: update pyupgrade to 3.1.0 (#70693) 2022-10-26 19:22:43 +02:00
Frédéric Péters 1a34482323 style: add padding and solid white background to tab container (#70203) 2022-10-13 09:46:50 +02:00
Frédéric Péters 290d8df650 style: add some adjustments for printing (#70138) 2022-10-11 20:14:10 +02:00
Frédéric Péters fe745048d5 style: increase layout width boundary values to match frontoffice (#69315) 2022-10-10 09:40:46 +02:00
Valentin Deniaud 5d61649cf2 misc: add djhtml files/notes (#69422) 2022-09-29 11:59:49 +02:00
Valentin Deniaud 318d6fb378 misc: apply djhtml (#69422) 2022-09-29 11:58:15 +02:00
Frédéric Péters f0eee6137f add lingo icon alias (#69021) 2022-09-13 14:11:51 +02:00
Lauréline Guérin b297690b3f
js: fix anchor on tab selection (#68711)
gitea/gadjo/pipeline/head Build started... Details
2022-09-09 09:59:53 +02:00
Frédéric Péters ad04de1273 a11y: add keyboard navigation for extra actions menu opener (#68301) 2022-08-19 17:46:03 +02:00
Frédéric Péters ba02d038f7 js: consider select/textarea when setting focus on first dialog field (#68275) 2022-08-19 07:27:30 +02:00
Frédéric Péters dea0b0552d js: also look for clickable row target in data-url attribute (#64844) 2022-08-16 14:13:35 +02:00
Frédéric Péters 3ed2236293 misc: display sidepage instantaneously (#60180) 2022-08-16 14:13:35 +02:00
Valentin Deniaud c5c4772c5e js: focus tab according to anchor in URL (#68102) 2022-08-16 13:36:06 +02:00
Frédéric Péters 40114f3665 js: adjust URL to mention selected tab (#68135) 2022-08-16 13:01:09 +02:00
Frédéric Péters 7ca220b9bf templates: remove default copyright line from footer (#67021) 2022-07-15 08:29:01 +02:00
Frédéric Péters 05ebd5b7aa style: don't force content height on mobile (#66447) 2022-07-15 08:29:01 +02:00
Frédéric Péters 1b8d8aca83 ci: fix directory environment name 2022-07-15 08:29:01 +02:00
Paul Marillonnet f13e0a4c76 setup: only take svg files as input to build_icons command (#67139)
· Some text editors such as vim perform a local management of their
    swap files. We prevent the command from taking such swap files as
    input while converting svg files to png.
2022-07-07 16:56:08 +02:00
Paul Marillonnet 973cf5b1f8 icons: add identity-management svg & subsequent scss rule (#66495) 2022-07-07 15:53:08 +02:00
Frédéric Péters bd798f1e43 trivial: apply pre-commit configuration 2022-06-17 20:08:13 +02:00
Frédéric Péters 1b23ff37ac ci: run pre-commit & pylint 2022-06-17 20:08:13 +02:00
Frédéric Péters 87e7815de5 misc: add pre-commit configuration 2022-06-17 20:08:13 +02:00
Frédéric Péters 7ce99686c7 icons: add bankcard (for lingo) (#65373) 2022-06-17 10:11:43 +02:00
Frédéric Péters 4254c69f07 scss: force alignment for blocks defining grid elements within grids (#65572) 2022-05-24 13:10:54 +02:00
Frédéric Péters a46bab14f6 style: do not let tabs expand and scroll (#64928) 2022-05-06 08:21:36 +02:00
Frédéric Péters f8431c7dfa style: add class for visual marker on tabs (#64749) 2022-05-03 18:08:03 +02:00
Frédéric Péters 114cac011c misc: remove unused settings.CDNS (#64434) 2022-04-21 16:49:01 +02:00
Thomas Jund b97be713d9 CSS: add focus style for keyboard navigation in tab buttons (#64331) 2022-04-20 10:30:24 +02:00
Frédéric Péters f138d64a82 js: trigger gadjo:tab-selected js event on selected tab panel (#63821) 2022-04-15 08:20:10 +02:00
Frédéric Péters f349f11966 forms/a11y: include error message in a <p>, and align icon (#63820) 2022-04-12 09:57:11 +02:00
Frédéric Péters 6e1ba3a2f0 css: give checkbox/radio buttons an accent color (#5342) 2022-04-01 11:42:53 +02:00
Thomas Jund 9e396092fd scss: give Godo editing zone same styles as textarea (#62666) 2022-04-01 10:59:20 +02:00
Frédéric Péters 71361429a0 general: add support for tabs (#63293) 2022-04-01 10:44:11 +02:00
Thomas Jund f9d78b8162 css: declare [hidden] element always hidden (#63324) 2022-04-01 10:20:39 +02:00
Frédéric Péters f5a0678c00 misc: remove usage of vendor prefixes (#62959) 2022-03-26 17:30:18 +01:00
Frédéric Péters 093cea5988 style: use outline for focused buttons (#62827) 2022-03-16 10:55:37 +01:00
Frédéric Péters 74e159e084 style: don't add border to focused file inputs (#62209)
(missed in initial commit)
2022-03-05 16:02:11 +01:00
Frédéric Péters 2de4d57df3 style: use outline for focused widgets (#62209) 2022-03-03 19:56:04 +01:00
Frédéric Péters 10f8a3f333 style: set widget text color to black (#62208) 2022-03-03 19:56:04 +01:00
Frédéric Péters 71f1cd294c misc: restore content overflow rules (#62249) 2022-03-01 10:09:44 +01:00
Frédéric Péters 4e08feaa91 a11y: add text content to logout link (#62237) 2022-03-01 10:09:44 +01:00
Frédéric Péters c87fbbc994 remove old internet explorer warning note (#62161) 2022-02-25 08:08:13 +01:00
Frédéric Péters 38338670a0 misc: remove content overflow rules, only appopriate for wcs (#62142) 2022-02-25 08:08:13 +01:00
Benjamin Dauvergne 057935195b js: make .clickable-rows works with relative href (#61238) 2022-02-18 08:45:37 +01:00
Frédéric Péters 0c9b53ceac css: hide buttons with a hidden attribute (#61924) 2022-02-17 16:04:21 +01:00
Valentin Deniaud 0dcaeb1065 icons: add copy action (#59670) 2022-02-14 09:56:55 +01:00
Frédéric Péters 85a6196f97 style: set button display to inline-block (#61028) 2022-02-11 07:58:24 +01:00
Frédéric Péters 158b933d1c add styles for horizontal button links (#58153) 2022-02-11 07:58:24 +01:00
Frédéric Péters be1261c4b9 trivial: remove python 2 from classifiers 2022-02-02 08:11:43 +01:00
Frédéric Péters 0155852a44 js: do not open clickable-rows if the user was selecting text (#61251) 2022-01-31 10:00:13 +01:00
Frédéric Péters 03d76f7aa5 style: add pk-success class to mark "success" (#60952) 2022-01-30 13:35:23 +01:00
Frédéric Péters 214138fea4 style: add folded support to sections with <ul> as content (#60435) 2022-01-19 21:27:46 +01:00
Benjamin Dauvergne 7546932ddf general: handle .clickable-rows at document level (#60396) 2022-01-07 10:22:17 +01:00
Benjamin Dauvergne bfdbab4bca general: allow text selection in clickable-rows (#59873) 2022-01-05 18:07:49 +01:00
Frédéric Péters 68e236a120 general: add new clickable-rows class for rows that should be clickable (#59873) 2022-01-05 17:36:40 +01:00
Paul Marillonnet a3124c9c75 templates: provide more consistent use of ellipses in pagination (#59773) 2021-12-16 12:20:21 +01:00
Frédéric Péters f98dfe10da css: add style for disabled line in objects list (#59678) 2021-12-14 14:35:12 +01:00
Frédéric Péters 5a5a67f73c style: force white background on pagination links (#58298) 2021-10-30 10:41:35 +02:00
Frédéric Péters 4f6e955be4 debian: switch to debhelper-compat 12 (#57538) 2021-10-10 12:08:25 +02:00
Frédéric Péters ad2dd536eb add style for joined/toggled buttons (#57318) 2021-09-28 13:48:43 +02:00
Serghei Mihai 95ac0e40cb templates: customize checkbox and radio buttons rendering (#56114) 2021-09-17 11:00:53 +02:00
Serghei Mihai 4b3acfd876 a11y: add custom rendering for radio inputs (#54642) 2021-09-17 11:00:53 +02:00
Frédéric Péters 006689665a jenkins: disable concurrent builds 2021-09-05 11:09:50 +02:00
Frédéric Péters 857a43d0a6 jenkins: build .deb for bullseye 2021-09-05 11:04:03 +02:00
Frédéric Péters beff3e0863 Revert "a11y: add custom rendering for radio inputs (#54642)"
This reverts commit 6b941855c8.
2021-08-24 18:46:08 +02:00
Frédéric Péters c2a3a4ebc9 Revert "templates: customize checkbox and radio buttons rendering (#56114)"
This reverts commit d380d5537a.
2021-08-24 18:46:07 +02:00
Serghei Mihai e50ab0dfe1 templates: search custom template for simple widgets only (#56252) 2021-08-19 11:55:59 +02:00
Frédéric Péters 6bf6be86e0 debian: stop building python2 package (#56170) 2021-08-18 20:43:47 +02:00
Serghei Mihai d380d5537a templates: customize checkbox and radio buttons rendering (#56114) 2021-08-16 16:51:25 +02:00
Serghei Mihai 6b941855c8 a11y: add custom rendering for radio inputs (#54642) 2021-08-16 16:51:24 +02:00
Serghei Mihai 2a6ba2ca06 templates: add support for custom widget template (#54642) 2021-08-13 12:28:06 +02:00
Serghei Mihai 1fa018a2a8 a11y: add aria-labelledby for widgets (#54642) 2021-08-12 15:17:05 +02:00
Thomas Jund 467e9a5ec0 scss: add new grid system with flexbox (#54488) 2021-07-05 13:23:47 +02:00
Frédéric Péters 55d19c7050 css: add style for main title tag/badge (#55395) 2021-07-05 13:23:47 +02:00
Serghei Mihai 7ceef600ae templates: set id for widget labels (#55297) 2021-07-01 16:22:28 +02:00
Thomas Jund 351e45beca css: add cursor pointer to [role=button] (#53784) 2021-06-01 16:02:31 +02:00
Frédéric Péters 3154331eef misc: limit help text width in dialogs (#53820) 2021-05-18 10:53:26 +02:00
Frédéric Péters 2625ab7db7 icons: add action icon for jump (#54042) 2021-05-17 18:11:59 +02:00
Frédéric Péters 438fc92cf1 templates: load static template tags library using {% load static %} (#53226)
RemovedInDjango30Warning: {% load staticfiles %} is deprecated in favor
of {% load static %}.
2021-04-17 20:08:10 +02:00
Frédéric Péters 91dfa5f0d8 scss: force clear on <h3>, <h4> and <p> after any grid elements (#51896) 2021-03-11 09:14:26 +01:00
Frédéric Péters 847019138e templates: add stub favicon (#51384) 2021-02-23 18:05:04 +01:00
Thomas Jund 629a485ce2
scss: add .oneline-dialog modificator for jqueryUI dialog widget (#49585)
gitea/gadjo/pipeline/head Build started... Details
2021-01-19 14:51:45 +01:00
Frédéric Péters 0daa0d2ab4 style: add disabled variant of buttons (#50302) 2021-01-19 14:08:56 +01:00
Frédéric Péters 967c67f9fa style: lighten text colour of disabled radio items (#50036) 2021-01-11 14:11:58 +01:00
Frédéric Péters c1146c167c style: remove custom wcs classes (#49779) 2020-12-30 14:09:53 +01:00
Frédéric Péters c372a2611a style: don't display wcs steps bar when there's a single one (#49775) 2020-12-30 14:09:53 +01:00
Frédéric Péters ca2f9e6160 style: add pk-button class for compatibility with frontoffice parts (#49778) 2020-12-30 14:09:53 +01:00
Frédéric Péters 6d7b2689aa build: update to use origin/main 2020-12-26 15:22:15 +01:00
Frédéric Péters ab3abf04b2 fix naming of pk-information class details (#49466) 2020-12-14 19:08:51 +01:00
Frédéric Péters 9d546e8761 style: add some margin next to un/fold arrow in section title (#49193) 2020-12-14 16:19:41 +01:00
Frédéric Péters 9aa5edc08d misc: relax jquery dependency (#49112) 2020-12-11 09:38:59 +01:00
Frédéric Péters d8c6758c8d style: remove top/bottom edge margins for paragraphs in big-msg-... (#48952) 2020-11-30 15:56:16 +01:00
Frédéric Péters 453ab78509 misc: add a big-msg-sorry message style (#48826) 2020-11-30 15:56:16 +01:00
Frédéric Péters 6050c2403a gadjo: remove extra padding on folded section titles (#48531) 2020-11-13 16:50:13 +01:00
Serghei Mihai fe2f71dad3 css: don't display "(optional)" label for checkbox widgets (#48140) 2020-11-06 08:39:29 +01:00
Serghei Mihai 6df0438bf6 scss: distinguish titles of disabled sections (#47902) 2020-11-06 08:39:29 +01:00
Frédéric Péters 8e13b075dd css: adapt select2 style to look like other widgets (#13819) 2020-11-06 08:35:51 +01:00
Frédéric Péters 93a8741878 css: style for link/button in section titles (#47901) 2020-10-28 15:40:34 +01:00
Frédéric Péters 3fd49092fa style: make select2 widgets respect grid (#37679) 2020-10-23 00:25:35 +02:00
Frédéric Péters dba16f9b39 css: make sure adjacent buttons have a margin (#46839) 2020-10-09 16:30:02 +02:00
Frédéric Péters ef1ec881f3 style: add pk-{information,attention,error} synonyms (#46794) 2020-10-09 15:46:46 +02:00
Frédéric Péters e72dc51a74 misc: add django widget type as css class (#46440) 2020-09-11 07:59:11 +02:00
Frédéric Péters f475bc7c3f translations: update error during validation message (#45997) 2020-09-11 07:59:11 +02:00
Frédéric Péters 07ca00694c translation update 2020-08-21 08:04:24 +02:00
Frédéric Péters ad3a466a61 misc: mark gadjo_sidepage_status cookie as secure and strict (#45937) 2020-08-18 09:43:37 +02:00
Serghei Mihai 3de06b1970 misc: explicit forms optional fields and add class to mark them (#40156) 2020-08-14 10:29:31 +02:00
Frédéric Péters a71378bd9e style: let buttons wrap (#45890) 2020-08-14 10:25:46 +02:00
Frédéric Péters 3695c93757 style: remove extra margin from paragraphs in notices (#45791) 2020-08-07 15:13:15 +02:00
Frédéric Péters 91a9a591c3 style: force alignment of cancel buttons (#45723) 2020-08-04 12:04:06 +02:00
Frédéric Péters a832767a1e style: give a button appearance to cancel links (#45721) 2020-08-04 12:00:51 +02:00
Frédéric Péters 37bcf70504 style: use help cursor when hovering a required asterisk (#45673) 2020-08-03 09:35:20 +02:00
Frédéric Péters e2d3fd17f9 icons: duplicate calendar icon as "agendas" (#45505) 2020-07-28 15:02:52 +02:00
Frédéric Péters afa8e82c81 misc: generate hdpi icons (#44087) 2020-07-28 15:02:52 +02:00
Thomas Jund 52e178f34a style: add an action button class to notifications (#44692) 2020-07-13 19:03:37 +02:00
Benjamin Dauvergne 613629ca23 debian: fix typo in pydist-overrides (#45014) 2020-07-10 11:05:08 +02:00
Frédéric Péters 7086c80c4f style: add "tag" class, for left aligned badges (#44452) 2020-06-30 15:22:42 +02:00
Frédéric Péters 5497641a07 style: increase font size on larger screen (#43724) 2020-06-30 15:22:42 +02:00
Frédéric Péters 35ea1f49c9 scss: use a lightbulb in live domain fix suggestion popup (#44392) 2020-06-24 09:52:03 +02:00
Frédéric Péters f0bd03d2ce debian: add mapping for old python-xstatic package (#44141) 2020-06-16 17:38:00 +02:00
Frédéric Péters 9617cf7cc8 css: add style for field live hint (#42396) 2020-06-13 12:03:21 +02:00
Thomas NOËL 80433c861b MANIFEST.in: distribute inkscape_wrapper.py 2020-06-10 15:11:15 +02:00
Thomas NOËL 83a70d3489 build: add a inkscape wrapper for 1.0 compatibility (#43865) 2020-06-10 13:39:13 +02:00
Frédéric Péters 331e42c5fd style: catch all select[multiple] (#42778) 2020-06-03 16:14:06 +02:00
Frédéric Péters 195d14ee65 style: limit width allowed for platform name (#43304) 2020-05-26 16:05:59 +02:00
Lauréline Guérin 5b4b10c81f
pagination: add optional 'without_key' in template (#42441)
gitea/gadjo/pipeline/head Build started... Details
2020-05-11 16:29:47 +02:00
Frédéric Péters a57951805e misc: add class to limit textual element to screenreaders (#42692) 2020-05-11 10:28:53 +02:00
Frédéric Péters 18806f6bfe style: add style for padded section (#41705) 2020-04-14 16:38:59 +02:00
Frédéric Péters dda0ea58ed style: add style to have text action links in lists (#41192) 2020-03-31 14:16:00 +02:00
Frédéric Péters 1adfd57795 style: add simple style for <hr> tags (#41000) 2020-03-31 14:16:00 +02:00
Frédéric Péters 9012a6908a translation update 2020-03-26 17:43:45 +01:00
Frédéric Péters afd860c514 debian: update build depends to point to python-pil 2020-03-15 13:56:44 +01:00
Frédéric Péters 77af29b4f8 jenkins: build packages for default eobuilder versions 2020-03-15 13:50:25 +01:00
Frédéric Péters 8ca4977972 style: consider inputs with a name ending with -url as URL fields (#40253) 2020-03-08 15:23:10 +01:00
Frédéric Péters ff82184678 templates: fix setting of widget-required class on fields (#40155) 2020-02-25 09:48:08 +01:00
Frédéric Péters 8ba4837cab style: cancel form padding hack for authentic dialogs (#38905) 2020-01-31 13:25:06 +01:00
Frédéric Péters a3df02f18c style: remove all margins of objects lists (#38718) 2020-01-31 13:25:06 +01:00
Frédéric Péters 90adc7a564 style: use full width for url inputs (#38906) 2020-01-31 13:25:06 +01:00
Lauréline Guérin 3339674f61
dialog: add data-autoclose-dialog option (#37253)
gitea/gadjo/pipeline/head Build started... Details
2019-10-29 09:47:44 +01:00
Emmanuel Cazenave 504c3c368c jenkins: use ci@entrouvert.org for notifications 2019-10-02 13:56:44 +02:00
Frédéric Péters cdcfa741c9 style: don't indent subitems of sidepage menu when retracted (#35914) 2019-09-09 10:35:33 +02:00
Frédéric Péters 030b284359 add icons for publik studio / cards management (#35089) 2019-08-26 17:09:48 +02:00
Frédéric Péters eda2f5b8cd debian: use sassc to build css files (#35498) 2019-08-23 10:59:31 +02:00
Frédéric Péters 57a3a60739 style: adjust spacing of w.c.s. steps in backoffice submission (#35548) 2019-08-23 10:35:25 +02:00
Frédéric Péters ba6a4add39 debian: add missing python3-setuptools build dependency 2019-08-21 09:18:03 +02:00
Frédéric Péters 7e05b87782 debian: use python3-pil over virtual python3-imaging 2019-08-21 09:12:18 +02:00
Frédéric Péters 90ca1eca1e jenkins: only build stretch packages 2019-08-21 09:05:51 +02:00
Frédéric Péters ebf80591d5 debian: add python3-gadjo package (#35494) 2019-08-21 08:56:30 +02:00
Frédéric Péters f90815fdf9 misc: declare charset of scss files (#34940) 2019-07-19 07:12:51 +02:00
Frédéric Péters b2dcd94a54 misc: add possibility to mark popup links with data-popup (#34908) 2019-07-16 16:52:32 +02:00
Frédéric Péters a3a3053986 misc: attach kebab menu event to main content (#34406)
(so the page contents can be reloaded)
2019-07-16 12:16:53 +02:00
Frédéric Péters ca0eff6c74 a11y: add title attribute to asterisk marking required fields (#34792) 2019-07-12 16:57:54 +02:00
Benjamin Dauvergne a329682e41 add a block around content of <li class="ui-name"> (#34547) 2019-07-12 14:49:23 +02:00
Frédéric Péters 1c7b558c83 build: add Jenkinsfile 2019-07-12 13:41:26 +02:00
Frédéric Péters 20cc5a29b3 style: left align table cells and use semi-bold for headers (#34245) 2019-07-12 13:37:44 +02:00
Frédéric Péters 1e7c92eaf3 css: add class for extra info in item lists (#34562) 2019-07-12 13:37:44 +02:00
Frédéric Péters ff3ed793a9 misc: apply style for main form even if messages are displayed (#34157) 2019-06-19 10:11:54 +02:00
Frédéric Péters 93431724ce add gadjo:sidepage-toggled event (#12773) 2019-05-28 09:29:02 +02:00
Frédéric Péters 078f9e0c4c css: don't use full width for buttons in dialog content (#33014) 2019-05-12 10:34:30 +02:00
Frédéric Péters ba37527022 css: wrap long words in side bar (#32936) 2019-05-09 14:00:45 +02:00
Frédéric Péters f563ca72a4 css: don't use full width for checkbox in dialogs (#32933) 2019-05-09 13:11:16 +02:00
Frédéric Péters 86a467b84c css: use full width for form.as_template widgets in dialogs (#32850) 2019-05-07 11:39:18 +02:00
Christophe Siraut c57372565b debian: switch package format to 3.0 (quilt) (#32261) 2019-04-16 14:48:17 +02:00
Christophe Siraut 6c6698d83e debian: bump debhelper compatibility level (#32260) 2019-04-16 14:34:53 +02:00
Benjamin Dauvergne 354a63126c setup.py: remove long description (#32187) 2019-04-11 09:51:02 +02:00
Frédéric Péters 6655f54885 style: add back a yellow/black banner on tests (#31348) 2019-03-13 10:18:36 +01:00
Frédéric Péters b938411ebe templates: add |with_template to render form with extended markup (#29355) 2019-03-04 13:48:32 +01:00
Frédéric Péters 641c7b262c style: use primary color as badge background (#29346)
(like it's done for w.c.s.)
2018-12-28 13:45:16 +01:00
Frédéric Péters 61438eb177 style: reduce space between user name and logout button (#29345) 2018-12-28 13:45:16 +01:00
Frédéric Péters 9d46f07e0d style: adjust spacing of sidebar cells (#29344) 2018-12-28 13:45:16 +01:00
Frédéric Péters 0ba7db91af style: fix position of "clear file" label (#29364) 2018-12-28 13:45:16 +01:00
Frédéric Péters f4952b6b90 templatetags: limit start timestamp to minutes (#29327) 2018-12-22 18:30:26 +01:00
Frédéric Péters d8019fa7d0 js: use document.body.contains as document.contains is not ok on IE11 (#28859) 2018-12-11 14:25:42 +01:00
Frédéric Péters bda304b951 style: adjust color of links on blue backgrounds (#28815) 2018-12-10 13:26:51 +01:00
Frédéric Péters c8e0828ff4 images: add bulb with new colours and thinner lines (#28781) 2018-12-08 19:17:41 +01:00
Frédéric Péters 4a475ed027 style: add support for pk-* class to sidebar cells (#28776) 2018-12-08 14:33:34 +01:00
Frédéric Péters b041632ba7 style: add pk- prefixed version of transparent and highlight classes (#28741) 2018-12-07 11:04:16 +01:00
Frédéric Péters 34d7483418 style: add support for pk-(big-)button classes (#28737) 2018-12-07 10:52:02 +01:00
Frédéric Péters 96fbac501c style: use white for links in highlighted cells (#28740) 2018-12-07 10:44:43 +01:00
Frédéric Péters 68432c18eb style: add support for no-bottom-margin cell class (#28410) 2018-12-07 10:41:55 +01:00
Frédéric Péters 42d3ef6603 style: use blue gradient for section titles (#28609) 2018-12-06 09:36:00 +01:00
Frédéric Péters bf9719ecab style: make header responsive for even smaller widths (#28648) 2018-12-06 07:34:36 +01:00
Frédéric Péters 51f06b22ae style: adjust margins in wcs blocks (bis) (#28610) 2018-12-05 10:33:50 +01:00
Frédéric Péters 629b8354b8 style: update cancel buttons to be darker w/ background on hover (#28611) 2018-12-05 10:23:21 +01:00
Frédéric Péters 148c4c7005 style: adjust margins in wcs blocks (#28610) 2018-12-05 10:23:21 +01:00
Frédéric Péters 96b20b4478 style: change notification style to only have colours on the edge (#28389) 2018-11-28 22:13:58 +01:00
Frédéric Péters aec563c4ca style: avoid flicker on icon:hover (#28364) 2018-11-28 22:13:58 +01:00
Emmanuel Cazenave 46d745efff pin jquery (#28341) 2018-11-27 17:08:45 +01:00
Frédéric Péters 84a4a23913 misc: make platform name a link to the frontoffice (#28306) 2018-11-25 14:41:46 +01:00
Frédéric Péters e88bb930a8 style: remove bottom border of logout link
(crept in during a late cleanup)
2018-11-24 15:36:08 +01:00
Frédéric Péters 7f5f544451 style: redesign for winter 2018 (#28303) 2018-11-24 13:54:13 +01:00
Frédéric Péters b5aaa4a987 duplicate portal icon as portal-agent (#28105) 2018-11-20 13:30:57 +01:00
Frédéric Péters 2b7622403d js: go to location on click on dialog button created from <a> (#18895) 2018-11-17 14:41:50 +01:00
Frédéric Péters 9841169358 js: only send "click" event to appropriate button (#18894) 2018-11-17 14:41:34 +01:00
Frédéric Péters e0e9d0cdc9 scss: force tables to fill dedicated grid width (#27492) 2018-10-29 14:37:09 +01:00
Frédéric Péters 426bc1a844 templates: add new gadjo-css block (#25930) 2018-08-29 10:09:07 +02:00
Frédéric Péters eb0066081b misc: add support for new markup for appbar actions (#25698)
<div id="appbar">
   <h2>...</h2>
   <span class="actions">
     <a ...>action1</a>
     <a ...>action2</a>
   </span>
 </div>
2018-08-16 13:36:20 +02:00
Frédéric Péters 498ce16f1f misc: update trove classifier to mark python 3 support 2018-08-12 19:55:32 +02:00
Benjamin Dauvergne 8f3737b003 load stylesheets in displayPopup (#25572) 2018-08-02 17:59:36 +02:00
Frédéric Péters d8773d60d0 select variable names on click (#25322) 2018-07-18 10:42:06 +02:00
Frédéric Péters 9be0b4e451 style: use standard link blue for icons (#25326) 2018-07-18 10:42:06 +02:00
Frédéric Péters 98de460091 mobile: adjust breadcrumb max width to be kept within screen width (#25324) 2018-07-18 10:42:06 +02:00
Frédéric Péters 1de53e7cb8 style: adjust top of page for mobiles (#25323) 2018-07-18 10:42:06 +02:00
Frédéric Péters c2489427ad misc: declare viewport to get responsive mode on mobile chrome (#24153) 2018-07-17 15:41:00 +02:00
Frédéric Péters 67825e7f7e misc: distribute css map file (#24660) 2018-06-20 10:10:27 +02:00
Frédéric Péters 9112b3bcb4 style: make sure floating app icons don't disturb next cells (#24501) 2018-06-13 12:31:46 +02:00
Christophe Siraut f176555d2a debian: drop obsolete libjpeg8-dev from build-depends (#24394) 2018-06-11 08:37:40 +02:00
Frédéric Péters 0be9b96b44 misc: don't use flexbox when printing (#23899) 2018-05-17 16:45:03 +02:00
Frédéric Péters 3bafc1abe7 style: move sidebar below main content on mobile (#23887) 2018-05-17 15:21:25 +02:00
Frédéric Péters 1832654625 style: do not let sidebar change width (#23493) 2018-04-30 12:48:04 +02:00
Frédéric Péters 2724b9498a setup: mark git snapshots with .post suffix (#12641) 2018-04-30 12:48:04 +02:00
Frédéric Péters 9c486afcc2 debian: fix typo in python-pkg-resources package name (#12641) 2018-04-30 10:16:42 +02:00
Frédéric Péters 56a63429ec debian: use setuptools for backports (#12641) 2018-04-30 10:15:10 +02:00
Frédéric Péters 690db4b2ab misc: generate a version number that's compatible with PEP 440 (#12641) 2018-04-30 09:28:30 +02:00
Frédéric Péters 87ffc1ea22 add timestamp as query string to static assets (#23482) 2018-04-29 19:01:14 +02:00
Frédéric Péters f943e7fe4d general: provide support for a sidebar (#22440) 2018-04-15 10:30:29 +02:00
Frédéric Péters 7c4271f18e misc: rename leftover sidebar references to sidepage (#22440) 2018-04-15 10:30:29 +02:00
Frédéric Péters bf7262583b style: remove top/bottom margin on error notice edges (#22246) 2018-03-30 09:58:25 +02:00
Frédéric Péters a73461c436 style: use triangle for warning messages (#22320) 2018-03-30 09:58:25 +02:00
Frédéric Péters 5ae3c9d7c5 scss: dim buttons during submit (#13349) 2018-03-30 09:46:24 +02:00
Frédéric Péters e125109332 general: move #header out of #main (#22441) 2018-03-18 09:57:33 +01:00
Frédéric Péters 835f225ecc misc: use sass to generate app icon css rules (#22254) 2018-03-10 15:32:00 +01:00
Frédéric Péters c8a261135f style: add classes for wcs backoffice messages (#22103) 2018-03-02 13:11:49 +01:00
Frédéric Péters 77bb52b9fa style: change info/success colours to match frontoffice (#22103) 2018-03-02 13:11:49 +01:00
Frédéric Péters 54140db3bf style: collapse borders of single list in section (#21838) 2018-02-14 12:35:32 +01:00
Frédéric Péters d0903fa1b6 general: add foldable sections (#21828) 2018-02-13 16:51:07 +01:00
Frédéric Péters 5be8fcc2ec style: don't force an height on buttons (#21771) 2018-02-13 15:33:53 +01:00
Frédéric Péters 16f04e0bb6 style: add sections (#21776) 2018-02-13 15:33:53 +01:00
Frédéric Péters f92a056f27 style: increase global font size to 13px on larger screens (#21706) 2018-02-13 15:32:51 +01:00
Frédéric Péters de747e255f style: force global font on form elements (#21705) 2018-02-13 15:32:51 +01:00
Frédéric Péters 7c88461007 css: adapt dialog close button to jqueryui 1.12 (#20989) 2018-01-05 10:11:57 +01:00
Frédéric Péters ef4a43df28 add generic pagination template (#14939) 2018-01-02 10:41:37 +01:00
Frédéric Péters c3bcea469e style: sync table row and list item hover styles (#20911) 2017-12-28 13:13:00 +01:00
Frédéric Péters c35891d9a1 misc: adjust/add some transitions (#20910) 2017-12-28 13:13:00 +01:00
Frédéric Péters 1fc5fc76cb templates: add block for an help link (#20880) 2017-12-25 20:41:54 +01:00
Frédéric Péters df36383676 style: limit height of list icons to avoid overflowing text (#20802) 2017-12-19 15:21:57 +01:00
Frédéric Péters b4d9522455 misc: force utf-8 locale when building scss files 2017-12-11 10:34:13 +01:00
Frédéric Péters 79e601cb22 style: animate revealer (#20555) 2017-12-11 10:21:24 +01:00
Frédéric Péters 6d87ceb95e css: avoid column breaks inside object lists (#20154) 2017-11-19 06:58:23 +04:00
Frédéric Péters 636346791a templates: force latest IE compatibility mode (#20155) 2017-11-19 06:58:23 +04:00
Frédéric Péters a3374a5841 js: add flag to disable header image animation (#19185) 2017-10-05 13:41:35 +02:00
Serghei Mihai d1d6ad4694 misc: add support for action links with icons (#18807) 2017-09-27 07:34:28 +02:00
Frédéric Péters 09074455b9 css: remove main content right border on mobiles (#18915) 2017-09-24 15:35:28 +02:00
Frédéric Péters b1d29dcec1 css: fix sizing of password & email input fields in grids (#18914) 2017-09-24 15:35:28 +02:00
Frédéric Péters 5e06b6cb90 js: allow non-<form> elements as popup main widget (#18887) 2017-09-22 12:35:17 +02:00
Frédéric Péters f0a8f03f17 style: adjust publik menu look & feel on small screens (#18479) 2017-09-21 10:52:21 +02:00
Frédéric Péters 9a5c6095dd js: don't open popups on href="#" links (#18184) 2017-08-28 09:23:22 +02:00
Frédéric Péters 451418398c misc: add support for delete links in single-links lists (#18179) 2017-08-28 09:23:22 +02:00
Frédéric Péters 94e4f81cfe misc: add stronger selector for disabled icon links (#17819) 2017-08-09 16:22:36 +02:00
Thomas NOËL 657e1ace14 css: add shown-because-admin class, combo specific (#17818) 2017-07-27 15:10:07 +02:00
Thomas NOËL 3189c72690 icons: associate passerelle with connector icon (#17512)
... and remove useless "icon-connector" styles
2017-07-27 11:39:13 +02:00
Frédéric Péters 4c20dda66c templates: add block for #main-content attributes (#17767) 2017-07-24 10:07:54 +02:00
Frédéric Péters 8f08842690 templates: put #main-content children in a template block (#17766) 2017-07-24 10:07:54 +02:00
Benjamin Dauvergne b9c8cfaef6 gadjo.js: load script tag in displayPopup (#16658)
It allows forms using JS widgets to be loaded using link with rel="popup".
2017-06-19 12:18:13 +02:00
Frédéric Péters 35732cf0ab css: add style for success messages (#16628) 2017-05-30 16:37:04 +02:00
Frédéric Péters 4e10f6e0a7 js: only add close link on notification messages on gadjo pages (#16533) 2017-05-29 09:39:59 +02:00
Paul Marillonnet 6633683dca add licence and home-page in setup.py (#15946) 2017-05-17 11:38:20 +02:00
Frédéric Péters 054e0a8922 misc: python 3 compatibility (#12805) 2017-05-17 11:38:20 +02:00
Frédéric Péters 34bbb37ab4 add autocomplete support to jqueryui css (#15493) 2017-03-17 17:24:58 +01:00
Frédéric Péters b235596042 give appropriate style to disabled buttons in jquery ui dialogs (#14982) 2017-02-13 18:22:10 +01:00
Frédéric Péters bcce2638f7 force gray borders on disabled buttons (#14983) 2017-02-13 18:22:10 +01:00
Frédéric Péters 0e07368fb8 general: restyle buttons (#14465) 2017-02-13 11:32:37 +01:00
Frédéric Péters dba0d9918c misc: make sure notification message icons are properly aligned 2017-02-13 11:32:37 +01:00
Serghei Mihai 7ebb003124 add support for extra actions in 'sandwich' menu (#14830)
The menu should be a list with "extra-actions-menu" class and the
toggler a link with class "extra-actions-menu-opener".

For example:

<a class="extra-actions-menu-opener"></a>
<ul class="extra-actions-menu">
  ...
</ul>
2017-02-13 11:32:37 +01:00
Frédéric Péters 29f7e00f03 remove dependency on jquery ui css (#7760)
This adds required styles for dialogs, overlays and calendar widget.
2017-02-13 11:32:37 +01:00
Benjamin Dauvergne ff0e166f6c replace use of STATIC_URL by staticfiles directives (fixes #14844) 2017-02-01 17:21:36 +01:00
Benjamin Dauvergne b9da59b418 remove load url from future, it's deprecated since Django 1.5 (fixes #14843) 2017-02-01 17:21:36 +01:00
Benjamin Dauvergne 0a083e8582 vendored importlib is deprecated (fixes #14359) 2017-02-01 17:21:36 +01:00
Frédéric Péters 8b48dee45a debian: declare xstatic-opensans package name 2017-01-19 13:14:01 +01:00
Frédéric Péters 240a8bfc6d style: switch to Open Sans (#14574) 2017-01-19 12:57:57 +01:00
Frédéric Péters 00308c8355 remove unused files 2017-01-16 10:13:13 +01:00
Frédéric Péters a761b6e31c style: update notification look and feel (#14613) 2017-01-16 10:13:13 +01:00
Thomas NOËL ae49ff8d25 add h2 style in appbar (#14471) 2017-01-02 11:11:02 +01:00
Frédéric Péters 69b7064e5f add style for badges in list (#14444) 2017-01-01 15:15:03 +01:00
Frédéric Péters 34789d6b15 add alternating backgrounds to table rows (#14458) 2017-01-01 15:15:03 +01:00
Frédéric Péters 612d8b8082 remove local copy of select2 (#14033) 2016-12-11 15:41:40 +01:00
Frédéric Péters 11dd7d47b7 translation update 2016-11-13 21:46:16 +01:00
Frédéric Péters c4cb05db55 js: add "cancel-button" class to dialog cancel button (#13932) 2016-11-13 16:24:00 +01:00
Frédéric Péters ae01929433 misc: override jquery-ui font-family 2016-10-25 08:32:26 +02:00
Frédéric Péters 59ac6e68b8 setup: add support for sassc sass compiler (#13515) 2016-10-10 22:52:34 +02:00
Frédéric Péters 8bf9dc3b3b js: pass disabled attribute attached to dialog button (#13215) 2016-09-19 11:36:24 +02:00
Frédéric Péters 39ccc33cc4 css: don't apply readonly look to date/time picker input borders 2016-09-18 20:11:33 +02:00
Frédéric Péters 9380ba2a1f style: adjust print stylesheet for recent changes (#12995) 2016-08-31 10:02:19 +02:00
Frédéric Péters c26f9c698a only hide last header link if it's a breadcrumb (#12888) 2016-08-31 10:02:19 +02:00
Frédéric Péters 11e4f3588e make sure javascript code is only executed on real gadjo pages (#12887) 2016-08-25 15:56:13 +02:00
Frédéric Péters 50e078ba64 style: adapt for wcs backoffice titles (#12953) 2016-08-25 15:37:48 +02:00
Frédéric Péters b5c5a785e9 style: apply "work" pattern to app label only (#12886) 2016-08-24 19:36:49 +02:00
Frédéric Péters 18d57748f0 reserve space for publik menu only if it exists (#12884) 2016-08-19 16:50:57 +02:00
Frédéric Péters 44cd22474e build: ship *.jpeg files 2016-08-18 16:20:15 +02:00
Frédéric Péters c06af04c5e style: redesign for summer 2016 (#12862)
It has a smaller sky blue and sand header that integrates the site breadcrumbs,
and a lateral menu that slides laterally to be icons-only.
2016-08-18 15:45:03 +02:00
Frédéric Péters 3b33e6ec80 style: let grid element floats after other div (specificity fix) 2016-07-28 10:55:49 +02:00
Frédéric Péters 7a1e7ad175 add icon for bijoe (#12702) 2016-07-25 13:14:26 +02:00
Frédéric Péters 38df416c12 use same down triangle as before (for better font coverage) (#12643) 2016-07-20 11:01:02 +02:00
Frédéric Péters 148ae2fc38 templates: add a sidepage block, so it can be removed altogether (#12655) 2016-07-20 11:01:02 +02:00
Frédéric Péters a2ca7be9bd templates: add new site-header block (#12623) 2016-07-20 10:12:57 +02:00
Frédéric Péters ca49863416 css: don't use unicode characters in scss 2016-07-18 14:36:05 +02:00
Frédéric Péters 2cc48870ac style: add ▼ to publik menu using CSS (#12622) 2016-07-18 14:04:51 +02:00
Frédéric Péters 9b62ad77f1 use a cookie to store sidepage status (#12617) 2016-07-18 11:31:13 +02:00
Frédéric Péters 87d72ccc11 improve spacing between publik menu icons and texts (#12612) 2016-07-17 11:51:32 +02:00
Frédéric Péters 31217f4b9d style: set disabled links in gray (#12588) 2016-07-15 10:15:10 +02:00
Frédéric Péters b7cb97bc53 style: force sidepage menu entries to fit on single lines (#12501) 2016-07-11 11:21:21 +02:00
Frédéric Péters 998be51c6e css: turn disabled buttons flat and with a lighter text colour 2016-06-29 09:42:39 +02:00
Frédéric Péters ea4f995b37 css: slight adjustments to dialog box widgets alignments 2016-06-22 13:52:47 +02:00
Frédéric Péters d70b3df3b6 css: use same background for top banner as the one in the sidemenu 2016-06-22 13:52:47 +02:00
Frédéric Péters 9bf188a8a6 css: remove right margin of dialog buttons as they're right-aligned 2016-06-22 13:52:47 +02:00
Frédéric Péters 11010e3f47 misc: update error style not to use an image 2016-06-22 13:52:47 +02:00
Frédéric Péters bc207e4b53 misc: fix typo in checkbox selector 2016-06-18 11:06:16 +02:00
Frédéric Péters b221b9dd63 misc: mark #main as position: relative, to match what was in w.c.s. 2016-06-18 11:06:16 +02:00
Frédéric Péters 51b6528f28 debian: require newer ruby-sass version to build 2016-06-15 09:20:29 +02:00
Frédéric Péters af5c658be2 build: abort if scss doesn't compile (#11353) 2016-06-15 08:54:17 +02:00
Frédéric Péters cb6620ffdf css: add "work in progress" banner (#11214) 2016-06-15 08:54:17 +02:00
Frédéric Péters e1cb7c9cae css: add missing _utils.scss 2016-06-14 18:45:19 +02:00
Frédéric Péters e59d4e77ee static: merge form styling from publik-base-theme (#11153) 2016-06-14 17:21:23 +02:00
Frédéric Péters 32e40afe65 add grid system (from publik-base-theme) (#11092) 2016-06-09 22:39:15 +02:00
Frédéric Péters 422799a06e switch to scss 2016-06-09 22:39:15 +02:00
Benjamin Dauvergne 54964dedd9 debian: add buildep on zlib1g-dev, dpkg-dev, dh-python, python2.7-dev and python-all-dev for building Pillow 2016-06-09 19:12:30 +02:00
Benjamin Dauvergne ef48f89127 add form template similar to as_p (fixes #9636)
It reorders elements of fields in this order:
- label
- help_text
- errors
- field
2016-06-09 19:12:30 +02:00
Frédéric Péters 3492c16268 debian: declare dependency on libjs-query (#11272) 2016-06-09 16:48:11 +02:00
Frédéric Péters da9f3136e5 templates: add a aftercontent block (#10976) 2016-05-18 10:56:38 +02:00
Serghei Mihai 12766caa45 icons: add "announces" icon (#10886) 2016-05-11 17:22:05 +02:00
Frédéric Péters 984acfdaea js: add support for non modal dialogs (#10629) 2016-04-12 13:42:20 +02:00
Frédéric Péters d8c9a55a5d js: only load once (#10499) 2016-03-31 15:39:38 +02:00
Frédéric Péters a88c76dd5c misc: add book icon, for knowledge database 2016-03-31 13:01:57 +02:00
Frédéric Péters 3226499408 misc: generic style for list of object links 2016-02-13 11:47:02 +01:00
Benjamin Dauvergne fbab2ba7ca implement foldable fieldset as in w.c.s. (fixes #9788) 2016-02-08 17:57:35 +01:00
Frédéric Péters 6fa1dff90a misc: remove some page elements when printing 2016-02-08 15:26:50 +01:00
Frédéric Péters 6bbe93957f style: lighten a tiny bit the footer background 2016-02-02 15:14:18 +01:00
Frédéric Péters d3980d753b style: use whole width for content (#9836) 2016-02-02 15:12:34 +01:00
Frédéric Péters 97f5fb7c23 js: disable buttons after click when using "in place submit" (#9826) 2016-02-01 19:57:45 +01:00
Frédéric Péters d74c5b553a check HTML5 form validation before POSTing it with ajax (#9450) 2015-12-29 18:16:44 +01:00
Frédéric Péters b7ec4605ec icons: add "texts" icon 2015-12-29 15:42:51 +01:00
Frédéric Péters d548d5adce debian: adapt libjpeg?-dev dependency to also work in jessie 2015-12-27 16:26:11 +01:00
Frédéric Péters a197d0ffa6 icons: add theme icon 2015-12-27 11:03:08 +01:00
Frédéric Péters 5fd28df0cb misc: align price cells to the right 2015-12-27 11:02:49 +01:00
Frédéric Péters 5360f5bfe3 icons: new more specific icon for counter 2015-11-26 14:04:19 +01:00
Frédéric Péters 471ffd932f icons: add a mail icon 2015-11-26 13:59:43 +01:00
Frédéric Péters e1fd415cee misc: display a warning to IE < 9 (#9024) 2015-11-18 19:15:21 +01:00
Frédéric Péters e3b21c6336 style: update app button look (solid border with a bit of a radius) (#8934) 2015-11-16 22:48:12 +01:00
Frédéric Péters fe3bd80b68 style: add animation when hovering sidebar menu links (#8935) 2015-11-16 22:48:12 +01:00
Frédéric Péters 3fbcdbc636 js: pass response as gadjo:dialog-done event parameter (#8995) 2015-11-16 22:48:12 +01:00
Frédéric Péters 39682b3dc4 fix centering of organization units icon 2015-11-11 16:32:11 +01:00
Frédéric Péters 4c795507cb template: add subheader block 2015-11-10 17:53:08 +01:00
Frédéric Péters a9219eaaba use sessionStorage if localStorage is not available (#8806) 2015-11-06 09:33:49 +01:00
Frédéric Péters 8c0a857a35 misc: add icon for welco (smiling face at the counter) 2015-11-02 17:36:43 +01:00
Frédéric Péters 6f54b0e586 misc: include {{media}} in <head> (#8834) 2015-11-01 19:31:47 +01:00
Frédéric Péters 5c7aca5f3b misc: add system icon 2015-10-23 12:41:01 +02:00
Frédéric Péters ba33d1aba8 debian: declare build-dependency on libjpeg8-dev
(this is required because the debian build process will try to get Pillow
to build because it's declared in setup.py and wheezy does only have
python-imaging available (and that's equivalent but then setup.py doesn't
know that))
2015-10-04 22:17:37 +02:00
Frédéric Péters acb49b1352 misc: fix serving of minified file in production environment (#8506) 2015-10-04 21:40:51 +02:00
Frédéric Péters a6c187a4f6 misc: add new after-main-content block 2015-09-29 22:48:51 +02:00
Frédéric Péters c1175029b0 js: add support for inplace submit of simple forms popups (#8395) 2015-09-28 10:38:18 +02:00
Frédéric Péters 53d0c5c3e2 fix display of breadcrumb right side in chromium (#8391) 2015-09-27 19:59:57 +02:00
Benjamin Dauvergne f5a133dc87 setup.py: remove last reference to BASE_DIR 2015-09-25 22:32:42 +02:00
Benjamin Dauvergne 45ca70f674 setup.py: prevent errors in compile_translations to mess with the current working directory 2015-09-25 22:10:31 +02:00
Benjamin Dauvergne f18706c051 setup.py: fix computation of BASE_DIR 2015-09-25 20:26:25 +02:00
Frédéric Péters 2e534d26fd setup: use absolute paths when building icons (#8383) 2015-09-25 17:25:53 +02:00
Serghei Mihai 002d6cf922 manage local storage only if sidebar present (#8255) 2015-09-22 17:20:43 +02:00
Benjamin Dauvergne 924acb54b5 gadjo.js: fix use of .prop() to midify form action (#8180) 2015-09-18 17:20:42 +02:00
Benjamin Dauvergne 7a3dcd8ccb gadjo.css: add plus and minus signs 2015-09-18 17:20:42 +02:00
Frédéric Péters b0506aa524 setup: don't rebuild existing images (#8040) 2015-08-18 17:01:31 +02:00
Benjamin Dauvergne 200cad04bd Include VERSION 2015-08-06 10:53:15 +02:00
Frédéric Péters f52e9c3a52 debian: only build for python 2.7 2015-07-21 23:21:46 +02:00
Benjamin Dauvergne e00d739586 MANIFEST.in: add undistributed files
Mainly COPYING, AUTHORS and some files from the included select2.
2015-07-21 23:06:43 +02:00
Benjamin Dauvergne 5ab37ea1b3 setup.py: move import PIL inside generate and add setup_requires on Pillow (#7899)
Also remove double import of re.
2015-07-21 19:52:39 +02:00
Benjamin Dauvergne 504b43a246 root.html: protect $ symbol from overwriting (#7589)
$ can be overwritten by the jQuery loaded by django-debug-toolbar in the
messages fadeout callback, it prevents that.
2015-07-21 19:20:06 +02:00
Benjamin Dauvergne a666d7d47e gadjo.js: protect the $ symbol from overwriting (#7589)
By using a private namespace we protect ourself from call to
jQuery.noConflict(true) by django-debug-toolbar.
2015-07-21 19:20:06 +02:00
Frédéric Péters ef39bae975 template: add block to add attributes to <body> (#7869) 2015-07-17 10:19:59 +02:00
Frédéric Péters 3d8d11a361 add connector icon 2015-07-05 10:59:14 +02:00
Frédéric Péters 007c255437 update pagination style (#7640) 2015-06-23 07:12:33 +02:00
Frédéric Péters f22a9314da style: add css rules for notifications (#7563) 2015-06-15 10:33:25 +02:00
Frédéric Péters 8147eddd0b style: update dialog title and widget arrangement (#7562) 2015-06-15 07:12:57 +02:00
Frédéric Péters d13f30948a style: give table more space (#7560) 2015-06-13 20:45:24 +02:00
Frédéric Péters 9c631e6718 add copyright info for adwaita-lock.jpg 2015-06-12 18:09:20 +02:00
Frédéric Péters 28f4452619 update with a softer, coral colored, banner (wcs sync) 2015-06-10 17:31:38 +02:00
Frédéric Péters 1c3ad06d1d style ajax loading error message (#5489) 2015-06-10 14:26:59 +02:00
Benjamin Dauvergne 79cc29d765 display an error when loading or submitting the dialog box fails (#5489) 2015-06-10 14:26:06 +02:00
Frédéric Péters 8d4310a8ff style: improve breadcrumb rendering (#7506) 2015-06-10 10:19:23 +02:00
Benjamin Dauvergne 5b26cebcb8 gadjo/root.html: put loading of jQuery related statics in a block (#7450)
Some applications will not need it.
2015-06-10 10:19:23 +02:00
Frédéric Péters 944ffe7536 build: ship icons source files (#7505) 2015-06-08 18:15:08 +02:00
Frédéric Péters 91ea158fb6 add template support for breadcrumb (#7492) 2015-06-08 14:25:52 +02:00
Frédéric Péters 0af671acee css: use class names for app icons (#7490) 2015-06-08 14:08:57 +02:00
Frédéric Péters cf299da0d0 debian: fix dependency to mention python-imaging, not python-pil 2015-06-04 10:32:00 +02:00
Frédéric Péters e6a895a34f add missing python-pil dependency 2015-06-04 10:27:51 +02:00
Frédéric Péters 61820be081 integrate icons for the various services (#7455) 2015-06-04 10:24:12 +02:00
Frédéric Péters c40735cd8a set base.html as an intermediate template (#7394) 2015-06-03 13:31:06 +02:00
Frédéric Péters 62c7e7be33 style: add support for a sidepage (#7284) 2015-05-26 17:43:21 +02:00
Frédéric Péters 2b3ed5b566 misc: fix some heights to be pixel similar with wcs 2015-05-22 17:52:11 +02:00
Benjamin Dauvergne cd4e1b0ca3 setup.py: add missing import 2015-05-22 17:50:48 +02:00
Benjamin Dauvergne 2fcbd660fb setup.py: use new get_version() not depending on a __version__ symbol 2015-05-22 17:49:50 +02:00
Frédéric Péters 7f81919b75 css: style html5 email fields like other text fields (#7041) 2015-05-22 16:14:59 +02:00
Frédéric Péters 8a3ca861b8 css: style for disabled items (#7133) 2015-05-18 18:07:10 +02:00
Frédéric Péters f034436da7 style: integrate new breadcrumb style (#7257) 2015-05-15 17:06:44 +02:00
Frédéric Péters f33129e1be template: use full_name in top bar (#7214) 2015-05-12 15:05:06 +02:00
Benjamin Dauvergne ef4d1230e3 gadjo.js: allow displayPopup to work with other kind of elements than <a/> (#7143) 2015-05-12 11:06:32 +02:00
Benjamin Dauvergne 9c0c0d2551 gadjo.js: close existing dialog boxes when opening a new one 2015-05-11 11:36:08 +02:00
Serghei Mihai 68946fcdc3 version 0.4.3 2015-04-29 19:01:54 +02:00
Frédéric Péters 371fab9c20 distribute translations (#6310) 2015-04-21 17:24:28 +02:00
Frédéric Péters 9a436dbb3e add locale file 2015-04-21 17:20:17 +02:00
Frédéric Péters 270168a4da add style for required fields (#6946)
Do note the style should only be applied on forms where there are optional
fields, should not be applied if all fields are required.
2015-04-17 11:18:15 +02:00
Serghei Mihai 690f35e0d3 initial files for deb packaging 2015-04-03 15:50:23 +02:00
Jérôme Schneider 105842ccfa New release 0.4.2 2015-02-18 14:44:48 +01:00
Frédéric Péters 20b29487cf js: ignore forms that have a gadjo-popup-ignore class for popups (#6348) 2015-01-25 17:41:31 +01:00
Frédéric Péters 26622f5366 limit width of dialog boxes (#6029) 2014-11-28 15:16:30 +01:00
Benjamin Dauvergne a00660e886 release 0.4.1 2014-10-27 16:10:25 +01:00
Benjamin Dauvergne a7ba206ebd release 0.4 2014-10-27 16:07:22 +01:00
Thomas NOËL 89708962f0 handle password input style (#5792) 2014-10-23 20:48:59 +02:00
Thomas NOËL 961f769851 release 0.3 2014-10-21 10:32:28 +02:00
Frédéric Péters 17be7b8e3d css: escape non breaking spaces (#5776) 2014-10-21 10:04:55 +02:00
Frédéric Péters 3425188229 README: add licence information 2014-09-04 13:59:42 +02:00
Frédéric Péters ce5776dcec remove obsolete images 2014-09-04 13:59:41 +02:00
Frédéric Péters f40f715426 README: add general description and documentation 2014-09-04 13:59:41 +02:00
Frédéric Péters c51304bc27 README: mention global_settings.STATICFILES_FINDERS 2014-09-04 10:31:53 +02:00
Frédéric Péters ec24d872de apply a fallback background colour to header (#5362) 2014-09-01 14:37:27 +02:00
Frédéric Péters e21bb7a95d add some margins at the bottom of zone tiles
This is useful when they take more than a single line.
2014-09-01 14:37:26 +02:00
Frédéric Péters 3fd69b7acd style a.button like buttons, as best as possible 2014-09-01 14:37:26 +02:00
Benjamin Dauvergne 540aa3ea36 As for the gadjo:dialog-loaded event, trigger dialog-done on document if $anchor was removed from the document tree
fixes #5332
2014-08-27 14:47:15 +02:00
Frédéric Péters d54db0865b include declaration of FontAwesome 2014-08-25 17:11:55 +02:00
Frédéric Péters dd9a2f55ab style: updates to closer match what's being done in wcs (#5304) 2014-08-22 16:15:16 +02:00
Frédéric Péters f3516d1c1d Use xstatic packages instead of shipping common libraries copies (#5181) 2014-08-21 13:54:44 +02:00
Benjamin Dauvergne a075ca07c9 js: destroy dialog when closed 2014-08-14 11:09:46 +02:00
Frédéric Péters 6ac05bf6cc extend header gradient to avoid flat green area (refs #5274) 2014-08-14 11:09:41 +02:00
Frédéric Péters d82320ee47 add style for big informational message (refs #5180) 2014-08-14 11:09:37 +02:00
Benjamin Dauvergne 22485914ce template: use i18n template tags
refs #5272
2014-08-13 16:26:48 +02:00
Benjamin Dauvergne 62ca81d781 template: add block homepage-title
refs #5272
2014-08-13 16:26:46 +02:00
Benjamin Dauvergne f1c7984703 template: add block homepage-url
refs #5272
2014-08-13 16:26:45 +02:00
Benjamin Dauvergne 81bb684282 template: add block logout-url
refs #5272
2014-08-13 16:26:42 +02:00
Benjamin Dauvergne f377d6ada5 template: use is_authenticated() to check if a user is logged
refs #5272
2014-08-13 16:26:40 +02:00
Benjamin Dauvergne 6186801ee8 template: add block site-url for header title href
refs #5272
2014-08-13 16:26:28 +02:00
Benjamin Dauvergne 2447c988ac template: remove newline before DOCTYPE
refs #5272
2014-08-13 16:26:12 +02:00
Benjamin Dauvergne 52a24e30ae js: if displayPopup was removed launch event on document (fixes #5267) 2014-08-13 11:07:47 +02:00
Thomas NOËL 99d6dc45db release 0.2 2014-07-28 11:35:26 +00:00
Benjamin Dauvergne b2fff62ed9 js: add new event when dialog has finished loading (#5111) 2014-07-21 15:37:22 +02:00
Frédéric Péters de23f42b79 js: add comments (#5111) 2014-07-21 13:55:59 +02:00
Benjamin Dauvergne 58763ed225 js: add support for ajax submission of form (#5111) 2014-07-21 13:55:49 +02:00
Frédéric Péters 987abce71d style: minor form tweaks 2014-07-11 15:31:24 +02:00
Frédéric Péters 36d80b8648 style: add css for 'plus' font icon 2014-07-11 15:31:15 +02:00
Frédéric Péters 78e215494d javascript to open rel="popup" links in popups (#5111) 2014-07-11 13:10:51 +02:00
Frédéric Péters 5252337e29 darken the default text font 2014-06-17 19:05:03 +02:00
Serghei Mihai 8b73065d1c version and setup fix 2014-04-28 17:52:43 +02:00
Serghei Mihai 82c3b0dbeb version read correctly 2014-04-28 17:35:54 +02:00
Serghei Mihai a5193e3f2d static js files included 2014-04-28 17:22:09 +02:00
Serghei Mihai 547ed7a69a setup updated to compliant with eobuilder 2014-04-24 19:22:53 +02:00
Frédéric Péters b45b1e5e56 include jpg files 2014-04-22 16:05:49 +02:00
Serghei Mihai ffd9e321d5 setup.py: package data included 2014-04-17 18:35:07 +02:00
Serghei Mihai 08edbc7fd6 Manifest updated 2014-04-08 19:50:42 +02:00
155 changed files with 7226 additions and 31315 deletions

131
.eslintrc.yml Normal file
View File

@ -0,0 +1,131 @@
env:
browser: true
es2017: true
extends: eslint:recommended
parserOptions:
sourceType: module
ignorePatterns:
- "gadjo/static/js/gadjo.js"
rules:
# Follow Standard JS guidelines : https://standardjs.com/rules.html, except rules
# annotated with a 'custom' comment
# Linting
array-callback-return: error
constructor-super: error
eqeqeq: [error, always, {null: ignore}]
handle-callback-err: error
no-array-constructor: error
no-caller: error
no-class-assign: error
no-cond-assign: error
no-const-assign: error
no-control-regex: error
no-debugger: error
no-delete-var: error
no-dupe-args: error
no-dupe-class-members: error
no-dupe-keys: error
no-duplicate-case: error
no-duplicate-imports: error
no-empty-character-class: error
no-empty-pattern: error
no-eval: error
no-ex-assign: error
no-extend-native: error
no-extra-boolean-cast: error
no-fallthrough: error
no-func-assign: error
no-global-assign: error
no-implied-eval: error
no-inner-declarations: error
no-invalid-regexp: error
no-iterator: error
no-labels: error
no-new-func: error
no-new-object: error
no-new-require: error
no-new-symbol: error
no-new-wrappers: error
no-new: error
no-obj-calls: error
no-octal-escape: error
no-octal: error
no-proto: error
no-redeclare: error
no-regex-spaces: error
no-return-assign: error
no-self-assign: error
no-self-compare: error
no-sequences: error
no-shadow-restricted-names: error
no-sparse-arrays: error
no-template-curly-in-string: error
no-this-before-super: error
no-throw-literal: error
no-undef: error
no-unexpected-multiline: error
no-unmodified-loop-condition: error
no-unneeded-ternary: error
no-unreachable: error
no-unsafe-finally: error
no-unsafe-negation: error
no-unused-vars: error
no-use-before-define: [error, {functions: false, variables: false, classes: false}]
no-useless-call: error
no-useless-computed-key: error
no-useless-constructor: error
no-useless-escape: error
no-var: error
no-with: error
use-isnan: error
valid-typeof: error
# Style / Formatting
accessor-pairs: error
block-spacing: error
brace-style: [error, 1tbs, {allowSingleLine: true}]
camelcase: error
comma-dangle: [error, always-multiline] # custom : Adding a dangling comma make patches shorter
comma-spacing: error
comma-style: error
curly: [error, multi-line]
dot-location: [error, property]
eol-last: [error, always]
func-call-spacing: error
indent: [error, 2]
key-spacing: error
keyword-spacing: error
max-len: [error, {code: 110}] # custom: configured like this on python projects
new-cap: [error, { newIsCap: true, capIsNew: false}]
new-parens: error
no-extra-parens: [error, functions]
no-floating-decimal: error
no-irregular-whitespace: error
no-lone-blocks: error
no-mixed-spaces-and-tabs: error
no-multi-spaces: error
no-multi-str: error
no-multiple-empty-lines: error
no-tabs: error
no-trailing-spaces: error
no-undef-init: error
no-useless-rename: error
no-whitespace-before-property: error
object-property-newline: [error, { allowMultiplePropertiesPerLine: true }]
one-var: [error, never]
operator-linebreak: [error, before]
padded-blocks: [error, never]
quotes: [error, single]
rest-spread-spacing: error
semi-spacing: error
semi: [error, never]
space-before-function-paren: error
space-in-parens: error
space-infix-ops: error
space-unary-ops: error
spaced-comment: error
template-curly-spacing: error
wrap-iife: [error, any]
yield-star-spacing: [error, {after: true, before: true}]

4
.git-blame-ignore-revs Normal file
View File

@ -0,0 +1,4 @@
# misc: apply djhtml (#69422)
318d6fb378205d0529a2bd152212c050c8fccfa6
# misc: apply double-quote-string-fixer (#79788)
346e0a4d72c526aa4ed7e9b9015916aa59b6debc

9
.gitignore vendored
View File

@ -1,4 +1,13 @@
*.pyc
*.swp
.eggs
/dist
/gadjo.egg-info
/gadjo/locale/fr/LC_MESSAGES/django.mo
/gadjo/static/css/gadjo.css
/gadjo/static/css/gadjo.multiselectwidget.css
/gadjo/static/css/gadjo.snapshotdiff.css
/gadjo/static/css/icons
node_modules
MANIFEST
build

38
.pre-commit-config.yaml Normal file
View File

@ -0,0 +1,38 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- id: double-quote-string-fixer
- repo: https://github.com/psf/black
rev: 23.3.0
hooks:
- id: black
args: ['--target-version', 'py37', '--skip-string-normalization', '--line-length', '110']
- repo: https://github.com/PyCQA/isort
rev: 5.12.0
hooks:
- id: isort
args: ['--profile', 'black', '--line-length', '110']
- repo: https://github.com/asottile/pyupgrade
rev: v3.3.1
hooks:
- id: pyupgrade
args: ['--keep-percent-format', '--py39-plus']
- repo: https://github.com/rtts/djhtml
rev: '3.0.6'
hooks:
- id: djhtml
args: ['--tabwidth', '2']
- repo: https://git.entrouvert.org/pre-commit-debian.git
rev: v0.3
hooks:
- id: pre-commit-debian
- repo: https://github.com/pre-commit/mirrors-eslint
rev: v8.36.0
hooks:
- id: eslint
files: \.m?js$
types: [file]
args: [--fix]

54
Jenkinsfile vendored Normal file
View File

@ -0,0 +1,54 @@
@Library('eo-jenkins-lib@main') import eo.Utils
pipeline {
agent any
options { disableConcurrentBuilds() }
stages {
stage('Unit Tests') {
steps {
sh 'tox -rv'
}
post {
always {
script {
utils = new Utils()
utils.publish_coverage('coverage.xml')
utils.publish_coverage_native('index.html')
utils.publish_pylint('pylint.out')
}
mergeJunitResults()
}
}
}
stage('Packaging') {
steps {
script {
env.SHORT_JOB_NAME=sh(
returnStdout: true,
// given JOB_NAME=gitea/project/PR-46, returns project
// given JOB_NAME=project/main, returns project
script: '''
echo "${JOB_NAME}" | sed "s/gitea\\///" | awk -F/ '{print $1}'
'''
).trim()
if (env.GIT_BRANCH == 'main' || env.GIT_BRANCH == 'origin/main') {
sh "sudo -H -u eobuilder /usr/local/bin/eobuilder -d bullseye,bookworm ${SHORT_JOB_NAME}"
} else if (env.GIT_BRANCH.startsWith('hotfix/')) {
sh "sudo -H -u eobuilder /usr/local/bin/eobuilder -d bullseye,bookworm --branch ${env.GIT_BRANCH} --hotfix ${SHORT_JOB_NAME}"
}
}
}
}
}
post {
always {
script {
utils = new Utils()
utils.mail_notify(currentBuild, env, 'ci+jenkins-gadjo@entrouvert.org')
}
}
success {
cleanWs()
}
}
}

View File

@ -1,2 +1,9 @@
recursive-include gadjo/locale *.po *.mo
recursive-include gadjo/templates *.txt *.html
recursive-include gadjo/static *.css *.png *.gif *.eot *.woff *.ttf *.svg
include MANIFEST.in
include AUTHORS
include COPYING
include VERSION
include inkscape_wrapper.py
recursive-include gadjo/static *.scss *.css *.map *.png *.gif *.eot *.woff *.ttf *.svg *.jpg *.jpeg *.js README.md LICENSE release.sh
recursive-include icons *.svg

82
README.txt Normal file
View File

@ -0,0 +1,82 @@
=====
Gadjo
=====
Gadjo is a base template for Django applications, tailored for
management interfaces, built to provide a nice and modern look, while
using progressive enhancement and responsive designs to adapt to
different environments.
Usage
=====
Make your application base template {% extends "gadjo/base.html" %}.
You should add gadjo.finders.XStaticFinder to STATICFILES_FINDERS,
from django.conf import global_settings
STATICFILES_FINDERS = global_settings.STATICFILES_FINDERS + \
('gadjo.finders.XStaticFinder',)
Additional static files
------------------------
Additional static files libraries can be added via INSTALLED_APPS,
for example 'xstatic.pkg.jquery_tablesorter'; its static files can
then be referred in a template using the xstatic template tag:
{% xstatic 'jquery_tablesorter' 'jquery.tablesorter.js' %}
Progressive enhancement -- Dialogs
----------------------------------
Links marked with rel="popup" will be opened into dialog boxes.
The dialog title is extracted from "#appbar h2" (this selector can be
changed with a @data-title-selector attribute on the anchor tag).
The dialog content is extracted from "form" (this selector can be
changed with a @data-selector attribute).
Buttons (both <button> and <a>) are extracted from the content and
converted into proper dialog buttons. A button with "cancel" as its
class will have its action changed to simply close the dialog, without
server processing.
After loading the dialog content, a gadjo:dialog-loaded event is
triggered on the anchor with the dialog content as argument.
Alternatively the server may notice the ajax request and answer with
an appropriate JSON response. In that case it should have a 'content'
attribute with the HTML content, or a 'location' attribute in case of
a redirect.
In case of such a redirect, a gadjo:dialog-done event is triggered on
the anchor and can be cancelled to prevent the default redirect
behaviour.
Licence
=======
Python, Javascript and CSS files are published under the GNU AFFERO GENERAL
PUBLIC LICENSE (see the COPYING file for the complete text).
gadjo/static/images/info-icon.png and icons/*.svg are derived work of icons
from gnome-icon-theme-symbolic, published under the Creative Commons
Attribution-Share Alike 3.0 United States License by the GNOME Project, see
http://www.gnome.org/.
gadjo/static/css/header-03.jpeg is copied from let's encrypt website, licensed
under Mozilla Public License Version 2.0, see their repository at
https://github.com/letsencrypt/website.git.
The querystring template tag is originally from django-tables2, copyright (c)
2011, Bradley Ayers, copyright (c) 2008, Michael Elsdörfer, published under
the MIT license.
https://raw.githubusercontent.com/jieter/django-tables2/master/LICENSE

5
debian/changelog vendored Normal file
View File

@ -0,0 +1,5 @@
gadjo (0.1-1) unstable; urgency=low
* source package automatically created by stdeb 0.6.0+git
-- Frederic Peters <fpeters@entrouvert.com> Mon, 31 Mar 2014 14:49:45 +0200

24
debian/control vendored Normal file
View File

@ -0,0 +1,24 @@
Source: gadjo
Maintainer: Frederic Peters <fpeters@entrouvert.com>
Section: python
Priority: optional
Build-Depends: debhelper-compat (= 12),
dh-python,
dpkg-dev,
inkscape,
libjpeg-dev,
python3-all,
python3-django,
python3-pil,
python3-setuptools,
sassc,
zlib1g-dev,
Standards-Version: 3.9.1
Package: python3-gadjo
Architecture: all
Depends: libjs-jquery,
python3-django,
${misc:Depends},
${python3:Depends},
Description: Base templates for management interfaces (Python 3)

4
debian/py3dist-overrides vendored Normal file
View File

@ -0,0 +1,4 @@
xstatic_font_awesome python3-xstatic-font-awesome
xstatic_opensans python3-xstatic-opensans
xstatic_jquery python3-xstatic-jquery
xstatic_jquery_ui python3-xstatic-jquery-ui

5
debian/pydist-overrides vendored Normal file
View File

@ -0,0 +1,5 @@
xstatic python-xstatic
xstatic_font_awesome python-xstatic-font-awesome
xstatic_opensans python-xstatic-opensans
xstatic_jquery python-xstatic-jquery
xstatic_jquery_ui python-xstatic-jquery-ui

1
debian/pyversions vendored Normal file
View File

@ -0,0 +1 @@
2.7-

7
debian/rules vendored Executable file
View File

@ -0,0 +1,7 @@
#!/usr/bin/make -f
export PYBUILD_NAME=gadjo
export PYBUILD_DISABLE=test
%:
dh $@ --with python3 --buildsystem=pybuild

1
debian/source/format vendored Normal file
View File

@ -0,0 +1 @@
3.0 (quilt)

View File

@ -0,0 +1 @@
__version__ = '0.4.3'

83
gadjo/finders.py Normal file
View File

@ -0,0 +1,83 @@
# this file derives from django-xstatic:
# Author: Gautier Hayoun
# Author-email: ghayoun@gmail.com
# License: MIT license
# Home-page: http://github.com/gautier/django-xstatic
import os
from django.conf import settings
from django.contrib.staticfiles import utils
from django.contrib.staticfiles.finders import BaseFinder
from django.core.exceptions import ImproperlyConfigured
from django.core.files.storage import FileSystemStorage
try:
from importlib import import_module
except ImportError:
from django.utils.importlib import import_module
class XStaticStorage(FileSystemStorage):
"""
A file system storage backend that takes an xstatic package module and works
for the data contained in it.
"""
prefix = 'xstatic'
def __init__(self, package, *args, **kwargs):
"""
Returns a static file storage if available in the given xstatic package
"""
try:
package = import_module(package)
except ImportError:
raise ImproperlyConfigured('Cannot import module "%s"' % package)
location = package.BASE_DIR
super().__init__(location, *args, **kwargs)
class XStaticFinder(BaseFinder):
storage_class = XStaticStorage
gadjo_deps = ['jquery', 'jquery_ui', 'font_awesome', 'opensans']
def __init__(self, apps=None, *args, **kwargs):
# The list of apps that are handled
self.apps = []
# Mapping of app module paths to storage instances
self.storages = {}
if apps is None:
apps = settings.INSTALLED_APPS
apps = list(apps)
for dep in self.gadjo_deps:
apps.append('xstatic.pkg.%s' % dep)
for app in apps:
if app.lower().startswith('xstatic.'):
app_storage = self.storage_class(app)
if os.path.isdir(app_storage.location):
self.storages[app] = app_storage
if app not in self.apps:
self.apps.append(app)
super().__init__(*args, **kwargs)
def find(self, path, all=False):
"""Look for files in the registered xstatic.* packages"""
if path.startswith(self.storage_class.prefix + '/'):
path = path[len(self.storage_class.prefix) + 1 :]
matches = []
for storage in self.storages.values():
if storage.exists(path):
matched_path = storage.path(path)
if matched_path:
if not all:
return matched_path
matches.append(matched_path)
return matches
def list(self, ignore_patterns=None):
"""List all files in registered xstatic.* packages"""
for storage in self.storages.values():
for path in utils.get_files(storage, ignore_patterns or []):
yield path, storage

0
gadjo/forms/__init__.py Normal file
View File

41
gadjo/forms/widgets.py Normal file
View File

@ -0,0 +1,41 @@
from django import forms
class MultiSelectWidget(forms.MultiWidget):
template_name = 'gadjo/widgets/multiselectwidget.html'
class Media:
js = ('js/gadjo.multiselectwidget.js',)
css = {'all': ('css/gadjo.multiselectwidget.css',)}
def __init__(self, attrs=None):
self.attrs = attrs
widgets = [forms.Select(attrs=attrs)]
super().__init__(widgets, attrs)
def get_context(self, name, value, attrs):
if not isinstance(value, list):
value = [value]
self.widgets = []
for _ in range(max(len(value), 1)):
self.widgets.append(forms.Select(attrs=self.attrs, choices=self.choices))
# all subwidgets must have the same name
self.widgets_names = [''] * len(self.widgets)
return super().get_context(name, value, attrs)
def decompress(self, value):
return value or []
def value_from_datadict(self, data, files, name):
values = [x for x in data.getlist(name) if x]
# remove duplicates while keeping order
return list(dict.fromkeys(values))
def id_for_label(self, id_):
return id_
def value_omitted_from_data(self, *args, **kwargs):
return super(forms.MultiWidget, self).value_omitted_from_data(*args, **kwargs)

View File

@ -0,0 +1,75 @@
# Gadjo French Translation.
# Copyright (C) 2015-2016 Entr'ouvert
# This file is distributed under the same license as the Gadjo package.
# Frederic Peters <fpeters@entrouvert.com>, 2015.
#
msgid ""
msgstr ""
"Project-Id-Version: gadjo 0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-06 15:43+0200\n"
"PO-Revision-Date: 2023-10-06 15:43+0200\n"
"Last-Translator: Frederic Peters <fpeters@entrouvert.com>\n"
"Language: French\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: templates/gadjo/form.html:4
msgid "There were errors processing your form."
msgstr "Il y a eu un problème à la validation du formulaire."
#: templates/gadjo/form.html:12
#, python-format
msgid "(Hidden field %(name)s) %(error)s"
msgstr "(champ caché %(name)s) %(error)s"
#: templates/gadjo/password-widget.html:8
msgid "Display password"
msgstr "Afficher le mot de passe"
#: templates/gadjo/password-widget.html:9
msgid "Display"
msgstr "Afficher"
#: templates/gadjo/root.html:27
msgid "quick access"
msgstr "accès rapides"
#: templates/gadjo/root.html:29
msgid "Go to content"
msgstr "Aller au contenu"
#: templates/gadjo/root.html:44
msgid "Logout"
msgstr "Déconnexion"
#: templates/gadjo/root.html:65
msgid "Homepage"
msgstr "Accueil"
#: templates/gadjo/widget.html:12
msgid "This field is required."
msgstr "Ce champ est obligatoire."
#: templates/gadjo/widget.html:14
msgid "(optional)"
msgstr "(optionnel)"
#: templates/gadjo/widgets/multiselectwidget.html:3
#: templates/gadjo/widgets/multiselectwidget.html:7
msgid "Value"
msgstr "Valeur"
#: templates/gadjo/widgets/multiselectwidget.html:10
msgid "Remove"
msgstr "Supprimer"
#: templates/gadjo/widgets/multiselectwidget.html:10
msgid "Remove value"
msgstr "Supprimer la valeur"
#: templates/gadjo/widgets/multiselectwidget.html:16
msgid "Add"
msgstr "Ajouter"

View File

@ -0,0 +1,45 @@
// colors chart
$blue: #386ede;
$blue-dusty: #215D9C;
$blue-dark: #003388;
$cyan: #00d6eb;
$orange: hsl(30, 100%, 46%);
$red: hsl(355, 80%, 45%);
$brown: hsl(10, 70%, 30%);
$yellow-dark: hsl(60, 98%, 30%);
$green: hsl(120, 57%, 35%);
$green-dark: hsl(150, 57%, 25%);
$pink: hsl(320, 70%, 60%);
html {
--blue: #{$blue};
--blue-dusty: #{$blue-dusty};
--blue-dark: #{$blue-dark};
--cyan: #{$cyan};
--orange: #{$orange};
--red: #{$red};
--brown: #{$brown};
--yellow-dark: #{$yellow-dark};
--green: #{$green};
--green-dark: #{$green-dark};
--pink: #{$pink};
}
// colors attribution
$font-color: #3c3c33;
$primary-color: $blue;
$secondary-color: $cyan;
$link-color: $primary-color;
html {
--primary-color: #{$primary-color};
--secondary-color: #{$secondary-color};
--font-color: #{$font-color};
--font-color-light: #666;
--link-color: #{$primary-color};
--link-hover-color: #{$blue-dark};
--link-disabled-color: #aaa;
--background: #ecf0f3;
}

View File

@ -0,0 +1,727 @@
@charset "UTF-8";
$widget-background: white;
$widget-focus-background: white;
$widget-border: 1px solid #AAA;
$widget-focus-border: $widget-border;
$widget-border-radius: 0;
$widget-color: black;
$widget-focus-color: $widget-color;
$widget-focus-outline: 1px solid $primary-color;
$widget-focus-outline-offset: 0;
$button-delete-color: $red;
$button-focus-outline: $widget-focus-outline !default;
$button-focus-outline-offset: $widget-focus-outline-offset !default;
$data_uri_arrow-down: "arrow-down.svg";
input, select, button, textarea {
font-size: 100%;
font-family: $font-family;
}
label {
margin-bottom: 0;
font-weight: normal;
}
form div.widget {
margin-bottom: 1.5em;
}
div.errornotice p {
margin: 1ex 0;
&:first-child {
margin-top: 0;
}
&:last-child {
margin-bottom: 0;
}
}
div.error {
color: black;
font-weight: normal;
background: transparent;
padding-left: 0px;
margin-left: 2px;
&::before {
content: "\f071"; /* fa-exclamation-triangle */
font-family: FontAwesome;
padding-right: 1ex;
}
p {
display: inline-block;
margin: 0;
}
}
span.required {
margin-left: 0.3em;
position: relative;
top: -0.1em;
cursor: help;
}
div.widget div.title {
margin-bottom: 0;
}
div.buttons {
margin-top: 2em;
}
div.buttons div {
display: inline-block;
& input[name="submit"] {
font-weight: bold;
}
}
a.button {
line-height: 2.5em;
}
%button {
--color: var(--primary-color);
--outline-color: var(--primary-color);
--hover-color: white;
--hover-background: var(--color);
display: inline-block;
padding: 5px 15px;
cursor: pointer;
vertical-align: baseline;
border-radius: 3px;
font-weight: bold;
background: white;
text-align: center;
border: 1px solid var(--color);
color: var(--color);
transition: border-color 0.2s ease, box-shadow 0.2s linear;
&[aria-pressed=true], &:hover {
border-color: hsla(0, 0%, 0%, 0.6);
background: var(--hover-background);
color: var(--hover-color);
}
&.disabled, &:disabled {
box-shadow: none;
cursor: not-allowed;
background: #f3f3f3;
color: #888;
border-color: #888;
pointer-events: none;
}
&:active { border-color: hsla(0, 0%, 0%, 0.3); }
&:focus {
@if $button-focus-outline == none {
outline: 1px dotted $button-background;
} @else {
outline: 1px solid var(--outline-color);
outline-offset: $button-focus-outline-offset;
}
}
}
a.button, a.pk-button, a[class*=pk-button-], a.pk-big-button, a[class*="pk-big-button-"], button, input[type=submit], div.buttons input, div.buttons a.cancel {
@extend %button;
}
a.pk-big-button, a[class*="pk-big-button-"] {
padding: 2rem 4rem;
}
input[type=submit] {
height: 2.3rem;
}
%cancel-button,
a.cancel-button, button.cancel-button, a.pk-button-cancel, a.pk-big-button-cancel, div.buttons .cancel-button input, div.buttons a.cancel, div.buttons .cancel-button button {
--color: #727272;
--hover-color: var(--color);
--hover-background: #eee;
}
div.buttons {
display: flex;
flex-wrap: wrap;
// always force cancel button to be last
a.cancel {
order: 100;
margin-left: 1em;
}
// make sure adjacent buttons have a margin
button + button,
button + a {
margin-left: 1em;
}
}
%delete-button,
a.delete-button, button.delete-button, a.pk-button-delete, a.pk-big-button-delete, div.buttons .delete-button input, div.buttons .delete-button button {
--color: #{$button-delete-color};
--outline-color: #{darken($button-delete-color, 10%)};
}
%submit-button,
a.submit-button, button.submit-button, a.pk-button-submit, a.pk-big-button-submit, div.buttons .submit-button input, div.buttons .submit-button button {
--color: var(--blue-dusty);
}
form.disabled-during-submit {
// this class is added to forms in w.c.s. when a button is clicked.
div.buttons {
cursor: wait;
button {
pointer-events: none;
box-shadow: none;
opacity: 0.7;
}
}
}
div.ui-dialog button.ui-button-disabled,
div#content button:disabled,
input[type=submit]:disabled {
border-color: #888;
color: #888;
background: #f3f3f3;
pointer-events: none;
box-shadow: none;
cursor: not-allowed;
}
input, input[type="text"], input[type="url"], input[type="email"], input[type="password"], input[type="url"], input[type="tel"], input[type="number"], input[type="search"], input[type="file"], input[type="date"], input[type="datetime-local"], input[type="month"], input[type="time"], input[type="week"], textarea, select {
border: $widget-border;
border-radius: $widget-border-radius;
box-sizing: border-box;
margin: 0.2em 0px;
outline: medium none;
padding: 0.7ex 0.7em;
max-width: 100%;
transition: background-size 0.2s ease;
background: $widget-background;
color: $widget-color;
&:focus:not([readonly]) {
background-color: $widget-focus-background;
border: $widget-focus-border;
color: $widget-focus-color;
}
&:focus {
outline: $widget-focus-outline;
outline-offset: $widget-focus-outline-offset;
}
&.disabled,
&[disabled] {
background: #eee;
}
}
input[type="text"][name$="_url"], input[type="text"][name$="-url"], input[type="url"] {
width: 100%;
}
input[type="radio"]:focus, input[type="checkbox"]:focus {
box-shadow: none;
}
label input[type="radio"], label input[type="checkbox"] {
&[disabled] + span {
color: lighten($font-color, 30%);
}
}
input[readonly], select[readonly], textarea[readonly] {
border-width: 0 0 1px 0;
}
div.date input[readonly] {
border-width: 1px;
}
input[type=file] {
border: none;
padding-left: 0;
&:focus:not([readonly]) {
border: none;
}
}
select {
background: white;
appearance: none;
padding-right: 4em;
background-image: url($data_uri_arrow-down);
background-position: right 1.3rem center;
background-repeat: no-repeat;
background-size: 1rem auto;
&::-ms-expand {
// remove the arrow of select element in IE
display: none;
}
}
select[multiple] {
background: white;
padding-right: 0;
}
input[type="checkbox"],
input[type="radio"] {
margin-right: 1ex;
margin-bottom: 1ex;
accent-color: $primary-color;
}
div.content label {
margin-right: 1em;
}
div.widget div.content ul {
padding: 0;
margin: 0;
list-style: none;
}
span.helptext,
div.hint {
display: block;
font-size: 80%;
p {
margin: 0;
}
}
form p label {
display: block;
}
div.a2-block form input,
div.a2-block form select {
width: 100%;
}
div.a2-block form input[type=checkbox],
div.a2-block form input[type=radio] {
width: auto;
}
div.a2-block form input[type=submit] {
width: auto;
min-width: 20ex;
}
div.a2-block ul#id_edit-profile-title {
margin-left: 1em;
margin-top: -1ex;
li {
display: inline-block;
margin-right: 2em;
}
label {
font-weight: normal;
}
}
form ul.errorlist {
padding: 0;
margin: 2em 0 0 0;
list-style: none;
& li::before {
content: "\f06a";
font-family: FontAwesome;
padding-right: 1ex;
}
}
/* fieldsets */
fieldset.gadjo-foldable legend.gadjo-foldable-widget {
border-bottom: 1px solid #aaa;
cursor: pointer;
display: block;
font-weight: bold;
padding: 1ex 0 0;
width: 100%;
position: relative;
}
fieldset.gadjo-foldable legend.gadjo-foldable-widget:after {
content: "";
transition: transform 0.1s ease;
position: absolute;
right: 1ex;
}
fieldset.gadjo-foldable.gadjo-folded legend.gadjo-foldable-widget:after {
transform: rotate(-90deg);
}
fieldset.gadjo-foldable {
padding: 1ex 0 0 0;
border: 0;
}
.gadjo-foldable.gadjo-folded > .gadjo-folding {
display: none;
}
/* select2 */
div.select2-container,
span.select2-container {
font-size: 100%;
min-width: 20em;
margin-top: 2px;
a.select2-choice {
padding: 0.1em 0.7em;
}
span.select2-selection--single,
span.select2-selection--multiple,
a.select2-choice,
a.select2-choice div {
box-sizing: content-box;
padding: 1px 0;
background: $widget-background;
color: $widget-color;
border-radius: $widget-border-radius;
border: $widget-border;
.select2-selection__rendered {
color: $widget-color;
}
}
.select2-search--inline .select2-search__field {
margin-top: 0;
margin-bottom: 0;
border: none;
}
&.select2-container--focus,
&.select2-container--open {
span.select2-selection--single,
span.select2-selection--multiple,
a.select2-choice,
a.select2-choice div {
background: $widget-focus-background;
border: $widget-focus-border;
color: $widget-focus-color;
span {
color: $widget-focus-color;
}
}
}
&.select2-container--focus span.select2-selection--single,
&.select2-container--focus span.select2-selection--multiple {
outline: $widget-focus-outline;
outline-offset: $widget-focus-outline-offset;
}
.select2-choices,
.select2-choice {
box-shadow: none;
}
.select2-search--dropdown input,
.select2-search--dropdown input:active,
.select2-search--dropdown input:focus {
background: white;
color: #333;
border: 1px solid #ccc;
}
.select2-selection--single .select2-selection__rendered {
padding-right: 50px;
}
.select2-selection--single .select2-selection__arrow {
background-image: url($data_uri_arrow-down);
background-position: right 1.3rem center;
background-repeat: no-repeat;
background-size: 1rem auto;
width: 50px;
right: 0;
top: 0;
height: 100%;
b {
display: none;
}
}
.select2-selection--single .select2-selection__clear {
margin-right: 2em;
}
.select2-dropdown {
border: $widget-border;
&.select2-dropdown--below {
position: relative;
top: -6px;
}
}
.select2-results {
.loading-results {
position: absolute;
display: inline-block;
right: 0;
color: black;
@media screen and (max-width: $mobile-limit) {
display: none;
}
}
.loading-results:last-child {
position: static;
display: block;
color: inherit;
}
}
}
div.select2-container.select2-drop-above .select2-choice {
background: white;
border-radius: 0;
}
div.select2-drop {
box-shadow: none;
border-radius: 0;
}
div.select2-search {
margin-top: 4px;
}
/* form.as_p */
form p {
margin: 0 0 1em 0;
}
form p label {
display: block;
}
form p.required label:after {
padding-left: 1ex;
content: "*";
color: red;
}
form p label {
margin-bottom: 0.3ex;
}
/* form.small */
form.small p input {
margin-left: 0;
}
form.small p {
margin-bottom: 0.5em;
}
form.small label {
width: 200px;
display: inline-block;
}
form.small a.button,
form.small button {
margin-left: 205px;
display: inline-block;
}
form.small button + button,
form.small button + a.button {
margin-left: 1em;
}
[name$="-clear"] + label {
display: inline;
}
.field-live-hint {
position: absolute;
background: #ffffee;
color: #333;
z-index: 1000000;
padding: 1em 1em;
box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.16);
}
.field-live-hint span::before {
font-family: FontAwesome;
content: "\f0eb"; // lightbulb
padding-right: 0.5em;
}
.field-live-hint button.action,
.field-live-hint button.close {
margin: 0 1em;
padding: 0;
color: blue !important;
border: none;
text-decoration: underline !important;
background: transparent !important;
box-shadow: none !important;
}
.field-live-hint button.close {
color: #333 !important;
margin: 0;
text-decoration: none !important;
}
.field-live-hint button.close::after {
content: "×";
}
form {
.widget-optional span.optional {
display: none;
}
}
form.pk-mark-optional-fields {
.widget-required {
span.required {
display: none;
}
}
.widget-optional:not(.django-checkbox-input) span.optional {
display: inline;
font-style: italic;
}
}
form.pk-hide-requisiteness {
.widget-required span.required,
.widget-optional:not(.django-checkbox-input) span.optional {
display: none;
}
}
.gadjo-joined-buttons {
display: inline-flex;
button {
border-radius: 0;
margin-left: -1px; // join borders
&:first-child {
border-radius: 3px 0 0 3px;
margin-left: 0px;
}
&:last-child {
border-radius: 0 3px 3px 0;
}
}
}
.pk-tabs {
display: flex;
flex-direction: row;
&--tab-list {
flex: 0;
display: flex;
justify-content: flex-start;
flex-direction: column;
background: #fafafa;
padding: 0.5em;
button {
border: 0px solid transparent;
border-left-width: 3px;
text-align: left;
font-weight: normal;
background: transparent;
width: 100%;
min-width: 10em;
margin-bottom: 1px;
color: #333;
&:focus {
outline: none;
}
&:focus-visible {
outline: $widget-focus-outline;
}
&:hover {
color: inherit;
background: #eee;
}
&[aria-selected="true"] {
background: #e0e0e0;
border-left-color: $primary-color;
}
&.pk-tabs--button-marker {
padding-right: 2em;
background-size: 5px 5px;
background-repeat: no-repeat;
background-position: top 50% right 1em;
background-image: radial-gradient(closest-side, #888 100%, transparent);
}
}
}
&--container {
flex: 1;
display: flex;
flex-direction: column;
justify-content: space-between;
overflow: auto;
background: white;
> * {
padding: 1rem 0.5rem;
}
}
}
.godo:not(.html-edition) .godo--editor {
@extend textarea;
}
/* force alignment for blocks defining grid elements within grids */
.BlockSubWidget.widget {
margin-bottom: 0;
}
.buttons-group {
display: flex;
a {
@extend %button;
margin-right: 0;
margin-left: -1px;
border-radius: 0;
&:first-child {
border-top-left-radius: 3px;
border-bottom-left-radius: 3px;
}
&:last-child {
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
}
&.active {
background: var(--color);
color: white;
}
}
}
.gadjo-password-field {
position: relative;
.title label {
padding-right: 6em;
}
}
.password-visibility-checkbox {
display: flex;
position: absolute;
top: 0;
right: 0;
input + label {
margin: 0;
}
input {
margin: 0 0.25em 0 0;
}
}
.CheckboxesWidget.pk-horizontal-checkboxes .content li {
display: inline-block;
}
.RadiobuttonsWidget.pk-horizontal-radiobuttons .content {
li, label {
display: inline-block;
}
}

View File

@ -0,0 +1,104 @@
// ======
// fx-grid.css
// flexbox grid system
// =====
// Publik vars
$fx-grid-gutter: 1rem;
$fx-grid-gutter-and-epsilon: $fx-grid-gutter + 0.00001rem;
$fx-grid-cell-min-size: 10em; // for .fx-grid--auto
$fx-grid-mobile-limit: $very-small-limit;
$fx-grid-tablet-limit: $grid-mobile-limit;
$max-cols-mobile : 3;
$max-cols-tablet : 6;
$max-cols-desktop : 9;
// custom media queries
// ex. @media ($max-grid-mobile-viewport) {}
$max-grid-mobile-viewport: "max-width: #{$fx-grid-mobile-limit}";
$min-grid-tablet-viewport: "min-width: #{$fx-grid-mobile-limit + 1}";
$min-grid-desktop-viewport: "min-width: #{$fx-grid-tablet-limit + 1}";
.fx-grid,
[class*="fx-grid--"] {
display: flex;
flex-wrap: wrap;
margin: 0;
padding: 0;
margin-left: -1 * $fx-grid-gutter;
/* if flex item are list */
list-style-type: none;
> * {
box-sizing: border-box; // for gadjo
margin-left: $fx-grid-gutter;
flex-basis: calc(100% - #{$fx-grid-gutter});
hyphens: auto;
}
}
// mode auto
.fx-grid--auto {
> * {
flex-basis: $fx-grid-cell-min-size;
flex-shrink: 1;
flex-grow: 1;
}
}
// mode cols
@for $i from 2 through $max-cols-mobile {
.fx-grid--#{$i} > *,
[class*="fx-grid--"][class*="--m#{$i}"] > * {
flex-basis: calc(#{100%/$i} - #{$fx-grid-gutter-and-epsilon});
}
}
@media ($min-grid-tablet-viewport) {
@for $i from 2 through $max-cols-tablet {
[class*="fx-grid--"][class*="--t#{$i}"] > * {
flex-basis: calc(#{100%/$i} - #{$fx-grid-gutter-and-epsilon});
}
}
}
@media ($min-grid-desktop-viewport) {
@for $i from 2 through $max-cols-desktop {
[class*="fx-grid--"][class*="--d#{$i}"] > * {
flex-basis: calc(#{100%/$i} - #{$fx-grid-gutter-and-epsilon});
}
}
}
// custom grid cell size
.fx-grid,
[class*="fx-grid--"] {
@for $i from 1 through $max-cols-mobile {
@for $j from 1 through $i {
> .size--#{$j}-#{$i},
> [class*="size--"][class*="--m#{$j}-#{$i}"] {
flex-basis: calc( #{100%*$j/$i} - #{$fx-grid-gutter-and-epsilon});
flex-grow: 0;
}
}
}
@media ($min-grid-tablet-viewport) {
@for $i from 1 through $max-cols-tablet {
@for $j from 1 through $i {
> [class*="size--"][class*="--t#{$j}-#{$i}"] {
flex-basis: calc( #{100%*$j/$i} - #{$fx-grid-gutter-and-epsilon});
flex-grow: 0;
}
}
}
}
@media ($min-grid-desktop-viewport) {
@for $i from 1 through $max-cols-desktop {
@for $j from 1 through $i {
> [class*="size--"][class*="--d#{$j}-#{$i}"] {
flex-basis: calc( #{100%*$j/$i} - #{$fx-grid-gutter-and-epsilon});
flex-grow: 0;
}
}
}
}
}

View File

@ -0,0 +1,66 @@
@charset "UTF-8";
$grid-mobile-limit: 1024px !default;
$very-small-limit: 560px !default;
div.grid {
float: left;
box-sizing: border-box;
padding-right: 1em;
clear: none;
}
form div[class*=grid-] {
~ h3, ~ h4, ~ p, + div {
clear: both;
}
@media screen and (max-width: $very-small-limit) {
&:not(.never-alone) {
width: 100%;
padding-right: 0;
}
}
table, textarea, select, input:not([type=checkbox]):not([type=radio]) {
width: 100%;
}
.select2-container {
min-width: auto;
width: 100% !important;
}
.select2-selection {
width: 100% !important;
}
}
@each $i in 1, 2, 3, 4, 6, 12 {
@for $j from 1 through $i {
div.grid-#{$j}-#{$i} {
float: left;
box-sizing: border-box;
padding-right: 1em;
width: (100*$j/$i+0%);
@media screen and (max-width: $grid-mobile-limit) {
@if $i == 4 and $j <= 2 { width: 50%; }
@else if $i == 4 and $j > 2 { width: 100%; }
@else if $i == 6 and $j <= 2 { width: (100/3+0%); }
@else if $i == 6 and $j == 3 { width: 50%; }
@else if $i == 6 and $j <= 5 { width: (200/3+0%); }
@else if $i == 6 and $j == 6 { width: 100%; }
@else if $i == 12 and $j <= 4 { width: (100/3+0%); }
@else if $i == 12 and $j <= 7 { width: 50%; }
@else if $i == 12 and $j <= 11 { width: (200/3+0%); }
@else if $i == 12 and $j == 12 { width: 100%; }
}
@media screen and (max-width: $very-small-limit) {
width: 100%;
}
}
body div + div.grid-#{$j}-#{$i}, /* more specific than & + div above*/
div div.grid-#{$j}-#{$i} {
clear: none;
&.newline {
clear: both;
}
}
}
}

View File

@ -0,0 +1,31 @@
@charset "UTF-8";
/* temporary hacks for applications */
div.form-inner-container, // authentic
div#pages-list, // combo
div.placeholder, // combo
table.agenda-table, // chrono
div#appbar + form, // misc
div#appbar + ul.messages + form, // misc
div#appbar + div#description // passerelle
{
background: white;
padding: 0.5rem;
border-radius: 3px;
box-sizing: border-box;
}
.ui-dialog div.form-inner-container { // authentic
padding: 0;
}
div.other_actions { // authentic
margin-left: 71%;
width: 29%;
}
body.welco-home div#main-content {
background: white;
margin: 0;
}

View File

@ -0,0 +1,273 @@
@charset "UTF-8";
body .ui-front {
z-index: 1000;
}
.ui-helper-hidden {
display: none;
}
.ui-helper-hidden-accessible {
border: 0;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
.ui-widget-content {
border: 1px solid #aaa;
background: white;
.ui-widget-header {
border: 1px solid #aaa;
background: #ccc;
position: relative;
text-align: center;
padding: 3px;
a {
color: #333;
}
}
}
.ui-datepicker {
display: none;
select.ui-datepicker-month, select.ui-datepicker-year {
width: 49%;
}
.ui-datepicker-title {
margin: 0 2.5em;
}
table {
width: 100%;
border-collapse: collapse;
td {
text-align: right;
a {
background: #eee;
border: 1px solid #aaa;
display: block;
padding: 0.4ex 1ex;
&:hover {
border-color: #666;
}
}
}
}
a {
border-bottom: 0;
}
padding: .2em .2em 0;
.ui-datepicker-prev {
display: block;
position: absolute;
left: 0.5ex;
cursor: pointer;
&::after {
font-family: FontAwesome;
content: "\f060"; /* fa-arrow-left */
}
span {
display: none;
}
}
.ui-datepicker-next {
display: block;
position: absolute;
right: 0.5ex;
cursor: pointer;
&::after {
font-family: FontAwesome;
content: "\f061"; /* fa-arrow-right */
}
span {
display: none;
}
}
}
/* dialog styling */
.ui-helper-clearfix {
min-height: 0;
&::before, &::after {
content: "";
display: table;
border-collapse: collapse;
}
&::after {
clear: both;
}
}
div.ui-widget-overlay {
background: #333;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0.7;
z-index: 1000;
}
.ui-widget {
font-size: 1.1em;
.ui-widget {
font-size: 1em;
}
}
div.ui-dialog {
border: 0;
outline: 0;
background: white;
box-shadow: rgb(102, 102, 102) 0px 0px 20px 2px;
padding: 0;
border-radius: 0;
max-width: 80%;
min-width: 30%;
position: absolute;
.ui-dialog-titlebar {
background: white;
border-radius: 0;
border: none;
position: relative;
padding: 0.7em 1em;
cursor: move;
text-align: left;
.ui-dialog-title {
font-size: 140%;
font-weight: normal;
}
.ui-dialog-titlebar-close {
position: absolute;
right: .3em;
height: 20px;
min-width: 20px;
padding: 0;
margin-right: 0;
outline: none;
color: transparent;
.ui-icon-closethick::after {
color: #333;
content: "×";
font-size: 120%;
display: block;
}
.ui-button-text {
display: block;
text-indent: -9999999px;
}
}
button {
padding: 0;
border: 1px solid transparent;
background: transparent;
box-shadow: none;
cursor: pointer;
}
}
.ui-widget-content {
position: relative;
border: 0;
padding: .5em 1em;
background: none;
overflow: auto;
}
.ui-dialog-buttonpane {
position: relative;
background: white;
margin-top: 0.5em;
padding: 0.3em 1em 0.5em 0.4em;
.ui-dialog-buttonset {
float: right;
display: flex;
}
button {
margin: 0.5em 0 0.5em 1em;
&.cancel-button {
// always force cancel button to be secondary
order: -1;
}
}
}
form p,
div.widget {
input,
select,
textarea {
width: 100%;
}
input[type=submit], input[type=radio], input[type=checkbox] {
width: auto;
}
}
.helptext {
max-width: 50em;
}
// one line dialog
// add this class on widget to remove titlebar, position the close button to the left of content
&.oneline-dialog {
.ui-dialog-titlebar {
float: right;
padding-top: 5px;
}
.ui-dialog-title {
display: none;
}
.ui-dialog-titlebar-close {
display: block;
}
// visual feedback when open dialog
transition: box-shadow 800ms ease 200ms;
&.feedback-on-open {
box-shadow: $primary-color 0px 0px 20px 2px;
}
}
}
.ui-tooltip {
display: inline-block;
box-shadow: #666 0px 0px 4px 0px;
z-index: 100000;
div.ui-tooltip-content {
background: white;
padding: 1ex;
}
}
ul.ui-autocomplete {
position: absolute;
top: 0;
left: 0;
cursor: default;
list-style: none;
margin: 0;
padding: 0;
max-height: 15em;
overflow-y: scroll;
overflow-x: hidden;
li {
margin: 0;
padding: 0 1ex;
position: relative;
min-height: 0;
&:hover {
background: #eee;
}
}
}

View File

@ -0,0 +1,37 @@
@charset "UTF-8";
$font-path: '../xstatic/fonts' !default;
@mixin font($type, $weight) {
@font-face {
font-family: 'Open Sans';
src: url('#{$font-path}/#{$type}/OpenSans-#{$type}.woff2') format('woff2'),
url('#{$font-path}/#{$type}/OpenSans-#{$type}.woff') format('woff'),
url('#{$font-path}/#{$type}/OpenSans-#{$type}.eot?#iefix') format('embedded-opentype'),
url('#{$font-path}/#{$type}/OpenSans-#{$type}.ttf?#iefix') format('truetype');
font-weight: $weight;
font-style: normal;
}
@font-face {
font-family: 'Open Sans';
@if $type == Regular { // not RegularItalic
src: url('#{$font-path}/Italic/OpenSans-Italic.woff2') format('woff2'),
url('#{$font-path}/Italic/OpenSans-Italic.woff') format('woff'),
url('#{$font-path}/Italic/OpenSans-Italic.eot?#iefix') format('embedded-opentype'),
url('#{$font-path}/Italic/OpenSans-Italic.ttf?#iefix') format('truetype');
} @else {
src: url('#{$font-path}/#{$type}Italic/OpenSans-#{$type}Italic.woff2') format('woff2'),
url('#{$font-path}/#{$type}Italic/OpenSans-#{$type}Italic.woff') format('woff'),
url('#{$font-path}/#{$type}Italic/OpenSans-#{$type}Italic.eot?#iefix') format('embedded-opentype'),
url('#{$font-path}/#{$type}Italic/OpenSans-#{$type}Italic.ttf?#iefix') format('truetype');
}
font-weight: $weight;
font-style: italic;
}
}
@include font('Light', 300);
@include font('Regular', 400);
@include font('Semibold', 600);
@include font('Bold', 700);
@include font('ExtraBold', 800);

View File

@ -0,0 +1,131 @@
@charset "UTF-8";
div.cell.shown-because-admin {
opacity: 0.5;
background-image: repeating-linear-gradient(-45deg, #eee 0px, #eee 14px, transparent 15px, transparent 30px);
&:hover {
opacity: 1;
background-image: inherit;
}
}
div#portal-agent-content, aside#sidebar {
div.searchcell {
font-size: 110%;
}
div.cell {
background: white;
padding: 1rem;
margin-bottom: 1rem;
border-radius: $cell-border-radius;
&.transparent, &.pk-transparent {
background: transparent;
}
&.highlight, &.pk-highlight {
background: linear-gradient(to right, $primary-color 30%, $secondary-color 100%);
color: white;
h2, a {
color: white;
}
}
&.no-bottom-margin {
margin-bottom: 0;
border-radius: $cell-border-radius $cell-border-radius 0 0;
border-bottom: 0;
p:last-child {
margin-bottom: 0;
padding-bottom: 1ex;
}
+ div {
margin-top: 0;
border-radius: 0 0 $cell-border-radius $cell-border-radius;
border-top: 0;
&.no-bottom-margin {
border-radius: 0;
}
p:first-child {
margin-top: 0;
padding-top: 1ex;
}
}
}
&.pk-button, &.pk-big-button,
&[class*=pk-button-], &[class*="pk-big-button-"] { // when used on link cells
padding: 0;
a {
@extend %button;
text-align: center;
display: block;
}
}
&.pk-big-button,
&[class*="pk-big-button-"] {
a {
padding: 2rem 4rem;
}
}
&.pk-button-cancel, &.pk-big-button-cancel {
a {
@extend %cancel-button;
}
}
&.pk-button-delete, &.pk-big-button-delete {
a {
@extend %delete-button;
}
}
&.pk-button-submit, &.pk-big-button-submit {
a {
@extend %submit-button;
}
}
}
}
aside#sidebar {
div.cell {
background: white;
padding: 0 1rem;
margin-top: 1rem;
}
}
div.combo-search-results {
a.nolink {
color: $font-color;
border-bottom-color: transparent;
}
}
.link-list-cell.pk-horizontal-button-links,
.link-list-cell.pk-wide-horizontal-button-links {
ul {
display: flex;
@media screen and (max-width: $mobile-limit) {
flex-direction: column;
}
}
li {
&:not(:last-child) {
margin-right: 1em;
}
border: none;
&:hover {
background: transparent;
}
@media screen and (max-width: $mobile-limit) {
&:not(:last-child) {
margin-right: 0;
}
margin-bottom: 0.5em;
}
}
&.pk-wide-horizontal-button-links {
li {
flex: 1;
}
}
a {
@extend %button;
}
}

View File

@ -0,0 +1,34 @@
@charset "UTF-8";
@font-face {
font-family: 'FontAwesome';
src: url('../xstatic/fonts/fontawesome-webfont.eot');
src: url('../xstatic/fonts/fontawesome-webfont.eot?#iefix') format('embedded-opentype'), url('../xstatic/fonts/fontawesome-webfont.woff') format('woff'), url('../xstatic/fonts/fontawesome-webfont.ttf') format('truetype'), url('../xstatic/fonts/fontawesome-webfont.svg#fontawesomeregular') format('svg');
font-weight: normal;
font-style: normal;
}
@function text-color($color) {
@if (lightness($color) > 50) {
@return #303030;
} @else {
@return #ffffff;
}
}
// Only display content to screen readers
@mixin sr-only {
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;
}
.sr-only {
@include sr-only();
}

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 444.8 444.8"><path d="M248.1 352L434 165.9c7.2-6.9 10.8-15.4 10.8-25.7 0-10.3-3.6-18.8-10.8-25.7l-21.4-21.7c-7-7-15.6-10.6-25.7-10.6-9.9 0-18.6 3.5-26 10.6L222.4 231.5 83.7 92.8c-7-7-15.6-10.6-25.7-10.6-9.9 0-18.6 3.5-26 10.6l-21.4 21.7c-7 7-10.6 15.6-10.6 25.7s3.5 18.7 10.6 25.7L196.4 352c7.4 7 16.1 10.6 26 10.6 10.1 0 18.7-3.5 25.7-10.6z"/></svg>

After

Width:  |  Height:  |  Size: 403 B

View File

@ -1,255 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata></metadata>
<defs>
<font id="FontAwesomeRegular" horiz-adv-x="1843" >
<font-face units-per-em="2048" ascent="1536" descent="-512" />
<missing-glyph horiz-adv-x="512" />
<glyph horiz-adv-x="0" />
<glyph horiz-adv-x="0" />
<glyph unicode="&#xd;" horiz-adv-x="512" />
<glyph unicode=" " horiz-adv-x="512" />
<glyph unicode="&#x09;" horiz-adv-x="512" />
<glyph unicode="&#xa0;" horiz-adv-x="512" />
<glyph unicode="o" horiz-adv-x="1591" />
<glyph unicode="&#xa8;" horiz-adv-x="2048" />
<glyph unicode="&#xa9;" horiz-adv-x="2048" />
<glyph unicode="&#xae;" horiz-adv-x="2048" />
<glyph unicode="&#xb4;" horiz-adv-x="2048" />
<glyph unicode="&#xc6;" horiz-adv-x="2048" />
<glyph unicode="&#xcd;" horiz-adv-x="2048" />
<glyph unicode="&#x2000;" horiz-adv-x="784" />
<glyph unicode="&#x2001;" horiz-adv-x="1569" />
<glyph unicode="&#x2002;" horiz-adv-x="784" />
<glyph unicode="&#x2003;" horiz-adv-x="1569" />
<glyph unicode="&#x2004;" horiz-adv-x="523" />
<glyph unicode="&#x2005;" horiz-adv-x="392" />
<glyph unicode="&#x2006;" horiz-adv-x="261" />
<glyph unicode="&#x2007;" horiz-adv-x="261" />
<glyph unicode="&#x2008;" horiz-adv-x="196" />
<glyph unicode="&#x2009;" horiz-adv-x="313" />
<glyph unicode="&#x200a;" horiz-adv-x="87" />
<glyph unicode="&#x202f;" horiz-adv-x="313" />
<glyph unicode="&#x203a;" horiz-adv-x="2048" />
<glyph unicode="&#x205f;" horiz-adv-x="392" />
<glyph unicode="&#x2122;" horiz-adv-x="2048" />
<glyph unicode="&#x221e;" horiz-adv-x="2048" />
<glyph unicode="&#xe000;" horiz-adv-x="1024" d="M0 0z" />
<glyph unicode="&#xf000;" horiz-adv-x="1536" d="M6 1489q20 47 70 47h1382q51 0 72 -47q20 -47 -17 -84l-610 -610v-641h248q33 0 55.5 -22.5t22.5 -53.5q0 -33 -22.5 -55.5t-55.5 -22.5h-768q-31 0 -53.5 22.5t-22.5 55.5q0 31 22.5 53.5t53.5 22.5h250v641l-610 610q-37 37 -17 84z" />
<glyph unicode="&#xf001;" horiz-adv-x="1488" d="M0 213q0 57 27.5 103t72.5 77t98.5 47.5t106.5 16.5q25 0 50.5 -4t50.5 -11v779q0 27 16 48t43 29q23 6 99.5 29t178 52.5t215 62.5t211 60.5t164 46t74.5 18.5q35 0 58.5 -23.5t23.5 -58.5v-1028q0 -59 -27.5 -104.5t-73 -76t-99.5 -47t-105 -16.5t-105.5 16.5t-98.5 47 t-71.5 75.5t-27.5 105q0 57 27.5 103t71.5 77t98.5 47t105.5 16q27 0 52.5 -4t49.5 -10v537l-678 -195v-815q0 -59 -27.5 -104.5t-71.5 -76t-98.5 -47t-105.5 -16.5q-53 0 -106.5 16.5t-98.5 47t-72.5 76t-27.5 104.5z" />
<glyph unicode="&#xf002;" horiz-adv-x="1597" d="M0 901q0 137 52 258t143.5 212t212 143.5t258.5 52.5q137 0 257.5 -52.5t212 -143.5t143.5 -212t52 -258q0 -98 -28.5 -191.5t-81.5 -174.5l358 -359q18 -18 18 -47q0 -16 -18 -43t-45 -53.5t-53.5 -45t-42.5 -18.5q-29 0 -47 19l-359 358q-82 -53 -175 -81.5t-191 -28.5 q-137 0 -258 52t-212.5 143t-143.5 212t-52 258zM266 901q0 -84 32 -156.5t86 -126t127 -85t155 -31.5t154.5 31.5t126.5 85t86 126t32 156.5q0 82 -32 154.5t-86 127t-126.5 86t-154.5 31.5t-155 -31.5t-127 -86t-86 -127t-32 -154.5zM414 901q0 51 19.5 97t54 81t80 54.5 t98.5 19.5q20 0 34.5 -14.5t14.5 -36.5q0 -20 -14.5 -34.5t-34.5 -14.5q-63 0 -107.5 -44t-44.5 -108q0 -20 -14.5 -34.5t-34.5 -14.5q-23 0 -37 14.5t-14 34.5z" />
<glyph unicode="&#xf003;" d="M0 115v1306q0 47 34 81t81 34h1614q47 0 80.5 -34t33.5 -81v-1306q0 -47 -33.5 -81t-80.5 -34h-1614q-47 0 -81 34t-34 81zM154 154h1536v852q-31 -31 -58 -50q-106 -80 -212.5 -159.5t-211.5 -163.5q-61 -49 -131.5 -94t-156.5 -45q-82 0 -153 45t-132 94 q-104 84 -211 164t-213 159q-27 18 -57 50v-852zM154 1317q0 -31 14 -65.5t35.5 -66.5t47 -59.5t50.5 -46.5q100 -76 199.5 -150.5t199.5 -152.5q20 -16 48 -37.5t58 -42t59.5 -35t54.5 -14.5h2h2q25 0 54.5 14.5t59 35t57 42t48.5 37.5q100 78 199.5 153t199.5 150 q25 18 50.5 46t47 60t36 66.5t14.5 65.5v65h-1536v-65z" />
<glyph unicode="&#xf004;" horiz-adv-x="1802" d="M0 1073q0 113 34 205t97.5 155.5t153.5 98.5t202 35q59 0 117 -18.5t110 -48.5t99 -68.5t88 -77.5q39 39 87 77.5t100.5 68.5t109 48.5t115.5 18.5q113 0 204 -35t154.5 -98.5t97 -155.5t33.5 -205q0 -66 -18.5 -130t-51 -124.5t-74.5 -115t-87 -99.5l-615 -612 q-23 -23 -55 -23q-31 0 -57 23l-615 614q-45 45 -87 99.5t-73.5 114t-50 124t-18.5 129.5z" />
<glyph unicode="&#xf005;" horiz-adv-x="1675" d="M1 959.5q9 27.5 54 33.5l506 74l227 459q20 41 49 41t50 -41l227 -459l506 -74q45 -6 54 -33.5t-23 -60.5l-367 -356l86 -504q8 -45 -15.5 -62.5t-64.5 5.5l-452 237l-453 -237q-41 -23 -64.5 -5.5t-15.5 62.5l86 504l-364 356q-35 33 -26 60.5z" />
<glyph unicode="&#xf006;" horiz-adv-x="1675" d="M0 948q0 23 18.5 32t36.5 13l506 74l227 459q6 14 20 27.5t30 13.5q18 0 30.5 -13.5t18.5 -27.5l227 -459l506 -74q18 -4 36.5 -13t18.5 -32q0 -14 -7 -26.5t-17 -22.5l-367 -356l86 -504q0 -4 1 -9t1 -12q0 -20 -9 -34.5t-32 -14.5t-41 13l-452 237l-453 -237 q-18 -12 -39 -13q-23 0 -33 14.5t-10 34.5q0 6 1 11.5t1 9.5l86 504l-364 356q-10 10 -18.5 22.5t-8.5 26.5zM289 866l274 -268l-65 -377l340 178l340 -178l-66 377l274 268l-378 56l-170 344l-170 -344z" />
<glyph unicode="&#xf007;" horiz-adv-x="1566" d="M0 57v387q0 37 18.5 82t48 86t65.5 74t71 43q18 6 66 13.5t102.5 14.5t104.5 13t77 10q-92 59 -144.5 153.5t-52.5 205.5q0 88 34 165.5t91.5 136t135 92.5t165.5 34t166 -34t136.5 -92.5t92 -136t33.5 -165.5q0 -109 -52 -204.5t-144 -154.5q27 -4 77 -10t104 -13 t101 -14.5t68 -13.5q35 -10 70.5 -42t65.5 -74t48.5 -87t18.5 -82v-387q-10 -4 -22.5 -14t-27 -19.5t-27.5 -16.5t-22 -7h-1370q-35 0 -53 21.5t-45 35.5z" />
<glyph unicode="&#xf008;" d="M0 115v1306q0 47 34 81t81 34h1614q47 0 80.5 -34t33.5 -81v-1306q0 -47 -33.5 -81t-80.5 -34h-1614q-47 0 -81 34t-34 81zM115 154q0 -16 11 -27.5t28 -11.5h153q16 0 27.5 11t11.5 28v153q0 16 -11 27.5t-28 11.5h-153q-16 0 -27.5 -11t-11.5 -28v-153zM115 512 q0 -16 11 -27.5t28 -11.5h153q16 0 27.5 11.5t11.5 27.5v154q0 16 -11 27.5t-28 11.5h-153q-16 0 -27.5 -11.5t-11.5 -27.5v-154zM115 870q0 -16 11 -27.5t28 -11.5h153q16 0 27.5 11.5t11.5 27.5v154q0 16 -11 27.5t-28 11.5h-153q-16 0 -27.5 -11.5t-11.5 -27.5v-154z M115 1229q0 -16 11 -27.5t28 -11.5h153q16 0 27.5 11t11.5 28v153q0 16 -11 27.5t-28 11.5h-153q-16 0 -27.5 -11t-11.5 -28v-153zM461 154q0 -16 11 -27.5t28 -11.5h843q16 0 27.5 11t11.5 28v512q0 16 -11 27.5t-28 11.5h-843q-16 0 -27.5 -11.5t-11.5 -27.5v-512z M461 870q0 -16 11 -27.5t28 -11.5h843q16 0 27.5 11.5t11.5 27.5v512q0 16 -11 27.5t-28 11.5h-843q-16 0 -27.5 -11t-11.5 -28v-512zM1497 154q0 -16 11.5 -27.5t27.5 -11.5h154q16 0 27.5 11t11.5 28v153q0 16 -11.5 27.5t-27.5 11.5h-154q-16 0 -27.5 -11t-11.5 -28v-153 zM1497 512q0 -16 11.5 -27.5t27.5 -11.5h154q16 0 27.5 11.5t11.5 27.5v154q0 16 -11.5 27.5t-27.5 11.5h-154q-16 0 -27.5 -11.5t-11.5 -27.5v-154zM1497 870q0 -16 11.5 -27.5t27.5 -11.5h154q16 0 27.5 11.5t11.5 27.5v154q0 16 -11.5 27.5t-27.5 11.5h-154 q-16 0 -27.5 -11.5t-11.5 -27.5v-154zM1497 1229q0 -16 11.5 -27.5t27.5 -11.5h154q16 0 27.5 11t11.5 28v153q0 16 -11.5 27.5t-27.5 11.5h-154q-16 0 -27.5 -11t-11.5 -28v-153z" />
<glyph unicode="&#xf009;" d="M0 78v536q0 33 22.5 55.5t55.5 22.5h690q33 0 55.5 -22.5t22.5 -55.5v-536q0 -33 -22.5 -55.5t-55.5 -22.5h-690q-33 0 -55.5 22.5t-22.5 55.5zM0 922v538q0 31 22.5 53.5t55.5 22.5h690q33 0 55.5 -22.5t22.5 -53.5v-538q0 -33 -22.5 -54.5t-55.5 -21.5h-690 q-33 0 -55.5 21.5t-22.5 54.5zM999 78v536q0 33 21.5 55.5t54.5 22.5h692q31 0 53.5 -22.5t22.5 -55.5v-536q0 -33 -22.5 -55.5t-53.5 -22.5h-692q-33 0 -54.5 22.5t-21.5 55.5zM999 922v538q0 31 21.5 53.5t54.5 22.5h692q31 0 53.5 -22.5t22.5 -53.5v-538 q0 -33 -22.5 -54.5t-53.5 -21.5h-692q-33 0 -54.5 21.5t-21.5 54.5z" />
<glyph unicode="&#xf00a;" d="M0 78v270q0 33 22.5 54.5t55.5 21.5h358q31 0 53.5 -21.5t22.5 -54.5v-270q0 -33 -22.5 -55.5t-53.5 -22.5h-358q-33 0 -55.5 22.5t-22.5 55.5zM0 655v226q0 33 22.5 54t55.5 21h358q31 0 53.5 -21.5t22.5 -53.5v-226q0 -33 -22.5 -55t-53.5 -22h-358q-33 0 -55.5 22.5 t-22.5 54.5zM0 1188v272q0 31 22.5 53.5t55.5 22.5h358q31 0 53.5 -22.5t22.5 -53.5v-272q0 -33 -22.5 -55.5t-53.5 -22.5h-358q-33 0 -55.5 22.5t-22.5 55.5zM666 78v270q0 33 22.5 54.5t54.5 21.5h359q31 0 53.5 -21.5t22.5 -54.5v-270q0 -33 -22.5 -55.5t-53.5 -22.5 h-359q-33 0 -55 22.5t-22 55.5zM666 655v226q0 33 22.5 54t54.5 21h359q31 0 53.5 -21.5t22.5 -53.5v-226q0 -33 -22.5 -55t-53.5 -22h-359q-33 0 -55 22.5t-22 54.5zM666 1188v272q0 31 22.5 53.5t54.5 22.5h359q31 0 53.5 -22.5t22.5 -53.5v-272q0 -33 -22.5 -55.5 t-53.5 -22.5h-359q-33 0 -55 22.5t-22 55.5zM1331 78v270q0 33 22.5 54.5t55.5 21.5h358q31 0 53.5 -21.5t22.5 -54.5v-270q0 -33 -22.5 -55.5t-53.5 -22.5h-358q-33 0 -55.5 22.5t-22.5 55.5zM1331 655v226q0 33 22.5 54t55.5 21h358q31 0 53.5 -21.5t22.5 -53.5v-226 q0 -33 -22.5 -55t-53.5 -22h-358q-33 0 -55.5 22.5t-22.5 54.5zM1331 1188v272q0 31 22.5 53.5t55.5 22.5h358q31 0 53.5 -22.5t22.5 -53.5v-272q0 -33 -22.5 -55.5t-53.5 -22.5h-358q-33 0 -55.5 22.5t-22.5 55.5z" />
<glyph unicode="&#xf00b;" d="M0 78v270q0 33 22.5 54.5t55.5 21.5h297q31 0 53.5 -21.5t22.5 -54.5v-270q0 -33 -22.5 -55.5t-53.5 -22.5h-297q-33 0 -55.5 22.5t-22.5 55.5zM0 655v226q0 33 22.5 54t55.5 21h297q31 0 53.5 -21.5t22.5 -53.5v-226q0 -33 -22.5 -55t-53.5 -22h-297q-33 0 -55.5 22.5 t-22.5 54.5zM0 1188v272q0 31 22.5 53.5t55.5 22.5h297q31 0 53.5 -22.5t22.5 -53.5v-272q0 -33 -22.5 -55.5t-53.5 -22.5h-297q-33 0 -55.5 22.5t-22.5 55.5zM604 78v270q0 33 22.5 54.5t55.5 21.5h1085q31 0 53.5 -21.5t22.5 -54.5v-270q0 -33 -22.5 -55.5t-53.5 -22.5 h-1085q-33 0 -55.5 22.5t-22.5 55.5zM604 655v226q0 33 22.5 54t55.5 21h1085q31 0 53.5 -21.5t22.5 -53.5v-226q0 -33 -22.5 -55t-53.5 -22h-1085q-33 0 -55.5 22.5t-22.5 54.5zM604 1188v272q0 31 22.5 53.5t55.5 22.5h1085q31 0 53.5 -22.5t22.5 -53.5v-272 q0 -33 -22.5 -55.5t-53.5 -22.5h-1085q-33 0 -55.5 22.5t-22.5 55.5z" />
<glyph unicode="&#xf00c;" d="M0 732.5q0 33.5 23 55.5l174 175q23 23 56.5 22.5t55.5 -22.5l365 -365q23 -23 56.5 -23t55.5 23l746 745q23 23 56.5 23t56.5 -23l174 -174q23 -23 22.5 -56.5t-22.5 -55.5l-910 -910q-23 -23 -62.5 -39t-72.5 -16h-88q-35 0 -75 16.5t-62 38.5l-526 529 q-23 23 -23 56.5z" />
<glyph unicode="&#xf00d;" horiz-adv-x="1536" d="M0 192.5q0 38.5 29 67.5l508 510l-508 500q-29 29 -29 67.5t29 67.5l100 100q29 29 68 29t67 -29l504 -504l504 504q29 29 67.5 29t67.5 -29l100 -100q29 -29 29 -68t-29 -67l-508 -510l508 -500q29 -29 29 -66.5t-29 -66.5l-100 -102q-29 -29 -68 -29t-67 29l-504 505 l-506 -505q-29 -29 -66.5 -29t-66.5 29l-100 100q-29 29 -29 67.5z" />
<glyph unicode="&#xf00e;" horiz-adv-x="1597" d="M0 901q0 137 52 258t143.5 212t212 143.5t258.5 52.5q137 0 259 -52.5t212 -143.5t142 -212t52 -258q0 -102 -28.5 -195.5t-81.5 -170.5l358 -359q18 -18 18 -46t-18 -48l-94 -94q-20 -18 -48 -18.5t-46 18.5l-359 358q-78 -53 -171 -81.5t-195 -28.5q-137 0 -258 52 t-212.5 142t-143.5 211t-52 260zM266 901q0 -84 32 -156.5t86 -126t127 -85t155 -31.5t155.5 31.5t126.5 85t85 126t32 156.5q0 82 -32 154.5t-85 127t-126.5 86t-155.5 31.5t-155 -31.5t-127 -86t-86 -127t-32 -154.5zM399 868v66q0 33 33 33h168v168q0 33 33 32h65 q14 0 24.5 -9t10.5 -23v-168h166q33 0 33 -33v-66q0 -14 -9.5 -24t-23.5 -10h-166v-166q0 -14 -10 -23.5t-25 -9.5h-65q-33 0 -33 33v166h-168q-14 0 -23.5 10t-9.5 24z" />
<glyph unicode="&#xf010;" horiz-adv-x="1597" d="M0 901q0 137 52 258t143.5 212t212 143.5t258.5 52.5q137 0 259 -52.5t212 -143.5t142 -212t52 -258q0 -102 -28.5 -195.5t-81.5 -170.5l358 -359q18 -18 18 -46t-18 -48l-94 -94q-20 -18 -48 -18.5t-46 18.5l-359 358q-78 -53 -171 -81.5t-195 -28.5q-137 0 -258 52 t-212.5 142t-143.5 211t-52 260zM266 901q0 -84 32 -156.5t86 -126t127 -85t155 -31.5t155.5 31.5t126.5 85t85 126t32 156.5q0 82 -32 154.5t-85 127t-126.5 86t-155.5 31.5t-155 -31.5t-127 -86t-86 -127t-32 -154.5zM399 868v66q0 33 33 33h467q33 0 33 -33v-66 q0 -14 -9.5 -24t-23.5 -10h-467q-14 0 -23.5 10t-9.5 24z" />
<glyph unicode="&#xf011;" horiz-adv-x="1488" d="M0 713q0 186 86 349t240 267q12 10 28 6q18 -4 25 -16l90 -131q10 -12 6 -27.5t-16 -25.5q-106 -72 -164.5 -182.5t-58.5 -239.5q0 -104 39.5 -197.5t108.5 -162t162 -108.5t197 -40t197.5 40t163.5 108.5t109.5 161.5t39.5 198q0 129 -59 239.5t-164 182.5 q-14 10 -16 24q-4 16 6 29l88 131q10 12 25.5 15t29.5 -5q154 -104 240 -267t86 -349q0 -154 -58.5 -289t-160 -236.5t-237.5 -160t-290 -58.5t-289 58.5t-236 160t-159.5 236.5t-58.5 289zM627 793v704q0 16 11 27.5t28 11.5h157q16 0 27.5 -11.5t11.5 -27.5v-704 q0 -16 -11 -27.5t-28 -11.5h-157q-16 0 -27.5 11t-11.5 28z" />
<glyph unicode="&#xf012;" d="M0 39v260q0 16 11.5 27.5t27.5 11.5h192q16 0 26.5 -11.5t10.5 -27.5v-260q0 -16 -10 -27.5t-27 -11.5h-192q-39 0 -39 39zM393 39v434q0 16 11.5 27.5t27.5 11.5h193q16 0 26.5 -11.5t10.5 -27.5v-434q0 -16 -10.5 -27.5t-26.5 -11.5h-193q-16 0 -27.5 11.5t-11.5 27.5z M786 39v676q0 16 11.5 27.5t27.5 11.5h193q16 0 27.5 -11.5t11.5 -27.5v-676q0 -16 -11.5 -27.5t-27.5 -11.5h-193q-16 0 -27.5 11.5t-11.5 27.5zM1182 39v995q0 16 10 27.5t27 11.5h192q16 0 27.5 -11t11.5 -28v-995q0 -16 -11.5 -27.5t-27.5 -11.5h-192q-16 0 -26.5 11.5 t-10.5 27.5zM1575 39v1458q0 39 39 39h190q39 0 39 -39v-1458q0 -39 -39 -39h-190q-39 0 -39 39z" />
<glyph unicode="&#xf013;" horiz-adv-x="1593" d="M0 651v236q0 12 30.5 21.5t68.5 15.5t74 9t48 5q18 61 49 117q-55 82 -120 157l-7 15q0 8 28 38.5t62.5 65.5t66.5 62.5t40 27.5q2 0 26.5 -18.5t54.5 -41t56.5 -43t32.5 -24.5q29 16 58.5 26.5t60.5 20.5q0 12 3 49t9 75t15.5 69t21.5 31h237q14 0 19 -15 q12 -49 17 -103t14 -106q31 -8 59.5 -19t56.5 -28q8 6 34 26.5t55.5 43t53 40t29.5 17.5t37 -27.5t65 -62.5t61.5 -65.5t27.5 -38.5q0 -4 -17.5 -28.5t-39 -53.5t-42 -55.5t-24.5 -32.5q33 -55 51 -123q49 -10 103.5 -13t101.5 -20q16 -4 16 -18v-236q0 -12 -29.5 -21.5 t-68.5 -15.5t-76 -9t-49 -5q-14 -57 -47 -117q55 -82 121 -157l6 -15q0 -8 -27.5 -38.5t-62.5 -65.5t-66.5 -62.5t-40.5 -27.5q-2 0 -26.5 18.5t-54 41t-56 43t-33.5 24.5q-29 -16 -58.5 -27.5t-59.5 -19.5q-2 -12 -5.5 -49.5t-9.5 -76t-14 -69.5t-21 -31h-237q-14 0 -19 17 q-14 49 -19 103t-11 103q-61 18 -117 50q-41 -31 -81 -60.5t-79 -62.5l-12 -4q-6 0 -37 27.5t-64.5 62.5t-61 65.5t-27.5 38.5q0 2 16 26.5t37.5 53.5t42 55.5t26.5 34.5q-33 55 -51 123q-51 10 -104.5 13t-100.5 20q-16 4 -16 18zM557 768q0 -49 18.5 -93t51 -77t77 -52.5 t93.5 -19.5t93 19.5t75.5 52.5t51 77t19.5 93t-19.5 92t-51 76t-75.5 51.5t-93 18.5t-93.5 -18.5t-77 -51.5t-51 -76t-18.5 -92z" />
<glyph unicode="&#xf014;" horiz-adv-x="1304" d="M0 1175.5v34.5v36t2 36q25 14 71 23.5t98 15.5t102.5 9t78.5 5q-8 82 11.5 128t59.5 68.5t98.5 29t131.5 6.5q55 0 109.5 -3t97.5 -20.5t68.5 -54.5t25.5 -105v-24t-2 -25q29 -2 79 -5t102.5 -9t99.5 -15.5t72 -23.5v-72v-69q-37 -20 -123 -32.5t-185.5 -19t-193.5 -7.5 t-150 -1q-55 0 -150 1t-194.5 7.5t-184.5 18.5t-122 33q-2 16 -2 34.5zM133 154v837q123 -16 244 -21t244 -5h32q129 2 258 6t258 20v-837q0 -63 -44 -108.5t-107 -45.5h-731q-63 0 -108.5 45t-45.5 109zM303 199q0 -16 10.5 -26.5t26.5 -10.5h39q16 0 27.5 10t11.5 27v614 q0 16 -11.5 27.5t-27.5 11.5h-39q-16 0 -26.5 -11.5t-10.5 -27.5v-614zM504 1384q0 -10 1 -22t3 -23q144 2 291 0q0 12 2 23.5t0 21.5v15q-35 10 -74 11t-74 1q-37 0 -75.5 -1t-73.5 -11v-15zM596 199q0 -16 10 -26.5t27 -10.5h39q16 0 27.5 10t11.5 27v614q0 16 -11.5 27.5 t-27.5 11.5h-39q-16 0 -26.5 -11.5t-10.5 -27.5v-614zM887 199q0 -16 11 -26.5t28 -10.5h39q16 0 27.5 10t11.5 27v614q0 16 -11.5 27.5t-27.5 11.5h-39q-16 0 -27.5 -11.5t-11.5 -27.5v-614z" />
<glyph unicode="&#xf015;" horiz-adv-x="1880" d="M0 809.5q2 15.5 14 26.5l867 710q27 20 59 21q33 0 59 -21l240 -196v102q0 16 11.5 27.5t27.5 11.5h223q16 0 26.5 -11.5t10.5 -27.5v-348l328 -268q12 -10 14 -25.5t-8 -28.5l-45 -53q-10 -14 -29 -14h-65q-16 0 -25 8l-743 608q-25 20 -50 0l-743 -608q-8 -8 -25 -8 h-65q-18 0 -29 14l-45 53q-10 12 -8 27.5zM266 76v622l674 553l674 -553v-622q0 -33 -21.5 -54.5t-54.5 -21.5h-422v498h-352v-498h-422q-33 0 -54.5 21.5t-21.5 54.5z" />
<glyph unicode="&#xf016;" horiz-adv-x="1228" d="M0 78v1382q0 31 22.5 53.5t55.5 22.5h614q33 0 71 -16.5t60 -38.5l351 -351q23 -23 39 -60.5t16 -70.5v-921q0 -33 -22.5 -55.5t-53.5 -22.5h-1075q-33 0 -55.5 22.5t-22.5 55.5zM154 154h921v692h-459q-31 0 -53 22.5t-22 55.5v458h-387v-1228zM268 326v116h693v-116 h-693zM268 596v115h693v-115h-693zM694 999h381q0 4 -4 13.5t-6 11.5l-350 348q-2 4 -9.5 6t-11.5 4v-383z" />
<glyph unicode="&#xf017;" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM240 768q0 -117 44 -218t119.5 -177t177 -120t218.5 -44t218 44t177 120t120 177 t44 218t-44 218t-120 177t-177.5 120t-217.5 44q-117 0 -218.5 -44t-177 -120t-119.5 -177t-44 -218zM635 608v465q0 33 23.5 56.5t56.5 23.5h80q35 0 57 -23.5t22 -56.5v-305h201q33 0 56.5 -23.5t23.5 -56.5v-80q0 -33 -23.5 -56.5t-56.5 -23.5h-360q-33 0 -56.5 23.5 t-23.5 56.5z" />
<glyph unicode="&#xf018;" d="M2 35l594 1466q6 14 21.5 24.5t31.5 10.5h195l-8 -170h172l-9 170h195q16 0 31.5 -10t21.5 -25l594 -1466q6 -14 -1 -24.5t-23 -10.5h-740l-26 512h-258l-27 -512h-739q-16 0 -23.5 10t-1.5 25zM807 797h229l-20 413h-189z" />
<glyph unicode="&#xf019;" d="M0 39v614q0 16 11.5 27.5t27.5 11.5h229q16 0 27.5 -11t11.5 -28v-346h1229v346q0 16 11.5 27.5t27.5 11.5h229q16 0 27.5 -11t11.5 -28v-614q0 -39 -39 -39h-1765q-39 0 -39 39zM345.5 944.5q6.5 16.5 39.5 16.5h307v499q0 31 21.5 53.5t54.5 22.5h307q33 0 55.5 -22.5 t22.5 -53.5v-499h307q31 0 37 -16.5t-16 -39.5l-504 -506q-23 -23 -55.5 -22.5t-55.5 22.5l-504 506q-23 23 -16.5 39.5z" />
<glyph unicode="&#xf01a;" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM240 768q0 -117 44 -218t119.5 -177t177 -120t218.5 -44t218 44t177 120t120 177 t44 218t-44 218t-120 177t-177.5 120t-217.5 44q-117 0 -218.5 -44t-177 -120t-119.5 -177t-44 -218zM414 743q10 25 37 25h208v358q0 16 11.5 28.5t27.5 12.5h201q16 0 27.5 -12t11.5 -29v-358h209q27 0 37 -25t-10 -43l-347 -346q-14 -10 -28 -10t-29 10l-346 346 q-20 18 -10 43z" />
<glyph unicode="&#xf01b;" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM240 768q0 -117 44 -218t119.5 -177t177 -120t218.5 -44t218 44t177 120t120 177 t44 218t-44 218t-120 177t-177 120t-218 44t-218.5 -44t-177 -120t-119.5 -177t-44 -218zM414 793q-10 25 10 43l346 346q14 10 29 10q14 0 28 -10l347 -346q20 -18 10 -43t-37 -25h-209v-360q0 -16 -11.5 -27.5t-27.5 -11.5h-201q-16 0 -27.5 11t-11.5 28v360h-208 q-27 0 -37 25z" />
<glyph unicode="&#xf01c;" d="M0 78v577q0 33 9 76t22 72l284 663q12 29 44 49.5t63 20.5h999q31 0 63 -20.5t44 -49.5l284 -663q12 -29 21.5 -72t9.5 -76v-577q0 -33 -22.5 -55.5t-53.5 -22.5h-1689q-33 0 -55.5 22.5t-22.5 55.5zM238 694h387l114 -231h383l117 231h367q-2 4 -2 9.5t-2 9.5l-256 594 h-848l-256 -596q-2 -2 -2 -7.5t-2 -9.5z" />
<glyph unicode="&#xf01d;" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM240 768q0 -117 44 -218t119.5 -177t177 -120t218.5 -44t218 44t177 120t120 177 t44 218t-44 218t-120 177t-177.5 120t-217.5 44q-117 0 -218.5 -44t-177 -120t-119.5 -177t-44 -218zM582 453v628q0 18 16 29q20 8 31 0l545 -315q16 -6 16 -27q0 -20 -16 -27l-545 -315q-8 -4 -15 -4q-8 0 -16 4q-16 10 -16 27z" />
<glyph unicode="&#xf01e;" horiz-adv-x="1591" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5q141 0 271 -48.5t239 -140.5l161 162q35 35 58.5 24.5t23.5 -57.5v-463q0 -33 -22 -55q-10 -10 -23.5 -16t-29.5 -6h-463q-47 0 -58.5 23.5t23.5 58.5l160 159q-72 57 -159 88t-181 31q-117 0 -218.5 -44t-177 -120 t-119.5 -177t-44 -218t44 -218t119.5 -177t177 -120t218.5 -44q104 0 198.5 37t169 101.5t123.5 153.5t64 191q0 16 14 27q14 10 31 8l157 -20q16 -4 26.5 -16.5t8.5 -28.5q-20 -147 -89.5 -274.5t-176 -220.5t-242 -145.5t-284.5 -52.5q-166 0 -311.5 62.5t-254 171 t-171 254t-62.5 311.5z" />
<glyph unicode="&#xf021;" horiz-adv-x="1916" d="M6 311l150 437q10 33 39 45t59 4l438 -150q45 -16 46 -40.5t-42 -47.5l-202 -100q53 -78 123.5 -134.5t160.5 -86.5q111 -37 221.5 -28t207 56t170 129t110.5 193q6 16 20.5 22t30.5 2l152 -51q16 -6 23 -20.5t1 -30.5q-53 -158 -159.5 -274.5t-243.5 -184t-296 -81 t-315 39.5q-135 47 -241.5 134t-179.5 208l-205 -100q-43 -23 -63.5 -5.5t-4.5 64.5zM203 1024q53 156 159.5 273.5t243.5 185t295 81t316 -39.5q133 -47 240.5 -134t180.5 -208l205 100q43 23 63.5 5.5t4.5 -62.5l-150 -439q-10 -33 -39 -45t-59 -4l-438 150 q-45 16 -46 40.5t40 47.5l202 100q-51 78 -122.5 134.5t-159.5 86.5q-111 37 -221.5 28t-207 -56t-170 -129t-110.5 -193q-6 -16 -20.5 -22t-30.5 -2l-152 51q-16 6 -23 20.5t-1 30.5z" />
<glyph unicode="&#xf022;" d="M0 115v1306q0 47 34 81t81 34h1614q47 0 80.5 -34t33.5 -81v-1306q0 -47 -33.5 -81t-80.5 -34h-1614q-47 0 -81 34t-34 81zM154 154h1536v1075h-1536v-1075zM307 346v76q0 39 39 39h154q16 0 27.5 -11.5t11.5 -27.5v-76q0 -16 -11.5 -27.5t-27.5 -11.5h-154q-39 0 -39 39 zM307 653v76q0 39 39 39h154q16 0 27.5 -11.5t11.5 -27.5v-76q0 -16 -11.5 -27.5t-27.5 -11.5h-154q-39 0 -39 39zM307 961v75q0 39 39 39h154q16 0 27.5 -11t11.5 -28v-75q0 -16 -11.5 -27.5t-27.5 -11.5h-154q-39 0 -39 39zM692 346v76q0 16 10.5 27.5t26.5 11.5h768 q39 0 39 -39v-76q0 -39 -39 -39h-768q-16 0 -26.5 11.5t-10.5 27.5zM692 653v76q0 16 10.5 27.5t26.5 11.5h768q39 0 39 -39v-76q0 -39 -39 -39h-768q-16 0 -26.5 11.5t-10.5 27.5zM692 961v75q0 16 10.5 27.5t26.5 11.5h768q39 0 39 -39v-75q0 -39 -39 -39h-768 q-16 0 -26.5 11t-10.5 28z" />
<glyph unicode="&#xf023;" horiz-adv-x="1253" d="M0 117v626q0 39 21.5 69t56.5 42v164q0 113 43 213t117.5 175t175 118t213.5 43t213 -43t175 -118t118 -175.5t43 -212.5v-164q35 -12 56 -42t21 -69v-626q0 -47 -34.5 -82t-81.5 -35h-1020q-47 0 -82 35t-35 82zM313 862h627v156q0 66 -24.5 123t-67.5 99t-100.5 66.5 t-120.5 24.5q-66 0 -122 -24.5t-99.5 -66.5t-68 -99.5t-24.5 -122.5v-156zM494 164h266l-66 285q29 18 47.5 48.5t18.5 65.5q0 55 -39 95t-94 40t-94 -40t-39 -95q0 -35 18 -65.5t47 -46.5z" />
<glyph unicode="&#xf024;" d="M0 1382q0 63 45 108.5t109 45.5q63 0 108 -45.5t45 -108.5q0 -41 -20.5 -74.5t-55.5 -56.5v-1212q0 -16 -11 -27.5t-27 -11.5h-78q-16 0 -26.5 11.5t-10.5 27.5v1212q-35 23 -56.5 56.5t-21.5 74.5zM307 416v745q0 33 19.5 66t48.5 49q104 55 188 86t144 45q70 16 124 18 q68 0 124.5 -11t107.5 -29.5t99 -43t100 -51.5q63 -29 145 -33q70 -4 164 15.5t207 87.5q29 16 47 6t18 -43v-748q0 -31 -18.5 -64.5t-46.5 -49.5q-113 -68 -207 -87.5t-164 -15.5q-82 4 -145 33q-51 27 -99.5 51.5t-99.5 43t-107.5 29.5t-124.5 11q-55 -2 -124 -18 q-59 -14 -143.5 -45t-188.5 -88q-29 -16 -48.5 -4t-19.5 45z" />
<glyph unicode="&#xf025;" horiz-adv-x="1916" d="M0 729q0 172 85 324.5t221 266.5t307 180.5t345 66.5t345.5 -66.5t307.5 -180.5t221 -266.5t85 -326.5q0 -182 -78 -350l-27 -60l-174 -26q-27 -104 -110.5 -173t-196.5 -69v-41q0 -16 -12 -27.5t-29 -11.5h-80q-16 0 -27.5 11.5t-11.5 27.5v719q0 16 11.5 28.5 t27.5 12.5h80q16 0 28.5 -12.5t12.5 -28.5v-39q88 0 161 -44t114 -116l39 7q33 90 32 192q0 125 -65.5 233.5t-170 190.5t-232.5 129t-251 47t-250.5 -47t-232 -128t-170 -190.5t-65.5 -232.5q0 -104 32 -194l39 -7q41 72 114 116t161 44v39q0 16 12 28.5t29 12.5h80 q16 0 27 -12.5t11 -28.5v-719q0 -16 -11 -27.5t-27 -11.5h-80q-16 0 -28.5 11.5t-12.5 27.5v41q-55 0 -106.5 18.5t-91.5 50.5t-68.5 76t-40.5 97l-175 26l-26 60q-78 168 -78 352z" />
<glyph unicode="&#xf026;" horiz-adv-x="905" d="M0 578v380q0 16 11.5 27.5t27.5 11.5h420l325 326q49 51 84 37t35 -86v-1012q0 -72 -34.5 -86t-84.5 37l-325 326h-420q-16 0 -27.5 11t-11.5 28z" />
<glyph unicode="&#xf027;" horiz-adv-x="1277" d="M0 578v380q0 16 11.5 27.5t27.5 11.5h420l325 326q49 51 84 37t35 -86v-1012q0 -72 -34.5 -86t-84.5 37l-325 326h-420q-16 0 -27.5 11t-11.5 28zM1027 406q-9 32 7 61q84 145 84 301t-84 301q-16 29 -7 61t38 48t60.5 8t48.5 -37q104 -182 104 -381q0 -201 -104 -381 q-23 -41 -70 -41q-20 0 -39 12q-29 16 -38 48z" />
<glyph unicode="&#xf028;" horiz-adv-x="1916" d="M0 578v380q0 16 11.5 27.5t27.5 11.5h420l325 326q49 51 84 37t35 -86v-1012q0 -72 -34.5 -86t-84.5 37l-325 326h-420q-16 0 -27.5 11t-11.5 28zM1027 406q-9 32 7 61q84 145 84 301t-84 301q-16 29 -7 61t38 48t60.5 8t48.5 -37q104 -182 104 -381q0 -201 -104 -381 q-23 -41 -70 -41q-20 0 -39 12q-29 16 -38 48zM1285 219q-7 33 11 62q141 225 142 487q0 262 -142 487q-18 29 -11 62t36 49q29 18 61 11t50 -36q82 -131 123.5 -275t41.5 -298q0 -309 -167 -573q-10 -18 -29 -27.5t-37 -9.5q-25 0 -43 12q-29 16 -36 49zM1540 33 q-6 33 12 59q100 154 152.5 325t52.5 351t-52 351t-153 323q-18 29 -12 61.5t35 50.5q29 16 61 10.5t50 -32.5q115 -174 173 -366.5t58 -397.5t-58.5 -397.5t-172.5 -364.5q-10 -18 -29 -27.5t-37 -9.5q-25 0 -45 13q-29 18 -35 51z" />
<glyph unicode="&#xf029;" horiz-adv-x="1536" d="M0 0v698h698v-698h-698zM0 838v698h698v-698h-698zM139 139h420v420h-420v-420zM139 977h420v420h-420v-420zM279 279v141h141v-141h-141zM279 1116v139h141v-139h-141zM838 0v698h417v-139h142v139h139v-419h-420v139h-139v-418h-139zM838 838v698h698v-698h-698z M977 977h420v420h-420v-420zM1116 0v139h139v-139h-139zM1116 1116v139h139v-139h-139zM1397 0v139h139v-139h-139z" />
<glyph unicode="&#xf02a;" d="M0 0v1536h154v-1536h-154zM227 0v1536h37v-1536h-37zM356 0v1536h117v-1536h-117zM545 0v1536h78v-1536h-78zM715 0v1536h76v-1536h-76zM903 0v1536h37v-1536h-37zM1014 0v1536h153v-1536h-153zM1221 0v1536h77v-1536h-77zM1409 0v1536h39v-1536h-39zM1579 0v1536h37 v-1536h-37zM1690 0v1536h153v-1536h-153z" />
<glyph unicode="&#xf02b;" horiz-adv-x="1488" d="M0 961v454q0 49 35 85t86 36h454q51 0 113 -24.5t94 -61.5l672 -748q33 -39 34 -88t-34 -84l-526 -526q-35 -35 -86 -36t-86 36l-670 750q-35 37 -60.5 96t-25.5 111zM197 1223q0 -49 33.5 -83t82.5 -34t83 34t34 83t-34 82.5t-83 33.5t-82.5 -33.5t-33.5 -82.5z" />
<glyph unicode="&#xf02c;" horiz-adv-x="1875" d="M0 961v454q0 49 35 85t86 36h454q25 0 53.5 -6t57.5 -18.5t54.5 -28t41.5 -33.5l670 -748q33 -37 34 -86t-34 -84l-526 -524q-35 -35 -86.5 -37t-83.5 37l-670 746q-35 39 -60.5 98t-25.5 109zM195 1223q0 -47 34.5 -82t83.5 -35q47 0 82 35t35 82q0 49 -35 83.5 t-82 34.5q-49 0 -83.5 -34.5t-34.5 -83.5zM791 1534h174q51 0 112.5 -24.5t93.5 -61.5l670 -748q35 -37 35 -87t-35 -85l-524 -524q-35 -35 -86 -36t-86 36l-12 14l514 514q35 35 34.5 84.5t-34.5 85.5l-670 748q-31 35 -84 56.5t-102 27.5z" />
<glyph unicode="&#xf02d;" horiz-adv-x="1710" d="M10 311q2 16 4 31.5t4 34.5q0 10 -4 20.5t-2 20.5q2 16 15.5 31.5t25.5 35.5q23 37 45.5 90.5t32.5 92.5q4 16 -1 30.5t-1 26.5q4 16 16.5 27.5t20.5 23.5q10 18 21.5 42t21.5 49.5t16 50t8 40.5t-2 33t0 29q6 16 20.5 26.5t24.5 24.5q10 12 21.5 34.5t23 49.5t19.5 52.5 t10 45.5q2 12 -4 24.5t-2 27.5q4 14 18.5 29.5t26.5 31.5q16 25 28.5 58.5t30 61t46 43t77.5 1.5l-2 -4q31 10 54 10h780q78 0 119 -57q41 -53 18 -129l-283 -906q-18 -63 -77.5 -107t-126.5 -44h-893q-10 0 -20.5 -2t-18.5 -12q-12 -20 0 -56q16 -43 60 -75.5t87 -32.5h946 q29 0 57.5 21.5t37.5 47.5l309 987q4 16 5 29.5t-1 28.5q41 -14 61 -43q41 -53 19 -129l-283 -905q-18 -66 -77.5 -109t-127.5 -43h-946q-41 0 -79.5 14.5t-73.5 39t-61.5 58t-41.5 72.5q-25 68 -2 127zM500 961q-10 -39 26 -39h615q16 0 30.5 11t18.5 28l24 75 q4 16 -3 27.5t-23 11.5h-615q-16 0 -31.5 -11t-19.5 -28zM569 1190q-4 -16 3.5 -26.5t23.5 -10.5h614q16 0 30.5 10.5t21.5 26.5l22 78q4 16 -3 27.5t-24 11.5h-614q-16 0 -30.5 -11.5t-20.5 -27.5z" />
<glyph unicode="&#xf02e;" horiz-adv-x="1253" d="M0 84v1337q0 47 34 81t81 34h1024q47 0 80.5 -34t33.5 -81v-1337q0 -47 -33.5 -81t-80.5 -34t-80 33l-432 432l-432 -432q-33 -33 -80 -33t-81 34t-34 81z" />
<glyph unicode="&#xf02f;" d="M0 39v346q0 47 18.5 89t50 73t73.5 49t89 18h1383q47 0 89 -18t72.5 -49t49 -73t18.5 -89v-346q0 -39 -39 -39h-1765q-39 0 -39 39zM268 193q0 -16 11.5 -26.5t27.5 -10.5h1229q16 0 27.5 10t11.5 27v38q0 16 -11.5 27.5t-27.5 11.5h-1229q-16 0 -27.5 -11t-11.5 -28v-38 zM307 729v731q0 31 22.5 53.5t55.5 22.5h651v-383q0 -49 34 -83t81 -34h385v-307h-1229zM1151 1153v383l385 -383h-385z" />
<glyph unicode="&#xf030;" d="M0 115v1075q0 47 34 82t81 35h366l58 125q18 43 66 73.5t95 30.5h443q47 0 95 -30.5t67 -73.5l57 -125h367q47 0 80.5 -35t33.5 -82v-1075q0 -47 -33.5 -81t-80.5 -34h-1614q-47 0 -81 34t-34 81zM442 653q0 -100 38 -187t102.5 -152.5t153 -103.5t186.5 -38t186 38 t152.5 103.5t102.5 152.5t38 187q0 98 -38 186.5t-102.5 153t-152.5 102.5t-186 38t-186.5 -38t-153 -102.5t-102.5 -152.5t-38 -187zM596 653q0 68 25.5 127.5t69.5 103.5t103.5 69.5t127.5 25.5t127 -25.5t103 -69.5t69.5 -103.5t25.5 -127.5t-25.5 -127t-69.5 -104 t-103.5 -70.5t-126.5 -25.5q-68 0 -127.5 25.5t-103.5 70.5t-69.5 104.5t-25.5 126.5z" />
<glyph unicode="&#xf031;" horiz-adv-x="1644" d="M0 0l2 80q10 4 29.5 8t48.5 8q92 18 108 33q16 10 50 68l233 614l277 725h73h53l11 -20l202 -482q33 -78 64 -151.5t59 -145.5q29 -72 52.5 -130t42.5 -103q12 -29 28.5 -70t36.5 -94q23 -66 64 -150q25 -49 34 -57q20 -18 68 -24q25 -2 49.5 -9.5t52.5 -17.5 q6 -37 7 -55v-10.5t-3 -16.5q-43 0 -90 2t-98 6q-53 4 -99 6t-87 2h-80t-53 -2l-199 -10l-57 -2q0 20 1 39.5t3 38.5l129 26q57 14 67 25q12 8 13 27q0 14 -7 30l-47 115l-90 227l-446 2q-12 -29 -37 -96t-66 -178q-23 -63 -22 -84q0 -27 16 -43q14 -10 40 -17.5t63 -13.5 q14 -4 84 -12v-59q0 -16 -2 -27q-35 0 -121 5t-224 16l-49 -9q-43 -8 -83 -11t-81 -3h-20zM549 655q135 -2 216 -4t105 0l29 2q-18 51 -40.5 111.5t-51.5 130.5t-51.5 122t-38.5 87z" />
<glyph unicode="&#xf032;" horiz-adv-x="1419" d="M0 0l2 94q27 6 68 12q39 6 69.5 13.5t55.5 17.5q8 14 13 26.5t7 24.5q6 33 8 81t2 112l-2 498q-2 39 -3 139t-5 266q-4 88 -12 109q-4 8 -13 10q-20 14 -69 16q-23 0 -115 13l-4 84l262 6l383 12h45q8 2 15.5 2h13.5t21.5 -1t39.5 -1h76q92 0 193 -27q18 -4 42.5 -13 t53.5 -26q63 -31 104 -75q45 -47 66 -105q10 -29 15 -58.5t5 -62.5q0 -72 -32 -129q-31 -57 -95 -104q-16 -12 -54 -30.5t-97 -47.5q178 -41 268 -145q92 -104 92 -236q0 -72 -28 -162q-23 -66 -72 -116q-66 -72 -141 -109q-78 -35 -205 -59q-70 -12 -199 -11l-199 5 q-63 2 -138 -2.5t-163 -10.5q-25 -2 -93 -4t-181 -6zM537 1419q0 -12 1 -31.5t3 -44.5q2 -51 4 -119.5t0 -158.5v-98v-78q25 -4 52.5 -6t57.5 -2q176 0 267 65q90 66 90 225q0 113 -86 187q-84 76 -258 76q-53 0 -131 -15zM545 457l4 -271q0 -16 10 -43q74 -33 141 -32 q131 0 220 41q82 39 122 112q18 37 28.5 82t10.5 100q0 113 -43 181q-59 94 -141 125q-80 33 -250 32q-37 0 -61.5 -3t-40.5 -7v-143v-174z" />
<glyph unicode="&#xf033;" horiz-adv-x="1054" d="M0 0l18 84q12 4 32 9t46 11q41 10 71 19.5t50 19.5q29 39 41 103l29 137l57 268l12 64q23 119 41.5 178t18.5 63l30 156l17 64l22 135l9 49v39q-45 23 -148 28q-14 0 -23.5 1.5t-17.5 1.5l21 104l325 -14q31 -2 49.5 -2h26.5q35 0 89 2t132 6q41 4 68.5 6t38.5 2 q-2 -10 -3 -19.5t-3 -19.5q-4 -10 -7.5 -22.5t-7.5 -28.5q-49 -16 -110 -31q-66 -16 -105 -31q-12 -33 -24 -88q-6 -25 -9.5 -45t-5.5 -37q-23 -100 -40 -175.5t-27 -129.5l-64 -311l-39 -158l-43 -235l-14 -45v-10.5t2 -16.5q35 -8 64.5 -13t58.5 -9q4 0 21.5 -2.5 l45.5 -6.5q-2 -18 -3 -32.5t-3 -26.5q-2 -6 -4 -16.5t-6 -22.5q-8 0 -14 -1t-10 -1q-18 -2 -28.5 -2h-14.5h-11.5t-17.5 4q-8 0 -45 4t-105 12l-202 2q-61 0 -181 -12q-39 -4 -63.5 -6t-36.5 -2z" />
<glyph unicode="&#xf034;" d="M0 1151q14 37 34.5 110.5t45.5 184.5q8 33 13 54.5t9 31.5h58q4 -6 6 -10t4 -9q29 -57 41 -71q16 -4 129 -4q35 0 66.5 1t60.5 1l20 2l113 2l213 -2h289l55 10q10 8 27 53q2 6 4 12.5t6 16.5l43 2h10.5t16.5 -2q2 -39 1 -97.5t1 -138.5v-100v-57q0 -14 -1 -27.5t-3 -23.5 q-20 -8 -37 -11.5t-31 -7.5q-27 51 -53 129q-29 82 -37 92q-12 14 -27 21q-10 4 -60 4h-138h-31t-35 -4q-6 -43 -6 -72l2 -151v-334l2 -359v-147q0 -72 10 -117q8 -4 21.5 -8t34.5 -8q4 0 21 -4t50 -13q27 -10 49 -18q4 -20 4 -33.5v-17.5v-11.5t-2 -17.5h-34q-47 0 -88 2 t-76 6t-95.5 6t-148.5 2q-16 0 -57 -4t-109 -10q-29 -2 -45 -3t-24 -1q0 10 -1.5 16.5t-1.5 10.5l-2 24v10q18 31 80 50q94 27 135 49q4 10 6.5 25.5t4.5 31.5q4 68 6 176.5t0 255.5l-4 428q-2 90 -2 142.5t-4 72.5q0 8 -7 15q-4 6 -12 6q-16 4 -63 4h-127q-90 0 -119 -21 q-41 -29 -121 -153q-23 -35 -35 -35q-23 12 -36 23.5t-19 19.5zM1383 1305.5q-5 13.5 14 33.5l184 185q14 12 33 12q14 0 31 -12l184 -185q18 -20 13 -33.5t-34 -13.5h-118v-1048h118q29 0 34 -13.5t-13 -31.5l-184 -187q-16 -12 -33 -12q-16 0 -31 12l-184 187 q-18 18 -13 31.5t31 13.5h121v1048h-121q-27 0 -32 13.5z" />
<glyph unicode="&#xf035;" horiz-adv-x="1536" d="M0 233q0 18 12 31l187 185q18 20 31.5 14t13.5 -33v-121h1048v121q0 27 13.5 33t33.5 -14l185 -185q12 -12 12 -31q0 -18 -12 -30l-185 -187q-20 -18 -33.5 -13t-13.5 34v119h-1048v-119q0 -29 -13.5 -34t-31.5 13l-187 187q-12 12 -12 30zM0 1233q14 29 33.5 87 t44.5 146q6 27 11 43.5t9 26.5h56q8 -12 10 -14q27 -47 37 -58q2 0 35.5 -1t77.5 -1h90.5h74.5h123l19 2h108h203h416l53 6q12 10 24 46l4.5 9l6.5 13h39h28v-188v-80v-45q0 -12 -1 -21.5t-3 -19.5q-33 -10 -63 -15q-25 37 -52 103q-27 59 -34 74q-12 10 -27 14q-6 2 -42 3 t-85 1h-103.5h-97.5h-28.5t-34.5 -2q-2 -18 -3 -32.5t-1 -24.5l4 -445l-2 -119q0 -61 12 -92q12 -6 53 -12q4 0 20.5 -4t45.5 -10q14 -4 26.5 -7.5t22.5 -7.5q2 -16 3 -25.5t1 -13.5t-1 -10t-1 -14h-33q-94 0 -157 6q-66 6 -236 6q-14 0 -53 -3t-105 -7q-27 -2 -43 -3 t-24 -1q0 16 -2 20v21v8q20 27 73 39q90 20 132 41q4 8 6 19t4 26q0 18 1 70.5t1 120t-1 142t-2 139t-2 107.5t-1 47q0 8 -6 13q-2 2 -13 6q-14 2 -59 2h-123q-20 0 -62 -1t-85 -2t-78 -4t-41 -7q-41 -25 -117 -123q-20 -29 -33 -29q-23 10 -35 19.5t-18 15.5z" />
<glyph unicode="&#xf036;" d="M0 78v115q0 31 22.5 53t55.5 22h1689q31 0 53.5 -22.5t22.5 -52.5v-115q0 -33 -22.5 -55.5t-53.5 -22.5h-1689q-33 0 -55.5 22.5t-22.5 55.5zM0 500v114q0 33 22.5 55.5t55.5 22.5h1075q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -55.5t-53.5 -22.5h-1075 q-33 0 -55.5 22.5t-22.5 55.5zM0 922v114q0 33 22.5 55.5t55.5 22.5h1536q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -54.5t-53.5 -21.5h-1536q-33 0 -55.5 21.5t-22.5 54.5zM0 1343v117q0 31 22.5 53.5t55.5 22.5h921q31 0 53.5 -22.5t22.5 -53.5v-117q0 -31 -22.5 -53 t-53.5 -22h-921q-33 0 -55.5 22.5t-22.5 52.5z" />
<glyph unicode="&#xf037;" d="M0 78v115q0 31 22.5 53t55.5 22h1689q31 0 53.5 -22.5t22.5 -52.5v-115q0 -33 -22.5 -55.5t-53.5 -22.5h-1689q-33 0 -55.5 22.5t-22.5 55.5zM78 922v114q0 33 21.5 55.5t54.5 22.5h1536q33 0 55 -22.5t22 -55.5v-114q0 -33 -22.5 -54.5t-54.5 -21.5h-1536 q-33 0 -54.5 21.5t-21.5 54.5zM307 500v114q0 33 22.5 55.5t55.5 22.5h1075q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -55.5t-53.5 -22.5h-1075q-33 0 -55.5 22.5t-22.5 55.5zM385 1343v117q0 31 21.5 53.5t54.5 22.5h921q33 0 55.5 -22.5t22.5 -53.5v-117 q0 -31 -22.5 -53t-55.5 -22h-921q-33 0 -54.5 22.5t-21.5 52.5z" />
<glyph unicode="&#xf038;" d="M0 78v115q0 31 22.5 53t55.5 22h1689q31 0 53.5 -22.5t22.5 -52.5v-115q0 -33 -22.5 -55.5t-53.5 -22.5h-1689q-33 0 -55.5 22.5t-22.5 55.5zM154 922v114q0 33 22.5 55.5t54.5 22.5h1536q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -54.5t-53.5 -21.5h-1536 q-33 0 -55 21.5t-22 54.5zM614 500v114q0 33 22.5 55.5t55.5 22.5h1075q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -55.5t-53.5 -22.5h-1075q-33 0 -55.5 22.5t-22.5 55.5zM768 1343v117q0 31 22.5 53.5t55.5 22.5h921q31 0 53.5 -22.5t22.5 -53.5v-117q0 -31 -22.5 -53 t-53.5 -22h-921q-33 0 -55.5 22.5t-22.5 52.5z" />
<glyph unicode="&#xf039;" d="M0 78v115q0 31 22.5 53t55.5 22h1689q31 0 53.5 -22.5t22.5 -52.5v-115q0 -33 -22.5 -55.5t-53.5 -22.5h-1689q-33 0 -55.5 22.5t-22.5 55.5zM0 500v114q0 33 22.5 55.5t55.5 22.5h1689q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -55.5t-53.5 -22.5h-1689 q-33 0 -55.5 22.5t-22.5 55.5zM0 922v114q0 33 22.5 55.5t55.5 22.5h1689q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -54.5t-53.5 -21.5h-1689q-33 0 -55.5 21.5t-22.5 54.5zM0 1343v117q0 31 22.5 53.5t55.5 22.5h1689q31 0 53.5 -22.5t22.5 -53.5v-117 q0 -31 -22.5 -53t-53.5 -22h-1689q-33 0 -55.5 22.5t-22.5 52.5z" />
<glyph unicode="&#xf03a;" d="M0 78v115q0 31 22.5 53t55.5 22h153q31 0 53.5 -22.5t22.5 -52.5v-115q0 -33 -22.5 -55.5t-53.5 -22.5h-153q-33 0 -55.5 22.5t-22.5 55.5zM0 500v114q0 33 22.5 55.5t55.5 22.5h153q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -55.5t-53.5 -22.5h-153 q-33 0 -55.5 22.5t-22.5 55.5zM0 922v114q0 33 22.5 55.5t55.5 22.5h153q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -54.5t-53.5 -21.5h-153q-33 0 -55.5 21.5t-22.5 54.5zM0 1343v117q0 31 22.5 53.5t55.5 22.5h153q31 0 53.5 -22.5t22.5 -53.5v-117q0 -31 -22.5 -53 t-53.5 -22h-153q-33 0 -55.5 22.5t-22.5 52.5zM461 78v115q0 31 22.5 53t55.5 22h1228q31 0 53.5 -22.5t22.5 -52.5v-115q0 -33 -22.5 -55.5t-53.5 -22.5h-1228q-33 0 -55.5 22.5t-22.5 55.5zM461 500v114q0 33 22.5 55.5t55.5 22.5h1228q31 0 53.5 -22.5t22.5 -55.5v-114 q0 -33 -22.5 -55.5t-53.5 -22.5h-1228q-33 0 -55.5 22.5t-22.5 55.5zM461 922v114q0 33 22.5 55.5t55.5 22.5h1228q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -54.5t-53.5 -21.5h-1228q-33 0 -55.5 21.5t-22.5 54.5zM461 1343v117q0 31 22.5 53.5t55.5 22.5h1228 q31 0 53.5 -22.5t22.5 -53.5v-117q0 -31 -22.5 -53t-53.5 -22h-1228q-33 0 -55.5 22.5t-22.5 52.5z" />
<glyph unicode="&#xf03b;" d="M0 756v75q0 39 39 39h213v154q0 31 16.5 37t38.5 -17l215 -215q16 -16 17 -36q0 -18 -17 -35l-215 -215q-23 -23 -39 -17t-16 39v152h-213q-39 0 -39 39zM614 39v1458q0 39 39 39h76q39 0 39 -39v-1458q0 -39 -39 -39h-76q-39 0 -39 39zM922 78v115q0 31 22.5 53t54.5 22 h768q31 0 53.5 -22.5t22.5 -52.5v-115q0 -33 -22.5 -55.5t-53.5 -22.5h-768q-33 0 -55 22.5t-22 55.5zM922 500v114q0 33 22.5 55.5t54.5 22.5h615q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -55.5t-53.5 -22.5h-615q-33 0 -55 22.5t-22 55.5zM922 922v114 q0 33 22.5 55.5t54.5 22.5h691q33 0 55 -22.5t22 -55.5v-114q0 -33 -22.5 -54.5t-54.5 -21.5h-691q-33 0 -55 21.5t-22 54.5zM922 1343v117q0 31 22.5 53.5t54.5 22.5h537q33 0 55.5 -22.5t22.5 -53.5v-117q0 -31 -22.5 -53t-55.5 -22h-537q-33 0 -55 22.5t-22 52.5z" />
<glyph unicode="&#xf03c;" d="M0 78v115q0 31 22.5 53t53.5 22h768q33 0 55.5 -22.5t22.5 -52.5v-115q0 -33 -22.5 -55.5t-55.5 -22.5h-768q-31 0 -53.5 22.5t-22.5 55.5zM0 500v114q0 33 22.5 55.5t53.5 22.5h614q33 0 55.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -55.5t-55.5 -22.5h-614 q-31 0 -53.5 22.5t-22.5 55.5zM0 922v114q0 33 22.5 55.5t53.5 22.5h692q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -54.5t-53.5 -21.5h-692q-31 0 -53.5 21.5t-22.5 54.5zM0 1343v117q0 31 22.5 53.5t53.5 22.5h538q31 0 53.5 -22.5t22.5 -53.5v-117q0 -31 -22.5 -53 t-53.5 -22h-538q-31 0 -53.5 22.5t-22.5 52.5zM1075 39v1458q0 39 39 39h76q16 0 27.5 -11.5t11.5 -27.5v-1458q0 -16 -11.5 -27.5t-27.5 -11.5h-76q-39 0 -39 39zM1305 743q0 16 14 35l217 215q23 23 38 17t15 -39v-152h215q16 0 27.5 -11t11.5 -28v-75q0 -16 -11 -27.5 t-28 -11.5h-215v-154q0 -31 -15 -38t-38 15l-217 218q-14 18 -14 36z" />
<glyph unicode="&#xf03d;" d="M0 324v768q0 47 18.5 89t50 72.5t73.5 49t89 18.5h768q47 0 89 -18.5t73 -49t49.5 -72.5t18.5 -89v-240l483 471q23 23 55 23q13 -1 29 -7q47 -20 47 -69v-1127q0 -49 -47 -69q-16 -6 -29 -6q-33 0 -55 22l-483 471v-237q0 -47 -18.5 -89t-49.5 -74t-72.5 -50.5 t-89.5 -18.5h-768q-47 0 -89 18.5t-73.5 50.5t-50 73.5t-18.5 89.5z" />
<glyph unicode="&#xf03e;" d="M0 115v1306q0 47 34 81t81 34h1614q47 0 80.5 -34t33.5 -81v-1306q0 -47 -33.5 -81t-80.5 -34h-1614q-47 0 -81 34t-34 81zM154 154h1536v1228h-1536v-1228zM307 307v105l277 360l188 -156l354 537l410 -424v-422h-1229zM307 1073q0 66 45 111t111 45q63 0 108 -45 t45 -111q0 -63 -45 -108t-108 -45q-66 0 -111 45t-45 108z" />
<glyph unicode="&#xf040;" horiz-adv-x="1536" d="M0 0l137 418l867 866l280 -280l-866 -867zM287 407.5q0 -12.5 10 -22.5q8 -8 22 -8q12 0 21 8l690 690q20 20 0 43q-10 10 -22.5 10t-20.5 -10l-690 -688q-10 -10 -10 -22.5zM1102 1382l119 119q35 35 84 35t84 -35l57 -55l55 -57q35 -35 35 -84.5t-35 -83.5l-119 -119z " />
<glyph unicode="&#xf041;" horiz-adv-x="1128" d="M0 1001q0 117 44 220.5t121 180.5t180.5 121t219.5 44q117 0 219.5 -44t179 -121t120.5 -180.5t44 -220.5q0 -84 -24.5 -159.5t-65.5 -143.5l-379 -661q-41 -68 -95 -68t-93 68l-381 663q-41 68 -65.5 143t-24.5 158zM285 1001q0 -57 21.5 -108t60.5 -89t89 -59.5 t109 -21.5q57 0 108.5 21.5t89.5 59.5t59.5 89t21.5 108t-21.5 108.5t-59.5 90.5t-89 60.5t-109 21.5q-59 0 -109 -21.5t-89 -60.5t-60.5 -90t-21.5 -109z" />
<glyph unicode="&#xf042;" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM240 768q0 -117 44 -218t119.5 -177t177 -120t218.5 -44v1118q-117 0 -218.5 -44 t-177 -120t-119.5 -177t-44 -218z" />
<glyph unicode="&#xf043;" horiz-adv-x="1130" d="M0 535q0 86 23.5 161.5t66.5 141.5q20 33 69.5 99.5t108 154.5t113.5 193.5t90 217.5q10 35 37 51.5t57 12.5q31 4 57.5 -12.5t36.5 -51.5q33 -113 89.5 -218t115 -193t107.5 -154.5t69 -99.5q43 -66 66.5 -141.5t23.5 -161.5q0 -117 -44 -220.5t-120.5 -180.5t-180 -121 t-220.5 -44t-220 44t-180 121t-121 180.5t-44 220.5zM248 410q0 -59 41 -100.5t100 -41.5t100 41t41 101q0 43 -22 75q-6 8 -18.5 24.5t-26.5 39t-28.5 48.5t-22.5 54q-4 20 -23 17q-18 4 -24 -17q-8 -29 -21.5 -54.5t-28 -48t-27 -38.5t-18.5 -25q-23 -33 -22 -75z" />
<glyph unicode="&#xf044;" d="M0 307v922q0 63 24.5 119.5t65.5 97.5t97.5 65.5t119.5 24.5h1075q4 0 10.5 -1t10.5 -1l-191 -191h-905q-47 0 -80.5 -33.5t-33.5 -80.5v-922q0 -47 33.5 -80.5t80.5 -33.5h1075q47 0 81 33.5t34 80.5v445l193 192v-637q0 -63 -25 -118.5t-67 -97.5t-97 -66.5t-119 -24.5 h-1075q-63 0 -119.5 24.5t-97.5 66.5t-65.5 97.5t-24.5 118.5zM631 324l108 329l652 652l221 -222l-651 -651zM866 629q6 -8 17 -8q10 0 16 8l512 510q18 18 0 35q-18 16 -35 0l-510 -510q-18 -18 0 -35zM1501 1415l92 94q29 29 68 29t65 -29l46 -45l45 -45 q27 -29 27.5 -66.5t-27.5 -66.5l-95 -92z" />
<glyph unicode="&#xf045;" d="M0 307v922q0 63 24.5 119.5t65.5 97.5t97.5 65.5t119.5 24.5h836q-6 -31 -6 -63v-52q-164 -20 -310 -78h-520q-47 0 -80.5 -33.5t-33.5 -80.5v-922q0 -47 33.5 -80.5t80.5 -33.5h1075q47 0 81 33.5t34 80.5v111q16 10 31.5 21.5t32.5 27.5l129 127v-287q0 -63 -25 -118.5 t-67 -97.5t-97 -66.5t-119 -24.5h-1075q-63 0 -119.5 24.5t-97.5 66.5t-65.5 97.5t-24.5 118.5zM385 388.5v37.5q0 166 56.5 312.5t173 256t293.5 173t419 65.5v231q0 57 28.5 69.5t69.5 -28.5l392 -391q27 -25 26 -65q0 -39 -26 -64l-392 -391q-41 -41 -69.5 -28.5 t-28.5 69.5v260q-207 0 -364.5 -43t-266 -116.5t-170 -174t-77.5 -215.5q-4 -27 -31 -27q-25 0 -29 27q-4 23 -4 42.5z" />
<glyph unicode="&#xf046;" d="M0 307v922q0 63 24.5 119.5t65.5 97.5t97.5 65.5t119.5 24.5h1075q27 0 52 -6l-187 -187h-940q-47 0 -80.5 -33.5t-33.5 -80.5v-922q0 -47 33.5 -80.5t80.5 -33.5h1075q47 0 81 33.5t34 80.5v326l193 192v-518q0 -63 -25 -118.5t-67 -97.5t-97 -66.5t-119 -24.5h-1075 q-63 0 -119.5 24.5t-97.5 66.5t-65.5 97.5t-24.5 118.5zM385 966.5q0 32.5 23 55.5l98 98q23 23 55.5 23t54.5 -23l340 -340l654 656q23 23 56.5 22.5t55.5 -22.5l99 -99q23 -23 22.5 -55.5t-22.5 -54.5l-711 -711l-98 -98q-23 -23 -55.5 -23t-55.5 23l-100 98l-393 395 q-23 23 -23 55.5z" />
<glyph unicode="&#xf047;" horiz-adv-x="1597" d="M0 768q0 25 18 43l256 256q27 27 45.5 19.5t18.5 -46.5v-170h360v359h-172q-37 0 -45 18.5t19 44.5l256 256q18 18 43 19q25 0 43 -19l256 -256q27 -27 19.5 -45t-46.5 -18h-172v-359h361v170q0 39 18 46.5t45 -19.5l256 -256q18 -18 18 -43t-18 -43l-256 -256 q-27 -27 -45 -19.5t-18 46.5v176h-361v-365h172q39 0 47 -18.5t-20 -44.5l-256 -256q-18 -18 -43 -19q-25 0 -43 19l-256 256q-27 27 -20 45t46 18h172v365h-360v-176q0 -39 -18.5 -46.5t-45.5 19.5l-256 256q-18 18 -18 43z" />
<glyph unicode="&#xf048;" horiz-adv-x="1075" d="M0 76q0 -31 22.5 -53.5t53.5 -22.5h153q33 0 55.5 22.5t22.5 53.5v1382q0 33 -22.5 55.5t-55.5 22.5h-153q-31 0 -53.5 -22.5t-22.5 -55.5v-1382zM307.5 768q-0.5 27 16.5 43l653 707q14 18 41 18q6 0 22 -4q35 -18 35 -59v-1412q0 -41 -35 -57q-39 -14 -63 14l-653 705 q-16 18 -16.5 45z" />
<glyph unicode="&#xf049;" d="M0 76q0 -31 22.5 -53.5t53.5 -22.5h153q33 0 55.5 22.5t22.5 53.5v1382q0 33 -22.5 55.5t-55.5 22.5h-153q-31 0 -53.5 -22.5t-22.5 -55.5v-1382zM307.5 768q-0.5 27 16.5 43l653 707q14 18 41 18q6 0 22 -4q35 -18 35 -59v-1412q0 -41 -35 -57q-39 -14 -63 14l-653 705 q-16 18 -16.5 45zM1075.5 768q-0.5 27 16.5 43l653 707q14 18 41 18q6 0 22 -4q35 -18 35 -59v-1412q0 -41 -35 -57q-39 -14 -63 14l-653 705q-16 18 -16.5 45z" />
<glyph unicode="&#xf04a;" horiz-adv-x="1536" d="M0 767q0 26 16 44l654 707q14 18 41 18q10 0 22 -6q35 -14 35 -57v-1412q0 -41 -35 -57q-37 -16 -63 14l-654 705q-16 18 -16 44zM768 767q0 26 16 44l654 707q14 18 41 18q10 0 22 -6q35 -14 35 -57v-1412q0 -41 -35 -57q-37 -16 -63 14l-654 705q-16 18 -16 44z" />
<glyph unicode="&#xf04b;" horiz-adv-x="1349" d="M0 70v1396q0 39 35 60q37 23 69 0l1211 -697q35 -25 35 -61q0 -37 -35 -61l-1211 -697q-16 -10 -34 -10t-35 10q-35 20 -35 60z" />
<glyph unicode="&#xf04c;" horiz-adv-x="1536" d="M0 70v1396q0 29 20.5 49.5t49.5 20.5h489q29 0 49.5 -20.5t20.5 -49.5v-1396q0 -29 -20.5 -49.5t-49.5 -20.5h-489q-29 0 -49.5 20.5t-20.5 49.5zM907 70v1396q0 29 20.5 49.5t49.5 20.5h489q29 0 49.5 -20.5t20.5 -49.5v-1396q0 -29 -20.5 -49.5t-49.5 -20.5h-489 q-29 0 -49.5 20.5t-20.5 49.5z" />
<glyph unicode="&#xf04d;" horiz-adv-x="1536" d="M0 70v1396q0 29 20.5 49.5t49.5 20.5h1396q29 0 49.5 -20.5t20.5 -49.5v-1396q0 -29 -20.5 -49.5t-49.5 -20.5h-1396q-29 0 -49.5 20.5t-20.5 49.5z" />
<glyph unicode="&#xf04e;" horiz-adv-x="1536" d="M0 61v1414q0 39 35 57q39 14 63 -14l654 -705q16 -18 16 -45t-16 -45l-654 -705q-16 -18 -41 -18q-6 0 -22 4q-35 16 -35 57zM768 61v1414q0 39 35 57q39 14 63 -14l654 -705q16 -18 16 -45t-16 -45l-654 -705q-16 -18 -41 -18q-6 0 -22 4q-35 16 -35 57z" />
<glyph unicode="&#xf050;" d="M0 61v1414q0 39 35 57q39 14 63 -14l654 -705q16 -18 16 -45t-16 -45l-654 -705q-16 -18 -41 -18q-6 0 -22 4q-35 16 -35 57zM768 61v1414q0 39 35 57q39 14 63 -14l654 -705q16 -18 16 -45t-16 -45l-654 -705q-16 -18 -41 -18q-6 0 -22 4q-35 16 -35 57zM1536 76 q0 -31 22.5 -53.5t53.5 -22.5h153q33 0 55.5 22.5t22.5 53.5v1382q0 33 -22.5 55.5t-55.5 22.5h-153q-31 0 -53.5 -22.5t-22.5 -55.5v-1382z" />
<glyph unicode="&#xf051;" horiz-adv-x="1075" d="M0 61v1414q0 39 35 57q39 14 63 -14l654 -705q16 -18 16 -45t-16 -45l-654 -705q-16 -18 -41 -18q-6 0 -22 4q-35 16 -35 57zM768 76q0 -31 22.5 -53.5t53.5 -22.5h153q33 0 55.5 22.5t22.5 53.5v1382q0 33 -22.5 55.5t-55.5 22.5h-153q-31 0 -53.5 -22.5t-22.5 -55.5 v-1382z" />
<glyph unicode="&#xf052;" horiz-adv-x="1536" d="M0 70v198q0 29 20.5 49.5t49.5 20.5h1396q29 0 49.5 -20.5t20.5 -49.5v-198q0 -29 -20.5 -49.5t-49.5 -20.5h-1396q-29 0 -49.5 20.5t-20.5 49.5zM6 594q-18 43 14 76l699 698q20 20 49 20.5t49 -20.5l699 -698q33 -33 14 -76q-16 -43 -64 -43h-1396q-47 0 -64 43z" />
<glyph unicode="&#xf053;" horiz-adv-x="964" d="M0 765q0 38 29 66l671 674q29 29 68 29t68 -29l100 -100q29 -29 29 -68t-29 -67l-508 -510l508 -500q29 -29 29 -66.5t-29 -66.5l-100 -102q-29 -29 -68 -29t-68 29l-671 673q-29 29 -29 67z" />
<glyph unicode="&#xf054;" horiz-adv-x="964" d="M0 194.5q0 38.5 29 67.5l508 508l-508 502q-29 29 -29 66.5t29 66.5l100 102q29 29 68 29t67 -29l672 -673q29 -29 29 -68t-29 -68l-672 -671q-29 -29 -67.5 -29t-67.5 29l-100 100q-29 29 -29 67.5z" />
<glyph unicode="&#xf055;" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM338 688q0 -33 33 -33h313v-344q0 -33 33 -32h164q33 0 32 32v344h314 q12 0 22.5 9.5t10.5 23.5v158q0 14 -10.5 23.5t-22.5 9.5h-314v346q0 33 -32 32h-164q-33 0 -33 -32v-346h-313q-33 0 -33 -33v-158z" />
<glyph unicode="&#xf056;" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM338 688q0 -33 33 -33h856q12 0 22.5 9.5t10.5 23.5v158q0 14 -10.5 23.5 t-22.5 9.5h-856q-33 0 -33 -33v-158z" />
<glyph unicode="&#xf057;" horiz-adv-x="1597" d="M0 770q0 154 58.5 301.5t174.5 263.5q117 117 264.5 175.5t301 58.5t301 -58.5t264.5 -175.5t175 -264t58 -301t-58 -301t-175 -264t-264.5 -175.5t-301 -58.5t-301 58.5t-264.5 175.5t-175 264t-58 301zM385 505q0 -13 10 -24l115 -116q10 -10 23.5 -10.5t23.5 10.5 l244 243l219 -221q10 -10 23.5 -10t23.5 10l113 113q23 23 0 47l-222 219l246 246q23 23 0 47l-117 115q-25 25 -47 0l-243 -244l-222 221q-10 10 -23 10t-24 -10l-110 -113q-25 -23 0 -47l219 -219l-242 -244q-10 -10 -10 -23z" />
<glyph unicode="&#xf058;" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM240 718q0 -20 14 -34l319 -319q14 -14 38 -24.5t44 -10.5h56q20 0 43.5 10 t38.5 25l550 550q14 14 14.5 34t-14.5 34l-104 107q-16 14 -35.5 14t-34.5 -14l-452 -453q-14 -14 -33.5 -14t-34.5 14l-221 221q-14 14 -33.5 14t-36.5 -14l-104 -106q-14 -14 -14 -34z" />
<glyph unicode="&#xf059;" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM532 1100l95 -115q4 -8 20 -12q12 0 23 6l10 8t27.5 17.5t39 16.5t46.5 7 q41 0 69.5 -22.5t28.5 -57.5q0 -37 -24.5 -64.5t-61.5 -60.5q-23 -18 -46.5 -40.5t-43 -51.5t-31.5 -63.5t-12 -79.5v-64q0 -12 9 -21t21 -9h164q12 0 20.5 9t8.5 21v51q0 39 25.5 66.5t62.5 60.5q25 20 49.5 46t46 57t34.5 69.5t13 90.5q0 68 -27.5 121t-73.5 87.5 t-103.5 53t-114.5 18.5q-63 0 -113.5 -16.5t-85.5 -35.5t-53 -35.5t-20 -18.5q-16 -16 -3 -39zM672 252q0 -12 9 -21.5t21 -9.5h164q12 0 20.5 9.5t8.5 21.5v156q0 12 -8 21t-21 9h-164q-12 0 -21 -9t-9 -21v-156z" />
<glyph unicode="&#xf05a;" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM573 858q0 -29 29 -29h86v-409h-78q-12 0 -21 -8.5t-9 -20.5v-139q0 -12 9 -21.5 t21 -9.5h402q12 0 20 9.5t8 21.5v139q0 29 -28 29h-78v577q0 12 -8 21.5t-21 9.5h-303q-12 0 -20.5 -9t-8.5 -22v-139zM686 1151q0 -12 9.5 -21.5t21.5 -9.5h188q12 0 20.5 9.5t8.5 21.5v166q0 29 -29 29h-188q-12 0 -21.5 -8.5t-9.5 -20.5v-166z" />
<glyph unicode="&#xf05b;" horiz-adv-x="1536" d="M0 692v154q0 16 11.5 26.5t27.5 10.5h164q18 84 59 158.5t99.5 133t133 99.5t158.5 59v164q0 39 39 39h154q16 0 26.5 -11.5t10.5 -27.5v-164q84 -18 158.5 -59t133 -99.5t99.5 -133t59 -158.5h164q16 0 27.5 -10.5t11.5 -26.5v-154q0 -39 -39 -39h-164 q-18 -84 -59 -158.5t-99.5 -133t-133 -99.5t-158.5 -59v-164q0 -16 -10.5 -27.5t-26.5 -11.5h-154q-39 0 -39 39v164q-84 18 -158.5 59t-133 99.5t-99.5 133t-59 158.5h-164q-39 0 -39 39zM365 653q29 -106 105.5 -183t182.5 -105v174q0 16 11.5 26t27.5 10h154 q16 0 26.5 -10t10.5 -26v-174q106 29 183 105.5t105 182.5h-172q-39 0 -38 39v154q0 16 11 26.5t27 10.5h172q-29 106 -105.5 183t-182.5 105v-172q0 -16 -10.5 -27t-26.5 -11h-154q-39 0 -39 38v172q-106 -29 -183 -105.5t-105 -182.5h174q16 0 26 -10.5t10 -26.5v-154 q0 -16 -10 -27.5t-26 -11.5h-174z" />
<glyph unicode="&#xf05c;" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM240 768q0 -117 44 -218t119.5 -177t177 -120t218.5 -44t218 44t177 120t120 177 t44 218t-44 218t-120 177t-177.5 120t-217.5 44q-117 0 -218.5 -44t-177 -120t-119.5 -177t-44 -218zM451 573.5q0 16.5 12 28.5l166 166l-166 166q-12 12 -12 28.5t12 28.5l112 113q29 29 58 0l166 -166l166 166q29 29 57 0l113 -113q29 -29 0 -57l-166 -166l166 -166 q29 -29 0 -57l-113 -113q-12 -12 -28.5 -12t-28.5 12l-166 166l-166 -166q-12 -12 -28.5 -12t-29.5 12l-112 113q-12 12 -12 28.5z" />
<glyph unicode="&#xf05d;" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM240 768q0 -117 44 -218t119.5 -177t177 -120t218.5 -44t218 44t177 120t120 177 t44 218t-44 218t-120 177t-177.5 120t-217.5 44q-117 0 -218.5 -44t-177 -120t-119.5 -177t-44 -218zM332 717.5q0 17.5 10 27.5l115 115q10 10 27.5 10t27.5 -10l178 -180q29 -25 58 0l337 340q10 10 27.5 10t28.5 -10l114 -115q10 -10 10.5 -27.5t-10.5 -27.5l-409 -410 q-12 -12 -32.5 -20t-37.5 -8h-114q-16 0 -37 8t-33 20l-250 250q-10 10 -10 27.5z" />
<glyph unicode="&#xf05e;" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM240 768q0 -84 23.5 -160t66.5 -141l770 770q-66 43 -141.5 66.5t-159.5 23.5 q-117 0 -218.5 -44t-177 -120t-119.5 -177t-44 -218zM498 297q66 -41 141.5 -64.5t159.5 -23.5q117 0 218 44t177 120t120 177t44 218q0 84 -23.5 160t-64.5 141z" />
<glyph unicode="&#xf060;" horiz-adv-x="1536" d="M0 768q0 39 29 68l671 673q29 29 68 29t68 -29l100 -100q29 -29 29 -67.5t-29 -67.5l-338 -338h842q41 0 68.5 -27.5t27.5 -68.5v-144q0 -39 -27.5 -66.5t-66.5 -27.5h-844l338 -338q29 -29 29 -67.5t-29 -67.5l-100 -100q-29 -29 -68 -29t-68 29l-671 671q-29 29 -29 68 z" />
<glyph unicode="&#xf061;" horiz-adv-x="1536" d="M0 698v144q0 39 27.5 66.5t66.5 27.5h844l-338 338q-29 29 -29 67.5t29 67.5l100 100q29 29 68 29t68 -29l671 -673q29 -29 29 -67t-29 -67l-671 -673q-29 -29 -68 -29t-68 29l-100 100q-29 29 -29 68t29 67l338 338h-844q-39 0 -66.5 27.5t-27.5 68.5z" />
<glyph unicode="&#xf062;" horiz-adv-x="1536" d="M-1 768q-1 39 28 68l673 671q29 29 68 29t68 -29l671 -671q29 -29 29 -68t-29 -68l-100 -100q-29 -29 -66.5 -29t-66.5 29l-340 338v-844q0 -39 -27.5 -66.5t-66.5 -27.5h-144q-41 0 -67.5 27.5t-26.5 66.5v844l-338 -338q-29 -29 -67.5 -29t-67.5 29l-100 100 q-29 29 -30 68z" />
<glyph unicode="&#xf063;" horiz-adv-x="1536" d="M0 766q0 39 29 68l100 100q29 29 68 29t67 -29l338 -338v844q0 39 27.5 66.5t66.5 27.5h144q41 0 67.5 -27.5t26.5 -66.5v-844l340 338q29 29 66.5 29t66.5 -29l102 -100q29 -29 29 -68t-29 -68l-673 -671q-29 -29 -68 -29t-68 29l-671 671q-29 29 -29 68z" />
<glyph unicode="&#xf064;" d="M0 135q0 209 71.5 393.5t218 322.5t371 219t531.5 83v293q0 72 36 87t89 -36l491 -493q35 -33 35 -82q0 -47 -35 -82l-491 -494q-51 -51 -88 -35.5t-37 86.5v330q-262 -2 -461 -56.5t-336 -147.5t-215 -219t-98 -271q-4 -33 -37 -33h-2q-33 0 -37 33q-6 51 -6 102z" />
<glyph unicode="&#xf065;" horiz-adv-x="1536" d="M0 86v522q0 53 26.5 64.5t65.5 -25.5l166 -166l274 275q12 12 31 12t33 -12l160 -160q12 -14 12 -32.5t-12 -31.5l-275 -274l166 -166q39 -39 27 -65.5t-66 -26.5h-520q-37 0 -61 25q-27 27 -27 61zM768 972.5q0 18.5 12 31.5l275 274l-166 166q-39 39 -27 65.5t66 26.5 h520q37 0 61 -25q27 -27 27 -61v-522q0 -53 -26.5 -64.5t-65.5 25.5l-166 166l-274 -273q-12 -14 -31 -14t-33 14l-160 158q-12 14 -12 32.5z" />
<glyph unicode="&#xf066;" horiz-adv-x="1536" d="M0 202.5q0 18.5 12 33.5l275 272l-166 166q-39 39 -27 65.5t66 26.5h520q38 0 61 -25q27 -27 27 -61v-522q0 -53 -26.5 -64.5t-65.5 27.5l-166 166l-274 -275q-12 -14 -31 -14t-33 14l-160 160q-12 12 -12 30.5zM768 854v522q0 53 26.5 64.5t65.5 -27.5l166 -166l274 275 q12 14 31 14t33 -14l160 -160q12 -12 12 -30.5t-12 -33.5l-275 -272l166 -166q39 -39 27 -65.5t-66 -26.5h-520q-41 0 -61 25q-27 27 -27 61z" />
<glyph unicode="&#xf067;" horiz-adv-x="1536" d="M0 696v144q0 39 27.5 66.5t66.5 27.5h508v506q0 41 26.5 68.5t67.5 27.5h144q39 0 66.5 -27.5t27.5 -66.5v-508h508q39 0 66.5 -27.5t27.5 -66.5v-144q0 -39 -27.5 -66.5t-66.5 -27.5h-508v-506q0 -41 -27.5 -68.5t-66.5 -27.5h-144q-39 0 -66.5 27.5t-27.5 66.5v508 h-506q-41 0 -68.5 26.5t-27.5 67.5z" />
<glyph unicode="&#xf068;" horiz-adv-x="1536" d="M0 696v144q0 39 27.5 66.5t66.5 27.5h1348q39 0 66.5 -27.5t27.5 -66.5v-144q0 -39 -27.5 -66.5t-66.5 -27.5h-1346q-41 0 -68.5 26.5t-27.5 67.5z" />
<glyph unicode="&#xf069;" horiz-adv-x="1427" d="M2 1018q-10 37 10 72l72 124q20 35 58 44.5t73 -9.5l332 -192v383q0 41 27.5 68.5t68.5 27.5h141q41 0 69 -27.5t28 -66.5v-385l331 192q35 18 73 9t58 -44l70 -124q20 -35 11 -72t-44 -57l-333 -193l333 -193q35 -20 44.5 -57t-9.5 -72l-72 -124q-20 -35 -58 -44.5 t-73 9.5l-331 192v-383q0 -41 -28 -68.5t-69 -27.5h-141q-41 0 -68.5 27.5t-27.5 66.5v385l-332 -192q-35 -20 -73 -10t-58 45l-72 124q-18 35 -9 72t44 57l334 193l-334 193q-35 20 -45 57z" />
<glyph unicode="&#xf06a;" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM672 1274l14 -739q4 -29 31 -29h162q12 0 21 8t9 21l17 739q0 10 -8 22q-8 8 -23 9 h-193q-14 0 -22 -9q-8 -12 -8 -22zM680 236q0 -12 8 -21.5t21 -9.5h180q12 0 21.5 9t9.5 22v174q0 12 -9.5 21t-21.5 9h-180q-12 0 -20.5 -9t-8.5 -21v-174z" />
<glyph unicode="&#xf06b;" horiz-adv-x="1880" d="M0 588v391q0 16 11.5 27.5t27.5 11.5h539q-57 0 -107.5 21.5t-87.5 58.5t-58.5 87t-21.5 107t21.5 107.5t58.5 87.5t87 58.5t108 21.5q61 0 115.5 -24.5t88.5 -69.5l158 -203l158 203q35 45 89 69.5t116 24.5q57 0 107 -21.5t87 -58.5t58.5 -87t21.5 -108 q0 -57 -21.5 -107t-58.5 -87t-87 -58.5t-107 -21.5h538q16 0 27.5 -11.5t11.5 -27.5v-391q0 -16 -11 -27.5t-28 -11.5h-117v-432q0 -47 -34.5 -82t-83.5 -35h-1332q-49 0 -82.5 35t-33.5 82v432h-119q-16 0 -27.5 11t-11.5 28zM461 1292q0 -49 33.5 -82.5t83.5 -33.5h237 l-151 196q-10 10 -32 24.5t-54 14.5q-49 0 -83 -35t-34 -84zM743 221q0 -33 24 -56.5t56 -23.5h234q33 0 56.5 23.5t23.5 56.5v797h-394v-797zM1065 1176h238q49 0 82.5 33.5t33.5 82.5t-33.5 84t-82.5 35q-33 0 -54.5 -14.5t-31.5 -24.5z" />
<glyph unicode="&#xf06c;" horiz-adv-x="1916" d="M6 135q20 53 56 89t71 65q29 23 50.5 43t27.5 43q2 6 0 12t-10 25q-6 12 -11.5 27.5t-9.5 35.5q-25 160 13 295t120 242.5t195 185.5t235 121q82 29 179.5 34t203.5 7q61 0 127 2t127.5 11t113.5 28.5t85 54.5q20 20 38.5 41t38 36t43 24.5t58.5 9.5q23 0 42.5 -11.5 t29.5 -31.5q66 -133 83 -281.5t-18 -322.5q-90 -487 -579 -740q-231 -123 -467 -123q-154 0 -307 54q-23 8 -45.5 20t-44.5 25q-29 16 -57.5 30.5t-49.5 14.5q-10 -2 -23.5 -17.5t-27.5 -35t-26.5 -41t-20.5 -33.5q-14 -23 -26.5 -41.5t-22.5 -32.5q-25 -31 -64 -31h-4 q-29 2 -49.5 12.5t-33.5 24.5t-20.5 28.5t-9.5 22.5q-27 37 -10 78zM401 507.5q2 -32.5 29 -54.5q20 -18 51 -19q37 0 62 27q90 102 181 175t191.5 117t212 62t242.5 14q33 -4 57.5 19.5t26.5 56.5q2 35 -20.5 58.5t-57.5 25.5q-147 6 -277 -16.5t-247 -73.5t-223.5 -133 t-206.5 -199q-23 -27 -21 -59.5z" />
<glyph unicode="&#xf06d;" horiz-adv-x="1445" d="M0 442q0 123 63.5 254t174.5 238q10 16 33.5 13t31.5 -21q4 -16 0 -29q-8 -35 -14 -84t-4 -101.5t13 -101.5t38 -84q31 -37 78 -49q-49 154 -40 293t49 259t101.5 217t118.5 167t98 106.5t43 39.5q25 18 47 0q10 -8 13.5 -21.5t-0.5 -24.5q0 -2 -15.5 -42.5t-21.5 -102 t7 -134.5t71 -136q37 -43 67.5 -85t52 -93.5t34 -120t12.5 -162.5q0 -33 -31 -39q-12 -2 -24.5 4t-16.5 19q-14 31 -42 49t-63 18q-47 0 -79.5 -33.5t-32.5 -81.5q0 -121 156 -120q98 0 153 63q37 43 53.5 101.5t20.5 114.5t2 102.5t-4 62.5q-6 12 0 29q8 18 31.5 21 t35.5 -13q111 -106 173.5 -237.5t62.5 -254.5q0 -109 -51.5 -195.5t-145.5 -148t-228 -95.5t-298 -34t-298 34t-228.5 95.5t-145.5 148.5t-51 195z" />
<glyph unicode="&#xf06e;" d="M0 722q0 44 25 83q78 125 178 224t216 168t242.5 104.5t260.5 35.5q135 0 262 -35.5t241.5 -103.5t215 -167t180.5 -226q23 -39 22.5 -83t-22.5 -81q-80 -127 -180.5 -226.5t-215 -167t-241.5 -103t-262 -35.5q-133 0 -260 35.5t-243 104t-216.5 168t-177.5 224.5 q-25 37 -25 81zM154 723q66 -104 149.5 -190.5t182 -145.5t208 -92t228.5 -33t228.5 33t207.5 92t182 145t150 191q-80 129 -187.5 226.5t-236.5 156.5q51 -59 79.5 -133t28.5 -160q0 -96 -35.5 -179t-99 -146.5t-147.5 -99.5t-179 -36q-96 0 -179 36t-146.5 99.5t-99 146.5 t-35.5 179q0 78 25.5 148.5t68.5 128.5q-117 -59 -217.5 -152.5t-175.5 -214.5zM614 813q0 -23 16.5 -40t41.5 -17t41 17.5t16 39.5q0 78 53.5 131t130.5 53q25 0 41.5 17.5t16.5 40.5q0 25 -16.5 41t-41.5 16q-61 0 -116.5 -23.5t-95 -63.5t-63.5 -95.5t-24 -116.5z" />
<glyph unicode="&#xf070;" d="M0 767q0 44 25 83q78 125 178 224.5t216 168t242.5 104t260.5 35.5q53 0 105 -7t103 -17l89 158q8 14 24 18q12 6 29 -2l133 -76q14 -8 19.5 -23.5t-3.5 -29.5l-774 -1383q-6 -14 -22 -18q-4 -2 -11 -2q-6 0 -18 4l-135 76q-14 8 -18.5 23.5t3.5 29.5l66 115 q-145 68 -269 178.5t-218 259.5q-25 37 -25 81zM154 768q82 -131 191.5 -229.5t240.5 -157.5l57 104q-86 63 -138 159.5t-52 213.5q0 78 25.5 148.5t68.5 130.5q-117 -61 -217.5 -153.5t-175.5 -215.5zM614 858q0 -23 16.5 -40t41.5 -17t41 17.5t16 39.5q0 78 53.5 131 t130.5 53q25 0 41.5 17.5t16.5 40.5q0 25 -16.5 41t-41.5 16q-61 0 -116.5 -23.5t-95 -63.5t-63.5 -95.5t-24 -116.5zM928 154l88 159q209 25 382 145t292 310q-109 170 -263 283l76 137q92 -66 172 -150t146 -188q23 -39 22.5 -83t-22.5 -81q-160 -254 -392.5 -392 t-500.5 -140zM1081 430l285 510q4 -20 6 -39.5t2 -42.5q0 -74 -21.5 -140.5t-60.5 -121.5t-93 -98t-118 -68z" />
<glyph unicode="&#xf071;" horiz-adv-x="1775" d="M0 92q0 20 6 39t17 35l768 1331q16 27 39.5 48.5t56.5 21.5t56.5 -21.5t39.5 -48.5l770 -1331q10 -16 16.5 -34.5t6.5 -39.5q0 -49 -38 -70.5t-81 -21.5h-1538q-43 0 -81 21.5t-38 70.5zM770 1114l12 -633q0 -14 10.5 -24.5t24.5 -10.5h139q14 0 24.5 10.5t10.5 24.5 l15 633q0 14 -10.5 24.5t-24.5 10.5h-166q-16 0 -25.5 -10.5t-9.5 -24.5zM776 168q0 -16 10.5 -25.5t24.5 -9.5h154q35 0 34 35v147q0 16 -9 26.5t-25 10.5h-154q-14 0 -24.5 -10t-10.5 -27v-147z" />
<glyph unicode="&#xf072;" horiz-adv-x="1597" d="M0 541v4q0 31 23 57l30 29q20 25 56 24q8 0 10 -2l280 -32q39 63 93.5 134.5t125.5 151.5l-583 457q-31 25 -31 59v4q0 31 23 58l57 57q27 23 57 23h13.5t13.5 -4l803 -293l151 149q70 70 161 110t167 40q72 0 109 -37q20 -18 28 -46t8 -63q0 -76 -38.5 -167t-110.5 -160 l-150 -152l293 -803q6 -12 6 -26q0 -33 -24 -58l-58 -57q-23 -25 -57 -25h-4q-35 4 -59 31l-455 586q-82 -72 -153.5 -126t-135.5 -93l35 -281v-10q0 -33 -22 -55l-31 -31q-23 -23 -58 -23h-4q-39 4 -59 31l-205 272l-274 207q-29 25 -31 60z" />
<glyph unicode="&#xf073;" horiz-adv-x="1566" d="M0 117v1147q0 47 35 81.5t82 34.5h39v13q0 31 10 62.5t32.5 56t59.5 40t90 15.5t90 -15.5t59.5 -40t33 -56.5t10.5 -62v-13h49v13q0 31 10 62.5t32.5 56t59.5 40t90 15.5t90 -15.5t60.5 -40t34 -56.5t10.5 -62v-13h49v13q0 31 10.5 62.5t33 56t59 40t90.5 15.5 q53 0 90 -15.5t59.5 -40t32.5 -56.5t10 -62v-13h39q47 0 82 -34.5t35 -81.5v-1147q0 -47 -35 -82t-82 -35h-1333q-47 0 -82 35t-35 82zM158 158h282v250h-282v-250zM158 446h282v252h-282v-252zM158 737h282v252h-282v-252zM272 1165q0 -57 76 -57t76 57v228q0 57 -76 57 t-76 -57v-228zM479 158h285v250h-285v-250zM479 446h285v252h-285v-252zM479 737h285v252h-285v-252zM709 1165q0 -31 16 -44t57 -13t58.5 13.5t17.5 43.5v228q0 29 -17.5 43t-58.5 14t-57 -14.5t-16 -42.5v-228zM803 158h284v250h-284v-250zM803 446h284v252h-284v-252z M803 737h284v252h-284v-252zM1126 158h283v250h-283v-250zM1126 446h283v252h-283v-252zM1126 737h283v252h-283v-252zM1143 1165q0 -57 76 -57t75 57v228q0 57 -75 57q-76 0 -76 -57v-228z" />
<glyph unicode="&#xf074;" d="M0 252v154q0 16 11.5 27t27.5 11h219q51 0 99.5 31t93.5 83t90 119.5t90 139.5q55 88 114.5 175t127 156t147.5 110.5t180 41.5h203v185q0 41 24.5 49t59.5 -21l334 -278q23 -18 22 -45q0 -29 -22 -47l-334 -277q-35 -29 -59.5 -20.5t-24.5 49.5v174h-203 q-53 0 -100 -31.5t-93 -84t-91.5 -120t-90.5 -139.5q-55 -88 -113.5 -174t-126 -154.5t-148.5 -110.5t-179 -42h-219q-16 0 -27.5 11.5t-11.5 27.5zM0 1108v154q0 39 39 38h219q68 0 127 -20t111.5 -56t97.5 -84t88 -104q-61 -90 -117 -178q-4 -8 -9 -14t-9 -15 q-70 102 -139.5 172t-149.5 70h-219q-16 0 -27.5 10.5t-11.5 26.5zM778 481q29 41 56.5 85t56.5 87q4 10 10 17.5t10 17.5q70 -102 139.5 -170.5t149.5 -68.5h203v190q0 41 24.5 49t59.5 -20l334 -277q23 -18 22 -47q0 -27 -22 -45l-334 -279q-35 -29 -59.5 -20.5 t-24.5 49.5v168h-203q-68 0 -127 20.5t-110.5 56.5t-97.5 84t-87 103z" />
<glyph unicode="&#xf075;" horiz-adv-x="1916" d="M0 866q0 145 76 272.5t206 222.5t303.5 150.5t372.5 55.5t373 -55.5t304 -150.5t206 -222t76 -273q0 -145 -76 -272t-206 -222.5t-304 -150.5t-373 -55q-92 0 -180 12q-176 -139 -411 -192q-25 -4 -50.5 -8.5t-54.5 -8.5q-16 -2 -27.5 6.5t-15.5 24.5t5 26.5t20 20.5 q23 23 43 44.5t36.5 51t30 69.5t23.5 97q-174 98 -275.5 241.5t-101.5 315.5z" />
<glyph unicode="&#xf076;" horiz-adv-x="1566" d="M0 621v288q0 16 11.5 27.5t27.5 11.5h391q16 0 28.5 -11t12.5 -28v-288q0 -29 22.5 -60t63.5 -58.5t98.5 -45t128.5 -17.5q70 0 128.5 17.5t99.5 45t63.5 58.5t22.5 60v288q0 39 39 39h391q16 0 27.5 -11t11.5 -28v-288q0 -135 -61.5 -254t-168 -207t-249 -139.5 t-304.5 -51.5q-164 0 -306 51.5t-248.5 139.5t-168 206.5t-61.5 254.5zM0 1106v391q0 16 11.5 27.5t27.5 11.5h391q16 0 28.5 -11.5t12.5 -27.5v-391q0 -16 -12.5 -27.5t-28.5 -11.5h-391q-16 0 -27.5 11.5t-11.5 27.5zM1098 1106v391q0 16 11 27.5t28 11.5h391 q16 0 27.5 -11.5t11.5 -27.5v-391q0 -16 -11.5 -27.5t-27.5 -11.5h-391q-39 0 -39 39z" />
<glyph unicode="&#xf077;" horiz-adv-x="1536" d="M-1 355.5q-1 37.5 28 66.5l673 674q29 29 68 28.5t68 -28.5l671 -674q29 -29 29 -67t-29 -66l-100 -103q-29 -29 -68 -28.5t-67 28.5l-508 510l-500 -510q-29 -29 -67.5 -28.5t-67.5 28.5l-100 103q-29 29 -30 66.5z" />
<glyph unicode="&#xf078;" horiz-adv-x="1536" d="M0 918.5q0 37.5 29 66.5l100 102q29 29 68 29t67 -29l508 -509l500 509q29 29 67.5 29t67.5 -29l100 -102q29 -29 30 -66.5t-28 -66.5l-673 -674q-29 -29 -68 -28.5t-68 28.5l-671 674q-29 29 -29 66.5z" />
<glyph unicode="&#xf079;" horiz-adv-x="1916" d="M2.5 1038.5q-12.5 30.5 28.5 75.5l385 424q25 29 63 29q39 0 64 -29l385 -424q41 -45 28.5 -75.5t-67.5 -30.5h-250v-680h174q6 -10 12 -19.5t17 -19.5l252 -281h-695q-33 0 -56.5 23.5t-23.5 56.5v920h-249q-55 0 -67.5 30.5zM823 1526h695q33 0 56 -22.5t23 -57.5v-918 h250q55 0 67.5 -30.5t-28.5 -75.5l-385 -424q-25 -29 -63 -29q-39 0 -64 29l-385 424q-41 45 -28.5 75.5t67.5 30.5h250v678h-174q-6 10 -12.5 20.5t-14.5 20.5z" />
<glyph unicode="&#xf07a;" d="M0 1421v76q0 39 39 39h231q16 0 38 -4t36 -8q6 -4 14.5 -14.5t15.5 -23.5t12 -26.5t7 -21.5l27 -125h1347q35 0 58 -27t16 -59l-108 -578q-6 -25 -26.5 -42t-49.5 -17h-1084l35 -168q4 -16 17.5 -26.5t29.5 -10.5h856q16 0 27.5 -11.5t11.5 -27.5v-78q0 -16 -11 -26.5 t-28 -10.5h-163h-652h-104q-16 0 -36.5 3.5t-35.5 9.5q-6 2 -14 13t-15.5 24.5t-12.5 27t-7 21.5l-215 1016q-4 16 -17.5 26t-29.5 10h-170q-39 0 -39 39zM582 115q0 47 33.5 81.5t80.5 34.5q49 0 83 -34.5t34 -81.5t-34 -81t-83 -34q-47 0 -80.5 34t-33.5 81zM1233 115 q0 47 33.5 81.5t81.5 34.5q47 0 80.5 -34.5t33.5 -81.5t-33.5 -81t-80.5 -34t-81 34t-34 81z" />
<glyph unicode="&#xf07b;" d="M0 115v1306q0 47 34 81t81 34h692q47 0 81 -34t34 -81t33.5 -80.5t80.5 -33.5h693q47 0 80.5 -35t33.5 -82v-1075q0 -47 -33.5 -81t-80.5 -34h-1614q-47 0 -81 34t-34 81z" />
<glyph unicode="&#xf07c;" d="M0 379v1042q0 47 34 81t81 34h692q47 0 81 -34t34 -81t33.5 -80.5t80.5 -33.5h443q47 0 80.5 -35t33.5 -82v-221h-1228q-37 0 -72 -12.5t-65.5 -34t-53 -51t-35.5 -64.5zM43 0l246 760q6 23 30.5 39t47.5 16h1476l-260 -758q-6 -23 -30.5 -40t-47.5 -17h-1462z" />
<glyph unicode="&#xf07d;" horiz-adv-x="798" d="M2 368.5q10 22.5 57 22.5h203v754h-203q-47 0 -57 22.5t25 57.5l319 319q23 23 53 23q31 0 54 -23l321 -319q33 -35 22.5 -57.5t-57.5 -22.5h-202v-754h202q47 0 57.5 -22.5t-24.5 -57.5l-319 -319q-23 -23 -54 -23t-53 23l-321 319q-33 35 -23 57.5z" />
<glyph unicode="&#xf07e;" horiz-adv-x="1597" d="M0 729q0 31 23 53l319 322q35 33 57.5 23.5t22.5 -56.5v-205h754v203q0 47 22.5 57.5t56.5 -22.5l320 -322q23 -23 22 -53q0 -31 -22 -53l-320 -322q-35 -33 -57 -22.5t-22 57.5v203h-754v-203q0 -47 -22.5 -57t-57.5 24l-319 320q-23 23 -23 53z" />
<glyph unicode="&#xf080;" d="M0 115v1306q0 47 35 81t82 34h1612q47 0 80.5 -34t33.5 -81v-1306q0 -47 -33.5 -81t-80.5 -34h-1612q-47 0 -82 34t-35 81zM154 154h1536v1228h-1536v-1228zM307 264v363h203v-363h-203zM649 264v776h201v-776h-201zM993 264v592h203v-592h-203zM1333 264v922h203v-922 h-203z" />
<glyph unicode="&#xf081;" horiz-adv-x="1536" d="M0 193v1150q0 39 15.5 75t41 61.5t60.5 41t73 15.5h1153q80 0 136.5 -56.5t56.5 -136.5v-1150q0 -41 -15.5 -76t-41 -60.5t-61.5 -41t-75 -15.5h-1153q-39 0 -73.5 15.5t-60 41t-41 60.5t-15.5 76zM201 559q80 -111 198.5 -169t259.5 -58q96 0 184.5 26.5t160 73.5 t124 112.5t76.5 143.5q82 6 129 57q14 14 4 33q-8 18 -30 15h-4q23 23 30 45q8 20 -8 32q-14 14 -33 2q-8 -4 -29.5 -10t-45.5 -6q-4 0 -7.5 1t-7.5 1q0 2 -1 4t-1 4q-16 61 -57 110.5t-94 72.5q4 4 6 8t6 8q6 16 0 33q-2 6 -12.5 16t-34.5 8q-2 4 -6 8q-12 12 -25 9 q-25 -4 -49 -13l-2 2q-14 8 -31 -2q-59 -37 -98 -100t-68 -135q-35 31 -57 41q-61 35 -129 63.5t-154 61.5q-14 4 -24 -4q-10 -6 -15 -21q-2 -27 8.5 -58.5t38.5 -62.5q-25 -6 -20 -32q12 -68 68 -101l-13 -12q-14 -14 -4 -33q4 -12 26.5 -37.5t65.5 -38.5q-6 -12 -6 -22 t2 -14q6 -33 39 -50q-37 -25 -79 -34t-85 -5.5t-83 20.5t-70 46q-8 8 -19.5 8t-19.5 -8q-23 -18 -4 -39z" />
<glyph unicode="&#xf082;" horiz-adv-x="1536" d="M2 193v1150q0 39 15.5 75t41 61.5t60.5 41t74 15.5h1153q80 0 136 -56.5t56 -136.5v-1150q0 -41 -15.5 -76t-41 -60.5t-61.5 -41t-74 -15.5h-486v643h172q12 0 21.5 8t9.5 21l12 168q0 14 -8 24q-10 10 -23 10h-184v74q0 41 10.5 54.5t53.5 13.5q25 0 55.5 -4t58.5 -11 q6 0 13.5 1.5t11.5 5.5q10 6 14 22l23 162q4 29 -25 35q-90 25 -188 24q-301 0 -301 -293v-84h-103q-33 0 -32 -32v-168q0 -12 9 -21.5t23 -9.5h103v-643h-393q-39 0 -74 15.5t-60.5 41t-41 60.5t-15.5 76z" />
<glyph unicode="&#xf083;" d="M0 115v1306q0 47 34 81t81 34h1614q47 0 80.5 -34t33.5 -81v-1306q0 -47 -33.5 -81t-80.5 -34h-1614q-47 0 -81 34t-34 81zM154 160h1536v114h-1536v-114zM154 1145h1536v231h-957l-14 -92h-565v-139zM266 1341h316v93h-316v-93zM557 709q0 -76 28.5 -142.5t78 -116 t116 -78t142.5 -28.5t142 28.5t115.5 78t78 116t28.5 142.5t-28.5 142.5t-78 115.5t-116 77.5t-141.5 28.5q-76 0 -142.5 -28.5t-116 -77.5t-78 -115.5t-28.5 -142.5zM672 709q0 51 19.5 97t53 80t79.5 53t98 19q51 0 97 -19t80 -53t53 -80t19 -97t-19 -97.5t-53 -80 t-80 -53t-97 -19.5t-97.5 19.5t-80 53t-53 79.5t-19.5 98zM743 709q0 -16 12.5 -28.5t28.5 -12.5q18 0 30.5 12.5t12.5 28.5q0 41 28 67.5t67 26.5v2q18 0 30.5 12t12.5 29q0 18 -12.5 30.5t-30.5 12.5q-74 0 -126.5 -53.5t-52.5 -126.5z" />
<glyph unicode="&#xf084;" horiz-adv-x="1916" d="M0 803.5q-6 111.5 30 230.5t113 228q78 109 179.5 180t209 102t213 17.5t191.5 -74.5q76 -53 121 -134t59 -176.5t-4 -199t-68 -203.5l414 -297l101 139l-105 74q-14 10 -17 27.5t7 32.5l51 69q10 14 26.5 17.5t32.5 -7.5l344 -247q16 -10 18.5 -27.5t-7.5 -32.5l-49 -69 q-10 -14 -27.5 -17.5t-32.5 6.5l-102 76l-101 -139l248 -178q43 -31 52.5 -83t-21.5 -95q-33 -43 -84 -51.5t-94 22.5l-803 573q-78 -80 -170 -130t-186.5 -68.5t-185.5 -2t-167 71.5q-86 61 -133 157.5t-53 208zM230.5 766q7.5 -41 30 -78t58.5 -63q37 -27 79 -36t83 -2 t78 29.5t64 59.5q39 53 41 114.5t-27 114.5q59 -10 116.5 11.5t96.5 74.5q27 37 36 79t2 84t-29.5 79t-59.5 63q-37 27 -79 36t-84 2t-79 -29.5t-63 -59.5q-37 -53 -39 -114.5t26 -114.5q-59 10 -116.5 -12.5t-96.5 -75.5q-27 -37 -36 -79t-1.5 -83z" />
<glyph unicode="&#xf085;" horiz-adv-x="1916" d="M0 801v180q0 8 22.5 15.5t52 11.5t56.5 7t37 3q12 49 37 88q-23 31 -45.5 61.5t-46.5 59.5l-4 10q0 6 20.5 29.5t47 50t50 47t29.5 20.5q2 0 20.5 -13t41 -30.5t43 -34t24.5 -20.5q43 25 90 37q0 8 3 37t7 57.5t10.5 52t16.5 23.5h178q8 0 15.5 -23.5t11.5 -52t7 -57.5 t5 -37q45 -12 86 -35q31 23 62.5 45.5t60.5 46.5l8 4q4 0 27.5 -21.5t49.5 -47t47.5 -49t21.5 -29.5q0 -4 -13.5 -22.5t-30 -40t-32 -41t-19.5 -25.5q23 -39 39 -92q10 -2 37 -5t55.5 -8.5t51 -11.5t22.5 -14v-178q0 -10 -22.5 -16.5t-51 -11.5t-56.5 -7t-36 -4 q-14 -43 -37 -88q23 -31 44.5 -60.5t48.5 -58.5l2 -10q0 -6 -20.5 -30t-47.5 -50.5t-50.5 -47t-29.5 -20.5q-2 0 -20.5 13.5t-41 31t-42 32.5t-25.5 20q-45 -23 -88 -37q0 -10 -3 -37t-8 -56.5t-12.5 -52t-15.5 -22.5h-178q-8 0 -15.5 22.5t-11.5 52t-7 56t-3 37.5 q-45 12 -88 37q-31 -23 -61.5 -46.5t-59.5 -48.5l-10 -2q-4 0 -27.5 20.5t-49 47t-46 50.5t-20.5 30q0 2 13 20.5t29.5 40t31 41t18.5 25.5q-23 43 -39 94q-10 2 -37 5t-55.5 7t-51 10.5t-22.5 14.5zM420 889q0 -37 14.5 -70t39 -57.5t58 -38.5t70.5 -14t70 14t57.5 38.5 t38.5 57.5t14 70t-14 70.5t-38.5 58t-57.5 39t-70 14.5q-76 0 -129 -53t-53 -129zM1114 373q0 6 13.5 13t31 14.5t33.5 12.5t22 7q4 23 9.5 39t15.5 37q-4 4 -13 17t-18.5 27.5t-16.5 28t-7 17.5t18.5 23.5t43 41t47 40t28.5 24.5l8 4q4 0 16.5 -8.5t25.5 -19.5t25.5 -21.5 t16.5 -14.5q35 12 76 19q2 6 9 21.5t16.5 30.5t17.5 27.5t14 12.5q4 0 34 -7t63.5 -18.5t60.5 -23.5t27 -23q0 -23 -5.5 -47t-9.5 -47q16 -12 28.5 -26.5t22.5 -30.5q25 2 49.5 3t47.5 1q8 0 18 -26.5t17.5 -60.5t12.5 -64.5t5 -39.5q0 -6 -13.5 -13t-29.5 -13t-32.5 -12.5 t-22.5 -8.5q-9 -38 -23 -71q2 -6 11.5 -18.5t18.5 -27t16 -27.5t7 -18q0 -4 -18.5 -23.5t-43 -41t-47 -40.5t-28.5 -26l-8 -4q-4 0 -16.5 8.5t-25.5 19.5t-25.5 21.5t-16.5 14.5q-37 -12 -78 -19q-2 -6 -9 -21.5t-15.5 -30.5t-16.5 -27.5t-14 -12.5t-35 7.5t-62.5 18.5 t-60 23.5t-26.5 22.5q0 23 5 47.5t9 46.5q-16 12 -28.5 26.5t-22.5 30.5q-23 -2 -45.5 -3t-44.5 -1h-14.5t-8.5 11q-2 8 -8 35.5t-13.5 58t-12.5 55.5t-5 29zM1192 1264q0 6 12.5 12t29.5 10t33.5 6t22.5 4q10 33 31 64q-2 4 -8 17.5t-12.5 27.5t-11.5 25.5t-5 15.5 q0 6 21.5 22.5t49 35t51.5 32.5t28 14t13 -9t20.5 -21.5t20.5 -23.5t13 -15q14 4 28.5 6t29.5 0h14q2 4 11 16.5t18.5 25.5t17.5 23.5t12 10.5t30 -11.5t55.5 -26t53 -28.5t23.5 -20q0 -4 -4 -15.5t-8 -26t-8.5 -27.5t-6.5 -17q20 -25 39 -60q51 -4 74 -7t29 -18.5t5 -52 t3 -106.5q0 -6 -12.5 -12.5t-28.5 -10.5t-32.5 -6t-22.5 -4q-13 -36 -31 -63q2 -4 8 -16.5t13.5 -27t12.5 -26.5t5 -14q0 -6 -22.5 -23.5t-50 -36t-51.5 -33t-26 -14.5q-4 0 -14 9.5t-21.5 21.5t-20.5 23.5t-13 15.5q-14 -4 -28.5 -6t-29.5 0h-14q-4 -4 -12 -16.5t-17.5 -26 t-18.5 -23.5t-13 -10t-30 11t-54.5 25.5t-52 29t-23.5 20.5q0 2 3 14.5t8 26.5t9 27.5t6 17.5q-23 23 -38 59q-53 2 -75 5t-29 18.5t-5 52.5t-4 109zM1397 367q0 -49 34.5 -85t84.5 -36q49 0 84.5 34.5t35.5 86.5q0 49 -34.5 83.5t-85.5 34.5q-49 0 -84 -34.5t-35 -83.5z M1446 1206q0 -47 31.5 -78.5t76.5 -31.5q47 0 79 31.5t32 76.5q0 47 -31.5 79t-77.5 32q-47 0 -78.5 -32t-31.5 -77z" />
<glyph unicode="&#xf086;" horiz-adv-x="1916" d="M0 997q0 119 61.5 222.5t167 180.5t246.5 122t303 45t303.5 -45t247 -122t166.5 -180.5t61 -222.5q0 -117 -61 -221t-166.5 -181t-247 -122t-303.5 -45q-37 0 -73.5 3t-71.5 7q-147 -113 -336 -155q-20 -4 -40.5 -7.5t-43.5 -7.5q-12 -2 -21.5 6.5t-13.5 18.5v2 q-4 12 3 19.5t18 17.5q18 18 34.5 36.5t29.5 42t24.5 55.5t19.5 79q-141 78 -224 195.5t-83 256.5zM649 258q6 4 13.5 8t13.5 8q51 -6 102 -6q197 0 369 56.5t298 155t198.5 231.5t72.5 286q0 41 -6 84q96 -78 151.5 -175t55.5 -208q0 -139 -83 -256.5t-224 -195.5 q8 -47 19 -79t25.5 -55.5t30 -42t33.5 -36.5q10 -10 17.5 -18.5t3.5 -18.5v-2q-2 -12 -12.5 -19.5t-22.5 -5.5q-23 4 -43.5 7.5t-40.5 7.5q-96 20 -180 60t-156 95q-35 -4 -71.5 -7t-73.5 -3q-141 0 -265 35t-225 94z" />
<glyph unicode="&#xf087;" horiz-adv-x="1597" d="M0 193v643q0 49 35 83.5t84 34.5h348q27 14 43 30.5t35 39.5q16 20 32.5 38.5t34.5 37.5q33 35 76 68.5t66 74.5q16 29 23 64.5t12.5 71.5t12.5 70t23.5 60.5t47 42t81.5 15.5q61 0 111.5 -25.5t85.5 -68.5t54.5 -98.5t19.5 -112.5q0 -59 -17.5 -112.5t-42.5 -107.5 q35 2 70 4.5t70 2.5q55 0 107 -10.5t93 -35t66.5 -67.5t25.5 -109q0 -29 -5 -57t-15 -57q18 -43 18 -90q0 -78 -41 -142q10 -59 -7 -118.5t-58 -104.5q-4 -84 -45 -139.5t-102.5 -89t-135 -47t-143.5 -13.5q-72 0 -144.5 10.5t-142.5 28.5q-70 20 -139.5 43t-142.5 23h-375 q-49 0 -84 34.5t-35 84.5zM236 276q0 -35 22 -57t57 -22q33 0 56.5 22.5t23.5 56.5q0 33 -23.5 56.5t-56.5 23.5q-35 0 -57 -23.5t-22 -56.5zM492 193q70 0 136 -16.5t133.5 -35t141.5 -35t160 -16.5q45 0 98 6t99.5 26.5t78 56.5t31.5 95q0 10 -1 18.5t-3 18.5 q35 16 53.5 53t18.5 74q0 39 -21 68q60 49 60 123q0 23 -12.5 43t-26.5 35q16 29 28.5 57.5t12.5 62.5q0 35 -17.5 55.5t-43 31t-56.5 12.5t-57 2q-45 0 -90.5 -3t-90.5 -3q-31 0 -61.5 3t-58.5 15q0 41 16 78t35.5 74.5t35 78.5t15.5 91q0 33 -10.5 65.5t-29.5 59t-47 44 t-65 17.5h-11t-11 -2q-8 -4 -9 -8t-3 -13q-12 -59 -22.5 -123.5t-39.5 -117.5q-29 -51 -74 -88t-86 -78q-29 -31 -49 -56.5t-41.5 -48t-48.5 -42t-65 -35.5h-2v-643z" />
<glyph unicode="&#xf088;" horiz-adv-x="1597" d="M0 309q0 29 5 57.5t15 57.5q-18 43 -18 90q0 78 41 141q-10 59 7.5 119t58.5 105q4 84 45 139t102 89t135 47t144 13q72 0 144.5 -10t141.5 -29q70 -20 139.5 -42.5t143.5 -22.5h375q49 0 83.5 -35t34.5 -84v-643q0 -49 -34.5 -84t-83.5 -35h-349q-27 -14 -43 -30.5 t-34 -38.5q-16 -20 -32.5 -39t-35.5 -37q-33 -35 -76 -69t-65 -74q-25 -43 -31 -99.5t-18.5 -106.5t-44 -84t-107.5 -34q-61 0 -111.5 25.5t-85 68.5t-54 98.5t-19.5 112.5q0 59 17.5 112.5t41.5 106.5q-35 -2 -69.5 -4t-69.5 -2q-55 0 -107.5 10.5t-93.5 35t-66.5 67.5 t-25.5 108zM119 309q0 -35 17.5 -55.5t43 -30.5t56 -12t57.5 -2q47 0 91 3t89 3q31 0 61.5 -3t59.5 -15q0 -41 -16.5 -78t-36 -75t-34.5 -79t-15 -90q0 -33 10 -65.5t29.5 -59t47 -43t64.5 -16.5q4 0 11.5 -1t11.5 1q8 4 9 8l3 12q12 59 22.5 124t38.5 118q29 51 74 88 t86 78q29 31 49.5 56.5t42 48t47 42t66.5 35.5h2v643q-72 0 -137.5 16.5t-133 36t-141 36t-159.5 16.5q-45 0 -98.5 -7.5t-99.5 -27t-78 -56t-32 -96.5q0 -10 1 -18t3 -19q-35 -16 -53 -53t-18 -74q0 -39 20 -67q-59 -49 -59 -123q0 -23 12 -43.5t27 -34.5 q-16 -29 -28.5 -57.5t-12.5 -63.5zM1202 860q0 -33 23.5 -56.5t56.5 -23.5q35 0 57.5 23.5t22.5 56.5q0 35 -22.5 57.5t-57.5 22.5q-33 0 -56.5 -22.5t-23.5 -57.5z" />
<glyph unicode="&#xf089;" horiz-adv-x="837" d="M1 959.5q9 27.5 54 33.5l506 74l227 459q23 41 50 41v-1348l-453 -237q-41 -23 -64.5 -6.5t-15.5 63.5l86 504l-364 356q-35 33 -26 60.5z" />
<glyph unicode="&#xf08a;" horiz-adv-x="1802" d="M0 1073q0 137 43 231.5t112.5 153t156.5 84t177 25.5q63 0 125 -21.5t115 -53.5t97 -70t75 -68q31 31 76 68.5t98 69.5t113.5 53.5t126.5 21.5q88 0 175 -25.5t156.5 -84t112.5 -153t43 -231.5q0 -94 -34.5 -177t-76.5 -146.5t-79 -102.5t-39 -43l-615 -612 q-26 -23 -57 -23q-33 0 -55 23l-617 614q-4 2 -39.5 41t-77.5 102.5t-77 146.5t-35 177zM160 1073q0 -68 27.5 -131t61.5 -112.5t63 -79.5l28 -29l561 -559l561 559l29 29q29 30 62.5 79.5t61 113t27.5 130.5q0 104 -29.5 169t-77.5 101.5t-106.5 50t-113.5 13.5 q-53 0 -107.5 -25.5t-102.5 -61.5t-86 -74t-56 -60q-25 -31 -62 -31t-61 31q-18 23 -56.5 60.5t-86.5 73.5t-102.5 61.5t-105.5 25.5q-57 0 -115.5 -13.5t-106.5 -50t-77.5 -101t-29.5 -169.5z" />
<glyph unicode="&#xf08b;" horiz-adv-x="1689" d="M0 307v922q0 63 24.5 118.5t66.5 97.5t97.5 66.5t118.5 24.5h461v-193h-461q-47 0 -80.5 -33.5t-33.5 -80.5v-922q0 -47 33.5 -80.5t80.5 -33.5h461v-193h-461q-63 0 -118.5 24.5t-97.5 66.5t-66.5 97.5t-24.5 118.5zM508 584v368q0 33 22.5 54.5t55.5 21.5h428v293 q0 41 39 57q39 14 65 -14l553 -553q18 -18 18.5 -44t-18.5 -42l-553 -553q-18 -18 -43 -18q-10 0 -22 4q-39 16 -39 57v291h-428q-33 0 -55.5 22.5t-22.5 55.5z" />
<glyph unicode="&#xf08c;" horiz-adv-x="1536" d="M0 193v1150q0 39 15.5 75t41 61.5t60.5 41t76 15.5h1150q80 0 136.5 -56.5t56.5 -136.5v-1150q0 -41 -15.5 -76t-41 -60.5t-61.5 -41t-75 -15.5h-1150q-80 0 -136.5 56.5t-56.5 136.5zM207 1192q0 -57 40 -97t95 -40q57 0 97 40t40 97q0 55 -40 95t-97 40q-55 0 -95 -40 t-40 -95zM213 240q0 -10 9 -19.5t20 -9.5h200q12 0 20.5 9t8.5 20v706q0 29 -29 29h-200q-10 0 -19.5 -8.5t-9.5 -20.5v-706zM580 240q0 -10 9 -19.5t19 -9.5h201q12 0 20.5 9t8.5 20v383q0 68 26.5 113.5t102.5 45.5q59 0 79.5 -28.5t20.5 -81.5v-432q0 -10 8 -19.5 t21 -9.5h204q10 0 19.5 9t9.5 20v477q0 141 -81 208.5t-216 67.5q-55 0 -107.5 -15t-93.5 -56q0 16 -3 34.5t-25 18.5h-195q-10 0 -19 -8.5t-9 -20.5v-706z" />
<glyph unicode="&#xf08d;" horiz-adv-x="1916" d="M2 950q8 82 45 172t100 176t139 147.5t152 92.5t145.5 30t121.5 -40q53 -41 73.5 -107.5t12.5 -148.5l301 -225q111 63 215 73t180 -47q55 -41 80.5 -108.5t23.5 -150.5t-30.5 -177t-83.5 -188l428 -410q25 -25 4 -53q-12 -16 -33 -17q-10 0 -18 6l-517 293 q-74 -80 -155.5 -135t-161.5 -80.5t-151.5 -19.5t-127.5 47q-76 55 -95 158.5t9 228.5l-303 223q-76 -33 -145.5 -32t-122.5 40q-51 39 -72.5 104.5t-13.5 147.5zM171 858.5q3 -16.5 15 -27.5q21 -14 50 -14q31 0 65.5 17.5t71.5 46t72.5 66.5t66.5 79q10 14 7 30.5 t-15 26.5q-14 10 -30.5 8.5t-27.5 -16.5q-78 -104 -138 -143t-72 -35q-14 10 -31 7t-27 -15q-10 -14 -7 -30.5zM465 754l364 -271q8 -8 23 -8q20 0 33 17q10 14 8 29.5t-16 25.5l-347 258q-16 -14 -32.5 -27.5t-32.5 -23.5zM829.5 239.5q1.5 -16.5 16.5 -26.5q29 -23 69 -23 q41 0 88.5 21.5t95.5 57.5t94 84.5t87 101.5q10 12 8 28.5t-16 26.5q-12 10 -28.5 8t-26.5 -16q-51 -68 -102.5 -116t-95.5 -75.5t-78 -36t-48 4.5q-14 10 -29.5 7t-25.5 -18q-10 -12 -8.5 -28.5z" />
<glyph unicode="&#xf08e;" d="M0 307v922q0 63 24.5 119.5t65.5 97.5t97.5 65.5t119.5 24.5h582q-2 -14 -4 -27.5t-2 -29.5v-88q0 -23 6 -48h-582q-47 0 -80.5 -33.5t-33.5 -80.5v-922q0 -47 33.5 -80.5t80.5 -33.5h1075q47 0 81 33.5t34 80.5v340q41 -31 90 -49t103 -20v-271q0 -63 -25 -118.5 t-67 -97.5t-97 -66.5t-119 -24.5h-1075q-63 0 -119.5 24.5t-97.5 66.5t-65.5 97.5t-24.5 118.5zM692.5 522q-0.5 25 16.5 41l770 772h-269q-25 0 -41 16.5t-16 41.5v86q-2 23 15.5 40t41.5 17h576q23 0 40 -17.5t17 -39.5v-86v-490q0 -25 -17.5 -42t-39.5 -15h-86 q-25 0 -41.5 16.5t-16.5 40.5v268l-772 -770q-16 -16 -40.5 -16t-41.5 16l-79 80q-16 16 -16.5 41z" />
<glyph unicode="&#xf090;" horiz-adv-x="1689" d="M0 584v368q0 33 22.5 54.5t55.5 21.5h428v293q0 41 37 57q39 14 67 -14l553 -553q16 -18 16.5 -44t-16.5 -42l-553 -553q-18 -18 -43 -18q-8 0 -24 4q-37 16 -37 57v291h-428q-33 0 -55.5 22.5t-22.5 55.5zM922 0v193h460q47 0 81 33.5t34 80.5v922q0 47 -33.5 80.5 t-81.5 33.5h-460v193h460q63 0 118.5 -24.5t97.5 -65.5t67 -97.5t25 -119.5v-922q0 -63 -25 -118.5t-67 -97.5t-97 -66.5t-119 -24.5h-460z" />
<glyph unicode="&#xf091;" horiz-adv-x="1689" d="M0 1042v187q0 33 22.5 54.5t55.5 21.5h323q-2 12 -2 25v24v4q0 53 4.5 88t15.5 54.5t31.5 27.5t55.5 8h678q33 0 54.5 -8t32.5 -27.5t15 -54.5t4 -88v-25.5t-2 -27.5h324q33 0 55.5 -21.5t22.5 -54.5v-187q0 -63 -45.5 -130.5t-122 -128t-180 -106.5t-222.5 -65 q-51 -10 -91 -41.5t-40 -70.5q0 -35 17.5 -51.5t39 -31t40 -31.5t22.5 -52q4 -23 -2 -47q-4 -14 23.5 -23.5t67.5 -18.5t82 -22.5t64 -34.5q12 -10 19.5 -39.5t9.5 -64.5q2 -33 -6 -58.5t-29 -25.5h-985q-20 0 -28.5 25.5t-6.5 58.5q2 35 9.5 64.5t19.5 39.5q23 20 64 34 t80.5 23t68.5 18t25 24q-4 14 -4 25.5v21.5q2 35 21.5 52t42 31.5t39.5 31t17 51.5q0 39 -39.5 70.5t-93.5 41.5q-117 20 -220 66.5t-180 106t-122 127t-45 130.5zM154 1042q0 -20 23.5 -54t67.5 -70.5t106.5 -71.5t140.5 -60q-25 80 -44.5 175.5t-33.5 189.5h-260v-109z M1198 786q78 25 140.5 60t106.5 71.5t67.5 70.5t23.5 54v109h-262q-12 -94 -31.5 -189.5t-44.5 -175.5z" />
<glyph unicode="&#xf092;" horiz-adv-x="1536" d="M0 193v1150q0 39 15.5 75t41 61.5t60.5 41t76 15.5h1150q80 0 136.5 -56.5t56.5 -136.5v-1150q0 -41 -15.5 -76t-41 -60.5t-61.5 -41t-75 -15.5h-337v25q0 39 2 97t-3.5 115.5t-24.5 104.5t-65 66q188 20 290 110t102 287q0 66 -22.5 128t-67.5 114q6 23 8 45t2 45 q0 41 -9.5 91t-31.5 85h-12q-43 2 -79 -8.5t-68 -27.5t-62.5 -37.5t-65.5 -39.5q-33 4 -65.5 6t-65.5 2t-65.5 -2t-65.5 -6q-35 18 -65.5 39t-62.5 38t-67.5 27.5t-79.5 8.5h-12q-23 -35 -32 -85t-9 -91q0 -23 2 -45.5t8 -44.5q-45 -51 -66.5 -114t-21.5 -128 q0 -193 95.5 -283t281.5 -112q-39 -16 -59.5 -50t-32.5 -75q-27 -8 -49.5 -15.5t-50.5 -7.5q-55 0 -88 28.5t-59.5 62.5t-56.5 62.5t-79 28.5q-4 0 -20.5 -2t-16.5 -12q0 -23 19.5 -32t31.5 -19q39 -31 56.5 -71t39 -76.5t62.5 -62.5t127 -26q35 0 80 11q0 -10 -1 -18.5 t-1 -16.5q0 -29 2 -59.5t-2 -59.5h-317q-80 0 -136.5 56.5t-56.5 136.5z" />
<glyph unicode="&#xf093;" d="M0 39v614q0 16 11.5 27.5t27.5 11.5h229q16 0 27.5 -11t11.5 -28v-346h1229v346q0 16 11.5 27.5t27.5 11.5h229q16 0 27.5 -11t11.5 -28v-614q0 -39 -39 -39h-1765q-39 0 -39 39zM346 969.5q-6 15.5 16 38.5l504 505q23 23 55.5 23t55.5 -23l506 -505q23 -23 15.5 -38.5 t-38.5 -15.5h-307v-499q0 -33 -22.5 -55.5t-55.5 -22.5h-307q-33 0 -54.5 22.5t-21.5 55.5v499h-307q-33 0 -39 15.5z" />
<glyph unicode="&#xf094;" horiz-adv-x="1609" d="M2 514q-2 35 1 68.5t7 74.5q4 35 7 72t10 66q14 66 30.5 128t44.5 117q20 41 45 81t54 79q10 14 21 24.5t24 20.5q23 23 45 45.5t49 42.5t57.5 36.5t65.5 33.5q33 16 67.5 29.5t71.5 27.5q70 29 156 51l2 2q45 12 85 17.5t79 5.5q59 0 112.5 -9t106.5 -20q41 -8 85 -15 t93 -7h2q29 0 62.5 5t66.5 5q25 0 45.5 -6t32.5 -25q23 -31 26 -71.5t-2 -75.5q-4 -35 -8 -71t2 -72q4 -23 11.5 -39.5t15.5 -36.5q8 -18 11 -40t7 -42q18 -104 15.5 -195.5t-23 -170.5t-56.5 -148.5t-81 -132.5q-37 -49 -79 -97.5t-92 -91.5t-110.5 -77.5t-134.5 -59.5 q-76 -27 -158.5 -34t-158.5 -11h-31q-104 0 -194.5 16.5t-192.5 16.5h-4q-35 0 -77 -10.5t-83 -12.5h-2q-37 0 -65.5 17.5t-42.5 42.5q-20 35 -17.5 72.5t12.5 68.5t10.5 66.5t-5 75.5t-12.5 81t-9 82z" />
<glyph unicode="&#xf095;" horiz-adv-x="1597" d="M0 1169q0 55 14.5 114.5t43 114t68.5 98.5t93 69q12 -2 26.5 0t26.5 2q10 0 30 -1l40 -2t38.5 -4.5t27.5 -7.5q8 -6 15 -18t12 -26.5t9.5 -30t8.5 -25.5q6 -18 23.5 -65.5t35.5 -97.5t32.5 -93t14.5 -53q0 -37 -24.5 -68t-54 -57.5t-54.5 -50t-25 -45.5q0 -20 16.5 -49 t26.5 -46q84 -145 188.5 -248.5t252.5 -187.5q18 -10 45.5 -27.5t50.5 -17.5t52.5 32t60 70.5t62 70.5t58.5 32q10 0 51.5 -22.5t89.5 -50t93 -55.5t61 -36q16 -10 46 -25.5t40 -35.5q2 -6 2 -23q0 -16 -3 -36.5t-8 -43t-12 -43t-13 -35.5q-18 -39 -59.5 -71.5t-92.5 -55 t-104.5 -36t-92.5 -13.5q-80 0 -153.5 25.5t-145.5 54.5q-123 45 -232.5 118t-203.5 164t-175 196.5t-144 215.5q-25 41 -52.5 95.5t-51 112t-39 113.5t-15.5 105z" />
<glyph unicode="&#xf096;" d="M0 307v922q0 63 24.5 118.5t66.5 97.5t97.5 66.5t118.5 24.5h1075q63 0 118.5 -24.5t97.5 -66.5t67 -97.5t25 -118.5v-922q0 -63 -25 -118.5t-67 -97.5t-97 -66.5t-119 -24.5h-1075q-63 0 -118.5 24.5t-97.5 66.5t-66.5 97.5t-24.5 118.5zM193 307q0 -47 33.5 -80.5 t80.5 -33.5h1075q47 0 81 33.5t34 80.5v922q0 47 -34 80.5t-81 33.5h-1075q-47 0 -80.5 -33.5t-33.5 -80.5v-922z" />
<glyph unicode="&#xf097;" horiz-adv-x="1253" d="M0 84v1337q0 47 34 81t81 34h1024q47 0 80.5 -34t33.5 -81v-1337q0 -47 -33.5 -81t-80.5 -34t-80 33l-432 432l-432 -432q-33 -33 -80 -33t-81 34t-34 81zM158 186l469 471l469 -471v1194h-938v-1194z" />
<glyph unicode="&#xf098;" horiz-adv-x="1536" d="M0 193v1150q0 39 15.5 75t41 61.5t60.5 41t76 15.5h1150q80 0 136.5 -56.5t56.5 -136.5v-1150q0 -41 -15.5 -76t-41 -60.5t-61.5 -41t-75 -15.5h-1150q-80 0 -136.5 56.5t-56.5 136.5zM193 1040q2 -35 15 -76.5t30 -78.5q16 -37 33.5 -72t33.5 -63q74 -129 176.5 -241 t225.5 -190q31 -18 67.5 -36.5t75.5 -32.5q41 -16 83 -31.5t81 -21.5q63 -10 112.5 2t90.5 34q27 12 57.5 33.5t44.5 52.5q4 8 9 27t9 38t6.5 37.5t-2.5 29.5q-4 12 -24.5 22t-36.5 21q-43 25 -71.5 41t-67.5 38q-16 10 -36 23.5t-38 13.5q-23 0 -46.5 -27.5t-37.5 -43.5 q-12 -14 -36.5 -43t-47.5 -31q-14 -2 -32.5 10t-37.5 23q-106 59 -182 136t-135 177q-10 16 -21.5 37.5t-7.5 38.5q2 18 24.5 33.5t35.5 29.5q14 16 31.5 37t19.5 43q4 16 -5 38t-16 42q-16 43 -28.5 76t-26.5 76q-6 16 -12 40.5t-21 30.5q-8 4 -26.5 7t-39 4.5t-37.5 0 t-24 -1.5h-8q-33 -16 -62.5 -45.5t-51 -69.5t-34 -88t-9.5 -100z" />
<glyph unicode="&#xf099;" d="M0 399q0 20 13.5 33.5t33.5 13.5q14 0 31 -12q123 -109 287 -108q59 0 117.5 15t107.5 48q-29 16 -47.5 42t-18.5 58q0 23 8 39q-18 6 -44.5 20.5t-51 34t-41 43t-16.5 46.5q0 16 10 28.5t25 22.5q-41 25 -76 74t-35 98q0 33 33 43q-35 35 -55.5 81t-20.5 95 q0 23 9.5 41.5t37.5 18.5q18 0 84 -27t142.5 -60.5t146.5 -67.5t98 -48q25 -14 47.5 -31.5t44.5 -36.5q20 51 47 106.5t60 106.5t73 96t89 74q8 6 24 6q18 0 27 -8q16 6 41.5 13.5t42.5 7.5q29 0 43 -27q31 0 56.5 -15.5t25.5 -50.5q0 -31 -27 -53q96 -43 159.5 -125 t90.5 -182q6 -2 23 -2q47 0 88 16.5t57 16.5q18 0 31.5 -14.5t13.5 -32.5q0 -23 -19.5 -48.5t-33.5 -39.5q23 4 42 -7.5t19 -38.5q0 -29 -26.5 -50t-61.5 -37.5t-72.5 -25.5t-58.5 -11q-43 -139 -133 -246t-210 -178.5t-258 -109.5t-275 -38q-219 0 -415 93.5t-325 273.5 q-8 16 -8 26z" />
<glyph unicode="&#xf09a;" horiz-adv-x="790" d="M0 862v203q0 16 11.5 28.5t27.5 12.5h125v102q0 358 366 359q123 0 232 -31q33 -10 29 -43l-27 -199q-4 -16 -16 -26q-16 -10 -31 -6q-35 8 -72.5 12t-66.5 4q-53 0 -65.5 -16.5t-12.5 -67.5v-88h223q14 0 29 -14q10 -10 10 -29l-17 -205q0 -16 -11 -25.5t-27 -9.5h-207 v-784q0 -16 -11.5 -27.5t-27.5 -11.5h-258q-16 0 -27.5 11.5t-11.5 27.5v784h-125q-16 0 -27.5 11.5t-11.5 27.5z" />
<glyph unicode="&#xf09b;" horiz-adv-x="1847" d="M0 743q0 115 37 222.5t113 193.5l-3 4l3 2q-16 39 -21.5 81t-5.5 85q0 25 2 56.5t8 65.5t15.5 63.5t23.5 50.5h8q61 0 110.5 -12.5t94.5 -35t87 -52t91 -60.5q86 25 178.5 33t182.5 8t182 -8t180 -33q47 31 90 60.5t87 52t93.5 35t110.5 12.5h10q12 -20 21.5 -50 t15.5 -64t9 -65.5t3 -56.5q0 -43 -6 -85t-20 -81v-2l-2 -4q76 -86 112.5 -193.5t36.5 -222.5q0 -233 -66.5 -383.5t-188.5 -236.5t-292 -120t-376 -34q-207 0 -378 34t-292 120t-187.5 236.5t-66.5 383.5zM250 483q0 -145 64.5 -224t165 -116t219 -43t227.5 -6q74 0 152.5 2 t153.5 12.5t142.5 34t117.5 67.5t80 111.5t30 165.5q0 84 -27 147.5t-75 106.5t-114.5 64.5t-146.5 21.5q-78 0 -156.5 -7t-156.5 -7t-157 7t-157 7q-162 0 -262 -87t-100 -257zM494 524q0 66 26.5 113t65.5 47t66.5 -47t27.5 -113t-27.5 -112.5t-66.5 -46.5t-65.5 46.5 t-26.5 112.5zM795 258q-6 16 12 25q16 6 24 -13q27 -76 93 -75q31 0 56.5 20.5t35.5 54.5q8 20 26 13q16 -6 13 -25q-16 -47 -51 -75.5t-80 -28.5q-43 0 -78 28.5t-51 75.5zM864 369q0 -12 17.5 -21.5t42.5 -9.5t42 9.5t17 21.5t-17.5 21t-41.5 9q-25 0 -42.5 -9t-17.5 -21z M1167 524q0 -66 28 -112.5t67 -46.5t65.5 46.5t26.5 112.5t-27 113t-65 47q-39 0 -67 -47t-28 -113z" />
<glyph unicode="&#xf09c;" horiz-adv-x="1880" d="M0 117v626q0 49 35 84t82 35h665v156q0 113 43 213t118 175t175 118t213 43t213.5 -43t175 -118t117.5 -175.5t43 -212.5v-152q0 -33 -22.5 -55.5t-55.5 -22.5h-80q-33 0 -55 23t-22 55v152q0 66 -25 123t-67 99t-99 66.5t-123 24.5t-122 -24.5t-99 -66.5t-67.5 -99.5 t-24.5 -122.5v-156h119q47 0 81.5 -34.5t34.5 -84.5v-626q0 -47 -34.5 -82t-81.5 -35h-1020q-47 0 -82 35t-35 82zM494 164h266l-66 285q29 18 47.5 48.5t18.5 65.5q0 55 -39 95t-94 40t-94 -40t-39 -95q0 -35 18 -65.5t47 -46.5z" />
<glyph unicode="&#xf09d;" d="M0 154v1228q0 63 45 108.5t109 45.5h1536q63 0 108 -45t45 -109v-1228q0 -63 -45 -108.5t-108 -45.5h-1536q-63 0 -108.5 45t-45.5 109zM154 154h1536v575h-1536v-575zM154 1114h1536v268h-1536v-268zM260 250v115h307v-115h-307zM676 250v115h446v-115h-446z" />
<glyph unicode="&#xf09e;" horiz-adv-x="1566" d="M0 236q0 49 18.5 91t50 74.5t75 51t92.5 18.5t91 -18.5t74.5 -51t51 -74.5t18.5 -91t-18.5 -92.5t-51 -75t-74.5 -50t-91 -18.5t-92.5 18.5t-75 50t-50 74.5t-18.5 93zM0 819v158q0 35 25 57q23 23 53 23q2 0 3 -1t3 -1q193 -14 362.5 -95t301 -212.5t212 -301.5 t95.5 -362q4 -35 -21 -59q-23 -25 -57 -25h-158q-29 0 -51.5 20.5t-26.5 51.5q-12 133 -68.5 249.5t-145.5 205.5t-205.5 145.5t-249.5 68.5q-31 4 -51.5 27t-20.5 51zM0 1331v158q0 33 25 55q23 23 53 23h4q301 -16 565 -137t463 -320t319.5 -463t137.5 -565q4 -31 -23 -57 q-23 -25 -55 -25h-158q-31 0 -53.5 21.5t-24.5 52.5q-14 238 -110 446.5t-255 367.5t-368 255t-446 110q-31 2 -52.5 24.5t-21.5 53.5z" />
<glyph unicode="&#xf0a0;" d="M0 193v382q0 23 6 45.5t12 45.5l238 727q20 63 75.5 103t121.5 40h938q66 0 121 -40t75 -103l238 -727q6 -23 12 -45.5t6 -45.5v-382q0 -41 -15.5 -76t-41 -60.5t-61 -41t-74.5 -15.5h-1458q-80 0 -136.5 56.5t-56.5 136.5zM154 193q0 -16 11 -27.5t28 -11.5h1458 q16 0 27.5 11t11.5 28v382q0 16 -11.5 27.5t-27.5 11.5h-1458q-16 0 -27.5 -11t-11.5 -28v-382zM213 768h1417l-188 578q-4 16 -19.5 26t-31.5 10h-938q-16 0 -31.5 -10t-20.5 -26zM1057 385q0 39 27.5 66.5t68.5 27.5q39 0 66.5 -27.5t27.5 -66.5q0 -41 -27.5 -68.5 t-66.5 -27.5q-41 0 -68.5 27.5t-27.5 68.5zM1364 385q0 39 27.5 66.5t68.5 27.5q39 0 66.5 -27.5t27.5 -66.5q0 -41 -27.5 -68.5t-66.5 -27.5q-41 0 -68.5 27.5t-27.5 68.5z" />
<glyph unicode="&#xf0a1;" d="M0 754v229q0 63 45 108.5t109 45.5h499q115 0 245 33.5t255 90t235.5 128t186.5 147.5q63 0 108.5 -45t45.5 -109v-368q49 -12 81.5 -52.5t32.5 -93.5t-32.5 -93t-81.5 -52v-369q0 -63 -45.5 -108t-108.5 -45q-68 68 -164 132t-206.5 117.5t-227.5 91.5t-227 50 q-43 -12 -70 -40t-37 -62.5t-2 -70.5t37 -65q-25 -41 -23 -75.5t20.5 -66.5t49.5 -61.5t66 -58.5q-20 -43 -69.5 -65.5t-106 -25.5t-110.5 10.5t-85 43.5q-18 61 -40 125t-36 130.5t-14 138t24 151.5h-200q-63 0 -108.5 45t-45.5 109zM807 741q102 -16 206.5 -49t205 -78 t191.5 -99t165 -112v930q-76 -59 -166 -113.5t-190.5 -98.5t-205 -77.5t-206.5 -48.5v-254z" />
<glyph unicode="&#xf0a2;" horiz-adv-x="1759" d="M0 317q104 78 172 172.5t109 201t60 224t28 240.5q6 84 56 159t126 131t163 89t167 33q74 0 163 -33t165.5 -88t129 -129t52.5 -158q6 -121 27.5 -239.5t63.5 -227t109.5 -204t167.5 -171.5q-4 -70 -56 -114.5t-120 -44.5h-469q-18 -82 -82.5 -135.5t-150.5 -53.5 t-151.5 53.5t-84.5 135.5h-469q-68 0 -120 45t-56 114zM238 317h1284q-78 86 -129.5 183.5t-84 202t-50 214t-25.5 222.5q-4 55 -41 104t-89 86t-111.5 57.5t-110.5 20.5q-47 0 -107.5 -21.5t-114 -56.5t-91.5 -83t-40 -99q-6 -111 -23.5 -222.5t-51 -218t-87 -205 t-128.5 -184.5zM713 209q0 -70 49 -119t119 -49q18 0 18 20t-18 21q-53 0 -91 37t-38 90q0 20 -19 20q-20 0 -20 -20z" />
<glyph unicode="&#xf0a3;" horiz-adv-x="1597" d="M0 573q0 33 23 56l143 139l-143 139q-23 23 -23 56q0 25 16.5 45t40.5 26l195 49q-6 18 -15.5 48t-18.5 61t-16 59.5t-7 46.5q0 31 21.5 52.5t51.5 21.5q18 0 47 -7t60 -16.5t60.5 -18.5t47.5 -15l49 194q6 25 27 41.5t45 16.5q35 0 53 -23l142 -143l139 143q23 23 53 23 q27 0 47.5 -15.5t26.5 -42.5l49 -194q18 6 48 15t60.5 18.5t59.5 16.5t47 7q29 0 51.5 -21.5t22.5 -52.5q0 -18 -7 -46.5t-16.5 -59.5t-18.5 -60.5t-15 -48.5l194 -49q25 -6 41 -26.5t16 -44.5q0 -33 -22 -56l-145 -139l145 -139q23 -23 22 -56q0 -25 -16 -45t-41 -26 l-194 -49q6 -18 15 -48t18.5 -61t16.5 -59.5t7 -46.5q0 -29 -21.5 -51.5t-52.5 -22.5q-18 0 -47 7t-59.5 16.5t-60 18.5t-48.5 15l-49 -194q-6 -25 -26.5 -41.5t-45.5 -16.5q-33 0 -55 23l-139 143l-142 -143q-18 -23 -53 -23q-25 0 -45 16.5t-27 41.5l-49 194 q-18 -6 -47.5 -15t-60.5 -18.5t-59.5 -16.5t-47.5 -7q-31 0 -52 22.5t-21 51.5q0 18 7 46.5t16 59.5t18.5 60.5t15.5 48.5l-195 49q-25 6 -41 26.5t-16 44.5z" />
<glyph unicode="&#xf0a4;" horiz-adv-x="1916" d="M0 193v643q0 49 35 83.5t84 34.5h348q27 14 42 30.5t34 39.5q16 20 33.5 38.5t33.5 37.5q35 35 77 68.5t65 74.5q25 43 29.5 99.5t17 106.5t44 84t109.5 34q61 0 111.5 -25.5t85.5 -68.5t54.5 -98.5t19.5 -112.5q0 -53 -15.5 -104.5t-38.5 -98.5h134l376 -2 q49 0 93.5 -17.5t76 -49.5t50 -75t18.5 -94q0 -49 -18.5 -92t-50 -74.5t-75.5 -49t-94 -17.5h-200q-10 -59 -39 -107q10 -59 -7.5 -117.5t-56.5 -103.5q0 -76 -28.5 -131t-75.5 -90t-109.5 -52.5t-132.5 -17.5q-78 0 -148.5 16.5t-136 36t-128 36t-123.5 16.5h-375 q-49 0 -84 34.5t-35 84.5zM233 276q0 -35 22.5 -57t57.5 -22q33 0 56.5 22.5t23.5 56.5q0 33 -23.5 56.5t-56.5 23.5q-35 0 -57.5 -23.5t-22.5 -56.5zM489 193q70 0 136.5 -16.5t133 -35t133 -35t138.5 -16.5q43 0 84 8t72 27.5t50 52.5t19 82q0 14 -1 26.5t-3 24.5 q35 16 53.5 53t18.5 74q0 39 -20 68q59 49 59 123q0 23 -12.5 43.5t-26.5 34.5q90 0 178 1t178 1q51 0 84 30.5t33 81.5q0 53 -32.5 85t-84.5 32q-172 0 -340 1t-338 1q0 41 16.5 78t35 74.5t34 78.5t15.5 91q0 33 -10.5 65.5t-29 59t-46 44t-64.5 17.5h-11t-11 -2 q-8 -4 -9 -8t-3 -13q-12 -59 -22.5 -123.5t-39.5 -117.5q-29 -51 -73 -88t-85 -78q-29 -31 -49 -56.5t-41.5 -48t-48.5 -42t-65 -35.5h-5v-643z" />
<glyph unicode="&#xf0a5;" horiz-adv-x="1916" d="M0 821q0 51 18.5 94t50 75t75.5 49.5t94 17.5l376 2h134q-23 47 -38.5 98t-15.5 105q0 57 19.5 112.5t54.5 98.5t85 68.5t112 25.5q78 0 109.5 -34t43.5 -84t17.5 -106.5t29.5 -99.5q23 -41 65 -74.5t77 -68.5q16 -18 33.5 -37t33.5 -39q18 -23 33.5 -39t42.5 -31h348 q49 0 84 -34.5t35 -83.5v-643q0 -49 -35 -84t-84 -35h-375q-61 0 -123.5 -16.5t-128 -36t-136 -36t-148.5 -16.5q-70 0 -132.5 17.5t-109.5 52.5t-75.5 90t-28.5 131q-39 45 -56.5 103.5t-7.5 117.5q-29 47 -39 107h-200q-49 0 -93.5 17.5t-76 49t-50 74.5t-18.5 92z M121 821q0 -51 32.5 -81.5t84.5 -30.5q90 0 178 -1t178 -1q-14 -14 -26.5 -35t-12.5 -43q0 -74 59 -123q-20 -29 -20 -68q0 -37 18.5 -73.5t53.5 -53.5q-2 -12 -3 -24.5t-1 -26.5q0 -49 19 -82t50 -52.5t72 -27.5t84 -8q70 0 137.5 16.5t134 35t133 35t135.5 16.5v643h-4 q-41 16 -66.5 35.5t-47 42t-42 48t-48.5 56.5q-41 41 -85 78t-73 88q-29 53 -39 117.5t-23 123.5q-2 8 -3 12.5t-9 8.5q-4 2 -11 2h-11q-37 0 -65 -17.5t-46 -44t-28.5 -59.5t-10.5 -65q0 -49 15.5 -90.5t34 -79t34.5 -74.5t16 -78q-170 0 -337.5 -1t-339.5 -1 q-51 0 -84 -32t-33 -85zM1524 276q0 -35 23.5 -57t56.5 -22q35 0 57 22.5t22 56.5q0 33 -22.5 56.5t-56.5 23.5q-33 0 -56.5 -23.5t-23.5 -56.5z" />
<glyph unicode="&#xf0a6;" horiz-adv-x="1597" d="M0 602q0 61 25.5 111.5t68.5 85.5t98.5 54t112.5 19q53 0 104.5 -15t98.5 -38v133l2 377q0 49 17.5 93t49 76t74.5 50.5t94 18.5q49 0 92.5 -18.5t75 -50.5t49 -76t17.5 -93v-201q59 -10 106 -38q59 10 118 -7.5t104 -56.5q76 0 131 -28.5t90 -76t52 -109.5t17 -132 q0 -78 -16 -148.5t-35.5 -136t-36 -128t-16.5 -124.5v-374q0 -49 -35 -84t-84 -35h-643q-49 0 -84 34.5t-35 84.5v348q-14 27 -30.5 42t-38.5 34q-20 16 -39 33.5t-37 33.5q-35 35 -68.5 77t-74.5 64q-43 25 -99.5 30t-106.5 17.5t-84 44t-34 109.5zM120 591q-1 -7 1 -11 q4 -8 8 -9.5t12 -3.5q59 -12 124 -22t118 -39q51 -29 88 -73t78 -85q31 -29 56.5 -49t48 -41.5t42 -48.5t35.5 -66v-4h643q0 70 16.5 136.5t35 133t35 133t16.5 138.5q0 43 -8.5 84t-28 71.5t-52 50t-81.5 19.5q-14 0 -26.5 -1t-25.5 -3q-16 35 -53 53.5t-74 18.5 q-39 0 -67 -21q-49 59 -123 60q-23 0 -43.5 -12.5t-34.5 -26.5q0 90 -1 178t-1 178q0 51 -30.5 84t-82.5 33q-53 0 -84.5 -33t-31.5 -84q0 -172 -1 -340t-1 -338q-41 0 -78 16.5t-75 35t-79 34t-90 15.5q-33 0 -65.5 -10.5t-59 -29t-43 -46t-16.5 -64.5q0 -4 -1 -11z M1210 -37q0 -35 23.5 -57.5t56.5 -22.5q35 0 57.5 22.5t22.5 57.5q0 33 -22.5 56.5t-57.5 23.5q-33 0 -56.5 -23.5t-23.5 -56.5z" />
<glyph unicode="&#xf0a7;" horiz-adv-x="1597" d="M0 584q0 78 34 109.5t84 44t106.5 17.5t99.5 29q41 23 74.5 65t68.5 77q18 16 36.5 33.5t39.5 33.5q23 18 39 33.5t30 42.5v348q0 49 35 84t84 35h643q49 0 84 -35t35 -84v-375q0 -61 16.5 -123.5t36 -128t35.5 -136t16 -148.5q0 -70 -17 -132.5t-52 -109.5t-90.5 -75.5 t-130.5 -28.5q-45 -39 -103.5 -56.5t-118.5 -7.5q-47 -29 -106 -39v-200q0 -49 -17.5 -93.5t-49 -76t-74.5 -50t-93 -18.5q-51 0 -94 18.5t-74.5 50t-49 75.5t-17.5 94l-2 376v134q-47 -23 -98.5 -38.5t-104.5 -15.5q-57 0 -112.5 19.5t-98.5 54.5t-68.5 85t-25.5 112z M120 595q1 -7 1 -11q0 -37 16.5 -64.5t43 -46t59 -29t65.5 -10.5q49 0 90 15.5t79 34t75 35t78 16.5q0 -170 1 -338t1 -340q0 -51 31.5 -84t84.5 -33q51 0 82 32.5t31 84.5q0 90 1 178t1 178q14 -14 34.5 -26.5t43.5 -12.5q74 0 123 59q29 -20 67 -20q37 0 74 18.5t53 53.5 q12 -2 24.5 -3t27.5 -1q49 0 81.5 19t52 50t28 72t8.5 84q0 70 -16.5 137.5t-35 134t-35 133t-16.5 136.5h-643v-5q-16 -41 -35.5 -66.5t-42 -47t-48 -42t-56.5 -48.5q-41 -41 -78 -85t-88 -73q-53 -29 -117.5 -39t-124.5 -23l-12 -3t-8 -9q-2 -4 -1 -11zM1210 1223 q0 -33 23.5 -56.5t56.5 -23.5q35 0 57.5 23.5t22.5 56.5q0 35 -22.5 57.5t-57.5 22.5q-33 0 -56.5 -23t-23.5 -57z" />
<glyph unicode="&#xf0a8;" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM240 768q0 -29 20 -49l490 -490q20 -20 48.5 -20t49.5 20l74 74q20 20 20 48 t-20 50l-246 246h612q29 0 49.5 19.5t20.5 48.5v104q0 29 -20.5 49.5t-49.5 20.5h-612l246 246q20 20 20 48.5t-20 49.5l-74 74q-20 20 -48 20t-50 -20l-490 -490q-20 -20 -20 -49z" />
<glyph unicode="&#xf0a9;" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM240 717q0 -29 20.5 -49.5t48.5 -20.5h613l-246 -246q-20 -20 -20.5 -48.5 t20.5 -49.5l74 -74q20 -20 47.5 -20t50.5 20l489 490q20 20 20.5 49t-20.5 49l-489 490q-20 20 -49 20t-49 -20l-74 -74q-20 -20 -20.5 -48t20.5 -50l246 -246h-613q-29 0 -49 -19.5t-20 -48.5v-104z" />
<glyph unicode="&#xf0aa;" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM240 768q0 -29 20 -49l74 -74q20 -20 48 -20t50 20l246 246v-612q0 -29 19.5 -49.5 t47.5 -20.5h105q29 0 49.5 20.5t20.5 49.5v612l245 -246q20 -20 49 -20t50 20l73 74q20 20 20.5 48t-20.5 50l-489 490q-20 20 -49 20t-49 -20l-490 -490q-20 -20 -20 -49z" />
<glyph unicode="&#xf0ab;" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5t-311.5 62.5t-254 171t-171 254t-62.5 311.5zM240 769q0 -28 20 -50l490 -490q20 -20 48.5 -20t49.5 20l489 490q20 20 20.5 49 t-20.5 49l-73 74q-20 20 -48 20t-51 -20l-245 -246v612q0 29 -19.5 49.5t-48.5 20.5h-104q-29 0 -49.5 -20.5t-20.5 -49.5v-612l-246 246q-20 20 -49 20t-49 -20l-74 -74q-20 -20 -20 -48z" />
<glyph unicode="&#xf0ac;" horiz-adv-x="1597" d="M0 768q0 162 63.5 307.5t173 255t254 173t308.5 63.5q162 0 307 -63.5t254.5 -173t173 -255t63.5 -307.5q0 -164 -63.5 -308.5t-173 -254t-254.5 -173t-307 -63.5q-164 0 -308.5 63.5t-254 173t-173 254t-63.5 308.5zM186 1141h4q4 0 12.5 3t8.5 -9q0 -4 -3 -10.5 t11 -6.5q4 0 5 6t3 0l4 -16v-2q0 -4 -5 -6t-3 -6q4 -4 9.5 -4h9.5l4 2l2 2q0 -6 6 -8.5t10 -2.5h2q0 -2 -4 -4t0 -6l23 -4v-2l14 -29q0 -4 -3 -10t-7 -6t-3 3t1 7t-2 7t-15 3q-2 0 -5 -1t-1 -5l12 -26l3 -2l2 -2q-10 0 -13.5 -24t-3.5 -34l4 -18l2 -6v-4l-4 -19l29 -43h6 q2 -4 -2 -8t-2 -8l8 -8q0 -10 4 -14.5t13 -12.5q-2 -12 20.5 -22.5t28.5 -14.5q8 -23 20 -45.5t29 -38.5l2 -14q0 -2 -5 -4t-1 -6l16 -7q4 4 10.5 -8t10.5 -16l-2 -6l12 -17l6 -2l4 8q-4 10 -14 26.5t-20.5 32t-17.5 28t-7 14.5t-2 16t-4 17q6 -4 15 -7.5t15 -7.5 q4 -25 19.5 -40t27.5 -34q-4 -4 0 -5t7 -1q4 -4 4 -14q14 -16 36.5 -44t22.5 -44v-2l-4 -14q6 -16 20.5 -25.5t28.5 -15.5h4q20 -10 41 -21.5t43 -19.5l23 14q8 -2 17 -10t20.5 -18.5t27 -19.5t35.5 -11q14 10 14 -5v-4l25 -30l4 -15q10 -6 20.5 -15t16.5 -20h4 q10 0 16.5 -9t16.5 -9q6 0 6 6q0 14 2 18.5t5 5.5t6 1t3 4l-4 6q-4 0 -6 -5t-6 -1l-14 -8l-17 4l-24 41l8 57q2 4 -7.5 9t-5.5 10q-14 8 -34 8q-4 0 -20.5 -3t-16.5 3t3 16t7 21.5t6 19.5t2 10l13 27l-3 4l-16 4q-4 0 -13 -6t-17.5 -14.5t-14.5 -16.5t-6 -14l-45 -10 q-14 0 -23 12q-4 16 -17 35.5t-13 34.5q0 23 8 43t-6 43q2 0 5 2t1 6l12 14l2 2l2 -2q14 10 37 7t29 14l16 -13q4 -2 9 4.5t5 10.5l-8 4l39 10l2 -6l19 2l22 -14q4 0 8 5t9 1l20 -21q-4 -8 -1 -12t3 -8q0 -6 10.5 -27.5t18.5 -21.5q10 0 9 13t-1 17q0 20 -8 39t-15 39v6 q0 10 12.5 17.5t12.5 9.5q10 8 22.5 16t18.5 19l8 16v10h6t4 6q0 2 -3 3.5t-7 5.5q-4 2 -8 6l6 4q4 6 6 15t-2 16l15 8q-2 -6 4 -8t10 0l10 16q-4 10 -5 7t5 7q10 4 19.5 9.5t19.5 5.5q2 -2 4 -2q6 0 6 2q0 10 -4 12l12 25q14 0 21 12l18 2q6 2 6 8v2l35 10l4 11l-10 14 q2 0 2 4t-4 6t-7 4t-7 4l-4 -2l4 2h6h13t9 9q0 12 -14 12q-18 0 -41.5 -8.5t-32.5 -28.5l-14 -8l18 18l3 6q0 4 -9.5 5.5t-5.5 1.5q18 0 27.5 4t15.5 9t12.5 10t18.5 9q23 -4 44 -2t44 2q6 4 12 8.5t8 10.5l23 4q4 -4 12 2t8 10q0 10 -11 13t-11 14q0 2 1 6t-3 4 q-6 0 -19.5 -6t-19.5 -10q-4 -2 -5 1t-1 7l2 -2l8 4l23 8l4 4q0 6 -7.5 8t-11.5 2t-12 -3t-8 3l2 4q-12 10 -21.5 22.5t-9.5 16.5t1 8.5t-5 4.5q-4 0 -7 -1t-3 5q0 4 -5 17t-14 13l-8 -8q0 -6 -6 -9t-6 -7h-4l-21 -12q-2 4 -5 2t-7 -2h-2l-2 -2q8 0 7 9t-7 9l-16 -4 q-4 0 -4.5 1t2 4t4.5 7t0 8t-6.5 1t-4.5 1h6l5 5q2 2 -1.5 7t-5.5 7l-22 4l-14 12q-2 -2 -7.5 3t-9.5 7l-16 -6l-39 9q-4 0 -8 -2.5t-4 -6.5t4 -6t4 -6t3 -21.5t-5 -13.5l-10 -14q2 -4 7 -7t10 -7.5t9 -10.5t2 -18l-45 -31v-4q0 -8 4 -15t8 -18q10 -4 9.5 -7t-7 -6t-12.5 -6 t-6 -5t-4 -2h-8h-4q0 2 2 3t2 5l-19 12v-2l-8 16q4 10 1 14.5t-3 10.5q0 16 -14.5 16t-30.5 -4q4 2 -1 6.5t-7 4.5q-16 0 -38 14t-36 14q-6 0 -14 -2t-15 -4q4 2 5 10l-13 23l-2 2q-6 0 -14 -5t-8 9q0 2 2 4t0 4q-2 12 5 20.5t11 18.5q4 4 4 8t4 4q8 0 15.5 4.5t17.5 6.5 l2 6q0 4 -21.5 7t-21.5 7l2 2q20 -6 30.5 -7t17.5 2t16.5 8t29.5 14q0 4 -21.5 8t-27.5 8h12q4 0 10.5 -2t10.5 -4q0 -4 6 -5t10 -1l15 10v6l-4 6l22 4q-2 2 1 4t5 2q6 0 12.5 -6t8.5 -6l20 8q-2 2 5.5 3t4.5 6l-14 16q-2 0 -3 3t1 3q10 0 6 10q-8 4 -17 9.5t-20 5.5 q-4 0 -9 -2t-5 -7q0 -4 5 -4t7 -4q4 -4 -2 -4t-6 -2q-8 0 -15 -12t-18 -17q-4 0 -3 2.5t-1 4.5q-2 4 -7 5t-5 5t5 13t-13 9q-8 0 -11.5 -6t-7.5 -12l-22 25l-17 2q0 8 3.5 14t-9.5 16q-6 4 -11 7.5t-11 3.5q-2 0 -9.5 -4.5t-13.5 -8.5t-6 -8t10 -4h-2q-6 0 -6 -8 q0 -2 9.5 -5t13.5 -3q4 2 6 -1.5t6 -3.5l8 3v-5q-2 -2 -2 -4l2 -8l-20 -10q-2 -2 -4 -2t-5 -2q0 -6 5.5 -12.5t-11.5 -6.5l-6 4q0 8 -16.5 13.5t-40 7.5t-47 3t-35.5 1l-33 -10l8 -19q-4 0 -5 -3t3 -5q-4 4 -15 14.5t-15 10.5l-17 4q-35 -2 -78 -33t-84 -72t-75.5 -84 t-53.5 -71zM471 674h2h-2zM487 1413q14 2 25.5 8t24.5 6l6 -4q6 -2 11 -2t9 -4q8 2 17 -2l6 4v8l-2 5l6 -2q6 0 12 10l-2 4q-4 2 -10 4t-10 2t-16.5 -5t-28 -11.5t-29.5 -12.5t-19 -8zM918 86q0 -4 3 -9t3 -9q0 -5 -2 -7q115 20 217 74.5t182 140.5h-2q-8 -4 -14 0l-5 -4 l-12 4h-4l-4 -8l2 8q-6 8 -14 15l-4 2q-4 0 -4 -8q2 16 -8.5 27.5t-26.5 11.5q0 -2 -2 -2h-4l-5 4h7l4 12l-11 8l-2 -2q-14 2 -20 16l-4 2l-2 -2l-4 -2q-12 -4 -21 -8q-12 4 -18 10l-27 -2q0 6 -4 12.5t-12 6.5q-10 0 -20.5 -2t-14.5 -13q0 -4 2 -8t4 -6v-8l-2 -6l-4 -2h-2 l-6 16l6 10q-2 4 -2 10.5t-2 10.5l-2 4h-6l-15 -10h-8l-4 -4q-2 -2 -2 -4t-2 -3l-2 3h-8q-8 -8 -9 -19l3 -4l-9 -6l-2 -4l-6 -4q0 -2 -1 -2t-1 -2v-2v-9l-2 -2v4l-2 2q-2 12 -23 21h-6v-4q2 -6 8.5 -10.5t10.5 -8.5q-2 2 -5 1t-3 -3v-4l14 -20v-39l4 -10q-4 -16 -16 -27v2 l-4 -2l-3 -2l-2 -10l2 -2v-2l-4 4l-2 -13l-12 -4q-6 -4 -5 -11t-5 -11l2 -4l-6 -6q0 -4 -1 -6.5t-1 -6.5l2 -14l6 -4l4 4l2 6l2 -12q0 -4 -4 -8q-6 -4 -12 -9.5t-6 -15.5z" />
<glyph unicode="&#xf0ad;" horiz-adv-x="1593" d="M8 242q0 33 12.5 62.5t34.5 51.5l609 609q-16 66 -17 122q0 98 38 186.5t102.5 153t151.5 102.5t185 38q94 0 181.5 -36t154.5 -101l-442 -162l-43 -236l184 -153l443 159q-10 -92 -50.5 -171t-104 -137t-145 -91t-174.5 -33q-61 0 -127 17l-606 -607q-47 -47 -112 -47 q-68 0 -115 47q-23 23 -50.5 47.5t-52 52t-41 58.5t-16.5 68zM203 242q0 -33 22.5 -56.5t57.5 -23.5q33 0 56 23.5t23 56.5q0 35 -23.5 57.5t-55.5 22.5q-35 0 -57.5 -23t-22.5 -57z" />
<glyph unicode="&#xf0ae;" d="M0 76v217q0 31 22.5 53.5t53.5 22.5h1689q33 0 55.5 -22.5t22.5 -53.5v-217q0 -31 -22.5 -53.5t-55.5 -22.5h-1689q-31 0 -53.5 22.5t-22.5 53.5zM0 662v215q0 31 22.5 53t53.5 22h1689q33 0 55.5 -22.5t22.5 -52.5v-215q0 -33 -22.5 -55.5t-55.5 -22.5h-1689 q-31 0 -53.5 22.5t-22.5 55.5zM0 1243v217q0 31 22.5 53.5t53.5 22.5h1689q33 0 55.5 -22.5t22.5 -53.5v-217q0 -31 -22.5 -53.5t-55.5 -22.5h-1689q-31 0 -53.5 22.5t-22.5 53.5zM752 692h999v154h-999v-154zM1059 109h692v153h-692v-153zM1366 1274h385v153h-385v-153z " />
<glyph unicode="&#xf0b0;" horiz-adv-x="1566" d="M0 1458q0 33 22.5 55.5t55.5 22.5h1411q33 0 55.5 -22.5t22.5 -55.5t-23 -55l-565 -565v-791q0 -33 -22.5 -55.5t-55.5 -22.5t-55 23l-236 235q-23 23 -22 56v555l-565 565q-23 23 -23 55z" />
<glyph unicode="&#xf0b1;" d="M0 115v512h713q-2 -6 -2 -19v-153q0 -55 38.5 -95.5t96.5 -40.5h153q55 0 94.5 40t39.5 96v153q0 12 -3 19h713v-512q0 -47 -33.5 -81t-80.5 -34h-1614q-47 0 -81 34t-34 81zM0 743v371q0 47 34 81t81 34h424v231q0 31 21.5 53.5t53.5 22.5h615q33 0 55.5 -22.5 t22.5 -53.5v-231h422q47 0 80.5 -34t33.5 -81v-371h-1843zM692 1229h461v153h-461v-153zM825 455v153q0 18 21 19h153q18 0 19 -19v-153q0 -18 -19 -19h-153q-20 0 -21 19z" />
<glyph unicode="&#xf0b2;" horiz-adv-x="1536" d="M0 80v477q0 51 24.5 61.5t59.5 -24.5l162 -162l340 338l-338 338l-164 -164q-35 -35 -59.5 -25.5t-24.5 60.5v477q0 31 23 57q27 23 57 23h477q51 0 61.5 -24.5t-24.5 -59.5l-160 -158l338 -338l332 334l-162 162q-35 35 -24.5 59.5t61.5 24.5h477q33 0 55 -23 q25 -25 25 -57v-477q0 -51 -24.5 -61.5t-59.5 24.5l-162 162l-334 -334l338 -336l158 160q35 35 59.5 24.5t24.5 -61.5v-477q0 -35 -25 -55q-23 -25 -55 -25h-477q-51 0 -61.5 24.5t24.5 59.5l166 166l-336 336l-340 -340l162 -162q35 -35 24.5 -59.5t-61.5 -24.5h-477 q-31 0 -55 25q-25 20 -25 55z" />
<glyph unicode="&#xf0c0;" horiz-adv-x="1880" d="M0 852v152q0 18 1 47.5t10 56.5t29.5 46.5t57.5 19.5q-45 29 -71.5 75.5t-26.5 104.5q0 43 16.5 82t46 68.5t68.5 46t82 16.5q45 0 84 -16.5t67.5 -46t46 -68.5t17.5 -82q0 -57 -27.5 -104t-72.5 -76q37 0 57.5 -19.5t29.5 -46.5t11 -56.5t2 -47.5v-152 q-14 -8 -23.5 -18.5t-27.5 -10.5h-328q-16 0 -26.5 10.5t-22.5 18.5zM158 57v387q0 78 45 138.5t98 109.5q10 10 25.5 21.5t33.5 15.5q18 6 41 7t45 5q61 10 130 19.5t135 19.5q-90 57 -144.5 151.5t-54.5 207.5q0 88 34 166.5t92 136t136 91.5t166 34t166 -34t136 -91.5 t92 -136t34 -166.5q0 -113 -54 -207t-145 -152q66 -10 134.5 -19t130.5 -20q23 -4 45 -5t41 -7q18 -4 33.5 -15.5t27.5 -21.5q66 -59 103.5 -116.5t37.5 -131.5v-387q-12 -6 -20 -13t-18.5 -14t-23.5 -14.5t-36 -15.5h-1368q-35 0 -54.5 22.5t-43.5 34.5zM1452 852v152 q0 18 2 47.5t11.5 56.5t30 46.5t56.5 19.5q-45 29 -72.5 75.5t-27.5 104.5q0 43 16.5 82t46 68.5t68.5 46t84 16.5q43 0 82 -16.5t68.5 -46t46 -68.5t16.5 -82q0 -57 -26.5 -104t-71.5 -76q37 0 56.5 -19.5t28.5 -46.5t11 -56.5t2 -47.5v-152q-12 -8 -22.5 -18.5 t-26.5 -10.5h-328q-18 0 -27.5 10.5t-23.5 18.5z" />
<glyph unicode="&#xf0c1;" horiz-adv-x="1597" d="M0 1137q0 88 34 166.5t92 137t136 92.5t168 34q86 0 166 -33t139 -92q8 -8 21.5 -20.5t26 -25t21.5 -25.5t9 -25q0 -18 -12 -31q-6 -8 -25 -12q-47 -10 -88 -22.5t-86 -31.5q-4 -4 -16 -4t-25.5 10.5t-31 21.5t-42 21.5t-57.5 10.5q-35 0 -66.5 -13.5t-54 -37t-36 -54 t-13.5 -67.5q0 -41 17.5 -75t43 -63.5t56.5 -56.5t57 -53l180 -178q23 -25 54.5 -37t66.5 -12q43 0 73 16t46 16q12 0 39 -21.5t55.5 -49t50 -55t21.5 -42.5q0 -29 -36 -51t-83 -38.5t-94 -26t-72 -9.5q-86 0 -164.5 33t-140.5 92l-303 305q-61 59 -94 139.5t-33 166.5z M578 1010q0 29 35.5 51t82.5 38.5t94 26t72 9.5q86 0 166 -33t139 -92l303 -305q61 -59 94 -139.5t33 -166.5q0 -90 -33.5 -167.5t-92 -136t-137.5 -92.5t-167 -34q-86 0 -165.5 34t-139.5 93q-8 8 -21.5 19.5t-25.5 25t-21.5 26.5t-9.5 26q0 18 13 28q6 8 24 12 q47 10 88 22.5t86 33.5q12 4 17 4q12 0 25.5 -10.5t30.5 -21.5t41 -21.5t58 -10.5q72 0 121 49.5t49 120.5q0 41 -17 76t-44 63.5t-56.5 55.5t-56.5 53l-178 180q-53 49 -123 50q-43 0 -72.5 -17.5t-46.5 -17.5q-12 0 -38.5 21.5t-55 49t-50 56t-21.5 41.5z" />
<glyph unicode="&#xf0c2;" horiz-adv-x="1880" d="M0 391q0 70 23.5 132.5t64.5 113.5t96.5 86t120.5 51q-33 41 -51 90t-18 105q0 66 24.5 123t66.5 99t99 66.5t123 24.5q113 0 196 -72q18 76 61.5 141.5t103 113.5t133 75t157.5 27q96 0 182 -37t149.5 -100.5t100.5 -149.5t37 -182q0 -57 -13 -109.5t-36 -99.5 q117 -59 188.5 -170t71.5 -248q0 -98 -37 -183t-101.5 -149.5t-149.5 -101.5t-183 -37h-1018q-80 0 -151.5 30.5t-125 84t-84 125t-30.5 151.5z" />
<glyph unicode="&#xf0c3;" horiz-adv-x="1536" d="M16 72q-39 72 7 141l516 803v366h-78q-33 0 -54.5 22.5t-21.5 55.5q0 31 21.5 53.5t54.5 22.5h614q33 0 55.5 -22.5t22.5 -53.5q0 -33 -22.5 -55.5t-55.5 -22.5h-76v-368l514 -801q45 -70 7 -141q-18 -35 -51 -53.5t-70 -18.5h-1262q-37 0 -69.5 18.5t-51.5 53.5z M377 479h782l-313 490v413h-154v-411z" />
<glyph unicode="&#xf0c4;" horiz-adv-x="1916" d="M0 180q0 86 44 168t113.5 146.5t154.5 103.5t169 39h13q18 25 57 60.5t63 58.5v12v12q-12 12 -28.5 27.5t-35 32t-33.5 32t-23 27.5q-84 -6 -172.5 33t-160 105.5t-116.5 150.5t-45 168q0 98 62.5 154.5t160.5 56.5q82 0 168 -39t155.5 -103.5t114 -146.5t44.5 -168 q0 -10 -1.5 -21.5t-3.5 -21.5l86 -76l34 17q34 18 90.5 46.5t129 65.5t148.5 76t150.5 77t135 69.5t102.5 52t52 26.5q16 8 37 9q14 0 39 -4.5t52.5 -9.5t53 -11t41.5 -8q29 -4 47.5 -26.5t18.5 -51.5q0 -43 -35 -66l-700 -485l700 -485q35 -23 35 -66q0 -29 -18.5 -51.5 t-47.5 -26.5q-16 -4 -41.5 -9t-53 -10t-52.5 -9.5t-39 -4.5q-10 0 -18.5 2.5t-18.5 6.5l-842 430l-86 -76q2 -10 3.5 -21.5t1.5 -21.5q0 -86 -44.5 -168t-114 -146.5t-155.5 -103.5t-168 -39q-98 0 -160.5 56.5t-62.5 154.5zM197 1358q0 -23 11 -49.5t27.5 -51t35 -45 t34.5 -34.5q35 -29 82 -54.5t94 -25.5q10 0 27 4v6q0 23 -11.5 48.5t-27.5 50t-34.5 46t-35.5 35.5q-35 29 -82 54.5t-94 25.5q-14 0 -26 -4v-6zM199 180q0 -6 2 -10q6 0 11 -1t11 -1q41 0 90 24.5t92.5 61.5t72 83t28.5 89q0 4 -1 5t-1 5q-8 2 -23 2q-41 0 -90 -24.5 t-92 -61.5t-71.5 -83t-28.5 -89zM586 616q53 -25 82 -69l108 96l45 -27l1016 703l-172 31l-975 -498l6 -127zM586 920l35 -35q12 29 36.5 41t53.5 26l-43 37q-29 -45 -82 -69zM741 768q0 35 23.5 57.5t58.5 22.5q33 0 55.5 -22.5t22.5 -57.5q0 -33 -22.5 -56.5t-57.5 -23.5 q-33 0 -56.5 23.5t-23.5 56.5zM903 575l762 -389l172 31l-727 502z" />
<glyph unicode="&#xf0c5;" horiz-adv-x="1597" d="M0 385v707q0 33 16.5 70.5t38.5 60.5l258 258q23 23 61 39t70 16h463q31 0 53.5 -22.5t22.5 -53.5v-250q16 8 35.5 13.5t40.5 5.5h463q31 0 53 -22.5t22 -53.5v-1075q0 -33 -22.5 -55.5t-52.5 -22.5h-830q-33 0 -55.5 22.5t-22.5 55.5v229h-536q-33 0 -55.5 22.5 t-22.5 55.5zM154 461h460v293q0 45 10.5 87t45.5 74l159 162v305h-278v-321q0 -31 -22.5 -53.5t-53.5 -22.5h-321v-524zM186 1139h211v211zM768 154h676v921h-279v-321q0 -31 -22.5 -53.5t-52.5 -22.5h-322v-524zM801 831h211v211z" />
<glyph unicode="&#xf0c6;" horiz-adv-x="1470" d="M0 1128q0 90 35 170t94 139.5t139 94.5t170 35q88 0 169 -34t143 -95l655 -656q12 -12 12 -28q0 -10 -11 -26.5t-26.5 -32t-32 -27t-26.5 -11.5q-16 0 -29 13l-655 655q-41 41 -92 61.5t-107 20.5q-57 0 -108 -21.5t-89 -59.5t-59.5 -89t-21.5 -109q0 -55 20.5 -106 t61.5 -92l745 -746q55 -55 133 -55q39 0 74 15.5t60.5 41t41 60.5t15.5 73q0 78 -56 134l-563 563q-29 29 -69 28q-41 0 -71 -29.5t-30 -70.5t29 -70l475 -475q12 -12 12 -28q0 -10 -11 -26.5t-26.5 -32t-32 -27t-26.5 -11.5q-16 0 -29 13l-475 473q-35 37 -55.5 85 t-20.5 99q0 53 20.5 100.5t55.5 83t83.5 56t101.5 20.5q51 0 99 -20.5t85 -55.5l561 -563q102 -102 102 -246q0 -74 -27.5 -137t-74.5 -110t-110.5 -75t-137.5 -28q-143 0 -246 103l-745 745q-61 61 -95 142t-34 169z" />
<glyph unicode="&#xf0c7;" horiz-adv-x="1536" d="M0 154v1228q0 63 45 108.5t109 45.5h1075q63 0 108 -45l154 -154q45 -45 45 -108v-1075q0 -63 -45 -108.5t-109 -45.5h-1228q-63 0 -108.5 45t-45.5 109zM154 846h1075v536h-1075v-536zM846 922v385h190v-385h-190z" />
<glyph unicode="&#xf0c8;" horiz-adv-x="1536" d="M0 193v1150q0 39 15.5 75t41 61.5t60.5 41t76 15.5h1150q80 0 136.5 -56.5t56.5 -136.5v-1150q0 -41 -15.5 -76t-41 -60.5t-61.5 -41t-75 -15.5h-1150q-80 0 -136.5 56.5t-56.5 136.5z" />
<glyph unicode="&#xf0c9;" d="M0 78v215q0 31 22.5 53.5t55.5 22.5h1689q31 0 53.5 -22.5t22.5 -53.5v-215q0 -33 -22.5 -55.5t-53.5 -22.5h-1689q-33 0 -55.5 22.5t-22.5 55.5zM0 659v218q0 31 22.5 53t55.5 22h1689q31 0 53.5 -22.5t22.5 -52.5v-218q0 -31 -22.5 -53t-53.5 -22h-1689 q-33 0 -55.5 22.5t-22.5 52.5zM0 1243v217q0 31 22.5 53.5t55.5 22.5h1689q31 0 53.5 -22.5t22.5 -53.5v-217q0 -31 -22.5 -53.5t-53.5 -22.5h-1689q-33 0 -55.5 22.5t-22.5 53.5z" />
<glyph unicode="&#xf0ca;" d="M0 211q0 39 15.5 75t41 61.5t60.5 40.5t76 15q39 0 73.5 -15t61 -40.5t42 -61.5t15.5 -75q0 -41 -15.5 -76t-42 -60.5t-61.5 -41t-73 -15.5q-80 0 -136.5 56.5t-56.5 136.5zM0 768q0 39 15.5 75t41 61.5t60.5 41t76 15.5q39 0 73.5 -15.5t61 -41t42 -61.5t15.5 -75 q0 -41 -15.5 -76t-42 -60.5t-61.5 -41t-73 -15.5q-41 0 -76 15.5t-60.5 41t-41 60.5t-15.5 76zM0 1325q0 39 15.5 75t41 61.5t60.5 41t76 15.5q39 0 73.5 -15.5t61 -41t42 -61.5t15.5 -75q0 -41 -15.5 -76t-42 -60.5t-61.5 -40.5t-73 -15q-41 0 -76 15t-60.5 40.5t-41 60.5 t-15.5 76zM522 154v114q0 33 22.5 55.5t55.5 22.5h1167q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -54.5t-53.5 -21.5h-1167q-33 0 -55.5 21.5t-22.5 54.5zM522 711v114q0 33 22.5 55.5t55.5 22.5h1167q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -55.5t-53.5 -22.5 h-1167q-33 0 -55.5 22.5t-22.5 55.5zM522 1268v114q0 33 22.5 55.5t55.5 22.5h1167q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -55.5t-53.5 -22.5h-1167q-33 0 -55.5 22.5t-22.5 55.5z" />
<glyph unicode="&#xf0cb;" d="M0 594q0 55 30.5 90t68.5 61.5t69 50t31 56.5q0 29 -17.5 44t-46.5 15q-25 0 -44 -15t-34 -36l-53 37q23 39 58.5 60.5t78.5 21.5q55 0 96.5 -32t41.5 -91q0 -49 -30 -80t-67 -55.5t-67.5 -47t-30.5 -55.5h143v54h66v-115h-289q-2 10 -3 18.5t-1 18.5zM4 55l37 54 q6 -4 12 -10.5t15 -10.5q12 -8 29.5 -14t37.5 -6q35 0 55.5 18t20.5 47q0 31 -23.5 48.5t-58.5 17.5h-23l-16 37l90 108l6 6t7 6l4 6h-9q-4 -2 -14 -2h-92v-49h-66v111h263v-53l-97 -115q41 -6 74 -35t33 -82t-38 -95t-110 -42q-35 0 -60.5 9t-41.5 20q-25 14 -35 26z M14 1434l105 102h67v-360h93v-62h-259v62h93v258v8h-2q-10 -16 -22.5 -28.5t-29.5 -27.5zM522 154v114q0 33 22.5 55.5t55.5 22.5h1167q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -54.5t-53.5 -21.5h-1167q-33 0 -55.5 21.5t-22.5 54.5zM522 711v114q0 33 22.5 55.5 t55.5 22.5h1167q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -55.5t-53.5 -22.5h-1167q-33 0 -55.5 22.5t-22.5 55.5zM522 1268v114q0 33 22.5 55.5t55.5 22.5h1167q31 0 53.5 -22.5t22.5 -55.5v-114q0 -33 -22.5 -55.5t-53.5 -22.5h-1167q-33 0 -55.5 22.5t-22.5 55.5z " />
<glyph unicode="&#xf0cc;" horiz-adv-x="1536" d="M0 692v152h1536v-152h-1536zM268 1114q0 117 44 202t118 141t170 83t203 27q88 0 176 -20.5t172 -49.5q20 -72 27.5 -156t7.5 -157q0 -10 -1 -22.5t-3 -24.5l-13 -2q-23 2 -50 2t-50 6q-18 59 -44 114.5t-62.5 98.5t-88 68.5t-122.5 25.5q-49 0 -94.5 -13.5t-80 -40 t-56 -66.5t-21.5 -93q0 -59 28.5 -102t75.5 -75t105.5 -54.5t118 -42t113.5 -39t93 -41.5h-696q-33 53 -51.5 110.5t-18.5 120.5zM285 310v63v45l110 2q31 -72 64 -134.5t76 -108.5t104 -71.5t152 -25.5q55 0 110 16.5t100.5 48t74 78.5t28.5 109q0 76 -49 128t-119 88 t-146.5 59.5t-132.5 45.5h617q8 -16 15 -38.5t10.5 -48t5.5 -50t2 -43.5q0 -131 -47.5 -226t-127 -156.5t-186 -91.5t-225.5 -30q-53 0 -93 4t-78 12.5t-78 20.5t-93 29q-12 4 -38 12t-36 16q-8 6 -12 50.5t-6 96.5t-2 100z" />
<glyph unicode="&#xf0cd;" horiz-adv-x="1536" d="M0 0v154h1536v-154h-1536zM0 1532q10 2 19.5 2h19.5q72 0 140.5 -5t137.5 -5q100 0 200.5 2t199.5 6q-4 -16 -1 -36.5t3 -37.5v-8q-66 -10 -108 -7t-65.5 -5t-32.5 -39t-9 -109q0 -137 4 -272t10 -273q8 -147 88 -237t238 -90q125 0 207 29.5t131 88t69.5 146.5t20.5 203 q0 20 -2 65t-5 102.5t-8.5 119t-11.5 113.5t-13 89t-15 45q-33 33 -78 33q-6 0 -23.5 -1t-36 -1t-34 1t-21.5 3l2 82q82 4 163 -3t165 -7q39 0 77.5 5t79.5 5q4 0 9.5 -1t9.5 -1q2 -12 4 -24.5t2 -24.5t-4 -29q-23 -6 -52.5 -8t-58 -7t-48 -16.5t-19.5 -38.5q0 -14 1 -27 t3 -28q2 -6 5 -38.5t5 -79t4 -101.5t4 -103t3 -85t1 -50q0 -37 -2 -80.5t-8 -89t-17.5 -87.5t-29.5 -74q-41 -68 -104.5 -114t-137 -72.5t-153.5 -38t-154 -11.5q-72 0 -144.5 9.5t-140.5 35.5q-96 35 -151 88.5t-84 121t-36 148.5t-7 173v321v42t-1 62.5t-5 60.5t-10 38 q-12 16 -37 23.5t-53.5 10.5t-56.5 3t-44 4z" />
<glyph unicode="&#xf0ce;" d="M0 115v1306q0 47 34 81t81 34h1614q47 0 80.5 -34t33.5 -81v-1306q0 -47 -33.5 -81t-80.5 -34h-1614q-47 0 -81 34t-34 81zM154 154h460v335h-460v-335zM154 565h460v332h-460v-332zM154 975h460v332h-460v-332zM692 154h461v335h-461v-335zM692 565h461v332h-461v-332z M692 975h461v332h-461v-332zM1229 154h461v335h-461v-335zM1229 565h461v332h-461v-332zM1229 975h461v332h-461v-332z" />
<glyph unicode="&#xf0d0;" d="M0 197q0 39 29 61l1579 1247q20 17 47 17q35 0 59 -29q10 -12 29.5 -33.5t38 -44t32 -47.5t13.5 -43q0 -39 -29 -61l-1579 -1248q-20 -16 -47 -16q-37 0 -59 29q-10 12 -30 33.5t-38 44t-31.5 47t-13.5 43.5zM256 922l117 36l37 117l34 -117l119 -36l-119 -37l-34 -117 l-37 117zM373 1229l235 71l72 236l72 -236l235 -71l-235 -72l-72 -235l-72 235zM942 1382l117 37l37 117l37 -117l116 -37l-116 -36l-37 -117l-37 117zM1286 1153l94 -121l369 291l-94 121zM1536 885l117 35l37 118l36 -118l117 -35l-117 -37l-36 -117l-37 117z" />
<glyph unicode="&#xf0d1;" d="M0 358v404q0 25 6 51.5t17.5 53t27 51t31.5 40.5l223 222q16 16 41 31.5t51.5 26.5t53 17.5t51.5 6.5h80v198q0 31 22.5 53.5t52.5 22.5h1108q33 0 55.5 -22.5t22.5 -53.5v-1102q0 -31 -22.5 -53t-55.5 -22h-75v-7q0 -63 -25 -119.5t-65.5 -97.5t-97 -65.5t-120.5 -24.5 q-63 0 -119.5 24.5t-97.5 65.5t-65.5 97.5t-24.5 119.5v7h-307v-7q0 -63 -24.5 -119.5t-65.5 -97.5t-97.5 -65.5t-119.5 -24.5t-119.5 24.5t-97.5 65.5t-65.5 97.5t-24.5 119.5v7h-78q-31 0 -53.5 22.5t-22.5 52.5zM193 700h387v369h-78q-10 0 -31.5 -8t-30.5 -17l-223 -221 q-8 -8 -16 -29.5t-8 -31.5v-62zM346 276q0 -47 34 -80.5t81 -33.5t80.5 33.5t33.5 80.5t-33.5 81t-80.5 34t-81 -33.5t-34 -81.5zM1268 276q0 -47 33.5 -80.5t80.5 -33.5t81 33.5t34 80.5t-33.5 81t-81.5 34q-47 0 -80.5 -33.5t-33.5 -81.5z" />
<glyph unicode="&#xf0d2;" horiz-adv-x="1597" d="M0 768q0 166 62.5 311.5t171 254t254 171t311.5 62.5t311 -62.5t254 -171t171 -254t62 -311.5t-62 -311.5t-171 -254t-254 -171t-311 -62.5q-59 0 -115.5 8.5t-112.5 24.5q23 35 46.5 80t35.5 92l11 41q6 23 16 66t29 112q23 -41 76 -70.5t118 -29.5q96 0 176 41 t136.5 114.5t88 174t31.5 217.5q0 88 -35.5 171t-102.5 147.5t-160 102t-208 37.5q-141 0 -248.5 -46t-179 -118.5t-107.5 -160.5t-36 -174q0 -104 40 -187.5t124 -117.5q31 -10 41 20q2 10 7 31.5t9 32.5q4 16 1 23t-13 22q-53 59 -53 155q0 76 27.5 145.5t78.5 122t124 84 t163 31.5q80 0 142.5 -23.5t105.5 -64.5t64.5 -96t21.5 -121q0 -86 -18.5 -164t-52.5 -136t-80 -92t-103 -34q-31 0 -57.5 12.5t-45 34t-25.5 49t1 60.5q18 76 44.5 151.5t26.5 130.5q0 49 -26.5 84t-81.5 35q-66 0 -110 -58.5t-44 -146.5q-2 -23 2 -45q2 -18 7.5 -40.5 t15.5 -41.5q-33 -141 -53.5 -225t-30.5 -131q-12 -55 -18 -80q-10 -45 -13.5 -93t-1.5 -89q-104 45 -192 119.5t-151.5 169t-98.5 207t-35 235.5z" />
<glyph unicode="&#xf0d3;" horiz-adv-x="1536" d="M0 193v1150q0 39 15.5 75t41 61.5t60.5 41t76 15.5h1150q80 0 136.5 -56.5t56.5 -136.5v-1150q0 -41 -15.5 -76t-41 -60.5t-61.5 -41t-75 -15.5h-829q27 39 59.5 95.5t49.5 117.5l10 41q6 25 17.5 68t29.5 112q20 -41 75.5 -70.5t121.5 -29.5q96 0 176 42t137 115.5 t89 175t32 220.5q0 90 -37 173t-103.5 147.5t-161 102.5t-208.5 38q-143 0 -251 -46.5t-180.5 -120t-108.5 -162.5t-36 -175q0 -104 40 -188.5t124 -118.5q14 -6 25.5 -1t15.5 21q4 10 8 31.5t8 34.5q8 23 -12 43q-23 29 -37 67.5t-14 91.5q0 76 27.5 145.5t79 123t124 85 t164.5 31.5q82 0 144.5 -23.5t105.5 -64.5t64.5 -97t21.5 -124q0 -86 -18.5 -164t-52 -136t-81 -93t-104.5 -35q-31 0 -57.5 12.5t-45 34t-25.5 49t1 60.5q18 78 45 154.5t27 131.5q0 49 -26.5 85t-82.5 36q-66 0 -110.5 -59t-44.5 -150q-2 -23 2 -45q4 -43 22 -84 q-35 -141 -54.5 -226t-29.5 -132q-12 -55 -18 -80q-16 -70 -14 -142.5t6 -117.5h-260q-80 0 -136.5 56.5t-56.5 136.5z" />
<glyph unicode="&#xf0d4;" horiz-adv-x="1536" d="M0 342v438q55 -68 120.5 -96.5t153.5 -28.5h36t34 4q-8 -23 -14 -42t-6 -42q0 -41 18 -77.5t43 -67.5q-104 -4 -198.5 -22.5t-186.5 -65.5zM0 1214v129q0 39 15.5 75t41 61.5t60.5 41t76 15.5h1150q80 0 136.5 -56.5t56.5 -136.5v-1150q0 -41 -15.5 -76t-41 -60.5 t-61.5 -41t-75 -15.5h-583q23 39 36 81t13 89q0 70 -21.5 121t-54.5 90t-70.5 69.5t-70.5 57.5t-54.5 53.5t-21.5 59.5q0 49 34 81.5t76 72.5t75.5 99.5t33.5 163.5q0 78 -39 157t-106 122h131l133 76h-428q-129 0 -237.5 -36t-188.5 -143zM2 170q14 57 55 96t96.5 61.5 t115 33t110.5 10.5h31.5t31.5 -2q37 -27 78 -54.5t75 -61.5t55.5 -75t21.5 -92q0 -47 -19 -86h-460q-72 0 -126.5 49t-64.5 121zM102 1094q0 43 11.5 85t35 73.5t59.5 51t85 19.5q68 0 118 -41t81.5 -100.5t47 -128t15.5 -123.5q0 -45 -9 -84t-30.5 -68.5t-56.5 -47 t-84 -17.5q-66 0 -116 39t-85 96t-53.5 123.5t-18.5 122.5zM854 1051h223v-224h109v224h223v108h-223v225h-109v-225h-223v-108z" />
<glyph unicode="&#xf0d5;" horiz-adv-x="1536" d="M0 262q0 100 56.5 166t139.5 105.5t179 56t174 18.5q-23 29 -41.5 64t-18.5 76q0 23 6.5 41t14.5 40q-16 -4 -33.5 -4h-34.5q-68 0 -130 23.5t-108 66.5t-74 101.5t-28 130.5q0 68 25 128t67 109.5t98 84t120 49.5q88 18 176 18h411l-127 -74h-127q72 -43 107 -120.5 t35 -157.5q0 -94 -33 -149.5t-73 -94.5t-72.5 -70.5t-32.5 -78.5q0 -45 44 -82t97 -82t97 -107.5t44 -161.5q0 -102 -50 -175.5t-126.5 -121t-170 -70t-181.5 -22.5q-66 0 -141.5 15.5t-140 50.5t-106.5 90t-42 137zM174 307q0 -68 35 -116t87 -78.5t114.5 -44t117.5 -13.5 q51 0 104.5 11.5t96.5 38t69.5 68.5t26.5 103q0 49 -21.5 89.5t-53 72t-70.5 59t-76 52.5q-14 2 -29.5 3t-29.5 1q-57 0 -123 -12.5t-121 -41t-91 -75.5t-36 -117zM276 1247q0 -53 17.5 -117.5t51.5 -120t82.5 -92t111.5 -36.5q96 0 134 61.5t38 147.5q0 53 -14.5 118.5 t-45 124t-78 97t-112.5 38.5q-47 0 -82 -18t-57.5 -49t-34 -71t-11.5 -83zM999 1206h215v-215h107v215h215v105h-215v217h-107v-217h-215v-105z" />
<glyph unicode="&#xf0d6;" d="M0 78v1382q0 31 22.5 53.5t55.5 22.5h1689q31 0 53.5 -22.5t22.5 -53.5v-1382q0 -33 -22.5 -55.5t-53.5 -22.5h-1689q-33 0 -55.5 22.5t-22.5 55.5zM154 461q63 0 119.5 -24.5t97.5 -65.5t65.5 -97.5t24.5 -119.5h921q0 63 25 119.5t65.5 97.5t97 65.5t120.5 24.5v614 q-63 0 -120 24.5t-97.5 65.5t-65.5 97.5t-25 119.5h-921q0 -63 -24.5 -119.5t-65.5 -97.5t-97.5 -65.5t-119.5 -24.5v-614zM539 768q0 104 29.5 195.5t81.5 159t122 106.5t150 39t149.5 -39t121.5 -106.5t83 -159t31 -195.5t-31 -195.5t-83 -159t-122 -106.5t-149 -39 q-80 0 -150 39t-122 106.5t-81.5 159t-29.5 195.5zM692 969l94 -99l39 35q8 6 11.5 13.5t7.5 11.5q4 2 8 10h2v-16q0 -8 -1 -16.5t-1 -18.5v-283h-139v-129h438v129h-141v529h-140z" />
<glyph unicode="&#xf0d7;" horiz-adv-x="1228" d="M6 967q20 47 72 47h1075q50 0 70 -47t-17 -84l-536 -537q-27 -23 -56 -22q-29 0 -55 22l-536 537q-37 37 -17 84z" />
<glyph unicode="&#xf0d8;" horiz-adv-x="1228" d="M6 371q-20 47 17 84l536 536q23 23 55 23q31 0 54 -23l538 -536q37 -37 17 -84t-70 -47h-1077q-50 0 -70 47z" />
<glyph unicode="&#xf0d9;" horiz-adv-x="692" d="M0 768q0 33 23 55l538 537q16 16 38 21t44 -5q23 -8 36 -27.5t13 -41.5v-1076q0 -25 -13 -43t-36 -28t-44 -5t-38 21l-538 539q-23 23 -23 53z" />
<glyph unicode="&#xf0da;" horiz-adv-x="692" d="M0 231v1076q0 49 47 69t84 -16l539 -537q23 -23 22 -55q0 -31 -22 -53l-539 -539q-37 -37 -84 -16q-47 20 -47 71z" />
<glyph unicode="&#xf0db;" d="M0 115v1306q0 47 34 81t81 34h1614q47 0 80.5 -34t33.5 -81v-1306q0 -47 -33.5 -81t-80.5 -34h-1614q-47 0 -81 34t-34 81zM154 154h692v1153h-692v-1153zM999 154h691v1153h-691v-1153z" />
<glyph unicode="&#xf0dc;" horiz-adv-x="1228" d="M0 584q0 31 22.5 54.5t53.5 23.5h1075q33 0 55.5 -23t22.5 -55q0 -33 -23 -56l-536 -536q-23 -23 -56 -23t-55 23l-536 536q-23 23 -23 56zM0 952q0 33 23 56l536 536q23 23 55 23q33 0 56 -23l536 -536q23 -23 23 -56q0 -31 -22.5 -54.5t-55.5 -23.5h-1075 q-31 0 -53.5 23t-22.5 55z" />
<glyph unicode="&#xf0dd;" horiz-adv-x="1228" d="M0 584q0 31 22.5 54.5t53.5 23.5h1077q31 0 53.5 -23t22.5 -55q0 -33 -23 -56l-536 -536q-23 -23 -56 -23q-35 0 -53 23l-538 536q-23 23 -23 56z" />
<glyph unicode="&#xf0de;" horiz-adv-x="1228" d="M0 952q0 33 23 56l536 536q23 23 55 23q33 0 56 -23l536 -536q23 -23 23 -56q0 -31 -22.5 -54.5t-53.5 -23.5h-1077q-31 0 -53.5 23t-22.5 55z" />
<glyph unicode="&#xf0e0;" d="M0 115v905q10 -10 20.5 -17.5t20.5 -15.5q129 -96 256 -191.5t252 -195.5q39 -31 82 -62.5t89 -57t96.5 -41t103.5 -15.5q55 0 105 15.5t96 40t89 56t84 64.5q125 100 252 195.5t256 191.5q10 8 20.5 15.5t20.5 17.5v-905q0 -47 -33.5 -81t-80.5 -34h-1614q-47 0 -81 34 t-34 81zM2 1434q0 41 36 71.5t77 30.5h1614q41 0 76.5 -30.5t35.5 -71.5q0 -31 -18.5 -69t-45 -75t-57 -67.5t-53.5 -48.5q-123 -92 -241.5 -182.5t-239.5 -182.5q-25 -18 -57.5 -45t-67.5 -51.5t-71 -42t-66 -17.5h-2h-2q-31 0 -67 17.5t-70.5 42t-67.5 51.5t-58 45 q-121 92 -239.5 182t-241.5 183q-23 18 -53.5 48.5t-57 67.5t-45 75t-18.5 69z" />
<glyph unicode="&#xf0e1;" horiz-adv-x="1576" d="M0 1376q0 39 15.5 74t41 60.5t60 41t73.5 15.5t74 -15.5t61.5 -41t41 -60.5t14.5 -74t-14.5 -73.5t-41 -60t-61.5 -41t-74 -15.5t-73.5 15.5t-60 41t-41 60t-15.5 73.5zM10 41v991q0 16 12.5 28.5t28.5 12.5h281q16 0 28.5 -12t12.5 -29v-991q0 -16 -12.5 -28.5 t-28.5 -12.5h-281q-16 0 -28.5 12.5t-12.5 28.5zM524 41v991q0 16 12.5 28.5t28.5 12.5h273q33 0 37 -25.5t4 -48.5q57 53 129.5 76t150.5 23q190 0 304 -95.5t114 -293.5v-668q0 -16 -12.5 -28.5t-28.5 -12.5h-289q-16 0 -27.5 12.5t-11.5 28.5v604q0 76 -27.5 116 t-111.5 40q-53 0 -89 -17.5t-56.5 -47t-28.5 -70.5t-8 -88v-537q0 -16 -12.5 -28.5t-28.5 -12.5h-281q-16 0 -28.5 12.5t-12.5 28.5z" />
<glyph unicode="&#xf0e2;" horiz-adv-x="1591" d="M0 662q-4 39 35 45l158 20q12 2 30 -8q12 -8 15 -27q14 -102 63 -191t123 -153.5t169 -101.5t200 -37q115 0 217 44t178 120t120 177t44 218t-44 218t-120 177t-178.5 120t-216.5 44q-94 0 -181.5 -30.5t-158.5 -88.5l159 -159q35 -35 24 -58.5t-58 -23.5h-463 q-16 0 -29.5 6t-24.5 16q-25 25 -24 55v463q0 47 24.5 57.5t59.5 -24.5l162 -162q109 92 238.5 140.5t271.5 48.5q166 0 311 -62.5t253.5 -171t171 -254t62.5 -311.5t-62.5 -311.5t-171 -254t-254 -171t-310.5 -62.5q-150 0 -285 52.5t-241.5 145.5t-176.5 220t-90 275z" />
<glyph unicode="&#xf0e3;" horiz-adv-x="1916" d="M0 651q0 49 37 91t88 42q35 0 68 -22q-20 14 -21 37q0 8 8 24l334 502q14 20 37 21q16 0 24 -9q-25 18 -40 43t-15 56q0 49 38 90t87 41q33 0 62 -19l514 -342q23 -16 36 -40.5t13 -53.5q0 -25 -10.5 -48.5t-26.5 -41.5t-40 -29.5t-48 -11.5q-33 0 -68 23q20 -14 21 -37 q0 -14 -8 -25l-105 -158l227 -151q14 4 28 6t28 2q53 0 94 -29l475 -315q37 -27 58.5 -65.5t21.5 -84.5q0 -74 -52.5 -126t-125.5 -52q-55 0 -99 31l-475 315q-70 47 -75 131l-228 152l-106 -158q-14 -20 -37 -20q-14 0 -25 8q55 -39 56 -100q0 -25 -10.5 -47.5t-28 -41 t-40 -29.5t-46.5 -11q-35 0 -62 18l-514 342q-49 33 -49 92z" />
<glyph unicode="&#xf0e4;" horiz-adv-x="1880" d="M0 627q0 195 73.5 365.5t201.5 298.5t299 202t366 74t366 -74t299 -202t201.5 -299t73.5 -365q0 -78 -14.5 -159t-42 -159t-68.5 -149.5t-92 -130.5q-23 -29 -59 -29h-1328q-37 0 -59 29q-53 59 -93 130.5t-67.5 149.5t-42 159t-14.5 159zM158 627q0 -49 33.5 -83 t82.5 -34t83 34t34 83t-34.5 82.5t-82.5 33.5q-49 0 -82.5 -33.5t-33.5 -82.5zM352 1098q0 -49 35 -84t82 -35q49 0 84 35t35 84t-35 82.5t-84 33.5q-47 0 -82 -33.5t-35 -82.5zM743 313q0 -82 57.5 -139t139.5 -57t139.5 57t57.5 139q0 49 -26 91t-67 71q4 14 15.5 55 t27 95.5t33 114t30.5 110.5t22.5 88t9.5 43q0 23 -17.5 40t-40.5 17q-20 0 -35.5 -12t-21.5 -31l-135 -487q-39 -2 -74 -17.5t-60.5 -42t-40 -61.5t-14.5 -74zM823 1292q0 -49 34 -82.5t83 -33.5t83 33.5t34 82.5t-34 83t-83 34t-83 -34t-34 -83zM1292 1098q0 -49 35 -83 t84 -34t83 34t34 83t-34 82.5t-83 33.5t-84 -33.5t-35 -82.5zM1489 627q0 -49 34 -83t83 -34t82.5 34t33.5 83t-33.5 82.5t-82.5 33.5t-83 -33.5t-34 -82.5z" />
<glyph unicode="&#xf0e5;" horiz-adv-x="1916" d="M0 866q0 123 49 225.5t130 183.5t184.5 139.5t209.5 92.5q94 31 190.5 45.5t194.5 14.5t194.5 -14.5t190.5 -45.5q106 -35 210 -93t185 -139t130 -183.5t49 -225.5t-49 -225t-130 -183t-184.5 -140.5t-210.5 -92.5q-94 -31 -190 -45t-195 -14q-92 0 -180 12 q-92 -72 -195.5 -119t-215.5 -73q-27 -4 -55.5 -10.5t-53.5 -6.5q-16 0 -27.5 11.5t-11.5 27.5q0 12 8.5 21.5t16.5 17.5q31 33 53 60.5t37.5 57.5t25 64.5t17.5 79.5q-78 43 -145.5 100.5t-120 128t-82 153.5t-29.5 175zM160 866q0 -72 24.5 -133t65.5 -113.5t94 -95.5 t111 -75q27 -14 51 -27.5t49 -28.5q-10 -47 -17.5 -94t-19.5 -94q59 29 111.5 64.5t105.5 76.5q55 -8 110.5 -14t112.5 -6q156 0 308 43q84 25 171 68.5t158.5 107t116.5 143.5t45 178t-45 178t-116.5 143.5t-158.5 107.5t-171 69q-152 43 -308 43q-158 0 -307 -43 q-84 -25 -171 -69t-158.5 -107.5t-116.5 -143t-45 -178.5z" />
<glyph unicode="&#xf0e6;" horiz-adv-x="1916" d="M0 997q0 98 40 182.5t106.5 151t150.5 113.5t170 76q76 25 154.5 36t156.5 11q80 0 159 -11.5t155 -35.5q86 -29 170 -76t149.5 -113.5t105 -150.5t39.5 -183q0 -98 -39.5 -182t-105 -149.5t-149.5 -113.5t-170 -77q-154 -47 -314 -47q-37 0 -72.5 3t-72.5 7 q-150 -115 -336 -155q-20 -4 -43 -9.5t-45 -5.5q-12 0 -21.5 9.5t-9.5 23.5q0 10 7.5 17.5l13.5 13.5q51 51 72.5 96t35.5 117q-63 35 -118.5 82t-97.5 104t-66.5 124t-24.5 142zM160 997q0 -72 30.5 -127t77.5 -99t104.5 -78t112.5 -64l-20 -111q33 18 63.5 42t59.5 46 q47 -6 95 -12t95 -6q135 0 264 41q61 18 124 52t114 81t84 105.5t33 129.5q0 72 -33 131.5t-84 105.5t-113.5 80t-124.5 52q-63 23 -129.5 32t-134.5 9q-66 0 -132 -9t-132 -32q-59 -18 -122.5 -52t-115 -80t-84 -105.5t-32.5 -131.5zM649 258l27 16q51 -6 102 -6 q197 0 381 62q111 37 211 99.5t177 147.5t123 190t46 230q0 41 -6 84q90 -72 148.5 -169t58.5 -214q0 -76 -24.5 -142.5t-66.5 -123.5t-97.5 -104t-118.5 -82q14 -72 35.5 -117t72.5 -96q6 -6 13.5 -14.5t7.5 -18.5q0 -16 -10.5 -23.5t-24.5 -7.5q-20 0 -43 5.5t-41 9.5 q-186 41 -336 155q-37 -4 -72.5 -7t-72.5 -3q-129 0 -254 32t-236 97z" />
<glyph unicode="&#xf0e7;" horiz-adv-x="933" d="M0 557q0 8 2 10l209 932q4 16 16.5 26.5t28.5 10.5h344q18 0 31.5 -13.5t13.5 -33.5q0 -6 -1 -10t-3 -11l-180 -524q12 4 47 13.5t81 21.5t95 26.5t93 25.5t75 18.5t37 7.5q18 0 31.5 -13.5t13.5 -33.5q0 -12 -2 -19l-565 -1306q-10 -29 -43 -29q-18 0 -33 13.5t-15 33.5 q0 6 3 10l204 914q-12 -4 -48 -14.5t-82 -22.5t-97 -26.5t-95 -27t-76 -19.5t-38 -7q-20 0 -33.5 14.5t-13.5 32.5z" />
<glyph unicode="&#xf0e8;" d="M0 78v383q0 33 22.5 55.5t55.5 22.5h133v153q0 55 40 94t95 39h518v174h-135q-31 0 -53.5 21.5t-22.5 54.5v385q0 31 22.5 53.5t53.5 22.5h385q31 0 53.5 -22.5t22.5 -53.5v-385q0 -33 -22.5 -54.5t-53.5 -21.5h-135v-174h518q55 0 95 -38.5t40 -94.5v-153h135 q31 0 53.5 -22.5t22.5 -55.5v-383q0 -33 -22.5 -55.5t-53.5 -22.5h-385q-33 0 -54 22.5t-21 55.5v383q0 33 21.5 55.5t53.5 22.5h136v153q0 18 -21 19h-518v-172h135q31 0 53.5 -22.5t22.5 -55.5v-383q0 -33 -22.5 -55.5t-53.5 -22.5h-385q-31 0 -53.5 22.5t-22.5 55.5v383 q0 33 22.5 55.5t53.5 22.5h135v172h-518q-20 0 -20 -19v-153h135q33 0 55.5 -22.5t22.5 -55.5v-383q0 -33 -22.5 -55.5t-55.5 -22.5h-383q-33 0 -55.5 22.5t-22.5 55.5z" />
<glyph unicode="&#xf0e9;" horiz-adv-x="1884" d="M0 770q31 137 109.5 253t193.5 204t257 141t302 66v53q0 35 23.5 57.5t56.5 22.5q35 0 57.5 -22.5t22.5 -57.5v-53q160 -12 303 -65.5t258 -141.5t192.5 -204t108.5 -253q6 -29 -20 -43q-10 -6 -19 -6q-20 0 -28 12q-98 102 -218 103q-86 0 -163.5 -54.5t-130.5 -152.5 q-10 -23 -35 -23t-35 23q-82 150 -213 194v-526q0 -68 -23.5 -127t-63.5 -104.5t-93.5 -71t-114.5 -25.5t-115.5 25.5t-94.5 71t-63.5 104.5t-23.5 127q0 35 23.5 57.5t56.5 22.5q35 0 57.5 -22.5t22.5 -57.5q0 -70 40 -119t97 -49q55 0 95 49t40 119v526 q-131 -45 -213 -194q-10 -23 -35 -23t-34 23q-53 98 -130 152.5t-163 54.5q-121 0 -217 -103q-12 -12 -31 -12q-10 0 -19 6q-25 14 -20 43z" />
<glyph unicode="&#xf0ea;" horiz-adv-x="1597" d="M0 385v1075q0 31 22.5 53.5t55.5 22.5h921q31 0 53.5 -22.5t22.5 -53.5v-231h33h61q25 0 55.5 -13.5t49.5 -29.5l280 -281q18 -18 30.5 -49t12.5 -55v-62v-678q0 -27 -17 -44t-44 -17h-860q-27 0 -44.5 17.5t-17.5 43.5v246h-536q-33 0 -55.5 22.5t-22.5 55.5zM276 1321 q0 -12 9.5 -21.5t21.5 -9.5h461q12 0 21.5 9.5t9.5 21.5v61q0 12 -9.5 21.5t-21.5 9.5h-461q-12 0 -21.5 -9t-9.5 -22v-61zM737 123h738v555h-367q-27 0 -44 17.5t-17 43.5v367h-310v-983zM1169 801h306q0 2 -3.5 8t-5.5 10l-280 279q0 4 -6 4q-2 0 -2 1t-2 1t-3.5 1t-3.5 1 v-305z" />
<glyph unicode="&#xf105;" horiz-adv-x="2048" />
<glyph unicode="&#xf200;" horiz-adv-x="1536" d="M0 57v379q0 39 20.5 87t54.5 90t74.5 73t81.5 35q-35 -59 -34 -129q0 -59 16 -124t59 -106q-18 -37 -18 -75q0 -72 50 -122t122 -50q37 0 68.5 13t55 36.5t37 55.5t13.5 67t-13.5 66.5t-37 55t-55 38t-68.5 14.5q-18 0 -36.5 -5t-35.5 -14q-12 12 -20 31t-13.5 40.5 t-7.5 41.5t-2 37q0 47 28 86t62 67l142 21q-92 57 -142.5 150.5t-50.5 201.5q0 86 33 162t90 133t133 90t162 33t162 -33t133 -90t90 -133t33 -162q0 -109 -50.5 -202t-142.5 -150l158 -23q18 -16 34.5 -36.5t16.5 -47.5q0 -45 -18 -77q-59 33 -121 32q-45 0 -87 -17 t-77 -46q-6 2 -11 3t-11 1q-47 0 -82 -34t-35 -81t34.5 -80.5t82.5 -33.5q47 0 80.5 33.5t33.5 80.5q0 8 -2 15.5t-4 13.5q16 12 35.5 20.5t42.5 8.5q55 0 95 -39t40 -94q0 -23 -8 -41.5t-19 -34.5q-25 10 -45 10q-47 0 -81.5 -34t-34.5 -81t34.5 -80.5t81.5 -33.5t81 33.5 t34 80.5l-2 4q74 74 74 177q0 74 -41 137q45 70 45 157q0 31 -12 62q41 -4 83 -34t74.5 -72t53 -90t20.5 -89v-379q-10 -6 -22.5 -15t-25.5 -18.5t-26.5 -16.5t-21.5 -7h-1344q-35 0 -52 20.5t-44 36.5zM369 287q0 25 17 41t40 16q25 0 41 -16t16 -41q0 -23 -16 -40.5 t-41 -17.5q-23 0 -40 17.5t-17 40.5z" />
<glyph unicode="&#xf201;" horiz-adv-x="1597" />
<glyph unicode="&#xf202;" horiz-adv-x="1597" />
<glyph unicode="&#xf203;" horiz-adv-x="1597" />
<glyph unicode="&#xf204;" horiz-adv-x="1597" />
</font>
</defs></svg>

Before

Width:  |  Height:  |  Size: 127 KiB

View File

@ -1,703 +0,0 @@
/* theme derived and inspired by TerraFirma
* <http://www.oswd.org/design/information/id/3557/>
*/
@font-face {
font-family: "FontAwesome";
src: url('fontawesome-webfont.eot');
src: url('fontawesome-webfont.eot?#iefix') format('eot'), url('fontawesome-webfont.woff') format('woff'), url('fontawesome-webfont.ttf') format('truetype'), url('fontawesome-webfont.svg#FontAwesome') format('svg');
font-weight: normal;
font-style: normal;
}
html, body {
margin: 0;
font-family: sans-serif;
height: 101%;
}
html {
background: #F9F9F7 url(../images/a1.gif) repeat-x;
color: #8c8c73;
}
a, #tab-personnes a, #tab-ressources a {
color: #FF7800;
text-decoration: underline;
}
a:hover, #tab-personnes a:hover, #tab-ressources a:hover {
text-decoration: none;
}
div#user-links {
display: inline;
padding: 5px;
background: rgba(100, 100, 100, 0.8);
border-top-right-radius: 6px;
border-bottom-left-radius: 6px;
}
div#user-links a {
color: white;
text-decoration: none;
}
div#user-links a:hover {
text-shadow: 1px 1px 1px black;
}
div#wrap-large,
div#wrap {
background: white;
width: 640px;
margin: 3em auto;
margin-bottom: 0;
padding: 15px;
-moz-border-radius: 6px;
-webkit-border-radius:6px;
-moz-box-shadow: 0 0 4px rgba(0,0,0,0.75);
-webkit-box-shadow: 0 0 4px rgba(0,0,0,0.75);
position: relative;
}
div#wrap-large {
width: 95%;
}
#header
{
position: absolute;
background: #FF7800 url(../images/a8.gif) repeat-x;
-moz-border-radius: 6px 0 0 6px;
-webkit-border-radius: 6px 0 0 6px;
width: 212px;
height: 92px;
color: #fff;
padding-left: 10px;
z-index: 14;
}
#header h1
{
font-size: 23px;
letter-spacing: -1px;
padding-top: 30px;
margin: 0;
}
#header span
{
margin: 0;
font-size: 10px;
font-weight: normal;
color: #FCE2CA;
}
#header h1 a,
#header span a {
color: white;
text-decoration: none;
}
#splash
{
position: absolute;
right: 15px;
background: #56D72B url(../images/banner-green.jpg) no-repeat top right;
width: 90%;
height: 87px;
-moz-border-radius: 0 6px 6px 0;
-webkit-border-radius: 0 6px 6px 0;
z-index: 10;
color: white;
font-weight: bold;
text-align: right;
padding-top: 5px;
}
div#content {
margin: 1em 1ex;
padding: 7px;
position: relative;
}
div#content h2 {
margin-top: 0;
font-weight: normal;
color: #656551;
font-size: 18px;
letter-spacing: -1px;
line-height: 25px;
margin-bottom: 20px;
padding: 0 0 10px 15px;
position: relative;
top: 4px;
background: url(../images/a22.gif) bottom repeat-x;
}
#footer
{
font-size: 70%;
position: relative;
clear: both;
height: 66px;
text-align: center;
line-height: 66px;
background-image: url(../images/a50.gif);
color: #A8A88D;
}
#footer a
{
color: #8C8C73;
}
form#login-form p {
float: left;
width: 40%;
}
form input.submit {
float: right;
width: 18%;
margin-top: 30px;
}
div.login-actions {
clear: both;
padding-top: 2em;
}
div.login-actions p {
margin: 0;
}
form p {
margin: 0 0 1em 0;
}
form p label {
display: block;
}
form p input,
form p textarea {
margin-left: 10px;
}
ul.errorlist {
margin: 0;
padding: 0;
color: #e80404;
list-style: none;
}
input, textarea {
padding: 5px;
border: 1px solid #cccccc;
color:#666666;
background: white;
color: black;
-webkit-border-radius: 4px;
}
textarea:focus, input[type="text"]:focus, input[type="password"]:focus {
border: 1px solid #4690d6;
color:#333333;
}
input[type=submit] {
color: #ffffff;
background:#4690d6;
border: 1px solid #2a567f;
font-weight: bold;
padding: 2px 8px 2px 8px;
margin: 0;
cursor: pointer;
}
input[type=submit]:hover {
border-color: #0e1d2b;
}
form#login-form ul.errorlist {
margin-bottom: 1em;
width: 80%;
font-weight: normal;
}
li.indented {
margin-left: 50px;
}
ul.NoBullet {
list-style-type: none;
}
div#content h4 {
margin-bottom: 5px;
margin-top: 30px;
}
div.errors {
margin: 0;
padding: 0;
color: #e80404;
list-style: none;
}
div#breadcrumb {
font-size: 80%;
margin-bottom: 1em;
}
div#sidebar,
div#users {
width: 15%;
float: left;
text-align: justify;
padding-right: 10px;
}
div#sidebar {
text-align: left;
}
div#sidebar input[type=text] {
width: 95%;
}
div#sidebar button {
width: 100%;
}
form input.submit {
position: relative;
top: -22px;
}
form#login-form input.submit {
position: relative;
top: -5px;
}
div.content {
float: left;
width: 82%;
margin-left: 8px;
margin-top: -10px;
}
div#users input {
width: 10em;
}
div#users dt {
font-weight: bold;
}
div#users dd {
margin: 0 0 1em 1em;
}
div#users ul {
margin-left: 0;
padding-left: 0;
font-size: 11px;
list-style: none;
}
div#users li {
cursor: pointer;
}
div.content ul {
text-align: justify;
}
h2 img {
position: absolute;
right: 0px;
top: 5px;
}
div#appbar button,
div#appbar a {
position: relative;
top: -45px;
float: right;
padding-left: 15px;
padding-right: 15px;
}
div#appbar button {
left: -20px;
top: -55px;
}
div#extra-top-links {
position: absolute;
right: 20px;
}
li.active {
font-weight: bold;
}
table.main {
width: 100%;
}
table.main th {
font-weight: normal;
border-bottom: 1px solid #888;
}
table.main td {
text-align: center;
}
table.main tr td.checkbox {
width: 1em;
}
table.main tr:nth-child(odd) td {
background: #eee;
}
table.main tr:hover td {
background: #ccf;
cursor: pointer;
}
table.main tr.active td {
background: #bbf;
}
div.frame {
border: 1px solid #aaa;
margin-bottom: 1em;
border-radius: 4px;
}
div.frame h3 {
margin: 0;
margin-bottom: 1ex;
padding: 3px 1ex;
color: #656551;
font-weight: normal;
background: #ccc url(smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;
}
div.frame p {
margin: 0 1ex;
}
div#overlay {
position: absolute;
bottom: -40px;
left: -10px;
background: rgba(0, 0, 0, 0.8);
color: white;
padding: 0px 10px;
width: 100%;
z-index: 10;
}
div#overlay a {
color: white;
}
li label {
}
button.flat,
button.blind {
border: 1px solid #555;
border-radius: 5px;
background: white;
font-size: 80%;
}
ul.apps {
margin-top: 2em;
margin-bottom: 2em;
}
ul.apps li {
display: block;
float: left;
margin-right: 1em;
}
ul.apps li a {
background-color: transparent;
background-repeat: no-repeat;
background-position: 50% 50%;
}
ul.apps li a {
display: block;
width: 120px;
height: 40px;
padding-top: 80px;
font-weight: bold;
text-align: center;
border: 1px dotted #666;
text-decoration: none;
transition: all .2s ease-in-out;
-webkit-transition: all .2s ease-in-out;
-moz-transition: all .2s ease-in-out;
}
ul.apps li a:hover {
border: 1px solid #333;
}
form#settings label span {
width: 6em;
display: inline-block;
}
abbr {
cursor: help;
border-bottom: 1px dotted #aaa;
}
pre.code {
border: 1px solid #babdb6;
padding: 0.5em 1em;
background: #fefefe;
}
h3.collapsed,
h3.expanded {
cursor: pointer;
}
h3.collapsed:before {
content: "▶ ";
font-size: 80%;
}
h3.expanded:before {
content: "▼ ";
font-size: 80%;
}
#more-user-links {
color: black;
margin-top: 100px;
}
#more-user-links a {
background: #ccc;
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
border: 1px solid #bbb;
box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
padding: 4px 12px;
border-radius: 4px;
color: black;
text-decoration: none;
}
#more-user-links a:hover {
background: #aaa;
}
#more-user-links span.middle {
padding-left: 15px;
}
#more-user-links span.right {
position: absolute;
right: 20px;
top: 80px;
z-index: 100;
}
#more-user-links span.right span {
color: #ddd;
}
div#content.login {
margin-top: 100px;
}
p.paginator a,
p.paginator span {
padding: 2px 5px;
border: 1px solid #aaa;
}
[class^="icon-"]:after, [class*=" icon-"]:after,
[class^="icon-"]:before, [class*=" icon-"]:before {
font-family: FontAwesome;
font-weight: normal;
font-style: normal;
display: inline-block;
text-decoration: none;
}
a [class^="icon-"], a [class*=" icon-"] {
display: inline-block;
text-decoration: none;
}
.icon-home-space:before { content: "\f015 "; }
.icon-edit:before { content: "\f044"; }
.icon-remove-sign:before { content: "\f057"; }
.icon-remove:before { content: "\f00d"; }
.icon-minus:before { content: "\f068"; }
.icon-envelope:before { content: "\f003"; }
.icon-comment:before { content: "\f075"; }
.icon-user-space:before { content: "\f007 "; }
.icon-circle-arrow-left:before { content: "\f0a8"; }
.icon-circle-arrow-right:before { content: "\f0a9"; }
.icon-music:before { content: "\f001"; }
.icon-th:before { content: "\f00a"; }
.icon-eye-open:before { content: "\f06e "; }
.icon-bar-chart:before { content: "\f080 "; }
.icon-search:before { content: "\f002 "; }
.icon-signout:before { content: "\f08b "; }
.icon-pushpin:before { content: "\f08d "; }
.icon-circle-arrow-down:after { content: "  \f0ab"; }
span.key {
background: #eee;
padding: 2px 5px;
border: 1px outset #ccc;
}
div.ui-dialog label span {
display: block;
color: #555;
}
div.ui-dialog label input,
div.ui-dialog label div.select2-container {
margin-left: 1ex;
}
div.select2-container {
width: 100%;
}
.popover-container {
position: absolute;
display: none;
}
.popover {
position: absolute;
z-index: 1212;
width: 100px;
padding: 0;
list-style: none;
bottom: 100%;
left: 0;
right: 0;
border: 1px solid;
border-color: #777 #6c6c6c #666;
border-radius: 5px;
-webkit-transition: 0.2s ease-out;
-moz-transition: 0.2s ease-out;
-o-transition: 0.2s ease-out;
transition: 0.2s ease-out;
-webkit-transition-property: opacity, padding, visibility;
-moz-transition-property: opacity, padding, visibility;
-o-transition-property: opacity, padding, visibility;
transition-property: opacity, padding, visibility;
background-image: linear-gradient(to bottom, #eeeeee, #ddd);
-webkit-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.9), 0 1px 2px rgba(0, 0, 0, 0.1);
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.9), 0 1px 2px rgba(0, 0, 0, 0.1);
}
.popover:before, .popover:after, .user li:first-child:after {
content: '';
display: block;
position: absolute;
left: 15px;
width: 0;
height: 0;
border: 7px outset transparent;
}
.popover:before {
top: -14px;
border-bottom: 7px solid #555;
}
.popover li:first-child:after {
top: -13px;
border-bottom: 7px solid white;
}
.popover:after {
top: -12px;
border-bottom: 7px solid #eeeeee;
}
.popover li {
padding: 4px 12px;
color: #838ca2;
}
.popover li.sep {
margin-top: 4px;
padding-top: 4px;
border-top: 1px solid #b4bbce;
-webkit-box-shadow: inset 0 1px rgba(255, 255, 255, 0.6);
box-shadow: inset 0 1px rgba(255, 255, 255, 0.6);
}
.popover li a {
display: block;
position: relative;
margin: 0 -13px;
padding: 2px 20px 2px 12px;
color: #313a4f;
text-decoration: none;
cursor: pointer;
border: 1px solid #666;
border-width: 0 1px;
}
.popover li a:hover {
background: #ccf;
}
.popover li a.disabled:hover {
background: inherit;
}
.popover li a.disabled {
color: #ccc;
}
ul.messages {
position: absolute;
background: rgba(10, 10, 10, 0.8);
display: block;
top: 5px;
right: 0px;
color: white;
border-radius: 1em;
list-style: none;
z-index: 10;
box-shadow: 0px 0px 5px black;
}
form.small p input {
margin-left: 0;
}
form.small p {
margin-bottom: 0.5em;
}
form.small label {
width: 200px;
display: inline-block;
}
form.small button {
margin-left: 205px;
display: block;
}

View File

@ -0,0 +1,35 @@
.gadjo-multi-select-widget {
&--field {
margin-bottom: 0.2em;
}
&--select-button-container {
display: flex;
gap: 0.5em;
}
&--field {
select {
min-width: 0;
}
button {
margin-top: auto;
margin-bottom: auto;
}
&:first-of-type .gadjo-multi-select-widget--button-remove {
display: none;
}
}
&--button-add::before {
content: "\f067"; /* plus */
font-family: FontAwesome;
}
&--button-remove::before {
content: "\f068"; /* minus */
font-family: FontAwesome;
}
}

1439
gadjo/static/css/gadjo.scss Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,98 @@
p.snapshot-description {
font-size: 80%;
margin: 0;
}
table.diff {
background: white;
border: 1px solid #f3f3f3;
border-collapse: collapse;
width: 100%;
colgroup, thead, tbody, td {
border: 1px solid #f3f3f3;
}
tbody tr:nth-child(even) {
background: #fdfdfd;
}
th, td {
max-width: 30vw;
/* it will not actually limit width as the table is set to
* expand to 100% but it will prevent one side getting wider
*/
overflow: hidden;
text-overflow: ellipsis;
vertical-align: top;
}
.diff_header {
background: #f7f7f7;
}
td.diff_header {
text-align: right;
padding-right: 10px;
color: #606060;
}
.diff_next {
display: none;
}
.diff_add {
background-color: #aaffaa;
}
.diff_chg {
background-color: #ffff77;
}
.diff_sub {
background-color: #ffaaaa;
}
.difflib_chg_to td {
background-color: #f7f7f7;
}
.expand-handler td {
text-align: left;
background-color: #f7f7f7;
&:hover {
background-color: inherit;
}
}
.expand-before, .expand-between, .expand-after {
cursor: pointer;
&::before {
font-family: FontAwesome;
padding: 0 2ex;
}
}
.expand-before::before {
content: "\f176"; // long-arrow-up
}
.expand-between::before {
content: "\f07d"; // arrows-v
}
.expand-after::before {
content: "\f175"; // long-arrow-down
}
}
div.snapshot-diff {
margin: 1em 0;
display: none;
ins {
text-decoration: none;
background-color: #d4fcbc;
}
del {
text-decoration: line-through;
background-color: #fbb6c2;
color: #555;
}
h3 {
del, ins {
font-weight: bold;
background-color: transparent;
}
del, del a {
color: #fbb6c2 !important;
}
ins, ins a {
color: #d4fcbc !important;
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 212 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 335 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 280 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,565 +0,0 @@
/*!
* jQuery UI CSS Framework 1.8.21
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Theming/API
*/
/* Layout helpers
----------------------------------*/
.ui-helper-hidden { display: none; }
.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }
.ui-helper-clearfix:after { clear: both; }
.ui-helper-clearfix { zoom: 1; }
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
/* Interaction Cues
----------------------------------*/
.ui-state-disabled { cursor: default !important; }
/* Icons
----------------------------------*/
/* states and images */
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
/* Misc visuals
----------------------------------*/
/* Overlays */
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
/*!
* jQuery UI CSS Framework 1.8.21
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Theming/API
*
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
*/
/* Component containers
----------------------------------*/
.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; }
.ui-widget .ui-widget { font-size: 1em; }
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; }
.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
.ui-widget-content a { color: #222222; }
.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
.ui-widget-header a { color: #222222; }
/* Interaction states
----------------------------------*/
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; }
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; }
.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; }
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; }
.ui-widget :active { outline: none; }
/* Interaction Cues
----------------------------------*/
.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; }
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
/* Icons
----------------------------------*/
/* states and images */
.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); }
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
/* positioning */
.ui-icon-carat-1-n { background-position: 0 0; }
.ui-icon-carat-1-ne { background-position: -16px 0; }
.ui-icon-carat-1-e { background-position: -32px 0; }
.ui-icon-carat-1-se { background-position: -48px 0; }
.ui-icon-carat-1-s { background-position: -64px 0; }
.ui-icon-carat-1-sw { background-position: -80px 0; }
.ui-icon-carat-1-w { background-position: -96px 0; }
.ui-icon-carat-1-nw { background-position: -112px 0; }
.ui-icon-carat-2-n-s { background-position: -128px 0; }
.ui-icon-carat-2-e-w { background-position: -144px 0; }
.ui-icon-triangle-1-n { background-position: 0 -16px; }
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
.ui-icon-triangle-1-e { background-position: -32px -16px; }
.ui-icon-triangle-1-se { background-position: -48px -16px; }
.ui-icon-triangle-1-s { background-position: -64px -16px; }
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
.ui-icon-triangle-1-w { background-position: -96px -16px; }
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
.ui-icon-arrow-1-n { background-position: 0 -32px; }
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
.ui-icon-arrow-1-e { background-position: -32px -32px; }
.ui-icon-arrow-1-se { background-position: -48px -32px; }
.ui-icon-arrow-1-s { background-position: -64px -32px; }
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
.ui-icon-arrow-1-w { background-position: -96px -32px; }
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
.ui-icon-arrow-4 { background-position: 0 -80px; }
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
.ui-icon-extlink { background-position: -32px -80px; }
.ui-icon-newwin { background-position: -48px -80px; }
.ui-icon-refresh { background-position: -64px -80px; }
.ui-icon-shuffle { background-position: -80px -80px; }
.ui-icon-transfer-e-w { background-position: -96px -80px; }
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
.ui-icon-folder-collapsed { background-position: 0 -96px; }
.ui-icon-folder-open { background-position: -16px -96px; }
.ui-icon-document { background-position: -32px -96px; }
.ui-icon-document-b { background-position: -48px -96px; }
.ui-icon-note { background-position: -64px -96px; }
.ui-icon-mail-closed { background-position: -80px -96px; }
.ui-icon-mail-open { background-position: -96px -96px; }
.ui-icon-suitcase { background-position: -112px -96px; }
.ui-icon-comment { background-position: -128px -96px; }
.ui-icon-person { background-position: -144px -96px; }
.ui-icon-print { background-position: -160px -96px; }
.ui-icon-trash { background-position: -176px -96px; }
.ui-icon-locked { background-position: -192px -96px; }
.ui-icon-unlocked { background-position: -208px -96px; }
.ui-icon-bookmark { background-position: -224px -96px; }
.ui-icon-tag { background-position: -240px -96px; }
.ui-icon-home { background-position: 0 -112px; }
.ui-icon-flag { background-position: -16px -112px; }
.ui-icon-calendar { background-position: -32px -112px; }
.ui-icon-cart { background-position: -48px -112px; }
.ui-icon-pencil { background-position: -64px -112px; }
.ui-icon-clock { background-position: -80px -112px; }
.ui-icon-disk { background-position: -96px -112px; }
.ui-icon-calculator { background-position: -112px -112px; }
.ui-icon-zoomin { background-position: -128px -112px; }
.ui-icon-zoomout { background-position: -144px -112px; }
.ui-icon-search { background-position: -160px -112px; }
.ui-icon-wrench { background-position: -176px -112px; }
.ui-icon-gear { background-position: -192px -112px; }
.ui-icon-heart { background-position: -208px -112px; }
.ui-icon-star { background-position: -224px -112px; }
.ui-icon-link { background-position: -240px -112px; }
.ui-icon-cancel { background-position: 0 -128px; }
.ui-icon-plus { background-position: -16px -128px; }
.ui-icon-plusthick { background-position: -32px -128px; }
.ui-icon-minus { background-position: -48px -128px; }
.ui-icon-minusthick { background-position: -64px -128px; }
.ui-icon-close { background-position: -80px -128px; }
.ui-icon-closethick { background-position: -96px -128px; }
.ui-icon-key { background-position: -112px -128px; }
.ui-icon-lightbulb { background-position: -128px -128px; }
.ui-icon-scissors { background-position: -144px -128px; }
.ui-icon-clipboard { background-position: -160px -128px; }
.ui-icon-copy { background-position: -176px -128px; }
.ui-icon-contact { background-position: -192px -128px; }
.ui-icon-image { background-position: -208px -128px; }
.ui-icon-video { background-position: -224px -128px; }
.ui-icon-script { background-position: -240px -128px; }
.ui-icon-alert { background-position: 0 -144px; }
.ui-icon-info { background-position: -16px -144px; }
.ui-icon-notice { background-position: -32px -144px; }
.ui-icon-help { background-position: -48px -144px; }
.ui-icon-check { background-position: -64px -144px; }
.ui-icon-bullet { background-position: -80px -144px; }
.ui-icon-radio-off { background-position: -96px -144px; }
.ui-icon-radio-on { background-position: -112px -144px; }
.ui-icon-pin-w { background-position: -128px -144px; }
.ui-icon-pin-s { background-position: -144px -144px; }
.ui-icon-play { background-position: 0 -160px; }
.ui-icon-pause { background-position: -16px -160px; }
.ui-icon-seek-next { background-position: -32px -160px; }
.ui-icon-seek-prev { background-position: -48px -160px; }
.ui-icon-seek-end { background-position: -64px -160px; }
.ui-icon-seek-start { background-position: -80px -160px; }
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
.ui-icon-seek-first { background-position: -80px -160px; }
.ui-icon-stop { background-position: -96px -160px; }
.ui-icon-eject { background-position: -112px -160px; }
.ui-icon-volume-off { background-position: -128px -160px; }
.ui-icon-volume-on { background-position: -144px -160px; }
.ui-icon-power { background-position: 0 -176px; }
.ui-icon-signal-diag { background-position: -16px -176px; }
.ui-icon-signal { background-position: -32px -176px; }
.ui-icon-battery-0 { background-position: -48px -176px; }
.ui-icon-battery-1 { background-position: -64px -176px; }
.ui-icon-battery-2 { background-position: -80px -176px; }
.ui-icon-battery-3 { background-position: -96px -176px; }
.ui-icon-circle-plus { background-position: 0 -192px; }
.ui-icon-circle-minus { background-position: -16px -192px; }
.ui-icon-circle-close { background-position: -32px -192px; }
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
.ui-icon-circle-zoomin { background-position: -176px -192px; }
.ui-icon-circle-zoomout { background-position: -192px -192px; }
.ui-icon-circle-check { background-position: -208px -192px; }
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
.ui-icon-circlesmall-close { background-position: -32px -208px; }
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
.ui-icon-squaresmall-close { background-position: -80px -208px; }
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
/* Misc visuals
----------------------------------*/
/* Corner radius */
.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
/* Overlays */
.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*!
* jQuery UI Resizable 1.8.21
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Resizable#theming
*/
.ui-resizable { position: relative;}
.ui-resizable-handle { position: absolute;font-size: 0.1px; display: block; }
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*!
* jQuery UI Selectable 1.8.21
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Selectable#theming
*/
.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
/*!
* jQuery UI Accordion 1.8.21
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Accordion#theming
*/
/* IE/Win - Fix animation bug - #4615 */
.ui-accordion { width: 100%; }
.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
.ui-accordion .ui-accordion-li-fix { display: inline; }
.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
.ui-accordion .ui-accordion-content-active { display: block; }
/*!
* jQuery UI Autocomplete 1.8.21
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Autocomplete#theming
*/
.ui-autocomplete { position: absolute; cursor: default; }
/* workarounds */
* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
/*
* jQuery UI Menu 1.8.21
*
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Menu#theming
*/
.ui-menu {
list-style:none;
padding: 2px;
margin: 0;
display:block;
float: left;
}
.ui-menu .ui-menu {
margin-top: -3px;
}
.ui-menu .ui-menu-item {
margin:0;
padding: 0;
zoom: 1;
float: left;
clear: left;
width: 100%;
}
.ui-menu .ui-menu-item a {
text-decoration:none;
display:block;
padding:.2em .4em;
line-height:1.5;
zoom:1;
}
.ui-menu .ui-menu-item a.ui-state-hover,
.ui-menu .ui-menu-item a.ui-state-active {
font-weight: normal;
margin: -1px;
}
/*!
* jQuery UI Button 1.8.21
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Button#theming
*/
.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
.ui-button-icons-only { width: 3.4em; }
button.ui-button-icons-only { width: 3.7em; }
/*button text element */
.ui-button .ui-button-text { display: block; line-height: 1.4; }
.ui-button-text-only .ui-button-text { padding: .4em 1em; }
.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
/* no icon support for input elements, provide padding by default */
input.ui-button { padding: .4em 1em; }
/*button icon element(s) */
.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
/*button sets*/
.ui-buttonset { margin-right: 7px; }
.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
/* workarounds */
button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
/*!
* jQuery UI Dialog 1.8.21
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Dialog#theming
*/
.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; }
.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }
.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
.ui-draggable .ui-dialog-titlebar { cursor: move; }
/*!
* jQuery UI Slider 1.8.21
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Slider#theming
*/
.ui-slider { position: relative; text-align: left; }
.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
.ui-slider-horizontal { height: .8em; }
.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
.ui-slider-horizontal .ui-slider-range-min { left: 0; }
.ui-slider-horizontal .ui-slider-range-max { right: 0; }
.ui-slider-vertical { width: .8em; height: 100px; }
.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
.ui-slider-vertical .ui-slider-range-max { top: 0; }/*!
* jQuery UI Tabs 1.8.21
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Tabs#theming
*/
.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
.ui-tabs .ui-tabs-hide { display: none !important; }
/*!
* jQuery UI Datepicker 1.8.21
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Datepicker#theming
*/
.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
.ui-datepicker .ui-datepicker-prev { left:2px; }
.ui-datepicker .ui-datepicker-next { right:2px; }
.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
.ui-datepicker .ui-datepicker-next-hover { right:1px; }
.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
.ui-datepicker select.ui-datepicker-month,
.ui-datepicker select.ui-datepicker-year { width: 49%;}
.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
.ui-datepicker td { border: 0; padding: 1px; }
.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
/* with multiple calendars */
.ui-datepicker.ui-datepicker-multi { width:auto; }
.ui-datepicker-multi .ui-datepicker-group { float:left; }
.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
/* RTL support */
.ui-datepicker-rtl { direction: rtl; }
.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
.ui-datepicker-rtl .ui-datepicker-group { float:right; }
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
.ui-datepicker-cover {
display: none; /*sorry for IE5*/
display/**/: block; /*sorry for IE5*/
position: absolute; /*must have*/
z-index: -1; /*must have*/
filter: mask(); /*must have*/
top: -4px; /*must have*/
left: -4px; /*must have*/
width: 200px; /*must have*/
height: 200px; /*must have*/
}/*!
* jQuery UI Progressbar 1.8.21
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Progressbar#theming
*/
.ui-progressbar { height:2em; text-align: left; overflow: hidden; }
.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 367 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 295 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1,102 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="13"
height="13"
viewBox="0 0 3.4395833 3.4395832"
version="1.1"
id="svg3125"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="info-icon.svg"
inkscape:export-filename="info-icon.png"
inkscape:export-xdpi="590.77002"
inkscape:export-ydpi="590.77002">
<defs
id="defs3119" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="32"
inkscape:cx="1.5869111"
inkscape:cy="4.5592662"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1600"
inkscape:window-height="836"
inkscape:window-x="179"
inkscape:window-y="1107"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
showguides="true"
inkscape:guide-bbox="true"
units="px">
<sodipodi:guide
position="-1.5957682,0.36380207"
orientation="1,0"
id="guide819"
inkscape:locked="false" />
<sodipodi:guide
position="-0.52916665,-0.52916665"
orientation="1,0"
id="guide821"
inkscape:locked="false" />
</sodipodi:namedview>
<metadata
id="metadata3122">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Calque 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-51.743849,-118.88301)">
<path
inkscape:connector-curvature="0"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#386ede;stroke-width:0.09999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
d="m 53.463641,118.95313 c -0.606618,0 -1.098382,0.4916 -1.098382,1.09802 0,0.40605 0.221383,0.75363 0.549192,0.9436 v 0.70343 h 1.098382 v -0.70343 c 0.327809,-0.18997 0.54919,-0.53755 0.54919,-0.9436 0,-0.60642 -0.491765,-1.09802 -1.098382,-1.09802 z"
id="path4561"
sodipodi:nodetypes="csccccsc" />
<path
inkscape:connector-curvature="0"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#666666;fill-opacity:1;fill-rule:nonzero;stroke:#386ede;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
d="m 52.991534,122.24009 h 0.944213"
id="path4488-4"
sodipodi:nodetypes="cc" />
<path
inkscape:connector-curvature="0"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#666666;fill-opacity:1;fill-rule:nonzero;stroke:#386ede;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
d="m 52.862851,121.96715 1.201579,0.002"
id="path4488-4-7"
sodipodi:nodetypes="cc" />
<path
inkscape:connector-curvature="0"
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.8;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#386ede;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
d="m 53.199057,120.20164 h 0.529167"
id="path4488-4-4"
sodipodi:nodetypes="cc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1,103 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="13"
height="13"
viewBox="0 0 3.4395833 3.4395832"
version="1.1"
id="svg3125"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
sodipodi:docname="sorry-icon.svg"
inkscape:export-filename="sorry-icon.png"
inkscape:export-xdpi="590.77002"
inkscape:export-ydpi="590.77002">
<defs
id="defs3119" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="22.318002"
inkscape:cx="-3.332695"
inkscape:cy="4.729909"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1600"
inkscape:window-height="836"
inkscape:window-x="179"
inkscape:window-y="1107"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
showguides="true"
inkscape:guide-bbox="true"
units="px"
inkscape:document-rotation="0">
<sodipodi:guide
position="-1.5957682,0.36380207"
orientation="1,0"
id="guide819"
inkscape:locked="false" />
<sodipodi:guide
position="-0.52916665,-0.52916665"
orientation="1,0"
id="guide821"
inkscape:locked="false" />
<sodipodi:guide
position="0.85704491,2.416597"
orientation="0,-1"
id="guide863" />
<sodipodi:guide
position="0.79428574,1.8879927"
orientation="0,-1"
id="guide865" />
</sodipodi:namedview>
<metadata
id="metadata3122">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Calque 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-51.743849,-118.88301)">
<path
inkscape:connector-curvature="0"
d="m 53.72296,120.7007 c -7.93e-4,-0.86144 0.229902,-1.32314 0.370795,-1.32327 l 0.132292,-1.3e-4 c -0.168259,0.26383 -0.238755,1.06292 -0.238503,1.32315 2.51e-4,0.26022 -0.01545,1.00664 0.241054,1.32268 l -0.132292,1.3e-4 c -0.180176,1.7e-4 -0.372515,-0.46112 -0.373346,-1.32256 z"
id="rect3773-4"
style="display:inline;opacity:1;fill:#386ede;fill-opacity:1;stroke:none;stroke-width:0.264583"
sodipodi:nodetypes="cccsccc" />
<circle
style="color:#000000;overflow:visible;opacity:1;fill:#386ede;fill-opacity:1;stroke-width:0.15875;stroke-linejoin:round;stroke-miterlimit:10"
id="path842"
cx="53.208046"
cy="121.22882"
r="0.25790736" />
<circle
style="color:#000000;overflow:visible;opacity:1;fill:#386ede;fill-opacity:1;stroke-width:0.15875;stroke-linejoin:round;stroke-miterlimit:10"
id="path842-3"
cx="53.208046"
cy="120.17593"
r="0.25790736" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

595
gadjo/static/js/gadjo.js Normal file
View File

@ -0,0 +1,595 @@
var gadjo_js = gadjo_js || {};
(function () {
if (gadjo_js.loaded) return;
gadjo_js.loaded = true;
var $ = jQuery;
var popup_script_loaded = {};
var deferred_timeout = function (duration) {
var dfd = $.Deferred();
setTimeout(function () {
dfd.resolve();
}, duration);
return dfd.promise();
}
window.displayPopup = function(event)
{
/* Opens the target link into a dialog box
*
* The target link is extracted from the @href attribute for anchors or
* from the @data-url attribute for other tags.
*
* The dialog title is extracted from "#appbar h2" (this selector can be
* changed with a @data-title-selector attribute on the anchor tag).
*
* The dialog content is extracted from "form" (this selector can be
* changed with a @data-selector attribute).
*
* Buttons (both <button> and <a>) are extracted from the content and
* converted into proper dialog buttons. A button with "cancel" as its
* class will have its action changed to simply close the dialog, without
* server processing.
*
* After loading the dialog content, a gadjo:dialog-loaded event is
* triggered on the anchor with the dialog content as argument.
*
* Alternatively the server may notice the ajax request and answer with
* an appropriate JSON response. In that case it should have a 'content'
* attribute with the HTML content, or a 'location' attribute in case of
* a redirect.
*
* In case of such a redirect, a gadjo:dialog-done event is triggered on
* the anchor and can be cancelled to prevent the default redirect
* behaviour.
*
* The JSON support depends on the presence of the jQuery Form plugin.
*
* Submit is done in place if the $anchor has a data-inplace-submit="true"
* attribute, a gadjo:dialog-done event is triggered on success, a
* gadjo:dialog-submit-error event is triggered on failure.
*
* Set data-autoclose-dialog="true" to close the dialog box after the
* submit.
*
* Dialog is modal by default, set data-modal="false" for non-modal
* dialogs.
*/
var $anchor = $(this);
var url = $anchor.attr('href') || $anchor.data('url');
var selector = $anchor.data('selector') || 'form:not(.gadjo-popup-ignore)';
var title_selector = $anchor.data('title-selector') || '#appbar h2';
var inplace_submit = $anchor.data('inplace-submit');
var autoclose_dialog = $anchor.data('autoclose-dialog');
var modal = $anchor.data('modal');
if (url == '#') {
return false;
}
if (modal === undefined) {
modal = true;
}
function show_error(message) {
/* Add a div to body to show an error message and fade it out after 3
* seconds */
$('<div id="gadjo-ajax-error"></div>')
.text(message)
.appendTo('body')
.delay(3000)
.fadeOut(400, function () {
$(this).remove();
});
}
function ajaxform_submit(data, status, xhr, form) {
if ('location' in data) {
var e = $.Event('gadjo:dialog-done');
if (document.body.contains($anchor[0])) {
$anchor.trigger(e, data);
} else {
$(document).trigger(e, data);
}
/* check if the event action has been prevented, and don't do
* anything in that case. */
if (! e.isDefaultPrevented()) {
if (data.location.split('#')[0] == window.location.href.split('#')[0]) {
window.location.reload(true);
}
window.location = data.location;
}
} else {
var $form = $(form);
$form.empty().append($(data.content).find(selector).children());
$form.find('.buttons').hide();
if (document.body.contains($anchor[0])) {
$anchor.trigger('gadjo:dialog-loaded', $form);
} else {
$(document).trigger('gadjo:dialog-loaded', $form);
}
}
}
/* Close existing dialog boxes */
$(".ui-dialog-content").dialog("destroy");
$.ajax({
url: url,
beforeSend: function(xhr) {xhr.setRequestHeader('X-Popup', 'true'); },
success: function(html) {
var is_json = typeof html != 'string';
if (is_json) {
/* get html out of json */
var html = html.content;
} else {
var html = html;
}
var $html = $(html);
/* load additional scripts from popup */
var $script = $html.filter('script[src]');
var loading = [];
for (var i = 0; i < $script.length; i++) {
var script = $script[i];
var src = script.attributes.src.value;
if ($('script[src="' + src + '"]').length) {
continue;
}
if (popup_script_loaded[src]) {
continue;
}
popup_script_loaded[src] = true;
loading.push($.ajax({
url: src,
dataType: 'script',
cache: true,
success: function () {},
}));
}
/* load additional stylesheets from popup */
var $stylesheet = $html.filter('link[rel="stylesheet"]');
for (var i = 0; i < $stylesheet.length; i++) {
var stylesheet = $stylesheet[i];
var href = stylesheet.attributes.href.value;
if ($('link[rel="stylesheet"][href="' + href + '"]').length) {
continue;
}
$(stylesheet).appendTo($('head'));
}
/* add millisecond timeout to let additional scripts load */
$.when(loading, deferred_timeout(100)).always(function () {
/* get content and form (if different) ouf of html */
var $content = $html.find(selector);
if ($content.is('form')) {
var $form = $content;
} else {
var $form = $content.find('form');
}
/* get title out of html */
var title = $html.find(title_selector).text();
/* force textarea width so the dialog is sized to properly
* embed the ckeditor widget. */
$content.find('textarea[data-config]').attr('cols', '80');
$content.dialog({
modal: modal,
'title': title,
width: 'auto',
closeText: $anchor.data('close-button-text') || 'Close',
close: function (ev, ui) {
$(this).dialog('destroy');
},
});
/* if the form doesn't have an @action attribute, set it to URL */
if (! $form.attr('action')) {
$form.attr('action', url);
}
/* hide buttons from content and convert buttons (<button> and <a>)
* into proper dialog buttons */
$content.find('.buttons').hide();
var buttons = Array();
$content.find('.buttons button, .buttons a').each(function(idx, elem) {
var $elem = $(elem);
var button = Object();
button.text = $elem.text();
if ($elem.prop('disabled')) {
button.disabled = 'disabled';
}
var is_cancel_button = $elem.hasClass('cancel') || $elem.hasClass('cancel-button') || $elem.is('[name="cancel"]');
if (is_cancel_button) {
/* special behaviour for the cancel button: do not send
* anything to server, just close the dialog */
button.click = function() { $content.dialog('destroy'); return false; };
} else {
button.click = function() {
if (inplace_submit) {
var action_url = $form.attr('action');
if ($form[0].checkValidity() === false) {
/* if HTML5 validation fails, we trigger a
* click to get the errors displayed */
$form.find('button').click();
return false;
}
$('.ui-dialog-buttonpane button').button('disable');
$.ajax({
type: 'POST',
url: action_url,
data: $form.serialize(),
}).done(function(data) {
$anchor.trigger('gadjo:dialog-done', data);
$content.dialog('destroy');
}).fail(function() { $anchor.trigger('gadjo:dialog-submit-error');
});
} else {
if ($elem.is('a')) {
window.location = $elem.attr('href');
} else {
$elem.click();
}
var validated = true;
$form.find('input, textarea').each(function() {
if ($(this)[0].checkValidity != undefined) {
validated &= $(this)[0].checkValidity();
}
})
if (autoclose_dialog & validated) {
$content.dialog('destroy');
}
}
return false;
};
}
/* add custom classes to some buttons */
if ($elem.hasClass('submit-button')) {
button.class = 'submit-button';
} else if (is_cancel_button) {
button.class = 'cancel-button';
} else if ($elem.hasClass('delete-button') || $elem.is('[name=delete]')) {
button.class = 'delete-button';
}
buttons.push(button);
});
buttons.reverse();
$content.dialog('option', 'buttons', buttons);
/* focus initial input field */
var $form_fields = $form.find('input:visible, textarea:visible, select:visible');
if ($form_fields.length) {
$form_fields[0].focus();
}
/* if received content was in json, apply jQuery Form plugin on it */
if (is_json && $.fn.ajaxForm != undefined) {
$form.ajaxForm({
success: ajaxform_submit,
error: function (jqXHR, textStatus, errorThrown) {
show_error("Dialog box submit failed: " + textStatus + " " + errorThrown);
}
});
}
$anchor.trigger('gadjo:dialog-loaded', $content);
});
return false;
},
error: function (jqXHR, textStatus, errorThrown) {
show_error("Dialog box loading failed: " + textStatus + " " + errorThrown);
}
});
return false;
}
// Tabs
// adapted from https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Tab_Role
gadjo_js.Tabs = function(tabs_el) {
this.parent = tabs_el;
this.tabList = this.parent.querySelector('[role="tablist"]');
this.tabs = this.tabList.querySelectorAll('[role="tab"]');
this.tabpanels = this.parent.querySelectorAll('[role="tabpanel"]');
this.init();
}
gadjo_js.Tabs.prototype = {
init : function() {
const _self = this;
// Add a click event handler to each tab
this.tabs.forEach(function(tab) {
tab.addEventListener('click', function(e) {_self.selectTab.call(_self, e)});
});
// Enable arrow navigation between tabs in the tab list
let tabFocus = 0;
this.tabList.addEventListener('keydown', function(e) {
// Move up & down
if (e.key === "ArrowDown" || e.key === "ArrowUp") {
e.preventDefault();
_self.tabs[tabFocus].setAttribute('tabindex', -1);
if (e.key === "ArrowDown") {
tabFocus++;
// If we're at the end, go to the start
if (tabFocus >= _self.tabs.length) {
tabFocus = 0;
}
} else if (e.key === "ArrowUp") {
tabFocus--;
// If we're at the start, move to the end
if (tabFocus < 0) {
tabFocus = _self.tabs.length - 1;
}
}
_self.tabs[tabFocus].setAttribute('tabindex', 0);
_self.tabs[tabFocus].focus();
}
});
},
selectTab: function(e) {
const btn = e.target && e.target || e;
// Remove all current selected tabs
this.tabList
.querySelectorAll('[aria-selected="true"]')
.forEach(function(t) { t.setAttribute('aria-selected', false); });
// Set this tab as selected
btn.setAttribute('aria-selected', true);
// Hide all tab panels
this.tabpanels.forEach(function(p) { p.hidden = true });
// Show the selected panel
this.parent
.querySelector('#' + btn.getAttribute('aria-controls'))
.hidden = false;
// Adjust URL to mention selected tab
const url = new URL(document.location);
const prefix = btn.getAttribute('aria-controls').split('-')[0];
url.hash = '#open:' + btn.getAttribute('aria-controls').substring(prefix.length + 1);
history.replaceState(null, '', url);
// Trigger gadjo:tab-selected event on panel
$(this.parent.querySelector('#' + btn.getAttribute('aria-controls'))).trigger('gadjo:tab-selected');
return false;
}
}
window.addEventListener('DOMContentLoaded', function() {
$(document.querySelectorAll('.pk-tabs')).each(function(i, el) {
el.tabs = new gadjo_js.Tabs(el);
});
/* focus tab from #open:<tab slug> anchor, to point to open panel */
if (document.location.hash && document.location.hash.indexOf('#open:') == 0) {
const $tab_button = $('#tab-' + document.location.hash.substring(6) + '[role=tab]');
if ($tab_button.length) {
$tab_button.parents('.pk-tabs')[0].tabs.selectTab($tab_button[0]);
}
}
});
var storage = undefined;
try {
window.localStorage._gadgo_test = true;
window.localStorage.removeItem('_gadjo_test');
storage = window.localStorage;
} catch(e) {
try {
window.sessionStorage._gadjo_test = true;
window.sessionStorage.removeItem('_gadjo_test');
storage = window.sessionStorage;
} catch(e) {
storage = Object();
}
}
var cookie_domain = window.location.hostname.split('.').slice(1).join('.');
function readCookie(name) { /* http://www.quirksmode.org/js/cookies.html */
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function set_sidepage_status(sidepage_status) {
storage.sidepage_status = sidepage_status;
if (cookie_domain) {
var date = new Date();
date.setTime(date.getTime() + (10 * 86400 * 1000)); /* a long week */
document.cookie = 'gadjo_sidepage_status=' + sidepage_status +
'; expires=' + date.toGMTString() +
(window.location.protocol == "https:" && "; Secure" || "") +
'; sameSite=Strict' +
'; domain=.' + cookie_domain +
'; path=/';
}
}
function get_sidepage_status() {
if (window.location.protocol == 'file:') {
/* don't open sidepage when loading from a file:// */
return 'collapsed';
}
var sidepage_status = null;
if (cookie_domain) {
sidepage_status = readCookie('gadjo_sidepage_status');
} else {
sidepage_status = storage.sidepage_status;
}
if (!sidepage_status &&
typeof(GADJO_DEFAULT_SIDEPAGE_STATUS) !== "undefined") {
return GADJO_DEFAULT_SIDEPAGE_STATUS;
}
return sidepage_status;
}
document.addEventListener('DOMContentLoaded', function() {
if (document.body.dataset.gadjo === 'true' && document.getElementById('sidepage')) {
document.body.setAttribute('data-has-sidepage', 'true');
if (storage.gadjo_sidebar_menu) {
$('#sidepage-menu').empty().append($(storage.gadjo_sidebar_menu));
}
if (window.innerWidth > 760 && get_sidepage_status() == 'expanded') {
document.body.className += ' sidepage-expanded';
}
}
});
$(function() {
$(document).on('click.gadjo', 'a[rel=popup], a[data-popup]', displayPopup);
if ($('#sidepage').length) {
var sidepage_button = $('#sidepage #applabel');
sidepage_button.on('click', function() {
$('body').addClass('enable-transitions');
$('body').toggleClass('sidepage-expanded');
if ($('body').hasClass('sidepage-expanded')) {
set_sidepage_status('expanded');
} else {
set_sidepage_status('collasped');
}
setTimeout(function() {
// delay to get the CSS transition to run
$(window).trigger('gadjo:sidepage-toggled');
}, 500);
});
}
});
$(function () { /* foldable elements with memory */
function gadjo_unfold_saved() {
$('.gadjo-folded').each(function (idx, elem) {
if (elem.id && sessionStorage['gadjo-foldable-id-' + elem.id + '-' + window.location.pathname] == "true") {
$(elem).removeClass('gadjo-folded');
}
});
}
gadjo_unfold_saved()
$(document).on('gadjo:content-update', gadjo_unfold_saved);
$('body').on('click', '.gadjo-foldable-widget', function (event) {
var $parent = $(event.target).closest('.gadjo-foldable');
$parent.toggleClass('gadjo-folded');
if ($parent[0].id) {
sessionStorage['gadjo-foldable-id-' + $parent[0].id + '-' + window.location.pathname] = ! $parent.is('.gadjo-folded');
}
});
document.querySelectorAll('details.gadjo-remember-open-status').forEach(
el => {
const key = 'gadjo-foldable-id-' + el.id + '-' + window.location.pathname
if (sessionStorage[key] !== undefined) el.open = (sessionStorage[key] === "true")
el.addEventListener('toggle', (e) => sessionStorage[key] = el.open)
}
)
});
$(function () { /* foldable sections */
$('.section.foldable:not(.gadjo-foldable-ignore) > h2, .section.foldable:not(.gadjo-foldable-ignore) > h3').on('click', function() {
$(this).parent().toggleClass('folded');
});
});
$(function () {
if ($('body').data('gadjo')) {
/* add × to close notification messages */
$('.messages > li').each(function(idx, elem) {
var elem = $('<a aria-hidden="true" class="close">×</a>');
$(elem).on('click', function() {
$(this).parent('li').fadeOut('slow');
});
$(this).prepend(elem);
});
}
});
function prepare_kebab_menu() {
$(document.querySelectorAll('.extra-actions-menu')).each(function(i, el) {
this.setAttribute('id', 'extra-actions-menu'+i);
});
$(document.querySelectorAll('.extra-actions-menu-opener')).each(function(i, el) {
if (this.__initialized === true) return;
// closes all kebab menus which are not the one with lst_id id
function close_others(lst_id) {
$(document.querySelectorAll('.extra-actions-menu')).each(function(i, el) {
if(el.id == lst_id) { return ; }
$(this).removeClass('open')
$('[aria-controls='+el.id+']').attr('aria-expanded', 'false')
$('[aria-controls='+el.id+']').removeClass('open')
})
}
const ctrl_id = 'extra-actions-menu'+i;
this.__initialized = true;
this.setAttribute('tabindex', 0);
this.setAttribute('aria-label', 'Menu'); // XXX: translation
this.setAttribute('aria-controls', ctrl_id);
this.setAttribute('aria-expanded', 'false');
this.addEventListener('keydown', function(e) {
if (e.key === 'Enter' || e.key === ' ') {
close_others(ctrl_id);
$(this).toggleClass('open');
$('#'+ctrl_id).toggleClass('open');
this.setAttribute('aria-expanded', $(this).is('.open'));
e.preventDefault();
}
});
this.addEventListener('click', function() {
close_others(ctrl_id);
$(this).toggleClass('open');
$('#'+ctrl_id).toggleClass('open');
this.setAttribute('aria-expanded', $(this).is('.open'));
});
});
}
$(function() {
prepare_kebab_menu();
});
$(document).on('gadjo:content-update', prepare_kebab_menu);
$(function() {
$(document).on('click auxclick', '.clickable-rows tr', function(event) {
var $target = $(event.target);
if ($target.is('input, button, a')) {
return true;
}
if (window.getSelection().toString()) {
return false;
}
var href = $(this).data('url') || $(this).find('a[href]').prop('href');
if (href) {
if (event.which == 2 || event.ctrlKey) {
window.open(href, '_blank');
} else {
window.location = href;
}
return false;
}
});
});
$(function() {
$('.varname').on('click', function() {
var doc = window.document, sel, range;
if (window.getSelection && doc.createRange) {
sel = window.getSelection();
range = doc.createRange();
range.selectNodeContents(this);
sel.removeAllRanges();
sel.addRange(range);
} else if (doc.body.createTextRange) {
range = doc.body.createTextRange();
range.moveToElementText(this);
range.select();
}
return false;
});
});
$(document).on('publik:menu-loaded', function() {
storage.gadjo_sidebar_menu = document.getElementById('sidepage-menu').innerHTML;
});
})();

View File

@ -0,0 +1,58 @@
const multiSelectWidget = (function () {
const addRow = function () {
const widget = this.closest('.gadjo-multi-select-widget')
event.preventDefault()
/* get last row node */
const rows = widget.querySelectorAll('.gadjo-multi-select-widget--field')
const lastRow = rows[rows.length - 1]
/* clone the row */
const newRow = lastRow.cloneNode(true)
/* set new label and ids */
const rowLabel = widget.dataset.rowLabel
const newLabel = rowLabel + ' ' + rows.length
newRow.querySelector('label').textContent = newLabel
const rowId = widget.dataset.rowId
const newId = rowId + '_' + rows.length
newRow.querySelector('label').setAttribute('for', newId)
newRow.querySelector('select').setAttribute('id', newId)
/* add new row after the last row */
lastRow.parentNode.insertBefore(newRow, lastRow.nextSibling)
const removeButton = newRow.querySelector('.gadjo-multi-select-widget--button-remove')
removeButton.addEventListener('click', removeRow)
}
const removeRow = function (event) {
event.preventDefault()
const field = this.closest('.content')
let row = this.closest('.gadjo-multi-select-widget--field')
row.remove()
field.dispatchEvent(new Event('change'))
}
const init = function (container) {
const widgets = container.querySelectorAll('.gadjo-multi-select-widget')
if (!widgets.length) return
widgets.forEach(function (widget) {
const deletBtn = widget.querySelectorAll('.gadjo-multi-select-widget--button-remove')
const addBtn = widget.querySelector('.gadjo-multi-select-widget--button-add')
addBtn.removeEventListener('click', addRow)
addBtn.addEventListener('click', addRow)
deletBtn.forEach(btn => btn.removeEventListener('click', removeRow))
deletBtn.forEach(btn => btn.addEventListener('click', removeRow))
})
}
return {
init,
}
})()
window.addEventListener('DOMContentLoaded', () => multiSelectWidget.init(document))

View File

@ -0,0 +1,69 @@
const $ = window.$
$(function () {
$('div.snapshot-diff tr').each(function () {
let $tr = $(this)
if (!$tr.find('.diff_add, .diff_chg, .diff_sub').length) {
return
}
// mark 3 lines before and after each change
$tr.addClass('no-collapse')
.prev().addClass('no-collapse')
.prev().addClass('no-collapse')
.prev().addClass('no-collapse')
$tr
.next().addClass('no-collapse')
.next().addClass('no-collapse')
.next().addClass('no-collapse')
})
$('div.snapshot-diff tr').each(function () {
let $tr = $(this)
if (!$tr.find('.diff_next a').length) {
return
}
let trId = $tr.find('a').first().attr('href').substring(1)
// collapse previous lines
let previousLines = $tr.prevUntil('.difflib_chg_to')
previousLines.each(function () {
let $line = $(this)
if ($line.hasClass('no-collapse') || $line.hasClass('expand-handler')) {
return
}
$line.addClass(trId).addClass('difflib_chg_to').hide()
})
// add expand
if ($tr.prevAll('.difflib_chg_to').first().hasClass(trId)) {
let expandClass = 'expand-between'
if ($tr.prevAll('.difflib_chg_to').first().prevAll('.no-collapse').length === 0) {
expandClass = 'expand-before'
}
$('<tr class="expand-handler"></tr>')
.html(
'<td colspan="6" class="diff_header expand ' + expandClass + '" data-expand="' + trId + '"></td>',
)
.insertAfter($tr.prevAll('.difflib_chg_to').first())
}
// if last change
if ($tr.find('a').first().text() === 't') {
// collapse next lines
let nextLines = $tr.nextAll()
nextLines.each(function () {
let $line = $(this)
if ($line.hasClass('no-collapse') || $line.hasClass('expand-handler')) {
return
}
$line.addClass(trId + '-end').addClass('difflib_chg_to').hide()
})
// add expand
$('<tr class="expand-handler"></tr>')
.html('<td colspan="6" class="diff_header expand expand-after" data-expand="' + trId + '-end"></td>')
.insertAfter($tr.nextAll('.difflib_chg_to').first())
}
})
$('div.snapshot-diff').show()
$(document).on('click', '.expand-handler', function () {
let $handler = $(this)
$handler.hide()
let expandClass = $handler.find('td.expand').first().data('expand')
$('.' + expandClass).show()
})
})

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,12 +0,0 @@
Copyright 2012 Igor Vaynberg
Version: @@ver@@ Timestamp: @@timestamp@@
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in
compliance with the License. You may obtain a copy of the License in the LICENSE file, or at:
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is
distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and limitations under the License.

View File

@ -1,68 +0,0 @@
Select2
=================
Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results. Look and feel of Select2 is based on the excellent [Chosen](http://harvesthq.github.com/chosen/) library.
To get started -- checkout http://ivaynberg.github.com/select2!
What Does Select2 Support That Chosen Does Not?
-------------------------------------------------
* Working with large datasets: Chosen requires the entire dataset to be loaded as `option` tags in the DOM, which limits
it to working with small-ish datasets. Select2 uses a function to find results on-the-fly, which allows it to partially
load results.
* Paging of results: Since Select2 works with large datasets and only loads a small amount of matching results at a time
it has to support paging. Select2 will call the search function when the user scrolls to the bottom of currently loaded
result set allowing for the 'infinite scrolling' of results.
* Custom markup for results: Chosen only supports rendering text results because that is the only markup supported by
`option` tags. Select2 provides an extension point which can be used to produce any kind of markup to represent results.
* Ability to add results on the fly: Select2 provides the ability to add results from the search term entered by the user, which allows it to be used for
tagging.
Browser Compatibility
--------------------
* IE 8+ (7 mostly works except for [issue with z-index](https://github.com/ivaynberg/select2/issues/37))
* Chrome 8+
* Firefox 3.5+
* Safari 3+
* Opera 10.6+
Integrations
------------
* [Wicket-Select2](https://github.com/ivaynberg/wicket-select2) (Java / Apache Wicket)
* [select2-rails](https://github.com/argerim/select2-rails) (Ruby on Rails)
* [AngularUI](http://angular-ui.github.com/#directives-select2) ([AngularJS](angularjs.org))
* [Django](https://github.com/applegrew/django-select2)
Bug tracker
-----------
Have a bug? Please create an issue here on GitHub!
https://github.com/ivaynberg/select2/issues
Mailing list
------------
Have a question? Ask on our mailing list!
select2@googlegroups.com
https://groups.google.com/d/forum/select2
Copyright and License
---------------------
Copyright 2012 Igor Vaynberg
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in
compliance with the License. You may obtain a copy of the License in the LICENSE file, or at:
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is
distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and limitations under the License.

View File

@ -1,63 +0,0 @@
#!/bin/bash
set -e
echo -n "Enter the version for this release: "
read ver
if [ ! $ver ]; then
echo "Invalid version."
exit
fi
name="select2"
js="$name.js"
mini="$name.min.js"
css="$name.css"
release="$name-$ver"
tag="release-$ver"
branch="build-$ver"
curbranch=`git branch | grep "*" | sed "s/* //"`
timestamp=$(date)
tokens="s/@@ver@@/$ver/g;s/\@@timestamp@@/$timestamp/g"
remote="github"
git branch "$branch"
git checkout "$branch"
echo "Tokenizing..."
find . -name "$js" | xargs -I{} sed -e "$tokens" -i "" {}
find . -name "$css" | xargs -I{} sed -e "$tokens" -i "" {}
git add "$js"
git add "$css"
echo "Minifying..."
echo "/*" > "$mini"
cat LICENSE | sed "$tokens" >> "$mini"
echo "*/" >> "$mini"
curl -s \
-d compilation_level=SIMPLE_OPTIMIZATIONS \
-d output_format=text \
-d output_info=compiled_code \
--data-urlencode "js_code@$js" \
http://closure-compiler.appspot.com/compile \
>> "$mini"
git add "$mini"
git commit -m "release $ver"
echo "Tagging..."
git tag -a "$tag" -m "tagged version $ver"
git push "$remote" --tags
echo "Cleaning Up..."
git checkout "$curbranch"
git branch -D "$branch"
echo "Done"

View File

@ -1,524 +0,0 @@
/*
Version: 3.2 Timestamp: Mon Sep 10 10:38:04 PDT 2012
*/
.select2-container {
position: relative;
display: inline-block;
/* inline-block for ie7 */
zoom: 1;
*display: inline;
vertical-align: top;
}
.select2-container,
.select2-drop,
.select2-search,
.select2-search input{
/*
Force border-box so that % widths fit the parent
container without overlap because of margin/padding.
More Info : http://www.quirksmode.org/css/box.html
*/
-moz-box-sizing: border-box; /* firefox */
-ms-box-sizing: border-box; /* ie */
-webkit-box-sizing: border-box; /* webkit */
-khtml-box-sizing: border-box; /* konqueror */
box-sizing: border-box; /* css3 */
}
.select2-container .select2-choice {
background-color: #fff;
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(0.5, white));
background-image: -webkit-linear-gradient(center bottom, #eeeeee 0%, white 50%);
background-image: -moz-linear-gradient(center bottom, #eeeeee 0%, white 50%);
background-image: -o-linear-gradient(bottom, #eeeeee 0%, #ffffff 50%);
background-image: -ms-linear-gradient(top, #eeeeee 0%, #ffffff 50%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#eeeeee', endColorstr = '#ffffff', GradientType = 0);
background-image: linear-gradient(top, #eeeeee 0%, #ffffff 50%);
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
border: 1px solid #aaa;
display: block;
overflow: hidden;
white-space: nowrap;
position: relative;
height: 26px;
line-height: 26px;
padding: 0 0 0 8px;
color: #444;
text-decoration: none;
}
.select2-container.select2-drop-above .select2-choice
{
border-bottom-color: #aaa;
-webkit-border-radius:0px 0px 4px 4px;
-moz-border-radius:0px 0px 4px 4px;
border-radius:0px 0px 4px 4px;
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(0.9, white));
background-image: -webkit-linear-gradient(center bottom, #eeeeee 0%, white 90%);
background-image: -moz-linear-gradient(center bottom, #eeeeee 0%, white 90%);
background-image: -o-linear-gradient(bottom, #eeeeee 0%, white 90%);
background-image: -ms-linear-gradient(top, #eeeeee 0%,#ffffff 90%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eeeeee', endColorstr='#ffffff',GradientType=0 );
background-image: linear-gradient(top, #eeeeee 0%,#ffffff 90%);
}
.select2-container .select2-choice span {
margin-right: 26px;
display: block;
overflow: hidden;
white-space: nowrap;
-o-text-overflow: ellipsis;
-ms-text-overflow: ellipsis;
text-overflow: ellipsis;
}
.select2-container .select2-choice abbr {
display: block;
position: absolute;
right: 26px;
top: 8px;
width: 12px;
height: 12px;
font-size: 1px;
background: url('select2.png') right top no-repeat;
cursor: pointer;
text-decoration: none;
border:0;
outline: 0;
}
.select2-container .select2-choice abbr:hover {
background-position: right -11px;
cursor: pointer;
}
.select2-drop {
background: #fff;
color: #000;
border: 1px solid #aaa;
border-top: 0;
position: absolute;
top: 100%;
-webkit-box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
-moz-box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
-o-box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
z-index: 9999;
width:100%;
margin-top:-1px;
-webkit-border-radius: 0 0 4px 4px;
-moz-border-radius: 0 0 4px 4px;
border-radius: 0 0 4px 4px;
}
.select2-drop.select2-drop-above {
-webkit-border-radius: 4px 4px 0px 0px;
-moz-border-radius: 4px 4px 0px 0px;
border-radius: 4px 4px 0px 0px;
margin-top:1px;
border-top: 1px solid #aaa;
border-bottom: 0;
-webkit-box-shadow: 0 -4px 5px rgba(0, 0, 0, .15);
-moz-box-shadow: 0 -4px 5px rgba(0, 0, 0, .15);
-o-box-shadow: 0 -4px 5px rgba(0, 0, 0, .15);
box-shadow: 0 -4px 5px rgba(0, 0, 0, .15);
}
.select2-container .select2-choice div {
-webkit-border-radius: 0 4px 4px 0;
-moz-border-radius: 0 4px 4px 0;
border-radius: 0 4px 4px 0;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
background: #ccc;
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #ccc), color-stop(0.6, #eee));
background-image: -webkit-linear-gradient(center bottom, #ccc 0%, #eee 60%);
background-image: -moz-linear-gradient(center bottom, #ccc 0%, #eee 60%);
background-image: -o-linear-gradient(bottom, #ccc 0%, #eee 60%);
background-image: -ms-linear-gradient(top, #cccccc 0%, #eeeeee 60%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#cccccc', endColorstr = '#eeeeee', GradientType = 0);
background-image: linear-gradient(top, #cccccc 0%, #eeeeee 60%);
border-left: 1px solid #aaa;
position: absolute;
right: 0;
top: 0;
display: block;
height: 100%;
width: 18px;
}
.select2-container .select2-choice div b {
background: url('select2.png') no-repeat 0 1px;
display: block;
width: 100%;
height: 100%;
}
.select2-search {
display: inline-block;
white-space: nowrap;
z-index: 10000;
min-height: 26px;
width: 100%;
margin: 0;
padding-left: 4px;
padding-right: 4px;
}
.select2-search-hidden {
display: block;
position: absolute;
left: -10000px;
}
.select2-search input {
background: #fff url('select2.png') no-repeat 100% -22px;
background: url('select2.png') no-repeat 100% -22px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee));
background: url('select2.png') no-repeat 100% -22px, -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%);
background: url('select2.png') no-repeat 100% -22px, -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
background: url('select2.png') no-repeat 100% -22px, -o-linear-gradient(bottom, white 85%, #eeeeee 99%);
background: url('select2.png') no-repeat 100% -22px, -ms-linear-gradient(top, #ffffff 85%, #eeeeee 99%);
background: url('select2.png') no-repeat 100% -22px, linear-gradient(top, #ffffff 85%, #eeeeee 99%);
padding: 4px 20px 4px 5px;
outline: 0;
border: 1px solid #aaa;
font-family: sans-serif;
font-size: 1em;
width:100%;
margin:0;
height:auto !important;
min-height: 26px;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
border-radius: 0;
-moz-border-radius: 0;
-webkit-border-radius: 0;
}
.select2-drop.select2-drop-above .select2-search input
{
margin-top:4px;
}
.select2-search input.select2-active {
background: #fff url('spinner.gif') no-repeat 100%;
background: url('spinner.gif') no-repeat 100%, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee));
background: url('spinner.gif') no-repeat 100%, -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%);
background: url('spinner.gif') no-repeat 100%, -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
background: url('spinner.gif') no-repeat 100%, -o-linear-gradient(bottom, white 85%, #eeeeee 99%);
background: url('spinner.gif') no-repeat 100%, -ms-linear-gradient(top, #ffffff 85%, #eeeeee 99%);
background: url('spinner.gif') no-repeat 100%, linear-gradient(top, #ffffff 85%, #eeeeee 99%);
}
.select2-container-active .select2-choice,
.select2-container-active .select2-choices {
-webkit-box-shadow: 0 0 5px rgba(0,0,0,.3);
-moz-box-shadow : 0 0 5px rgba(0,0,0,.3);
-o-box-shadow : 0 0 5px rgba(0,0,0,.3);
box-shadow : 0 0 5px rgba(0,0,0,.3);
border: 1px solid #5897fb;
outline: none;
}
.select2-dropdown-open .select2-choice {
border: 1px solid #aaa;
border-bottom-color: transparent;
-webkit-box-shadow: 0 1px 0 #fff inset;
-moz-box-shadow : 0 1px 0 #fff inset;
-o-box-shadow : 0 1px 0 #fff inset;
box-shadow : 0 1px 0 #fff inset;
background-color: #eee;
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, white), color-stop(0.5, #eeeeee));
background-image: -webkit-linear-gradient(center bottom, white 0%, #eeeeee 50%);
background-image: -moz-linear-gradient(center bottom, white 0%, #eeeeee 50%);
background-image: -o-linear-gradient(bottom, white 0%, #eeeeee 50%);
background-image: -ms-linear-gradient(top, #ffffff 0%,#eeeeee 50%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eeeeee',GradientType=0 );
background-image: linear-gradient(top, #ffffff 0%,#eeeeee 50%);
-webkit-border-bottom-left-radius : 0;
-webkit-border-bottom-right-radius: 0;
-moz-border-radius-bottomleft : 0;
-moz-border-radius-bottomright: 0;
border-bottom-left-radius : 0;
border-bottom-right-radius: 0;
}
.select2-dropdown-open .select2-choice div {
background: transparent;
border-left: none;
}
.select2-dropdown-open .select2-choice div b {
background-position: -18px 1px;
}
/* results */
.select2-results {
margin: 4px 4px 4px 0;
padding: 0 0 0 4px;
position: relative;
overflow-x: hidden;
overflow-y: auto;
max-height: 200px;
}
.select2-results ul.select2-result-sub {
margin: 0 0 0 0;
}
.select2-results ul.select2-result-sub > li .select2-result-label { padding-left: 20px }
.select2-results ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 40px }
.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 60px }
.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 80px }
.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 100px }
.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 110px }
.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 120px }
.select2-results li {
list-style: none;
display: list-item;
}
.select2-results li.select2-result-with-children > .select2-result-label {
font-weight: bold;
}
.select2-results .select2-result-label {
padding: 3px 7px 4px;
margin: 0;
cursor: pointer;
}
.select2-results .select2-highlighted {
background: #3875d7;
color: #fff;
}
.select2-results li em {
background: #feffde;
font-style: normal;
}
.select2-results .select2-highlighted em {
background: transparent;
}
.select2-results .select2-no-results,
.select2-results .select2-searching,
.select2-results .select2-selection-limit {
background: #f4f4f4;
display: list-item;
}
/*
disabled look for already selected choices in the results dropdown
.select2-results .select2-disabled.select2-highlighted {
color: #666;
background: #f4f4f4;
display: list-item;
cursor: default;
}
.select2-results .select2-disabled {
background: #f4f4f4;
display: list-item;
cursor: default;
}
*/
.select2-results .select2-disabled {
display: none;
}
.select2-more-results.select2-active {
background: #f4f4f4 url('spinner.gif') no-repeat 100%;
}
.select2-more-results {
background: #f4f4f4;
display: list-item;
}
/* disabled styles */
.select2-container.select2-container-disabled .select2-choice {
background-color: #f4f4f4;
background-image: none;
border: 1px solid #ddd;
cursor: default;
}
.select2-container.select2-container-disabled .select2-choice div {
background-color: #f4f4f4;
background-image: none;
border-left: 0;
}
/* multiselect */
.select2-container-multi .select2-choices {
background-color: #fff;
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
background-image: -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
background-image: -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
background-image: -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
background-image: -ms-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
background-image: linear-gradient(top, #eeeeee 1%, #ffffff 15%);
border: 1px solid #aaa;
margin: 0;
padding: 0;
cursor: text;
overflow: hidden;
height: auto !important;
height: 1%;
position: relative;
}
.select2-container-multi .select2-choices {
min-height: 26px;
}
.select2-container-multi.select2-container-active .select2-choices {
-webkit-box-shadow: 0 0 5px rgba(0,0,0,.3);
-moz-box-shadow : 0 0 5px rgba(0,0,0,.3);
-o-box-shadow : 0 0 5px rgba(0,0,0,.3);
box-shadow : 0 0 5px rgba(0,0,0,.3);
border: 1px solid #5897fb;
outline: none;
}
.select2-container-multi .select2-choices li {
float: left;
list-style: none;
}
.select2-container-multi .select2-choices .select2-search-field {
white-space: nowrap;
margin: 0;
padding: 0;
}
.select2-container-multi .select2-choices .select2-search-field input {
color: #666;
background: transparent !important;
font-family: sans-serif;
font-size: 100%;
height: 15px;
padding: 5px;
margin: 1px 0;
outline: 0;
border: 0;
-webkit-box-shadow: none;
-moz-box-shadow : none;
-o-box-shadow : none;
box-shadow : none;
}
.select2-container-multi .select2-choices .select2-search-field input.select2-active {
background: #fff url('spinner.gif') no-repeat 100% !important;
}
.select2-default {
color: #999 !important;
}
.select2-container-multi .select2-choices .select2-search-choice {
-webkit-border-radius: 3px;
-moz-border-radius : 3px;
border-radius : 3px;
-moz-background-clip : padding;
-webkit-background-clip: padding-box;
background-clip : padding-box;
background-color: #e4e4e4;
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f4f4', endColorstr='#eeeeee', GradientType=0 );
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
background-image: -o-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
background-image: -ms-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
background-image: linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
-webkit-box-shadow: 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
-moz-box-shadow : 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
box-shadow : 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
color: #333;
border: 1px solid #aaaaaa;
line-height: 13px;
padding: 3px 5px 3px 18px;
margin: 3px 0 3px 5px;
position: relative;
cursor: default;
}
.select2-container-multi .select2-choices .select2-search-choice span {
cursor: default;
}
.select2-container-multi .select2-choices .select2-search-choice-focus {
background: #d4d4d4;
}
.select2-search-choice-close {
display: block;
position: absolute;
right: 3px;
top: 4px;
width: 12px;
height: 13px;
font-size: 1px;
background: url('select2.png') right top no-repeat;
outline: none;
}
.select2-container-multi .select2-search-choice-close {
left: 3px;
}
.select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close:hover {
background-position: right -11px;
}
.select2-container-multi .select2-choices .select2-search-choice-focus .select2-search-choice-close {
background-position: right -11px;
}
/* disabled styles */
.select2-container-multi.select2-container-disabled .select2-choices{
background-color: #f4f4f4;
background-image: none;
border: 1px solid #ddd;
cursor: default;
}
.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice {
background-image: none;
background-color: #f4f4f4;
border: 1px solid #ddd;
padding: 3px 5px 3px 5px;
}
.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice .select2-search-choice-close {
display: none;
}
/* end multiselect */
.select2-result-selectable .select2-match,
.select2-result-unselectable .select2-result-selectable .select2-match { text-decoration: underline; }
.select2-result-unselectable .select2-match { text-decoration: none; }
.select2-offscreen { position: absolute; left: -10000px; }
/* Retina-ize icons */
@media only screen and (-webkit-min-device-pixel-ratio: 1.5) {
.select2-search input, .select2-search-choice-close, .select2-container .select2-choice abbr, .select2-container .select2-choice div b {
background-image: url(select2x2.png) !important;
background-repeat: no-repeat !important;
background-size: 60px 40px !important;
}
.select2-search input {
background-position: 100% -21px !important;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,82 +0,0 @@
/*
Copyright 2012 Igor Vaynberg
Version: 3.2 Timestamp: Mon Sep 10 10:38:04 PDT 2012
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in
compliance with the License. You may obtain a copy of the License in the LICENSE file, or at:
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is
distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and limitations under the License.
*/
(function(e){"undefined"==typeof e.fn.each2&&e.fn.extend({each2:function(g){for(var i=e([0]),m=-1,s=this.length;++m<s&&(i.context=i[0]=this[m])&&!1!==g.call(i[0],m,i););return this}})})(jQuery);
(function(e,g){function i(a,b){var c=0,d=b.length,j;if("undefined"===typeof a)return-1;if(a.constructor===String)for(;c<d;c+=1){if(0===a.localeCompare(b[c]))return c}else for(;c<d;c+=1)if(j=b[c],j.constructor===String){if(0===j.localeCompare(a))return c}else if(j===a)return c;return-1}function m(a,b){return a===b?!0:a===g||b===g||null===a||null===b?!1:a.constructor===String?0===a.localeCompare(b):b.constructor===String?0===b.localeCompare(a):!1}function s(a,b){var c,d,j;if(null===a||1>a.length)return[];
c=a.split(b);d=0;for(j=c.length;d<j;d+=1)c[d]=e.trim(c[d]);return c}function A(a,b,c){var c=c||g,d;return function(){var j=arguments;window.clearTimeout(d);d=window.setTimeout(function(){b.apply(c,j)},a)}}function l(a){a.preventDefault();a.stopPropagation()}function B(a,b,c){var d=a.toUpperCase().indexOf(b.toUpperCase()),b=b.length;0>d?c.push(a):(c.push(a.substring(0,d)),c.push("<span class='select2-match'>"),c.push(a.substring(d,d+b)),c.push("</span>"),c.push(a.substring(d+b,a.length)))}function C(a){var b,
c=0,d=null,j=a.quietMillis||100;return function(h){window.clearTimeout(b);b=window.setTimeout(function(){var b=c+=1,j=a.data,n=a.transport||e.ajax,f=a.traditional||!1,g=a.type||"GET",j=j.call(this,h.term,h.page,h.context);null!==d&&d.abort();d=n.call(null,{url:a.url,dataType:a.dataType,data:j,type:g,traditional:f,success:function(d){b<c||(d=a.results(d,h.page),h.callback(d))}})},j)}}function D(a){var b=a,c,d=function(a){return""+a.text};e.isArray(b)||(d=b.text,e.isFunction(d)||(c=b.text,d=function(a){return a[c]}),
b=b.results);return function(a){var c=a.term,f={results:[]},k;if(c==="")a.callback({results:b});else{k=function(b,f){var g,t,b=b[0];if(b.children){g={};for(t in b)b.hasOwnProperty(t)&&(g[t]=b[t]);g.children=[];e(b.children).each2(function(a,b){k(b,g.children)});g.children.length&&f.push(g)}else a.matcher(c,d(b))&&f.push(b)};e(b).each2(function(a,b){k(b,f.results)});a.callback(f)}}}function E(a){return e.isFunction(a)?a:function(b){var c=b.term,d={results:[]};e(a).each(function(){var a=this.text!==
g,e=a?this.text:this;if(""===c||b.matcher(c,e))d.results.push(a?this:{id:this,text:this})});b.callback(d)}}function u(a){if(e.isFunction(a))return!0;if(!a)return!1;throw Error("formatterName must be a function or a falsy value");}function v(a){return e.isFunction(a)?a():a}function F(a){var b=0;e.each(a,function(a,d){d.children?b+=F(d.children):b++});return b}function H(a,b,c,d){var e=a,h=!1,f,k,n,o;if(!d.createSearchChoice||!d.tokenSeparators||1>d.tokenSeparators.length)return g;for(;;){h=-1;k=0;
for(n=d.tokenSeparators.length;k<n&&!(o=d.tokenSeparators[k],h=a.indexOf(o),0<=h);k++);if(0>h)break;f=a.substring(0,h);a=a.substring(h+o.length);if(0<f.length&&(f=d.createSearchChoice(f,b),f!==g&&null!==f&&d.id(f)!==g&&null!==d.id(f))){h=!1;k=0;for(n=b.length;k<n;k++)if(m(d.id(f),d.id(b[k]))){h=!0;break}h||c(f)}}if(0!=e.localeCompare(a))return a}function x(a,b){var c=function(){};c.prototype=new a;c.prototype.constructor=c;c.prototype.parent=a.prototype;c.prototype=e.extend(c.prototype,b);return c}
if(window.Select2===g){var f,w,y,z,G,q;f={TAB:9,ENTER:13,ESC:27,SPACE:32,LEFT:37,UP:38,RIGHT:39,DOWN:40,SHIFT:16,CTRL:17,ALT:18,PAGE_UP:33,PAGE_DOWN:34,HOME:36,END:35,BACKSPACE:8,DELETE:46,isArrow:function(a){a=a.which?a.which:a;switch(a){case f.LEFT:case f.RIGHT:case f.UP:case f.DOWN:return!0}return!1},isControl:function(a){switch(a.which){case f.SHIFT:case f.CTRL:case f.ALT:return!0}return a.metaKey?!0:!1},isFunctionKey:function(a){a=a.which?a.which:a;return 112<=a&&123>=a}};var I=1;G=function(){return I++};
e(document).delegate("body","mousemove",function(a){e.data(document,"select2-lastpos",{x:a.pageX,y:a.pageY})});e(document).ready(function(){e(document).delegate("body","mousedown touchend",function(a){var b=e(a.target).closest("div.select2-container").get(0),c;b?e(document).find("div.select2-container-active").each(function(){this!==b&&e(this).data("select2").blur()}):(b=e(a.target).closest("div.select2-drop").get(0),e(document).find("div.select2-drop-active").each(function(){this!==b&&e(this).data("select2").blur()}));
b=e(a.target);c=b.attr("for");"LABEL"===a.target.tagName&&(c&&0<c.length)&&(b=e("#"+c),b=b.data("select2"),b!==g&&(b.focus(),a.preventDefault()))})});w=x(Object,{bind:function(a){var b=this;return function(){a.apply(b,arguments)}},init:function(a){var b,c;this.opts=a=this.prepareOpts(a);this.id=a.id;a.element.data("select2")!==g&&null!==a.element.data("select2")&&this.destroy();this.enabled=!0;this.container=this.createContainer();this.containerId="s2id_"+(a.element.attr("id")||"autogen"+G());this.containerSelector=
"#"+this.containerId.replace(/([;&,\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g,"\\$1");this.container.attr("id",this.containerId);var d=!1,j;this.body=function(){!1===d&&(j=a.element.closest("body"),d=!0);return j};a.element.attr("class")!==g&&this.container.addClass(a.element.attr("class").replace(/validate\[[\S ]+] ?/,""));this.container.css(v(a.containerCss));this.container.addClass(v(a.containerCssClass));this.opts.element.data("select2",this).hide().before(this.container);this.container.data("select2",
this);this.dropdown=this.container.find(".select2-drop");this.dropdown.addClass(v(a.dropdownCssClass));this.dropdown.data("select2",this);this.results=b=this.container.find(".select2-results");this.search=c=this.container.find("input.select2-input");c.attr("tabIndex",this.opts.element.attr("tabIndex"));this.resultsPage=0;this.context=null;this.initContainer();this.initContainerWidth();this.results.bind("mousemove",function(a){var b=e.data(document,"select2-lastpos");(b===g||b.x!==a.pageX||b.y!==a.pageY)&&
e(a.target).trigger("mousemove-filtered",a)});this.dropdown.delegate(".select2-results","mousemove-filtered",this.bind(this.highlightUnderEvent));var h=this.results,f=A(80,function(a){h.trigger("scroll-debounced",a)});h.bind("scroll",function(a){0<=i(a.target,h.get())&&f(a)});this.dropdown.delegate(".select2-results","scroll-debounced",this.bind(this.loadMoreIfNeeded));e.fn.mousewheel&&b.mousewheel(function(a,c,d,e){c=b.scrollTop();0<e&&0>=c-e?(b.scrollTop(0),l(a)):0>e&&b.get(0).scrollHeight-b.scrollTop()+
e<=b.height()&&(b.scrollTop(b.get(0).scrollHeight-b.height()),l(a))});c.bind("keydown",function(){e.data(c,"keyup-change-value")===g&&e.data(c,"keyup-change-value",c.val())});c.bind("keyup",function(){var a=e.data(c,"keyup-change-value");a!==g&&c.val()!==a&&(e.removeData(c,"keyup-change-value"),c.trigger("keyup-change"))});c.bind("keyup-change",this.bind(this.updateResults));c.bind("focus",function(){c.addClass("select2-focused");" "===c.val()&&c.val("")});c.bind("blur",function(){c.removeClass("select2-focused")});
this.dropdown.delegate(".select2-results","mouseup",this.bind(function(a){0<e(a.target).closest(".select2-result-selectable:not(.select2-disabled)").length?(this.highlightUnderEvent(a),this.selectHighlighted(a)):this.focusSearch();l(a)}));this.dropdown.bind("click mouseup mousedown",function(a){a.stopPropagation()});e.isFunction(this.opts.initSelection)&&(this.initSelection(),this.monitorSource());(a.element.is(":disabled")||a.element.is("[readonly='readonly']"))&&this.disable()},destroy:function(){var a=
this.opts.element.data("select2");a!==g&&(a.container.remove(),a.dropdown.remove(),a.opts.element.removeData("select2").unbind(".select2").show())},prepareOpts:function(a){var b,c,d;b=a.element;"select"===b.get(0).tagName.toLowerCase()&&(this.select=c=a.element);c&&e.each("id multiple ajax query createSearchChoice initSelection data tags".split(" "),function(){if(this in a)throw Error("Option '"+this+"' is not allowed for Select2 when attached to a <select> element.");});a=e.extend({},{populateResults:function(b,
c,d){var f,n=this.opts.id,o=this;f=function(b,c,j){var h,l,i,m,r,p,q;h=0;for(l=b.length;h<l;h=h+1){i=b[h];m=n(i)!==g;r=i.children&&i.children.length>0;p=e("<li></li>");p.addClass("select2-results-dept-"+j);p.addClass("select2-result");p.addClass(m?"select2-result-selectable":"select2-result-unselectable");r&&p.addClass("select2-result-with-children");p.addClass(o.opts.formatResultCssClass(i));m=e("<div></div>");m.addClass("select2-result-label");q=a.formatResult(i,m,d);q!==g&&m.html(o.opts.escapeMarkup(q));
p.append(m);if(r){r=e("<ul></ul>");r.addClass("select2-result-sub");f(i.children,r,j+1);p.append(r)}p.data("select2-data",i);c.append(p)}};f(c,b,0)}},e.fn.select2.defaults,a);"function"!==typeof a.id&&(d=a.id,a.id=function(a){return a[d]});if(c)a.query=this.bind(function(a){var c={results:[],more:false},d=a.term,f,n,o;o=function(b,c){var e;if(b.is("option"))a.matcher(d,b.text(),b)&&c.push({id:b.attr("value"),text:b.text(),element:b.get(),css:b.attr("class")});else if(b.is("optgroup")){e={text:b.attr("label"),
children:[],element:b.get(),css:b.attr("class")};b.children().each2(function(a,b){o(b,e.children)});e.children.length>0&&c.push(e)}};f=b.children();if(this.getPlaceholder()!==g&&f.length>0){n=f[0];e(n).text()===""&&(f=f.not(n))}f.each2(function(a,b){o(b,c.results)});a.callback(c)}),a.id=function(a){return a.id},a.formatResultCssClass=function(a){return a.css};else if(!("query"in a))if("ajax"in a){if((c=a.element.data("ajax-url"))&&0<c.length)a.ajax.url=c;a.query=C(a.ajax)}else"data"in a?a.query=D(a.data):
"tags"in a&&(a.query=E(a.tags),a.createSearchChoice=function(a){return{id:a,text:a}},a.initSelection=function(b,c){var d=[];e(s(b.val(),a.separator)).each(function(){var b=this,c=this,j=a.tags;e.isFunction(j)&&(j=j());e(j).each(function(){if(m(this.id,b)){c=this.text;return false}});d.push({id:b,text:c})});c(d)});if("function"!==typeof a.query)throw"query function not defined for Select2 "+a.element.attr("id");return a},monitorSource:function(){this.opts.element.bind("change.select2",this.bind(function(){!0!==
this.opts.element.data("select2-change-triggered")&&this.initSelection()}))},triggerChange:function(a){a=a||{};a=e.extend({},a,{type:"change",val:this.val()});this.opts.element.data("select2-change-triggered",!0);this.opts.element.trigger(a);this.opts.element.data("select2-change-triggered",!1);this.opts.element.click();this.opts.blurOnChange&&this.opts.element.blur()},enable:function(){this.enabled||(this.enabled=!0,this.container.removeClass("select2-container-disabled"))},disable:function(){this.enabled&&
(this.close(),this.enabled=!1,this.container.addClass("select2-container-disabled"))},opened:function(){return this.container.hasClass("select2-dropdown-open")},positionDropdown:function(){var a=this.container.offset(),b=this.container.outerHeight(),c=this.container.outerWidth(),d=this.dropdown.outerHeight(),j=e(window).scrollTop()+document.documentElement.clientHeight,b=a.top+b,f=a.left,j=b+d<=j,g=a.top-d>=this.body().scrollTop(),k=this.dropdown.hasClass("select2-drop-above"),n;"static"!==this.body().css("position")&&
(n=this.body().offset(),b-=n.top,f-=n.left);k?(k=!0,!g&&j&&(k=!1)):(k=!1,!j&&g&&(k=!0));k?(b=a.top-d,this.container.addClass("select2-drop-above"),this.dropdown.addClass("select2-drop-above")):(this.container.removeClass("select2-drop-above"),this.dropdown.removeClass("select2-drop-above"));a=e.extend({top:b,left:f,width:c},v(this.opts.dropdownCss));this.dropdown.css(a)},shouldOpen:function(){var a;if(this.opened())return!1;a=e.Event("open");this.opts.element.trigger(a);return!a.isDefaultPrevented()},
clearDropdownAlignmentPreference:function(){this.container.removeClass("select2-drop-above");this.dropdown.removeClass("select2-drop-above")},open:function(){if(!this.shouldOpen())return!1;window.setTimeout(this.bind(this.opening),1);return!0},opening:function(){var a=this.containerId,b=this.containerSelector,c="scroll."+a,d="resize."+a;this.container.parents().each(function(){e(this).bind(c,function(){var a=e(b);0==a.length&&e(this).unbind(c);a.select2("close")})});e(window).bind(d,function(){var a=
e(b);0==a.length&&e(window).unbind(d);a.select2("close")});this.clearDropdownAlignmentPreference();" "===this.search.val()&&this.search.val("");this.container.addClass("select2-dropdown-open").addClass("select2-container-active");this.updateResults(!0);this.dropdown[0]!==this.body().children().last()[0]&&this.dropdown.detach().appendTo(this.body());this.dropdown.show();this.positionDropdown();this.dropdown.addClass("select2-drop-active");this.ensureHighlightVisible();this.focusSearch()},close:function(){if(this.opened()){var a=
this;this.container.parents().each(function(){e(this).unbind("scroll."+a.containerId)});e(window).unbind("resize."+this.containerId);this.clearDropdownAlignmentPreference();this.dropdown.hide();this.container.removeClass("select2-dropdown-open").removeClass("select2-container-active");this.results.empty();this.clearSearch();this.opts.element.trigger(e.Event("close"))}},clearSearch:function(){},ensureHighlightVisible:function(){var a=this.results,b,c,d,f;c=this.highlight();0>c||(0==c?a.scrollTop(0):
(b=a.find(".select2-result-selectable"),d=e(b[c]),f=d.offset().top+d.outerHeight(),c===b.length-1&&(b=a.find("li.select2-more-results"),0<b.length&&(f=b.offset().top+b.outerHeight())),b=a.offset().top+a.outerHeight(),f>b&&a.scrollTop(a.scrollTop()+(f-b)),d=d.offset().top-a.offset().top,0>d&&a.scrollTop(a.scrollTop()+d)))},moveHighlight:function(a){for(var b=this.results.find(".select2-result-selectable"),c=this.highlight();-1<c&&c<b.length;){var c=c+a,d=e(b[c]);if(d.hasClass("select2-result-selectable")&&
!d.hasClass("select2-disabled")){this.highlight(c);break}}},highlight:function(a){var b=this.results.find(".select2-result-selectable").not(".select2-disabled");if(0===arguments.length)return i(b.filter(".select2-highlighted")[0],b.get());a>=b.length&&(a=b.length-1);0>a&&(a=0);b.removeClass("select2-highlighted");e(b[a]).addClass("select2-highlighted");this.ensureHighlightVisible()},countSelectableResults:function(){return this.results.find(".select2-result-selectable").not(".select2-disabled").length},
highlightUnderEvent:function(a){a=e(a.target).closest(".select2-result-selectable");if(0<a.length&&!a.is(".select2-highlighted")){var b=this.results.find(".select2-result-selectable");this.highlight(b.index(a))}else 0==a.length&&this.results.find(".select2-highlighted").removeClass("select2-highlighted")},loadMoreIfNeeded:function(){var a=this.results,b=a.find("li.select2-more-results"),c,d=this.resultsPage+1,e=this,f=this.search.val(),g=this.context;0!==b.length&&(c=b.offset().top-a.offset().top-
a.height(),0>=c&&(b.addClass("select2-active"),this.opts.query({term:f,page:d,context:g,matcher:this.opts.matcher,callback:this.bind(function(c){e.opened()&&(e.opts.populateResults.call(this,a,c.results,{term:f,page:d,context:g}),!0===c.more?(b.detach().appendTo(a).text(e.opts.formatLoadMore(d+1)),window.setTimeout(function(){e.loadMoreIfNeeded()},10)):b.remove(),e.positionDropdown(),e.resultsPage=d)})})))},tokenize:function(){},updateResults:function(a){function b(){f.scrollTop(0);d.removeClass("select2-active");
k.positionDropdown()}function c(a){f.html(k.opts.escapeMarkup(a));b()}var d=this.search,f=this.results,h=this.opts,i,k=this;if(!(!0!==a&&(!1===this.showSearchInput||!this.opened()))){d.addClass("select2-active");if(1<=h.maximumSelectionSize&&(i=this.data(),e.isArray(i)&&i.length>=h.maximumSelectionSize&&u(h.formatSelectionTooBig,"formatSelectionTooBig"))){c("<li class='select2-selection-limit'>"+h.formatSelectionTooBig(h.maximumSelectionSize)+"</li>");return}d.val().length<h.minimumInputLength&&u(h.formatInputTooShort,
"formatInputTooShort")?c("<li class='select2-no-results'>"+h.formatInputTooShort(d.val(),h.minimumInputLength)+"</li>"):(c("<li class='select2-searching'>"+h.formatSearching()+"</li>"),i=this.tokenize(),i!=g&&null!=i&&d.val(i),this.resultsPage=1,h.query({term:d.val(),page:this.resultsPage,context:null,matcher:h.matcher,callback:this.bind(function(i){var l;this.opened()&&((this.context=i.context===g?null:i.context,this.opts.createSearchChoice&&""!==d.val()&&(l=this.opts.createSearchChoice.call(null,
d.val(),i.results),l!==g&&null!==l&&k.id(l)!==g&&null!==k.id(l)&&0===e(i.results).filter(function(){return m(k.id(this),k.id(l))}).length&&i.results.unshift(l)),0===i.results.length&&u(h.formatNoMatches,"formatNoMatches"))?c("<li class='select2-no-results'>"+h.formatNoMatches(d.val())+"</li>"):(f.empty(),k.opts.populateResults.call(this,f,i.results,{term:d.val(),page:this.resultsPage,context:null}),!0===i.more&&u(h.formatLoadMore,"formatLoadMore")&&(f.append("<li class='select2-more-results'>"+k.opts.escapeMarkup(h.formatLoadMore(this.resultsPage))+
"</li>"),window.setTimeout(function(){k.loadMoreIfNeeded()},10)),this.postprocessResults(i,a),b()))})}))}},cancel:function(){this.close()},blur:function(){this.close();this.container.removeClass("select2-container-active");this.dropdown.removeClass("select2-drop-active");this.search[0]===document.activeElement&&this.search.blur();this.clearSearch();this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus")},focusSearch:function(){this.search.show();this.search.focus();
window.setTimeout(this.bind(function(){this.search.show();this.search.focus();this.search.val(this.search.val())}),10)},selectHighlighted:function(){var a=this.highlight(),b=this.results.find(".select2-highlighted").not(".select2-disabled"),c=b.closest(".select2-result-selectable").data("select2-data");c&&(b.addClass("select2-disabled"),this.highlight(a),this.onSelect(c))},getPlaceholder:function(){return this.opts.element.attr("placeholder")||this.opts.element.attr("data-placeholder")||this.opts.element.data("placeholder")||
this.opts.placeholder},initContainerWidth:function(){var a=function(){var a,c,d,f;if("off"===this.opts.width)return null;if("element"===this.opts.width)return 0===this.opts.element.outerWidth()?"auto":this.opts.element.outerWidth()+"px";if("copy"===this.opts.width||"resolve"===this.opts.width){a=this.opts.element.attr("style");if(a!==g){a=a.split(";");d=0;for(f=a.length;d<f;d+=1)if(c=a[d].replace(/\s/g,"").match(/width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/),null!==c&&1<=c.length)return c[1]}return"resolve"===
this.opts.width?(a=this.opts.element.css("width"),0<a.indexOf("%")?a:0===this.opts.element.outerWidth()?"auto":this.opts.element.outerWidth()+"px"):null}return e.isFunction(this.opts.width)?this.opts.width():this.opts.width}.call(this);null!==a&&this.container.attr("style","width: "+a)}});y=x(w,{createContainer:function(){return e("<div></div>",{"class":"select2-container"}).html(" <a href='#' onclick='return false;' class='select2-choice'> <span></span><abbr class='select2-search-choice-close' style='display:none;'></abbr> <div><b></b></div></a> <div class='select2-drop select2-offscreen'> <div class='select2-search'> <input type='text' autocomplete='off' class='select2-input'/> </div> <ul class='select2-results'> </ul></div>")},
opening:function(){this.search.show();this.parent.opening.apply(this,arguments);this.dropdown.removeClass("select2-offscreen")},close:function(){this.opened()&&(this.parent.close.apply(this,arguments),this.dropdown.removeAttr("style").addClass("select2-offscreen").insertAfter(this.selection).show())},focus:function(){this.close();this.selection.focus()},isFocused:function(){return this.selection[0]===document.activeElement},cancel:function(){this.parent.cancel.apply(this,arguments);this.selection.focus()},
initContainer:function(){var a,b=this.dropdown;this.selection=a=this.container.find(".select2-choice");this.search.bind("keydown",this.bind(function(a){if(this.enabled)if(a.which===f.PAGE_UP||a.which===f.PAGE_DOWN)l(a);else if(this.opened())switch(a.which){case f.UP:case f.DOWN:this.moveHighlight(a.which===f.UP?-1:1);l(a);break;case f.TAB:case f.ENTER:this.selectHighlighted();l(a);break;case f.ESC:this.cancel(a),l(a)}else a.which===f.TAB||f.isControl(a)||f.isFunctionKey(a)||a.which===f.ESC||!1===
this.opts.openOnEnter&&a.which===f.ENTER||this.open()}));this.search.bind("focus",this.bind(function(){this.selection.attr("tabIndex","-1")}));this.search.bind("blur",this.bind(function(){this.opened()||this.container.removeClass("select2-container-active");window.setTimeout(this.bind(function(){this.selection.attr("tabIndex",this.opts.element.attr("tabIndex"))}),10)}));a.bind("mousedown",this.bind(function(){this.opened()?(this.close(),this.selection.focus()):this.enabled&&this.open()}));b.bind("mousedown",
this.bind(function(){this.search.focus()}));a.bind("focus",this.bind(function(){this.container.addClass("select2-container-active");this.search.attr("tabIndex","-1")}));a.bind("blur",this.bind(function(){this.opened()||this.container.removeClass("select2-container-active");window.setTimeout(this.bind(function(){this.search.attr("tabIndex",this.opts.element.attr("tabIndex"))}),10)}));a.bind("keydown",this.bind(function(a){if(this.enabled)if(a.which===f.PAGE_UP||a.which===f.PAGE_DOWN)l(a);else if(!(a.which===
f.TAB||f.isControl(a)||f.isFunctionKey(a)||a.which===f.ESC)&&!(!1===this.opts.openOnEnter&&a.which===f.ENTER))if(a.which==f.DELETE)this.opts.allowClear&&this.clear();else{this.open();if(a.which!==f.ENTER&&!(48>a.which)){var b=String.fromCharCode(a.which).toLowerCase();a.shiftKey&&(b=b.toUpperCase());this.search.focus();this.search.val(b)}l(a)}}));a.delegate("abbr","mousedown",this.bind(function(a){this.enabled&&(this.clear(),l(a),this.close(),this.triggerChange(),this.selection.focus())}));this.setPlaceholder();
this.search.bind("focus",this.bind(function(){this.container.addClass("select2-container-active")}))},clear:function(){this.opts.element.val("");this.selection.find("span").empty();this.selection.removeData("select2-data");this.setPlaceholder()},initSelection:function(){if(""===this.opts.element.val())this.close(),this.setPlaceholder();else{var a=this;this.opts.initSelection.call(null,this.opts.element,function(b){b!==g&&null!==b&&(a.updateSelection(b),a.close(),a.setPlaceholder())})}},prepareOpts:function(){var a=
this.parent.prepareOpts.apply(this,arguments);"select"===a.element.get(0).tagName.toLowerCase()&&(a.initSelection=function(a,c){var d=a.find(":selected");e.isFunction(c)&&c({id:d.attr("value"),text:d.text()})});return a},setPlaceholder:function(){var a=this.getPlaceholder();""===this.opts.element.val()&&a!==g&&!(this.select&&""!==this.select.find("option:first").text())&&(this.selection.find("span").html(this.opts.escapeMarkup(a)),this.selection.addClass("select2-default"),this.selection.find("abbr").hide())},
postprocessResults:function(a,b){var c=0,d=this,f=!0;this.results.find(".select2-result-selectable").each2(function(a,b){if(m(d.id(b.data("select2-data")),d.opts.element.val()))return c=a,!1});this.highlight(c);!0===b&&(f=this.showSearchInput=F(a.results)>=this.opts.minimumResultsForSearch,this.dropdown.find(".select2-search")[f?"removeClass":"addClass"]("select2-search-hidden"),e(this.dropdown,this.container)[f?"addClass":"removeClass"]("select2-with-searchbox"))},onSelect:function(a){var b=this.opts.element.val();
this.opts.element.val(this.id(a));this.updateSelection(a);this.close();this.selection.focus();m(b,this.id(a))||this.triggerChange()},updateSelection:function(a){var b=this.selection.find("span");this.selection.data("select2-data",a);b.empty();a=this.opts.formatSelection(a,b);a!==g&&b.append(this.opts.escapeMarkup(a));this.selection.removeClass("select2-default");this.opts.allowClear&&this.getPlaceholder()!==g&&this.selection.find("abbr").show()},val:function(){var a,b=null,c=this;if(0===arguments.length)return this.opts.element.val();
a=arguments[0];if(this.select)this.select.val(a).find(":selected").each2(function(a,c){b={id:c.attr("value"),text:c.text()};return!1}),this.updateSelection(b),this.setPlaceholder();else{if(this.opts.initSelection===g)throw Error("cannot call val() if initSelection() is not defined");a?(this.opts.element.val(a),this.opts.initSelection(this.opts.element,function(a){c.opts.element.val(!a?"":c.id(a));c.updateSelection(a);c.setPlaceholder()})):this.clear()}},clearSearch:function(){this.search.val("")},
data:function(a){var b;if(0===arguments.length)return b=this.selection.data("select2-data"),b==g&&(b=null),b;!a||""===a?this.clear():(this.opts.element.val(!a?"":this.id(a)),this.updateSelection(a))}});z=x(w,{createContainer:function(){return e("<div></div>",{"class":"select2-container select2-container-multi"}).html(" <ul class='select2-choices'> <li class='select2-search-field'> <input type='text' autocomplete='off' class='select2-input'> </li></ul><div class='select2-drop select2-drop-multi' style='display:none;'> <ul class='select2-results'> </ul></div>")},
prepareOpts:function(){var a=this.parent.prepareOpts.apply(this,arguments);"select"===a.element.get(0).tagName.toLowerCase()&&(a.initSelection=function(a,c){var d=[];a.find(":selected").each2(function(a,b){d.push({id:b.attr("value"),text:b.text()})});e.isFunction(c)&&c(d)});return a},initContainer:function(){var a;this.searchContainer=this.container.find(".select2-search-field");this.selection=a=this.container.find(".select2-choices");this.search.bind("keydown",this.bind(function(b){if(this.enabled){if(b.which===
f.BACKSPACE&&""===this.search.val()){this.close();var c;c=a.find(".select2-search-choice-focus");if(0<c.length){this.unselect(c.first());this.search.width(10);l(b);return}c=a.find(".select2-search-choice");0<c.length&&c.last().addClass("select2-search-choice-focus")}else a.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus");if(this.opened())switch(b.which){case f.UP:case f.DOWN:this.moveHighlight(b.which===f.UP?-1:1);l(b);return;case f.ENTER:case f.TAB:this.selectHighlighted();
l(b);return;case f.ESC:this.cancel(b);l(b);return}if(!(b.which===f.TAB||f.isControl(b)||f.isFunctionKey(b)||b.which===f.BACKSPACE||b.which===f.ESC)&&!(!1===this.opts.openOnEnter&&b.which===f.ENTER))this.open(),(b.which===f.PAGE_UP||b.which===f.PAGE_DOWN)&&l(b)}}));this.search.bind("keyup",this.bind(this.resizeSearch));this.search.bind("blur",this.bind(function(a){this.container.removeClass("select2-container-active");this.search.removeClass("select2-focused");this.clearSearch();a.stopImmediatePropagation()}));
this.container.delegate(".select2-choices","mousedown",this.bind(function(a){this.enabled&&!(0<e(a.target).closest(".select2-search-choice").length)&&(this.clearPlaceholder(),this.open(),this.focusSearch(),a.preventDefault())}));this.container.delegate(".select2-choices","focus",this.bind(function(){this.enabled&&(this.container.addClass("select2-container-active"),this.dropdown.addClass("select2-drop-active"),this.clearPlaceholder())}));this.clearSearch()},enable:function(){this.enabled||(this.parent.enable.apply(this,
arguments),this.search.removeAttr("disabled"))},disable:function(){this.enabled&&(this.parent.disable.apply(this,arguments),this.search.attr("disabled",!0))},initSelection:function(){""===this.opts.element.val()&&(this.updateSelection([]),this.close(),this.clearSearch());if(this.select||""!==this.opts.element.val()){var a=this;this.opts.initSelection.call(null,this.opts.element,function(b){if(b!==g&&b!==null){a.updateSelection(b);a.close();a.clearSearch()}})}},clearSearch:function(){var a=this.getPlaceholder();
a!==g&&0===this.getVal().length&&!1===this.search.hasClass("select2-focused")?(this.search.val(a).addClass("select2-default"),this.resizeSearch()):this.search.val(" ").width(10)},clearPlaceholder:function(){this.search.hasClass("select2-default")?this.search.val("").removeClass("select2-default"):" "===this.search.val()&&this.search.val("")},opening:function(){this.parent.opening.apply(this,arguments);this.clearPlaceholder();this.resizeSearch();this.focusSearch()},close:function(){this.opened()&&
this.parent.close.apply(this,arguments)},focus:function(){this.close();this.search.focus()},isFocused:function(){return this.search.hasClass("select2-focused")},updateSelection:function(a){var b=[],c=[],d=this;e(a).each(function(){0>i(d.id(this),b)&&(b.push(d.id(this)),c.push(this))});a=c;this.selection.find(".select2-search-choice").remove();e(a).each(function(){d.addSelectedChoice(this)});d.postprocessResults()},tokenize:function(){var a=this.search.val(),a=this.opts.tokenizer(a,this.data(),this.bind(this.onSelect),
this.opts);null!=a&&a!=g&&(this.search.val(a),0<a.length&&this.open())},onSelect:function(a){this.addSelectedChoice(a);this.select&&this.postprocessResults();this.opts.closeOnSelect?(this.close(),this.search.width(10)):0<this.countSelectableResults()?(this.search.width(10),this.resizeSearch(),this.positionDropdown()):this.close();this.triggerChange({added:a});this.focusSearch()},cancel:function(){this.close();this.focusSearch()},addSelectedChoice:function(a){var b=e("<li class='select2-search-choice'> <div></div> <a href='#' onclick='return false;' class='select2-search-choice-close' tabindex='-1'></a></li>"),
c=this.id(a),d=this.getVal(),f;f=this.opts.formatSelection(a,b);b.find("div").replaceWith("<div>"+this.opts.escapeMarkup(f)+"</div>");b.find(".select2-search-choice-close").bind("mousedown",l).bind("click dblclick",this.bind(function(a){this.enabled&&(e(a.target).closest(".select2-search-choice").fadeOut("fast",this.bind(function(){this.unselect(e(a.target));this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus");this.close();this.focusSearch()})).dequeue(),
l(a))})).bind("focus",this.bind(function(){this.enabled&&(this.container.addClass("select2-container-active"),this.dropdown.addClass("select2-drop-active"))}));b.data("select2-data",a);b.insertBefore(this.searchContainer);d.push(c);this.setVal(d)},unselect:function(a){var b=this.getVal(),c,d,a=a.closest(".select2-search-choice");if(0===a.length)throw"Invalid argument: "+a+". Must be .select2-search-choice";c=a.data("select2-data");d=i(this.id(c),b);0<=d&&(b.splice(d,1),this.setVal(b),this.select&&
this.postprocessResults());a.remove();this.triggerChange({removed:c})},postprocessResults:function(){var a=this.getVal(),b=this.results.find(".select2-result-selectable"),c=this.results.find(".select2-result-with-children"),d=this;b.each2(function(b,c){var e=d.id(c.data("select2-data"));0<=i(e,a)?c.addClass("select2-disabled").removeClass("select2-result-selectable"):c.removeClass("select2-disabled").addClass("select2-result-selectable")});c.each2(function(a,b){0==b.find(".select2-result-selectable").length?
b.addClass("select2-disabled"):b.removeClass("select2-disabled")});b.each2(function(a,b){if(!b.hasClass("select2-disabled")&&b.hasClass("select2-result-selectable"))return d.highlight(0),!1})},resizeSearch:function(){var a,b,c,d,f=this.search.outerWidth()-this.search.width();a=this.search;q||(c=a[0].currentStyle||window.getComputedStyle(a[0],null),q=e("<div></div>").css({position:"absolute",left:"-10000px",top:"-10000px",display:"none",fontSize:c.fontSize,fontFamily:c.fontFamily,fontStyle:c.fontStyle,
fontWeight:c.fontWeight,letterSpacing:c.letterSpacing,textTransform:c.textTransform,whiteSpace:"nowrap"}),e("body").append(q));q.text(a.val());a=q.width()+10;b=this.search.offset().left;c=this.selection.width();d=this.selection.offset().left;b=c-(b-d)-f;b<a&&(b=c-f);40>b&&(b=c-f);this.search.width(b)},getVal:function(){var a;if(this.select)return a=this.select.val(),null===a?[]:a;a=this.opts.element.val();return s(a,this.opts.separator)},setVal:function(a){var b;this.select?this.select.val(a):(b=
[],e(a).each(function(){0>i(this,b)&&b.push(this)}),this.opts.element.val(0===b.length?"":b.join(this.opts.separator)))},val:function(){var a,b=[],c=this;if(0===arguments.length)return this.getVal();if(a=arguments[0])if(this.setVal(a),this.select)this.select.find(":selected").each(function(){b.push({id:e(this).attr("value"),text:e(this).text()})}),this.updateSelection(b);else{if(this.opts.initSelection===g)throw Error("val() cannot be called if initSelection() is not defined");this.opts.initSelection(this.opts.element,
function(a){var b=e(a).map(c.id);c.setVal(b);c.updateSelection(a);c.clearSearch()})}else this.opts.element.val(""),this.updateSelection([]);this.clearSearch()},onSortStart:function(){if(this.select)throw Error("Sorting of elements is not supported when attached to <select>. Attach to <input type='hidden'/> instead.");this.search.width(0);this.searchContainer.hide()},onSortEnd:function(){var a=[],b=this;this.searchContainer.show();this.searchContainer.appendTo(this.searchContainer.parent());this.resizeSearch();
this.selection.find(".select2-search-choice").each(function(){a.push(b.opts.id(e(this).data("select2-data")))});this.setVal(a);this.triggerChange()},data:function(a){var b=this,c;if(0===arguments.length)return this.selection.find(".select2-search-choice").map(function(){return e(this).data("select2-data")}).get();a||(a=[]);c=e.map(a,function(a){return b.opts.id(a)});this.setVal(c);this.updateSelection(a);this.clearSearch()}});e.fn.select2=function(){var a=Array.prototype.slice.call(arguments,0),b,
c,d,f,h="val destroy opened open close focus isFocused container onSortStart onSortEnd enable disable positionDropdown data".split(" ");this.each(function(){if(0===a.length||"object"===typeof a[0])b=0===a.length?{}:e.extend({},a[0]),b.element=e(this),"select"===b.element.get(0).tagName.toLowerCase()?f=b.element.attr("multiple"):(f=b.multiple||!1,"tags"in b&&(b.multiple=f=!0)),c=f?new z:new y,c.init(b);else if("string"===typeof a[0]){if(0>i(a[0],h))throw"Unknown method: "+a[0];d=g;c=e(this).data("select2");
if(c!==g&&(d="container"===a[0]?c.container:c[a[0]].apply(c,a.slice(1)),d!==g))return!1}else throw"Invalid arguments to select2 plugin: "+a;});return d===g?this:d};e.fn.select2.defaults={width:"copy",closeOnSelect:!0,openOnEnter:!0,containerCss:{},dropdownCss:{},containerCssClass:"",dropdownCssClass:"",formatResult:function(a,b,c){b=[];B(a.text,c.term,b);return b.join("")},formatSelection:function(a){return a?a.text:g},formatResultCssClass:function(){return g},formatNoMatches:function(){return"No matches found"},
formatInputTooShort:function(a,b){return"Please enter "+(b-a.length)+" more characters"},formatSelectionTooBig:function(a){return"You can only select "+a+" item"+(1==a?"":"s")},formatLoadMore:function(){return"Loading more results..."},formatSearching:function(){return"Searching..."},minimumResultsForSearch:0,minimumInputLength:0,maximumSelectionSize:0,id:function(a){return a.id},matcher:function(a,b){return 0<=b.toUpperCase().indexOf(a.toUpperCase())},separator:",",tokenSeparators:[],tokenizer:H,
escapeMarkup:function(a){return a&&"string"===typeof a?a.replace(/&/g,"&amp;"):a},blurOnChange:!1};window.Select2={query:{ajax:C,local:D,tags:E},util:{debounce:A,markMatch:B},"class":{"abstract":w,single:y,multi:z}}}})(jQuery);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 613 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 845 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -0,0 +1 @@
<label>{% include "django/forms/widgets/input.html" %}<span></span></label>

View File

@ -0,0 +1 @@
{% if widget.wrap_label %}<label{% if widget.attrs.id %} for="{{ widget.attrs.id }}"{% endif %}>{% endif %}{% include "django/forms/widgets/input.html" %}{% if widget.wrap_label %} <span>{{ widget.label }}</span></label>{% endif %}

View File

@ -1,76 +1 @@
{% load url from future %}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>{% block page-title %}{% endblock %}</title>
<link rel="stylesheet" type="text/css" media="all" href="{{ STATIC_URL }}css/gadjo.css"/>
<link rel="stylesheet" type="text/css" media="all"
href="{{ STATIC_URL }}css/smoothness/jquery-ui-1.10.4.custom.min.css"/>
{% block css %}
<link rel="stylesheet" type="text/css" media="all" href="{{ STATIC_URL }}css/style.css"/>
{% endblock %}
<script src="{{ STATIC_URL }}js/jquery-1.11.0.min.js"></script>
<script src="{{ STATIC_URL }}js/jquery-ui-1.10.4.custom.min.js"></script>
{% block extrascripts %}
{% endblock %}
</head>
<body>
<div id="wrap-large">
<div id="header">
<h1><a href="/">{% block site-title %}{% endblock %}</a></h1>
</div>
<div id="splash">
<div id="user-links">
{% block user-links %}
{% if user.id %}
<a href="index.html">Déconnexion</a>
{% endif %}
{% endblock %}
</div>
</div>
<div id="more-user-links">
{% block more-user-links %}
<a href="/" class="icon-home-space">Accueil</a>
{% endblock %}
</div>
<div id="content">
<div id="appbar">
{% block appbar %}
{% endblock %}
</div>
{% block messages %}
{% if messages %}
<ul class="messages">
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}
</ul>
<script>
$(document).ready(function() { $('.messages').delay(5000).fadeOut('slow'); });
</script>
{% endif %}
{% endblock %}
{% block beforecontent %}
{% endblock %}
{% block content %}
{% endblock %}
<br style="clear: both;"/>
</div>
<div id="footer">
{% block footer %}
Copyright &copy; 2014 Entr'ouvert
{% endblock %}
</div>
</div>
{% block page-end %}
{% endblock %}
</body>
</html>
{% extends 'gadjo/root.html' %}

View File

@ -0,0 +1,26 @@
{% load i18n %}
{% if form.errors %}
<div class="errornotice" tabindex="-1" autofocus role="alert">
<p>{% trans "There were errors processing your form." %}</p>
{% for error in form.non_field_errors %}
<p>{{ error }}</p>
{% endfor %}
{% for field in form %}
{% if field.is_hidden and field.errors %}
<p>
{% for error in field.errors %}
{% blocktrans with name=field.name %}(Hidden field {{name}}) {{ error }}{% endblocktrans %}
{% if not forloop.last %}<br>{% endif %}
{% endfor %}
</p>
{% endif %}
{% endfor %}
</div>
{% endif %}
{% for field, widget_template in fields_with_templates %}
{% if field.is_hidden %}
{{ field }}
{% else %}
{% include widget_template with field=field %}
{% endif %}
{% endfor %}

View File

@ -0,0 +1,57 @@
{% load gadjo %}
{% comment %}
Pagination bar
Expected context variables:
- request: django request object
- page_obj: Paginator page object
- page_key (optional): name of page parameter (default: page)
- anchor (optional): anchor to use in links
- without_key (optional): key to remove in GET params
{% endcomment %}
{% if page_obj.paginator.num_pages > 1 %}
{% with page_key=page_key|default:"page" %}
{% spaceless %}
<p class="paginator">
{% if page_obj.number > 4 %}
<a href="{% querystring page_key=1 without without_key %}{{ anchor }}">1</a>
{% else %}
{% if page_obj.number >= 3 %}
<a href="{% querystring page_key=1 without without_key %}{{ anchor }}">1</a>
{% if page_obj.number == 4 %}
<a href="{% querystring page_key=2 without without_key %}{{ anchor }}">2</a>
{% endif %}
{% endif %}
{% endif %}
{% if page_obj.has_previous %}
<a href="{% querystring page_key=page_obj.previous_page_number without without_key %}{{ anchor }}">{{ page_obj.previous_page_number }}</a>
{% endif %}
<span class="this-page">{{ page_obj.number }}</span>
{% if page_obj.has_next %}
<a href="{% querystring page_key=page_obj.next_page_number without without_key %}{{ anchor }}">{{ page_obj.next_page_number }}</a>
{% endif %}
{% if page_obj.number < page_obj.paginator.num_pages|add:"-3" %}
{% if page_obj.next_page_number != page_obj.paginator.num_pages %}
<a href="{% querystring page_key=page_obj.paginator.num_pages without without_key %}{{ anchor }}">{{ page_obj.paginator.num_pages }}</a>
{% endif %}
{% else %}
{% if page_obj.number <= page_obj.paginator.num_pages|add:"-2" %}
{% if page_obj.number == page_obj.paginator.num_pages|add:"-3" %}
{% with a_page_key=page_obj.paginator.num_pages|add:"-1" %}
<a href="{% querystring page_key=a_page_key without without_key %}{{ anchor }}">{{ a_page_key }}</a>
{% endwith %}
{% endif %}
<a href="{% querystring page_key=page_obj.paginator.num_pages without without_key %}{{ anchor }}">{{ page_obj.paginator.num_pages }}</a>
{% endif %}
{% endif %}
</p>
{% endspaceless %}
{% endwith %}
{% endif %}

View File

@ -0,0 +1,25 @@
{% extends "gadjo/widget.html" %}
{% load i18n %}
{% block widget-css-classes %}{{ block.super }} gadjo-password-field{% endblock %}
{% block widget-bottom %}
<div class="password-visibility-checkbox">
<input id="password-visibility-checkbox-{{ field.id_for_label }}" type="checkbox" aria-label="{% trans "Display password" %}">
<label for="password-visibility-checkbox-{{ field.id_for_label }}">{% trans "Display" %}</label>
</div>
<script>
(function() {
const checkbox = document.getElementById('password-visibility-checkbox-{{ field.id_for_label }}');
const password_input = document.querySelector('#{{field.id_for_label}}_p input[type=password]');
checkbox.addEventListener('change', function(e) {
if (this.checked) {
password_input.type = 'text';
} else {
password_input.type = 'password';
}
});
checkbox.checked = false; // force to be hidden on load
})();
</script>
{% endblock %}

View File

@ -0,0 +1,9 @@
{% extends "gadjo/widget.html" %}
{% block widget-attrs %}role="radiogroup"{% endblock %}
{% block widget-control %}
{% for option in field %}
{{ option }}
{% endfor %}
{% endblock %}

View File

@ -0,0 +1,118 @@
{% load i18n gadjo static %}<!DOCTYPE html>
<html {% if LANGUAGE_CODE %}lang="{{ LANGUAGE_CODE }}"{% endif %} {% if LANGUAGE_BIDI %}dir="rtl"{% endif %}>
<head>
<meta charset="utf-8"/>
<title>{% block page-title %}{% endblock %}</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
{% block gadjo-favicon %}
<link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon">
{% endblock %}
{% block gadjo-css %}
<link rel="stylesheet" type="text/css" media="all" href="{% static "css/gadjo.css" %}?{% start_timestamp %} "/>
{% block css %}
<link rel="stylesheet" type="text/css" media="all" href="{% static "css/style.css" %}?{% start_timestamp %}"/>
{% endblock %}
{% endblock %}
{% block gadjo-js %}
<script src="{% xstatic 'jquery' 'jquery.min.js' %}"></script>
<script src="{% xstatic 'jquery-ui' 'jquery-ui.min.js' %}"></script>
<script src="{% static "js/gadjo.js" %}?{% start_timestamp %}"></script>
{% endblock %}
{{ media }}
{% block extrascripts %}
{% endblock %}
</head>
<body data-gadjo="true" {% block bodyargs %}{% endblock %}>
<nav id="nav-skip" role="navigation" aria-label="{% trans "quick access" %}">
<ul>
<li><a href="#main-content">{% trans "Go to content" %}</a></li>
</ul>
</nav>
<div id="top">
{% block sidepage %}
{% endblock %}
{% block user-links %}
<ul class="user-info">
{% if global_title %}
<li class="ui-platform-name">{% if portal_url %}<a href="{{portal_url}}">{{ global_title }}</a>{% else %}{{ global_title }}{% endif %}</li>
{% endif %}
{% if user.is_authenticated %}
<li class="ui-avatar">{{ user.get_full_name|slice:":1" }}</li>
<li class="ui-name">{% block user-name %}{{ user.get_full_name }}{% endblock %}</li>
<li class="ui-logout"><a href="{% block logout-url %}index.html{% endblock %}"
title="{% trans "Logout" %}"><span class="sr-only">{% trans "Logout" %}</span></a></li>
{% endif %}
{% block help-link %}
{% endblock %}
</ul>
{% endblock %}
</div>
<div id="header">
{% block site-header %}
<h1>{% block site-title %}{% endblock %}</h1>
{% block subheader %}{% endblock %}
{% endblock %}
</div>
<div id="main">
<div id="main-content" {% block main-content-attributes %}{% endblock %}>
{% block main-content %}
<div id="more-user-links">
{% block more-user-links %}
<span id="breadcrumb">
{% block breadcrumb %}
<a href="{% block homepage-url %}/{% endblock %}">{% block homepage-title %}{% trans "Homepage" %}{% endblock %}</a>
{% endblock %}
</span>
{% endblock %}
</div>
<div id="content">
<div id="appbar">
{% block appbar %}
{% endblock %}
</div>
{% block messages %}
{% if messages %}
<ul class="messages">
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
{% endblock %}
{% block beforecontent %}
{% endblock %}
{% block content %}
{% endblock %}
<br style="clear: both;"/>
{% block aftercontent %}
{% endblock %}
</div> <!-- #content -->
{% endblock %}
</div> <!-- #main-content -->
{% block after-main-content %}
{% endblock %}
{% block sidebar %}
{% endblock %}
</div> <!-- #main -->
<div id="footer">
{% block footer %}
{% endblock %}
</div>
{% block page-end %}
{% endblock %}
</body>
</html>

View File

@ -0,0 +1,42 @@
{% load gadjo i18n %}
<div class="{% block widget-css-classes %}widget
{{ field.css_classes }}
django-{{ field|field_class_name }}
{% if field.errors %}widget-with-error{% endif %}
{% if field.field.required %}widget-required{% else %}widget-optional{% endif %}{% endblock %}"
{% if field.id_for_label %}id="{{field.id_for_label}}_p"{% endif %}>
{% block widget-title %}
<div class="title" {% if field.id_for_label %}id="{{ field.id_for_label }}_title"{% endif %}>
{{ field.label_tag }}
{% if field.field.required %}
<span title="{% trans "This field is required." %}" class="required">*</span>
{% else %}
<span class="optional">{% trans "(optional)" %}</span>
{% endif %}
</div>
{% endblock %}
{% block widget-content %}
<div class="content"
{% if field.id_for_label %}aria-labelledby="{{ field.id_for_label }}_title"{% endif %}
{% block widget-attrs %}{% endblock %}>
{% block widget-hint %}
{% if field.help_text %}
<div class="hint" id="help_text_{{field.id_for_label}}"><p>{{ field.help_text|safe }}</p></div>
{% endif %}
{% endblock %}
{% block widget-control %}
{{ field }}
{% endblock %}
{% block widget-error %}
{% if field.errors %}
<div class="error" id="error_{{field.id_for_label}}"><p>
{% for error in field.errors %}
{{ error }}{% if not forloop.last %}<br>{% endif %}
{% endfor %}
</p></div>
{% endif %}
{% endblock %}
{% block widget-bottom %}{% endblock %}
</div>
{% endblock %}
</div>

View File

@ -0,0 +1,17 @@
{% load i18n %}
<div class="gadjo-multi-select-widget" data-row-id="{{ widget.name }}" data-row-label="{% trans "Value" %}">
<div class="gadjo-multi-select-widget--fields" role="group" aria-labelledby="{{ widget.name }}_title">
{% for widget in widget.subwidgets %}
<div class="gadjo-multi-select-widget--field">
<label for="{{ widget.name }}_{{ forloop.counter }}" class="sr-only">{% trans "Value" %} {{ forloop.counter }}</label>
<div class="gadjo-multi-select-widget--select-button-container">
{% include widget.template_name %}
<button type="button" name="{{ widget.name }}$remove_element" class="gadjo-multi-select-widget--button-remove" title="{% trans "Remove" %}" aria-label="{% trans "Remove value" %} {{ forloop.counter }}"></button>
</div>
</div>
{% endfor %}
</div>
<button type="button" name="{{ widget.name }}$add_element" class="gadjo-multi-select-widget--button-add" title="{% trans "Add" %}" aria-label="{% trans "Add" %}"></button>
</div>

View File

139
gadjo/templatetags/gadjo.py Normal file
View File

@ -0,0 +1,139 @@
import re
import time
from collections import OrderedDict
from django import template
from django.conf import settings
from django.core.exceptions import ImproperlyConfigured
from django.forms import BoundField
from django.template import TemplateSyntaxError
from django.utils.html import escape
from django.utils.http import urlencode
register = template.Library()
@register.simple_tag
def xstatic(modname, filename):
if settings.DEBUG:
filename = filename.replace('.min.', '.')
return settings.STATIC_URL + 'xstatic/' + filename
START_TIMESTAMP = time.strftime('%Y%m%d.%H%M')
@register.simple_tag
def start_timestamp():
return START_TIMESTAMP
# {% querystring %} bits originally from django-tables2.
kwarg_re = re.compile(r'(?:(.+)=)?(.+)')
def token_kwargs(bits, parser):
"""
Based on Django's `~django.template.defaulttags.token_kwargs`, but with a
few changes:
- No legacy mode.
- Both keys and values are compiled as a filter
"""
if not bits:
return {}
kwargs = OrderedDict()
while bits:
match = kwarg_re.match(bits[0])
if not match or not match.group(1):
return kwargs
key, value = match.groups()
del bits[:1]
kwargs[parser.compile_filter(key)] = parser.compile_filter(value)
return kwargs
class QuerystringNode(template.Node):
def __init__(self, updates, removals):
super().__init__()
self.updates = updates
self.removals = removals
def render(self, context):
if not 'request' in context:
raise ImproperlyConfigured('Missing django.core.context_processors.request')
params = dict(context['request'].GET)
for key, value in self.updates.items():
key = key.resolve(context)
value = value.resolve(context)
if key not in ('', None):
params[key] = value
for removal in self.removals:
params.pop(removal.resolve(context), None)
return escape('?' + urlencode(params, doseq=True))
@register.tag
def querystring(parser, token):
"""
Creates a URL (containing only the querystring [including "?"]) derived
from the current URL's querystring, by updating it with the provided
keyword arguments.
Example (imagine URL is ``/abc/?gender=male&name=Brad``)::
{% querystring "name"="Ayers" "age"=20 %}
?name=Ayers&gender=male&age=20
{% querystring "name"="Ayers" without "gender" %}
?name=Ayers
"""
bits = token.split_contents()
tag = bits.pop(0)
updates = token_kwargs(bits, parser)
# ``bits`` should now be empty of a=b pairs, it should either be empty, or
# have ``without`` arguments.
if bits and bits.pop(0) != 'without':
raise TemplateSyntaxError("Malformed arguments to '%s'" % tag)
removals = [parser.compile_filter(bit) for bit in bits]
return QuerystringNode(updates, removals)
@register.filter
def with_template(form):
form_template = template.loader.get_template('gadjo/form.html')
fields_with_templates = []
for field in form:
widget = field.field.widget
templates = ['gadjo/widget.html']
if hasattr(widget, 'input_type'):
templates.insert(0, 'gadjo/%s-widget.html' % widget.input_type)
aria_described_by = []
if field.field.help_text:
aria_described_by.append(f'help_text_{field.id_for_label}')
if field.errors:
aria_described_by.append(f'error_{field.id_for_label}')
field.field.widget.attrs['aria-invalid'] = 'true'
if field.field.required:
field.field.widget.attrs['aria-required'] = 'true'
if aria_described_by:
field.field.widget.attrs['aria-describedby'] = ' '.join(aria_described_by)
fields_with_templates.append(
(
field,
template.loader.select_template(templates),
)
)
return form_template.render({'form': form, 'fields_with_templates': fields_with_templates})
# pattern to transform Django camel case class names to CSS class names with
# dashes. (CheckboxInput -> checkbox-input)
class_name_pattern = re.compile(r'(?<!^)(?=[A-Z])')
@register.filter
def field_class_name(field):
if isinstance(field, BoundField):
field = field.field
return class_name_pattern.sub('-', field.widget.__class__.__name__).lower()

1
icons/action-add.svg Normal file
View File

@ -0,0 +1 @@
<svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 63.63 63.63"><defs><style>.cls-1{fill:#242d3c;}</style></defs><title>Pictos_v3_EXPORT</title><path class="cls-1" d="M63.63,59.09V4.55A4.54,4.54,0,0,0,59.09,0H4.55A4.54,4.54,0,0,0,0,4.55V59.09a4.54,4.54,0,0,0,4.55,4.54H59.09A4.54,4.54,0,0,0,63.63,59.09ZM50,31.82a4.55,4.55,0,0,1-4.55,4.54H36.36v9.09a4.55,4.55,0,1,1-9.09,0V36.36H18.18a4.55,4.55,0,0,1,0-9.09h9.09V18.18a4.55,4.55,0,0,1,9.09,0v9.09h9.09A4.55,4.55,0,0,1,50,31.82Z"/></svg>

After

Width:  |  Height:  |  Size: 523 B

74
icons/action-copy.svg Normal file
View File

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="Calque_1"
data-name="Calque 1"
viewBox="0 0 63.95 65.06"
version="1.1"
sodipodi:docname="action-copy.svg"
inkscape:version="1.0.2 (e86c870879, 2021-01-15)"
inkscape:export-filename="/home/vdeniaud/src/gadjo/icons/action-copy.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<metadata
id="metadata25">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>Pictos_v3_EXPORT</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1916"
inkscape:window-height="1041"
id="namedview23"
showgrid="false"
inkscape:zoom="6.611114"
inkscape:cx="10.36951"
inkscape:cy="38.426559"
inkscape:window-x="0"
inkscape:window-y="37"
inkscape:window-maximized="0"
inkscape:current-layer="Calque_1"
inkscape:document-rotation="0"
inkscape:snap-global="true" />
<defs
id="defs4">
<style
id="style2">.cls-1 { fill:#242d3c; }
</style>
</defs>
<title
id="title6">Pictos_v3_EXPORT</title>
<g
id="g113">
<path
id="path105"
d="m 53.470703,53.541016 h -2.230469 v 6.748046 c 4.4e-4,1.40513 -1.135894,2.545831 -2.541015,2.550782 H 4.7695312 C 3.3613573,62.839197 2.2202711,61.697236 2.2207031,60.289062 V 16.369141 C 2.2213493,14.96173 3.3621199,13.820959 4.7695312,13.820312 H 10.544922 V 11.589844 H 4.7695312 C 2.1339737,11.595616 3.8129446e-4,13.733577 0,16.369141 v 43.919921 c 0.00468321,2.632514 2.1370196,4.765724 4.7695312,4.771485 H 48.699219 c 2.633274,-0.0047 4.766797,-2.138211 4.771484,-4.771485 z M 10.544922,13.820312 h 38.154297 c 1.404359,0.0049 2.540379,1.144461 2.541015,2.548829 v 37.171875 h 2.230469 V 16.369141 c -3.84e-4,-2.636325 -2.135164,-4.7746 -4.771484,-4.779297 H 10.544922 Z"
class="cls-1"
style="" />
</g>
<path
d="m 15.316406,0.07226562 c -2.63632,0.0046968 -4.7711,2.14297238 -4.771484,4.77929688 v 6.7382815 h 2.220703 V 4.8515625 C 12.765193,3.4426262 13.90747,2.3003496 15.316406,2.3007812 h 43.929688 c 1.404358,0.00602 2.539505,1.1464109 2.539062,2.5507813 V 48.771484 c 4.44e-4,1.404371 -1.134704,2.544758 -2.539062,2.550782 h -5.775391 v 2.21875 h 5.775391 c 2.631751,-0.0058 4.763774,-2.137781 4.769531,-4.769532 V 4.8515625 C 64.015244,2.2159989 61.881651,0.07803792 59.246094,0.07226562 Z"
id="path8"
class="cls-1"
style="" />
</svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -0,0 +1 @@
<svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 63.95 65.06"><defs><style>.cls-1{fill:#242d3c;}</style></defs><title>Pictos_v3_EXPORT</title><path class="cls-1" d="M48.7,65.06H4.77A4.78,4.78,0,0,1,0,60.29V16.37a4.78,4.78,0,0,1,4.77-4.78H48.7a4.78,4.78,0,0,1,4.77,4.78V60.29A4.78,4.78,0,0,1,48.7,65.06ZM4.77,13.82a2.55,2.55,0,0,0-2.55,2.55V60.29a2.55,2.55,0,0,0,2.55,2.55H48.7a2.55,2.55,0,0,0,2.54-2.55V16.37a2.55,2.55,0,0,0-2.54-2.55Z"/><path class="cls-1" d="M41.38,38.33A3.66,3.66,0,0,1,37.72,42H30.39v7.32a3.66,3.66,0,0,1-7.32,0V42H15.75a3.66,3.66,0,1,1,0-7.32h7.32V27.35a3.66,3.66,0,0,1,7.32,0v7.32h7.33A3.66,3.66,0,0,1,41.38,38.33Z"/><path class="cls-1" d="M11.63,12.72A1.67,1.67,0,0,1,10,11.05V1.67A1.67,1.67,0,0,1,11.63,0h5.56a1.67,1.67,0,0,1,0,3.34H13.3v7.71A1.67,1.67,0,0,1,11.63,12.72Z"/><path class="cls-1" d="M49.53,3.34h-9a1.67,1.67,0,1,1,0-3.34h9a1.67,1.67,0,1,1,0,3.34Zm-16.17,0h-9a1.67,1.67,0,1,1,0-3.34h9a1.67,1.67,0,1,1,0,3.34Z"/><path class="cls-1" d="M62.28,8.9a1.67,1.67,0,0,1-1.67-1.67V3.34H56.72a1.67,1.67,0,0,1,0-3.34h5.56A1.67,1.67,0,0,1,64,1.67V7.23A1.67,1.67,0,0,1,62.28,8.9Z"/><path class="cls-1" d="M62.28,41.24a1.67,1.67,0,0,1-1.67-1.67v-9a1.67,1.67,0,0,1,3.34,0v9A1.67,1.67,0,0,1,62.28,41.24Zm0-16.17a1.67,1.67,0,0,1-1.67-1.67v-9a1.67,1.67,0,0,1,3.34,0v9A1.67,1.67,0,0,1,62.28,25.07Z"/><path class="cls-1" d="M62.28,54H52.9a1.67,1.67,0,0,1,0-3.34h7.71V46.76a1.67,1.67,0,0,1,3.34,0v5.56A1.67,1.67,0,0,1,62.28,54Z"/></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

Some files were not shown because too many files have changed in this diff Show More