From 42bf5b812ac704750db455339f0ca269e00e0ab7 Mon Sep 17 00:00:00 2001 From: Jeffrey Serio Date: Wed, 19 Feb 2025 13:41:45 -0600 Subject: [PATCH] Initial commit --- .gitignore | 2 + LICENSE | 25 + README.md | 14 + anonymous-overflow/compose.yml | 10 + breezewiki/compose.yml | 10 + breezewiki/config.ini | 2 + dumb/compose.yml | 7 + freshrss/compose.yml | 36 + freshrss/env | 8 + gothub/compose.yml | 24 + lingva-translate/compose.yml | 12 + privatebin/compose.yml | 9 + privatebin/privatebin-conf.php | 277 + redlib/.env | 48 + redlib/compose.yml | 23 + searxng/compose.yml | 14 + shaarli/compose.yml | 14 + shaarli/material/404.html | 18 + shaarli/material/addlink.html | 62 + shaarli/material/changepassword.html | 35 + shaarli/material/changetag.html | 65 + shaarli/material/configure.html | 242 + shaarli/material/daily.html | 116 + shaarli/material/dailyrss.html | 35 + shaarli/material/dist/bundle.css | 1 + shaarli/material/dist/bundle.js | 26 + .../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20127 bytes .../fonts/glyphicons-halflings-regular.svg | 288 + .../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 45404 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23424 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes .../materialdesignicons-webfont.eot | Bin 0 -> 274684 bytes .../materialdesignicons-webfont.svg | 5808 +++++++++++++++++ .../materialdesignicons-webfont.ttf | Bin 0 -> 274464 bytes .../materialdesignicons-webfont.woff | Bin 0 -> 135276 bytes .../materialdesignicons-webfont.woff2 | Bin 0 -> 103708 bytes .../oldnewspapertypes-webfont.ttf | Bin 0 -> 104028 bytes .../oldnewspapertypes-webfont.woff | Bin 0 -> 66388 bytes .../oldnewspapertypes-webfont.woff2 | Bin 0 -> 55756 bytes .../dist/fonts/roboto/Apache License.txt | 203 + .../dist/fonts/roboto/Roboto-Black.ttf | Bin 0 -> 142472 bytes .../dist/fonts/roboto/Roboto-BlackItalic.ttf | Bin 0 -> 149644 bytes .../dist/fonts/roboto/Roboto-Bold.ttf | Bin 0 -> 135820 bytes .../dist/fonts/roboto/Roboto-BoldItalic.ttf | Bin 0 -> 144700 bytes .../dist/fonts/roboto/Roboto-Italic.ttf | Bin 0 -> 148540 bytes .../dist/fonts/roboto/Roboto-Light.ttf | Bin 0 -> 140276 bytes .../dist/fonts/roboto/Roboto-LightItalic.ttf | Bin 0 -> 145932 bytes .../dist/fonts/roboto/Roboto-Medium.ttf | Bin 0 -> 137308 bytes .../dist/fonts/roboto/Roboto-MediumItalic.ttf | Bin 0 -> 147876 bytes .../dist/fonts/roboto/Roboto-Regular.ttf | Bin 0 -> 145348 bytes .../dist/fonts/roboto/Roboto-Thin.ttf | Bin 0 -> 130044 bytes .../dist/fonts/roboto/Roboto-ThinItalic.ttf | Bin 0 -> 132376 bytes .../fonts/roboto/RobotoCondensed-Bold.ttf | Bin 0 -> 141796 bytes .../roboto/RobotoCondensed-BoldItalic.ttf | Bin 0 -> 145256 bytes .../fonts/roboto/RobotoCondensed-Italic.ttf | Bin 0 -> 144404 bytes .../fonts/roboto/RobotoCondensed-Light.ttf | Bin 0 -> 141384 bytes .../roboto/RobotoCondensed-LightItalic.ttf | Bin 0 -> 145104 bytes .../fonts/roboto/RobotoCondensed-Regular.ttf | Bin 0 -> 140396 bytes shaarli/material/dist/img/arrow-compress.png | Bin 0 -> 300 bytes shaarli/material/dist/img/arrow-expand.png | Bin 0 -> 298 bytes .../img/favicons/android-chrome-36x36.png | Bin 0 -> 564 bytes .../img/favicons/android-chrome-48x48.png | Bin 0 -> 638 bytes .../img/favicons/android-chrome-72x72.png | Bin 0 -> 904 bytes .../img/favicons/android-chrome-96x96.png | Bin 0 -> 978 bytes .../img/favicons/apple-touch-icon-57x57.png | Bin 0 -> 679 bytes .../img/favicons/apple-touch-icon-60x60.png | Bin 0 -> 728 bytes .../img/favicons/apple-touch-icon-72x72.png | Bin 0 -> 852 bytes .../img/favicons/apple-touch-icon-76x76.png | Bin 0 -> 916 bytes .../favicons/apple-touch-icon-precomposed.png | Bin 0 -> 1215 bytes .../dist/img/favicons/apple-touch-icon.png | Bin 0 -> 916 bytes .../dist/img/favicons/browserconfig.xml | 11 + .../dist/img/favicons/favicon-16x16.png | Bin 0 -> 341 bytes .../dist/img/favicons/favicon-32x32.png | Bin 0 -> 536 bytes .../dist/img/favicons/favicon-64x64.png | Bin 0 -> 1916 bytes .../dist/img/favicons/favicon-96x96.png | Bin 0 -> 978 bytes .../material/dist/img/favicons/favicon.ico | Bin 0 -> 15086 bytes .../material/dist/img/favicons/manifest.json | 29 + .../dist/img/favicons/mstile-150x150.png | Bin 0 -> 959 bytes .../dist/img/favicons/mstile-310x150.png | Bin 0 -> 990 bytes .../dist/img/favicons/mstile-70x70.png | Bin 0 -> 1164 bytes shaarli/material/dist/img/sad_star.png | Bin 0 -> 7099 bytes .../material/dist/img/tools/star-circle.png | Bin 0 -> 658 bytes shaarli/material/dist/lib.css | 9 + shaarli/material/editlink.batch.html | 44 + shaarli/material/editlink.html | 99 + shaarli/material/error.html | 29 + shaarli/material/export.bookmarks.html | 10 + shaarli/material/export.html | 72 + shaarli/material/feed.atom.html | 42 + shaarli/material/feed.rss.html | 39 + shaarli/material/import.html | 81 + shaarli/material/includes.html | 70 + shaarli/material/install.html | 78 + shaarli/material/linklist.html | 158 + shaarli/material/linklist.paging.html | 23 + shaarli/material/loginform.html | 43 + shaarli/material/opensearch.html | 45 + shaarli/material/page.footer.html | 31 + shaarli/material/page.header.html | 273 + shaarli/material/page.html | 12 + shaarli/material/picwall.html | 46 + shaarli/material/pluginsadmin.html | 120 + shaarli/material/server.html | 119 + shaarli/material/server.requirements.html | 74 + shaarli/material/tag.cloud.html | 35 + shaarli/material/tag.list.html | 76 + shaarli/material/tag.sort.html | 7 + shaarli/material/thumbnails.html | 36 + shaarli/material/tools.html | 226 + 109 files changed, 9371 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 anonymous-overflow/compose.yml create mode 100644 breezewiki/compose.yml create mode 100644 breezewiki/config.ini create mode 100644 dumb/compose.yml create mode 100644 freshrss/compose.yml create mode 100644 freshrss/env create mode 100644 gothub/compose.yml create mode 100644 lingva-translate/compose.yml create mode 100644 privatebin/compose.yml create mode 100644 privatebin/privatebin-conf.php create mode 100644 redlib/.env create mode 100644 redlib/compose.yml create mode 100644 searxng/compose.yml create mode 100644 shaarli/compose.yml create mode 100644 shaarli/material/404.html create mode 100644 shaarli/material/addlink.html create mode 100644 shaarli/material/changepassword.html create mode 100644 shaarli/material/changetag.html create mode 100644 shaarli/material/configure.html create mode 100644 shaarli/material/daily.html create mode 100644 shaarli/material/dailyrss.html create mode 100644 shaarli/material/dist/bundle.css create mode 100644 shaarli/material/dist/bundle.js create mode 100644 shaarli/material/dist/fonts/glyphicons-halflings-regular.eot create mode 100644 shaarli/material/dist/fonts/glyphicons-halflings-regular.svg create mode 100644 shaarli/material/dist/fonts/glyphicons-halflings-regular.ttf create mode 100644 shaarli/material/dist/fonts/glyphicons-halflings-regular.woff create mode 100644 shaarli/material/dist/fonts/glyphicons-halflings-regular.woff2 create mode 100644 shaarli/material/dist/fonts/material-icons/materialdesignicons-webfont.eot create mode 100644 shaarli/material/dist/fonts/material-icons/materialdesignicons-webfont.svg create mode 100644 shaarli/material/dist/fonts/material-icons/materialdesignicons-webfont.ttf create mode 100644 shaarli/material/dist/fonts/material-icons/materialdesignicons-webfont.woff create mode 100644 shaarli/material/dist/fonts/material-icons/materialdesignicons-webfont.woff2 create mode 100644 shaarli/material/dist/fonts/oldnewspapertypes/oldnewspapertypes-webfont.ttf create mode 100644 shaarli/material/dist/fonts/oldnewspapertypes/oldnewspapertypes-webfont.woff create mode 100644 shaarli/material/dist/fonts/oldnewspapertypes/oldnewspapertypes-webfont.woff2 create mode 100644 shaarli/material/dist/fonts/roboto/Apache License.txt create mode 100644 shaarli/material/dist/fonts/roboto/Roboto-Black.ttf create mode 100644 shaarli/material/dist/fonts/roboto/Roboto-BlackItalic.ttf create mode 100644 shaarli/material/dist/fonts/roboto/Roboto-Bold.ttf create mode 100644 shaarli/material/dist/fonts/roboto/Roboto-BoldItalic.ttf create mode 100644 shaarli/material/dist/fonts/roboto/Roboto-Italic.ttf create mode 100644 shaarli/material/dist/fonts/roboto/Roboto-Light.ttf create mode 100644 shaarli/material/dist/fonts/roboto/Roboto-LightItalic.ttf create mode 100644 shaarli/material/dist/fonts/roboto/Roboto-Medium.ttf create mode 100644 shaarli/material/dist/fonts/roboto/Roboto-MediumItalic.ttf create mode 100644 shaarli/material/dist/fonts/roboto/Roboto-Regular.ttf create mode 100644 shaarli/material/dist/fonts/roboto/Roboto-Thin.ttf create mode 100644 shaarli/material/dist/fonts/roboto/Roboto-ThinItalic.ttf create mode 100644 shaarli/material/dist/fonts/roboto/RobotoCondensed-Bold.ttf create mode 100644 shaarli/material/dist/fonts/roboto/RobotoCondensed-BoldItalic.ttf create mode 100644 shaarli/material/dist/fonts/roboto/RobotoCondensed-Italic.ttf create mode 100644 shaarli/material/dist/fonts/roboto/RobotoCondensed-Light.ttf create mode 100644 shaarli/material/dist/fonts/roboto/RobotoCondensed-LightItalic.ttf create mode 100644 shaarli/material/dist/fonts/roboto/RobotoCondensed-Regular.ttf create mode 100644 shaarli/material/dist/img/arrow-compress.png create mode 100644 shaarli/material/dist/img/arrow-expand.png create mode 100644 shaarli/material/dist/img/favicons/android-chrome-36x36.png create mode 100644 shaarli/material/dist/img/favicons/android-chrome-48x48.png create mode 100644 shaarli/material/dist/img/favicons/android-chrome-72x72.png create mode 100644 shaarli/material/dist/img/favicons/android-chrome-96x96.png create mode 100644 shaarli/material/dist/img/favicons/apple-touch-icon-57x57.png create mode 100644 shaarli/material/dist/img/favicons/apple-touch-icon-60x60.png create mode 100644 shaarli/material/dist/img/favicons/apple-touch-icon-72x72.png create mode 100644 shaarli/material/dist/img/favicons/apple-touch-icon-76x76.png create mode 100644 shaarli/material/dist/img/favicons/apple-touch-icon-precomposed.png create mode 100644 shaarli/material/dist/img/favicons/apple-touch-icon.png create mode 100644 shaarli/material/dist/img/favicons/browserconfig.xml create mode 100644 shaarli/material/dist/img/favicons/favicon-16x16.png create mode 100644 shaarli/material/dist/img/favicons/favicon-32x32.png create mode 100644 shaarli/material/dist/img/favicons/favicon-64x64.png create mode 100644 shaarli/material/dist/img/favicons/favicon-96x96.png create mode 100644 shaarli/material/dist/img/favicons/favicon.ico create mode 100644 shaarli/material/dist/img/favicons/manifest.json create mode 100644 shaarli/material/dist/img/favicons/mstile-150x150.png create mode 100644 shaarli/material/dist/img/favicons/mstile-310x150.png create mode 100644 shaarli/material/dist/img/favicons/mstile-70x70.png create mode 100644 shaarli/material/dist/img/sad_star.png create mode 100644 shaarli/material/dist/img/tools/star-circle.png create mode 100644 shaarli/material/dist/lib.css create mode 100644 shaarli/material/editlink.batch.html create mode 100644 shaarli/material/editlink.html create mode 100644 shaarli/material/error.html create mode 100644 shaarli/material/export.bookmarks.html create mode 100644 shaarli/material/export.html create mode 100644 shaarli/material/feed.atom.html create mode 100644 shaarli/material/feed.rss.html create mode 100644 shaarli/material/import.html create mode 100644 shaarli/material/includes.html create mode 100644 shaarli/material/install.html create mode 100644 shaarli/material/linklist.html create mode 100644 shaarli/material/linklist.paging.html create mode 100644 shaarli/material/loginform.html create mode 100644 shaarli/material/opensearch.html create mode 100644 shaarli/material/page.footer.html create mode 100644 shaarli/material/page.header.html create mode 100644 shaarli/material/page.html create mode 100644 shaarli/material/picwall.html create mode 100644 shaarli/material/pluginsadmin.html create mode 100644 shaarli/material/server.html create mode 100644 shaarli/material/server.requirements.html create mode 100644 shaarli/material/tag.cloud.html create mode 100644 shaarli/material/tag.list.html create mode 100644 shaarli/material/tag.sort.html create mode 100644 shaarli/material/thumbnails.html create mode 100644 shaarli/material/tools.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c0e1898 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +freshrss/.env +searxng/config diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..16645ee --- /dev/null +++ b/LICENSE @@ -0,0 +1,25 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED \AS IS\, WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to + diff --git a/README.md b/README.md new file mode 100644 index 0000000..74c2948 --- /dev/null +++ b/README.md @@ -0,0 +1,14 @@ +# podman-services + +These are Podman compose files for services I run at hyperreal.coffee. + +- AnonymousOverflow +- BreezeWiki +- Dumb +- FreshRSS +- GotHub +- Lingva Translate +- PrivateBin +- RedLib +- SearXNG +- Shaarli diff --git a/anonymous-overflow/compose.yml b/anonymous-overflow/compose.yml new file mode 100644 index 0000000..7d54515 --- /dev/null +++ b/anonymous-overflow/compose.yml @@ -0,0 +1,10 @@ +services: + anonymousoverflow: + container_name: 'anonymous-overflow' + image: 'ghcr.io/httpjamesm/anonymousoverflow:release' + environment: + - APP_URL=https://anonoverflow.hyperreal.coffee + - JWT_SIGNING_SECRET=secret + ports: + - '127.0.0.1:10400:8080' + restart: 'always' diff --git a/breezewiki/compose.yml b/breezewiki/compose.yml new file mode 100644 index 0000000..ecf466f --- /dev/null +++ b/breezewiki/compose.yml @@ -0,0 +1,10 @@ +services: + + breezewiki: + container_name: breezewiki + image: quay.io/pussthecatorg/breezewiki:latest + restart: always + ports: + - "127.0.0.1:10401:10416" # Replace with "10416:10416" if you don't use a reverse proxy + volumes: + - "./config.ini:/app/config.ini" diff --git a/breezewiki/config.ini b/breezewiki/config.ini new file mode 100644 index 0000000..609c053 --- /dev/null +++ b/breezewiki/config.ini @@ -0,0 +1,2 @@ +canonical_origin = https://breezewiki.hyperreal.coffee +port = 10416 diff --git a/dumb/compose.yml b/dumb/compose.yml new file mode 100644 index 0000000..16dd32f --- /dev/null +++ b/dumb/compose.yml @@ -0,0 +1,7 @@ +services: + dumb: + container_name: dumb + image: ghcr.io/rramiachraf/dumb:latest + ports: + - "127.0.0.1:10410:5555" + restart: always diff --git a/freshrss/compose.yml b/freshrss/compose.yml new file mode 100644 index 0000000..57eb2ce --- /dev/null +++ b/freshrss/compose.yml @@ -0,0 +1,36 @@ +volumes: + data: + extensions: + db: +services: + freshrss: + image: docker.io/freshrss/freshrss:latest + container_name: freshrss + hostname: freshrss + restart: unless-stopped + logging: + options: + max-size: 10m + ports: + - "127.0.0.1:8001:80" + volumes: + - data:/var/www/FreshRSS/data + - extensions:/var/www/FreshRSS/extensions + environment: + TZ: America/Chicago + CRON_MIN: '3,33' + TRUSTED_PROXY: 172.16.0.1/12 192.168.0.1/16 + freshrss-db: + image: docker.io/postgres:17 + container_name: freshrss-db + hostname: freshrss-db + restart: unless-stopped + logging: + options: + max-size: 10m + volumes: + - db:/var/lib/postgresql/data + environment: + POSTGRES_DB: ${DB_BASE:-freshrss} + POSTGRES_USER: ${DB_USER:-freshrss} + POSTGRES_PASSWORD: ${DB_PASSWORD:-freshrss} diff --git a/freshrss/env b/freshrss/env new file mode 100644 index 0000000..b57e564 --- /dev/null +++ b/freshrss/env @@ -0,0 +1,8 @@ +ADMIN_EMAIL= +ADMIN_PASSWORD= +ADMIN_API_PASSWORD= +PUBLISHED_PORT=8001 +DB_HOST=freshrss-db +DB_BASE=freshrss +DB_PASSWORD= +DB_USER=freshrss diff --git a/gothub/compose.yml b/gothub/compose.yml new file mode 100644 index 0000000..d161677 --- /dev/null +++ b/gothub/compose.yml @@ -0,0 +1,24 @@ +services: + gothub: + image: codeberg.org/gothub/gothub:latest # Master branch + # image: codeberg.org/gothub/gothub:dev # Dev branch + restart: always + ports: + - "6000:3000" + environment: + - DOCKER=true + - GOTHUB_SETUP_COMPLETE=false + - GOTHUB_PROXYING_ENABLED=false + - GOTHUB_IP_LOGGED=false + - GOTHUB_REQUEST_URL_LOGGED=false + - GOTHUB_USER_AGENT_LOGGED=false + - GOTHUB_DIAGNOSTIC_INFO_LOGGED=false + - GOTHUB_INSTANCE_PRIVACY_POLICY=https://gothub.hyperreal.coffee/privacy-policy + - GOTHUB_INSTANCE_COUNTRY="United States" + - GOTHUB_INSTANCE_PROVIDER="netcup.de" + - GOTHUB_INSTANCE_CLOUDFLARE=false + healthcheck: + test: wget -nv --tries=1 --spider http://127.0.0.1:3000/api/v1/version || exit 1 + interval: 30s + timeout: 5s + retries: 2 diff --git a/lingva-translate/compose.yml b/lingva-translate/compose.yml new file mode 100644 index 0000000..b914715 --- /dev/null +++ b/lingva-translate/compose.yml @@ -0,0 +1,12 @@ +services: + lingva: + container_name: lingva + image: docker.io/thedaviddelta/lingva-translate:latest + restart: always + environment: + - site_domain=lingva.ml + - force_default_theme=dark + - default_source_lang=auto + - default_target_lang=en + ports: + - "127.0.0.1:10403:3000" diff --git a/privatebin/compose.yml b/privatebin/compose.yml new file mode 100644 index 0000000..3779076 --- /dev/null +++ b/privatebin/compose.yml @@ -0,0 +1,9 @@ +services: + privatebin: + container_name: privatebin + image: docker.io/privatebin/nginx-fpm-alpine + restart: always + volumes: + - /home/jas/podman/privatebin/privatebin-conf.php:/src/config/conf.php:ro + ports: + - "127.0.0.1:10404:8080" diff --git a/privatebin/privatebin-conf.php b/privatebin/privatebin-conf.php new file mode 100644 index 0000000..a460d83 --- /dev/null +++ b/privatebin/privatebin-conf.php @@ -0,0 +1,277 @@ +;project page." + +; (optional) notice to display +; notice = "Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service." + +; by default PrivateBin will guess the visitors language based on the browsers +; settings. Optionally you can enable the language selection menu, which uses +; a session cookie to store the choice until the browser is closed. +languageselection = false + +; set the language your installs defaults to, defaults to English +; if this is set and language selection is disabled, this will be the only language +; languagedefault = "en" + +; (optional) URL shortener address to offer after a new paste is created. +; It is suggested to only use this with self-hosted shorteners as this will leak +; the pastes encryption key. +; urlshortener = "https://shortener.example.com/api?link=" + +; (optional) Let users create a QR code for sharing the paste URL with one click. +; It works both when a new paste is created and when you view a paste. +; qrcode = true + +; (optional) Let users send an email sharing the paste URL with one click. +; It works both when a new paste is created and when you view a paste. +; email = true + +; (optional) IP based icons are a weak mechanism to detect if a comment was from +; a different user when the same username was used in a comment. It might get +; used to get the IP of a comment poster if the server salt is leaked and a +; SHA512 HMAC rainbow table is generated for all (relevant) IPs. +; Can be set to one these values: +; "none" / "identicon" (default) / "jdenticon" / "vizhash". +; icon = "none" + +; Content Security Policy headers allow a website to restrict what sources are +; allowed to be accessed in its context. You need to change this if you added +; custom scripts from third-party domains to your templates, e.g. tracking +; scripts or run your site behind certain DDoS-protection services. +; Check the documentation at https://content-security-policy.com/ +; Notes: +; - If you use any bootstrap theme, you can remove the allow-popups from the +; sandbox restrictions. +; - If you use the bootstrap5 theme, you must change default-src to 'self' to +; enable display of the svg icons +; - By default this disallows to load images from third-party servers, e.g. when +; they are embedded in pastes. If you wish to allow that, you can adjust the +; policy here. See https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-it-load-embedded-images +; for details. +; - The 'unsafe-eval' is used in two cases; to check if the browser supports +; async functions and display an error if not and for Chrome to enable +; webassembly support (used for zlib compression). You can remove it if Chrome +; doesn't need to be supported and old browsers don't need to be warned. +; cspheader = "default-src 'none'; base-uri 'self'; form-action 'none'; manifest-src 'self'; connect-src * blob:; script-src 'self' 'unsafe-eval'; style-src 'self'; font-src 'self'; frame-ancestors 'none'; img-src 'self' data: blob:; media-src blob:; object-src blob:; sandbox allow-same-origin allow-scripts allow-forms allow-popups allow-modals allow-downloads" + +; stay compatible with PrivateBin Alpha 0.19, less secure +; if enabled will use base64.js version 1.7 instead of 2.1.9 and sha1 instead of +; sha256 in HMAC for the deletion token +; zerobincompatibility = false + +; Enable or disable the warning message when the site is served over an insecure +; connection (insecure HTTP instead of HTTPS), defaults to true. +; Secure transport methods like Tor and I2P domains are automatically whitelisted. +; It is **strongly discouraged** to disable this. +; See https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-it-show-me-an-error-about-an-insecure-connection for more information. +; httpwarning = true + +; Pick compression algorithm or disable it. Only applies to pastes/comments +; created after changing the setting. +; Can be set to one these values: "none" / "zlib" (default). +; compression = "zlib" + +[expire] +; expire value that is selected per default +; make sure the value exists in [expire_options] +default = "1week" + +[expire_options] +; Set each one of these to the number of seconds in the expiration period, +; or 0 if it should never expire +5min = 300 +10min = 600 +1hour = 3600 +1day = 86400 +1week = 604800 +; Well this is not *exactly* one month, it's 30 days: +1month = 2592000 +1year = 31536000 +never = 0 + +[formatter_options] +; Set available formatters, their order and their labels +plaintext = "Plain Text" +syntaxhighlighting = "Source Code" +markdown = "Markdown" + +[traffic] +; time limit between calls from the same IP address in seconds +; Set this to 0 to disable rate limiting. +limit = 10 + +; (optional) Set IPs addresses (v4 or v6) or subnets (CIDR) which are exempted +; from the rate-limit. Invalid IPs will be ignored. If multiple values are to +; be exempted, the list needs to be comma separated. Leave unset to disable +; exemptions. +; exempted = "1.2.3.4,10.10.10/24" + +; (optional) If you want only some source IP addresses (v4 or v6) or subnets +; (CIDR) to be allowed to create pastes, set these here. Invalid IPs will be +; ignored. If multiple values are to be exempted, the list needs to be comma +; separated. Leave unset to allow anyone to create pastes. +; creators = "1.2.3.4,10.10.10/24" + +; (optional) if your website runs behind a reverse proxy or load balancer, +; set the HTTP header containing the visitors IP address, i.e. X_FORWARDED_FOR +;header = "X_FORWARDED_FOR" + +[purge] +; minimum time limit between two purgings of expired pastes, it is only +; triggered when pastes are created +; Set this to 0 to run a purge every time a paste is created. +limit = 300 + +; maximum amount of expired pastes to delete in one purge +; Set this to 0 to disable purging. Set it higher, if you are running a large +; site +batchsize = 10 + +[model] +; name of data model class to load and directory for storage +; the default model "Filesystem" stores everything in the filesystem +class = Filesystem +[model_options] +dir = PATH "data" + +;[model] +; example of a Google Cloud Storage configuration +;class = GoogleCloudStorage +;[model_options] +;bucket = "my-private-bin" +;prefix = "pastes" +;uniformacl = false + +;[model] +; example of DB configuration for MySQL +;class = Database +;[model_options] +;dsn = "mysql:host=localhost;dbname=privatebin;charset=UTF8" +;tbl = "privatebin_" ; table prefix +;usr = "privatebin" +;pwd = "Z3r0P4ss" +;opt[12] = true ; PDO::ATTR_PERSISTENT + +;[model] +; example of DB configuration for SQLite +;class = Database +;[model_options] +;dsn = "sqlite:" PATH "data/db.sq3" +;usr = null +;pwd = null +;opt[12] = true ; PDO::ATTR_PERSISTENT + +;[model] +; example of DB configuration for PostgreSQL +;class = Database +;[model_options] +;dsn = "pgsql:host=localhost;dbname=privatebin" +;tbl = "privatebin_" ; table prefix +;usr = "privatebin" +;pwd = "Z3r0P4ss" +;opt[12] = true ; PDO::ATTR_PERSISTENT + +;[model] +; example of S3 configuration for Rados gateway / CEPH +;class = S3Storage +;[model_options] +;region = "" +;version = "2006-03-01" +;endpoint = "https://s3.my-ceph.invalid" +;use_path_style_endpoint = true +;bucket = "my-bucket" +;accesskey = "my-rados-user" +;secretkey = "my-rados-pass" + +;[model] +; example of S3 configuration for AWS +;class = S3Storage +;[model_options] +;region = "eu-central-1" +;version = "latest" +;bucket = "my-bucket" +;accesskey = "access key id" +;secretkey = "secret access key" + +;[model] +; example of S3 configuration for AWS using its SDK default credential provider chain +; if relying on environment variables, the AWS SDK will look for the following: +; - AWS_ACCESS_KEY_ID +; - AWS_SECRET_ACCESS_KEY +; - AWS_SESSION_TOKEN (if needed) +; for more details, see https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html#default-credential-chain +;class = S3Storage +;[model_options] +;region = "eu-central-1" +;version = "latest" +;bucket = "my-bucket" + +[yourls] +; When using YOURLS as a "urlshortener" config item: +; - By default, "urlshortener" will point to the YOURLS API URL, with or without +; credentials, and will be visible in public on the PrivateBin web page. +; Only use this if you allow short URL creation without credentials. +; - Alternatively, using the parameters in this section ("signature" and +; "apiurl"), "urlshortener" needs to point to the base URL of your PrivateBin +; instance with "?shortenviayourls&link=" appended. For example: +; urlshortener = "${basepath}?shortenviayourls&link=" +; This URL will in turn call YOURLS on the server side, using the URL from +; "apiurl" and the "access signature" from the "signature" parameters below. + +; (optional) the "signature" (access key) issued by YOURLS for the using account +; signature = "" +; (optional) the URL of the YOURLS API, called to shorten a PrivateBin URL +; apiurl = "https://yourls.example.com/yourls-api.php" diff --git a/redlib/.env b/redlib/.env new file mode 100644 index 0000000..2505bdf --- /dev/null +++ b/redlib/.env @@ -0,0 +1,48 @@ +# Redlib configuration +# See the Configuration section of the README for a more detailed explanation of these settings. + +# Instance-specific settings +# Enable SFW-only mode for the instance +REDLIB_SFW_ONLY=off +# Set a banner message for the instance +REDLIB_BANNER= +# Disable search engine indexing +REDLIB_ROBOTS_DISABLE_INDEXING=off +# Set the Pushshift frontend for "removed" links +REDLIB_PUSHSHIFT_FRONTEND=undelete.pullpush.io + +# Default user settings +# Set the default theme (options: system, light, dark, black, dracula, nord, laserwave, violet, gold, rosebox, gruvboxdark, gruvboxlight) +REDLIB_DEFAULT_THEME=dracula +# Set the default front page (options: default, popular, all) +REDLIB_DEFAULT_FRONT_PAGE=default +# Set the default layout (options: card, clean, compact) +REDLIB_DEFAULT_LAYOUT=card +# Enable wide mode by default +REDLIB_DEFAULT_WIDE=off +# Set the default post sort method (options: hot, new, top, rising, controversial) +REDLIB_DEFAULT_POST_SORT=hot +# Set the default comment sort method (options: confidence, top, new, controversial, old) +REDLIB_DEFAULT_COMMENT_SORT=confidence +# Enable showing NSFW content by default +REDLIB_DEFAULT_SHOW_NSFW=off +# Enable blurring NSFW content by default +REDLIB_DEFAULT_BLUR_NSFW=off +# Enable HLS video format by default +REDLIB_DEFAULT_USE_HLS=off +# Hide HLS notification by default +REDLIB_DEFAULT_HIDE_HLS_NOTIFICATION=off +# Disable autoplay videos by default +REDLIB_DEFAULT_AUTOPLAY_VIDEOS=off +# Define a default list of subreddit subscriptions (format: sub1+sub2+sub3) +REDLIB_DEFAULT_SUBSCRIPTIONS= +# Hide awards by default +REDLIB_DEFAULT_HIDE_AWARDS=off +# Disable the confirmation before visiting Reddit +REDLIB_DEFAULT_DISABLE_VISIT_REDDIT_CONFIRMATION=off +# Hide score by default +REDLIB_DEFAULT_HIDE_SCORE=off +# Enable fixed navbar by default +REDLIB_DEFAULT_FIXED_NAVBAR=on + +RUST_LOG=redlib=trace diff --git a/redlib/compose.yml b/redlib/compose.yml new file mode 100644 index 0000000..e370d00 --- /dev/null +++ b/redlib/compose.yml @@ -0,0 +1,23 @@ +services: + redlib: + image: quay.io/redlib/redlib:latest + restart: always + container_name: "redlib" + ports: + - "127.0.0.1:10405:8080" + user: nobody + read_only: true + security_opt: + - no-new-privileges:true + cap_drop: + - ALL + env_file: .env + networks: + - redlib + healthcheck: + test: ["CMD", "wget", "--spider", "-q", "--tries=1", "http://localhost:8080/settings"] + interval: 5m + timeout: 3s + +networks: + redlib: diff --git a/searxng/compose.yml b/searxng/compose.yml new file mode 100644 index 0000000..ff3c9e3 --- /dev/null +++ b/searxng/compose.yml @@ -0,0 +1,14 @@ +services: + searxng: + image: docker.io/searxng/searxng:latest + container_name: searxng + ports: + - "127.0.0.1:10406:8080" + restart: always + volumes: + - type: bind + source: /home/jas/podman/searxng/config + target: /etc/searxng + environment: + BASE_URL: "https://searxng.hyperreal.coffee" + INSTANCE_NAME: "searxng" diff --git a/shaarli/compose.yml b/shaarli/compose.yml new file mode 100644 index 0000000..950e8e2 --- /dev/null +++ b/shaarli/compose.yml @@ -0,0 +1,14 @@ +--- +services: + shaarli: + image: ghcr.io/shaarli/shaarli:latest + volumes: + - shaarli-cache:/var/www/shaarli/cache + - shaarli-data:/var/www/shaarli/data + ports: + - "127.0.0.1:10407:80" + restart: always + +volumes: + shaarli-cache: + shaarli-data: diff --git a/shaarli/material/404.html b/shaarli/material/404.html new file mode 100644 index 0000000..d280a05 --- /dev/null +++ b/shaarli/material/404.html @@ -0,0 +1,18 @@ + + + +{$pageName="404"} +{include="includes"} + + +{include="page.header"} +
+
+ Nothing found +
+
{'Sorry, nothing to see here.'|t} That's a 404.
+

{$error_message}

+
+{include="page.footer"} + + diff --git a/shaarli/material/addlink.html b/shaarli/material/addlink.html new file mode 100644 index 0000000..e92cb54 --- /dev/null +++ b/shaarli/material/addlink.html @@ -0,0 +1,62 @@ + + + +{$pageName="addlink"} +{include="includes"} + + +{include="page.header"} +
+
+
+
+
{"Shaare a new link"|t}
+
+
+
+ +
+
+ +
+
+ +
+ +
+ + +
+
+
+{include="page.footer"} + + diff --git a/shaarli/material/changepassword.html b/shaarli/material/changepassword.html new file mode 100644 index 0000000..73bafb9 --- /dev/null +++ b/shaarli/material/changepassword.html @@ -0,0 +1,35 @@ + + + +{$pageName="changepassword"} +{include="includes"} + + +{include="page.header"} +
+
+
+
+
{'Change password'|t}
+
+
+ + +
+
+ + +
+ +
+ +
+
+
+
+{include="page.footer"} + + diff --git a/shaarli/material/changetag.html b/shaarli/material/changetag.html new file mode 100644 index 0000000..5dbc40c --- /dev/null +++ b/shaarli/material/changetag.html @@ -0,0 +1,65 @@ + + + +{$pageName="changetag"} +{include="includes"} + + +{include="page.header"} +
+
+
+
+
{"Manage tags"|t}
+
+ +

All modifications are case sensitive.

+ +
+ + + +
+
+ + +
+

{'You can also edit tags in the'|t} {'tag list'|t}.

+
+ +
+
+ +
+
+
{"Change tags separator"|t}
+
+

+ {'Your current tag separator is'|t} {$tags_separator}{if="!empty($tags_separator_desc)"} ({$tags_separator_desc}){/if}. +

+
+ + + +
+
+ +
+
+
+
+{include="page.footer"} + + diff --git a/shaarli/material/configure.html b/shaarli/material/configure.html new file mode 100644 index 0000000..c52dbe5 --- /dev/null +++ b/shaarli/material/configure.html @@ -0,0 +1,242 @@ + + + +{$pageName="configure"} +{include="includes"} + + +{include="page.header"} +
+
+
+
+ +
Configuration
+
+
+ + +
+
+ + +
{'Default value'|t}: {$base_path}/
+
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+ +
+
+ +
+
+
{'Continent'|t} · {'City'|t}
+
+
+ + + +
+
+
+
+
{'Disable session cookie hijacking protection'|t}
+
{'Check this if you get disconnected or if your IP address changes often'|t}
+
+
+
+ +
+
+
+ +
+
+
{'Private links by default'|t}
+
{'All new links are private by default'|t}
+
+
+
+ +
+
+
+ +
+
+
{'RSS direct links'|t}
+
Enabling it will show a permalink in the description, and the feed item will be linked to the absolute URL. Disabling it swaps this behaviour around (permalink in title and link in description).
+
+
+
+ +
+
+
+ +
+
+
{'Hide public links'|t}
+
{'Do not show any links if the user is not logged in'|t}
+
+
+
+ +
+
+
+ +
+
+
{'Automatically retrieve description for new bookmarks'|t}
+
{'Shaarli will try to retrieve the description from meta HTML headers'|t}
+
+
+
+ +
+
+
+ +
+
+
{'Check updates'|t}
+
{'Notify me when a new release is ready'|t}
+
+
+
+ +
+
+
+ +
+
+
{'Enable thumbnails'|t}
+
+ {if="! $gd_enabled"} + {'You need to enable the extension php-gd to use thumbnails.'|t} + {elseif="$thumbnails_enabled"} + {'Synchronize thumbnails'|t} + {/if} +
+
+
+ +
+
+ +
+
+
{'Enable REST API'|t}
+
{'Allow third party software to use Shaarli such as mobile application'|t}
+
+
+
+ +
+
+
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+
+{include="page.footer"} + + diff --git a/shaarli/material/daily.html b/shaarli/material/daily.html new file mode 100644 index 0000000..0f33adc --- /dev/null +++ b/shaarli/material/daily.html @@ -0,0 +1,116 @@ + + + +{$pageName="daily"} +{include="includes"} + + +{include="page.header"} + + + + +
+
+ {loop="$plugin_start_zone"} + {$value} + {/loop} +
+ +
+

{$localizedType} Shaarli

+

{function="t('All links of one :type in a single page.', '', 1, 'shaarli', [':type' => t($type)])"}

+ +
+ +

{$dayDesc}

+ +
+ {loop="$daily_about_plugin"} + {$value} + {/loop} +
+ + {if="$linksToDisplay"} +
+ {loop="$linksToDisplay"} + {$link=$value} +
+
+ + {$link.title} + + + {if="$thumbnails_enabled && !empty($link.thumbnail)"} +
+ {/if} + + {if="$link.formatedDescription"} +
+ {$link.formatedDescription} +
+ {/if} + +
+
+ {/loop} +
+ {else} +
No articles on this day.
+ {/if} + +
+ {loop="$plugin_end_zone"} + {$value} + {/loop} +
+
+{include="page.footer"} + + diff --git a/shaarli/material/dailyrss.html b/shaarli/material/dailyrss.html new file mode 100644 index 0000000..871a3ba --- /dev/null +++ b/shaarli/material/dailyrss.html @@ -0,0 +1,35 @@ + + + + {$localizedType} - {$title} + {$index_url} + {function="t('All links of one :type in a single page.', '', 1, 'shaarli', [':type' => t($type)])"} + {$language} + {$index_url} + Shaarli + + {loop="$days"} + + {$value.date_human} - {$title} + {$value.absolute_url} + {$value.absolute_url} + {$value.date_rss} + {$value.title} + + {if="!$hide_timestamps"}{$value.created|format_date} — {/if} + {'Permalink'|t} + {if="$value.tags"} — {$value.tags}{/if} +
+ {$value.url} +

+ {if="$value.thumbnail"}thumbnail{/if}
+ {if="$value.description"}{$value.description}{/if} +

+ {/loop} + ]]>
+
+ {/loop} +
+
diff --git a/shaarli/material/dist/bundle.css b/shaarli/material/dist/bundle.css new file mode 100644 index 0000000..7935bbc --- /dev/null +++ b/shaarli/material/dist/bundle.css @@ -0,0 +1 @@ +html{color:#000;background:#fff}blockquote,body,button,code,dd,div,dl,dt,fieldset,form,h1,h2,h3,h4,h5,h6,input,legend,li,ol,p,pre,td,textarea,th,ul{margin:0;padding:0}table{border-collapse:collapse;border-spacing:0}fieldset,img{border:0}address,caption,cite,code,dfn,em,optgroup,strong,th,var{font-style:inherit;font-weight:inherit}del,ins{text-decoration:none}li{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400}q:after,q:before{content:""}abbr,acronym{border:0;font-variant:normal}sup{vertical-align:baseline}sub{vertical-align:baseline}legend{color:#000}button,input,optgroup,option,select,textarea{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit}button{border:medium none;margin:0;padding:0;outline:0;background:0 0}@font-face{font-family:Roboto;font-style:normal;font-weight:100;font-display:swap;src:url(fonts/roboto/Roboto-Thin.ttf) format("truetype")}@font-face{font-family:Roboto;font-style:normal;font-weight:200;font-display:swap;src:url(fonts/roboto/Roboto-Light.ttf) format("truetype")}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/roboto/Roboto-Regular.ttf) format("truetype")}@font-face{font-family:Roboto;font-style:normal;font-weight:500;font-display:swap;src:url(fonts/roboto/Roboto-Medium.ttf) format("truetype")}@font-face{font-family:Roboto;font-style:normal;font-weight:700;font-display:swap;src:url(fonts/roboto/Roboto-Bold.ttf) format("truetype")}@font-face{font-family:"Roboto Condensed";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/roboto/RobotoCondensed-Regular.ttf) format("truetype")}@font-face{font-family:Material;src:url(fonts/material-icons/materialdesignicons-webfont.eot);src:url(fonts/material-icons/materialdesignicons-webfont.eot?#iefix) format("embedded-opentype"),url(fonts/material-icons/materialdesignicons-webfont.woff2) format("woff2"),url(fonts/material-icons/materialdesignicons-webfont.woff) format("woff"),url(fonts/material-icons/materialdesignicons-webfont.ttf) format("truetype"),url(fonts/material-icons/materialdesignicons-webfont.svg#svgFontName) format("svg");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:"Old Newspaper Types";src:url(fonts/oldnewspapertypes/oldnewspapertypes-webfont.woff2) format("woff2"),url(fonts/oldnewspapertypes/oldnewspapertypes-webfont.woff) format("woff"),url(fonts/oldnewspapertypes/oldnewspapertypes-webfont.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}.animate-fade-in{animation:fade-in .25s ease}@keyframes fade-in{0%{opacity:0}100%{opacity:1}}.animate-fade-out{animation:fade-out .25s ease forwards!important}@keyframes fade-out{0%{opacity:1}100%{opacity:0}}.animate-slide-from-top{animation:slide-from-top .25s ease}@keyframes slide-from-top{0%{opacity:0;transform:translateY(-40px)}100%{opacity:1;transform:translateY(0)}}.animate-slide-from-right,.notification{animation:slide-from-right .25s ease forwards}@keyframes slide-from-right{0%{opacity:0;transform:translateX(40px)}100%{opacity:1;transform:translateX(0)}}.animate-hide-slide-to-bottom{animation:hide-slide-to-bottom .25s ease forwards}@keyframes hide-slide-to-bottom{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(300px)}}.animate-show-slide-from-bottom{animation:show-slide-from-bottom .25s ease}@keyframes show-slide-from-bottom{0%{opacity:0;transform:translateY(300px)}100%{opacity:1;transform:translateY(0)}}.animate-compress-height-50{animation:compress-height-50 1s ease forwards;overflow:hidden}@keyframes compress-height-50{0%{opacity:1;max-height:50px}100%{opacity:0;max-height:0}}.animate-turn-forever,.loading-wrapper.is-loading::after{animation:turn 1s linear infinite}@keyframes turn{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.daily-card,.shadow-1,.subheader{box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12)}.daily-card:focus,.daily-card:hover,.shadow-2{box-shadow:0 8px 17px 0 rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19)}.notification,.shadow-3{box-shadow:0 12px 15px 0 rgba(0,0,0,.24),0 17px 50px 0 rgba(0,0,0,.19)}.shadow-4{box-shadow:0 16px 28px 0 rgba(0,0,0,.22),0 25px 55px 0 rgba(0,0,0,.21)}.modal,.shadow-5{box-shadow:0 27px 24px 0 rgba(0,0,0,.2),0 40px 77px 0 rgba(0,0,0,.22)}.actionbar,.shadow-top-1{box-shadow:2px 0 5px 0 rgba(0,0,0,.16),2px 0 10px 0 rgba(0,0,0,.12)}.button-raised,.button-raised[disabled],.button-raised[disabled]:active,.button-raised[disabled]:focus,.button-raised[disabled]:hover,.shadow-button{box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.24)}.button-raised:focus,.button-raised:hover,.shadow-button-hover{box-shadow:0 0 4px rgba(0,0,0,.18),0 2px 8px rgba(0,0,0,.36)}.button-floating,.shadow-button-floating{box-shadow:0 0 4px rgba(0,0,0,.14),0 4px 8px rgba(0,0,0,.28)}.button-floating:focus,.button-floating:hover,.shadow-button-floating-hover{box-shadow:0 0 6px rgba(0,0,0,.16),0 6px 12px rgba(0,0,0,.32)}.daily-item-footer-subtitle:hover:after,.mdi{display:inline-block;font:normal normal normal 24px/1 Material;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0,0)}.mdi-arrow-left:before{content:"\f04d"}.mdi-arrow-right:before{content:"\f054"}.mdi-menu:before{content:"\f35c"}.mdi-pencil:before{content:"\f3eb"}.mdi-delete:before{content:"\f1c0"}.mdi-magnify:before{content:"\f349"}.mdi-magnify-plus-outline:before{content:"\f6ec"}.mdi-tag:before{content:"\f4f9"}.mdi-filter:before{content:"\f232"}.mdi-rss:before{content:"\f46b"}.mdi-key:before{content:"\f306"}.mdi-settings:before{content:"\f493"}.mdi-logout:before{content:"\f343"}.mdi-account:before{content:"\f004"}.mdi-dots-vertical:before{content:"\f1d9"}.mdi-firefox:before{content:"\f239"}.mdi-google-chrome:before{content:"\f2af"}.mdi-android:before{content:"\f032"}.mdi-apple-ios:before{content:"\f037"}.mdi-lock:before{content:"\f33e"}.mdi-puzzle:before{content:"\f431"}.mdi-tag-multiple:before{content:"\f4fb"}.mdi-file-import:before{content:"\f220"}.mdi-file-export:before{content:"\f21d"}.mdi-plus:before{content:"\f415"}.mdi-note:before{content:"\f39a"}.mdi-checkbox-marked-outline:before{content:"\f135"}.mdi-link:before{content:"\f337"}.mdi-pin:before{content:"\f403"}.mdi-qrcode:before{content:"\f432"}.mdi-close:before{content:"\f156"}.mdi-image:before{content:"\f2e9"}.mdi-chevron-down:before{content:"\f140"}.mdi-check:before{content:"\f12c"}.mdi-circle:before{content:"\f764"}.mdi-server:before{content:"\f48b"}.mdi-playlist-plus:before{content:"\f412"}.awesomplete ul{z-index:400;border:1px solid #abbdcb;border-radius:2px}div.awesomplete{display:block}div.awesomplete mark{padding:0}div.awesomplete>input{display:inline-block}div.awesomplete>ul{border:none;box-shadow:0 8px 17px 0 rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19);border-radius:0}div.awesomplete>ul:before{box-shadow:0 8px 17px 0 rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19)}div.awesomplete>ul>li{background-color:#fff;padding:5px 10px}div.awesomplete>ul>li:hover{background-color:#e0e6eb}div.awesomplete li:hover mark{background-color:#d3dce4}div.awesomplete>ul>li[aria-selected=true]{background-color:#2196f3;color:#fff}div.awesomplete>ul>li[aria-selected=true]:hover{background-color:#1976d2}div.awesomplete li[aria-selected=true]:hover mark{background:#3c6b00;color:inherit}.md_help{color:inherit!important}.sortable-chosen{background:#fff}.sortable-ghost{opacity:.5;background:#c8ebfb}*,:after,:before{box-sizing:border-box}html{background:#ecf0f3;font-size:16px;-webkit-tap-highlight-color:transparent}body{font-family:Roboto,sans-serif;font-size:16px;background:#ecf0f3;color:#252d37}h1{font-size:1.7rem;font-weight:400;margin:10px 0 20px 0}h2{font-size:1.1rem;font-weight:400;margin-bottom:15px}p{margin-bottom:15px;font-size:1rem;font-weight:400}a{color:#2196f3}a:focus,a:hover{color:#1e88e5}a:active{color:#1976d2}em{font-style:italic}strong{font-weight:700}small{font-size:80%}img{border:0;vertical-align:middle}ul{margin-top:0;margin-bottom:10px}dl{margin-top:0;margin-bottom:20px}dt{font-weight:700}pre{margin:1em 0;padding:20px;max-width:100%;border:1px solid #e0e6eb;color:#414d5a;line-height:1.2em;background:#f8f9fa;border-radius:5px;box-shadow:none}code{padding:0;color:#414d5a;font-size:.8em;line-height:1em;font-weight:400!important;background:#f8f9fa;border-radius:3px}:not(pre) code{padding:0 5px 2px;box-shadow:none}del{text-decoration:line-through}@-ms-viewport{width:device-width}.button,.button-base,.button-inverse,.button-raised,.nowrap{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.no-border{border:none!important}hr.darker{border-top-color:#cad3da}hr.margin{margin-left:40px;margin-right:40px}.is-bold{font-weight:700}.mts{margin-top:5px}.mtm{margin-top:15px}.mtl{margin-top:30px}.mbs{margin-bottom:5px}.mbm{margin-bottom:15px}.mbl{margin-bottom:30px}.dark{background-color:#000}.round-image-container{width:60px;height:60px;border-radius:50%;background-color:#e0e6eb;text-align:center}.round-image-container i{font-size:45px;line-height:60px}.round-image-container i.mdi-settings{color:#009688}.round-image-container i.mdi-lock{color:#db4437}.round-image-container i.mdi-puzzle{color:#03a9f4}.round-image-container i.mdi-tag-multiple{color:#ff9800}.round-image-container i.mdi-file-import{color:#9c27b0}.round-image-container i.mdi-file-export{color:#795548}.round-image-container i.mdi-image{color:#9e9e9e}.round-image-container i.mdi-server{color:#607d8b}p.highlight{color:#f44336}.nothing-found{text-align:center;font-size:2.4rem;font-weight:400;color:#8f9eaf;margin-bottom:100px}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-warning{color:#ff9800}.text-success{color:#4caf50}.text-error{color:#f44336}.text-feedback{display:inline-block;margin-left:10px;margin-right:10px;font-style:italic;font-size:90%}.pull-left{float:left!important}.pull-right{float:right!important}.hidden{display:none!important}.is-highlighted-hover:hover{background-color:#f9f9f9}ul.is-bordered li{padding:5px;border:1px solid #ddd;border-bottom:none;background-color:#eee;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}ul.is-bordered li:last-child{border-bottom:1px solid #ddd}.is-flex{display:flex;align-items:center;justify-content:space-between}.is-flex-grown{flex-grow:1}.is-flex-end{justify-self:flex-end}.ripple .ripple-effect,.ripple-effect{background:#fff}@keyframes ripple-animation{from{-webkit-transform:scale(1);transform:scale(1);opacity:.25;visibility:visible}to{-webkit-transform:scale(50);transform:scale(50);opacity:0;visibility:visible}}@keyframes ripple-animation-intense{from{-webkit-transform:scale(1);transform:scale(1);opacity:.5;visibility:visible}to{-webkit-transform:scale(50);transform:scale(50);opacity:0;visibility:visible}}.button,.button-raised,.ripple{position:relative;overflow:hidden;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}.ripple-effect{visibility:hidden;position:absolute;border-radius:50%;width:50px;height:50px;pointer-events:none;-webkit-animation:ripple-animation-intense 2s;animation:ripple-animation-intense 2s}.ripple-effect.stop-animation{-webkit-animation:none!important;animation:none!important}.ripple-primary .ripple-effect{background:#2196f3}.card,.link-outer{position:relative;height:auto;background:#fff;box-shadow:0 -1px 0 #e0e6eb,0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.24);margin:15px 0 15px 0;border-radius:4px;transition:all .25s ease-in-out}.card-overlay{position:absolute;top:0;bottom:0;left:0;right:0;padding:15px;background-color:rgba(255,255,255,.8);z-index:10;transition:background-color .25s ease-in-out}.card-header,.card-title,.link-header,h1.card-header{position:relative;margin:0;padding:15px;border-bottom:1px solid #d3dce4;font-size:1rem;font-weight:500;text-transform:uppercase}.card-subheader{text-transform:initial;font-size:90%;font-weight:400;font-style:italic;color:#999}.card-body{padding:15px}.card-footer{padding:15px}.card-search input[type=search]{padding:10px 15px;background-color:#eee;border-color:transparent}.list-action .list-item .list-item-label,.list-label,.list-side-right .list-item-label,.list-sortable .list-item-label{font-size:1.1rem;font-weight:400;color:#252d37}.list-action .list-item .list-item-sublabel,.list-side-right .list-item-sublabel,.list-sortable .list-item-sublabel,.list-sublabel{margin-top:5px;font-size:.85rem;font-weight:400;color:#8f9eaf}.list-item{display:block;padding:15px}.list-item-text{padding:15px}.list-item-controls{display:flex;justify-content:space-around;align-items:center}.list-item-controls .list-item-control{color:#8f9eaf;font-size:20px;width:35px;height:35px;line-height:35px;text-align:center;border-radius:50%}.list-item-controls .list-item-control:focus,.list-item-controls .list-item-control:hover{background-color:#e0e6eb}.list-item-controls .list-item-control:active{background-color:#d3dce4}.is-control-visible-hover .list-item-controls{display:none}.is-control-visible-hover:hover .list-item-controls{display:inherit}.is-control-opaque-hover .list-item-controls{opacity:.5}.is-control-opaque-hover:hover .list-item-controls{opacity:1}.list-item-flex{display:flex;justify-content:space-between;align-items:center;background:#fff;border-top:1px solid #d3dce4}.card-header+.list-item-flex:first-child{border-top:0}.list-item-flex:last-child{border-bottom:1px solid #d3dce4}.list-item-flex .list-item-start{padding-left:15px}.list-item-flex .list-item-middle{flex-grow:1}.list-item-flex .list-item-end{padding-right:15px}label.list-item-content{margin:0}.list-action .list-item{display:block;cursor:pointer;color:#252d37;border-top:1px solid #d3dce4}.card-header+.list-action .list-item:first-child{border-top:0}.list-action .list-item:last-child{border-bottom:1px solid #d3dce4}.list-action .list-item:focus,.list-action .list-item:hover{background-color:#e0e6eb;text-decoration:none}.list-action.list-big .list-item-label{font-size:1.2rem}.list-action.list-big .list-item-sublabel{margin-top:5px;font-weight:400;font-size:1rem;color:#8f9eaf}.list-side-right .list-item{display:flex;justify-content:space-between;align-items:center;padding:20px 15px;border-top:1px solid #d3dce4}.list-side-right .list-item:last-child{border-bottom:1px solid #d3dce4}.list-side-right .list-item-sublabel{margin-top:5px}.list-sortable .list-item{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;align-items:center}.list-sortable .list-item .list-item-content{flex:1}.list-sortable .list-sortable-handle{padding:10px;cursor:move;font-size:2rem;color:#8f9eaf}.list-sortable .list-item-sublabel{margin-top:5px}.list-checkable input[type=checkbox]{display:block;margin-right:15px}.key-value-item{display:flex;justify-content:space-between;align-items:center;padding:5px 0;background:#fff;border:none}.key-value-item>:first-child{font-weight:700}.popup{position:absolute;top:48px;right:0;min-width:220px;color:#252d37;box-shadow:0 2px 30px rgba(0,0,0,.2);background:#fff;line-height:1.5;cursor:default;z-index:50}.popup h2{padding:0 10px;margin-top:10px;margin-bottom:10px;text-transform:uppercase;font-size:12px;color:#999}.popup label{margin-bottom:0;font-size:12px;color:#999}@media (max-width:600px){.popup{position:fixed;overflow-x:auto;height:100%;top:0;left:0;right:0}}.popup-title{font-weight:700;background-color:#e0e6eb;padding:10px}.popup-close{width:20px;height:20px;line-height:20px;float:right;border-radius:50%}.popup-close:hover{background-color:#fff}.popup-body{padding:10px 0 10px 0}.popup-body .list-item{padding:5px 10px;border:none}.popup-body .list-item:last-child{border-bottom:none}.popup-body .list-item-label{font-size:.9rem}.popup ul{list-style:none;margin-bottom:0}.popup ul li{cursor:pointer}.popup ul li a{display:block;padding:5px 10px}.popup ul li a:hover{background-color:#e0e6eb}.popup input[type=text]{width:100%}.popup .popup-content-area{padding:10px}.button,.button-base,.button-inverse,.button-raised{display:inline-block;position:relative;overflow:hidden;height:36px;padding:8px 16px;border:none;border-radius:2px;outline:0;background-color:rgba(255,255,255,0);font-size:.95rem;font-weight:400;text-transform:uppercase;color:#252d37;text-transform:uppercase;text-decoration:none;text-align:center;cursor:pointer}.button-base:active,.button-base:active:focus,.button-base:focus,.button-base:hover,.button-inverse:active,.button-inverse:focus,.button-inverse:hover,.button-raised:active,.button-raised:focus,.button-raised:hover,.button:active,.button:focus,.button:hover{outline:0;border:none;text-decoration:none;color:#252d37}.button-base[disabled],[disabled].button,[disabled].button-inverse,[disabled].button-raised{pointer-events:none}.button-base::-moz-focus-inner,.button-inverse::-moz-focus-inner,.button-raised::-moz-focus-inner,.button::-moz-focus-inner{border:0;padding:0}.button-base.pull-right,.pull-right.button,.pull-right.button-inverse,.pull-right.button-raised{margin-left:10px}.button:focus,.button:hover{background-color:rgba(153,153,153,.2);box-shadow:none;color:#252d37}.button:active{box-shadow:none}.button[disabled],.button[disabled]:active,.button[disabled]:focus,.button[disabled]:hover{color:rgba(0,0,0,.26);background-color:rgba(255,255,255,0)}.button-raised{background-color:#e0e0e0}.button-raised:focus,.button-raised:hover{color:#252d37}.button-raised:active{box-shadow:none}.button-raised[disabled],.button-raised[disabled]:active,.button-raised[disabled]:focus,.button-raised[disabled]:hover{color:rgba(0,0,0,.26);background-color:rgba(0,0,0,.12)}.button-inverse{color:#fff;background-color:rgba(255,255,255,0)}.button-inverse:focus,.button-inverse:hover{background-color:rgba(204,204,204,.15);color:#fff}.button-inverse.active,.button-inverse:active,.button-inverse:active:focus{background-color:rgba(204,204,204,.25);color:#fff}.button-inverse[disabled]{background-color:rgba(255,255,255,0);color:rgba(255,255,255,.3)}.button-primary{color:#fff;background-color:#2196f3}.button-primary:focus,.button-primary:hover{background-color:rgb(12.8461538462,138.0961538462,237.6538461538);color:#fff}.button-primary:active{background-color:rgb(11.5384615385,124.0384615385,213.4615384615);color:#fff}.button-primary:active:focus{color:#fff}.button-alert{color:#fff;background-color:#f44336}.button-alert:focus,.button-alert:hover{background-color:rgb(242.6768867925,44.3867924528,29.8231132075);color:#fff}.button-alert:active{background-color:rgb(234.1839622642,27.9622641509,12.8160377358);color:#fff}.button-alert:active:focus{color:#fff}.button-firefox{color:#fff;background-color:#ea9c21}.button-firefox:focus,.button-firefox:hover{background-color:rgb(220.6296296296,143.1111111111,20.8703703704);color:#fff}.button-firefox:active{background-color:rgb(197.3333333333,128,18.6666666667);color:#fff}.button-firefox:active:focus{color:#fff}.button-floating{position:fixed;display:flex;align-items:center;justify-content:center;width:56px;height:56px;bottom:5%;right:5%;text-align:center;line-height:54px;font-size:25px;color:#fff;background-color:#f44336;border-radius:50%;transition:box-shadow 150ms cubic-bezier(0,0,.2,1);z-index:100}.button-floating:focus,.button-floating:hover{color:#fff;text-decoration:none}.button-floating:active{box-shadow:none}.large-icon-button{display:block;float:left;padding:15px;color:#252d37;width:140px;overflow:hidden;font-size:16px;text-align:center;border-radius:2px}.large-icon-button:focus,.large-icon-button:hover{text-decoration:none;background-color:#ddd;color:#252d37}.large-icon-button:active{background-color:rgb(208.25,208.25,208.25)}.large-icon-button i{display:block;margin:auto;font-size:70px}.large-icon-button i.mdi-firefox{color:#e55b0a}.large-icon-button i.mdi-apple-ios{color:#a6a8ab}.large-icon-button i.mdi-android{color:#a4c739}.large-icon-button i.mdi-google-chrome{color:#dd4f43}.modal{position:relative;display:block;top:auto;bottom:auto;left:auto;right:auto;z-index:1;margin-top:10%;margin-top:10vh;background:#fff}.modal-title{padding:20px 20px 10px 20px;line-height:inherit;font-size:1.4rem;font-weight:400}.modal-body{padding:10px 20px 10px 20px;max-height:55vh;overflow:auto;color:#6d7988}.modal-footer{padding:10px 20px 20px 20px;border:none;text-align:left}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input[type=number],input[type=password],input[type=search],input[type=text],textarea{position:relative;border:1px solid #ccc;border-top:none;border-left:none;border-right:none;box-shadow:none;padding:6px 1px;background:rgba(255,255,255,0);width:100%}input[type=number]:after,input[type=password]:after,input[type=search]:after,input[type=text]:after,textarea:after{transition:1s all;position:absolute;display:block;bottom:0;background-color:red;height:2px;left:0;width:0}input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=text]:focus,textarea:focus{border-color:#2196f3;box-shadow:0 1px 0 #2196f3;outline:0}input[type=number]:focus:after,input[type=password]:focus:after,input[type=search]:focus:after,input[type=text]:focus:after,textarea:focus:after{width:100%}textarea{resize:vertical;overflow:auto}input.input-big{margin:0;padding:10px;padding-right:155px;border:none;border-radius:4px;background:#fff;font-size:1.7rem;font-weight:300}input.input-big:focus{border-bottom:none;box-shadow:none;margin:0}@media (max-width:767px){input.input-big{padding-right:85px}}select{width:100%;padding:6px 12px;border:1px solid #cad3da;outline:0}select:focus{border:1px solid #2196f3;outline:0}label{color:#6d7988;font-weight:400}label.active{color:#2196f3}.sublabel{font-size:.85rem;font-weight:400;text-align:right;margin-top:5px;color:#abbdcb}.form-section{margin-top:20px;margin-bottom:20px}.form-section-title{margin-bottom:15px;font-size:1.1rem;font-weight:400}.form-entry{margin-bottom:15px;width:100%}.form-entry:focus-within label{color:#2196f3}.form-entry:last-child{margin-bottom:0}.loading-wrapper.is-loading{position:relative}.loading-wrapper.is-loading::after{content:"";position:absolute;width:20px;height:20px;top:7px;right:7px;border:2px solid #2196f3;border-bottom-color:transparent;border-radius:50%}[type=radio]:checked,[type=radio]:not(:checked){position:absolute;left:-9999px;visibility:hidden}[type=radio]:checked+label,[type=radio]:not(:checked)+label{position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:25px;line-height:25px;transition:all .28s ease;-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}[type=radio]+label{color:#252d37}[type=radio]+label:after,[type=radio]+label:before{content:"";position:absolute;left:0;top:0;margin:4px;width:16px;height:16px;z-index:0;transition:all .28s ease}[type=radio]:not(:checked)+label:before{border-radius:50%;border:2px solid #5a5a5a}[type=radio]:not(:checked)+label:after{border-radius:50%;border:2px solid #5a5a5a;z-index:-1;transform:scale(0)}[type=radio]:checked+label:before{border-radius:50%;border:2px solid transparent}[type=radio]:checked+label:after{border-radius:50%;border:2px solid #2196f3;background-color:#2196f3;z-index:0;transform:scale(1.02)}[type=radio].with-gap:checked+label:before{border-radius:50%;border:2px solid #2196f3}[type=radio].with-gap:checked+label:after{border-radius:50%;border:2px solid #2196f3;background-color:#2196f3;z-index:0;transform:scale(.5)}[type=radio]:disabled:checked+label:before,[type=radio]:disabled:not(:checked)+label:before{background-color:transparent;border-color:#9e9e9e}[type=radio]:disabled+label{color:#9e9e9e}[type=radio]:disabled:not(:checked)+label:hover:before{border-color:#9e9e9e}[type=checkbox]:checked,[type=checkbox]:not(:checked){position:absolute;opacity:0;width:0;height:0;cursor:pointer}[type=checkbox]+label{position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:20px;line-height:20px;color:#252d37;-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}[type=checkbox]+label:before{content:"";position:absolute;top:0;left:0;width:18px;height:18px;z-index:0;border:2px solid #5a5a5a;border-radius:1px;margin-top:2px;transition:all .2s}[type=checkbox]:not(:checked):disabled+label:before{border:none;background-color:#9e9e9e}[type=checkbox]:checked+label:before{top:-4px;left:-3px;width:12px;height:22px;border-top:2px solid transparent;border-left:2px solid transparent;border-right:2px solid #2196f3;border-bottom:2px solid #2196f3;transform:rotate(40deg);-webkit-backface-visibility:hidden;transform-origin:100% 100%}[type=checkbox]:disabled+label{color:#9e9e9e}[type=checkbox]:disabled+label:before{border-right:2px solid #9e9e9e;border-bottom:2px solid #9e9e9e}[type=checkbox] :indeterminate+label:before{left:-10px;top:-11px;width:10px;height:22px;border-top:none;border-left:none;border-right:2px solid #2196f3;border-bottom:none;transform:rotate(90deg);-webkit-backface-visibility:hidden;transform-origin:100% 100%}[type=checkbox] :indeterminate:disabled+label:before{border-right:2px solid #9e9e9e;background-color:transparent}[type=checkbox].filled-in+label:after{top:1px;border-radius:2px}[type=checkbox].filled-in+label:after,[type=checkbox].filled-in+label:before{content:"";left:0;position:absolute;transition:border .25s,background-color .25s,width .2s .1s,height .2s .1s,top .2s .1s,left .2s .1s;z-index:1}[type=checkbox].filled-in:not(:checked)+label:before{width:0;height:0;border:3px solid transparent;left:6px;top:10px;transform:rotateZ(37deg);transform-origin:100% 100%}[type=checkbox].filled-in:not(:checked)+label:after{height:18px;width:18px;background-color:transparent;border:2px solid #5a5a5a;z-index:0}[type=checkbox].filled-in:checked+label:before{top:1px;left:1px;width:7px;height:12px;border-top:2px solid transparent;border-left:2px solid transparent;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotateZ(37deg);transform-origin:100% 100%}[type=checkbox].filled-in:checked+label:after{width:18px;height:18px;border:2px solid #2196f3;background-color:#2196f3;z-index:0}[type=checkbox].filled-in:disabled:not(:checked)+label:before{background-color:transparent;border:2px solid transparent}[type=checkbox].filled-in:disabled:not(:checked)+label:after{border-color:transparent;background-color:#9e9e9e}[type=checkbox].filled-in:disabled:checked+label{color:#9e9e9e}[type=checkbox].filled-in:disabled:checked+label:before{background-color:transparent}[type=checkbox].filled-in:disabled:checked+label:after{background-color:#9e9e9e;border-color:#9e9e9e}.switch,.switch *{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}.switch label{cursor:pointer}.switch label input[type=checkbox]{opacity:0;width:0;height:0}.switch label input[type=checkbox]:checked+.lever{background-color:rgb(180.5865384615,204.1686813187,222.9134615385)}.switch label input[type=checkbox]:checked+.lever:after{background-color:#2196f3}.switch label .lever{content:"";display:inline-block;position:relative;width:40px;height:15px;background-color:#818181;border-radius:15px;margin-right:10px;transition:background .3s ease;vertical-align:middle;margin:0 16px}.switch label .lever:after{content:"";position:absolute;display:inline-block;width:21px;height:21px;background-color:#f1f1f1;border-radius:21px;box-shadow:0 1px 3px 1px rgba(0,0,0,.4);left:-5px;top:-3px;transition:left .3s ease,background .3s ease,box-shadow .1s ease}input[type=checkbox]:checked:not(:disabled)~.lever:active:after{box-shadow:0 1px 3px 1px rgba(0,0,0,.4),0 0 0 15px rgba(33,150,243,.1)}input[type=checkbox]:not(:disabled)~.lever:active:after{box-shadow:0 1px 3px 1px rgba(0,0,0,.4),0 0 0 15px rgba(0,0,0,.08)}.switch label input[type=checkbox]:checked+.lever:after{left:24px}.switch input[type=checkbox][disabled]+.lever{cursor:default}.switch label input[type=checkbox][disabled]+.lever:after,.switch label input[type=checkbox][disabled]:checked+.lever:after{background-color:#9e9e9e}.light-heading{font-size:1.1rem;font-weight:400;color:#8f9eaf}.actionbar{position:fixed;bottom:0;left:0;right:0;background:#fff;z-index:50}.actionbar .row{padding:15px;padding-bottom:5px}.actionbar-label{float:left;padding:7px}.actionbar-selectall{float:left;padding:7px 7px 7px 0}.actionbar-controls{float:right}.actionbar-controls button{margin-left:10px;margin-bottom:10px}.progress-bar{width:100%;height:5px;margin-bottom:15px;float:none;background-color:rgba(33,150,243,.4);box-shadow:none}.is-inverted .progress-bar{background-color:#fff}.progress-actual{background:#2196f3;width:0%;height:100%;transition:width .3s ease}.progress-counter{font-size:1.4rem}.is-inverted .progress-counter{color:#fff}table{width:100%}td,th{padding:5px 10px}td:first-child,th:first-child{padding-left:0}td:last-child,th:last-child{padding-right:0}th{font-weight:700}tr{border-bottom:1px solid #d3dce4}.tag{padding:5px;font-size:.8rem;background-color:#f8f9fa;border-radius:4px}.tag.is-light.is-success{background-color:#effaf3;color:#257942}.tag.is-light.is-danger{background-color:#feecf0;color:#cc0f35}.notifications{position:fixed;display:flex;flex-direction:column;align-items:flex-end;bottom:20px;right:20px;max-width:400px;z-index:1000}@media (max-width:450px){.notifications{left:10px;right:10px;bottom:10px}}.notifications .notification:not(:last-child){margin-bottom:15px}.notification{position:relative;padding:20px;padding-right:40px;border-radius:5px;background-color:#f8f9fa;opacity:1}.notification button.notification-close{position:absolute;top:0;right:0;padding:2.5px 5px;color:#8f9eaf}.notification button.notification-close:focus,.notification button.notification-close:hover{background-color:rgba(10,10,10,.2)}.notification.is-success{color:#1b5e20;background-color:#e8f5e9}.notification.is-warning{color:#ff6f00;background-color:#fff8e1}.notification.is-danger{color:#b71c1c;background-color:#ffebee}.bookmarklet{padding:5px 10px;background-color:#fff;border:1px solid #aaa;color:#252d37;text-decoration:none}.bookmarklet:focus,.bookmarklet:hover{box-shadow:0 -1px 0 #e0e6eb,0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.24);text-decoration:none;color:inherit}.bookmarklet:active{box-shadow:none}.bookmarklet img{vertical-align:top;height:20px}.header-main .popup a{display:block}.header-main .popup a,.header-main .popup a:hover{color:#252d37}.icon-filter,.icon-login,.icon-logout,.icon-plugin,.icon-private,.icon-private-active,.icon-rss,.icon-tools{width:30px;height:30px;background-size:20px;background-repeat:no-repeat;background-position:center center;margin-top:15px;margin-left:7px;border-radius:50%}.icon-filter:focus,.icon-filter:hover,.icon-login:focus,.icon-login:hover,.icon-logout:focus,.icon-logout:hover,.icon-plugin:focus,.icon-plugin:hover,.icon-private-active:focus,.icon-private-active:hover,.icon-private:focus,.icon-private:hover,.icon-rss:focus,.icon-rss:hover,.icon-tools:focus,.icon-tools:hover{background-color:rgba(255,255,255,.2)}.icon-unfold{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;font-size:1.2rem;border-radius:50%}.icon-unfold:focus,.icon-unfold:hover{background-color:rgba(255,255,255,.2)}.unfold .icon-unfold .mdi-chevron-down:before{content:"\f143"}.icon-delete,.icon-edit,.icon-qrcode{width:24px;height:24px;background-size:24px;background-repeat:no-repeat;background-position:center center;display:inline-block}.icon-header{position:relative;width:30px;height:30px;line-height:30px;text-align:center;margin-top:15px;margin-left:7px;border-radius:50%;font-size:18px;color:#fff}.icon-header:focus,.icon-header:hover{background-color:rgba(255,255,255,.2);color:#fff}.icon-header.filter-on{color:#f44336}.header-button-filter.has-filter-readlater::before,.header-button-filter.has-filters::before{content:"";position:absolute;width:7px;height:7px;top:4px;right:4px;border-radius:50%;background:#f44336;z-index:10}a[href="/plugin/readitlater/toggle-filter"]{display:none}.header-main{width:100%;min-height:56px;background-color:#2196f3;box-shadow:0 0 4px rgba(0,0,0,.14),0 4px 8px rgba(0,0,0,.28);margin-bottom:15px;color:#fff;max-height:56px;z-index:10}.header-main a{color:#fff;text-decoration:none}.header-main a.header-brand{display:inline-block;padding:0 15px;font-size:1.4rem;font-weight:300;color:#fff;text-decoration:none;line-height:56px;height:56px;max-width:100%;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.header-main a.header-brand:hover{background-color:rgba(255,255,255,.15)}.header-main .header-nav{height:56px}.header-main .header-buttons{float:right;height:56px}.header-main .header-buttons button{display:block}.header-main .header-buttons>*{display:block;float:right}.header-main .header-middle a:hover{background-color:rgba(255,255,255,.15)}.header-main .toolbar-link{text-align:center;margin:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:10px;margin-bottom:10px;display:inline-block}.header-main.unfold{overflow:visible;max-height:none}.dark-toolbar .header-main{background-color:#000}@media (max-width:1199px){.header-main{overflow:hidden}}.toolbar-button-container{position:relative}.subheader{width:100%;background-color:#1976d2;margin-top:-15px;margin-bottom:15px;color:#fff;padding:10px;z-index:5}.subheader .button,.subheader .button-inverse{display:block;float:left;color:#fff;margin-right:5px}.subheader.is-dark{background-color:#414d5a}.paging .row a{display:inline-block;height:45px;width:45px;vertical-align:middle;text-align:center;border-radius:50%;color:#8f9eaf;font-size:2rem}.paging .row a:focus,.paging .row a:hover{background-color:#d3dce4}.paging .row a:active{background-color:#cad3da}.paging .row .paging-current{display:inline-block;line-height:3rem;color:#6d7988;font-size:1rem}#footer{text-align:center;margin-top:50px;margin-bottom:15px;color:#6d7988;font-size:.85rem;font-weight:400}.from-bookmarklet #footer{margin-top:10px}.fullscreen{position:fixed;left:0;top:0;right:0;bottom:0;background-color:rgba(0,0,0,.75);z-index:200}.fullscreen.visible{display:block}.content-fullscreen{position:absolute;top:30%;left:0;right:0}.button-fullscreen{display:block;width:100%}#qrcode img{margin:auto;border:50px solid #fff}.overlay{position:fixed;left:0;top:0;right:0;bottom:0;background-color:rgba(0,0,0,.75);z-index:200}.page-login{margin-top:50px;margin-bottom:50px}.page-add{margin-top:50px;margin-bottom:50px}.page-edit{margin-top:50px;margin-bottom:50px}.from-bookmarklet .page-edit{margin-top:10px;margin-bottom:10px}.page-tools{margin-bottom:50px}.button-header{position:absolute;width:34px;height:34px;top:7px;right:7px;background:center center no-repeat}.button-header:focus,.button-header:hover{background-color:rgba(153,153,153,.2)}.button-header:active{background-color:rgba(100,100,100,.2)}.button-expand{background-image:url(img/arrow-expand.png)}.is-expanded .button-expand{background-image:url(img/arrow-compress.png)}.editlinkform{transition:margin .25s ease-in-out}.page-edit-link-batch .editlinkform{margin-top:0;margin-bottom:0}.is-batch-done .card{max-height:58px!important;overflow:hidden}.is-batch-done .card-overlay{background-color:#fff}.picwall-pictureframe{float:left;position:relative;overflow:hidden;width:120px;height:90px;text-align:center}.picwall-link{display:none;position:absolute;top:0;left:0;background-color:#6d7988;background-color:rgba(109,121,136,.7);color:#fff;font-size:.85rem;font-weight:400}.picwall-pictureframe:hover .picwall-link{display:block;text-decoration:none}.picwall-link:hover{color:#fff}.plugin-actions{font-size:1.4rem;font-weight:400;padding:10px;line-height:20px}#overlay-content-qrcode{z-index:600;position:fixed;top:20%;left:0;width:100%;text-align:center}@media (min-width:768px){.thumb{float:left}.thumb:not(.hidden)+.link-description{padding-left:150px}}.plugin-param label{margin-bottom:0;line-height:1.2}.plugin-param .sublabel{margin-top:0;text-align:left;line-height:1.5}.plugin-param:focus-within .plugin-param-key label{color:#2196f3}.plugin-param-key{line-height:33px}.thumbnail-placeholder{margin:auto;margin-bottom:10px;background-color:#ddd}.thumbnail-link-title{margin-bottom:15px;text-align:center;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.progress-counter{text-align:right}.search-overlay-actions{position:absolute;right:20px;top:20%}.search-overlay-actions button{padding:8px;border-radius:50px;font-size:14px;text-transform:lowercase;box-shadow:none}.search-overlay-actions button i{vertical-align:middle}@media (max-width:767px){.search-overlay-actions button{width:36px;height:36px;text-align:center;border-radius:50%}}#button-filter i{margin-right:3px}.markdown h1{font-size:2.2em}.markdown h2{font-size:1.8em}.markdown h3{font-size:1.5em}.markdown h4{font-size:1.2em}.markdown h5{font-size:1em}.markdown h6{font-size:.9em}.markdown h1,.markdown h2,.markdown h3,.markdown h4,.markdown h5,.markdown h6{font-weight:400;font-style:normal;line-height:1em;margin:.75em 0 .5em 0}.markdown pre{margin:1em 0;padding:20px;max-width:100%;border:1px solid #e0e6eb;color:#414d5a;line-height:1.2em;background:#f8f9fa;border-radius:5px;box-shadow:none}.markdown code{padding:0;color:#414d5a;font-size:1em;line-height:1em;font-weight:400!important;background:#f8f9fa;border-radius:3px}.markdown :not(pre) code{padding:0 5px 2px;box-shadow:none}.markdown ol,.markdown ul{padding-left:3em;margin-bottom:15px}.markdown ol li,.markdown ul li{list-style:unset}.markdown blockquote{border-left:5px solid #abbdcb;padding:15px 30px;margin-bottom:15px;background-color:#f8f9fa}.markdown img{max-width:100%}.daily-grid[data-columns]:before{content:"4 .column.size-1of4"}@media screen and (max-width:1200px){.daily-grid[data-columns]:before{content:"2 .column.size-1of2"}}@media screen and (max-width:768px){.daily-grid[data-columns]:before{content:"1 .column.size-1of1"}}.column{float:left;padding:0 15px}.size-1of4{width:25%}.size-1of2{width:50%}.size-1of1{width:100%}.daily-header{text-align:center}.daily-header h1{font-family:"Old Newspaper Types",serif;font-size:4rem}.daily-header-subtitle{color:#8f9eaf}.daily-title{margin:20px 0 40px 0;text-align:center;font-family:"Old Newspaper Types",serif;font-size:1.6rem}.daily-item{position:relative}.daily-item:hover .daily-item-plus{display:block}.daily-item a{color:auto}.daily-item a:hover{text-decoration:none}.daily-card{display:block;margin-bottom:20px;color:inherit;border-radius:2px;outline:3px solid transparent;transition:all .25s ease}.daily-item-header{display:block;background-color:#f8f9fa;padding:10px;color:#6d7988;border-radius:2px 2px 0 0;transition:background-color .25s ease}.daily-item-header:focus,.daily-item-header:hover{color:#6d7988;text-decoration:none;background-color:#e0e6eb}.daily-item-image{width:100%;height:100px;background-size:cover;background-position:center}.daily-item-body{background-color:#fff;padding:15px}.daily-item-footer{background-color:#f8f9fa;padding:10px;font-size:80%;color:#6d7988;border-top:solid 1px rgba(109,121,136,.05);border-radius:0 0 2px 2px}.daily-item-footer-subtitle{display:block;float:left;color:#ccc}.daily-item-footer-subtitle:hover{color:#6d7988}.daily-item-footer-subtitle:hover:after{content:"\f337";animation:slide-from-right .25s ease}.daily-item-tags{text-align:right}.link-outer{position:relative;overflow:hidden}.links-list.is-selectable .link-outer.is-selected{box-shadow:0 0 4px 4px #ff9800}.link-overlay{display:none;position:absolute;top:0;bottom:0;left:0;right:0;cursor:pointer;z-index:10}.links-list.is-selectable .link-overlay:hover{background-color:rgba(211,220,228,.5)}.links-list.is-selectable .link-overlay{display:block;background-color:rgba(255,255,255,0)}.links-list.is-selectable .is-selected .link-overlay{display:block;background-color:rgba(244,67,54,.5)}.link-inner{border-radius:2px 0 0 2px}.link-header{border-bottom:none;padding-bottom:5px;text-transform:none}.link-content{overflow:hidden}.link-footer{padding:10px 15px 15px 15px}a.link-title{display:block;margin-bottom:5px;text-overflow:ellipsis;color:#252d37;text-decoration:none;font-weight:700;line-height:1.2}a.link-title:focus,a.link-title:hover{color:#414d5a}a.link-title:active{color:#6d7988}.private:before{content:"";position:absolute;display:block;width:0;height:0;border:16px solid transparent;border-right:16px solid #b71c1c;top:-16px;left:-16px;transform:rotate(45deg)}.private a.link-title{color:#b71c1c}a.link-url{display:block;margin-bottom:5px;color:#8f9eaf;text-decoration:none;line-height:1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;font-weight:400}a.link-url:focus,a.link-url:hover{color:#6d7988}a.link-url:active{color:#414d5a}.link-date{font-size:.7rem;font-weight:400;color:#8f9eaf;float:right}.link-date .link-archive,.link-date a{color:#8f9eaf;text-decoration:none}.link-date .link-archive:focus,.link-date .link-archive:hover,.link-date a:focus,.link-date a:hover{color:#252d37}.link-date .link-archive:active,.link-date a:active{color:#414d5a}.link-description{padding:5px 15px}.link-description p:first-child{margin-top:0}.link-description p:last-child{margin-bottom:0}.thumb img{margin:15px}.link-tag-list{overflow:hidden;overflow-x:auto;text-overflow:ellipsis}.link-tag{display:inline-block}.link-tag a{display:block;color:#414d5a;text-decoration:none;padding:3px 10px;background-color:#e0e6eb;border-radius:20px;font-size:.7rem}.link-tag a:focus,.link-tag a:hover{background-color:#d3dce4}.link-tag a:active{background-color:#cad3da}.link-tag-filter{display:inline-block;padding:3px 3px 3px 10px;border-radius:20px;background-color:#e0e6eb;color:#414d5a;text-decoration:none;border:1px solid #d3dce4}.link-tag-filter:focus,.link-tag-filter:hover{color:#414d5a;background-color:#d3dce4;text-decoration:none}.link-tag-filter:active{color:#414d5a;background-color:#cad3da;text-decoration:none}.link-tag-filter .remove{font-style:normal;background-color:#fff;border-radius:50%;padding:0 5px;padding-bottom:1px}.link-actions{display:flex;align-items:center;justify-content:flex-end;height:24px;text-align:right}.link-actions a,.link-actions span{color:#6d7988;font-size:18px}.link-actions a.is-pinned{color:#2196f3}.link-actions a:focus,.link-actions a:hover{color:#414d5a}.link-actions a:active{color:#252d37}.is-selectable .link-actions{display:none}.link-actions>*{display:block;width:24px;right:24px;margin-left:5px}.link-actions form>*{display:block}.link-plugin:not(:last-child){margin-right:5px}.link-plugin:nth-child(2):before{content:"-";margin:0 5px}.link-counter{margin-top:20px;margin-bottom:20px;color:#6d7988}.favorite-tag{display:block;float:left;padding:10px;margin-right:10px;background-color:rgba(0,0,0,.05);color:#999}.favorite-tag:focus,.favorite-tag:hover{background-color:rgba(0,0,0,.1);color:inherit;text-decoration:none}.favorite-tag:active{background-color:rgba(0,0,0,.2)}.search-highlight{background-color:#ff0} \ No newline at end of file diff --git a/shaarli/material/dist/bundle.js b/shaarli/material/dist/bundle.js new file mode 100644 index 0000000..cf5273e --- /dev/null +++ b/shaarli/material/dist/bundle.js @@ -0,0 +1,26 @@ +!function(){"use strict";function t(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var e,n={exports:{}}; +/*! + * jQuery JavaScript Library v3.7.1 + * https://jquery.com/ + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2023-08-28T13:37Z + */var o,r,i,a=(e||(e=1,o="undefined"!=typeof window?window:n.exports,r=function(t,e){var n=[],o=Object.getPrototypeOf,r=n.slice,i=n.flat?function(t){return n.flat.call(t)}:function(t){return n.concat.apply([],t)},a=n.push,s=n.indexOf,l={},c=l.toString,u=l.hasOwnProperty,d=u.toString,f=d.call(Object),h={},p=function(t){return"function"==typeof t&&"number"!=typeof t.nodeType&&"function"!=typeof t.item},g=function(t){return null!=t&&t===t.window},m=t.document,v={type:!0,src:!0,nonce:!0,noModule:!0};function y(t,e,n){var o,r,i=(n=n||m).createElement("script");if(i.text=t,e)for(o in v)(r=e[o]||e.getAttribute&&e.getAttribute(o))&&i.setAttribute(o,r);n.head.appendChild(i).parentNode.removeChild(i)}function b(t){return null==t?t+"":"object"==typeof t||"function"==typeof t?l[c.call(t)]||"object":typeof t}var w="3.7.1",x=/HTML$/i,E=function(t,e){return new E.fn.init(t,e)};function C(t){var e=!!t&&"length"in t&&t.length,n=b(t);return!p(t)&&!g(t)&&("array"===n||0===e||"number"==typeof e&&e>0&&e-1 in t)}function T(t,e){return t.nodeName&&t.nodeName.toLowerCase()===e.toLowerCase()}E.fn=E.prototype={jquery:w,constructor:E,length:0,toArray:function(){return r.call(this)},get:function(t){return null==t?r.call(this):t<0?this[t+this.length]:this[t]},pushStack:function(t){var e=E.merge(this.constructor(),t);return e.prevObject=this,e},each:function(t){return E.each(this,t)},map:function(t){return this.pushStack(E.map(this,(function(e,n){return t.call(e,n,e)})))},slice:function(){return this.pushStack(r.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(E.grep(this,(function(t,e){return(e+1)%2})))},odd:function(){return this.pushStack(E.grep(this,(function(t,e){return e%2})))},eq:function(t){var e=this.length,n=+t+(t<0?e:0);return this.pushStack(n>=0&&n+~]|"+D+")"+D+"*"),q=new RegExp(D+"|>"),z=new RegExp(j),W=new RegExp("^"+P+"$"),U={ID:new RegExp("^#("+P+")"),CLASS:new RegExp("^\\.("+P+")"),TAG:new RegExp("^("+P+"|[*])"),ATTR:new RegExp("^"+R),PSEUDO:new RegExp("^"+j),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+D+"*(even|odd|(([+-]|)(\\d*)n|)"+D+"*(?:([+-]|)"+D+"*(\\d+)|))"+D+"*\\)|)","i"),bool:new RegExp("^(?:"+O+")$","i"),needsContext:new RegExp("^"+D+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+D+"*((?:-\\d)?\\d*)"+D+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,$=/^h\d$/i,X=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,V=/[+~]/,K=new RegExp("\\\\[\\da-fA-F]{1,6}"+D+"?|\\\\([^\\r\\n\\f])","g"),Q=function(t,e){var n="0x"+t.slice(1)-65536;return e||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},J=function(){lt()},G=ft((function(t){return!0===t.disabled&&T(t,"fieldset")}),{dir:"parentNode",next:"legend"});try{m.apply(n=r.call(_.childNodes),_.childNodes),n[_.childNodes.length].nodeType}catch(t){m={apply:function(t,e){I.apply(t,r.call(e))},call:function(t){I.apply(t,r.call(arguments,1))}}}function Z(t,e,n,o){var r,i,a,s,l,u,d,g=e&&e.ownerDocument,y=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==y&&9!==y&&11!==y)return n;if(!o&&(lt(e),e=e||c,f)){if(11!==y&&(l=X.exec(t)))if(r=l[1]){if(9===y){if(!(a=e.getElementById(r)))return n;if(a.id===r)return m.call(n,a),n}else if(g&&(a=g.getElementById(r))&&Z.contains(e,a)&&a.id===r)return m.call(n,a),n}else{if(l[2])return m.apply(n,e.getElementsByTagName(t)),n;if((r=l[3])&&e.getElementsByClassName)return m.apply(n,e.getElementsByClassName(r)),n}if(!(L[t+" "]||p&&p.test(t))){if(d=t,g=e,1===y&&(q.test(t)||F.test(t))){for((g=V.test(t)&&st(e.parentNode)||e)==e&&h.scope||((s=e.getAttribute("id"))?s=E.escapeSelector(s):e.setAttribute("id",s=v)),i=(u=ut(t)).length;i--;)u[i]=(s?"#"+s:":scope")+" "+dt(u[i]);d=u.join(",")}try{return m.apply(n,g.querySelectorAll(d)),n}catch(e){L(t,!0)}finally{s===v&&e.removeAttribute("id")}}}return yt(t.replace(N,"$1"),e,n,o)}function tt(){var t=[];return function e(n,r){return t.push(n+" ")>o.cacheLength&&delete e[t.shift()],e[n+" "]=r}}function et(t){return t[v]=!0,t}function nt(t){var e=c.createElement("fieldset");try{return!!t(e)}catch(t){return!1}finally{e.parentNode&&e.parentNode.removeChild(e),e=null}}function ot(t){return function(e){return T(e,"input")&&e.type===t}}function rt(t){return function(e){return(T(e,"input")||T(e,"button"))&&e.type===t}}function it(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&G(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function at(t){return et((function(e){return e=+e,et((function(n,o){for(var r,i=t([],n.length,e),a=i.length;a--;)n[r=i[a]]&&(n[r]=!(o[r]=n[r]))}))}))}function st(t){return t&&void 0!==t.getElementsByTagName&&t}function lt(t){var e,n=t?t.ownerDocument||t:_;return n!=c&&9===n.nodeType&&n.documentElement?(d=(c=n).documentElement,f=!E.isXMLDoc(c),g=d.matches||d.webkitMatchesSelector||d.msMatchesSelector,d.msMatchesSelector&&_!=c&&(e=c.defaultView)&&e.top!==e&&e.addEventListener("unload",J),h.getById=nt((function(t){return d.appendChild(t).id=E.expando,!c.getElementsByName||!c.getElementsByName(E.expando).length})),h.disconnectedMatch=nt((function(t){return g.call(t,"*")})),h.scope=nt((function(){return c.querySelectorAll(":scope")})),h.cssHas=nt((function(){try{return c.querySelector(":has(*,:jqfake)"),!1}catch(t){return!0}})),h.getById?(o.filter.ID=function(t){var e=t.replace(K,Q);return function(t){return t.getAttribute("id")===e}},o.find.ID=function(t,e){if(void 0!==e.getElementById&&f){var n=e.getElementById(t);return n?[n]:[]}}):(o.filter.ID=function(t){var e=t.replace(K,Q);return function(t){var n=void 0!==t.getAttributeNode&&t.getAttributeNode("id");return n&&n.value===e}},o.find.ID=function(t,e){if(void 0!==e.getElementById&&f){var n,o,r,i=e.getElementById(t);if(i){if((n=i.getAttributeNode("id"))&&n.value===t)return[i];for(r=e.getElementsByName(t),o=0;i=r[o++];)if((n=i.getAttributeNode("id"))&&n.value===t)return[i]}return[]}}),o.find.TAG=function(t,e){return void 0!==e.getElementsByTagName?e.getElementsByTagName(t):e.querySelectorAll(t)},o.find.CLASS=function(t,e){if(void 0!==e.getElementsByClassName&&f)return e.getElementsByClassName(t)},p=[],nt((function(t){var e;d.appendChild(t).innerHTML="",t.querySelectorAll("[selected]").length||p.push("\\["+D+"*(?:value|"+O+")"),t.querySelectorAll("[id~="+v+"-]").length||p.push("~="),t.querySelectorAll("a#"+v+"+*").length||p.push(".#.+[+~]"),t.querySelectorAll(":checked").length||p.push(":checked"),(e=c.createElement("input")).setAttribute("type","hidden"),t.appendChild(e).setAttribute("name","D"),d.appendChild(t).disabled=!0,2!==t.querySelectorAll(":disabled").length&&p.push(":enabled",":disabled"),(e=c.createElement("input")).setAttribute("name",""),t.appendChild(e),t.querySelectorAll("[name='']").length||p.push("\\["+D+"*name"+D+"*="+D+"*(?:''|\"\")")})),h.cssHas||p.push(":has"),p=p.length&&new RegExp(p.join("|")),M=function(t,e){if(t===e)return l=!0,0;var n=!t.compareDocumentPosition-!e.compareDocumentPosition;return n||(1&(n=(t.ownerDocument||t)==(e.ownerDocument||e)?t.compareDocumentPosition(e):1)||!h.sortDetached&&e.compareDocumentPosition(t)===n?t===c||t.ownerDocument==_&&Z.contains(_,t)?-1:e===c||e.ownerDocument==_&&Z.contains(_,e)?1:a?s.call(a,t)-s.call(a,e):0:4&n?-1:1)},c):c}for(e in Z.matches=function(t,e){return Z(t,null,null,e)},Z.matchesSelector=function(t,e){if(lt(t),f&&!L[e+" "]&&(!p||!p.test(e)))try{var n=g.call(t,e);if(n||h.disconnectedMatch||t.document&&11!==t.document.nodeType)return n}catch(t){L(e,!0)}return Z(e,c,null,[t]).length>0},Z.contains=function(t,e){return(t.ownerDocument||t)!=c&<(t),E.contains(t,e)},Z.attr=function(t,e){(t.ownerDocument||t)!=c&<(t);var n=o.attrHandle[e.toLowerCase()],r=n&&u.call(o.attrHandle,e.toLowerCase())?n(t,e,!f):void 0;return void 0!==r?r:t.getAttribute(e)},Z.error=function(t){throw new Error("Syntax error, unrecognized expression: "+t)},E.uniqueSort=function(t){var e,n=[],o=0,i=0;if(l=!h.sortStable,a=!h.sortStable&&r.call(t,0),k.call(t,M),l){for(;e=t[i++];)e===t[i]&&(o=n.push(i));for(;o--;)S.call(t,n[o],1)}return a=null,t},E.fn.uniqueSort=function(){return this.pushStack(E.uniqueSort(r.apply(this)))},o=E.expr={cacheLength:50,createPseudo:et,match:U,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(t){return t[1]=t[1].replace(K,Q),t[3]=(t[3]||t[4]||t[5]||"").replace(K,Q),"~="===t[2]&&(t[3]=" "+t[3]+" "),t.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||Z.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&Z.error(t[0]),t},PSEUDO:function(t){var e,n=!t[6]&&t[2];return U.CHILD.test(t[0])?null:(t[3]?t[2]=t[4]||t[5]||"":n&&z.test(n)&&(e=ut(n,!0))&&(e=n.indexOf(")",n.length-e)-n.length)&&(t[0]=t[0].slice(0,e),t[2]=n.slice(0,e)),t.slice(0,3))}},filter:{TAG:function(t){var e=t.replace(K,Q).toLowerCase();return"*"===t?function(){return!0}:function(t){return T(t,e)}},CLASS:function(t){var e=w[t+" "];return e||(e=new RegExp("(^|"+D+")"+t+"("+D+"|$)"))&&w(t,(function(t){return e.test("string"==typeof t.className&&t.className||void 0!==t.getAttribute&&t.getAttribute("class")||"")}))},ATTR:function(t,e,n){return function(o){var r=Z.attr(o,t);return null==r?"!="===e:!e||(r+="","="===e?r===n:"!="===e?r!==n:"^="===e?n&&0===r.indexOf(n):"*="===e?n&&r.indexOf(n)>-1:"$="===e?n&&r.slice(-n.length)===n:"~="===e?(" "+r.replace(B," ")+" ").indexOf(n)>-1:"|="===e&&(r===n||r.slice(0,n.length+1)===n+"-"))}},CHILD:function(t,e,n,o,r){var i="nth"!==t.slice(0,3),a="last"!==t.slice(-4),s="of-type"===e;return 1===o&&0===r?function(t){return!!t.parentNode}:function(e,n,l){var c,u,d,f,h,p=i!==a?"nextSibling":"previousSibling",g=e.parentNode,m=s&&e.nodeName.toLowerCase(),b=!l&&!s,w=!1;if(g){if(i){for(;p;){for(d=e;d=d[p];)if(s?T(d,m):1===d.nodeType)return!1;h=p="only"===t&&!h&&"nextSibling"}return!0}if(h=[a?g.firstChild:g.lastChild],a&&b){for(w=(f=(c=(u=g[v]||(g[v]={}))[t]||[])[0]===y&&c[1])&&c[2],d=f&&g.childNodes[f];d=++f&&d&&d[p]||(w=f=0)||h.pop();)if(1===d.nodeType&&++w&&d===e){u[t]=[y,f,w];break}}else if(b&&(w=f=(c=(u=e[v]||(e[v]={}))[t]||[])[0]===y&&c[1]),!1===w)for(;(d=++f&&d&&d[p]||(w=f=0)||h.pop())&&(!(s?T(d,m):1===d.nodeType)||!++w||(b&&((u=d[v]||(d[v]={}))[t]=[y,w]),d!==e)););return(w-=r)===o||w%o==0&&w/o>=0}}},PSEUDO:function(t,e){var n,r=o.pseudos[t]||o.setFilters[t.toLowerCase()]||Z.error("unsupported pseudo: "+t);return r[v]?r(e):r.length>1?(n=[t,t,"",e],o.setFilters.hasOwnProperty(t.toLowerCase())?et((function(t,n){for(var o,i=r(t,e),a=i.length;a--;)t[o=s.call(t,i[a])]=!(n[o]=i[a])})):function(t){return r(t,0,n)}):r}},pseudos:{not:et((function(t){var e=[],n=[],o=vt(t.replace(N,"$1"));return o[v]?et((function(t,e,n,r){for(var i,a=o(t,null,r,[]),s=t.length;s--;)(i=a[s])&&(t[s]=!(e[s]=i))})):function(t,r,i){return e[0]=t,o(e,null,i,n),e[0]=null,!n.pop()}})),has:et((function(t){return function(e){return Z(t,e).length>0}})),contains:et((function(t){return t=t.replace(K,Q),function(e){return(e.textContent||E.text(e)).indexOf(t)>-1}})),lang:et((function(t){return W.test(t||"")||Z.error("unsupported lang: "+t),t=t.replace(K,Q).toLowerCase(),function(e){var n;do{if(n=f?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(n=n.toLowerCase())===t||0===n.indexOf(t+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}})),target:function(e){var n=t.location&&t.location.hash;return n&&n.slice(1)===e.id},root:function(t){return t===d},focus:function(t){return t===function(){try{return c.activeElement}catch(t){}}()&&c.hasFocus()&&!!(t.type||t.href||~t.tabIndex)},enabled:it(!1),disabled:it(!0),checked:function(t){return T(t,"input")&&!!t.checked||T(t,"option")&&!!t.selected},selected:function(t){return t.parentNode&&t.parentNode.selectedIndex,!0===t.selected},empty:function(t){for(t=t.firstChild;t;t=t.nextSibling)if(t.nodeType<6)return!1;return!0},parent:function(t){return!o.pseudos.empty(t)},header:function(t){return $.test(t.nodeName)},input:function(t){return Y.test(t.nodeName)},button:function(t){return T(t,"input")&&"button"===t.type||T(t,"button")},text:function(t){var e;return T(t,"input")&&"text"===t.type&&(null==(e=t.getAttribute("type"))||"text"===e.toLowerCase())},first:at((function(){return[0]})),last:at((function(t,e){return[e-1]})),eq:at((function(t,e,n){return[n<0?n+e:n]})),even:at((function(t,e){for(var n=0;ne?e:n;--o>=0;)t.push(o);return t})),gt:at((function(t,e,n){for(var o=n<0?n+e:n;++o1?function(e,n,o){for(var r=t.length;r--;)if(!t[r](e,n,o))return!1;return!0}:t[0]}function pt(t,e,n,o,r){for(var i,a=[],s=0,l=t.length,c=null!=e;s-1&&(i[u]=!(a[u]=f))}}else h=pt(h===a?h.splice(v,h.length):h),r?r(null,a,h,c):m.apply(a,h)}))}function mt(t){for(var e,n,r,a=t.length,l=o.relative[t[0].type],c=l||o.relative[" "],u=l?1:0,d=ft((function(t){return t===e}),c,!0),f=ft((function(t){return s.call(e,t)>-1}),c,!0),h=[function(t,n,o){var r=!l&&(o||n!=i)||((e=n).nodeType?d(t,n,o):f(t,n,o));return e=null,r}];u1&&ht(h),u>1&&dt(t.slice(0,u-1).concat({value:" "===t[u-2].type?"*":""})).replace(N,"$1"),n,u0,r=t.length>0,a=function(a,s,l,u,d){var h,p,g,v=0,b="0",w=a&&[],x=[],C=i,T=a||r&&o.find.TAG("*",d),k=y+=null==C?1:Math.random()||.1,S=T.length;for(d&&(i=s==c||s||d);b!==S&&null!=(h=T[b]);b++){if(r&&h){for(p=0,s||h.ownerDocument==c||(lt(h),l=!f);g=t[p++];)if(g(h,s||c,l)){m.call(u,h);break}d&&(y=k)}n&&((h=!g&&h)&&v--,a&&w.push(h))}if(v+=b,n&&b!==v){for(p=0;g=e[p++];)g(w,x,s,l);if(a){if(v>0)for(;b--;)w[b]||x[b]||(x[b]=A.call(u));x=pt(x)}m.apply(u,x),d&&!a&&x.length>0&&v+e.length>1&&E.uniqueSort(u)}return d&&(y=k,i=C),w};return n?et(a):a}(a,r)),s.selector=t}return s}function yt(t,e,n,r){var i,a,s,l,c,u="function"==typeof t&&t,d=!r&&ut(t=u.selector||t);if(n=n||[],1===d.length){if((a=d[0]=d[0].slice(0)).length>2&&"ID"===(s=a[0]).type&&9===e.nodeType&&f&&o.relative[a[1].type]){if(!(e=(o.find.ID(s.matches[0].replace(K,Q),e)||[])[0]))return n;u&&(e=e.parentNode),t=t.slice(a.shift().value.length)}for(i=U.needsContext.test(t)?0:a.length;i--&&(s=a[i],!o.relative[l=s.type]);)if((c=o.find[l])&&(r=c(s.matches[0].replace(K,Q),V.test(a[0].type)&&st(e.parentNode)||e))){if(a.splice(i,1),!(t=r.length&&dt(a)))return m.apply(n,r),n;break}}return(u||vt(t,d))(r,e,!f,n,!e||V.test(t)&&st(e.parentNode)||e),n}ct.prototype=o.filters=o.pseudos,o.setFilters=new ct,h.sortStable=v.split("").sort(M).join("")===v,lt(),h.sortDetached=nt((function(t){return 1&t.compareDocumentPosition(c.createElement("fieldset"))})),E.find=Z,E.expr[":"]=E.expr.pseudos,E.unique=E.uniqueSort,Z.compile=vt,Z.select=yt,Z.setDocument=lt,Z.tokenize=ut,Z.escape=E.escapeSelector,Z.getText=E.text,Z.isXML=E.isXMLDoc,Z.selectors=E.expr,Z.support=E.support,Z.uniqueSort=E.uniqueSort}();var O=function(t,e,n){for(var o=[],r=void 0!==n;(t=t[e])&&9!==t.nodeType;)if(1===t.nodeType){if(r&&E(t).is(n))break;o.push(t)}return o},P=function(t,e){for(var n=[];t;t=t.nextSibling)1===t.nodeType&&t!==e&&n.push(t);return n},R=E.expr.match.needsContext,j=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function B(t,e,n){return p(e)?E.grep(t,(function(t,o){return!!e.call(t,o,t)!==n})):e.nodeType?E.grep(t,(function(t){return t===e!==n})):"string"!=typeof e?E.grep(t,(function(t){return s.call(e,t)>-1!==n})):E.filter(e,t,n)}E.filter=function(t,e,n){var o=e[0];return n&&(t=":not("+t+")"),1===e.length&&1===o.nodeType?E.find.matchesSelector(o,t)?[o]:[]:E.find.matches(t,E.grep(e,(function(t){return 1===t.nodeType})))},E.fn.extend({find:function(t){var e,n,o=this.length,r=this;if("string"!=typeof t)return this.pushStack(E(t).filter((function(){for(e=0;e1?E.uniqueSort(n):n},filter:function(t){return this.pushStack(B(this,t||[],!1))},not:function(t){return this.pushStack(B(this,t||[],!0))},is:function(t){return!!B(this,"string"==typeof t&&R.test(t)?E(t):t||[],!1).length}});var H,F=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(E.fn.init=function(t,e,n){var o,r;if(!t)return this;if(n=n||H,"string"==typeof t){if(!(o="<"===t[0]&&">"===t[t.length-1]&&t.length>=3?[null,t,null]:F.exec(t))||!o[1]&&e)return!e||e.jquery?(e||n).find(t):this.constructor(e).find(t);if(o[1]){if(e=e instanceof E?e[0]:e,E.merge(this,E.parseHTML(o[1],e&&e.nodeType?e.ownerDocument||e:m,!0)),j.test(o[1])&&E.isPlainObject(e))for(o in e)p(this[o])?this[o](e[o]):this.attr(o,e[o]);return this}return(r=m.getElementById(o[2]))&&(this[0]=r,this.length=1),this}return t.nodeType?(this[0]=t,this.length=1,this):p(t)?void 0!==n.ready?n.ready(t):t(E):E.makeArray(t,this)}).prototype=E.fn,H=E(m);var q=/^(?:parents|prev(?:Until|All))/,z={children:!0,contents:!0,next:!0,prev:!0};function W(t,e){for(;(t=t[e])&&1!==t.nodeType;);return t}E.fn.extend({has:function(t){var e=E(t,this),n=e.length;return this.filter((function(){for(var t=0;t-1:1===n.nodeType&&E.find.matchesSelector(n,t))){i.push(n);break}return this.pushStack(i.length>1?E.uniqueSort(i):i)},index:function(t){return t?"string"==typeof t?s.call(E(t),this[0]):s.call(this,t.jquery?t[0]:t):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(t,e){return this.pushStack(E.uniqueSort(E.merge(this.get(),E(t,e))))},addBack:function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}}),E.each({parent:function(t){var e=t.parentNode;return e&&11!==e.nodeType?e:null},parents:function(t){return O(t,"parentNode")},parentsUntil:function(t,e,n){return O(t,"parentNode",n)},next:function(t){return W(t,"nextSibling")},prev:function(t){return W(t,"previousSibling")},nextAll:function(t){return O(t,"nextSibling")},prevAll:function(t){return O(t,"previousSibling")},nextUntil:function(t,e,n){return O(t,"nextSibling",n)},prevUntil:function(t,e,n){return O(t,"previousSibling",n)},siblings:function(t){return P((t.parentNode||{}).firstChild,t)},children:function(t){return P(t.firstChild)},contents:function(t){return null!=t.contentDocument&&o(t.contentDocument)?t.contentDocument:(T(t,"template")&&(t=t.content||t),E.merge([],t.childNodes))}},(function(t,e){E.fn[t]=function(n,o){var r=E.map(this,e,n);return"Until"!==t.slice(-5)&&(o=n),o&&"string"==typeof o&&(r=E.filter(o,r)),this.length>1&&(z[t]||E.uniqueSort(r),q.test(t)&&r.reverse()),this.pushStack(r)}}));var U=/[^\x20\t\r\n\f]+/g;function Y(t){return t}function $(t){throw t}function X(t,e,n,o){var r;try{t&&p(r=t.promise)?r.call(t).done(e).fail(n):t&&p(r=t.then)?r.call(t,e,n):e.apply(void 0,[t].slice(o))}catch(t){n.apply(void 0,[t])}}E.Callbacks=function(t){t="string"==typeof t?function(t){var e={};return E.each(t.match(U)||[],(function(t,n){e[n]=!0})),e}(t):E.extend({},t);var e,n,o,r,i=[],a=[],s=-1,l=function(){for(r=r||t.once,o=e=!0;a.length;s=-1)for(n=a.shift();++s-1;)i.splice(n,1),n<=s&&s--})),this},has:function(t){return t?E.inArray(t,i)>-1:i.length>0},empty:function(){return i&&(i=[]),this},disable:function(){return r=a=[],i=n="",this},disabled:function(){return!i},lock:function(){return r=a=[],n||e||(i=n=""),this},locked:function(){return!!r},fireWith:function(t,n){return r||(n=[t,(n=n||[]).slice?n.slice():n],a.push(n),e||l()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!o}};return c},E.extend({Deferred:function(e){var n=[["notify","progress",E.Callbacks("memory"),E.Callbacks("memory"),2],["resolve","done",E.Callbacks("once memory"),E.Callbacks("once memory"),0,"resolved"],["reject","fail",E.Callbacks("once memory"),E.Callbacks("once memory"),1,"rejected"]],o="pending",r={state:function(){return o},always:function(){return i.done(arguments).fail(arguments),this},catch:function(t){return r.then(null,t)},pipe:function(){var t=arguments;return E.Deferred((function(e){E.each(n,(function(n,o){var r=p(t[o[4]])&&t[o[4]];i[o[1]]((function(){var t=r&&r.apply(this,arguments);t&&p(t.promise)?t.promise().progress(e.notify).done(e.resolve).fail(e.reject):e[o[0]+"With"](this,r?[t]:arguments)}))})),t=null})).promise()},then:function(e,o,r){var i=0;function a(e,n,o,r){return function(){var s=this,l=arguments,c=function(){var t,c;if(!(e=i&&(o!==$&&(s=void 0,l=[t]),n.rejectWith(s,l))}};e?u():(E.Deferred.getErrorHook?u.error=E.Deferred.getErrorHook():E.Deferred.getStackHook&&(u.error=E.Deferred.getStackHook()),t.setTimeout(u))}}return E.Deferred((function(t){n[0][3].add(a(0,t,p(r)?r:Y,t.notifyWith)),n[1][3].add(a(0,t,p(e)?e:Y)),n[2][3].add(a(0,t,p(o)?o:$))})).promise()},promise:function(t){return null!=t?E.extend(t,r):r}},i={};return E.each(n,(function(t,e){var a=e[2],s=e[5];r[e[1]]=a.add,s&&a.add((function(){o=s}),n[3-t][2].disable,n[3-t][3].disable,n[0][2].lock,n[0][3].lock),a.add(e[3].fire),i[e[0]]=function(){return i[e[0]+"With"](this===i?void 0:this,arguments),this},i[e[0]+"With"]=a.fireWith})),r.promise(i),e&&e.call(i,i),i},when:function(t){var e=arguments.length,n=e,o=Array(n),i=r.call(arguments),a=E.Deferred(),s=function(t){return function(n){o[t]=this,i[t]=arguments.length>1?r.call(arguments):n,--e||a.resolveWith(o,i)}};if(e<=1&&(X(t,a.done(s(n)).resolve,a.reject,!e),"pending"===a.state()||p(i[n]&&i[n].then)))return a.then();for(;n--;)X(i[n],s(n),a.reject);return a.promise()}});var V=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;E.Deferred.exceptionHook=function(e,n){t.console&&t.console.warn&&e&&V.test(e.name)&&t.console.warn("jQuery.Deferred exception: "+e.message,e.stack,n)},E.readyException=function(e){t.setTimeout((function(){throw e}))};var K=E.Deferred();function Q(){m.removeEventListener("DOMContentLoaded",Q),t.removeEventListener("load",Q),E.ready()}E.fn.ready=function(t){return K.then(t).catch((function(t){E.readyException(t)})),this},E.extend({isReady:!1,readyWait:1,ready:function(t){(!0===t?--E.readyWait:E.isReady)||(E.isReady=!0,!0!==t&&--E.readyWait>0||K.resolveWith(m,[E]))}}),E.ready.then=K.then,"complete"===m.readyState||"loading"!==m.readyState&&!m.documentElement.doScroll?t.setTimeout(E.ready):(m.addEventListener("DOMContentLoaded",Q),t.addEventListener("load",Q));var J=function(t,e,n,o,r,i,a){var s=0,l=t.length,c=null==n;if("object"===b(n))for(s in r=!0,n)J(t,e,s,n[s],!0,i,a);else if(void 0!==o&&(r=!0,p(o)||(a=!0),c&&(a?(e.call(t,o),e=null):(c=e,e=function(t,e,n){return c.call(E(t),n)})),e))for(;s1,null,!0)},removeData:function(t){return this.each((function(){it.remove(this,t)}))}}),E.extend({queue:function(t,e,n){var o;if(t)return e=(e||"fx")+"queue",o=rt.get(t,e),n&&(!o||Array.isArray(n)?o=rt.access(t,e,E.makeArray(n)):o.push(n)),o||[]},dequeue:function(t,e){e=e||"fx";var n=E.queue(t,e),o=n.length,r=n.shift(),i=E._queueHooks(t,e);"inprogress"===r&&(r=n.shift(),o--),r&&("fx"===e&&n.unshift("inprogress"),delete i.stop,r.call(t,(function(){E.dequeue(t,e)}),i)),!o&&i&&i.empty.fire()},_queueHooks:function(t,e){var n=e+"queueHooks";return rt.get(t,n)||rt.access(t,n,{empty:E.Callbacks("once memory").add((function(){rt.remove(t,[e+"queue",n])}))})}}),E.fn.extend({queue:function(t,e){var n=2;return"string"!=typeof t&&(e=t,t="fx",n--),arguments.length\x20\t\r\n\f]*)/i,Tt=/^$|^module$|\/(?:java|ecma)script/i;wt=m.createDocumentFragment().appendChild(m.createElement("div")),(xt=m.createElement("input")).setAttribute("type","radio"),xt.setAttribute("checked","checked"),xt.setAttribute("name","t"),wt.appendChild(xt),h.checkClone=wt.cloneNode(!0).cloneNode(!0).lastChild.checked,wt.innerHTML="",h.noCloneChecked=!!wt.cloneNode(!0).lastChild.defaultValue,wt.innerHTML="",h.option=!!wt.lastChild;var At={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function kt(t,e){var n;return n=void 0!==t.getElementsByTagName?t.getElementsByTagName(e||"*"):void 0!==t.querySelectorAll?t.querySelectorAll(e||"*"):[],void 0===e||e&&T(t,e)?E.merge([t],n):n}function St(t,e){for(var n=0,o=t.length;n",""]);var Dt=/<|&#?\w+;/;function Nt(t,e,n,o,r){for(var i,a,s,l,c,u,d=e.createDocumentFragment(),f=[],h=0,p=t.length;h-1)r&&r.push(i);else if(c=ht(i),a=kt(d.appendChild(i),"script"),c&&St(a),n)for(u=0;i=a[u++];)Tt.test(i.type||"")&&n.push(i);return d}var Lt=/^([^.]*)(?:\.(.+)|)/;function Mt(){return!0}function _t(){return!1}function It(t,e,n,o,r,i){var a,s;if("object"==typeof e){for(s in"string"!=typeof n&&(o=o||n,n=void 0),e)It(t,s,n,o,e[s],i);return t}if(null==o&&null==r?(r=n,o=n=void 0):null==r&&("string"==typeof n?(r=o,o=void 0):(r=o,o=n,n=void 0)),!1===r)r=_t;else if(!r)return t;return 1===i&&(a=r,r=function(t){return E().off(t),a.apply(this,arguments)},r.guid=a.guid||(a.guid=E.guid++)),t.each((function(){E.event.add(this,e,r,o,n)}))}function Ot(t,e,n){n?(rt.set(t,e,!1),E.event.add(t,e,{namespace:!1,handler:function(t){var n,o=rt.get(this,e);if(1&t.isTrigger&&this[e]){if(o)(E.event.special[e]||{}).delegateType&&t.stopPropagation();else if(o=r.call(arguments),rt.set(this,e,o),this[e](),n=rt.get(this,e),rt.set(this,e,!1),o!==n)return t.stopImmediatePropagation(),t.preventDefault(),n}else o&&(rt.set(this,e,E.event.trigger(o[0],o.slice(1),this)),t.stopPropagation(),t.isImmediatePropagationStopped=Mt)}})):void 0===rt.get(t,e)&&E.event.add(t,e,Mt)}E.event={global:{},add:function(t,e,n,o,r){var i,a,s,l,c,u,d,f,h,p,g,m=rt.get(t);if(nt(t))for(n.handler&&(n=(i=n).handler,r=i.selector),r&&E.find.matchesSelector(ft,r),n.guid||(n.guid=E.guid++),(l=m.events)||(l=m.events=Object.create(null)),(a=m.handle)||(a=m.handle=function(e){return void 0!==E&&E.event.triggered!==e.type?E.event.dispatch.apply(t,arguments):void 0}),c=(e=(e||"").match(U)||[""]).length;c--;)h=g=(s=Lt.exec(e[c])||[])[1],p=(s[2]||"").split(".").sort(),h&&(d=E.event.special[h]||{},h=(r?d.delegateType:d.bindType)||h,d=E.event.special[h]||{},u=E.extend({type:h,origType:g,data:o,handler:n,guid:n.guid,selector:r,needsContext:r&&E.expr.match.needsContext.test(r),namespace:p.join(".")},i),(f=l[h])||((f=l[h]=[]).delegateCount=0,d.setup&&!1!==d.setup.call(t,o,p,a)||t.addEventListener&&t.addEventListener(h,a)),d.add&&(d.add.call(t,u),u.handler.guid||(u.handler.guid=n.guid)),r?f.splice(f.delegateCount++,0,u):f.push(u),E.event.global[h]=!0)},remove:function(t,e,n,o,r){var i,a,s,l,c,u,d,f,h,p,g,m=rt.hasData(t)&&rt.get(t);if(m&&(l=m.events)){for(c=(e=(e||"").match(U)||[""]).length;c--;)if(h=g=(s=Lt.exec(e[c])||[])[1],p=(s[2]||"").split(".").sort(),h){for(d=E.event.special[h]||{},f=l[h=(o?d.delegateType:d.bindType)||h]||[],s=s[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=i=f.length;i--;)u=f[i],!r&&g!==u.origType||n&&n.guid!==u.guid||s&&!s.test(u.namespace)||o&&o!==u.selector&&("**"!==o||!u.selector)||(f.splice(i,1),u.selector&&f.delegateCount--,d.remove&&d.remove.call(t,u));a&&!f.length&&(d.teardown&&!1!==d.teardown.call(t,p,m.handle)||E.removeEvent(t,h,m.handle),delete l[h])}else for(h in l)E.event.remove(t,h+e[c],n,o,!0);E.isEmptyObject(l)&&rt.remove(t,"handle events")}},dispatch:function(t){var e,n,o,r,i,a,s=new Array(arguments.length),l=E.event.fix(t),c=(rt.get(this,"events")||Object.create(null))[l.type]||[],u=E.event.special[l.type]||{};for(s[0]=l,e=1;e=1))for(;c!==this;c=c.parentNode||this)if(1===c.nodeType&&("click"!==t.type||!0!==c.disabled)){for(i=[],a={},n=0;n-1:E.find(r,this,null,[c]).length),a[r]&&i.push(o);i.length&&s.push({elem:c,handlers:i})}return c=this,l\s*$/g;function Bt(t,e){return T(t,"table")&&T(11!==e.nodeType?e:e.firstChild,"tr")&&E(t).children("tbody")[0]||t}function Ht(t){return t.type=(null!==t.getAttribute("type"))+"/"+t.type,t}function Ft(t){return"true/"===(t.type||"").slice(0,5)?t.type=t.type.slice(5):t.removeAttribute("type"),t}function qt(t,e){var n,o,r,i,a,s;if(1===e.nodeType){if(rt.hasData(t)&&(s=rt.get(t).events))for(r in rt.remove(e,"handle events"),s)for(n=0,o=s[r].length;n1&&"string"==typeof m&&!h.checkClone&&Rt.test(m))return t.each((function(r){var i=t.eq(r);v&&(e[0]=m.call(this,r,i.html())),Wt(i,e,n,o)}));if(f&&(a=(r=Nt(e,t[0].ownerDocument,!1,t,o)).firstChild,1===r.childNodes.length&&(r=a),a||o)){for(l=(s=E.map(kt(r,"script"),Ht)).length;d0&&St(a,!l&&kt(t,"script")),s},cleanData:function(t){for(var e,n,o,r=E.event.special,i=0;void 0!==(n=t[i]);i++)if(nt(n)){if(e=n[rt.expando]){if(e.events)for(o in e.events)r[o]?E.event.remove(n,o):E.removeEvent(n,o,e.handle);n[rt.expando]=void 0}n[it.expando]&&(n[it.expando]=void 0)}}}),E.fn.extend({detach:function(t){return Ut(this,t,!0)},remove:function(t){return Ut(this,t)},text:function(t){return J(this,(function(t){return void 0===t?E.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=t)}))}),null,t,arguments.length)},append:function(){return Wt(this,arguments,(function(t){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Bt(this,t).appendChild(t)}))},prepend:function(){return Wt(this,arguments,(function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=Bt(this,t);e.insertBefore(t,e.firstChild)}}))},before:function(){return Wt(this,arguments,(function(t){this.parentNode&&this.parentNode.insertBefore(t,this)}))},after:function(){return Wt(this,arguments,(function(t){this.parentNode&&this.parentNode.insertBefore(t,this.nextSibling)}))},empty:function(){for(var t,e=0;null!=(t=this[e]);e++)1===t.nodeType&&(E.cleanData(kt(t,!1)),t.textContent="");return this},clone:function(t,e){return t=null!=t&&t,e=null==e?t:e,this.map((function(){return E.clone(this,t,e)}))},html:function(t){return J(this,(function(t){var e=this[0]||{},n=0,o=this.length;if(void 0===t&&1===e.nodeType)return e.innerHTML;if("string"==typeof t&&!Pt.test(t)&&!At[(Ct.exec(t)||["",""])[1].toLowerCase()]){t=E.htmlPrefilter(t);try{for(;n=0&&(l+=Math.max(0,Math.ceil(t["offset"+e[0].toUpperCase()+e.slice(1)]-i-l-s-.5))||0),l+c}function se(t,e,n){var o=Xt(t),r=(!h.boxSizingReliable()||n)&&"border-box"===E.css(t,"boxSizing",!1,o),i=r,a=Qt(t,e,o),s="offset"+e[0].toUpperCase()+e.slice(1);if(Yt.test(a)){if(!n)return a;a="auto"}return(!h.boxSizingReliable()&&r||!h.reliableTrDimensions()&&T(t,"tr")||"auto"===a||!parseFloat(a)&&"inline"===E.css(t,"display",!1,o))&&t.getClientRects().length&&(r="border-box"===E.css(t,"boxSizing",!1,o),(i=s in t)&&(a=t[s])),(a=parseFloat(a)||0)+ae(t,e,n||(r?"border":"content"),i,o,a)+"px"}function le(t,e,n,o,r){return new le.prototype.init(t,e,n,o,r)}E.extend({cssHooks:{opacity:{get:function(t,e){if(e){var n=Qt(t,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,aspectRatio:!0,borderImageSlice:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,scale:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeMiterlimit:!0,strokeOpacity:!0},cssProps:{},style:function(t,e,n,o){if(t&&3!==t.nodeType&&8!==t.nodeType&&t.style){var r,i,a,s=et(e),l=$t.test(e),c=t.style;if(l||(e=ee(s)),a=E.cssHooks[e]||E.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(r=a.get(t,!1,o))?r:c[e];"string"==(i=typeof n)&&(r=ut.exec(n))&&r[1]&&(n=mt(t,e,r),i="number"),null!=n&&n==n&&("number"!==i||l||(n+=r&&r[3]||(E.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==e.indexOf("background")||(c[e]="inherit"),a&&"set"in a&&void 0===(n=a.set(t,n,o))||(l?c.setProperty(e,n):c[e]=n))}},css:function(t,e,n,o){var r,i,a,s=et(e);return $t.test(e)||(e=ee(s)),(a=E.cssHooks[e]||E.cssHooks[s])&&"get"in a&&(r=a.get(t,!0,n)),void 0===r&&(r=Qt(t,e,o)),"normal"===r&&e in re&&(r=re[e]),""===n||n?(i=parseFloat(r),!0===n||isFinite(i)?i||0:r):r}}),E.each(["height","width"],(function(t,e){E.cssHooks[e]={get:function(t,n,o){if(n)return!ne.test(E.css(t,"display"))||t.getClientRects().length&&t.getBoundingClientRect().width?se(t,e,o):Vt(t,oe,(function(){return se(t,e,o)}))},set:function(t,n,o){var r,i=Xt(t),a=!h.scrollboxSize()&&"absolute"===i.position,s=(a||o)&&"border-box"===E.css(t,"boxSizing",!1,i),l=o?ae(t,e,o,s,i):0;return s&&a&&(l-=Math.ceil(t["offset"+e[0].toUpperCase()+e.slice(1)]-parseFloat(i[e])-ae(t,e,"border",!1,i)-.5)),l&&(r=ut.exec(n))&&"px"!==(r[3]||"px")&&(t.style[e]=n,n=E.css(t,e)),ie(0,n,l)}}})),E.cssHooks.marginLeft=Jt(h.reliableMarginLeft,(function(t,e){if(e)return(parseFloat(Qt(t,"marginLeft"))||t.getBoundingClientRect().left-Vt(t,{marginLeft:0},(function(){return t.getBoundingClientRect().left})))+"px"})),E.each({margin:"",padding:"",border:"Width"},(function(t,e){E.cssHooks[t+e]={expand:function(n){for(var o=0,r={},i="string"==typeof n?n.split(" "):[n];o<4;o++)r[t+dt[o]+e]=i[o]||i[o-2]||i[0];return r}},"margin"!==t&&(E.cssHooks[t+e].set=ie)})),E.fn.extend({css:function(t,e){return J(this,(function(t,e,n){var o,r,i={},a=0;if(Array.isArray(e)){for(o=Xt(t),r=e.length;a1)}}),E.Tween=le,le.prototype={constructor:le,init:function(t,e,n,o,r,i){this.elem=t,this.prop=n,this.easing=r||E.easing._default,this.options=e,this.start=this.now=this.cur(),this.end=o,this.unit=i||(E.cssNumber[n]?"":"px")},cur:function(){var t=le.propHooks[this.prop];return t&&t.get?t.get(this):le.propHooks._default.get(this)},run:function(t){var e,n=le.propHooks[this.prop];return this.options.duration?this.pos=e=E.easing[this.easing](t,this.options.duration*t,0,1,this.options.duration):this.pos=e=t,this.now=(this.end-this.start)*e+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):le.propHooks._default.set(this),this}},le.prototype.init.prototype=le.prototype,le.propHooks={_default:{get:function(t){var e;return 1!==t.elem.nodeType||null!=t.elem[t.prop]&&null==t.elem.style[t.prop]?t.elem[t.prop]:(e=E.css(t.elem,t.prop,""))&&"auto"!==e?e:0},set:function(t){E.fx.step[t.prop]?E.fx.step[t.prop](t):1!==t.elem.nodeType||!E.cssHooks[t.prop]&&null==t.elem.style[ee(t.prop)]?t.elem[t.prop]=t.now:E.style(t.elem,t.prop,t.now+t.unit)}}},le.propHooks.scrollTop=le.propHooks.scrollLeft={set:function(t){t.elem.nodeType&&t.elem.parentNode&&(t.elem[t.prop]=t.now)}},E.easing={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2},_default:"swing"},E.fx=le.prototype.init,E.fx.step={};var ce,ue,de=/^(?:toggle|show|hide)$/,fe=/queueHooks$/;function he(){ue&&(!1===m.hidden&&t.requestAnimationFrame?t.requestAnimationFrame(he):t.setTimeout(he,E.fx.interval),E.fx.tick())}function pe(){return t.setTimeout((function(){ce=void 0})),ce=Date.now()}function ge(t,e){var n,o=0,r={height:t};for(e=e?1:0;o<4;o+=2-e)r["margin"+(n=dt[o])]=r["padding"+n]=t;return e&&(r.opacity=r.width=t),r}function me(t,e,n){for(var o,r=(ve.tweeners[e]||[]).concat(ve.tweeners["*"]),i=0,a=r.length;i1)},removeAttr:function(t){return this.each((function(){E.removeAttr(this,t)}))}}),E.extend({attr:function(t,e,n){var o,r,i=t.nodeType;if(3!==i&&8!==i&&2!==i)return void 0===t.getAttribute?E.prop(t,e,n):(1===i&&E.isXMLDoc(t)||(r=E.attrHooks[e.toLowerCase()]||(E.expr.match.bool.test(e)?ye:void 0)),void 0!==n?null===n?void E.removeAttr(t,e):r&&"set"in r&&void 0!==(o=r.set(t,n,e))?o:(t.setAttribute(e,n+""),n):r&&"get"in r&&null!==(o=r.get(t,e))?o:null==(o=E.find.attr(t,e))?void 0:o)},attrHooks:{type:{set:function(t,e){if(!h.radioValue&&"radio"===e&&T(t,"input")){var n=t.value;return t.setAttribute("type",e),n&&(t.value=n),e}}}},removeAttr:function(t,e){var n,o=0,r=e&&e.match(U);if(r&&1===t.nodeType)for(;n=r[o++];)t.removeAttribute(n)}}),ye={set:function(t,e,n){return!1===e?E.removeAttr(t,n):t.setAttribute(n,n),n}},E.each(E.expr.match.bool.source.match(/\w+/g),(function(t,e){var n=be[e]||E.find.attr;be[e]=function(t,e,o){var r,i,a=e.toLowerCase();return o||(i=be[a],be[a]=r,r=null!=n(t,e,o)?a:null,be[a]=i),r}}));var we=/^(?:input|select|textarea|button)$/i,xe=/^(?:a|area)$/i;function Ee(t){return(t.match(U)||[]).join(" ")}function Ce(t){return t.getAttribute&&t.getAttribute("class")||""}function Te(t){return Array.isArray(t)?t:"string"==typeof t&&t.match(U)||[]}E.fn.extend({prop:function(t,e){return J(this,E.prop,t,e,arguments.length>1)},removeProp:function(t){return this.each((function(){delete this[E.propFix[t]||t]}))}}),E.extend({prop:function(t,e,n){var o,r,i=t.nodeType;if(3!==i&&8!==i&&2!==i)return 1===i&&E.isXMLDoc(t)||(e=E.propFix[e]||e,r=E.propHooks[e]),void 0!==n?r&&"set"in r&&void 0!==(o=r.set(t,n,e))?o:t[e]=n:r&&"get"in r&&null!==(o=r.get(t,e))?o:t[e]},propHooks:{tabIndex:{get:function(t){var e=E.find.attr(t,"tabindex");return e?parseInt(e,10):we.test(t.nodeName)||xe.test(t.nodeName)&&t.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),h.optSelected||(E.propHooks.selected={get:function(t){var e=t.parentNode;return e&&e.parentNode&&e.parentNode.selectedIndex,null},set:function(t){var e=t.parentNode;e&&(e.selectedIndex,e.parentNode&&e.parentNode.selectedIndex)}}),E.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){E.propFix[this.toLowerCase()]=this})),E.fn.extend({addClass:function(t){var e,n,o,r,i,a;return p(t)?this.each((function(e){E(this).addClass(t.call(this,e,Ce(this)))})):(e=Te(t)).length?this.each((function(){if(o=Ce(this),n=1===this.nodeType&&" "+Ee(o)+" "){for(i=0;i-1;)n=n.replace(" "+r+" "," ");a=Ee(n),o!==a&&this.setAttribute("class",a)}})):this:this.attr("class","")},toggleClass:function(t,e){var n,o,r,i,a=typeof t,s="string"===a||Array.isArray(t);return p(t)?this.each((function(n){E(this).toggleClass(t.call(this,n,Ce(this),e),e)})):"boolean"==typeof e&&s?e?this.addClass(t):this.removeClass(t):(n=Te(t),this.each((function(){if(s)for(i=E(this),r=0;r-1)return!0;return!1}});var Ae=/\r/g;E.fn.extend({val:function(t){var e,n,o,r=this[0];return arguments.length?(o=p(t),this.each((function(n){var r;1===this.nodeType&&(null==(r=o?t.call(this,n,E(this).val()):t)?r="":"number"==typeof r?r+="":Array.isArray(r)&&(r=E.map(r,(function(t){return null==t?"":t+""}))),(e=E.valHooks[this.type]||E.valHooks[this.nodeName.toLowerCase()])&&"set"in e&&void 0!==e.set(this,r,"value")||(this.value=r))}))):r?(e=E.valHooks[r.type]||E.valHooks[r.nodeName.toLowerCase()])&&"get"in e&&void 0!==(n=e.get(r,"value"))?n:"string"==typeof(n=r.value)?n.replace(Ae,""):null==n?"":n:void 0}}),E.extend({valHooks:{option:{get:function(t){var e=E.find.attr(t,"value");return null!=e?e:Ee(E.text(t))}},select:{get:function(t){var e,n,o,r=t.options,i=t.selectedIndex,a="select-one"===t.type,s=a?null:[],l=a?i+1:r.length;for(o=i<0?l:a?i:0;o-1)&&(n=!0);return n||(t.selectedIndex=-1),i}}}}),E.each(["radio","checkbox"],(function(){E.valHooks[this]={set:function(t,e){if(Array.isArray(e))return t.checked=E.inArray(E(t).val(),e)>-1}},h.checkOn||(E.valHooks[this].get=function(t){return null===t.getAttribute("value")?"on":t.value})}));var ke=t.location,Se={guid:Date.now()},De=/\?/;E.parseXML=function(e){var n,o;if(!e||"string"!=typeof e)return null;try{n=(new t.DOMParser).parseFromString(e,"text/xml")}catch(t){}return o=n&&n.getElementsByTagName("parsererror")[0],n&&!o||E.error("Invalid XML: "+(o?E.map(o.childNodes,(function(t){return t.textContent})).join("\n"):e)),n};var Ne=/^(?:focusinfocus|focusoutblur)$/,Le=function(t){t.stopPropagation()};E.extend(E.event,{trigger:function(e,n,o,r){var i,a,s,l,c,d,f,h,v=[o||m],y=u.call(e,"type")?e.type:e,b=u.call(e,"namespace")?e.namespace.split("."):[];if(a=h=s=o=o||m,3!==o.nodeType&&8!==o.nodeType&&!Ne.test(y+E.event.triggered)&&(y.indexOf(".")>-1&&(b=y.split("."),y=b.shift(),b.sort()),c=y.indexOf(":")<0&&"on"+y,(e=e[E.expando]?e:new E.Event(y,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=b.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=o),n=null==n?[e]:E.makeArray(n,[e]),f=E.event.special[y]||{},r||!f.trigger||!1!==f.trigger.apply(o,n))){if(!r&&!f.noBubble&&!g(o)){for(l=f.delegateType||y,Ne.test(l+y)||(a=a.parentNode);a;a=a.parentNode)v.push(a),s=a;s===(o.ownerDocument||m)&&v.push(s.defaultView||s.parentWindow||t)}for(i=0;(a=v[i++])&&!e.isPropagationStopped();)h=a,e.type=i>1?l:f.bindType||y,(d=(rt.get(a,"events")||Object.create(null))[e.type]&&rt.get(a,"handle"))&&d.apply(a,n),(d=c&&a[c])&&d.apply&&nt(a)&&(e.result=d.apply(a,n),!1===e.result&&e.preventDefault());return e.type=y,r||e.isDefaultPrevented()||f._default&&!1!==f._default.apply(v.pop(),n)||!nt(o)||c&&p(o[y])&&!g(o)&&((s=o[c])&&(o[c]=null),E.event.triggered=y,e.isPropagationStopped()&&h.addEventListener(y,Le),o[y](),e.isPropagationStopped()&&h.removeEventListener(y,Le),E.event.triggered=void 0,s&&(o[c]=s)),e.result}},simulate:function(t,e,n){var o=E.extend(new E.Event,n,{type:t,isSimulated:!0});E.event.trigger(o,null,e)}}),E.fn.extend({trigger:function(t,e){return this.each((function(){E.event.trigger(t,e,this)}))},triggerHandler:function(t,e){var n=this[0];if(n)return E.event.trigger(t,e,n,!0)}});var Me=/\[\]$/,_e=/\r?\n/g,Ie=/^(?:submit|button|image|reset|file)$/i,Oe=/^(?:input|select|textarea|keygen)/i;function Pe(t,e,n,o){var r;if(Array.isArray(e))E.each(e,(function(e,r){n||Me.test(t)?o(t,r):Pe(t+"["+("object"==typeof r&&null!=r?e:"")+"]",r,n,o)}));else if(n||"object"!==b(e))o(t,e);else for(r in e)Pe(t+"["+r+"]",e[r],n,o)}E.param=function(t,e){var n,o=[],r=function(t,e){var n=p(e)?e():e;o[o.length]=encodeURIComponent(t)+"="+encodeURIComponent(null==n?"":n)};if(null==t)return"";if(Array.isArray(t)||t.jquery&&!E.isPlainObject(t))E.each(t,(function(){r(this.name,this.value)}));else for(n in t)Pe(n,t[n],e,r);return o.join("&")},E.fn.extend({serialize:function(){return E.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var t=E.prop(this,"elements");return t?E.makeArray(t):this})).filter((function(){var t=this.type;return this.name&&!E(this).is(":disabled")&&Oe.test(this.nodeName)&&!Ie.test(t)&&(this.checked||!Et.test(t))})).map((function(t,e){var n=E(this).val();return null==n?null:Array.isArray(n)?E.map(n,(function(t){return{name:e.name,value:t.replace(_e,"\r\n")}})):{name:e.name,value:n.replace(_e,"\r\n")}})).get()}});var Re=/%20/g,je=/#.*$/,Be=/([?&])_=[^&]*/,He=/^(.*?):[ \t]*([^\r\n]*)$/gm,Fe=/^(?:GET|HEAD)$/,qe=/^\/\//,ze={},We={},Ue="*/".concat("*"),Ye=m.createElement("a");function $e(t){return function(e,n){"string"!=typeof e&&(n=e,e="*");var o,r=0,i=e.toLowerCase().match(U)||[];if(p(n))for(;o=i[r++];)"+"===o[0]?(o=o.slice(1)||"*",(t[o]=t[o]||[]).unshift(n)):(t[o]=t[o]||[]).push(n)}}function Xe(t,e,n,o){var r={},i=t===We;function a(s){var l;return r[s]=!0,E.each(t[s]||[],(function(t,s){var c=s(e,n,o);return"string"!=typeof c||i||r[c]?i?!(l=c):void 0:(e.dataTypes.unshift(c),a(c),!1)})),l}return a(e.dataTypes[0])||!r["*"]&&a("*")}function Ve(t,e){var n,o,r=E.ajaxSettings.flatOptions||{};for(n in e)void 0!==e[n]&&((r[n]?t:o||(o={}))[n]=e[n]);return o&&E.extend(!0,t,o),t}Ye.href=ke.href,E.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ke.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(ke.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Ue,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":E.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(t,e){return e?Ve(Ve(t,E.ajaxSettings),e):Ve(E.ajaxSettings,t)},ajaxPrefilter:$e(ze),ajaxTransport:$e(We),ajax:function(e,n){"object"==typeof e&&(n=e,e=void 0),n=n||{};var o,r,i,a,s,l,c,u,d,f,h=E.ajaxSetup({},n),p=h.context||h,g=h.context&&(p.nodeType||p.jquery)?E(p):E.event,v=E.Deferred(),y=E.Callbacks("once memory"),b=h.statusCode||{},w={},x={},C="canceled",T={readyState:0,getResponseHeader:function(t){var e;if(c){if(!a)for(a={};e=He.exec(i);)a[e[1].toLowerCase()+" "]=(a[e[1].toLowerCase()+" "]||[]).concat(e[2]);e=a[t.toLowerCase()+" "]}return null==e?null:e.join(", ")},getAllResponseHeaders:function(){return c?i:null},setRequestHeader:function(t,e){return null==c&&(t=x[t.toLowerCase()]=x[t.toLowerCase()]||t,w[t]=e),this},overrideMimeType:function(t){return null==c&&(h.mimeType=t),this},statusCode:function(t){var e;if(t)if(c)T.always(t[T.status]);else for(e in t)b[e]=[b[e],t[e]];return this},abort:function(t){var e=t||C;return o&&o.abort(e),A(0,e),this}};if(v.promise(T),h.url=((e||h.url||ke.href)+"").replace(qe,ke.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(U)||[""],null==h.crossDomain){l=m.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Ye.protocol+"//"+Ye.host!=l.protocol+"//"+l.host}catch(t){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=E.param(h.data,h.traditional)),Xe(ze,h,n,T),c)return T;for(d in(u=E.event&&h.global)&&0==E.active++&&E.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Fe.test(h.type),r=h.url.replace(je,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(Re,"+")):(f=h.url.slice(r.length),h.data&&(h.processData||"string"==typeof h.data)&&(r+=(De.test(r)?"&":"?")+h.data,delete h.data),!1===h.cache&&(r=r.replace(Be,"$1"),f=(De.test(r)?"&":"?")+"_="+Se.guid+++f),h.url=r+f),h.ifModified&&(E.lastModified[r]&&T.setRequestHeader("If-Modified-Since",E.lastModified[r]),E.etag[r]&&T.setRequestHeader("If-None-Match",E.etag[r])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&T.setRequestHeader("Content-Type",h.contentType),T.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+Ue+"; q=0.01":""):h.accepts["*"]),h.headers)T.setRequestHeader(d,h.headers[d]);if(h.beforeSend&&(!1===h.beforeSend.call(p,T,h)||c))return T.abort();if(C="abort",y.add(h.complete),T.done(h.success),T.fail(h.error),o=Xe(We,h,n,T)){if(T.readyState=1,u&&g.trigger("ajaxSend",[T,h]),c)return T;h.async&&h.timeout>0&&(s=t.setTimeout((function(){T.abort("timeout")}),h.timeout));try{c=!1,o.send(w,A)}catch(t){if(c)throw t;A(-1,t)}}else A(-1,"No Transport");function A(e,n,a,l){var d,f,m,w,x,C=n;c||(c=!0,s&&t.clearTimeout(s),o=void 0,i=l||"",T.readyState=e>0?4:0,d=e>=200&&e<300||304===e,a&&(w=function(t,e,n){for(var o,r,i,a,s=t.contents,l=t.dataTypes;"*"===l[0];)l.shift(),void 0===o&&(o=t.mimeType||e.getResponseHeader("Content-Type"));if(o)for(r in s)if(s[r]&&s[r].test(o)){l.unshift(r);break}if(l[0]in n)i=l[0];else{for(r in n){if(!l[0]||t.converters[r+" "+l[0]]){i=r;break}a||(a=r)}i=i||a}if(i)return i!==l[0]&&l.unshift(i),n[i]}(h,T,a)),!d&&E.inArray("script",h.dataTypes)>-1&&E.inArray("json",h.dataTypes)<0&&(h.converters["text script"]=function(){}),w=function(t,e,n,o){var r,i,a,s,l,c={},u=t.dataTypes.slice();if(u[1])for(a in t.converters)c[a.toLowerCase()]=t.converters[a];for(i=u.shift();i;)if(t.responseFields[i]&&(n[t.responseFields[i]]=e),!l&&o&&t.dataFilter&&(e=t.dataFilter(e,t.dataType)),l=i,i=u.shift())if("*"===i)i=l;else if("*"!==l&&l!==i){if(!(a=c[l+" "+i]||c["* "+i]))for(r in c)if((s=r.split(" "))[1]===i&&(a=c[l+" "+s[0]]||c["* "+s[0]])){!0===a?a=c[r]:!0!==c[r]&&(i=s[0],u.unshift(s[1]));break}if(!0!==a)if(a&&t.throws)e=a(e);else try{e=a(e)}catch(t){return{state:"parsererror",error:a?t:"No conversion from "+l+" to "+i}}}return{state:"success",data:e}}(h,w,T,d),d?(h.ifModified&&((x=T.getResponseHeader("Last-Modified"))&&(E.lastModified[r]=x),(x=T.getResponseHeader("etag"))&&(E.etag[r]=x)),204===e||"HEAD"===h.type?C="nocontent":304===e?C="notmodified":(C=w.state,f=w.data,d=!(m=w.error))):(m=C,!e&&C||(C="error",e<0&&(e=0))),T.status=e,T.statusText=(n||C)+"",d?v.resolveWith(p,[f,C,T]):v.rejectWith(p,[T,C,m]),T.statusCode(b),b=void 0,u&&g.trigger(d?"ajaxSuccess":"ajaxError",[T,h,d?f:m]),y.fireWith(p,[T,C]),u&&(g.trigger("ajaxComplete",[T,h]),--E.active||E.event.trigger("ajaxStop")))}return T},getJSON:function(t,e,n){return E.get(t,e,n,"json")},getScript:function(t,e){return E.get(t,void 0,e,"script")}}),E.each(["get","post"],(function(t,e){E[e]=function(t,n,o,r){return p(n)&&(r=r||o,o=n,n=void 0),E.ajax(E.extend({url:t,type:e,dataType:r,data:n,success:o},E.isPlainObject(t)&&t))}})),E.ajaxPrefilter((function(t){var e;for(e in t.headers)"content-type"===e.toLowerCase()&&(t.contentType=t.headers[e]||"")})),E._evalUrl=function(t,e,n){return E.ajax({url:t,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(t){E.globalEval(t,e,n)}})},E.fn.extend({wrapAll:function(t){var e;return this[0]&&(p(t)&&(t=t.call(this[0])),e=E(t,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&e.insertBefore(this[0]),e.map((function(){for(var t=this;t.firstElementChild;)t=t.firstElementChild;return t})).append(this)),this},wrapInner:function(t){return p(t)?this.each((function(e){E(this).wrapInner(t.call(this,e))})):this.each((function(){var e=E(this),n=e.contents();n.length?n.wrapAll(t):e.append(t)}))},wrap:function(t){var e=p(t);return this.each((function(n){E(this).wrapAll(e?t.call(this,n):t)}))},unwrap:function(t){return this.parent(t).not("body").each((function(){E(this).replaceWith(this.childNodes)})),this}}),E.expr.pseudos.hidden=function(t){return!E.expr.pseudos.visible(t)},E.expr.pseudos.visible=function(t){return!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length)},E.ajaxSettings.xhr=function(){try{return new t.XMLHttpRequest}catch(t){}};var Ke={0:200,1223:204},Qe=E.ajaxSettings.xhr();h.cors=!!Qe&&"withCredentials"in Qe,h.ajax=Qe=!!Qe,E.ajaxTransport((function(e){var n,o;if(h.cors||Qe&&!e.crossDomain)return{send:function(r,i){var a,s=e.xhr();if(s.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(a in e.xhrFields)s[a]=e.xhrFields[a];for(a in e.mimeType&&s.overrideMimeType&&s.overrideMimeType(e.mimeType),e.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest"),r)s.setRequestHeader(a,r[a]);n=function(t){return function(){n&&(n=o=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===t?s.abort():"error"===t?"number"!=typeof s.status?i(0,"error"):i(s.status,s.statusText):i(Ke[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),o=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=o:s.onreadystatechange=function(){4===s.readyState&&t.setTimeout((function(){n&&o()}))},n=n("abort");try{s.send(e.hasContent&&e.data||null)}catch(t){if(n)throw t}},abort:function(){n&&n()}}})),E.ajaxPrefilter((function(t){t.crossDomain&&(t.contents.script=!1)})),E.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(t){return E.globalEval(t),t}}}),E.ajaxPrefilter("script",(function(t){void 0===t.cache&&(t.cache=!1),t.crossDomain&&(t.type="GET")})),E.ajaxTransport("script",(function(t){var e,n;if(t.crossDomain||t.scriptAttrs)return{send:function(o,r){e=E(" +{if="file_exists('tpl/material/extra.html')"} +{include="extra"} +{/if} diff --git a/shaarli/material/install.html b/shaarli/material/install.html new file mode 100644 index 0000000..4929532 --- /dev/null +++ b/shaarli/material/install.html @@ -0,0 +1,78 @@ + + + +{$pageName="install"} +{include="includes"} + + +
+
+
+
+
+
Welcome to your Shaarli
+
+

{'It looks like it\'s the first time you run Shaarli. Please configure it.'|t}

+
+ + +
+
+ + +
+
+ +
+
+ +
+
+ +
+
+
+
+ + +
+
+ + +
+
+ + +
{'Allow third party software to use Shaarli such as mobile application'|t}
+
+
+ +
+
+
+
+ + {include="server.requirements"} +
+{include="page.footer"} + + diff --git a/shaarli/material/linklist.html b/shaarli/material/linklist.html new file mode 100644 index 0000000..73ff438 --- /dev/null +++ b/shaarli/material/linklist.html @@ -0,0 +1,158 @@ + + + +{$pageName="linklist"} +{include="includes"} + + +{include="page.header"} + +{$dateFormat=!empty($conf->get('config.MATERIAL_PHP_DATE_PATTERN')) ? $conf->get('config.MATERIAL_PHP_DATE_PATTERN') : '%c'} +{$qrCodeDisabled=!empty($conf->get('config.MATERIAL_NO_QRCODE')) ? $conf->get('config.MATERIAL_NO_QRCODE') : false} + + + +{if="!empty($linkcount)"} + +{/if} + + {include="page.footer"} + + diff --git a/shaarli/material/linklist.paging.html b/shaarli/material/linklist.paging.html new file mode 100644 index 0000000..532c5a4 --- /dev/null +++ b/shaarli/material/linklist.paging.html @@ -0,0 +1,23 @@ +
+ {if="$page_max > 1"} +
+
{if="$previous_page_url"}{/if}
+
p {$page_current} / {$page_max}
+
{if="$next_page_url"}{/if}
+
+ {/if} +
+ {loop="$action_plugin"} + + {/loop} +
+
diff --git a/shaarli/material/loginform.html b/shaarli/material/loginform.html new file mode 100644 index 0000000..b7dd8a6 --- /dev/null +++ b/shaarli/material/loginform.html @@ -0,0 +1,43 @@ + + + +{$pageName="loginform"} +{include="includes"} + + +{include="page.header"} + + + +{include="page.footer"} + + diff --git a/shaarli/material/opensearch.html b/shaarli/material/opensearch.html new file mode 100644 index 0000000..1c7f279 --- /dev/null +++ b/shaarli/material/opensearch.html @@ -0,0 +1,45 @@ + + + Shaarli search - {$pagetitle} + Shaarli search - {$pagetitle} + + + + UTF-8 + Shaarli Community - https://github.com/shaarli/Shaarli/ + data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAHRklE + QVRIx5WWaWxU5xWG3++7986dfYYZb+MN2xiMDRiDFePUiQsNoiwpUNpAmhInJVEqpa0oQUlbJVKq + olaiqpLKUtOKhAJRm1BKRVWctuykpFjAgPcFx/uMl5mxPTOeuXPv3O3rjyiV0lIpfX+dc36c55xf + 70vwP9TZ2fFpSQCwT5u6unX4f0QeNLx27RoMQwfRveTd11T23M+8S9w+Z3NRma1W4Hk6/nEimFpM + Xnun9Xpmz1MPY+feOhBi/fwAAOjq7iJEqmQqCZf5i7NvyNZ/bJPYgAjCiJc2Zmhyw68SM/T1+NlK + uf61BPoH+tHU1PT5ACMjI8RXvACvpZ5NT0+fmrG+2TKqtDLV0BgA2AUfXS3+UtfDX2ixCf73E+oA + rat92CTkv9fRBwEkSaLDt/JZR/v0Q7qjb8dQ5hjSqmYSOCkzBbogL+ij2RN8bik9wK88Al9tH4tG + ow88lvb19yEyPwfGGLq6OungYD9fUlosrqwoQVVVUeOU8qE/mU0ZTq6KNvreNort+5hugkayQUgY + qQld/u6qnVRhkciscOdOkNy5E0RnZ+e/AbwsZxAaHyORZA+prW01CTlnGppOqAcwUnCmlDAkAyin + Dapb2t7lNeRijpwvTGlJROXugoKS+upz/S19Kj9lJjxXGY1VU49tGevt7WOCSMHTeAXclePsQts9 + Jq9oLR7rPVkHxpUYkK2c07ZDiieRNcAx3ZlNphcnsxbiMuEsXFSTZpabp+VVS17UNSV/8n7+gN75 + +C1DM6VEjkgatiz/5IOCAheiUdeyr+198keKZXLzTKYjMDk/ZzGJhkV9AiPSdWaYIAY4U7TYNJMR + pugMqgHcXTiJqDK8ycMv2+TPWyWtKFw3KEdtJxNz8u8+/PNYIqeUgY/Oz+Z7q5X3gtqvG7qip8yM + HqdZg5kGgwGACoQQQkEMQ2DMIFnGE04xCRQTZFaexUT6jEEImJ2njjxx9fr13hfqfULTQ4apHept + lxf4mrqS3Tek0w1toTc1K6WcXfAwnyWH8kSkIueEhdhNrzUAv16fSCUzNwR3vr/G2lKWojMqbxF4 + FWlLPDvBR+RBNpTsNqfkV7htuUe/UVq456qdzzvFh2KjdSH0I6ODs1ps9NHcw2jMfRYcEQyOCiox + aWR0fOQWVLFNUuOnrXJxfIPnpXLRKzocLpsJanhUU/bfjJ4gfwm/ys3JGX1cuS3UBvauLa/MBe9z + 5c/xGRdSKpiVmhhN98JK/w4DGgg4uLh8u1NfPhWbmzszeH3G1rxv3dL7+qXyGaXHJi46s4QQophp + TKSDkHWGlAqmGCbAGAUA3sY5LlRZv3w44Dhnm0iFzbnsGfJR5E+EEsppTBVXuBptL5b8YQMlwnO+ + Z2wtea4cl8Rc3KXJ4zShRm0CFaCaGhSDwGSMlbtLhSr7FnVhKhscC4+AO3L0x5PSFBdfE9i40SE6 + xLSWRCIbJ6phIqEysqvk+2aJ0vhB1NK353zyaL3GS76NgRbVYykkt2OXuaQqMwuxkk0FT+OJpS+z + piXPRP1KzRvz4dRvO68PaWCMEQAIDcbqFiLJtyaSA/Ef3NnMGttgvHS7mUUWw7cTMemtY/cPsw3n + oe2+4mGXpt7VGWPJ6zOn1V2Xfaz5AxgvBzexodmeGWmCbWWTDOGpSZIIqeAe2/IYvnXgWbomUj2T + lNlwUP7bV64lzuRIeoodqDxi1OKRs/e0i08dH/6JPWtk6KKaZd3xj2jAXkY3BvZGK1xrhZvRNktP + fNA0ubQrxyxV4jHpSkWoXJPKYqBetxeRpgsMWwE5b/bxaYxUDSWmzCLbStqQuy02LY4/cWLsqH8i + HYNbyEeJczkJSzH2855DwsXp932F9hXEKQSQ1UHa568iRAa3uFyeNVolMBmeIrzT4cTXm37KMuvA + xb8XXTqiDELRgKg8h/dGWwP9iSDaIzcYJSCbA/uNR3N2sNahV/hbsSA70vEdW66tCOOpj8FRkIgU + Q5ybLUopiTzeTpFWUoTXdR3knwQMzLANOyQX50fWhDktLeAX3UcIA2EEQHPgi6TBsrWzaLGm7emC + H7bY+GPlV6YumiEpDhslxGBgROApz+yyhROzduIEzwngDh48iD3jO0nBRAUUXtHcoq+ZWbI5EWWa + WTieFjoKsaVoN92T88J4vlz+asXqpb+hEcdotbdueZ47vyiqhpA2UoRQwpoLtpNHxR0382jR8RzT + k8xYMyCMMfR33Uc8rxdrA9tpuHPyS7pPOTRPZ1arepa4rUsybiWnnU9a39ZXxdur+XoGAGMdoXLi + M789axnfNxDr8omiDcvF1f3OhPf18efjF/nfz6PGvv6zlrlwWwYBgcBZbKH4WKHODLHEURDxbHDF + QWGePftHUlZWjsy8guYnH2EgwORfZ5cuavEqgGhLnL6+sycvRP1Fbux/fheIn3wCCN4N/qdPMwA4 + 2fYOeoe7kc6kcfCbh8n+r7YwAOjs6QCl9DNx5t7dew+MOf8CcuqqoLxlhwgAAAAASUVORK5CYII= + + diff --git a/shaarli/material/page.footer.html b/shaarli/material/page.footer.html new file mode 100644 index 0000000..08e8d2e --- /dev/null +++ b/shaarli/material/page.footer.html @@ -0,0 +1,31 @@ + + +{loop="$plugins_footer.js_files"} + +{/loop} diff --git a/shaarli/material/page.header.html b/shaarli/material/page.header.html new file mode 100644 index 0000000..11ad65a --- /dev/null +++ b/shaarli/material/page.header.html @@ -0,0 +1,273 @@ + +{if="$isCalledFromBookmarklet"} + {ignore} When called as a popup from bookmarklet, do not display menu. {/ignore} +{else} +
+
+ +
+
+ + + +
+ +
+
+
+
+
+ {if="isset($plugins_header.buttons_toolbar) ||isset($plugins_header.fields_toolbar)"} +
+ + +
+ {/if} + {if="$is_logged_in"} + + + + + + + {elseif="$openshaarli"} + + + + {else} + + + + {/if} +
+ + +
+ {if="$is_logged_in && $pageName === 'linklist'"} +
+ +
+ {/if} +
+ {if="$pageName === 'linklist'"} + + + {/if} +
+
+
+
+
+ {if="$displayAddNewLinkIcon"} + + + + {/if} + + +
+ {if="!empty($plugin_errors) && $is_logged_in"} + {loop="plugin_errors"} +
+ + {$value} +
+ {/loop} + {/if} + + {if="!empty($global_errors)"} + {loop="global_errors"} +
+ + {$value} +
+ {/loop} + {/if} + + {if="!empty($global_warnings)"} + {loop="global_warnings"} +
+ + {$value} +
+ {/loop} + {/if} + + {if="!empty($global_successes)"} + {loop="global_successes"} +
+ + {$value} +
+ {/loop} + {/if} +
+{/if} + + + + diff --git a/shaarli/material/page.html b/shaarli/material/page.html new file mode 100644 index 0000000..82ad70d --- /dev/null +++ b/shaarli/material/page.html @@ -0,0 +1,12 @@ + + + +{$pageName="custom"} +{include="includes"} + + +{include="page.header"} +You body goes here... +{include="page.footer"} + + diff --git a/shaarli/material/picwall.html b/shaarli/material/picwall.html new file mode 100644 index 0000000..c02512d --- /dev/null +++ b/shaarli/material/picwall.html @@ -0,0 +1,46 @@ + + + +{$pageName="picwall"} +{include="includes"} + + +{include="page.header"} + +{if="count($linksToDisplay) === 0 && $is_logged_in"} +
+ {'There is no cached thumbnail.'|t} + {'Try to synchronize them.'|t} +
+{/if} + +
+ {loop="$plugin_start_zone"} + {$value} + {/loop} +
+
+ {loop="$linksToDisplay"} +
+ {ignore}RainTPL hack: put the 2 src on two different line to avoid path replace bug{/ignore} + thumbnail + {$value.title} + + {loop="$value.picwall_plugin"} + {$value} + {/loop} + +
+ {/loop} +
+
+ {loop="$plugin_end_zone"} + {$value} + {/loop} +
+
+{include="page.footer"} + + diff --git a/shaarli/material/pluginsadmin.html b/shaarli/material/pluginsadmin.html new file mode 100644 index 0000000..d8c39b6 --- /dev/null +++ b/shaarli/material/pluginsadmin.html @@ -0,0 +1,120 @@ + + + +{$pageName="pluginsadmin"} +{include="includes"} + + +{include="page.header"} +
+
+
+ + +

{'Plugin administration'|t}

+

Drag and drop your plugin to change the order in which they'll be called. Uncheck enabled plugin to disable them and vice-versa.

+ +
+ +
+
{'Enabled Plugins'|t}
+ {if="count($enabledPlugins)==0"} +
+

{'No plugin enabled.'|t}

+
+ {else} +
    + {loop="$enabledPlugins"} +
  • + + + +
    +

    {function="str_replace('_', ' ', $key)"}

    +
    {$value.description}
    +
    +
    +
  • + {/loop} +
+ {/if} +
+ +
+
Disabled plugins
+ {if="count($disabledPlugins)==0"} +
+

{'No plugin disabled.'|t}

+
+ {else} +
    + {loop="$disabledPlugins"} +
  • + + +
    +

    {function="str_replace('_', ' ', $key)"}

    +
    {$value.description}
    +
    +
  • + {/loop} +
+ {/if} +
+ +
+

+ {"More plugins available"|t} + {"in the documentation"|t}. +

+ +
+
+
+
+ +
+
Plugin parameters
+
+ {if="count($enabledPlugins)==0"} +

{'No plugin enabled.'|t}

+ {else} + {$count=0} + {loop="$enabledPlugins"} + {if="count($value.parameters) > 0"} + {if="$count>0"} +
+ {/if} + {$count=$count+1} +

{function="str_replace('_', ' ', $key)"}

+ {loop="$value.parameters"} +
+
+ + {if="isset($value.desc)"}
{$value.desc}
{/if} +
+
+ +
+
+ {/loop} + {/if} + {/loop} + {if="$count==0"} +

{'No parameter available.'|t}

+ {/if} + {/if} +
+ +
+
+
+
+
+{include="page.footer"} + + diff --git a/shaarli/material/server.html b/shaarli/material/server.html new file mode 100644 index 0000000..01fd0c3 --- /dev/null +++ b/shaarli/material/server.html @@ -0,0 +1,119 @@ + + + +{$pageName="server"} +{include="includes"} + + +{include="page.header"} + +
+
+
+
+

{'Server administration'|t}

+ +
+
{'General'|t}
+
+
+
+
{'Index URL'|t}
+ +
+
+
{'Base path'|t}
+
{$base_path}
+
+
+
{'Client IP'|t}
+
{$client_ip}
+
+
+
{'Trusted reverse proxies'|t}
+
+ {if="count($trusted_proxies) > 0"} +
    + {loop="$trusted_proxies"} +
  • {$value}
  • + {/loop} +
+ {else} + {'N/A'|t} + {/if} +
+
+
+
+
+
+
+
+ +{include="server.requirements"} + +
+
+
+
+
{'Version'|t}
+
+
+
+
{'Current version'|t}
+
{$current_version}
+
+
+
{'Latest release'|t}
+ +
+
+
+
+
+ +
+
+
{'Thumbnails'|t}
+
+
+
+
{'Thumbnails status'|t}
+
+ {if="$thumbnails_mode==='all'"} + {'All'|t} + {elseif="$thumbnails_mode==='common'"} + {'Only common media hosts'|t} + {else} + {'None'|t} + {/if} +
+
+
+
+ {if="$thumbnails_mode!=='none'"} + + {/if} +
+
+ + +
+
+
+ +{include="page.footer"} + + diff --git a/shaarli/material/server.requirements.html b/shaarli/material/server.requirements.html new file mode 100644 index 0000000..952c798 --- /dev/null +++ b/shaarli/material/server.requirements.html @@ -0,0 +1,74 @@ +
+
+
+
+
{'Permissions'|t}
+
+ {if="count($permissions) > 0"} +

{'There are permissions that need to be fixed.'|t}

+
    + {loop="$permissions"} +
  • {$value}
  • + {/loop} +
+ {else} +

{'All read/write permissions are properly set.'|t}

+ {/if} +
+
+
+ +
+
+
PHP
+
+

+ {'Running PHP'|t} {$php_version} + + {if="$php_has_reached_eol"} +
+ {'End of life: '|t} {$php_eol} + {else} +
+ {/if} +

+ + + + + + + + + + + + {loop="$php_extensions"} + + + + + + + {/loop} + +
{'Extension'|t}{'Usage'|t}{'Status'|t}{'Loaded'|t}
{$value.name}{$value.desc}{$value.required ? t('Required') : t('Optional')} + {if="$value.loaded"} + {$classLoaded="text-success"} + {$strLoaded=t('Loaded')} + {else} + {$strLoaded=t('Not loaded')} + {if="$value.required"} + {$classLoaded="text-error"} + {else} + {$classLoaded="text-warning"} + {/if} + {/if} + + +
+
+
+
+
+
diff --git a/shaarli/material/tag.cloud.html b/shaarli/material/tag.cloud.html new file mode 100644 index 0000000..d4e7011 --- /dev/null +++ b/shaarli/material/tag.cloud.html @@ -0,0 +1,35 @@ + + + +{$pageName="tag.cloud"} +{include="includes"} + + +{include="page.header"} + +{include="tag.sort"} + +
+
+ {loop="$plugin_start_zone"} + {$value} + {/loop} +
+
+ {loop="$tags"} + {$key}{$value.count} + {loop="$value.tag_plugin"} + {$value} + {/loop} + {/loop} +
+
+ {loop="$plugin_end_zone"} + {$value} + {/loop} +
+
+{include="page.footer"} + + diff --git a/shaarli/material/tag.list.html b/shaarli/material/tag.list.html new file mode 100644 index 0000000..9e441b2 --- /dev/null +++ b/shaarli/material/tag.list.html @@ -0,0 +1,76 @@ + + + +{$pageName="tag.list"} +{include="includes"} + + +{include="page.header"} + +{include="tag.sort"} + +
+ {$countTags=count($tags)} + +
+ {loop="$plugin_start_zone"} + {$value} + {/loop} +
+ +
+
+ + {'Tag list'|t} +
+ + {loop="tags"} +
+
+ {$value} +
+
+ {$key} + {loop="$value.tag_plugin"} + {$value} + {/loop} +
+
+ + + + {if="$is_logged_in"} + + + + + {/if} +
+
+ {/loop} +
+ +
+ {loop="$plugin_end_zone"} + {$value} + {/loop} +
+
+ +{if="$is_logged_in"} + +{/if} + +{include="page.footer"} + + + diff --git a/shaarli/material/tag.sort.html b/shaarli/material/tag.sort.html new file mode 100644 index 0000000..cbdd4eb --- /dev/null +++ b/shaarli/material/tag.sort.html @@ -0,0 +1,7 @@ + diff --git a/shaarli/material/thumbnails.html b/shaarli/material/thumbnails.html new file mode 100644 index 0000000..dccf1c9 --- /dev/null +++ b/shaarli/material/thumbnails.html @@ -0,0 +1,36 @@ + + + +{$pageName="thumbnails"} +{include="includes"} + + +{include="page.header"} +
+
+
+
+

{'Thumbnails update'|t}

+
+
+ +
+ +
+
+
+
+ 0 / {$ids|count} +
+ + +
+
+
+
+
+{include="page.footer"} + + diff --git a/shaarli/material/tools.html b/shaarli/material/tools.html new file mode 100644 index 0000000..e4b0675 --- /dev/null +++ b/shaarli/material/tools.html @@ -0,0 +1,226 @@ + + + +{$pageName="tools"} +{include="includes"} + + +{include="page.header"} + +{include="page.footer"} + +